Litso, would you mind posting your code? This sounds like what I need to do, but I don’t know how to change the $obj->request like you mentioned works.
I’m trying to create the author.php file inside wordpress to display user’s profile, latest blog posts and user’s forum activities. Using the snippet below just returns empty data for each user. I’m sure I’m missing something in the snippet and hopefully someone could point me to the right direction.
<?php do_action( 'bbp_template_notices' );
// Subscriptions
bbp_get_template_part( 'bbpress/user', 'subscriptions' );
// Favorite topics
bbp_get_template_part( 'bbpress/user', 'favorites' );
// Topics created
bbp_get_template_part( 'bbpress/user', 'topics-created' );
?>
Thanks.
I haven’t experienced these bugs first hand, but my suggestion would be to try 2.1 when the beta comes out (very soon) and see if these issues resolve themselves
Hi deathbybear,
The only way I have found to make this happen is to edit the core code provided by bbpress.
I am not sure if this is the right way to go, so if someone else can suggest another way then let me know.
Here is what I have done. I replaced the bbp_list_forums function inside forum-template.php and then inside the loops-single-forum I changed the arguments to enable the last poster.
function bbp_list_forums( $args = '' ) {
// Define used variables
$output = $sub_forums = $topic_count = $reply_count = $counts = '';
$i = 0;
$count = array();
// Defaults and arguments
$defaults = array (
'before' => '<ul class="bbp-forums">',
'after' => '</ul>',
'link_before' => '<li class="bbp-forum">',
'link_after' => '</li>',
'count_before' => ' (',
'count_after' => ')',
'count_sep' => ', ',
'separator' => ', ',
'forum_id' => '',
'show_topic_count' => true,
'show_reply_count' => true,
'freshness_before' => '<td class="last-posted-box">',
'freshness_after' => '</td>',
'show_freshness_link' => true,
'freshness_author_before' => '<div class="author-box">',
'freshness_author_after' => '</div>'
);
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );
// Bail if there are no subforums
if ( !bbp_get_forum_subforum_count( $forum_id ) )
return;
// Loop through forums and create a list
if ( $sub_forums = bbp_forum_get_subforums( $forum_id ) ) {
// Total count (for separator)
$total_subs = count( $sub_forums );
foreach ( $sub_forums as $sub_forum ) {
$i++; // Separator count
// Get forum details
$count = array();
$show_sep = $total_subs > $i ? $separator : '';
$permalink = bbp_get_forum_permalink( $sub_forum->ID );
$title = bbp_get_forum_title( $sub_forum->ID );
// Show topic count
if ( !empty( $show_topic_count ) && !bbp_is_forum_category( $sub_forum->ID ) )
$count['topic'] = bbp_get_forum_topic_count( $sub_forum->ID );
// Show reply count
if ( !empty( $show_reply_count ) && !bbp_is_forum_category( $sub_forum->ID ) )
$count['reply'] = bbp_get_forum_reply_count( $sub_forum->ID );
// Counts to show
if ( !empty( $count ) )
$counts = $count_before . implode( $count_sep, $count ) . $count_after;
// Show topic count
if ( !empty( $show_freshness_link ) && !bbp_is_forum_category( $sub_forum->ID ) ) {
$freshness_link = bbp_get_forum_freshness_link( $sub_forum->ID );
$freshness_author = $freshness_author_before . bbp_get_author_link( array( 'post_id' => bbp_get_forum_last_active_id( $sub_forum->ID ), 'size' => 14 ) ) . $freshness_author_after;
$freshness_link = $freshness_before . $freshness_link . $freshness_author . $freshness_after;
}
// Build this sub forums link
$output .= $link_before . '<a href="' . $permalink . '" class="bbp-forum-link">' . $title . $counts . $freshness_link . '</a>' . $show_sep . $link_after;
}
// Output the list
echo $before . $output . $after;
}
}
Let me know how you get on, good luck!
I’m trying to implement a “Quick Post” box using the New Topic Form shortcode, [bbp-topic-form], but it seems non-admin users cannot post using the form (it says, “You cannot create new topics at this time.”). The same users can post a topic by actually going into the forums, so I’m wondering what the issue might be.
The website URL: capital.businesses.org.nz
It’s a subdomain installation of a multi-site network (businesses.org.nz), which in turn is part of a multi-network installation (using the ‘networks for wordpress’ plugin).
This looks like an issue with WP_Meta_Query issuing a CAST for all rows in wp_postmeta during the query.
Relevant LOCs in meta.php:
$where[$k] = ' (' . $where[$k] . $wpdb->prepare("CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value);
There are several options to pursue:
* Store thread ids in a separate table and intercept get_meta_sql filter to update the query to look in the correct table for _bbp_topic_id lookups.
* Update WP_Meta_Query to read relevant types from type-specific tables (i.e. wp_postmeta_unsigned) for topic_id lookups. Requires updating mechanisms to save metadata into type-specific tables as well.
What are some other options?
Hi,
How can I rename Topics to Tickets in BBPress? I have renamed the tags as such but would like the actual topics heading to read Tickets.
I also notice on this message system you have a sub menu ‘not resolved’, ‘resolved and ‘not a support question’, which is something I would also like to include.
I am trying to build a Project Management and Support system that includes tickets. I already have a general forum function via Buddypress, so I created a secondary forum page called tickets and included the shortcodes to configure it as a ticket system.
I have looked around the net and here extensively, so forgive me if I have overlooked something obvious.
Thanks in advance.
This seems to have the right idea, but I’m not sure it covers WP_Query queries where the search criteria is against a meta key. The query has to cast an unindexed full-text field to char across N rows to find matching values.
The generated query fragment that is problematic is this:
wp_postmeta.meta_key = '_bbp_topic_id'
AND CAST(wp_postmeta.meta_value AS CHAR) = '787852'
It’s a core issue since Threads are used to group up Posts.
Thanks Sniper Kitten, that’s very helpful.
What about the backtick functionality I keep seeing in the forums? From what I can guess, this is supposed to let you embed html tags (or similar) in a forum reply between backticks and have those tags show up (encoded) in the reply. Is this only a feature of 2.1 as well? It’s not working right now on my forum. This is really the only functionality I need right now.
Not exactly…
I have a page on my blog made in PHP with my own code. Let’s say something like <?php echo “Hello world” ?> For that I had to deactivate the Visual Editor for that page in the admin section.
And now I want the forum topic with ID number 12021 to appear below my PHP code in that page.
I guess using topic tags instead of forums would be a better idea performance-wise. The topic slug can be the tag slug and it could be automatically attached via a shortcode.
hi dannyjimmy.
The point was more to find some kind of way between blogcommenting that many times becomes such a stupid form of intellectual exchange, because it has become custom to not really think about what you want to bring attention to. Cheering, fanclubbing, “yeah i think so too” mixed in with people trying to decipher the thoughts revealed in an article, newspost, blog post or whatever. By making them type in a title and making and independent “in its own right”-kinda-style – they will be forced to be more focused and people considering responding will have to choose which comment to comment on – which again will make it more focused – because one thinks – why would I respond to this ?
But, seriously – this is awesome: http://hypercomments.com. Note the thing with marking a part of the text and it automatically becomes a topic separate from the comments – that is seriously good !
And besides using posts 2 posts plugin by scribu you can get some of the way – by making a forum quickly when making a post – check it out: https://wordpress.org/extend/plugins/posts-to-posts/
It is a matter of convenience because you can just make a forum and then include by shortcode. Alternatively one could display the category-text that belongs to the forum while listing the topics belonging to it. That is using the category as an aricle in its own right and somehow displaying it when listing the topics.
But thanks.
I just wanna ask, how did you add the latest discussion at the very top? Im kinda a newbie about this
So you’re wanting to display a list of topics related to a particular post at the bottom of said post?
So an example would be something like…
[post_title]
[post_content]
[related_forum_topics]
Is that correct? Do you need these topics to be added to the list automatically or would manual updates be ok?
I was troubleshooting an issue with a rather large migration to bbPress (1.6MM posts) and bbPress 2.0.2 is very slow to load thread pages.
It looks like bbPress (WP_Query) is trying to do an unindexed query lookup:
CAST(wp_postmeta.meta_value AS CHAR) = '787852'
The query takes quite some time and does a full table scan:
# Time: 120518 19:23:53
# User@Host: db[db] @ localhost []
# Query_time: 9.688145 Lock_time: 0.000050 Rows_sent: 3 Rows_examined: 1623367
SET timestamp=1337387033;
SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) WHERE 1=1 AND wp_posts.post_type IN ('topic', 'reply') AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'closed') AND ( (wp_postmeta.meta_key = '_bbp_topic_id' AND CAST(wp_postmeta.meta_value AS CHAR) = '787852') ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date ASC LIMIT 0, 25;
Here’s a simple stack trace:
/home/site/public_html/wp-includes/query.php 2498 get_sql () -- /home/site/public_html/wp-includes/
/home/site/public_html/wp-includes/query.php 2913 get_posts () -- /home/site/public_html/wp-includes/
/home/site/public_html/wp-includes/query.php 3000 query () -- /home/site/public_html/wp-includes/
/home/site/public_html/wp-content/plugins/bbpress/bbp-includes/bbp-reply-template.php 129 __construct () -- /home/site/public_html/wp-content/plugins/bbpress/bbp-includes/
/home/site/public_html/wp-content/themes/site/bbpress/content-single-topic.php 35 bbp_has_replies () -- /home/site/public_html/wp-content/themes/site/bbpress/
/home/site/public_html/wp-includes/theme.php 1117 require () -- /home/site/public_html/wp-includes/
/home/site/public_html/wp-includes/theme.php 1091 load_template () -- /home/site/public_html/wp-includes/
/home/site/public_html/wp-includes/general-template.php 128 locate_template () -- /home/site/public_html/wp-includes/
/home/site/public_html/wp-content/plugins/bbpress/bbp-includes/bbp-core-compatibility.php 144 get_template_part () -- /home/site/public_html/wp-content/plugins/bbpress/bbp-includes/
/home/site/public_html/wp-content/themes/site/single-topic.php 33 bbp_get_template_part () -- /home/site/public_html/wp-content/themes/site/
/home/site/public_html/wp-includes/template-loader.php 43 include () -- /home/site/public_html/wp-includes/
/home/site/public_html/wp-blog-header.php 16 require_once () -- /home/site/public_html/
/home/site/public_html/index.php 17 require () -- /home/site/public_html/
Here’s the $bbp_r query passed into WP_Query:
Array
(
[meta_query] => Array
(
[0] => Array
(
[key] => _bbp_topic_id
[value] => 1623928
[compare] => =
)
)
[post_type] => Array
(
[0] => topic
[1] => reply
)
[orderby] => date
[order] => ASC
[posts_per_page] => 25
[paged] => 1
=>
[post_status] => publish,closed
)
Hi there,
I’ve looking for a solution to show below one of my blog pages a topic discussion from bbpress forum. The problem I have is that this page has the Visual Editor off in order to write PHP inside for my convenience.
So I can’t use the shortocodes there and neither the php code as it appears in the plugin templates. Because the code has to make a loop to show all the discussion for this certain topic I think it is not possible to integrate a PHP code for that on my own PHP code…
Any idea about this?
WHOA. Face melting idea.
I could see it being good for blogs who post infrequently and get tons of traffic. Every post is so monumental it gets its own FORUM… this would be like… for the UN or the White House or something.
I’m in jest — anyone who gets more than 100 comments per thread might want this; 10-20 responding topics with 5-10 comments each…
I hear you… comments/replies can be spammy and dumb dumb… but, I mean, here’s the thing:
Once a user creates a topic, then all the conversation that follows in that forum will be, likewise, comments/replies. I.e. similarly unfocused and not very constructive. So I’m not sure that what you’re proposing solves the problem you’re presenting.
Also, forum topics are easier to skim the entire content of, forums not so much. And people want to skim blog comments.
That being said, I’m still smiling thinking about how epic it might be to spawn entire forums from single blog posts. (though I can’t claim I’d use the plugin if it were made)
You should be able to login here https://codex.bbpress.org/wp-admin/ with your bbPress username/pass.
Then just head to pages.
@softechnos : Main theme.
I am probably being stupid, but I can not see where I can contribute on any of the codex pages?
Yep! Anyone can login and edit that page or contribute to other pages on the codex
I am sure there is a better solution, but you could use something like
if ( bbp_has_topics( array( 'author' => 0, 'show_stickies' => false, 'order' => 'DESC', 'post_parent' => 'any', 'posts_per_page' => 5 ) ) )
bbp_get_template_part( 'bbpress/loop', 'latest-topics' );
Then use some css to remove everything except the avatars.
function bbp_list_forums( $args = '' ) {
// Define used variables
$output = $sub_forums = $topic_count = $reply_count = $counts = '';
$i = 0;
$count = array();
// Defaults and arguments
$defaults = array (
'before' => '<ul class="bbp-forums">',
'after' => '</ul>',
'link_before' => '<li class="bbp-forum">',
'link_after' => '</li>',
'count_before' => ' (',
'count_after' => ')',
'count_sep' => ', ',
'separator' => ', ',
'forum_id' => '',
'show_topic_count' => true,
'show_reply_count' => true,
'freshness_before' => '<td class="last-posted-box">',
'freshness_after' => '</td>',
'show_freshness_link' => true,
'freshness_author_before' => '<div class="author-box">',
'freshness_author_after' => '</div>'
);
$r = wp_parse_args( $args, $defaults );
extract( $r, EXTR_SKIP );
// Bail if there are no subforums
if ( !bbp_get_forum_subforum_count( $forum_id ) )
return;
// Loop through forums and create a list
if ( $sub_forums = bbp_forum_get_subforums( $forum_id ) ) {
// Total count (for separator)
$total_subs = count( $sub_forums );
foreach ( $sub_forums as $sub_forum ) {
$i++; // Separator count
// Get forum details
$count = array();
$show_sep = $total_subs > $i ? $separator : '';
$permalink = bbp_get_forum_permalink( $sub_forum->ID );
$title = bbp_get_forum_title( $sub_forum->ID );
// Show topic count
if ( !empty( $show_topic_count ) && !bbp_is_forum_category( $sub_forum->ID ) )
$count['topic'] = bbp_get_forum_topic_count( $sub_forum->ID );
// Show reply count
if ( !empty( $show_reply_count ) && !bbp_is_forum_category( $sub_forum->ID ) )
$count['reply'] = bbp_get_forum_reply_count( $sub_forum->ID );
// Counts to show
if ( !empty( $count ) )
$counts = $count_before . implode( $count_sep, $count ) . $count_after;
// Show topic count
if ( !empty( $show_freshness_link ) && !bbp_is_forum_category( $sub_forum->ID ) ) {
$freshness_link = bbp_get_forum_freshness_link( $sub_forum->ID );
$freshness_author = $freshness_author_before . bbp_get_author_link( array( 'post_id' => bbp_get_forum_last_active_id( $sub_forum->ID ), 'size' => 14 ) ) . $freshness_author_after;
$freshness_link = $freshness_before . $freshness_link . $freshness_author . $freshness_after;
}
// Build this sub forums link
$output .= $link_before . '<a href="' . $permalink . '" class="bbp-forum-link">' . $title . $counts . $freshness_link . '</a>' . $show_sep . $link_after;
}
// Output the list
echo $before . $output . $after;
}
}
This will give you more control over creating a theme which looks like Invision or PHPBB.
You will have to customize your theme as well to make sure it is compatible.
I just commented out the sidebar from all my bbpress template files, worked perfectly.
Did you add this in the main theme or in the bbpress twenty ten directory?