I’ve just started using bbpress and I like the simplicity of it. I’ve been trying to customize it to my need for the past 2 weeks (yeah, I am slow). This is something that I came up with that I’d like to share with the community since I’ve learned so much from over here. And I am really proud of myself for coming up with this since I usually suck at php and css.
If you want a new topic, or new reply button on top of your topics list ore replies list.
You can just add this code to your functions.php and you are good to go. This way, it will only show a “new topic” link if the user is logged in. If they are not, then it’ll show a text saying “to post a new topic register or login”. Of course, you can change the code to whatever you want. And make sure you change the links to your login and register pages. And you can add class to customize the text with css.
//function to add new topic thread
function bbp_login_thread_link() {
if ( is_user_logged_in() ) { ?>
<a href="#new-post">Create a new thread</a>
<?php }
else { ?>
<p> To create a new thread <a href="http://yourwebsite.com/login">login</a> or <a href="http://yourwebsite.com/register">register</a></p>
<?php }
}
add_action( 'bbp_template_before_single_forum' , 'bbp_login_thread_link' );
//function to add new reply thread
function bbp_post_reply_link() {
if ( is_user_logged_in() ) { ?>
<a href="#new-post">Post a Reply</a>
<?php }
else { ?>
<p> To post a reply <a href="http://yourwebsite/login">login</a> or <a href="http://yourwebsite/register">register</a></p>
<?php }
}
add_action( 'bbp_template_before_single_topic' , 'bbp_post_reply_link' );
I am hoping you guys can add this to this article which has examples of layout and functionality. That article helped me immensely and I will feel honoured to have contributed to it.
I originally posted this on the BuddyPress forums and it was suggested over there that I post it here too.
Rather than copy/paste it, here is the link to the original post:
Showing BuddyPress hidden group forums to group members on bbPress forum index
Any help woud be appreciated.
Yes, you did it. Everything is perfect now. Thanks a lot for your hard work. I guess this is solved now.
Actually, I still have other things related to this theme and bbpress but I guess I’ll create different topic for them. Hope you’ll help me with them too.
ok so if your code savvy, two approaches
1. the hack
I haven’t tried this, but it should work fine
go into
wp-content/plugins/bbpress/includes/common/shortcodes.php
and look at line
355 which says
bbp_get_template_part( 'content', 'single-topic' );
change that to
bbp_get_template_part( 'content', 'single-topicb' );
That will then get bbpress looking for a php file called ‘content-single-topicb.php’
so then you can use the method in my first post to create that file in your theme ie as per first post, but just rename the file with a b at the end.
YOU WILL need to change this each time bbpress upgrades as it will overwrite – hence why it is the hack ! But that’s hardly difficult !
2. the proper way
Would be to create your own version of the shortcode, by copying all that particular shortcode into your themes functions file, BUT renaming it (or you’ll get already loaded errors), and then lots of editing to get it to work.
Personally I’d go route 1, and just make a note to change that file each time bbpress upgrades
ok, I’ve worked out that error
You have two issues
1. the code is slightly wrong, I’ve corrected it in the documentation, but you need to change your line 168 from
function add_new roles( $bbp_roles )
to
function add_new_roles( $bbp_roles )
ie an underline between ‘new’ and ‘roles’
BUT MORE IMPORTANTLY
2. you have now put the code in a core functions file of bbpress, and it cannot run there as it calls code that has not yet been loaded.
The code needs to go into your THEME’s functions.php file, not any functions file with the PLUGIN bbpress.
Please read again
Functions files and child themes – explained !
ok the template you are after is
wp-content/bbpress/templates/default/bbpress/content-single-topic.php
this will alter it wherever this template is used.
make a copy of this template and put it in a directory called bbpress in the root of your theme, so you end up with
wp-content/themes/%your-theme-name%/bbpress/content-single-topic.php
where %your-theme-name% is the name of your theme
Then modify this file
to remove breadcrumbs take out line 14 which says
<?php bbp_breadcrumb(); ?>
then move line 44 (will probably be line 43 if you’ve taken out then breadcrumb!) which says
<?php bbp_get_template_part( 'form', 'reply' ); ?>
You may need to play with where to put it 9i haven’t tried it) , but after lines 21 & 22
<?php bbp_get_template_part( 'form', 'protected' ); ?>
<?php else : ?>
looks a good start, if not just keep moving it til you get what you want.
If you only want it to look like this for the shortcode, then that is doable but a lot more complicated !
now I added the code in functions.php
but the error message still appear:
Parse error: syntax error, unexpected T_STRING, expecting ‘(‘ in /home/u639474582/public_html/wp-content/plugins/bbpress/includes/core/functions.php on line 168
My Full Code:
http://pastebin.com/75iu9ijH
Hmm… not sure what’s going on here. Have you tested it on a default theme?
My avatars were not doing that the last I checked. I’m pretty sure they were auto-resizing smaller, and fitting in quite nice. But, I stopped using this bbPress theme before the last couple WordPress updates because it’s not responsive, and the default bbPress is. It’s possible something changed in the WordPress code to make it act different.
If you can make a child theme, you could try this to change the avatars’ size on the page where they’re squished with css:
bbp-topic-meta .avatar {
width: 30px;
height: 30px;
}
To make everything more organized, I decided to switch to forum instead of wordpress comments.
so you are you using bbpress topics for posts plugin??
https://wordpress.org/plugins/bbpress-post-topics/
well this functionality will be implemented on bbpress in the future
so you could add a suggestion for a feature in the trac topic
https://bbpress.trac.wordpress.org/ticket/2498
Are you sure you selected “PunBB” from the select platform list?
Do any of the forums and categories get imported? What about users?
I also haven’t tested punBB 1.4, I have done all my testing using 1.4.2
These are the settings I just used testing this:

And the results are working as expected for me (This screenshot includes a few enhancements coming in the next release of bbPress)

Don’t know ay plugin that restricts wordpress based on bbpress roles.
I use the plugin ‘restrict content’ to limit wordpress pages and then my plugin ‘bbp private groups’ to limit forum access.
On one site I then use manual registration to give users wordpress ‘subscriber’ and bbpress ‘participant’ roles, and on another automatic registration that does the same
ok, so now we are back to my first response which gave you two ways to do it.
If you want it within the screen, then add this to your functions file
//add login to top of index
function index_login () {
if (!is_user_logged_in() ) {
echo do_shortcode('[bbp-login]');
}
}
add_action ('bbp_template_before_forums_index', 'index_login' ) ;
see
Functions files and child themes – explained !
for how to do this
Is there a way to create simple WordPress pages with limited access to users based on their bbPress roles?
For instance, only Participants can access forums and see topics. Similarly, I want to create a normal WP page which would be accessible only to Participants (and admins of course).
have to say I am struggling from the screenshots to see what your issue is, the ‘correct’ one is all squashed up and impossible to read !
What plugin are using for the ‘paid’ bit? suspect that this works at wordpress user levels (subscriber, author, admin etc. ) not bbpress (participant, keymaster etc.)
ok, this theme has annoyed me so much that I have down loaded it.
I then saw that it claims to be a bbpress friendly theme, aghh!!! why not include a fullwidth forum????
so had a little play
on my test site the following works
bbpress.php looks like
<?php get_header(); // Loads the header.php template. ?>
<main>
<?php if ( have_posts() ) : // Checks if any posts were found. ?>
<?php while ( have_posts() ) : // Begins the loop through found posts. ?>
<?php the_post(); // Loads the post data. ?>
<article <?php hybrid_attr( 'post' ); ?>>
<?php if ( is_singular( get_post_type() ) ) : // If viewing a single page. ?>
<header class="entry-header">
<h1 <?php hybrid_attr( 'entry-title' ); ?>><?php single_post_title(); ?></h1>
</header><!-- .entry-header -->
<div <?php hybrid_attr( 'entry-content' ); ?>>
<?php the_content(); ?>
<?php wp_link_pages(); ?>
</div><!-- .entry-content -->
<?php else : // If not viewing a single page. ?>
<header class="entry-header">
<?php the_title( '<h2 ' . hybrid_get_attr( 'entry-title' ) . '><a href="' . get_permalink() . '" rel="bookmark" itemprop="url">', '</a></h2>' ); ?>
</header><!-- .entry-header -->
<div <?php hybrid_attr( 'entry-content' ); ?>>
<?php the_content(); ?>
<?php wp_link_pages(); ?>
</div><!-- .entry-content -->
<?php endif; // End single page check. ?>
</article><!-- .entry -->
<?php endwhile; // End found posts loop. ?>
<?php else : // If no posts were found. ?>
<?php locate_template( array( 'content/error.php' ), true ); // Loads the content/error.php template. ?>
<?php endif; // End check for posts. ?>
</main><!-- #content -->
<footer <?php hybrid_attr( 'footer' ); ?>>
<div class="wrap">
<?php hybrid_get_menu( 'social' ); // Loads the menu/social.php template. ?>
<p class="credit">
<?php printf(
/* Translators: 1 is current year, 2 is site name/link, 3 is WordPress name/link, and 4 is theme name/link. */
__( 'Copyright © %1$s %2$s. Powered by %3$s and %4$s.', 'stargazer' ),
date_i18n( 'Y' ), hybrid_get_site_link(), hybrid_get_wp_link(), hybrid_get_theme_link()
); ?>
</p><!-- .credit -->
</div><!-- .wrap -->
</footer><!-- #footer -->
</div><!-- #container -->
<?php wp_footer(); // WordPress hook for loading JavaScript, toolbar, and other things in the footer. ?>
</body>
</html>
Im looking to have someone built a theme for my Forums, and ensure compatibility with my site, i have a staging area set up, if someone can reach out to me that would be great its time Sensitive.
It looks like my footer and bbpress.php files was corrupted some where so I downloaded the theme and bbpress plugin and extracted the files and tried your method again.
This time, it worked, though not perfectly, the sidebar is gone but it’s still not full width.
And again, only content in http://www./forum which is bbpress root is not full width, everything else is ok.
Any suggestions ?
Hi
I want to install bbpress in a subdomain like —> forums.site.com
what I must to do?
getting this, code checker said it’s mssing ); ?> on line 52 or 50
Parse error: syntax error, unexpected ‘;’ in /home/a7203024/public_html/wp-content/themes/stargazer/bbpress.php on line 52
Just have this weird idea. What if we make a copy of footer.php, name it footer1.php then delete the getsidebar line in it. Afterthat, modified bbpress.php for it to call the footer1.php nstead of footer.php ?
Ok, now I’m noticing this.
If the forum content is at
http://www./forums which is where my forums page is at ( the page content bbp-index )
It wont show sidebar as the page is using the full width layout.
If the content is at http://www./forum which is where bbpress root is at, it will have the sidebar.
Maybe you’ll figure something out from that
And I’m just curious why is it hybrid_get_sidebar and not get_sidebar ?
Remove the hybrid caused problem with line 21 which is the
Copyright © 2014 The young marketers community . Powered by WordPress and Stargazer sentence.
The fact that your theme has coded the sidebar in the footer is really annoying !
No idea why that isn’t working, but plan b
change footer.php back to how it was, that way all the other pages will work.
now go back into bbpress.php and instead of the
<?php get_footer(); // Loads the footer.php template. ?>
paste the footer.php code, but without the two sidebar lines
</div><!– #main –>
</div><!– .wrap –>
<footer <?php hybrid_attr( ‘footer’ ); ?>>
<div class=”wrap”>
<?php hybrid_get_menu( ‘social’ ); // Loads the menu/social.php template. ?>
<p class=”credit”>
<?php printf(
/* Translators: 1 is current year, 2 is site name/link, 3 is WordPress name/link, and 4 is theme name/link. */
__( ‘Copyright © %1$s %2$s. Powered by %3$s and %4$s.’, ‘stargazer’ ),
date_i18n( ‘Y’ ), hybrid_get_site_link(), hybrid_get_wp_link(), hybrid_get_theme_link()
); ?>
</p><!– .credit –>
</div><!– .wrap –>
</footer><!– #footer –>
</div><!– #container –>
<?php wp_footer(); // WordPress hook for loading JavaScript, toolbar, and other things in the footer. ?>
and see what that does ! Sorry without having your theme, I’m guessing at some of the code, and am as before likely to miss some grammer so you may need to play a bit with it.
Apologies was trying to answer many threads with guests due for dinner, so prevouis answer was a bit short !
I followed it and copy-and-pasted the code into my capabilities.php
ahhh, now I understand, as per original thread you need to add that code to your functions.php, not to capabilities.php, and that would explain the error.
Whilst you could amend the participant role, I haven’t documented that, so easiest is just for you to create a new role and give it the participant capabilities plus the ‘delete topics’ and ‘delete replies’. This article explains how
Custom Capabilities
add this code to your functions file – see
https://codex.bbpress.org/functions-files-and-child-themes-explained/
late night brain fade
try
<?php if (!bbpress()) {hybrid_get_sidebar( ‘primary’ ); } // Loads the sidebar/primary.php template.?>
</div><!– #main –>
<?php if (!bbpress()) {hybrid_get_sidebar( ‘subsidiary’ ); }// Loads the sidebar/subsidiary