this
Function reference
suggests
pll_register_string($name, $string, $group, $multiline);
‘$name’ => (required) name provided for sorting convenience (ex: ‘myplugin’)
‘$string’ => (required) the string to translate
‘$group’ => (optional) the group in which the string is registered, defaults to ‘polylang’
‘$multiline’ => (optional) if set to true, the translation text field will be multiline, defaults to false
so maybe
pll_register_string( 'slug_users', '_bbp_user_slug', 'polylang' );
Here:
Theme My Login
You can install it from there.
Hi, I have WP WordPress 5.4 with bbPress 2.8.3.1 and Polylang Pro 2.7 installed.
All the forums, topics, replies, everything are correctly translated, except the user profile.
I even attempted to manually register the slug but didn’t work.
The code I used to try to register the slug was:
/* Translate Users profile slug with Polylang */
add_action( 'after_setup_theme','bbp_polylang_integration' );
function bbp_polylang_integration() {
if ( function_exists( 'pll_register_string' ) ) {
pll_register_string( 'slug_users', '_bbp_user_slug', 'URL slugs' );
}
}
I tried with _bbp_user_slug
and with users
as well.
found and fixed.
I’ve put the fix in my style pack plugin version 4.5.0
bbp style pack
once activated go to
dashboard>settings>bbp style pack>bug fixes
or put this in your child theme’s function file – or use
Code Snippets
add_filter ('bbp_get_topic_merge_link', 'rew_get_topic_merge_link' , 10 , 3) ;
add_filter ('bbp_is_topic_merge' , 'rew_is_topic_merge' ) ;
function rew_get_topic_merge_link( $args = array() ) {
// Parse arguments against default values
$r = bbp_parse_args( $args, array(
'id' => 0,
'link_before' => '',
'link_after' => '',
'merge_text' => esc_html__( 'Merge', 'bbpress' ),
), 'get_topic_merge_link' );
// Get topic
$topic = bbp_get_topic( $r['id'] );
// Bail if no topic or current user cannot moderate
if ( empty( $topic ) || ! current_user_can( 'moderate', $topic->ID ) ) {
return;
}
$uri = add_query_arg( array( 'action' => 'bbp-merge-topic' ), bbp_get_topic_edit_url( $topic->ID ) );
$retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" class="bbp-topic-merge-link">' . $r['merge_text'] . '</a>' . $r['link_after'];
// Filter & return
return apply_filters( 'rew_get_topic_merge_link', $retval, $r, $args );
}
function rew_is_topic_merge() {
// Assume false
$retval = false;
// Check topic edit and GET params
if ( bbp_is_topic_edit() && ! empty( $_GET['action'] ) && ( 'bbp-merge-topic' === $_GET['action'] ) ) {
return true;
}
// Filter & return
return (bool) apply_filters( 'rew_is_topic_merge', $retval );
}
Hi again, Robin,
I have found the conflict. It is:
“Another WordPress Classifieds Plugin (AWPCP)”
Not for me to criticise or condemn anything – I’m just naming it here in case anybody comes up against the same problem.
Best regards,
John
Hi guys,
Quite simply the “favorites” button does not show beside the subscribe button on any topic or forum on my site.
I have deactivated – reactivated bbPress. Tried the Twenty Seventeen Theme. Nothing has worked.
I have the latest WordPress version 5.4
I have bbPress version 2.6.4
My site is https://fashioncollaborate.com but you wont be able to see anything unless you are a subscribed member. I can provide admin credentials privately?
Hi Robin,
Thanks for the quick response. Yes I have a wordpress page called forums with the shortcode [bbp-forum-index] in the body.
From there, in my menus, the Forums link is linked to https://ticsandthoughts.com/forums/
Hi Robin,
Those that relate to BBpress are:
Advanced noCaptcha & invisible Captcha
bbP private groups
bbp style pack
bbPress Login Register Links On Forum Topic Pages
bbPress Messages
bbPress Unread Posts v2
LoginPress – Customizing the WordPress Login
WP User Avatar
I’m sure your next suggestion will be to disable them all, which I am happy to do if necessary, The forum is not publicly visible yet. I was just hopeful the OP may have already found the problem 🙂
Let me know if that’s the direction you would like me to go.
Best regards,
John
Put this in your child theme’s function file – or use
Code Snippets
function rew_get_topic_split_link( $retval, $r, $args ) {
// Parse arguments against default values
$r = bbp_parse_args( $args, array(
'id' => 0,
'link_before' => '',
'link_after' => '',
'split_text' => esc_html__( 'Split', 'bbpress' ),
'split_title' => esc_attr__( 'Split the topic from this reply', 'bbpress' )
), 'get_topic_split_link' );
// Get IDs
$reply_id = bbp_get_reply_id( $r['id'] );
$topic_id = bbp_get_reply_topic_id( $reply_id );
// Bail if no reply/topic ID, or user cannot moderate
if ( empty( $reply_id ) || empty( $topic_id ) || ! current_user_can( 'moderate', $topic_id ) ) {
return;
}
$uri = add_query_arg( array(
'action' => 'bbp-split-topic',
'reply_id' => $reply_id
), bbp_get_topic_edit_url( $topic_id ) );
$retval = $r['link_before'] . '<a href="' . esc_url( $uri ) . '" title="' . $r['split_title'] . '" class="bbp-topic-split-link">' . $r['split_text'] . '</a>' . $r['link_after'];
// Filter & return
return apply_filters( 'rew_get_topic_split_link', $retval, $r, $args );
}
add_filter ('bbp_get_topic_split_link', 'rew_get_topic_split_link' , 10 , 3) ;
function rew_is_topic_split() {
// Assume false
$retval = false;
// Check topic edit and GET params
if ( bbp_is_topic_edit() && ! empty( $_GET['action'] ) && ( 'bbp-split-topic' === $_GET['action'] ) ) {
$retval = true;
}
// Filter & return
return (bool) apply_filters( 'rew_is_topic_split', $retval );
}
add_filter ('bbp_is_topic_split' , 'rew_is_topic_split' ) ;
and come back and confirm that it works
do you have a wordpress page called forums?
I’d suggest you download this plugin – it should let you change the settings for forums
bbp style pack
Hello,
I am using the latest version of wordpress (5.4) and the most recent version of bbPress (2.6.4)
Website: ticsandthoughts.com
I am using the Responsive theme.
I am extremely new to all of this, so apologies if this is a dumb question. I recently set up a forum through bbPress and am wanting to remove the top text on the page “Archive: Forums”, as well as the text description “bbPress forums”.
Here’s a link to how it looks right now: https://ticsandthoughts.com/forums/
Thanks so much in advance!
Alex
@ajtruckle Most of the code I did is probably redundant as I think digital arms moderation tools does it
But the code for Clive immediately above notifies the user that their reply is in moderation.
so
1. create a WordPress page with a permalink of ‘/moderation/’
2. put whatever message you want in there eg ‘your reply is being held in moderation’
3. if you want you can also put the shortcode [mod-return] in the page as well which will post a return link to the topic
4. add the code above to functions file or code snippets
5. when a user (logged in or anonymous if you allow that) posts a reply that goes into moderation, they are directed to your moderation page, so get certainty that their post is being held in moderation, with a link back to their topic if you’ve added the shortcode
Put this in your child theme’s function file – or use
Code Snippets
add_action ('bbp_template_before_replies_loop' ,'rew_show_forum' ) ;
function rew_show_forum () {
$forum_id = bbp_get_topic_forum_id() ;
$title = bbp_get_forum_title($forum_id) ;
echo '<div class="rew-in-forum">In forum : '.$title.'</div>' ;
}
participants can create topics in all public and private forums.
Moderators have the ability to perform actins such as closing topics, deleting topics etc.
If you want some users to ony be able to create topics in ceraton forums, then you will need
Private groups
bbPress version 2.6 and wordpress 5.4
just had a thought
create a WordPress page with a permalink of ‘/moderation’ and in that put some text say
‘your post is being held pending moderation’
tehn put this in your child theme’s function file – or use
Code Snippets
//add message if reply held in moderation
add_filter ('bbp_new_reply_redirect_to' , 'rew_pending_check', 10 , 3) ;
function rew_pending_check ($reply_url, $redirect_to, $reply_id)
$status = get_post_status ($reply_id) ;
if ($status == 'pending' ) {
$reply_url = '/moderation/' ;
}
return $reply_url ;
}
not perfect by any means, but better than the nothing they now get
If you could test for me, I’ll see if I can improve how it works
I’ve had a play this evening with this issue.
This code is very rough and ready, but if it works as I think it does, then it shows pending REPLIES to the user who posted them and moderators and keymasters. NOT topics !!
so when a user posts a reply and it goes into moderation, they see there reply in the topic with a warning.
If you want to try it, put this in your child theme’s function file – or use
Code Snippets
add_filter ('bbp_has_replies' , 'rew_has_replies' ) ;
function rew_has_replies( $args = array() ) {
/** Defaults **************************************************************/
// Other defaults
$default_reply_search = bbp_sanitize_search_request( 'rs' );
$default_post_parent = ( bbp_is_single_topic() ) ? bbp_get_topic_id() : 'any';
$default_post_type = ( bbp_is_single_topic() && bbp_show_lead_topic() ) ? bbp_get_reply_post_type() : array( bbp_get_topic_post_type(), bbp_get_reply_post_type() );
$default_thread_replies = (bool) ( bbp_is_single_topic() && bbp_thread_replies() );
// Default query args
$default = array(
'post_type' => $default_post_type, // Only replies
'post_parent' => $default_post_parent, // Of this topic
'posts_per_page' => bbp_get_replies_per_page(), // This many
'paged' => bbp_get_paged(), // On this page
'orderby' => 'date', // Sorted by date
'order' => 'ASC', // Oldest to newest
'hierarchical' => $default_thread_replies, // Hierarchical replies
'ignore_sticky_posts' => true, // Stickies not supported
'update_post_term_cache' => false, // No terms to cache
// Conditionally prime the cache for all related posts
'update_post_family_cache' => true
);
// Only add 's' arg if searching for replies
// See https://bbpress.trac.wordpress.org/ticket/2607
if ( ! empty( $default_reply_search ) ) {
$default['s'] = $default_reply_search;
}
// What are the default allowed statuses (based on user caps)
if ( bbp_get_view_all( 'edit_others_replies' ) ) {
// Default view=all statuses
$post_statuses = array_keys( bbp_get_topic_statuses() );
// Add support for private status
if ( current_user_can( 'read_private_replies' ) ) {
$post_statuses[] = bbp_get_private_status_id();
}
// Join post statuses together
$default['post_status'] = $post_statuses;
// Lean on the 'perm' query var value of 'readable' to provide statuses
} else {
//get public and pending (not sure if we need this or just to remove the perm status that was here ?
$post_statuses = array_keys( rew_get_topic_statuses() );
}
/** Setup *****************************************************************/
// Parse arguments against default values
$r = bbp_parse_args( $args, $default, 'has_replies' );
// Set posts_per_page value if replies are threaded
$replies_per_page = (int) $r['posts_per_page'];
if ( true === $r['hierarchical'] ) {
$r['posts_per_page'] = -1;
}
// Get bbPress
$bbp = bbpress();
//now filter the query before execution
// Add filter if participant
$user_id = get_current_user_id() ;
$role = bbp_get_user_role( $user_id );
if ($role == 'bbp_participant' || $role == 'bbp_moderator' || bbp_is_user_keymaster($user_id)) {
add_filter( 'posts_where', 'rew_where' );
}
// Call the query
$bbp->reply_query = new WP_Query( $r );
// Remove filter
if ($role == 'bbp_participant' || $role == 'bbp_moderator' || bbp_is_user_keymaster($user_id)) {
remove_filter( 'posts_where', 'rew_where' );
}
// Maybe prime the post author caches
if ( ! empty( $r['update_post_family_cache'] ) ) {
bbp_update_post_family_caches( $bbp->reply_query->posts );
}
// Add pagination values to query object
$bbp->reply_query->posts_per_page = (int) $replies_per_page;
$bbp->reply_query->paged = (int) $r['paged'];
// Never home, regardless of what parse_query says
$bbp->reply_query->is_home = false;
// Reset is_single if single topic
if ( bbp_is_single_topic() ) {
$bbp->reply_query->is_single = true;
}
// Only add reply to if query returned results
if ( ! empty( $bbp->reply_query->found_posts ) ) {
// Get reply to for each reply
foreach ( $bbp->reply_query->posts as &$post ) {
// Check for reply post type
if ( bbp_get_reply_post_type() === $post->post_type ) {
$reply_to = bbp_get_reply_to( $post->ID );
// Make sure it's a reply to a reply
if ( empty( $reply_to ) || ( bbp_get_reply_topic_id( $post->ID ) === $reply_to ) ) {
$reply_to = 0;
}
// Add reply_to to the post object so we can walk it later
$post->reply_to = $reply_to;
}
}
}
// Only add pagination if query returned results
if ( ! empty( $bbp->reply_query->found_posts ) && ! empty( $bbp->reply_query->posts_per_page ) ) {
// Figure out total pages
if ( true === $r['hierarchical'] ) {
$walker = new BBP_Walker_Reply();
$total_pages = ceil( $walker->get_number_of_root_elements( $bbp->reply_query->posts ) / $bbp->reply_query->posts_per_page );
} else {
// Total for pagination boundaries
$total_pages = ( $bbp->reply_query->posts_per_page === $bbp->reply_query->found_posts )
? 1
: ceil( $bbp->reply_query->found_posts / $bbp->reply_query->posts_per_page );
// Pagination settings with filter
$bbp_replies_pagination = apply_filters( 'bbp_replies_pagination', array(
'base' => bbp_get_replies_pagination_base( bbp_get_topic_id() ),
'total' => $total_pages,
'current' => $bbp->reply_query->paged
) );
// Add pagination to query object
$bbp->reply_query->pagination_links = bbp_paginate_links( $bbp_replies_pagination );
}
}
// Filter & return
return apply_filters( 'rew_has_replies', $bbp->reply_query->have_posts(), $bbp->reply_query );
}
function rew_get_topic_statuses( $topic_id = 0 ) {
// Filter & return
return (array) apply_filters( 'bbp_get_topic_statuses', array(
bbp_get_public_status_id() => _x( 'Open', 'Open the topic', 'bbpress' ),
), $topic_id );
}
function rew_where( $where ) {
$user_id = get_current_user_id() ;
global $wpdb;
$posts = $wpdb->posts ;
return $where . " OR (
".$posts.".post_author = ".$user_id."
AND ".$posts.".post_status = 'pending'
) ";
}
add_action ('bbp_theme_before_reply_content' , 'rew_pending' );
function rew_pending () {
$id = bbp_get_reply_id() ;
$status = get_post_status ($id) ;
if ($status == 'pending' ) {
echo '<i><b>This reply is pending review and can only be seen by you and the administrators</b></i>' ;
}
}
Hi guys,
I’m also trying to remove @ mentions from Forums and Activity in Groups.
I have successfully removed the @Username from beneath the profile names of buddypress users.
I have both of the following in PHP Functions.
add_filter( ‘bp_activity_do_mentions’, ‘__return_false’ );
and
remove_filter( ‘bbp_make_clickable’, ‘bbp_make_mentions_clickable’, 8 );
Now what happens is, when I type “@” followed by a letter for example “J” for “Jack” it still brings up “Jack” user names but it doesnt actually tag them or turn into a link after selecting one. How do I turn off @mentions entirely so it doesnt bring up user names?
I hope that makes sense.
I am using the latest WordPress 5.4 and the latest Buddypress 5.1.2 and bbPress 2.6.4
Any help would be amazballs:)
bbpress will do fine, buddypress is not forum software, but the two work together if you want.
add this to get the styling of bbpress to match your forum
bbp style pack
unfortunately we can’t see that link without login details (which please do not show).
You should create an ordinary WordPress page, add a block with your text, and then follow this with a shortcode block with
[bbp-forum-index]
in it
We have only just set up our WordPress page so have the latest business version and latest bbpress version. We are using a Hero theme.
We have added a ‘block’ to our home forum page. The title is showing “welcome to our local community forum” but the text that we have written underneath isn’t showing up. We have tried adding this text as another block but that doesn’t show up either. How can we get this to show on our home page?
Also, we would like to edit the text type of the title ‘welcome to our local community forum’ and reduce the size. We can’t seem to find where to do this.
We had the following reply from the help at WordPress: I checked the page for your homepage here: https://wordpress.com/page/connectbuzz.net/197 If you will look at “Page Attributes” on the right side, then “Template” you see you assigned this page for the bbPress Forum Index. It makes the page inevitable. The page has to be blank, because bbPress will override anything that’s in there.
How can we get the text to show up?
Hello, I am running WordPress 5.4, we have Memberium 2.158, and we have installed Image Upload for bbPress Pro so our users can import images. Our issue is that a forum user cannot import more than one image unless they are the Keymaster. Image Upload says that’s not their problem, that it’s another plugin’s issue. Do others have a similar setup and have any advice on how to fix this? I can’t have all forum users set as Keymasters just so they can upload images? Thank you very much.
The process was as follows:
First, we added a field to our Active Directory, where we related each user to the WordPress role.
Then we downloaded that database from Active Directory to WordPress, syncing users and their WordPress roles
Also, once a day, WordPress syncs with Active Directory by rewriting the database with the modifications for that day.
Therefore, taking into account that the database is overwritten every day, I think that the most logical thing would be for bbpress to automatically assign the forum role of “Participant” to all users, except the administrator.