Yes, I’m definitely after a lock rather than a deterrent.
I’m going on the assumption that http requests for bbpress content returns a url with a path that has ‘forums’ in that position.
What are the ways that non-members can access content outside of that condition?
ie, what are the other conditions that I have to protect against?
Hi,
I’ve installed bbpress and made myself Keymaster.
When I start forums, topics and reply, however, my email is being shown, not my username.
This doesn’t seem to be the case with other people who have registered and posted.
Is this typical and can this be changed so my username shows up?
I think I found the solution 🙂 :
<?php
/**
* Single Forum Content Part
*
* @package bbPress
* @subpackage Theme
*/
// Exit if accessed directly
defined( 'ABSPATH' ) || exit;
?>
<div id="bbpress-forums" class="bbpress-wrapper">
<?php bbp_breadcrumb(); ?>
<?php //bbp_forum_subscription_link(); ?>
<?php do_action( 'bbp_template_before_single_forum' ); ?>
<?php if ( post_password_required() ) : ?>
<?php bbp_get_template_part( 'form', 'protected' ); ?>
<?php else : ?>
<?php //bbp_single_forum_description(); ?>
<?php if ( bbp_has_forums() ) : ?>
<?php bbp_get_template_part( 'loop', 'forums' ); ?>
<?php endif; ?>
<?php if ( ! bbp_is_forum_category() && bbp_has_topics() ) : ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'loop', 'topics' ); ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php elseif ( ! bbp_is_forum_category() ) : ?>
<?php if(bbp_get_forum_id() === $forum_id = 513): ?>
<?php bbp_get_template_part( 'rules' ); ?>
<?php else : ?>
<?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php ?>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
<?php do_action( 'bbp_template_after_single_forum' ); ?>
</div>
I tried another method but no way bbp_forum_id only displays the forum id.I tried with I tried with “bbp_get_forum_id” that doesn’t work either.
<div id="bbpress-forums" class="bbpress-wrapper">
<?php bbp_breadcrumb(); ?>
<?php //bbp_forum_subscription_link(); ?>
<?php do_action( 'bbp_template_before_single_forum' ); ?>
<?php if ( post_password_required() ) : ?>
<?php bbp_get_template_part( 'form', 'protected' ); ?>
<?php else : ?>
<?php //bbp_single_forum_description(); ?>
<?php if ( bbp_has_forums() ) : ?>
<?php bbp_get_template_part( 'loop', 'forums' ); ?>
<?php endif; ?>
<?php if ( ! bbp_is_forum_category() && bbp_has_topics() ) : ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'loop', 'topics' ); ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php elseif ( ! bbp_is_forum_category() ) : ?>
<?php if(bbp_forum_id() === '513'): ?>
<?php echo 'yes'; ?>
<?php else : ?>
<?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php ?>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
<?php do_action( 'bbp_template_after_single_forum' ); ?>
</div>
How can I restrict all forum content to members only?
I know that this is an oft-discussed topic, but I have yet to find a satisfactory solution.
I want to have a website that has public content and a private forum.
All posts and pages will be private – except for all forum content.
‘bbPress Members Only’is a great and mature solution, but it bars access to all posts and pages except for a few defaults.
Many membership plugins exist, including free ones. I could use one of those, but they not designed for this specific purpose. As such they require configuration for this specific case. This could work, but there are risks to privacy when configuring and updating a general-purpose plugin.
I found a plugin (sorry, can’t remember the name) that does most of what I want, but it leaves topic archives exposed. I think the point of that was that it allows a forum to advertise its content. This is the opposite of what I want.
The approach that I’m about to experiment with will be a programmatic one:
In PHP I will parse the URL. If the URL contains the string ‘forums’, then I’ll redirect the request to a gatekeeping page.
In the meantime, if anyone can tell me about an approach or a plugin that I’ve missed, then please let me know.
if you are using the ‘hello’ theme, then this plugin helps
Hello Elementor bbPress fix
WP 5.8.1 bbPress 2.6.6
Can the bbPress Forum 2.6.6 version be used with Elementor and or does it have a shortcode so that we can embed the forum onto an existing page.
Thanks
Greg
I am very unclear as to what you are trying to achieve.
if you want one forum say forum id 12345 to display differently, then just amend content-single-forum to
<?php
$forum_id = bbp_forum_id() ;
if $forum_id = '12345' {
?>
<div id="bbpress-forums" class="bbpress-wrapper">
<?php bbp_breadcrumb(); ?>
<?php bbp_forum_subscription_link(); ?>
<?php do_action( 'bbp_template_before_single_forum' ); ?>
<?php if ( post_password_required() ) : ?>
<?php bbp_get_template_part( 'form', 'protected' ); ?>
<?php else : ?>
<?php bbp_single_forum_description(); ?>
<?php if ( bbp_has_forums() ) : ?>
<?php bbp_get_template_part( 'loop', 'forums' ); ?>
<?php endif; ?>
<?php if ( ! bbp_is_forum_category() && bbp_has_topics() ) : ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'loop', 'topics' ); ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php elseif ( ! bbp_is_forum_category() ) : ?>
<?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php endif; ?>
<?php endif; ?>
<?php do_action( 'bbp_template_after_single_forum' ); ?>
</div>
<?php
}
else {
?>
<div id="bbpress-forums" class="bbpress-wrapper">
<?php bbp_breadcrumb(); ?>
<?php bbp_forum_subscription_link(); ?>
<?php do_action( 'bbp_template_before_single_forum' ); ?>
<?php if ( post_password_required() ) : ?>
<?php bbp_get_template_part( 'form', 'protected' ); ?>
<?php else : ?>
<?php bbp_single_forum_description(); ?>
<?php if ( bbp_has_forums() ) : ?>
<?php bbp_get_template_part( 'loop', 'forums' ); ?>
<?php endif; ?>
<?php if ( ! bbp_is_forum_category() && bbp_has_topics() ) : ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'loop', 'topics' ); ?>
<?php bbp_get_template_part( 'pagination', 'topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php elseif ( ! bbp_is_forum_category() ) : ?>
<?php bbp_get_template_part( 'feedback', 'no-topics' ); ?>
<?php bbp_get_template_part( 'form', 'topic' ); ?>
<?php endif; ?>
<?php endif; ?>
<?php do_action( 'bbp_template_after_single_forum' ); ?>
</div>
<?php } ?>
and change whichever display you want
Hi @robin-w,
thanks for your reply!
I managed to reproduce my problem:
I created a WordPress instance on wptaste.com, reinstalled the essential bbpress plugins as well as Elementor Pro and Astra Pro, trying to redo my settings by hand, the error did not reproduce , I then exported my settings from the original site to re-import them into the test site and there I got the error.
So I set out to reset my settings in Astra Pro and then redo them by hand, and now everything is back to normal.
I didn’t understand what it was, but I was able to isolate it and find a solution that didn’t take your time.
Thanks for putting me on the trail!
Best regards,
Ludovic from Reunion island 🇷🇪
you could try method 2 in this
Step by step guide to setting up a bbPress forum – Part 1
it might work, it might not 🙂
method 2 is picking up on the page template file in your theme, this is theme dependant.
If you can give us a link to a live example of method 1, and a non bbpress page in your site that has borders, I’ll try and help further.
Hi there 👋
I followed this step by step guide
👉 https://codex.bbpress.org/step-by-step-guide-to-setting-up-a-bbpress-forum/#3-%c2%a0creating-a-forum-page
And I’m annoyed with one quirk that I can’t seem to resolve: My borders aren’t showing!
With method # 1 my borders disappear and with method # 2 everything is normal.
How can I fix this please?

My regards,
Ludovic
Hi,
I just did something similar for Rank Math SEO plugin:
/**
* Sets bbPress user profile pages to noindex
*
* @param array $robots The meta robots directives.
*/
add_filter( 'rank_math/frontend/robots', function( $robots ) {
if (!bbp_is_single_user_profile()) {
return $robots;
}
unset( $robots['index']);
$robots['noindex'] = 'noindex';
return $robots;
});
Cheers
This whilst old still works well
bbPress – Moderation Tools
I have the same question. I am using bbPress as an integration with Profile Builder Pro. Has this question been answered yet?
ok, the line
echo esc_html__( 'You must be logged in to create new topics.', 'bbpress' ) . ' <a href="' . esc_url( thim_get_login_page_url() ) . '">' . esc_html__( 'Login here', 'bbpress' ) . '</a>';
is doing the Login Here
This line chooses the location from a setting in your theme thim_get_login_page_url()
so I suspect it is as simple as changing that setting to the page you want it to say, so look at your theme settings
If that doesn’t work, come back
Hi Robin,
Yes, I can see form-topic.php in the parent theme.
<?php
/**
* New/Edit Topic
*
* @package bbPress
* @subpackage Theme
*/
?>
<?php if ( !bbp_is_single_forum() ) : ?>
<div id="bbpress-forums">
<?php bbp_breadcrumb(); ?>
<?php endif; ?>
<?php if ( bbp_is_topic_edit() ) : ?>
<?php bbp_topic_tag_list( bbp_get_topic_id() ); ?>
<?php bbp_single_topic_description( array( 'topic_id' => bbp_get_topic_id() ) ); ?>
<?php endif; ?>
<?php if ( bbp_current_user_can_access_create_topic_form() ) : ?>
<div id="new-topic-<?php bbp_topic_id(); ?>" class="bbp-topic-form">
<form id="new-post" name="new-post" method="post" action="<?php the_permalink(); ?>">
<?php do_action( 'bbp_theme_before_topic_form' ); ?>
<fieldset class="bbp-form">
<legend>
<?php
if ( bbp_is_topic_edit() )
printf( __( 'Now Editing “%s”', 'bbpress' ), bbp_get_topic_title() );
else
bbp_is_single_forum() ? printf( __( 'Create New Topic in “%s”', 'bbpress' ), bbp_get_forum_title() ) : _e( 'Create New Topic', 'bbpress' );
?>
</legend>
<?php do_action( 'bbp_theme_before_topic_form_notices' ); ?>
<?php if ( !bbp_is_topic_edit() && bbp_is_forum_closed() ) : ?>
<div class="bbp-template-notice">
<p><?php _e( 'This forum is marked as closed to new topics, however your posting capabilities still allow you to do so.', 'bbpress' ); ?></p>
</div>
<?php endif; ?>
<?php if ( current_user_can( 'unfiltered_html' ) ) : ?>
<div class="bbp-template-notice">
<p><?php _e( 'Your account has the ability to post unrestricted HTML content.', 'bbpress' ); ?></p>
</div>
<?php endif; ?>
<?php do_action( 'bbp_template_notices' ); ?>
<div>
<?php bbp_get_template_part( 'form', 'anonymous' ); ?>
<?php do_action( 'bbp_theme_before_topic_form_title' ); ?>
<p>
<label for="bbp_topic_title"><?php printf( __( 'Topic Title (Maximum Length: %d):', 'bbpress' ), bbp_get_title_max_length() ); ?></label><br />
<input type="text" id="bbp_topic_title" value="<?php bbp_form_topic_title(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_title" maxlength="<?php bbp_title_max_length(); ?>" />
</p>
<?php do_action( 'bbp_theme_after_topic_form_title' ); ?>
<?php do_action( 'bbp_theme_before_topic_form_content' ); ?>
<?php bbp_the_content( array( 'context' => 'topic' ) ); ?>
<?php do_action( 'bbp_theme_after_topic_form_content' ); ?>
<?php if ( ! ( bbp_use_wp_editor() || current_user_can( 'unfiltered_html' ) ) ) : ?>
<p class="form-allowed-tags">
<label><?php _e( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes:','bbpress' ); ?></label><br />
<code><?php bbp_allowed_tags(); ?></code>
</p>
<?php endif; ?>
<?php if ( bbp_allow_topic_tags() && current_user_can( 'assign_topic_tags' ) ) : ?>
<?php do_action( 'bbp_theme_before_topic_form_tags' ); ?>
<p>
<label for="bbp_topic_tags"><?php _e( 'Topic Tags:', 'bbpress' ); ?></label><br />
<input type="text" value="<?php bbp_form_topic_tags(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_tags" id="bbp_topic_tags" <?php disabled( bbp_is_topic_spam() ); ?> />
</p>
<?php do_action( 'bbp_theme_after_topic_form_tags' ); ?>
<?php endif; ?>
<?php if ( !bbp_is_single_forum() ) : ?>
<?php do_action( 'bbp_theme_before_topic_form_forum' ); ?>
<p>
<label for="bbp_forum_id"><?php _e( 'Forum:', 'bbpress' ); ?></label><br />
<?php
bbp_dropdown( array(
'show_none' => __( '(No Forum)', 'bbpress' ),
'selected' => bbp_get_form_topic_forum()
) );
?>
</p>
<?php do_action( 'bbp_theme_after_topic_form_forum' ); ?>
<?php endif; ?>
<?php if ( current_user_can( 'moderate' ) ) : ?>
<?php do_action( 'bbp_theme_before_topic_form_type' ); ?>
<p>
<label for="bbp_stick_topic"><?php _e( 'Topic Type:', 'bbpress' ); ?></label><br />
<?php bbp_form_topic_type_dropdown(); ?>
</p>
<?php do_action( 'bbp_theme_after_topic_form_type' ); ?>
<?php do_action( 'bbp_theme_before_topic_form_status' ); ?>
<p>
<label for="bbp_topic_status"><?php _e( 'Topic Status:', 'bbpress' ); ?></label><br />
<?php bbp_form_topic_status_dropdown(); ?>
</p>
<?php do_action( 'bbp_theme_after_topic_form_status' ); ?>
<?php endif; ?>
<?php if ( bbp_is_subscriptions_active() && !bbp_is_anonymous() && ( !bbp_is_topic_edit() || ( bbp_is_topic_edit() && !bbp_is_topic_anonymous() ) ) ) : ?>
<?php do_action( 'bbp_theme_before_topic_form_subscriptions' ); ?>
<p>
<input name="bbp_topic_subscription" id="bbp_topic_subscription" type="checkbox" value="bbp_subscribe" <?php bbp_form_topic_subscribed(); ?> tabindex="<?php bbp_tab_index(); ?>" />
<?php if ( bbp_is_topic_edit() && ( bbp_get_topic_author_id() !== bbp_get_current_user_id() ) ) : ?>
<label for="bbp_topic_subscription"><?php _e( 'Notify the author of follow-up replies via email', 'bbpress' ); ?></label>
<?php else : ?>
<label for="bbp_topic_subscription"><?php _e( 'Notify me of follow-up replies via email', 'bbpress' ); ?></label>
<?php endif; ?>
</p>
<?php do_action( 'bbp_theme_after_topic_form_subscriptions' ); ?>
<?php endif; ?>
<?php if ( bbp_allow_revisions() && bbp_is_topic_edit() ) : ?>
<?php do_action( 'bbp_theme_before_topic_form_revisions' ); ?>
<fieldset class="bbp-form">
<legend>
<input name="bbp_log_topic_edit" id="bbp_log_topic_edit" type="checkbox" value="1" <?php bbp_form_topic_log_edit(); ?> tabindex="<?php bbp_tab_index(); ?>" />
<label for="bbp_log_topic_edit"><?php _e( 'Keep a log of this edit:', 'bbpress' ); ?></label><br />
</legend>
<div>
<label for="bbp_topic_edit_reason"><?php printf( __( 'Optional reason for editing:', 'bbpress' ), bbp_get_current_user_name() ); ?></label><br />
<input type="text" value="<?php bbp_form_topic_edit_reason(); ?>" tabindex="<?php bbp_tab_index(); ?>" size="40" name="bbp_topic_edit_reason" id="bbp_topic_edit_reason" />
</div>
</fieldset>
<?php do_action( 'bbp_theme_after_topic_form_revisions' ); ?>
<?php endif; ?>
<?php do_action( 'bbp_theme_before_topic_form_submit_wrapper' ); ?>
<div class="bbp-submit-wrapper">
<?php do_action( 'bbp_theme_before_topic_form_submit_button' ); ?>
<button type="submit" tabindex="<?php bbp_tab_index(); ?>" id="bbp_topic_submit" name="bbp_topic_submit" class="button submit"><?php _e( 'Submit', 'bbpress' ); ?></button>
<?php do_action( 'bbp_theme_after_topic_form_submit_button' ); ?>
</div>
<?php do_action( 'bbp_theme_after_topic_form_submit_wrapper' ); ?>
</div>
<?php bbp_topic_form_fields(); ?>
</fieldset>
<?php do_action( 'bbp_theme_after_topic_form' ); ?>
</form>
</div>
<?php elseif ( bbp_is_forum_closed() ) : ?>
<div id="no-topic-<?php bbp_topic_id(); ?>" class="bbp-no-topic">
<div class="bbp-template-notice">
<p><?php printf( __( 'The forum ‘%s’ is closed to new topics and replies.', 'bbpress' ), bbp_get_forum_title() ); ?></p>
</div>
</div>
<?php else : ?>
<div id="no-topic-<?php bbp_topic_id(); ?>" class="bbp-no-topic">
<div class="bbp-template-notice">
<p>
<?php
if(is_user_logged_in()) {
_e( 'You cannot create new topics.', 'bbpress' );
} else {
echo esc_html__( 'You must be logged in to create new topics.', 'bbpress' ) . ' <a href="' . esc_url( thim_get_login_page_url() ) . '">' . esc_html__( 'Login here', 'bbpress' ) . '</a>';
}
?>
</p>
</div>
</div>
<?php endif; ?>
<?php if ( !bbp_is_single_forum() ) : ?>
</div>
<?php endif; ?>
can you have a look at your parent theme to see if it has a folder ‘bbpress’ with form-topic.php
in it
Hi Robin!
Thanks for your quick reply and assistance. But there’s only one major challenge (at least to me) I am currently facing, which I’ll describe below:
Re: — “Then amend this file to take out the current form and put in a link”
I get the “what” to-do part (i.e. amending file…, creating a folder in my child theme, etc) but as for the “how?”, I have absolutely no idea. In all humility, I make no pretense of familiarity with php syntax or anything php code-related.
I see the <form>….</form> tags in my file below, should I remove it all and place https://mydomain.com/login?
<?php
/**
* User Login Form
*
* @package bbPress
* @subpackage Theme
*/
// Exit if accessed directly
defined( 'ABSPATH' ) || exit;
?>
<form method="post" action="<?php bbp_wp_login_action( array( 'context' => 'login_post' ) ); ?>" class="bbp-login-form">
<fieldset class="bbp-form">
<legend><?php esc_html_e( 'Log In', 'bbpress' ); ?></legend>
<div class="bbp-username">
<label for="user_login"><?php esc_html_e( 'Username', 'bbpress' ); ?>: </label>
<input type="text" name="log" value="<?php bbp_sanitize_val( 'user_login', 'text' ); ?>" size="20" maxlength="100" id="user_login" autocomplete="off" />
</div>
<div class="bbp-password">
<label for="user_pass"><?php esc_html_e( 'Password', 'bbpress' ); ?>: </label>
<input type="password" name="pwd" value="<?php bbp_sanitize_val( 'user_pass', 'password' ); ?>" size="20" id="user_pass" autocomplete="off" />
</div>
<div class="bbp-remember-me">
<input type="checkbox" name="rememberme" value="forever" <?php checked( bbp_get_sanitize_val( 'rememberme', 'checkbox' ) ); ?> id="rememberme" />
<label for="rememberme"><?php esc_html_e( 'Keep me signed in', 'bbpress' ); ?></label>
</div>
<?php do_action( 'login_form' ); ?>
<div class="bbp-submit-wrapper">
<button type="submit" name="user-submit" id="user-submit" class="button submit user-submit"><?php esc_html_e( 'Log In', 'bbpress' ); ?></button>
<?php bbp_user_login_fields(); ?>
</div>
</fieldset>
</form>
My question is and where do I amend this form-user-login.php file with my login url https://mydomain.com/login/?
If given a blueprint, I can certainly reproduce the steps faithfully when dealing with a similar issue
Can you (or anyone willing) please pinpoint the parts/lines to modify with the url? Thanks so much in advance.
Thanks, Robin
I set up bbPress on my other site, which runs the Karuna theme (https://www.in2itmusic.net/forums/topic/taize-or-celebration/), and it shows up correctly. It seems that something in the Native Church theme is causing the issue. I’ll contact their support.
Thanks again for looking into this!
Chris
I took a look at this, but cannot see what is causing the issue
it could be a theme or plugin issue
Themes
As a test switch to a default theme such as twentytwenty, and see if this fixes.
Plugins
If that doesn’t work, also deactivate all plugins apart from bbpress and see if this fixes. if it does, re-enable one at a time to see which is causing the error.
If you cannot do this to your site (say because it is live) then use the ‘troubleshooting’ features of this plugin to let you test without affecting other users
Health Check & Troubleshooting
Then come back
login here came with 2.6.x
bbpress has a template in
\templates\default\bbpress\form-user-login.php
you can change this to have a click link to any url you wish
find
wp-content/plugins/bbpress/templates/default/bbpress/form-user-login.php
transfer this to your pc and edit
and save
create a directory on your theme called ‘bbpress’
ie wp-content/themes/%your-theme-name%/bbpress
where %your-theme-name% is the name of your theme
Then amend this file to take out the current form and put in a link
Then transfer the file you saved above and put in in the directory called bbpress that you created above, so you end up with
wp-content/themes/%your-theme-name%/bbpress/form-user-login.php
bbPress will now use this template instead of the original
Hello Bbpress-ers!
I read somewhere in the forum that having a certain/recent version enabled a login form to appear rather than the “Login Here” url for forum guests.
I have Bbpress Version 2.6.6 and I see the “Login Here” displayed. My question is “Is this normal for the BBpress version I have”?
Screenshot
Login Here instead of Form
Assuming a login url is displayed, my question then is, how can i change the login url? The one listed right now isn’t the one I want. Is there a file I can modify and place in my childtheme?
Can you please assist me with it? Assuming the new login url I want is https://mydomain.com/custom_login_url/, how would you actually insert it in the php file you’ll show me above to replace the existing url? Thanks so much in advance.
H