Skip to content

Generated from source. Do not edit this file by hand - run php bin/generate-hooks-reference.php and it rebuilds from what the code actually fires. If a hook below has no description, add a docblock above the do_action() / apply_filters() call and regenerate.

237 hooks: 56 Free actions, 105 Free filters, 26 Pro actions, 50 Pro filters.

Hooks fired by Free are the extension surface Pro itself is built on - anything Pro can do to Free, your code can do too.


bp_member_blog_add_access_settings_options

Section titled “bp_member_blog_add_access_settings_options”

FROZEN HOOK: Fires after the display of access settings. Pro listens here to inject its own access-related options.

add_action( 'bp_member_blog_add_access_settings_options', function ( $bp_member_blog_gen_stngs ) { } );
Parameter Type Description
$bp_member_blog_gen_stngs array Plugin general setting option

Fired in includes/admin/views/access.php:211 · since 3.0.0

bp_member_blog_add_content_settings_options

Section titled “bp_member_blog_add_content_settings_options”

FROZEN HOOK: Fires after the display of content settings. Pro listens here to inject its own content-related options.

add_action( 'bp_member_blog_add_content_settings_options', function ( $bp_member_blog_gen_stngs ) { } );
Parameter Type Description
$bp_member_blog_gen_stngs array Plugin general setting option

Fired in includes/admin/views/content.php:301 · since 3.0.0

bp_member_blog_add_editor_settings_options

Section titled “bp_member_blog_add_editor_settings_options”

FROZEN HOOK: Fires after the display of editor settings. Pro listens here to inject its own editor-related options.

add_action( 'bp_member_blog_add_editor_settings_options', function ( $bp_member_blog_gen_stngs ) { } );
Parameter Type Description
$bp_member_blog_gen_stngs array Plugin general setting option

Fired in includes/admin/views/editor.php:109 · since 3.0.0

Fires inside the Category field’s <label>, before the “Category:” text. Distinct from bp_post_before_category (which fires before the whole field container) - this one fires further in, right at the label text.

add_action( 'bp_member_blog_before_category', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:815 · since 1.0.0

Fires before a member’s post list.

add_action( 'bp_member_blog_before_posts', function ( $status, $user_id ) { }, 10, 2 );
Parameter Type Description
$post_status string The list’s status: publish, draft or pending
$user_id int The member whose list this is

Fired in src/Rendering/MemberHomeRenderer.php:404 · since 4.3.0 Passes the home owner’s ID.

Action to display blocked message when user cannot post.

add_action( 'bp_member_blog_cannot_post_message', function ( $user_id ) { } );

Fired in public/class-buddypress-member-blog-public.php:2571 · since 3.0.0

Fires when series reading progress is updated. Frozen name - Pro has fired this since 2.0.0.

add_action( 'bp_member_blog_series_progress_updated', function ( $user_id, $series_id, $post_id ) { }, 10, 3 );
Parameter Type Description
$user_id int Reader
$series_id int Series
$post_id int Post

Fired in src/Services/SeriesProgress.php:98 · since 2.0.0

This action is documented below. */

add_action( 'bp_member_blog_tab_contents', function () { } );

Fired in includes/admin/views/layout.php:248 and 1 other place

Fires in the post form, immediately after the Category field.

add_action( 'bp_post_after_category', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:910 · since 1.0.0

Fires in the post form, immediately after the Content editor.

add_action( 'bp_post_after_content', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:767 · since 1.0.0

Fires in the post form, immediately after the Featured Image field.

add_action( 'bp_post_after_featured_image', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:1107 · since 1.0.0

Fires inside the Publishing Options panel, after the comment-status checkbox and its “field present” marker input. Extension point for the Publishing Options section (visibility, password, comments) - same bp_post_before_* / bp_post_after_* family used throughout this form, so third-party code that already hooks the other fields can extend this one the same way.

add_action( 'bp_post_after_publishing_options', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:1369 · since 1.0.0

Fires in the post form, immediately after the SEO Settings section.

add_action( 'bp_post_after_seo', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:1256 · since 1.0.0

Fires in the post form, immediately after the Tag field.

add_action( 'bp_post_after_tag', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:969 · since 1.0.0

Fires in the post form, immediately after the Title field.

add_action( 'bp_post_after_title', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:560 · since 1.0.0

Fires in the post form, immediately before the Category field.

add_action( 'bp_post_before_category', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:799 · since 1.0.0

Fires in the post form, immediately before the Content editor.

add_action( 'bp_post_before_content', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:571 · since 1.0.0

Fires in the post form, immediately before the Featured Image field. Note: Tag, Category and Featured Image are captured into ONE Essentials block, so this hook and bp_post_after_tag still bracket the Tag field exactly as before - they simply do it inside the panel.

add_action( 'bp_post_before_featured_image', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:984 · since 1.0.0

Fires in the post form, immediately before the SEO Settings section.

add_action( 'bp_post_before_seo', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:1132 · since 1.0.0

Fires immediately before the Publish/Submit/Save Draft buttons. The last of the bp_post_before_* / bp_post_after_* family in this form - useful for adding a field (e.g. a terms-of-service checkbox) that must be visible right above the submit action.

add_action( 'bp_post_before_submit_button', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:1446 · since 1.0.0

Fires in the post form, immediately before the Tag field.

add_action( 'bp_post_before_tag', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:935 · since 1.0.0

Fires in the post form, immediately before the Title field. One of a matched pair with bp_post_after_title, part of a family of before/after hooks bracketing every field in this form (title, content, category, tag, featured image, SEO, publishing options) so PRO and third-party code can inject markup at any point without patching the template.

add_action( 'bp_post_before_title', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:542 · since 1.0.0

Fires after a reaction (clap) is recorded and the post total has been refreshed. The stable, general-purpose seam for “a member reacted to a post” - named alongside {@see ‘bpmb_engagement_toggled’} so a site’s developer has one predictable place to hook every engagement event. Note the total is eventually-consistent: under concurrent claps a losing writer returns the live row-count while the mirror meta catches up on the next write (see {@see refresh_total()}).

add_action( 'bpmb_after_reaction', function ( $post_id, $user_id, $mine, $total ) { }, 10, 4 );
Parameter Type Description
$post_id int Post
$user_id int User
$mine int The member’s clap count for this post, after the cap
$total int The post’s total claps

Fired in src/Services/ReactionService.php:146 · since 4.0.0

Fires after the topic’s post list.

add_action( 'bpmb_after_topic_hub', function ( $bpmb_term ) { } );
Parameter Type Description
$term WP_Term Term

Fired in templates/topic-hub.php:122 · since 4.0.0

Fires after a post’s view count is incremented. FROZEN - Pro’s analytics and view-milestone notifications hang off this.

add_action( 'bpmb_after_view_increment', function ( $post_id ) { } );
Parameter Type Description
$post_id int The post ID

Fired in src/Services/ViewTracking.php:706 · since 3.2.0

Fires after the writer’s post list. Where Pro hangs the writer’s series.

add_action( 'bpmb_after_writer_profile', function ( $bpmb_writer_id ) { } );
Parameter Type Description
$user_id int Writer

Fired in templates/writer-profile.php:108 · since 4.0.0

Fires before the topic-hub header.

add_action( 'bpmb_before_topic_hub', function ( $bpmb_term ) { } );
Parameter Type Description
$term WP_Term Term

Fired in templates/topic-hub.php:64 · since 4.0.0

Fires before the writer-profile header.

add_action( 'bpmb_before_writer_profile', function ( $bpmb_writer_id ) { } );
Parameter Type Description
$user_id int Writer

Fired in templates/writer-profile.php:49 · since 4.0.0

Fires when a member saves a post.

add_action( 'bpmb_bookmark_added', function ( $user_id, $post_id ) { }, 10, 2 );
Parameter Type Description
$user_id int User
$post_id int Post

Fired in src/Services/BookmarkService.php:85 · since 4.0.0

Fires when a member unsaves a post.

add_action( 'bpmb_bookmark_removed', function ( $user_id, $post_id ) { }, 10, 2 );
Parameter Type Description
$user_id int User
$post_id int Post

Fired in src/Services/BookmarkService.php:129 · since 4.0.0

Action fired when all cache is cleared.

add_action( 'bpmb_cache_cleared', function () { } );

Fired in includes/class-bp-member-blog-access-control.php:850 · since 3.1.0

Fires inside the composer panel’s Collaboration section.

add_action( 'bpmb_composer_panel_collaboration', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:919 · since 4.1.0

Fires inside the composer panel’s Details section.

add_action( 'bpmb_composer_panel_details', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:1116 · since 4.1.0

Fires inside the composer panel’s Publishing section. Scheduling lives here. It used to hook bp_post_before_submit_button, which is also where co-author workflow ACTIONS (approve, reject) attach - and those belong on the action bar, not in a settings panel. One hook could not serve both, so publishing choices get their own slot.

add_action( 'bpmb_composer_panel_publishing', function ( $current_post_id ) { } );
Parameter Type Description
$current_post_id int The post being created (0) or edited

Fired in templates/edit.php:1387 · since 4.1.0

Fires after a digest batch is queued.

add_action( 'bpmb_digest_batch_sent', function ( $messages, $offset ) { }, 10, 2 );
Parameter Type Description
$sent int How many members got one
$offset int The batch offset

Fired in src/Services/DigestService.php:238 · since 4.0.0

Fires when the configured submission/edit page is missing or trashed, so the dashboard cannot build a real edit URL. A site’s developer can hook this to raise an admin notice prompting the owner to reselect the page.

add_action( 'bpmb_edit_url_page_missing', function ( $post_id, $settings ) { }, 10, 2 );
Parameter Type Description
$post_id int The post whose edit URL was requested
$page_id mixed The configured (now invalid) page ID

Fired in src/Services/DashboardService.php:401 · since 4.0.0

Fires after a member toggles an engagement state (bookmark / follow). The unified seam for “a member turned an engagement on or off”. Runs only after the write is confirmed. Bookmarks and follows both fire it, so a single listener can react to any engagement toggle without knowing which feature it was.

add_action( 'bpmb_engagement_toggled', function ( $arg1, $user_id, $arg3, $post_id, $saved ) { }, 10, 5 );
Parameter Type Description
$feature string ‘bookmark’
$user_id int The member
$object_type string ‘post’
$object_id int Post ID
$active bool True if it is now on (saved), false if now off

Fired in src/Services/BookmarkService.php:175 and 1 other place · since 4.0.0

Fires when somebody follows a writer or a series.

add_action( 'bpmb_followed', function ( $follower_id, $type, $object_id ) { }, 10, 3 );
Parameter Type Description
$follower_id int Follower
$type string ‘user’
$object_id int Target

Fired in src/Services/FollowService.php:109 · since 4.0.0

Fires after followers have been told about a new post.

add_action( 'bpmb_followers_notified', function ( $post_id, $author_id, $followers ) { }, 10, 3 );
Parameter Type Description
$post_id int The post
$author_id int The writer
$followers int[] Who was told

Fired in src/Services/FollowNotifier.php:408 · since 4.0.0

Fires when a member changes a notification preference.

add_action( 'bpmb_notification_pref_changed', function ( $user_id, $type, $on ) { }, 10, 3 );
Parameter Type Description
$user_id int Member
$type string Key
$on bool New value

Fired in src/Services/NotificationPrefs.php:230 · since 4.0.0

Fires when a pending post is approved (published now, or scheduled).

add_action( 'bpmb_post_approved', function ( $post_id, $arg2 ) { }, 10, 2 );
Parameter Type Description
$post_id int Post
$reviewer_id int Who approved it

Fired in src/Services/ModerationService.php:269 · since 4.0.0

Fires when a member claps a post.

add_action( 'bpmb_post_clapped', function ( $post_id, $user_id, $mine, $total ) { }, 10, 4 );
Parameter Type Description
$post_id int Post
$user_id int User
$mine int The member’s clap count for this post, after the cap
$total int The post’s total

Fired in src/Services/ReactionService.php:129 · since 4.0.0

Fires once when a member post enters review (not on every save while it waits). Fired at the end of the request that submitted it, so the post’s meta is written. Pro’s on-site reviewer notification hangs off this.

add_action( 'bpmb_post_entered_review', function ( $post_id, $arg2 ) { }, 10, 2 );
Parameter Type Description
$post_id int Post
$submitter_id int Who put it into review (0 for cron)

Fired in src/Services/ModerationNotifier.php:130 · since 4.3.0

Fires when a post is featured.

add_action( 'bpmb_post_featured', function ( $post_id, $order ) { }, 10, 2 );
Parameter Type Description
$post_id int Post
$order int Sort position

Fired in src/Services/FeaturedService.php:133 · since 4.0.0

Fires when a post is published. PRO plugin uses this to deduct credits.

add_action( 'bpmb_post_published', function ( $post_id, $post ) { }, 10, 2 );
Parameter Type Description
$post_id int Post ID
$user_id int User ID who published the post

Fired in public/class-buddypress-member-blog-public.php:3003 and 2 other places · since 3.1.0

Fires when a pending post is sent back to its author as a draft.

add_action( 'bpmb_post_rejected', function ( $post_id, $arg2 ) { }, 10, 2 );
Parameter Type Description
$post_id int Post
$reviewer_id int Who sent it back

Fired in src/Services/ModerationService.php:437 · since 4.3.0 The reason is stored in _bpmb_rejection_reason before this fires.

Fires when a post is un-featured.

add_action( 'bpmb_post_unfeatured', function ( $post_id ) { } );
Parameter Type Description
$post_id int Post

Fired in src/Services/FeaturedService.php:163 · since 4.0.0

Fires inside the posts toolbar, after the search form. The place for controls that narrow the list being shown - Pro’s category filter hooks here.

add_action( 'bpmb_posts_toolbar', function ( $tab ) { } );
Parameter Type Description
$post_status string The list’s status: publish, pending or draft

Fired in src/Rendering/MemberHomeRenderer.php:523 · since 4.1.1

Declare a block. Pro - and any third party - hooks here.

add_action( 'bpmb_register_blocks', function () { } );

Fired in src/Blocks/BlockRegistry.php:254 · since 4.0.0

Fires after a single member blog post’s content. The documented placement hook - a theme can move the related strip, or add its own furniture beside it, without filtering the_content.

add_action( 'bpmb_single_after_content', function ( $strip, $arg2 ) { }, 10, 2 );
Parameter Type Description
$strip string The rendered related-posts markup (‘’ when there is none)
$post_id int The post

Fired in includes/shortcodes/class-shortcode-related-posts.php:209 · since 4.0.0

Fires when somebody unfollows.

add_action( 'bpmb_unfollowed', function ( $follower_id, $type, $object_id ) { }, 10, 3 );
Parameter Type Description
$follower_id int Follower
$type string ‘user’
$object_id int Target

Fired in src/Services/FollowService.php:155 · since 4.0.0

Fires after a member unsubscribes from one notification type.

add_action( 'bpmb_unsubscribed', function ( $user_id, $type ) { }, 10, 2 );
Parameter Type Description
$user_id int Member
$type string Preference key

Fired in src/Services/Unsubscribe.php:151 · since 4.0.0

Fires once, after a 3.x site has been migrated to 4.0.0.

add_action( 'bpmb_upgraded_to_4', function ( $settings ) { } );
Parameter Type Description
$settings array The migrated settings

Fired in includes/class-buddypress-member-blog-upgrade.php:237 · since 4.0.0

Action fired when user cache is cleared.

add_action( 'bpmb_user_cache_cleared', function ( $user_id ) { } );
Parameter Type Description
$user_id int The user ID

Fired in includes/class-bp-member-blog-access-control.php:832 · since 3.1.0

Fires after the front-end post form’s nonce and submission checks pass, before any recaptcha or post-creation logic runs. Intended for third-party form-protection integrations (e.g. reCAPTCHA verification) that need to run before the post is processed. No arguments are passed; hook into $_POST directly and call wp_die() / redirect to block the submission.

add_action( 'buddypress_member_blog_post_save', function () { } );

Fired in public/class-buddypress-member-blog-public.php:1784 · since 1.0.0

Fires at the end of the front-end post form handler, after the post has been created or updated and its category, tags, Editor.js blocks, and SEO meta saved. Fires for BOTH the create and update paths (new post and edit post), and for both “Save Draft” and “Publish/Submit” actions - check the post’s actual post_status if you need to distinguish them.

add_action( 'buddypress_member_blog_post_submit', function ( $post_id ) { } );
Parameter Type Description
$post_id int The created or updated post ID

Fired in public/class-buddypress-member-blog-public.php:2279 · since 1.0.0

Filter the kses schema used to sanitize activity-feed excerpts of new blog posts.

add_filter( 'bp_member_blog_activity_allowed_html', function ( $allowed ) { return $allowed; } );
Parameter Type Description
$allowed array wp_kses-style schema

Fired in includes/buddypress-member-blog-functions.php:568 · since 3.4.1

Filter the admin settings tabs shown in the Member Blog hub. FROZEN HOOK: Pro plugin appends its own tabs here. Signature must remain apply_filters( 'bp_member_blog_admin_setting_tabs', $tabs ).

add_filter( 'bp_member_blog_admin_setting_tabs', function ( $tabs ) { return $tabs; } );
Parameter Type Description
$tabs array Array keyed by tab slug, each value array{label: string, icon: string, group: string}

Fired in includes/admin/class-bpmb-admin.php:126 · since 3.5.0

Filters the dashboard query args. FROZEN external contract (Pro’s co-authors module folds co-authored posts in through this). It is applied HERE so the SSR page and the AJAX pages get identical results - they used to disagree.

add_filter( 'bp_member_blog_dashboard_query_args', function ( $query_args, $user_id, $post_status, $tab ) { return $query_args; }, 10, 4 );
Parameter Type Description
$query_args array The query arguments
$user_id int The user ID
$post_status string The post status being queried
$tab string The active dashboard tab

Fired in src/Services/DashboardService.php:345 · since 3.1.0

Filter the URL segment for the Draft tab. Applied in exactly one place; both the nav registration and the pagination parser read the result, so they can no longer disagree.

add_filter( 'bp_member_blog_draft_slug', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$slug string Path segment. Default ‘draft’

Fired in includes/buddypress-member-blog-functions.php:1442 · since 3.4.1

Filter the resolved profile URL for a member-blog author. Fires from bp_member_blog_get_user_url() itself - note the filter shares its name with the function it filters, this is the hook, not a recursive call.

add_filter( 'bp_member_blog_get_user_url', function ( $url, $author_id ) { return $url; }, 10, 2 );
Parameter Type Description
$url string The resolved profile URL (BuddyPress member domain, or the standalone
$author_id int The author’s user ID

Fired in includes/buddypress-member-blog-functions.php:252 · since 1.0.0

Whether the member’s Blog tab is visible to the current visitor. The tab is registered for EVERYONE by default, including logged-out visitors: the screen only ever lists publish posts to a non-owner, and every owner action is separately gated. Return is_user_logged_in() to restore members-only behaviour.

add_filter( 'bp_member_blog_nav_visible', function ( $arg1, $user_id ) { return $arg1; }, 10, 2 );
Parameter Type Description
$visible bool Whether to register the Blog nav item
$user_id int The displayed user ID

Fired in public/class-buddypress-member-blog-public.php:1409 · since 4.0.0

Filter the pagination arguments.

add_filter( 'bp_member_blog_pagination_args', function ( $pagination_args, $query, $tab ) { return $pagination_args; }, 10, 3 );
Parameter Type Description
$pagination_args array The pagination arguments
$query WP_Query The WP_Query object
$tab string The current tab

Fired in includes/buddypress-member-blog-functions.php:456 · since 3.1.0

Filter the URL segment for the Pending tab. Applied in exactly one place; both the nav registration and the pagination parser read the result, so they can no longer disagree.

add_filter( 'bp_member_blog_pending_slug', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$slug string Path segment. Default ‘pending’

Fired in includes/buddypress-member-blog-functions.php:1474 · since 3.4.1

Filter the post content before it is loaded into the editor (Editor.js, Medium, or Classic) for editing. Runs BEFORE wp_kses_post(), so the result is still sanitized before display - a filter cannot use this to inject unsafe markup into the editor.

add_filter( 'bp_member_blog_post_content', function ( $blog_post ) { return $blog_post; } );
Parameter Type Description
$post_content string The stored post_content, or ‘’ for a new post

Fired in templates/edit.php:592 · since 1.0.0

Filter post data before updating. Allows PRO features like scheduling to modify post data on edits.

add_filter( 'bp_member_blog_post_data', function ( $post_data, $post_id_to_update ) { return $post_data; }, 10, 2 );
Parameter Type Description
$post_data array The post data array
$post_id_to_update int The post ID being updated

Fired in public/class-buddypress-member-blog-public.php:1993 and 1 other place

This filter is documented in src/Services/PostQuery.php */

add_filter( 'bp_member_blog_posts_per_page', function ( $per_page ) { return $per_page; } );

Fired in src/Services/DashboardService.php:309 and 2 other places

Filter to run PRO-only validation before a post is updated from the front-end form. PRO uses this for word-count limits and required custom fields. Return a non-empty array of error strings to block the save - the caller joins them into a single message, shows it to the member, and redirects back to the form.

add_filter( 'bp_member_blog_pro_validate_post', function ( $arg1, $post_data ) { return $arg1; }, 10, 2 );
Parameter Type Description
$validation_errors array Error messages so far. Default empty array (no errors)
$post_data array The post data about to be passed to wp_update_post()

Fired in public/class-buddypress-member-blog-public.php:2007 and 3 other places · since 3.1.0

Filter the published post count for navigation. Allows PRO plugin to include co-authored published posts.

add_filter( 'bp_member_blog_published_count', function ( $count, $user_id ) { return $count; }, 10, 2 );
Parameter Type Description
$count int The published post count
$user_id int The user ID

Fired in includes/buddypress-member-blog-functions.php:212 · since 3.1.0

Final escape hatch - let themes / integrations opt out per context.

add_filter( 'bp_member_blog_shortcode_areas_inject', function ( $arg1, $context ) { return $arg1; }, 10, 2 );
Parameter Type Description
$should_inject bool Whether to inject. Default true at this point
$context string ‘archive’ or ‘single’

Fired in includes/class-bp-member-blog-shortcode-areas.php:162 · since 3.5.0

Filter the raw shortcode string before rendering.

add_filter( 'bp_member_blog_shortcode_areas_raw', function ( $raw, $slot ) { return $raw; }, 10, 2 );
Parameter Type Description
$raw string Raw stored shortcode string
$slot string Slot key

Fired in includes/class-bp-member-blog-shortcode-areas.php:199 · since 3.5.0

Filter the theme-relative directory the plugin looks in for template overrides. The plugin checks <child-theme>/{this}/<template> then <parent-theme>/{this}/<template> before falling back to its own templates/<template>.

add_filter( 'bp_member_blog_template_dir', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$template_dir string Directory name, relative to the theme root. Default ‘bp-member-blog’

Fired in includes/buddypress-member-blog-functions.php:273 · since 1.0.0

Filter the get_categories() args used to build the post form’s category dropdown.

add_filter( 'bp_member_blog_terms_args', function ( $exclude ) { return $exclude; } );
Parameter Type Description
$args array {

Fired in templates/edit.php:843 · since 1.0.0

Filter user post counts to allow PRO plugin to include co-authored posts.

add_filter( 'bp_member_blog_user_post_counts', function ( $counts, $user_id ) { return $counts; }, 10, 2 );
Parameter Type Description
$counts object Object with published, drafts, pending, and total counts
$user_id int The user ID

Fired in includes/class-bp-member-blog-helpers.php:221 · since 3.1.0

Filter the label text used for the member’s Blog nav tab (BuddyPress/BuddyBoss profile nav).

add_filter( 'bp_member_change_blog_label', function ( $count ) { return $count; } );
Parameter Type Description
$blog_label string The nav item label, including the post-count <span>

Fired in public/class-buddypress-member-blog-public.php:1394 and 2 other places · since 1.0.0

Filter the label text for the standalone-mode admin-bar Blog menu. Note the misspelling (“lable” not “label”) - this is a legacy hook name kept exactly as originally shipped; renaming it would break any site already using it. Use {@see bp_member_change_blog_label} for the BuddyPress/BuddyBoss nav tab instead.

add_filter( 'bp_member_change_blog_lable', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$blog_label string The admin-bar menu label. Default ‘Blog’

Fired in public/class-buddypress-member-blog-public.php:3079 · since 3.0.0

Filter the URL segment the member blog lives on. This is the ONLY place the filter is applied - every other call site in Free and Pro goes through bp_member_blog_get_blog_slug(). The admin “tab slug” setting feeds this via bp_member_blog_apply_admin_tab_slug() at priority 5, so a theme or site filter at the default priority 10 still wins.

add_filter( 'bp_member_change_blog_slug', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$slug string The blog slug. Default ‘blog’

Fired in includes/buddypress-member-blog-functions.php:1407 · since 1.0.0

Filter whether a member may mark their own post private.

add_filter( 'bpmb_allow_private_posts', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$allowed bool Default true. Return false to remove the Private option from the

Fired in src/Services/PostSubmissionService.php:192 · since 4.0.0

Filter the list of iframe src hosts allowed in member blog post content.

add_filter( 'bpmb_allowed_iframe_hosts', function ( $defaults ) { return $defaults; } );
Parameter Type Description
$hosts string[] Lowercase hostnames (no scheme, no trailing slash)

Fired in buddypress-member-blog.php:952 · since 3.5.0

Filters the allowed MIME types for member image uploads.

add_filter( 'bpmb_allowed_image_mime_types', function ( $mimes ) { return $mimes; } );
Parameter Type Description
$mimes string[] Allowed MIME types

Fired in src/Services/MediaService.php:157 · since 3.0.0

Filter allowed member types for post creation.

add_filter( 'bpmb_allowed_member_types', function ( $types ) { return $types; } );
Parameter Type Description
$types array Array of allowed member type slugs

Fired in includes/class-bp-member-blog-access-control.php:714 · since 3.1.0

Filter allowed roles for post creation.

add_filter( 'bpmb_allowed_roles', function ( $roles ) { return $roles; } );
Parameter Type Description
$roles array Array of allowed role slugs

Fired in includes/class-bp-member-blog-access-control.php:688 · since 3.1.0

Filter the author-directory query args. THE extension point for who appears in the directory and in what order. Applied AFTER normalisation and BEFORE the cache read, so a filtered result is cached under its own key rather than colliding with the unfiltered one. Note the fast-path conditions below: leaving role empty, term_id 0 and orderby as post_count/total_views keeps the indexed stats-table path. Setting any of them is legitimate but falls through to the live aggregate, which costs more on a large site.

add_filter( 'bpmb_authors_query_args', function ( $args ) { return $args; } );
Parameter Type Description
$args array Normalised args (per_page, page, orderby, order, role, term_id)

Fired in src/Services/PostQuery.php:840 · since 4.0.0

Filter the reading-list query. Pro’s hook for collections / folders: narrow the set without a second implementation of the list.

add_filter( 'bpmb_bookmark_list_query_args', function ( $user_id, $user_id ) { return $user_id; }, 10, 2 );
Parameter Type Description
$args array { user_id, page, per_page }
$user_id int User

Fired in src/Services/BookmarkService.php:313 · since 4.0.0

Filter whether user can create posts. PRO plugin uses this to add: - Post count restrictions - Credits/balance checks - Time-based limits

add_filter( 'bpmb_can_create_post', function ( $can_create, $user_id ) { return $can_create; }, 10, 2 );
Parameter Type Description
$can_create bool Whether user can create posts
$user_id int The user ID

Fired in includes/class-bp-member-blog-access-control.php:176 · since 3.1.0

Filter whether user can delete a post. PRO plugin uses this to add: - Group blog admin permissions

add_filter( 'bpmb_can_delete_post', function ( $can_delete, $post_id, $user_id ) { return $can_delete; }, 10, 3 );
Parameter Type Description
$can_delete bool Whether user can delete the post
$post_id int The post ID
$user_id int The user ID

Fired in includes/class-bp-member-blog-access-control.php:324 · since 3.1.0

Filter whether user can edit a post. PRO plugin uses this to add: - Co-author edit permissions - Group blog admin/mod permissions

add_filter( 'bpmb_can_edit_post', function ( $can_edit, $post_id, $user_id ) { return $can_edit; }, 10, 3 );
Parameter Type Description
$can_edit bool Whether user can edit the post
$post_id int The post ID
$user_id int The user ID

Fired in includes/class-bp-member-blog-access-control.php:260 · since 3.1.0

Filter whether user can manage categories. PRO plugin uses this to add: - Group category management

add_filter( 'bpmb_can_manage_categories', function ( $can_manage, $user_id ) { return $can_manage; }, 10, 2 );
Parameter Type Description
$can_manage bool Whether user can manage categories
$user_id int The user ID

Fired in includes/class-bp-member-blog-access-control.php:659 · since 3.1.0

Filter whether user can publish a post. PRO plugin uses this to: - Deduct credits on publish - Check credit balance

add_filter( 'bpmb_can_publish_post', function ( $can_publish, $post_id, $user_id ) { return $can_publish; }, 10, 3 );
Parameter Type Description
$can_publish bool Whether user can publish the post
$post_id int The post ID (0 for new posts)
$user_id int The user ID

Fired in includes/class-bp-member-blog-access-control.php:417 · since 3.1.0

Filters whether a user may review member posts (the Member submissions queue, Approve, Reject). Granting it does not let the user publish past review or edit other posts.

add_filter( 'bpmb_can_review', function ( $user_id, $user_id ) { return $user_id; }, 10, 2 );
Parameter Type Description
$can bool Default: the user has edit_others_posts
$user_id int User, 0 when nobody is signed in

Fired in src/Services/ModerationService.php:114 · since 4.3.0

Filter whether user can view a draft post. PRO plugin uses this to add: - Co-author visibility

add_filter( 'bpmb_can_view_draft', function ( $can_view, $post_id, $user_id ) { return $can_view; }, 10, 3 );
Parameter Type Description
$can_view bool Whether user can view the draft
$post_id int The post ID
$user_id int The user ID

Fired in includes/class-bp-member-blog-access-control.php:512 · since 3.1.0

Filter whether a viewer may see an author’s unpublished posts. PRO uses this to widen visibility (group admins, co-authors).

add_filter( 'bpmb_can_view_unpublished', function ( $can_view, $author_id, $viewer_id ) { return $can_view; }, 10, 3 );
Parameter Type Description
$can_view bool Whether the viewer may see unpublished posts
$author_id int The author being listed
$viewer_id int The viewer (0 = logged-out)

Fired in includes/class-bp-member-blog-access-control.php:558 · since 3.5.1

Filters the plugin’s colour tokens for light mode. Return a map of token name => CSS value. Only the names in {@see self::COLOR_SEAM_TOKENS} are emitted; anything else is ignored, so a filter cannot make “danger” green or repaint the Google preview.

add_filter( 'bpmb_color_tokens', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$tokens array<string,string> Token name => value. Empty by default

Fired in public/class-buddypress-member-blog-public.php:638 · since 4.0.2

Filters the plugin’s colour tokens for dark mode. Same contract as bpmb_color_tokens. Emitted against the dark selector list so it beats the plugin’s own dark block, which a plain :root rule cannot.

add_filter( 'bpmb_color_tokens_dark', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$tokens array<string,string> Token name => value. Empty by default

Fired in public/class-buddypress-member-blog-public.php:650 · since 4.0.2

Filters the composer’s panel sections. Adding a key here gives an extension its own section in the panel rather than forcing it to squeeze into somebody else’s. Array order IS display order.

add_filter( 'bpmb_composer_sections', function ( $sections ) { return $sections; } );
Parameter Type Description
$sections array Section id => [ title, open ]

Fired in src/Rendering/Composer.php:87 · since 4.1.0

Filter the Content-Security-Policy header value sent on member blog editor pages. Default: frame-ancestors 'self'. A stricter policy must list every origin the site serves scripts, styles, fonts and embeds from (CDN, reCAPTCHA, oEmbed providers), or the editor will not load. Return an empty string to send no CSP header at all.

add_filter( 'bpmb_csp_policy', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$csp_policy string The semicolon-joined CSP directive string

Fired in public/class-buddypress-member-blog-public.php:104 · since 4.3.0 Default reduced to frame-ancestors 'self'.

Filters whether the dashboard prints its own heading.

add_filter( 'bpmb_dashboard_show_title', function ( $is_own_page, $user_id ) { return $is_own_page; }, 10, 2 );
Parameter Type Description
$show bool Default: false when the dashboard is the page’s own content
$user_id int Dashboard owner

Fired in public/class-buddypress-member-blog-public.php:3199 · since 4.3.0

Filters the fallback image used when a post has no featured image. Defaults to no image: a grey placeholder on every text-only post spent the card on a picture of nothing. Return a URL to bring a fallback back.

add_filter( 'bpmb_default_post_image', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$url string Fallback image URL, or ‘’ for none

Fired in src/Rendering/PostCardRenderer.php:1152 · since 4.1.1 Default changed from the bundled placeholder to ‘’.

Filter the digest body before the footer is appended.

add_filter( 'bpmb_digest_body', function ( $out, $user_id, $posts ) { return $out; }, 10, 3 );
Parameter Type Description
$out string Body HTML
$user_id int Member
$posts \WP_Post[] Posts

Fired in src/Services/DigestService.php:495 · since 4.0.0

Filter the COMPLETE digest e-mail content, body and unsubscribe footer together. Use this to wrap the whole message - a masthead above and a signature below, an HTML layout table, inline styles for a specific mail client - when a dev needs the finished article rather than just the post list. {@see ‘bpmb_digest_body’} is the narrower seam that edits only the body BEFORE the unsubscribe footer is appended; prefer it if you only want to touch the list of posts. A filter here MUST preserve the unsubscribe link the footer carries - recurring mail without a working one-click opt-out is spam, whatever the intent, and stripping it will burn the site’s sending reputation.

add_filter( 'bpmb_digest_content', function ( $content, $user_id, $posts ) { return $content; }, 10, 3 );
Parameter Type Description
$content string Full digest HTML (body + unsubscribe footer)
$user_id int Member
$posts \WP_Post[] Posts included in this digest

Fired in src/Services/DigestService.php:516 · since 4.0.0

Filter the EDD product ID for the free plugin.

add_filter( 'bpmb_edd_item_id', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$item_id int The product ID on wbcomdesigns.com

Fired in buddypress-member-blog.php:286 and 1 other place · since 4.0.0

Filters the fallback edit URL used when the configured edit page is invalid. Defaults to an inert ‘#’ so the button is a no-op rather than a broken link.

add_filter( 'bpmb_edit_url_fallback', function ( $arg1, $post_id ) { return $arg1; }, 10, 2 );
Parameter Type Description
$fallback string The fallback URL (‘#’)
$post_id int The post ID

Fired in src/Services/DashboardService.php:412 · since 4.0.0

Filters one email’s body, by id, after any template override.

add_filter( 'bpmb_email_body', function ( $message, $id ) { return $message; }, 10, 2 );
Parameter Type Description
$message `string array`
$id string Email id

Fired in src/Services/EmailDispatcher.php:120 · since 4.1.0

Filters whether a specific member-blog email is sent.

add_filter( 'bpmb_email_enabled', function ( $enabled, $id ) { return $enabled; }, 10, 2 );
Parameter Type Description
$enabled bool Whether to send
$id string Email id

Fired in src/Services/EmailRegistry.php:299 · since 4.1.0

Filters the colours used in member-blog emails.

add_filter( 'bpmb_email_palette', function ( $palette ) { return $palette; } );
Parameter Type Description
$palette array Hex values keyed by role

Fired in src/Services/EmailTemplate.php:65 · since 4.1.0

Filters one email’s subject, by id.

add_filter( 'bpmb_email_subject', function ( $subject, $id ) { return $subject; }, 10, 2 );
Parameter Type Description
$subject string Subject line
$id string Email id

Fired in src/Services/EmailDispatcher.php:97 · since 4.1.0

Filters the resolved template path for an email.

add_filter( 'bpmb_email_template_path', function ( $plugin, $id ) { return $plugin; }, 10, 2 );
Parameter Type Description
$path string Template path, or ‘’ when none exists
$id string Email id

Fired in src/Services/EmailRegistry.php:480 · since 4.1.0

Filters the catalogue of member-blog emails. Adding an entry here is what makes a new email discoverable to an admin screen, to is_enabled() and to the template-override lookup.

add_filter( 'bpmb_emails', function ( $emails ) { return $emails; } );
Parameter Type Description
$emails array Email definitions keyed by id

Fired in src/Services/EmailRegistry.php:262 · since 4.1.0

Filters the categories members may not post into. FROZEN - Pro’s restrictions module extends the list.

add_filter( 'bpmb_enforced_excluded_categories', function ( $excluded_ids, $user_id ) { return $excluded_ids; }, 10, 2 );
Parameter Type Description
$excluded_ids int[] Excluded term IDs from settings
$user_id int The submitting user

Fired in src/Services/PostSubmissionService.php:310

Override an engagement switch. The admin setting is the site owner’s answer; this filter is the developer’s, and it wins - so a theme can suppress the bar on one post type, or one post, without touching the setting.

add_filter( 'bpmb_engagement_enabled', function ( $enabled, $what ) { return $enabled; }, 10, 2 );
Parameter Type Description
$enabled bool Whether it is on
$what string claps

Fired in includes/buddypress-member-blog-functions.php:1223 · since 4.0.0

Force the card stylesheet on. For a theme or a plugin that renders a shortcode outside post_content - a widget, a template part, a page builder - where neither has_shortcode() nor has_block() can see it.

add_filter( 'bpmb_enqueue_card_styles', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$needed bool Whether to enqueue

Fired in includes/shortcodes/class-shortcodes-loader.php:414 · since 4.0.0

Filter the capability required to feature a post.

add_filter( 'bpmb_feature_capability', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$cap string Default edit_others_posts - an EDITOR, not an author. An author

Fired in src/Services/FeaturedService.php:53 · since 4.0.0

Filter the feature list shown on the Features screen.

add_filter( 'bpmb_features', function ( $features ) { return $features; } );
Parameter Type Description
$features array The features

Fired in includes/class-bpmb-features.php:120 · since 4.0.0

Filter who gets told about a new post from a writer they follow.

add_filter( 'bpmb_follow_notify_recipients', function ( $followers, $post_id, $author_id ) { return $followers; }, 10, 3 );
Parameter Type Description
$followers int[] Follower user IDs
$post_id int The post
$author_id int The writer

Fired in src/Services/FollowNotifier.php:297 · since 4.0.0

Filter the taxonomies a member can follow. Default array( 'category' ) - NOT every taxonomy the hub renders for. Adding post_tag makes every tag on the site followable, which on a community site means thousands of followable things and a reading feed full of near-duplicates. See the method docblock.

add_filter( 'bpmb_followable_taxonomies', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$taxonomies string[] Taxonomy names a member may follow

Fired in src/Frontend/TermArchive.php:138 · since 4.0.0

Filter the human-readable action sentence for the ‘new_blog_post’ activity type. Called by BuddyPress ({@see register_activity_actions()}) when it needs a sentence to display in the activity stream for a member’s new post.

add_filter( 'bpmb_format_activity_action_new_blog_post', function ( $formatted, $activity ) { return $formatted; }, 10, 2 );
Parameter Type Description
$formatted string The formatted sentence, e.g. “User wrote a new blog post: Title”
$activity object The BP_Activity_Activity object

Fired in public/class-buddypress-member-blog-public.php:4143 · since 3.5.0

Filter whether a comment on this post awards the post author gamification points. Defaults to true for the standard post type (the member-blog post type). A site can narrow this (e.g. only certain categories) or widen it to other post types.

add_filter( 'bpmb_gamification_award_comment_for_post', function ( $post, $post ) { return $post; }, 10, 2 );
Parameter Type Description
$eligible bool Whether the post qualifies for the comment award. Default true for post
$post WP_Post The post that received the comment

Fired in wb-gamification.php:125 · since 4.0.0

Filters whether PeepSo’s own “Blog” profile tab (segment blogposts) is hidden. PeepSo core lists a member’s WordPress posts under its own “Blog” tab. With Member Blog active that is a second tab with the same name beside ours, so it is removed by default. PeepSo registers it at priority -99; this runs at 100. Only the tab goes: a bookmarked /blogposts/ URL still renders PeepSo’s segment.

add_filter( 'bpmb_hide_peepso_blogposts_tab', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$hide bool True to hide PeepSo’s Blog tab. Default true

Fired in public/class-buddypress-member-blog-public.php:3690 · since 4.3.0

Filter the icon registry. Add an icon by supplying its INNER svg markup (paths, lines, polygons) - the wrapper, viewBox and stroke settings come from bpmb_icon().

add_filter( 'bpmb_icon_registry', function ( $icons ) { return $icons; } );
Parameter Type Description
$icons array<string,string> Icon name => inner SVG markup

Fired in includes/bpmb-icons.php:142 · since 4.0.0

Filters the Discover catalog. Pro and third-party add-ons extend the range here rather than waiting for a core release. An entry with an item_id and key becomes installable; one with only a store_url renders as “Learn more”.

add_filter( 'bpmb_installer_catalog', function ( $catalog ) { return $catalog; } );
Parameter Type Description
$catalog array Catalog keyed by slug

Fired in includes/admin/class-bpmb-plugin-installer.php:227 · since 4.0.0

Filter whether a post counts as a member blog post. Posts created before 4.1.1 carry no mark, so a site that wants its existing posts treated as member blog posts can say so here.

add_filter( 'bpmb_is_member_blog_post', function ( $is_ours, $post_id ) { return $is_ours; }, 10, 2 );
Parameter Type Description
$is_ours bool Whether the post is a member blog post
$post_id int Post ID

Fired in includes/buddypress-member-blog-functions.php:1536 · since 4.1.1

Filter the per-member clap cap.

add_filter( 'bpmb_max_claps', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$max int Default 50, as Medium

Fired in src/Services/ReactionService.php:65 · since 4.0.0

Filters the maximum member upload size, in MEGABYTES. Applies only when the site owner has set an explicit limit; with no setting there is no megabyte figure of ours to filter, and the server’s own limit stands.

add_filter( 'bpmb_max_upload_size', function ( $mb ) { return $mb; } );
Parameter Type Description
$mb int Maximum upload size in megabytes

Fired in src/Services/MediaService.php:232 · since 3.0.0

Filter the member-home tab set, shared by the profile Blog tab and the dashboard. Add a tab with a render callable (it receives the home owner’s user ID) and a position; Pro adds Calendar (40), Analytics (50) and Settings (90) here. The slug is the dashboard’s ?tab= value and the profile sub-nav slug.

add_filter( 'bpmb_member_home_tabs', function ( $tabs, $user_id, $owner ) { return $tabs; }, 10, 3 );
Parameter Type Description
$tabs array Tabs keyed by slug
$user_id int Home owner
$context array { owner: bool, writer: bool } for the current viewer

Fired in src/Services/DashboardService.php:245 · since 4.3.0

Filter whether editing an already-published post sends it back for review.

add_filter( 'bpmb_moderate_edits', function ( $arg1, $current ) { return $arg1; }, 10, 2 );
Parameter Type Description
$moderate_edits bool Default false - the post stays live
$current string The post’s current status

Fired in src/Services/PostSubmissionService.php:123 · since 4.0.0

Filter the notification preference keys and their defaults.

add_filter( 'bpmb_notification_pref_defaults', function ( $defaults ) { return $defaults; } );

Fired in src/Services/NotificationPrefs.php:96 · since 4.0.0

Filter the human-readable labels shown on the one-click unsubscribe confirmation page. Keys must match the preference keys from {@see bpmb_notification_pref_defaults} - a key with no matching label here falls back to the raw preference key in the confirmation message. Pro’s Author Settings screen has its own labels for the full preferences UI; this filter only affects the “Done. You will no longer receive {label}.” wp_die() page.

add_filter( 'bpmb_notification_pref_labels', function ( $arg1 ) { return $arg1; } );

Fired in src/Services/Unsubscribe.php:212 · since 4.0.0

Filter the member blog block added to a PeepSo activity entry.

add_filter( 'bpmb_peepso_activity_block', function ( $out, $post_id ) { return $out; }, 10, 2 );
Parameter Type Description
$out string Markup prepended to the activity content
$post_id int The member blog post

Fired in public/class-buddypress-member-blog-public.php:3790 · since 4.1.1

Filter the popular-posts query args. THE extension point for “what counts as popular”. Applied AFTER normalisation and BEFORE the cache read, so a filtered result is cached under its own key rather than colliding with the unfiltered one.

add_filter( 'bpmb_popular_query_args', function ( $args ) { return $args; } );
Parameter Type Description
$args array Normalised args (per_page, page, timeframe, …)

Fired in src/Services/PostQuery.php:339 · since 4.0.0

Filter how much larger than one page the scoped set must be before the query is forced to lead with the stats table. Lower means the index scan is used more often; higher keeps the (cheap) sort for longer. 10 pages is deliberately conservative.

add_filter( 'bpmb_popular_straight_join_pages', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$multiplier int Pages’ worth of rows. Default 10

Fired in src/Support/ViewCountStore.php:789 · since 4.0.0

Filter the badges shown before a post title.

add_filter( 'bpmb_post_title_badges', function ( $arg1, $post_id, $context ) { return $arg1; }, 10, 3 );
Parameter Type Description
$badges string Markup to place before the title. Default ‘’
$post_id int Post being rendered
$context string Rendering surface, e.g. ‘dashboard’

Fired in src/Rendering/PostCardRenderer.php:522 · since 4.1.1

Filter the position of reading info relative to post content.

add_filter( 'bpmb_reading_info_position', function ( $arg1, $post_id ) { return $arg1; }, 10, 2 );
Parameter Type Description
$position string ‘before’ or ‘after’. Default ‘before’
$post_id int Post ID

Fired in public/class-buddypress-member-blog-public.php:3521 · since 3.2.1

Filters the quick reasons offered on the “send back” form. Each one is appended to the reason box as a sentence the reviewer can edit.

add_filter( 'bpmb_reject_quick_reasons', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$reasons string[] Sentences

Fired in src/Admin/ModerationAdmin.php:513 · since 4.3.0

Filter the “Related posts” heading.

add_filter( 'bpmb_related_heading', function ( $arg1, $post_id ) { return $arg1; }, 10, 2 );
Parameter Type Description
$heading string Heading text
$post_id int The post being read

Fired in includes/shortcodes/class-shortcode-related-posts.php:131 · since 4.0.0

Filter the related-posts query. THE one extension point for relatedness. Pro (or a site) can re-rank, widen or narrow it here - there is deliberately no second filter name and no parallel “related” implementation to drift from this one.

add_filter( 'bpmb_related_query_args', function ( $query_args, $post_id, $args ) { return $query_args; }, 10, 3 );
Parameter Type Description
$query_args array WP_Query args
$post_id int The post we are finding relatives of
$args array The caller’s args (per_page, strategy)

Fired in src/Services/PostQuery.php:549 · since 4.0.0

Filters whether Application Passwords may perform plugin writes. Default FALSE: an App Password is a bearer credential with the user’s full capabilities, usable headlessly. Every member-facing write here is a UI action. Turn this on only if you genuinely need scripted writes.

add_filter( 'bpmb_rest_allow_app_passwords', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$allowed bool Whether to allow App-Password writes

Fired in src/Rest/RestController.php:142 · since 4.0.0

Filters the items in any Member Blog REST collection before they are returned. ONE seam rather than one per controller. Every collection endpoint in Free and Pro exits through this method - the writer directory, popular, featured, bookmarks, follows, the dashboard list - so a single filter here reaches all of them, and a new controller inherits the extension point instead of having to remember to add its own. The request is passed so a listener can target one endpoint, or read the query args, without string-matching a URL. Add fields, redact fields, reorder - but return an array of the same shape, because the pagination headers below are already computed from the unfiltered total.

add_filter( 'bpmb_rest_collection_items', function ( $items, $request, $total, $max_pages ) { return $items; }, 10, 4 );
Parameter Type Description
$items array The page of items about to be returned
$request `WP_REST_Request null`
$total int Total matching items across all pages
$max_pages int Total number of pages

Fired in src/Rest/RestController.php:196 · since 4.0.0

Filters the post meta the plugin exposes on core’s REST endpoint. Keys added here become readable - and, for anyone passing the auth callback, writable - on /wp/v2/posts. Read the class docblock before adding one: the keys left out are billing and moderation state, and exposing those is a security decision rather than a convenience.

add_filter( 'bpmb_rest_exposed_post_meta', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$exposed array<string,array{type:string,description:string}> Meta key => schema

Fired in src/Rest/MetaFields.php:99 · since 4.0.2

Filters whether a user is exempt from the REST submission gate. Exempt users skip the create/edit/publish gate and the blocked-category enforcement on /wp/v2/posts. Site staff are exempt by default; return false to hold everyone, including administrators, to the member rules.

add_filter( 'bpmb_rest_gate_exempt', function ( $exempt, $user_id ) { return $exempt; }, 10, 2 );
Parameter Type Description
$exempt bool Whether the user is exempt
$user_id int User being tested

Fired in src/Rest/RestGate.php:106 · since 4.0.2

Filters the allowed MIME types for uploads on the REST/AJAX surfaces. Kept as a second, separately-documented filter because it is part of the frozen public contract. It now applies to EVERY surface, not just REST - a site that tightened uploads through this filter was previously still wide open on the form-submit path.

add_filter( 'bpmb_rest_upload_allowed_types', function ( $mimes ) { return $mimes; } );
Parameter Type Description
$mimes string[] Allowed MIME types

Fired in src/Services/MediaService.php:171 · since 3.2.2

Filters the maximum member upload size, in BYTES. Applied last, and deliberately NOT clamped afterwards: a site that filters this is stating a deliberate figure and may have raised the server limit by other means.

add_filter( 'bpmb_rest_upload_max_size', function ( $bytes ) { return $bytes; } );
Parameter Type Description
$bytes int Maximum upload size in bytes

Fired in src/Services/MediaService.php:255 · since 3.2.2

Filter the review-queue URL (the “Review now” email button and the Overview card use it).

add_filter( 'bpmb_review_queue_url', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$url string Default: Posts > Member submissions

Fired in src/Services/ModerationService.php:182 · since 4.3.0

Filters who is emailed when a member post enters review. Defaults to the users who can review (edit_others_posts), capped. Pro replaces it with the administrators chosen in its notification settings.

add_filter( 'bpmb_review_request_recipients', function ( $ids, $post_id ) { return $ids; }, 10, 2 );
Parameter Type Description
$ids int[] User IDs
$post_id int Post waiting for review

Fired in src/Services/ModerationNotifier.php:166 · since 4.3.0

Show the author box (bio, blog link, Follow) under a single post. Return false to keep the theme’s own author box instead.

add_filter( 'bpmb_single_author_box', function ( $arg1, $arg2 ) { return $arg1; }, 10, 2 );
Parameter Type Description
$show bool Whether to render it
$post_id int The post

Fired in src/Frontend/SingleEngagement.php:247 · since 4.3.0

Show the clap and save buttons under a single post. The developer’s override, on top of the admin setting above. Return false to suppress the bar – site-wide, or for one post – for a theme that would rather place it itself. Both renderers are public; see the class docblock.

add_filter( 'bpmb_single_engagement', function ( $arg1, $arg2 ) { return $arg1; }, 10, 2 );
Parameter Type Description
$show bool Whether to append the engagement bar
$post_id int The post

Fired in src/Frontend/SingleEngagement.php:339 · since 4.0.0

Filter whether the plugin renders the writer profile on the WP author archive. The code-level escape hatch; the admin has a setting for the same thing (Content -> Writer profiles). Return false and everything reverts to the theme’s author.php - no other behaviour changes, because WriterUrl keeps pointing here either way.

add_filter( 'bpmb_takeover_author_archive', function ( $enabled, $arg2 ) { return $enabled; }, 10, 2 );
Parameter Type Description
$takeover bool Whether to take over. Defaults to the admin setting
$user_id int The writer being viewed

Fired in src/Frontend/AuthorArchive.php:156 · since 4.0.0

Filter whether the plugin renders the topic hub on a term archive. The code-level escape hatch; the admin has a setting for the same thing. Return false and the theme’s category.php / tag.php takes over again, with nothing else changed.

add_filter( 'bpmb_takeover_term_archive', function ( $enabled, $term ) { return $enabled; }, 10, 2 );
Parameter Type Description
$takeover bool Whether to take over. Defaults to the admin setting
$term \WP_Term The term being viewed

Fired in src/Frontend/TermArchive.php:176 · since 4.0.0

Filter the rendered topic-hub header.

add_filter( 'bpmb_topic_header', function ( $out, $term ) { return $out; }, 10, 2 );
Parameter Type Description
$out string Markup
$term \WP_Term Term

Fired in src/Rendering/TopicHubRenderer.php:120 · since 4.0.0

Filter how many posts are shown per page on the topic hub (/category/{slug}/, /tag/{slug}/).

add_filter( 'bpmb_topic_hub_per_page', function ( $arg1, $term ) { return $arg1; }, 10, 2 );
Parameter Type Description
$per_page int Posts per page. Default 12
$term \WP_Term The term being viewed

Fired in src/Frontend/TermArchive.php:55 · since 4.0.0

Filter the taxonomies the topic hub takes over the archive for. Default array( 'category', 'post_tag' ). Adding a custom taxonomy here also widens {@see TermArchive::is_ours()} and PostQuery’s tax scope - an unrecognised scope argument in PostQuery::paginate() is NOT a safe no-op, it is the WIDEST possible query (every post on the site), so a custom taxonomy added here must be one PostQuery actually understands.

add_filter( 'bpmb_topic_hub_taxonomies', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$taxonomies string[] Taxonomy names the hub renders for. Default the core post taxonomies

Fired in src/Frontend/TermArchive.php:97 · since 4.0.0

Filter the post_status set a viewer may query for an author.

add_filter( 'bpmb_visible_statuses_for_author', function ( $statuses, $author_id, $viewer_id ) { return $statuses; }, 10, 3 );
Parameter Type Description
$statuses string[] Allowed post_status values
$author_id int The author being listed
$viewer_id `int null`

Fired in includes/class-bp-member-blog-access-control.php:589 · since 3.5.1

Filter the rendered writer header.

add_filter( 'bpmb_writer_header', function ( $out, $user_id, $profile ) { return $out; }, 10, 3 );
Parameter Type Description
$out string Markup
$user_id int Writer
$profile array Profile data

Fired in src/Rendering/WriterProfileRenderer.php:110 · since 4.0.0

Filter a writer’s profile data.

add_filter( 'bpmb_writer_profile', function ( $profile, $user_id ) { return $profile; }, 10, 2 );
Parameter Type Description
$profile array Profile
$user_id int Writer

Fired in src/Services/WriterProfile.php:93 · since 4.0.0

Filter how many posts are shown per page on the writer profile (/author/{nick}/).

add_filter( 'bpmb_writer_profile_per_page', function ( $arg1, $user_id ) { return $arg1; }, 10, 2 );
Parameter Type Description
$per_page int Posts per page. Default 12
$user_id int The writer being viewed

Fired in src/Frontend/AuthorArchive.php:68 · since 4.0.0

Filter the canonical writer URL. The single seam for a site that hosts its writers somewhere else entirely.

add_filter( 'bpmb_writer_url', function ( $url, $user_id ) { return $url; }, 10, 2 );
Parameter Type Description
$url string Resolved URL
$user_id int Writer

Fired in src/Support/WriterUrl.php:92 · since 4.0.0

Filter the reason shown to the author when their post is sent back. Return an empty string to send the email without a reason block.

add_filter( 'bpmbp_rejection_reason', function ( $reason, $post ) { return $reason; }, 10, 2 );
Parameter Type Description
$reason string The stored reason (empty when none was stored)
$post_id int Post that was sent back

Fired in src/Services/ModerationNotifier.php:325 · since 4.3.0 Applied by Free, which now sends the email.

Filter whether the plugin’s public CSS/JS should be enqueued on the current request. should_load_assets() already checks for the editor/dashboard shortcodes, the configured post page, single posts, and the various BuddyPress/PeepSo/standalone profile screens. Use this filter to force assets on (custom templates that render the editor without one of the above signals) or off (a page falsely matched).

add_filter( 'buddypress_member_blog_should_load_assets', function ( $should_load_assets, $post ) { return $should_load_assets; }, 10, 2 );
Parameter Type Description
$should_load_assets bool Whether assets should load, as determined above
$post `\WP_Post null`

Fired in public/class-buddypress-member-blog-public.php:1609 · since 3.0.0

Filter the detected community-platform integration mode. Runs once per request (the result is memoized in self::$mode), after auto-detection has already picked BuddyBoss / BuddyPress / PeepSo / standalone by presence.

add_filter( 'member_blog_integration_mode', function ( $mode ) { return $mode; } );
Parameter Type Description
$mode string Detected mode: one of ‘standalone’, ‘buddypress’, ‘buddyboss’, ‘peepso’

Fired in includes/class-member-blog-compat.php:348 · since 3.0.0

Filter whether the active platform provides a given capability. Lets a new/custom platform adapter declare capabilities get_mode() doesn’t already know about, or a site override the built-in BuddyPress/BuddyBoss/PeepSo capability map.

add_filter( 'member_blog_supports', function ( $supported, $capability, $mode ) { return $supported; }, 10, 3 );
Parameter Type Description
$supported bool Whether the capability is currently supported
$capability string Capability token being checked (e.g. ‘activity’, ‘groups’)
$mode string The active integration mode

Fired in includes/class-member-blog-compat.php:451 · since 4.0.0

This filter is documented in wp-includes/l10n.php */

add_filter( 'plugin_locale', function ( $locale, $arg2 ) { return $locale; }, 10, 2 );

Fired in includes/class-buddypress-member-blog-i18n.php:90

Filter the slugs of legacy wbcom-wrapper boilerplate helper pages to hide. These are not real plugins - they’re the “Our Plugins” / “Our Themes” / “Support” / “License” helper pages older wbcom-wrapper installs register under this hub - so they are excluded from the plugin-card grid. Filterable so another plugin can add its own legacy wrapper slugs to the exclusion list.

add_filter( 'wbcom_hub_wrapper_helper_slugs', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$wrapper_helper_slugs string[] Page slugs to exclude from the hub grid

Fired in includes/admin/views/hub.php:36 · since 3.5.0

Fires at the end of the reCAPTCHA widget output on registration/post forms, after the reCAPTCHA markup and hidden nonce fields. Intended as a placement point for rendering Terms of Service acceptance error messaging alongside the reCAPTCHA field. No consumers ship with WB Member Blog Pro itself.

add_action( 'bp_accept_tos_errors', function () { } );

Fired in class-buddypress-member-blog-pro.php:1156 · since 1.0.0

Fires after the series header.

add_action( 'bp_member_blog_after_series_header', function ( $series ) { } );
Parameter Type Description
$series WP_Term The series term object

Fired in templates/series-landing-page.php:112

Fires after the series posts list.

add_action( 'bp_member_blog_after_series_posts', function ( $series, $posts ) { }, 10, 2 );
Parameter Type Description
$series WP_Term The series term object
$posts array Array of posts in the series

Fired in templates/series-landing-page.php:266

Fires before the series header.

add_action( 'bp_member_blog_before_series_header', function ( $series ) { } );
Parameter Type Description
$series WP_Term The series term object

Fired in templates/series-landing-page.php:54

Fires before the series posts list.

add_action( 'bp_member_blog_before_series_posts', function ( $series, $posts ) { }, 10, 2 );
Parameter Type Description
$series WP_Term The series term object
$posts array Array of posts in the series

Fired in templates/series-landing-page.php:164

Fires after a post is added to a series.

add_action( 'bp_member_blog_post_added_to_series', function ( $post_id, $series_id ) { }, 10, 2 );
Parameter Type Description
$post_id int Post ID
$series_id int Series term ID

Fired in includes/class-buddypress-member-blog-pro-series.php:893 · since 2.0.0

Fires after a series is created.

add_action( 'bp_member_blog_series_created', function ( $term ) { } );
Parameter Type Description
$term_id int Series term ID

Fired in includes/class-buddypress-member-blog-pro-series.php:2589 · since 2.0.0

Fires after a co-author invitation is accepted.

add_action( 'bpmb_coauthor_accepted', function ( $post_id, $user_id, $inviter_id ) { }, 10, 3 );
Parameter Type Description
$post_id int Post ID
$user_id int User ID who accepted
$inviter_id int User ID of original inviter

Fired in includes/class-buddypress-member-blog-pro-coauthors.php:911 · since 2.0.0

Fires after a co-author is added to a post.

add_action( 'bpmb_coauthor_added', function ( $post_id, $user_id ) { }, 10, 2 );
Parameter Type Description
$post_id int Post ID
$user_id int Co-author user ID

Fired in includes/class-buddypress-member-blog-pro-coauthors.php:546 · since 2.0.0

Fires after a co-author invitation is declined.

add_action( 'bpmb_coauthor_declined', function ( $post_id, $user_id, $inviter_id ) { }, 10, 3 );
Parameter Type Description
$post_id int Post ID
$user_id int User ID who declined
$inviter_id int User ID of original inviter

Fired in includes/class-buddypress-member-blog-pro-coauthors.php:994 · since 2.0.0

Fires after a co-author invitation is sent.

add_action( 'bpmb_coauthor_invited', function ( $post_id, $invitee_user, $inviter_id ) { }, 10, 3 );
Parameter Type Description
$post_id int Post ID
$user_id int Invitee user ID
$inviter_id int Inviter user ID

Fired in includes/class-buddypress-member-blog-pro-coauthors.php:780 · since 2.0.0

Fires after a co-author is removed from a post.

add_action( 'bpmb_coauthor_removed', function ( $post_id, $user_id ) { }, 10, 2 );
Parameter Type Description
$post_id int Post ID
$user_id int Co-author user ID

Fired in includes/class-buddypress-member-blog-pro-coauthors.php:605 · since 2.0.0

Fires after credits have been added to a user’s balance and the transaction has been logged (Post Credits module). Fired from add_credits(), inside the per-user credit lock, after self::META_BALANCE user meta has been updated. The membership integrations (WooCommerce, PMPro, MemberPress, WC Memberships) call add_credits() when a purchase/renewal grants credits, which is what ultimately triggers this action. This is the hook to react to a successful credit grant (e.g. send a custom notification, sync to an external ledger).

add_action( 'bpmb_credits_added', function ( $user_id, $amount, $type, $source, $reference ) { }, 10, 5 );
Parameter Type Description
$user_id int User the credits were added to
$amount int Number of credits added
$type string Transaction type: ‘purchase’, ‘admin_add’,
$source string Source: ‘pmpro’, ‘woo’, ‘memberpress’, ‘manual’
$reference string Reference ID (e.g. order_id, level_id)

Fired in includes/class-buddypress-member-blog-pro-post-credits.php:721 · since 2.0.0

Fires after credits have been deducted from a user’s balance and the transaction has been logged (Post Credits module). Fired from deduct_credits(), inside the per-user credit lock, after self::META_BALANCE user meta has been updated (and, for post_used, after the used-count meta has been incremented). Most commonly fires with $type = ‘post_used’ when a member publishes a post and one credit (or the bpmb_credit_deduct_amount-filtered amount) is spent.

add_action( 'bpmb_credits_deducted', function ( $user_id, $amount, $type, $source, $reference ) { }, 10, 5 );
Parameter Type Description
$user_id int User the credits were deducted from
$amount int Number of credits deducted (positive number;
$type string Transaction type: ‘post_used’, ‘admin_remove’, ‘refund’
$source string Source: ‘post’, ‘manual’, ‘woocommerce’, etc
$reference string Reference ID (usually the post ID for ‘post_used’)

Fired in includes/class-buddypress-member-blog-pro-post-credits.php:870 · since 2.0.0

Fires after the Post Credits module has granted initial credits for a MemberPress membership purchase (MemberPress integration). Fired from add_membership_credits() after add_credits() has been called with type ‘purchase’. Only fires when the credit_source setting accepts integration-granted credits and the product is mapped in the bpmb_post_credits_membership_map option.

add_action( 'bpmb_memberpress_credits_added', function ( $user_id, $credits, $product_id, $type ) { }, 10, 4 );
Parameter Type Description
$user_id int User the credits were granted to
$credits int Number of credits granted
$product_id int MemberPress product (membership) ID
$type string Membership type: ‘subscription’ or ‘lifetime’

Fired in includes/integrations/class-bpmb-credits-memberpress.php:245 · since 2.0.0

Fires after the Post Credits module has granted renewal credits for a MemberPress subscription (MemberPress integration). Fired from on_subscription_renewal(), hooked to mepr-txn-status-complete, after add_credits() has been called with type ‘subscription’. Only fires for membership products mapped to ‘subscription’ type in the bpmb_post_credits_membership_map option - credits accumulate additively on each renewal, they are never reset to a fixed amount.

add_action( 'bpmb_memberpress_credits_renewed', function ( $user_id, $credits, $product_id ) { }, 10, 3 );
Parameter Type Description
$user_id int User whose subscription renewed
$credits int Number of credits granted for this renewal
$product_id int MemberPress product (membership) ID

Fired in includes/integrations/class-bpmb-credits-memberpress.php:179 · since 2.0.0

Fires after the Post Credits module has granted credits for a Paid Memberships Pro level change (PMPro integration). Fired from on_membership_change(), hooked to pmpro_after_change_membership_level, after add_credits() has been called with type ‘purchase’. Only fires when the credit_source setting accepts integration-granted credits and the level is mapped in the bpmb_post_credits_membership_map option.

add_action( 'bpmb_pmpro_credits_added', function ( $user_id, $credits, $level_id, $type ) { }, 10, 4 );
Parameter Type Description
$user_id int User the credits were granted to
$credits int Number of credits granted
$level_id int PMPro membership level ID
$type string Membership type: ‘subscription’ or ‘lifetime’

Fired in includes/integrations/class-bpmb-credits-pmpro.php:128 · since 2.0.0

Fires after the Post Credits module has granted renewal credits for a Paid Memberships Pro subscription (PMPro integration). Fired from on_subscription_renewal(), hooked to pmpro_subscription_payment_completed, after add_credits() has been called with type ‘subscription’. Only fires for levels mapped to ‘subscription’ type in the bpmb_post_credits_membership_map option.

add_action( 'bpmb_pmpro_credits_renewed', function ( $user_id, $credits, $level_id ) { }, 10, 3 );
Parameter Type Description
$user_id int User whose subscription renewed
$credits int Number of credits granted for this renewal
$level_id int PMPro membership level ID

Fired in includes/integrations/class-bpmb-credits-pmpro.php:203 · since 2.0.0

Fires when an already-scheduled future post is moved to a new date/time from the Scheduling module’s calendar. Counterpart to bpmb_post_scheduled, which fires instead when the post being scheduled was previously a draft. Fires after wp_update_post() has succeeded in changing post_date/post_date_gmt.

add_action( 'bpmb_post_rescheduled', function ( $post_id, $old_datetime, $datetime ) { }, 10, 3 );
Parameter Type Description
$post_id int Post ID
$old_datetime string Previous post_date (site-local ‘Y-m-d H:i:s’)
$datetime string New schedule datetime, site-local ‘Y-m-d H:i:s’

Fired in includes/class-buddypress-member-blog-pro-scheduling.php:1263 · since 2.5.0

Fires when an unscheduled draft is scheduled from the calendar.

add_action( 'bpmb_post_scheduled', function ( $post_id, $datetime ) { }, 10, 2 );
Parameter Type Description
$post_id int Post ID
$datetime string New schedule datetime, site-local ‘Y-m-d H:i:s’

Fired in includes/class-buddypress-member-blog-pro-scheduling.php:1248 · since 2.5.0

Fires after a scheduled post is reverted to draft due to failed access re-validation.

add_action( 'bpmb_scheduled_post_publish_blocked', function ( $post_id, $author_id ) { }, 10, 2 );
Parameter Type Description
$post_id int Post ID
$author_id int Post author user ID

Fired in includes/class-buddypress-member-blog-pro-scheduling.php:980 · since 2.5.0

Fires after a scheduled member post has gone live and its “your post was published” notification email has been sent (Scheduling module). Fired from send_publish_notification(), hooked to the publish_future_post transition, once the author’s opt-in email (or the skip, if they opted out via _bpmb_schedule_notification) has been handled. Use this to run additional side effects when a scheduled post goes live, independent of the built-in email.

add_action( 'bpmb_scheduled_post_published', function ( $post ) { } );
Parameter Type Description
$post_id int ID of the post that was just published

Fired in includes/class-buddypress-member-blog-pro-scheduling.php:805 · since 2.0.0

Fires after the Post Credits module has granted credits for a new/ reactivated WooCommerce Memberships plan (WooCommerce Memberships integration). Fired from add_membership_credits() - called from both on_membership_status_change() (status transitions to ‘active’) and on_membership_created() - after add_credits() has been called with type ‘purchase’. Only fires when the credit_source setting accepts integration-granted credits and the plan is mapped in the bpmb_post_credits_membership_map option.

add_action( 'bpmb_woo_memberships_credits_added', function ( $user_id, $credits, $plan_id, $type ) { }, 10, 4 );
Parameter Type Description
$user_id int User the credits were granted to
$credits int Number of credits granted
$plan_id int WooCommerce Memberships plan ID
$type string Membership type: ‘subscription’ or ‘lifetime’

Fired in includes/integrations/class-bpmb-credits-woo-memberships.php:167 · since 2.0.0

Fires after the Post Credits module has granted renewal credits for a WooCommerce Subscriptions-backed Memberships plan (WooCommerce Memberships integration). Fired from on_subscription_renewal(), hooked to woocommerce_subscription_renewal_payment_complete, once per active membership on the user with type ‘subscription’, after add_credits() has been called with type ‘subscription’.

add_action( 'bpmb_woo_memberships_credits_renewed', function ( $user_id, $credits, $plan_id ) { }, 10, 3 );
Parameter Type Description
$user_id int User whose subscription renewed
$credits int Number of credits granted for this renewal
$plan_id int WooCommerce Memberships plan ID

Fired in includes/integrations/class-bpmb-credits-woo-memberships.php:280 · since 2.0.0

Fires after the Post Credits module has granted credits for a completed WooCommerce credit-pack order (plain WooCommerce integration, distinct from the membership-based WooCommerce Memberships integration). Fired from on_order_completed(), hooked to WooCommerce’s order-completed event, after add_credits() has been called with type ‘purchase’ and the order has been tagged/annotated. $total_credits sums every credit-pack line item on the order (credits-per-pack x quantity), across all packs purchased in that single order.

add_action( 'bpmb_woocommerce_credits_added', function ( $user_id, $total_credits, $order_id ) { }, 10, 3 );
Parameter Type Description
$user_id int Customer the credits were granted to
$total_credits int Total credits granted across all credit-pack
$order_id int WooCommerce order ID

Fired in includes/integrations/class-bpmb-credits-woocommerce.php:572 · since 2.0.0

Fires once the WB Member Blog Pro singleton has finished its constructor (constants defined, hooks registered). Use this to detect that Pro is active and fully wired, e.g. from third-party integrations.

add_action( 'buddypress_member_blog_loaded', function () { } );

Fired in class-buddypress-member-blog-pro.php:141 · since 1.0.0

Filters the “Read more” link text appended to a truncated blog comment excerpt inside group activity content (Groups module).

add_filter( 'bp_activity_excerpt_append_text', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$append_text string Link text, default “ Read more”

Fired in includes/class-buddypress-member-blog-pro-groups.php:1352 and 1 other place · since 1.0.0

Filters the subnav item array registered for the group “Blog” tab before it is passed to bp_core_new_subnav_item() (Groups module).

add_filter( 'bp_blog_pro_group_blog_tab', function ( $nav ) { return $nav; } );
Parameter Type Description
$nav array BP subnav item args (name, slug, parent_url, parent_slug,

Fired in includes/class-buddypress-member-blog-pro-groups.php:206 · since 1.0.0

Filters the label shown on the group “Blog” subnav tab (Groups module). Defaults to the shared blog_label general setting, falling back to “Blog”. Runs before the group subnav item is registered.

add_filter( 'bp_blog_pro_group_label', function ( $blog_group_label ) { return $blog_group_label; } );
Parameter Type Description
$blog_group_label string Translated label for the group blog tab

Fired in includes/class-buddypress-member-blog-pro-groups.php:164 · since 1.0.0

Filters the URL slug for the group “Blog” subnav tab (Groups module). Defaults to the shared blog_slug general setting, falling back to ‘blog’. Runs before the group subnav item is registered.

add_filter( 'bp_blog_pro_group_slug', function ( $blog_group_slug ) { return $blog_group_slug; } );
Parameter Type Description
$blog_group_slug string URL slug for the group blog tab

Fired in includes/class-buddypress-member-blog-pro-groups.php:174 · since 1.0.0

Filters the excerpted activity content for a group post activity item, inside the plugin’s own bp_get_activity_content_body override (Groups module, BuddyBoss theme path). Deliberately a DIFFERENT hook name from BuddyPress core’s bp_get_activity_content_body to avoid re-entering this same override (this method IS a callback on that core hook). Fires once for the truncated/ellipsis branch and once for the un-truncated branch of bp_member_blog_pro_activity_content_override().

add_filter( 'bp_get_activity_content', function ( $content ) { return $content; } );
Parameter Type Description
$content string Excerpted or full post content built so far
$activity object The BP_Activity_Activity object being rendered

Fired in includes/class-buddypress-member-blog-pro-groups.php:1318 and 3 other places · since 1.0.0

bp_mem_blog_pro_add_feature_image_blog_post_as_activity_content

Section titled “bp_mem_blog_pro_add_feature_image_blog_post_as_activity_content”

Filters the featured-image HTML prepended to a group post’s BuddyBoss activity content (Groups module, BuddyBoss theme path). Starts empty; the class’s own bp_member_blog_pro_activity_content_with_read_more() callback is hooked here (priority 10) to render a linked thumbnail when the post has a featured image. Runs from bp_member_blog_pro_activity_content_override(), the bp_get_activity_content_body override for group-post activity items.

add_filter( 'bp_mem_blog_pro_add_feature_image_blog_post_as_activity_content', function ( $arg1, $blog_post ) { return $arg1; }, 10, 2 );
Parameter Type Description
$content_img string Featured-image HTML, empty by default
$blog_post_id int ID of the member blog post the activity item is for

Fired in includes/class-buddypress-member-blog-pro-groups.php:1293 · since 1.0.0

Filters the sprintf() format string used for the “posted a new post in group” BuddyPress activity action sentence (Groups module). The returned string is passed to sprintf() with $user_link, $post_link_html, $group_link_html as %1$s/%2$s/%3$s, so a replacement string must keep those three placeholders (in any order). This same filter fires from every code path that creates or re-creates the group-post activity item (immediate publish, pending-post approval, etc.) with identical semantics each time.

add_filter( 'bp_member_blog_pro_activity_action', function ( $s ) { return $s; } );
Parameter Type Description
$format string Translatable sprintf() format string with %1$s

Fired in includes/class-buddypress-member-blog-pro-groups.php:1088 and 3 other places · since 1.0.0

Filters a Custom Fields field definition before it is saved to the bp_member_blog_pro_custom_fields option. Fires for both new fields and edited fields, from the admin AJAX handler that builds the field settings array from $_POST. Part of the Custom Fields module.

add_filter( 'bp_member_blog_pro_custom_field_settings', function ( $field_settings, $type ) { return $field_settings; }, 10, 2 );
Parameter Type Description
$field_settings array Sanitized field settings (type, label, key,
$type string The field type (text, select, number, url, file, etc.)

Fired in admin/class-buddypress-member-blog-pro-admin.php:1047 and 1 other place · since 2.5.0

bp_member_blog_pro_reign_buddyx_pro_add_feature_image_blog_post_as_activity_content

Section titled “bp_member_blog_pro_reign_buddyx_pro_add_feature_image_blog_post_as_activity_content”

Filters the featured-image HTML prepended to a group post’s activity content on the Reign/BuddyX (non-BuddyBoss) theme path (Groups module). Starts empty; the class’s own bp_member_blog_pro_reign_buddyx_pro_add_feature_image_blog_post_as_activity_content_callback() is hooked here (priority 10) to render a linked thumbnail when the post has a featured image. Counterpart to bp_mem_blog_pro_add_feature_image_blog_post_as_activity_content used on the BuddyBoss theme path.

add_filter( 'bp_member_blog_pro_reign_buddyx_pro_add_feature_image_blog_post_as_activity_content', function ( $arg1, $blog_post ) { return $arg1; }, 10, 2 );
Parameter Type Description
$content_img string Featured-image HTML, empty by default
$blog_post_id int ID of the member blog post the activity item is for

Fired in includes/class-buddypress-member-blog-pro-groups.php:1407 · since 1.0.0

Filters whether a user may manage Custom Fields form definitions in admin. Gates every Custom Fields module AJAX handler (add/edit/delete/reorder a custom field) in admin/class-buddypress-member-blog-pro-admin.php. Defaults to is_super_admin(); use this to grant the capability to other roles (e.g. a site owner without super-admin on multisite). Note: the user ID being checked is NOT passed to this filter; if you need it, read $user_id from the enclosing bp_member_blog_pro_user_can_manage_forms() call via get_current_user_id() (the only caller passes the current user).

add_filter( 'bp_member_blog_pro_user_can_manage_forms', function ( $user_id ) { return $user_id; } );
Parameter Type Description
$can_manage bool True if the user may manage form/custom-field definitions

Fired in includes/buddypress-member-blog-pro-general.php:256 · since 1.0.0

Filter the series navigation HTML.

add_filter( 'bp_member_blog_series_nav_html', function ( $nav_html, $post_id, $series ) { return $nav_html; }, 10, 3 );
Parameter Type Description
$nav_html string Navigation HTML
$post_id int Post ID
$series_id int Series term ID

Fired in includes/class-buddypress-member-blog-pro-series.php:1521 · since 2.0.0

Filters the actions offered to a member who has been refused posting. Each entry: url, label, and optional primary (bool). Site owners with their own credit shop, a contact form or a membership page can add or replace these - the default is a purchase link when credits are the reason and one is configured, plus (on the full-page refusal) a way back to the member’s dashboard.

add_filter( 'bpmb_access_denied_actions', function ( $purchase_url, $user_id, $purchase_url ) { return $purchase_url; }, 10, 3 );
Parameter Type Description
$actions array Actions to render
$user_id int The member being refused
$purchase_url string The configured purchase URL, or ‘’ when credits are not the reason

Fired in includes/class-bp-member-blog-pro-access-control.php:995 · since 4.3.0 Also applied to the banner above the composer.

Filter the per-batch size for the analytics retention cron.

add_filter( 'bpmb_analytics_cleanup_batch_size', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$batch_size int Rows processed per page. Default 100

Fired in includes/class-buddypress-member-blog-pro-analytics.php:474 · since 2.5.1

Filters the tabs shown on the member-facing Author Settings dashboard. $tabs is built from the admin-configured tab toggles (Notifications, Co-Authors) and Series when its module is enabled. Keys are tab slugs, values are the translated tab labels. Part of the Author Settings module.

add_filter( 'bpmb_author_settings_tabs', function ( $tabs ) { return $tabs; } );
Parameter Type Description
$tabs array Map of tab slug => translated tab label

Fired in includes/class-buddypress-member-blog-pro-author-settings.php:421 · since 2.0.0

Filter the capability that gates the community calendar view.

add_filter( 'bpmb_calendar_community_cap', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$cap string Capability required to see ALL members’ posts

Fired in includes/class-buddypress-member-blog-pro-calendar.php:303 · since 2.6.0

Filters how a ticked option-less checkbox reads on the front end. Defaults to “Yes”/“No”. A site that words its yes/no fields differently (“Confirmed”, “Verified”) can say so without overriding the whole field.

add_filter( 'bpmb_checkbox_display_label', function ( $ticked, $ticked, $field, $post_id ) { return $ticked; }, 10, 4 );
Parameter Type Description
$label string The word shown for this state
$ticked bool Whether the member ticked the box
$field array The field definition
$post_id int Post being displayed

Fired in includes/buddypress-member-blog-pro-custom-fields.php:1906 · since 4.0.2

Filter the per-run backfill batch size.

add_filter( 'bpmb_coauthor_backfill_batch', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$size int Posts processed per admin_init run. Default 50

Fired in includes/class-buddypress-member-blog-pro-coauthors.php:3991 · since 2.5.1

Filters the formatted Co-Authors invitation/accept/decline BuddyPress notification, from the Coauthors module’s format_coauthor_notifications() callback (hooked to BP’s notifications component formatter). Fires from two call sites with DIFFERENT signatures depending on $format: when $format is ‘string’ the filtered value is an <a> HTML string and the extra args are ($notification_string, $notification_link); otherwise the filtered value is an array with ‘text’/‘link’ keys and the extra args are ($notification_link, $notification_string, $post_title). Check $format (or the shape of the first arg) before relying on arg order.

add_filter( 'bpmb_coauthor_invitation_bp_notification', function ( $notification_link, $notification_string, $notification_link ) { return $notification_link; }, 10, 3 );
Parameter Type Description
$notification `string array`
$notification_string string Plain notification message text
$notification_link string URL the notification links to

Fired in includes/class-buddypress-member-blog-pro-coauthors.php:1512 and 1 other place · since 2.0.0

Filter the comment-notification email body.

add_filter( 'bpmb_comment_notification_message', function ( $message, $post, $comment ) { return $message; }, 10, 3 );
Parameter Type Description
$message string Email body
$post WP_Post The commented-on post
$comment WP_Comment The comment

Fired in includes/class-buddypress-member-blog-pro-notifications.php:1354 · since 2.5.1

Filter the comment-notification email subject.

add_filter( 'bpmb_comment_notification_subject', function ( $subject, $post, $comment ) { return $subject; }, 10, 3 );
Parameter Type Description
$subject string Email subject
$post WP_Post The commented-on post
$comment WP_Comment The comment

Fired in includes/class-buddypress-member-blog-pro-notifications.php:1344 · since 2.5.1

Filter the credit deduction amount. Allows developers to implement variable credit costs based on different criteria such as post categories, post types, user roles, member types, etc.

add_filter( 'bpmb_credit_deduct_amount', function ( $amount, $user_id, $type, $source, $reference ) { return $amount; }, 10, 5 );
Parameter Type Description
$amount int The amount to deduct (default: 1)
$user_id int The user ID
$type string Transaction type: ‘post_used’, ‘admin_remove’, ‘refund’
$source string Source: ‘post’, ‘manual’, ‘woocommerce’, etc
$reference string Reference ID (usually post_id for post_used type)

Fired in includes/class-buddypress-member-blog-pro-post-credits.php:780 · since 2.2.1

Filters whether a user bypasses the Post Credits balance check entirely. Defaults to true for users who can manage_options (admins) or edit_others_posts (editors) - they may always publish regardless of balance. A bypassed user is never charged and never blocked, so this is the primary integration point for exempting specific roles or memberships (e.g. an “unlimited” membership tier) from the credit gate.

add_filter( 'bpmb_credits_user_bypassed', function ( $bypassed, $user_id ) { return $bypassed; }, 10, 2 );
Parameter Type Description
$bypassed bool Whether the user bypasses credit checks
$user_id int User ID being checked

Fired in includes/class-buddypress-member-blog-pro-post-credits.php:360 · since 2.0.0

Filters the message shown to a member with zero post credits, on the balance notice rendered above the post submission form (Post Credits module). Defaults to the admin-configured zero_message setting. Output is passed through wp_kses_post() after filtering, so returned HTML is limited to post-safe tags.

add_filter( 'bpmb_credits_zero_message', function ( $settings ) { return $settings; } );
Parameter Type Description
$zero_message string Message shown when the balance is zero or less

Fired in includes/class-buddypress-member-blog-pro-post-credits.php:1114 · since 2.0.0

Filters the renderable custom-field types.

add_filter( 'bpmb_custom_field_types', function ( $types ) { return $types; } );
Parameter Type Description
$types string[] Field-type slugs

Fired in includes/buddypress-member-blog-pro-custom-fields.php:287 · since 4.0.0

Filters the icon shown beside each refusal reason, keyed by reason type. An unrecognised type falls back to alert-circle.

add_filter( 'bpmb_denial_reason_icons', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$icons array Icon registry names keyed by reason type

Fired in includes/class-bp-member-blog-pro-access-control.php:1026 · since 4.2.0

Filters whether the Author Settings module’s CSS/JS assets are enqueued on the current request. By default the assets load when the [bp-member-blog-author-settings] or [member-blog-dashboard] shortcode is present on the queried post, or on the BuddyPress blog Settings subnav. Use this to force-enqueue on a custom template that doesn’t match those checks.

add_filter( 'bpmb_enqueue_author_settings_assets', function ( $should_enqueue ) { return $should_enqueue; } );
Parameter Type Description
$should_enqueue bool Whether to enqueue the Author Settings assets

Fired in includes/class-buddypress-member-blog-pro-author-settings.php:143 · since 2.0.0

Filter whether calendar assets should load on the current page.

add_filter( 'bpmb_enqueue_calendar_assets', function ( $should_enqueue ) { return $should_enqueue; } );
Parameter Type Description
$should_enqueue bool Whether to enqueue

Fired in includes/class-buddypress-member-blog-pro-calendar.php:1323 · since 2.5.0

Filter whether the interactive (flatpickr + drag/picker) calendar JS loads. The community view is read-only, so a page with ONLY community calendars skips this bundle. Defaults to true when a member calendar is present.

add_filter( 'bpmb_enqueue_calendar_interactive', function ( $has_interactive ) { return $has_interactive; } );
Parameter Type Description
$has_interactive bool Whether to load the picker/drag JS

Fired in includes/class-buddypress-member-blog-pro-calendar.php:1338 · since 2.6.0

Filters the WP_Query args used to fetch a group’s linked blog posts. $query_args already scopes to the group’s member authors (via a direct user_id lookup against the group members table) and the bp_blog_pro_group_links postmeta. The Groups class hooks this itself (prioritize_featured_posts(), priority 10) to reorder featured posts to the top of the group listing.

add_filter( 'bpmb_group_posts_query_args', function ( $query_args, $group_id ) { return $query_args; }, 10, 2 );
Parameter Type Description
$query_args array WP_Query arguments for the group posts query
$group_id int ID of the BuddyPress group being viewed

Fired in includes/class-buddypress-member-blog-pro-groups.php:1939 · since 2.0.0

Filter member type restrictions.

add_filter( 'bpmb_member_type_restrictions', function ( $restrictions ) { return $restrictions; } );
Parameter Type Description
$restrictions array Array of member type restrictions

Fired in includes/class-buddypress-member-blog-pro-restrictions.php:1000 · since 2.1.0

Filters the map of Pro module keys to the platform capabilities they require. Consulted by bpmb_is_module_enabled() so a module that is toggled “on” in settings still degrades cleanly when the required capability (e.g. BuddyPress groups) isn’t provided by any active platform. Each value is an array of capability keys evaluated by Free’s bpmb_module_requirements_met().

add_filter( 'bpmb_module_requires', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$requires array Map of module_key => array of required capability keys

Fired in class-buddypress-member-blog-pro.php:1415 · since 4.0.0

Filter the reasons a member may not publish a new post. Add your own blocker by appending an array with at least type, label and message; the refusal UI renders it and the backstop is not affected.

add_filter( 'bpmb_pro_denial_reasons', function ( $reasons, $user_id ) { return $reasons; }, 10, 2 );
Parameter Type Description
$reasons array[] Denial reasons
$user_id int User ID

Fired in includes/class-bp-member-blog-pro-access-control.php:350 · since 4.3.0 Reason types are role, limit and credits.

Filter the EDD product ID for Pro.

add_filter( 'bpmb_pro_edd_item_id', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$item_id int Product ID on wbcomdesigns.com

Fired in edd-license/edd-plugin-license.php:78 · since 4.0.0

bpmb_pro_group_create_posts_activity_action

Section titled “bpmb_pro_group_create_posts_activity_action”

Filters the formatted BuddyPress activity action string for “New post published in group” activity items (Groups module). Registered as the format callback for the bp_member_blog_pro_group_posts_activity_action activity type via bp_member_blog_pro_register_activity_actions(). $action already contains the built HTML sentence (“User posted a new post [title] in group [name]”).

add_filter( 'bpmb_pro_group_create_posts_activity_action', function ( $action ) { return $action; } );
Parameter Type Description
$action string The formatted activity action HTML string

Fired in includes/class-buddypress-member-blog-pro-groups.php:1013 · since 1.0.0

Filter whether a scheduled post author is allowed to publish at cron time.

add_filter( 'bpmb_scheduled_post_can_publish', function ( $can_publish, $post_id, $author_id ) { return $can_publish; }, 10, 3 );
Parameter Type Description
$can_publish bool Whether the author can publish
$post_id int Post ID
$author_id int Post author user ID

Fired in includes/class-buddypress-member-blog-pro-scheduling.php:880 · since 2.5.0

Filter how many scheduled posts are listed per page.

add_filter( 'bpmb_scheduled_posts_per_page', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$per_page int Posts per page. Default 20

Fired in includes/class-buddypress-member-blog-pro-scheduling.php:1080 · since 4.0.0

Filter the one-line series context shown above a series post. Return an empty string to remove it without touching the navigation.

add_filter( 'bpmb_series_context_html', function ( $html, $post_id, $series, $position ) { return $html; }, 10, 4 );
Parameter Type Description
$html string The context markup
$post_id int Post being displayed
$series WP_Term The series term
$position array { ‘current’ => int, ‘total’ => int }

Fired in includes/class-buddypress-member-blog-pro-series.php:1654 · since 4.0.2

Capability required to create a series. Series are content taxonomies tied to post authorship – default to edit_posts, which authors/editors/admins have and subscribers do not.

add_filter( 'bpmb_series_create_capability', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$capability string Required capability slug

Fired in includes/class-buddypress-member-blog-pro-series.php:2503 · since 2.4.0

Filter how many series posts are listed per page on the landing page.

add_filter( 'bpmb_series_landing_per_page', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$per_page int Posts per page. Default 20

Fired in includes/class-buddypress-member-blog-pro-series.php:1842 · since 4.0.0

Filter the maximum number of posts loaded for a single series. Series navigation, TOC and progress consume the whole set, so this is a high safety ceiling (not a display page size) that keeps the query bounded instead of running an unbounded posts_per_page => -1 on a pathologically large series.

add_filter( 'bpmb_series_max_posts', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$max int Maximum posts per series. Default 500

Fired in includes/class-buddypress-member-blog-pro-series.php:1210 · since 2.5.1

Filter the cap on how many series are listed in a selector.

add_filter( 'bpmb_series_selector_limit', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$max int Maximum series. Default 200

Fired in includes/class-buddypress-member-blog-pro-series.php:2942 · since 4.0.0

This filter is documented below. */

add_filter( 'bpmb_user_can_link_post_to_group', function ( $arg1, $user_id, $selected_group ) { return $arg1; }, 10, 3 );

Fired in includes/class-buddypress-member-blog-pro-groups.php:630 and 3 other places

Filters the user’s post-credit balance as read from user meta (Post Credits module). $balance already reflects the stored self::META_BALANCE value (initialized to the configured opening balance on first read). Use this to source the balance from an external system instead of postmeta, or to apply a temporary adjustment for display.

add_filter( 'bpmb_user_credit_balance', function ( $balance, $user_id ) { return $balance; }, 10, 2 );
Parameter Type Description
$balance int Current credit balance (may be negative when the
$user_id int User ID the balance belongs to

Fired in includes/class-buddypress-member-blog-pro-post-credits.php:420 · since 2.0.0

Filter the maximum scheduled posts loaded for a user at once. Bounds the member-facing [bp-member-blog-scheduled] shortcode so it never runs an unbounded posts_per_page => -1 query for a user with many future posts. Default 100 (well above any realistic per-user queue).

add_filter( 'bpmb_user_scheduled_posts_limit', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$max int Maximum scheduled posts. Default 100

Fired in includes/class-buddypress-member-blog-pro-scheduling.php:1036 · since 2.5.1

Filter the cap on how many of a user’s series are loaded at once. This was unbounded. Every caller (the dashboard panel, the series-list shortcode) renders the whole set, so an author with a pathological number of series could pull every one of them into memory. A ceiling, not a page size.

add_filter( 'bpmb_user_series_limit', function ( $arg1 ) { return $arg1; } );
Parameter Type Description
$max int Maximum series per user. Default 200

Fired in includes/class-buddypress-member-blog-pro-series.php:1371 · since 4.0.0

Filter the view-count milestones that trigger an author notification.

add_filter( 'bpmb_view_milestones', function ( $arg1, $post_id ) { return $arg1; }, 10, 2 );
Parameter Type Description
$milestones int[] Ordered list of view thresholds
$post_id int The post being evaluated

Fired in includes/class-buddypress-member-blog-pro-notifications.php:685 · since 2.6.0

Filters whether the legacy serialized view metas are still written. Defaults to false once the indexed view store is live. Set true to keep _bpmb_views_history / _bpmb_traffic_sources populated for code that reads them directly - at the cost of 4 extra postmeta queries per pageview.

add_filter( 'bpmb_write_legacy_view_metas', function ( $store_ready ) { return $store_ready; } );
Parameter Type Description
$write bool Whether to write the legacy metas

Fired in includes/class-buddypress-member-blog-pro-analytics.php:337 · since 4.0.0

Filters the WP_Error object returned by the Pro post-submission form validator. Runs from buddypress_member_blog_pro_validate_form_data(), which extends Free’s title/content validation with the Custom Fields module’s required-field and number min/max checks. Fires here when the module is disabled (no custom field checks were run) and again at the end of the function when it is enabled. Integrators can add or remove WP_Error codes to change what blocks submission.

add_filter( 'bpmbpro_validation_errors', function ( $errors, $post_data, $arg3 ) { return $errors; }, 10, 3 );
Parameter Type Description
$errors WP_Error Validation errors collected so far
$post_data array Raw submitted post form data
$custom_fields array Registered custom field definitions (empty here

Fired in includes/buddypress-member-blog-pro-custom-fields.php:1318 and 1 other place · since 2.0.0

Filters the locale used to load the WB Member Blog Pro translation file.

add_filter( 'buddypress_member_blog_pro_plugin_locale', function ( $arg1, $arg2 ) { return $arg1; }, 10, 2 );
Parameter Type Description
$locale string The current site/user locale, from get_locale()
$text_domain string The plugin’s text domain, ‘buddypress-member-blog-pro’

Fired in class-buddypress-member-blog-pro.php:825 · since 1.0.0

buddypress_member_blog_pro_should_load_assets

Section titled “buddypress_member_blog_pro_should_load_assets”

Filter whether Pro’s frontend CSS and JS load on this request.

add_filter( 'buddypress_member_blog_pro_should_load_assets', function ( $post, $post, $wp_query ) { return $post; }, 10, 3 );
Parameter Type Description
$load bool Whether the page renders something that uses them
$post `WP_Post null`
$wp_query `WP_Query null`

Fired in class-buddypress-member-blog-pro.php:714 · since 2.4.0