The complete bbPress shortcode reference (with working examples for every one)
bbPress ships with 18 built-in shortcodes that render every part of your forum, topic lists, reply forms, user profiles, search, statistics, login blocks. Most tutorials cover the obvious three ([bbp-forum-index], [bbp-single-forum], [bbp-topic-form]) and stop there. The rest stay undocumented on most WordPress tutorial sites, which means bbPress developers waste hours digging through plugin source code every time they need to embed a reply form on a page that isn’t a topic.
This is the complete reference. Every shortcode, every parameter it accepts, a copy-paste example for each, and the HTML structure it outputs so you can style it without guessing. I keep this bookmarked on my own machine because the official bbPress Codex has half of them missing.
If you’re running bbPress in production, bookmark this page. If you’re new to bbPress, start from the top, the first five shortcodes cover 90% of real-world forum setups.
Quick reference table
[bbp-forum-index]Complete forum archive with all forumsMain forum landing page
[bbp-forum-form]New forum creation formAdmin-only pages for creating forums
[bbp-single-forum]One specific forum with its topicsEmbed a specific forum inside a page
[bbp-topic-index]All topics across all forums“Recent discussions” pages
[bbp-topic-form]New topic creation formSubmit-a-topic pages outside the forum
[bbp-single-topic]One specific topic with repliesEmbed a discussion on a page
[bbp-reply-form]Reply formStandalone reply submission page
[bbp-single-reply]One specific replyLink to or highlight a specific reply
[bbp-topic-tags]Topic tag cloudSidebar tag navigation
[bbp-single-tag]All topics with a given tagTag archive pages
[bbp-single-view]A predefined view (e.g. “popular”)Custom topic listings
[bbp-search]Forum search resultsSearch results pages
[bbp-search-form]Search input formAdd search to any page
[bbp-login]Login formLogin pages outside wp-login
[bbp-register]Registration formCustom signup flows
[bbp-lost-pass]Password reset formCustom password recovery pages
[bbp-stats]Forum statistics (topics, replies, users)Homepage or sidebar stats widgets
[bbp-single-user]One user’s profile pageEmbed user profiles
Everything below is the full reference with parameters, examples, and output. Scroll to the shortcode you need, or read top to bottom if you’re learning bbPress for the first time.
Forum shortcodes
[bbp-forum-index], the main forum archive
This is the shortcode you put on the page that acts as your forum home. It renders the complete list of forums, organized by category (if you’re using categories), with subforum nesting and last-activity metadata for each forum.
Parameters: None. It pulls everything from your bbPress settings.
Example:
[bbp-forum-index]
What it renders: An unordered list of categories containing forums. Each forum row shows the title, description, topic count, reply count, and last-active metadata. Wrapped in .bbp-forums with each forum in .bbp-forum-info.
Common gotchas:
- It only works on a page that has the default bbPress rewrite rules loaded. If you’re embedding on a custom post type, you may need to manually call
bbp_has_forums()instead. - Hidden forums (forums with visibility set to Private or Hidden) will not appear unless the current user has the right capabilities.
- Forum ordering follows the
menu_orderfield. Set it via WP admin or programmatically withwp_update_post.
[bbp-forum-form], new forum creation form
Shows a form for creating a new forum. This is almost always used on admin-only pages. Regular members shouldn’t have access to forum creation, only admins and forum moderators with the publish_forums capability.
Parameters: None.
Example:
[bbp-forum-form]
What it renders: A form with fields for forum title, description, parent forum, type (Forum or Category), status (Open or Closed), visibility (Public, Private, Hidden), and order.
Common use cases: Custom admin dashboards for community managers who don’t have full wp-admin access. Gate it with a capability check in your theme template.
[bbp-single-forum id="ID"], display a single forum
Render one specific forum and its topic list. This is useful when you want to embed a forum inside a page with other content, for example, a product page that has a Q&A forum embedded below the specs.
Parameters:
id, required. The numeric ID of the forum you want to display.
Example:
[bbp-single-forum id="42"]
What it renders: The forum title, description, and topic listing for forum ID 42. Shows the “new topic” form at the bottom if the current user has permission.
Finding the forum ID: In wp-admin, go to Forums, hover over any forum, and look at the URL in your browser’s status bar. The post= parameter is the forum ID.
Topic shortcodes
[bbp-topic-index], all topics across all forums
Renders a list of all topics from all forums, sorted by most recent activity. Useful for “Recent Discussions” pages or homepage widgets that surface community activity.
Parameters: None (but respects the _bbp_topics_per_page option set in bbPress settings).
Example:
[bbp-topic-index]
What it renders: Topic list with title, author, forum, freshness, and reply count. Same markup as inside a forum page.
[bbp-topic-form forum_id="ID"], new topic creation form
This is the shortcode you embed on a page where users can submit a new topic. Without the forum_id parameter, it shows a forum dropdown and the user picks where to post. With it, the form posts directly to a specific forum.
Parameters:
forum_id, optional. Numeric forum ID to lock the topic submission to one specific forum.
Example with forum lock:
[bbp-topic-form forum_id="42"]
Example without (user picks the forum):
[bbp-topic-form]
Common use case: A landing page that says “Ask a question” and only lets the user submit into your Q&A forum, hiding the other 20 forums from the dropdown.
[bbp-single-topic id="ID"], embed a specific topic
Render one specific topic with its replies inside a page. Useful for highlighting a canonical discussion, featuring a popular thread on your homepage, or building “best of” curated content.
Parameters:
id, required. Numeric topic ID.
Example:
[bbp-single-topic id="1234"]
What it renders: The topic’s lead post, all replies with author info, pagination if there are more replies than the per-page setting, and the reply form at the bottom (if the user has permission).
Reply shortcodes
[bbp-reply-form], standalone reply form
Renders a reply form that can be embedded outside a topic page. Rarely used in practice because replies typically belong under their parent topic, but it’s available for unusual workflows like moderation dashboards.
Parameters: None.
Example:
[bbp-reply-form]
[bbp-single-reply id="ID"], embed a single reply
Render one specific reply in isolation. Useful for creating permalink pages to specific answers, or for featuring “reply of the week” in an email digest.
Parameters:
id, required. Numeric reply ID.
Example:
[bbp-single-reply id="5678"]
Tag shortcodes
[bbp-topic-tags], topic tag cloud
Renders a tag cloud of all topic tags used across your forum. Tags with more topics appear larger. Good for sidebar navigation and surfacing trending subjects.
Parameters: None.
Example:
[bbp-topic-tags]
Output markup: Standard WordPress tag cloud wrapped in .bbp-topic-tags. Style via CSS like any other tag cloud.
[bbp-single-tag id="ID"], display topics for one tag
Shows all topics that have a specific tag. Useful for building custom tag archive pages or topic listings filtered by a tag you pre-selected.
Parameters:
id, required. Either the tag ID or the tag slug.
Example with slug:
[bbp-single-tag id="wordpress-help"]
Example with ID:
[bbp-single-tag id="15"]
View shortcodes
[bbp-single-view id="VIEW"], display a predefined view
bbPress comes with built-in “views” that act like saved filters: popular (most active topics) and no-replies (topics with zero replies). You can also register custom views in code via bbp_register_view().
Parameters:
id, required. The view identifier (slug-style).
Built-in views:
[bbp-single-view id="popular"]
[bbp-single-view id="no-replies"]
Custom view example (code):
// In your theme's functions.php
add_action( 'bbp_register_views', function() {
bbp_register_view( 'unanswered', __( 'Unanswered questions' ), array(
'meta_key' => '_bbp_reply_count',
'meta_value' => 0,
'meta_type' => 'NUMERIC',
'orderby' => 'date',
) );
} );
Then render with:
[bbp-single-view id="unanswered"]
Search shortcodes
[bbp-search], forum search results
Renders the search results page for bbPress’s built-in search. Typically placed on /forums/search/.
Parameters:
search, optional. Pre-fill the search term. Without it, the shortcode reads from the?bbp_search=query parameter.
Example:
[bbp-search search="migration"]
Gotcha: bbPress’s built-in search uses WordPress’s default LIKE-based search, which is slow on large forums and doesn’t understand bbPress-specific signals like “topics with accepted answers.” For any serious production forum, replace bbPress search with a FULLTEXT-based search plugin.
[bbp-search-form], search input form
Just the input box, not the results. Useful for adding a “Search the forums” widget anywhere on your site.
Parameters: None.
Example:
[bbp-search-form]
Account shortcodes
[bbp-login], login form
Renders a bbPress-styled login form that redirects to your forum after successful login. Useful for custom login pages outside wp-login.php.
Parameters: None (respects bbPress redirect settings).
Example:
[bbp-login]
Auto-hide when logged in: The shortcode automatically hides itself when the current user is already logged in. You can use this to create a single page that shows login to anonymous visitors and forum content to members.
[bbp-register], registration form
bbPress’s registration form. Respects whether registration is enabled in WordPress General Settings.
Parameters: None.
Example:
[bbp-register]
Gotcha: This form only renders if Anyone can register is enabled in Settings → General → Membership. If registration is disabled site-wide, the shortcode returns nothing.
[bbp-lost-pass], password reset form
Lost-password form styled to match bbPress. Sends the standard WordPress password reset email.
Parameters: None.
Example:
[bbp-lost-pass]
Statistics and user shortcodes
[bbp-stats], forum statistics summary
Renders high-level forum stats: total forums, total topics, total replies, total users, total tags, empty topics, hidden topics. Typically used on the forum index page or in a homepage sidebar widget.
Parameters: None.
Example:
[bbp-stats]
Output: A definition list (<dl>) with class bbp-stats. Style with CSS or override the template at your-theme/bbpress/content-statistics.php.
[bbp-single-user id="USER_ID"], embed a user’s profile
Render one user’s bbPress profile page inside another page. Useful for author boxes, “about the moderator” pages, or custom member directories.
Parameters:
id, required. The numeric WordPress user ID.
Example:
[bbp-single-user id="1"]
Real-world use cases
Use case 1: Custom forum homepage with stats + popular topics
Instead of the default bbPress forum index, build a custom page with stats, a popular-topics view, and then the forum list below. Put this on a page titled “Community”:
<h2>Community Stats</h2>
[bbp-stats]
<h2>Hot discussions</h2>
[bbp-single-view id="popular"]
<h2>All forums</h2>
[bbp-forum-index]
Use case 2: Landing page that funnels into a single forum
You have a “Help” landing page and you want visitors to submit their question directly to a specific forum (forum ID 42 in this example) without navigating the forum hierarchy first.
<h2>Ask the community</h2>
<p>Get help from our members. Questions are usually answered within 24 hours.</p>
[bbp-topic-form forum_id="42"]
<h3>Recent questions</h3>
[bbp-single-forum id="42"]
Use case 3: Custom login gate before showing forums
Restrict your forum behind a login by putting [bbp-login] and [bbp-register] on the same page as the forum index. bbPress will auto-hide the login when users are authenticated:
<h2>Members-only forum</h2>
[bbp-login]
<p>Don't have an account yet?</p>
[bbp-register]
<hr>
[bbp-forum-index]
When a visitor isn’t logged in, they see the login and register forms. Once authenticated, they see the forum index instead.
Use case 4: Embed a product-specific Q&A on a WooCommerce product page
Create one forum per product (or use one shared “Product Q&A” forum with tags), and embed it below the product description using a shortcode in the WooCommerce short description or via a page builder:
[bbp-single-forum id="88"]
The product’s Q&A appears inline below the specs. Members can ask questions without leaving the product page.
Troubleshooting common shortcode problems
Problem: Shortcode outputs as plain text, not rendered
This usually means bbPress isn’t initialized on the page where you’re embedding the shortcode. Check:
- Is bbPress activated? Go to Plugins and confirm.
- Is the page using the correct post type? bbPress shortcodes work on
pageandpostby default. If you’re using a custom post type, you may need to addadd_filter( 'the_content', 'do_shortcode' )for that post type. - Is another plugin filtering
the_content? Some page builders (Elementor, Beaver Builder, Divi) need shortcode widgets to render bbPress output correctly. Use the shortcode widget, not a plain text widget.
Problem: [bbp-single-forum id="X"] shows “Forum not found”
Three possible causes:
- The forum ID is wrong. Go to wp-admin → Forums, hover on the forum, and confirm the
post=value in the URL matches your shortcode. - The forum is in the Trash or set to Private/Hidden and the current user doesn’t have permission to see it.
- Your theme is overriding the bbPress template at
your-theme/bbpress/content-single-forum.phpwith broken code. Check your theme’s bbPress folder.
Problem: Reply form doesn’t appear on [bbp-single-topic]
The reply form auto-hides when:
- The topic is closed (check the topic’s status in wp-admin)
- The current user doesn’t have the
publish_repliescapability - The forum is set to “Moderation required” and the user is a new member
- Anonymous posting is disabled and the user isn’t logged in
Fix by checking the topic status and the user’s capabilities in that order.
Problem: Shortcode renders but styling is broken
bbPress loads its own stylesheet (bbpress.css) on pages where it detects bbPress content. If your shortcode is embedded on a page that bbPress doesn’t recognize as “a bbPress page,” the stylesheet may not enqueue.
Force it by adding this to your theme’s functions.php:
add_action( 'wp_enqueue_scripts', function() {
if ( function_exists( 'bbp_enqueue_style' ) ) {
wp_enqueue_style( 'bbp-default' );
}
}, 20 );
This is one of the most common bbPress styling issues in 2026 because modern block themes don’t always trigger bbPress’s auto-enqueue logic.
When shortcodes aren’t enough
bbPress shortcodes are a 2013-era way of embedding forum content. They work, they’re stable, and they’re the right tool if you’re running a bbPress forum and you want to embed parts of it elsewhere on your WordPress site.
But in 2026, there are some things shortcodes can’t do well:
- No Gutenberg block support. bbPress shortcodes work inside blocks, but there’s no native bbPress block set. You can’t drag-drop a “Forum Listing” block into your page like you can with every other modern plugin.
- No REST API. Shortcodes render server-side. If you want to build a custom React frontend, a mobile app, or a headless site, bbPress shortcodes don’t help.
- No dynamic parameters. Shortcodes accept static parameters (like
id="42"). If you want to dynamically filter topics by the current user, current date, or a custom query, you need to write template code. - Limited styling control. The HTML structure is fixed by bbPress’s templates. To radically change the layout, you override template files in your theme, which gets messy.
If you’ve hit any of these walls, and most bbPress developers do after a year or two of serious use, it’s worth knowing what the modern alternative looks like.
Jetonomy (from Wbcom Designs) is a WordPress forum plugin built with 2026 WordPress in mind. Instead of shortcodes, it ships with native Gutenberg blocks for every part of the forum: space listings, topic lists, user profiles, statistics, and search. Instead of a limited search, it exposes 48+ REST API endpoints so you can build anything on top of it. Instead of a fixed template hierarchy, it reads your theme’s theme.json and inherits your design tokens automatically, no custom CSS needed.
It also includes a built-in bbPress importer. If you’re running a production bbPress forum and you’ve outgrown shortcodes, you can migrate to Jetonomy in about 40 minutes with dry-run mode and resume-on-failure. Zero data loss on the migration I ran on a 15,000-post community.
This isn’t a sales pitch, bbPress shortcodes are still the right tool if you’re committed to bbPress and just need a reference. But if you’re on this page because you’ve hit a wall with shortcodes and you’re wondering whether there’s a modern alternative, the answer is yes. See my full bbPress review for 2026 and the 9 best bbPress alternatives for the full comparison.
Free Jetonomy download: store.wbcomdesigns.com/jetonomy/.
Frequently asked questions
How many shortcodes does bbPress have in total?
bbPress ships with 18 built-in shortcodes as of version 2.6. Some third-party bbPress extensions add their own shortcodes on top (for reactions, polls, and custom profile fields), but those aren’t part of the core plugin.
Can I use bbPress shortcodes inside Elementor or Divi?
Yes, but use the page builder’s dedicated shortcode widget, not a plain text block. In Elementor, drag a “Shortcode” widget and paste the bbPress shortcode inside. In Divi, use the “Code” module or enable shortcode parsing in your text blocks. Plain text widgets often strip the shortcode before rendering.
How do I find a bbPress forum ID or topic ID?
In wp-admin, go to Forums or Topics, hover over the item you want, and look at the URL in your browser’s status bar. The numeric value after post= is the ID. You can also use the WordPress REST API: /wp-json/wp/v2/forum lists all forums with their IDs.
Why does [bbp-forum-index] show no forums even though I have forums?
Three common causes: (1) all your forums are set to Private or Hidden and the current user lacks permission to see them, (2) you’re viewing the page as an unauthenticated user and your forums require login, (3) there’s a caching plugin that cached the page before bbPress was activated. Clear cache and try again.
Can I pass multiple forum IDs to [bbp-single-forum]?
No. The shortcode only accepts a single ID. If you want to show multiple forums on one page, use [bbp-forum-index] (which shows all forums) or write template code that calls bbp_has_forums() with a custom query array.
Do bbPress shortcodes work with Gutenberg?
They work inside the “Shortcode” block. They don’t render as native Gutenberg blocks, and they can’t be styled via block settings. bbPress does not ship with a native block set, if you need Gutenberg-native forum blocks, look at modern alternatives like Jetonomy that were built with the block editor in mind.
How do I add a bbPress shortcode to a widget?
Use the Text widget and enable “Execute PHP shortcodes” if your theme supports it, or use the dedicated Shortcode widget. In block-based widget areas, use the Shortcode block.
Can I customize the HTML output of bbPress shortcodes?
Yes, by overriding the template files in your theme. Create a bbpress folder in your active theme directory and copy the template files from wp-content/plugins/bbpress/templates/default/bbpress/ into it. bbPress will use your theme’s version instead of the plugin’s default. This is the same override pattern as WooCommerce.
Is there a shortcode to show only topics from the last 7 days?
Not directly. You’d need to register a custom view with bbp_register_view() that filters by date, then render it with [bbp-single-view id="recent"]. Example code is in the View shortcodes section above.
Why do some bbPress shortcodes no longer work after a WordPress update?
bbPress development has slowed significantly, no major release since 2020. When WordPress core changes template loading behavior or deprecates functions, bbPress sometimes breaks. The bbPress team ships patches eventually, but the delay can be months. If shortcode breakage is frequent on your site, it may be a signal that it’s time to evaluate a more actively maintained forum plugin.
Further reading
- bbPress Review 2026, honest 4-year assessment of bbPress including performance and modern alternatives.
- 9 Best bbPress Alternatives for 2026, dedicated alternatives breakdown for when shortcodes aren’t enough.
- 9 Best WordPress Forum Plugins for 2026, wider forum plugin landscape.
- Jetonomy free download, modern WordPress forum plugin with native Gutenberg blocks and a full REST API.
Author's Latest Articles
-
bbPress Vs BuddyPress: Complete 2026 Guide (Which One Do You Actually Need?)
-
10 Best WordPress Media Sharing Plugins in 2026
-
WP Career Board Pro: Kanban Pipeline, Multi-Board, Credits, and Resume Search for WordPress
-
WP Career Board: The Free Block-Native Job Board for WordPress (Complete Setup Guide)
