I think i ggot it:
Filters ‘bbp_get_topic_content’ and ‘bbp_get_reply_content’. They MUST run after wpautop, so i gave them priority 1000.
All of my code to get my plugin compatible with bbpress looks now:
/* We use bbPress */
// editor bbpress in tinymce mode
function wppa_enable_visual_editor_in_bbpress( $args = array() ) {
if ( wppa_switch( 'photo_on_bbpress' ) ) {
$args['tinymce'] = true;
$args['teeny'] = false;
}
return $args;
}
add_filter( 'bbp_after_get_the_content_parse_args', 'wppa_enable_visual_editor_in_bbpress' );
// remove insert wp image button
function wppa_remove_image_button_in_bbpress( $buttons ) {
if ( wppa_switch( 'photo_on_bbpress' ) ) {
if ( ( $key = array_search( 'image', $buttons ) ) !== false ) {
unset( $buttons[$key] );
}
}
return $buttons ;
}
add_filter( 'bbp_get_teeny_mce_buttons', 'rew_remove_image_button_in_bbpress' );
// enable processing shortcodes
function wppa_enable_shortcodes_in_bbpress( $content ) {
if ( wppa_switch( 'photo_on_bbpress' ) ) {
$content = do_shortcode( $content );
}
return $content;
}
add_filter( 'bbp_get_topic_content', 'wppa_enable_shortcodes_in_bbpress', 1000 );
add_filter( 'bbp_get_reply_content', 'wppa_enable_shortcodes_in_bbpress', 1000 );
Pleas be so kind to review this to see if i did it right or did oversee something.
Yes, in the content of the topic/reply. It makes from [photo 123] the html to display photo with id=123 from plugin wp-photo-album-plus – instead of a photo from the wp media library – according to the settings in the settings page of that plugin; e.g link to lightbox, subtitle and possible social media buttons to share the image.
The button that opens the dialog to select the photo, and optionally upload a new one, is now working without mods to bbpress, but it shows ‘[photo 123]’ instead of the picture. If the content would be filtered by the standard wp content filters, it would display the image, like it does in a wp native page or post.
where do you want that to put something – I presume in the content of a topic/reply? and what doe that shortcode do ?
Thank you, this works great!
One thing left: i can not find the filter to filter forum posts/replies, so i could do:
function my_process_shortcodes($content) {
return do_shortcodes($content);
}
add_filter( '...??...', 'my_process_shortcodes' );
@robin-w For some reason I have the same problem with the bbpress forum index. It does not work.
Here is the site link. But at the Forums level, no index.
The [bbp-forum-index] code is on the Forum created.
Any help would be great.
thanks for the post
bbpress includes a version of the wordpress ‘after..parse_args’ which will let you do this so for
•File …/wp-content/plugins/bbpress/includes/common/template.php line 1735:
change ‘tinymce’ => false, into ‘tinymce’ => true,
•File …/wp-content/plugins/bbpress/includes/common/template.php line 1736:
change ‘teeny’ => true, into ‘teeny’ => false,
you could put this code into a functions file or plugin
//editor bbpress
function rew_enable_visual_editor( $args = array() ) {
$args['tinymce'] = true;
$args['teeny'] = false;
return $args;
}
add_filter( 'bbp_after_get_the_content_parse_args', 'rew_enable_visual_editor' );
and the ability to filter functions so for
•File …/wp-content/plugins/bbpress/includes/common/template.php line 1858:
Remove array_push( $buttons, ‘image’ ); to remove the ‘standard’ image insert button that asks for a full url to an image, since we are replacing this by the [photo] shortcode generator.
use this code in your functions file or plugin
function rew_remove_image_button ($buttons) {
if (($key = array_search('image', $buttons)) !== false) {
unset($buttons[$key]);
}
return $buttons ;
}
add_filter( 'bbp_get_teeny_mce_buttons', 'rew_remove_image_button' );
The you don’t need to alter bbpress files
Let me know if I can help further
To make it possible for other plugins to add buttons to the editors toolbar, please make it possible to run the wp_editor() for posts/replies with the switches ‘tinymce’ => true and ‘teeny’ => false.
Also, make it please possible to get the posts/replies passing the ‘the_content’ or at least the ‘do_shortcode’ filter. This would enable other plugins to enter their shortcodes into the posts/replies and get them rendered in the final display of the posts/replies.
For more information why i ask this, please read this ducumentation page of the plugin wp-photo-album-plus.
ok, put it into the child theme and remove form the parent theme – that way it doesn’t get lost on updates
so you have a bbpress specific sidebar as per
Layout and functionality – Examples you can use
yes ?
If so then in your new bbpress.php replace
line 49 ish
<?php get_sidebar(); ?>
with
<?php dynamic_sidebar( 'bbp-sidebar'); ?>
That was it!
So… filters need to be passed a variable which gets returned in order to function properly?
Good to know, definitely not clear in the bbpress codex.
Thanks, Robin. Means alot!
-Dave
Try this
function cxr_subforum_filter($args) {
$args = (array (
'before' => '<tr>',
'after' => '</tr>',
'link_before' => '<td>',
'link_after' => '</td>',
'separator' => '<br>',
));
return $args ;
}
add_filter( 'bbp_before_list_forums_parse_args', 'cxr_subforum_filter' );
Perhaps I am missing something, but your code and my code seem to be identical… nevertheless, I copied and pasted your filter into the functions.php file in the child theme and it did not work…
Same result (502) errors.
Any other ideas?
This is a known bug
add this to your functions file
// Blocked users should NOT get an email to subscribed topics
function bbptoolkit_fltr_get_forum_subscribers( $user_ids ) {
if (!empty( $user_ids ) ) {
$new_user_ids = array();
foreach ($user_ids as $uid) {
if (bbp_get_user_role($uid) != 'bbp_blocked') {
$new_user_ids[] = $uid;
}
}
return $new_user_ids;
} else {
return $user_ids;
}
};
// add the filter
add_filter( 'bbp_forum_subscription_user_ids', 'bbptoolkit_fltr_get_forum_subscribers', 10, 1 );
I’d suspect issues with the quotation – different systems seem to alter these – try making them consistent – this might work
function cxr_subforum_filter() {
bbp_list_forums(array (
'before' => '<tr>',
'after' => '</tr>',
'link_before' => '<td>',
'link_after' => '</td>',
'separator' => '<br>',
));
}
add_filter( 'bbp_before_list_forums_parse_args', 'cxr_subforum_filter' );
If it doesn’t then come back and I’ll take a deeper look, midnight here and on way to bed !
When a new topic goes to moderation and is approved, some, but not all, of the regular new topic actions take place. One thing that does not seem to happen is sending out the new topic notification email. If possible, can the bbp_notify_forum_subscribers action be added when a forum topic is approved by a moderator (after checking to make sure notifications are enabled)? The new topic notifications are a great way to drive visitors to our forums, so this is turning into an issue on our site. The site owners want to be able to moderate most (or even all) of the new topics, but then no notification emails are sent out.
If this is something I should try to figure out on my own, please let me know and I’ll give it a shot. I didn’t want to mess with the bbpress core code since it would get overridden on the next update.
Thanks!
Matt
Wordpress Version: 4.7.8
BBPress Version: 2.5.14
I thought I followed the codex instructions pretty clearly, but this add_filter in my functions.php file is resulting in a 502 error and… I have no clue why!
Sorry, bbpress newbie here… any help that anyone can offer would be awesome.
Thanks in advance,
-Dave
PS Here’s the code I popped in my functions.php file:
function cxr_subforum_filter() {
bbp_list_forums(array (
‘before’ => ‘<tr>’,
‘after’ => ‘</tr>’,
‘link_before’ => ‘<td>’,
‘link_after’ => ‘</td>’,
‘separator’ => ‘<br>’,
));
}
add_filter( ‘bbp_before_list_forums_parse_args’, ‘cxr_subforum_filter’ );
I’ve now incorporated the code above into my bbp style pack
bbp style pack
dashboard>settings>bbp stylepack>forum order
I’ve now incorporated the code above into my bbp style pack
bbp style pack
dashboard>settings>bbp stylepack>forum order
Issue resolved.
Usernames had ‘ Disable the visual editor when writing’ switched off in profile
I’ve now incorporated the code above into my bbp style pack
bbp style pack
dashboard>settings>bbp stylepack>topic/reply form item 9
@elhardoum
Hi thanks your code works well..
Only the second part of code you added for returning exerpt isnt working for me.
I was using the bbpress topics for posts plugin only it is quuite old now and causes conflicts.
I would like to return in the new topics the post exerpt + a link back to the original post like this [See the full post at: post-title]
Would appreciate your help.
(:
Could be usesful for some…
Creating Content
Hi there,
WP: 4.8.2
BBP: 2.5.14
After digging into lots of pages, I finally found an old topic here that describes the same problem I have. As it’s an ancient topic, I started a new one.
For topics with more than 1000 replies, when posting new replies, bbpress does not add the page number to the reply permalink. I did as the user Matrixd said here(of course for new versions of bbpress with different paths):
Hello again, finally after John’s helpful tip, I was able to fix the issue. I found where BBpress does the number formatting and disabled it. In wp-content/plugins/bbpress/bbp-includes/bbp-common-functions.php I changed this line:
function bbp_number_format( $number = 0, $decimals = false, $dec_point = '.', $thousands_sep = ',' ) {
to:
function bbp_number_format( $number = 0, $decimals = false, $dec_point = '.', $thousands_sep = '' ) {
This removes the comma from the thousands separator. Now all topics pages appear correctly. Thanks!
And the problem solved!
But this is a core hack, I want it as an additional function without touching core files.
It looks like a conflict is causing the WPML language parameter to be added before bbPress adds its /edit/ endpoint.
I suppose it’s possible inside bbPress to try and handle that differently, but I’m reluctant to make it too fancy since it might break something else.
Without really looking, my guess is that WPML should filter the permalink at a later priority (as late as possible) so that all other filters have a chance to hook in normally first.
@dreuezekiel – ok try adding this to your functions file
add_filter('bbp_before_has_forums_parse_args', 'order_by_freshness', 10, 2);
function order_by_freshness ($args='') {
$args = array(
'meta_key' => '_bbp_last_active_time',
'orderby' => 'meta_value',
'order' => 'DESC',
);
return $args ;
}
if you don’t know how to do that, come back and I’ll wrap it in a baby plugin for you