Skip to content

Hooks and Filters

All hook and filter names in this page are taken verbatim from the plugin source. Only hooks that exist in the code are listed here.


Controls which themes receive extra compatibility code. The default value is array( 'reign-theme', 'buddyx-pro' ).

add_filter( 'buddypress_status_theme_support', function( $themes ) {
$themes[] = 'my-custom-theme';
return $themes;
} );

Parameters: $themes (array) — Indexed array of theme slugs. Returns: array


Filters the list of mood emojis available in the feeling picker. The default list contains roughly 60 entries keyed by emoji slug (e.g. 'slightly-smiling-face') with translated display names as values.

add_filter( 'buddypress_status_get_mood_feeling_emojis', function( $emojis ) {
$emojis['partying-face'] = __( 'Partying', 'my-plugin' );
return $emojis;
} );

Parameters: $emojis (array) — Associative array of slug => display_name. Returns: array


Filters the built-in activity categories (Celebrating, Watching, Eating, etc.). This filter is applied by buddypress_status_mood_categories() and used as the fallback when no custom activities are saved in options.

add_filter( 'buddypress_status_mood_categories', function( $categories ) {
$categories['coding'] = array(
'title' => __( 'Coding', 'my-plugin' ),
'question' => __( 'What are you building?', 'my-plugin' ),
);
return $categories;
} );

Parameters: $categories (array) — Associative array. Each key is a slug; each value is array( 'title' => string, 'question' => string ). Returns: array


Filters the list of global status suggestions returned to the frontend. Applied after reading get_option( 'bpsts_global_statuses' ) and after falling back to the default set.

add_filter( 'bpsts_global_statuses', function( $statuses ) {
array_unshift( $statuses, 'Open for collaborations' );
return $statuses;
} );

Parameters: $statuses (array) — Indexed array of status strings. Returns: array


Filters the built-in fallback list of 20 default status suggestions. Applied only when the bpsts_global_statuses option is empty.

add_filter( 'bpsts_default_global_statuses', function( $statuses ) {
return array( 'Available', 'In a meeting', 'Focused' );
} );

Parameters: $statuses (array) — Indexed array of status strings. Returns: array


Filters the final list of feeling activities shown in the UI. Applied by buddypress_status_get_feeling_activities() after loading from options (or falling back to buddypress_status_mood_categories()). Each activity must have title and question; icon (a Font Awesome class) is optional.

add_filter( 'bpsts_feeling_activities', function( $activities ) {
$activities['reading'] = array(
'title' => 'Reading',
'question' => 'What are you reading?',
'icon' => 'fa-solid fa-book',
);
return $activities;
} );

Parameters: $activities (array) — Associative array of activity config arrays. Returns: array


Filters the cleaned status text immediately before it is used for display. Applied by buddypress_status_clean_status_text(), which strips HTML tags and removes image URL patterns first.

add_filter( 'bpsts_clean_status_display', function( $clean_status, $user_id, $status_id ) {
return mb_strtoupper( $clean_status );
}, 10, 3 );

Parameters:

  • $clean_status (string) — Already-stripped status text.
  • $user_id (int) — User ID providing context.
  • $status_id (string) — The status-{timestamp} key.

Returns: string


bpsts_override_user_profile_status_template

Section titled “bpsts_override_user_profile_status_template”

Filters the template file path used for the status form on the profile Status sub-page. The default is 'inc/bpsts-add-status.php' (relative to the public/ directory).

add_filter( 'bpsts_override_user_profile_status_template', function( $template ) {
return 'inc/my-custom-status-template.php';
} );

Parameters: $template (string) — Relative template path. Returns: string


Filters the maximum character length of the status string shown in the members directory before it is truncated. Default: 30.

add_filter( 'bpsts_directory_status_max_length', function( $length ) {
return 50;
} );

Parameters: $length (int) — Truncation limit in characters. Returns: int


Filters the status text string at the point where it is output in the profile header and members directory. Applied independently to each display context.

add_filter( 'buddypress_status_modify_status_string', function( $status ) {
return wp_emoji_replace_smilies( $status );
} );

Parameters: $status (string) — The current status text. Returns: string


Filters the full Unicode emoji dataset used by the emoji picker. Applied at the end of buddypress-status-emoji-data.php.

add_filter( 'buddypress_status_unicode_emoji_data', function( $emoji_data ) {
// Modify or extend the emoji dataset.
return $emoji_data;
} );

Parameters: $emoji_data (array) — The full emoji data structure. Returns: array


Filters the activity action string (the sentence shown in the activity stream) for activity_status type entries. Applied when building the action string for BuddyPress activity items created by this plugin.

add_filter( 'bp_activity_new_status_action', function( $action, $activity ) {
return sprintf( '%s shared a status update.', bp_core_get_userlink( $activity->user_id ) );
}, 10, 2 );

Parameters: $action (string), $activity (object — BuddyPress activity object). Returns: string


bp_activity_allowed_tags / bp_activity_action_allowed_tags

Section titled “bp_activity_allowed_tags / bp_activity_action_allowed_tags”

The plugin hooks buddypress_status_alter_activity_allowed_tags onto both of these BuddyPress filters (at priority 10) to allow the <i> tag (for Font Awesome icons) inside activity content. You can hook after priority 10 to further modify the tag allowlist.


These actions fire from template partials and give themes or extensions a place to inject HTML.

Fires inside the <thead> row of the saved-statuses table on the profile Status tab, before the default column headers.

add_action( 'bpsts_user_profile_status_table_header', function() {
echo '<th>' . esc_html__( 'Mood', 'my-plugin' ) . '</th>';
} );

Fires after the last row inside the <tbody> of the saved-statuses table.

add_action( 'bpsts_user_profile_status_table_footer', function() {
// Append a summary row.
} );

Fires inside each status <tr>, after the default <td> cells, allowing extra columns to be added.

add_action( 'bpsts_user_profile_status_table_data', function( $user_id, $status_text, $status_id ) {
echo '<td>' . esc_html( $status_id ) . '</td>';
}, 10, 3 );

Parameters: $user_id (int), $status_text (string — already cleaned), $status_id (string).


Fires directly after the Add Status button in the status form (public/inc/bpsts-add-status.php). Use this to inject additional UI controls into the form toolbar.

add_action( 'bpsts_after_profile_status_form_btn', function() {
echo '<button class="my-extra-btn">Custom Action</button>';
} );

The plugin registers itself on several BuddyPress hooks. These are standard BuddyPress hooks, not custom to this plugin, but knowing which ones are used helps avoid conflicts.

WordPress/BP Hook Method Notes
bp_include buddypress_status_begin_execution Plugin bootstrap
wp buddypress_status_add_profile_status_menu Registers the Profile Status sub-nav
bp_before_member_header_meta buddypress_status_render_member_status Profile header status (non-BuddyBoss)
bp_before_member_in_header_meta buddypress_status_render_member_status Profile header status (BuddyBoss Theme only)
bp_directory_members_item_meta buddypress_status_render_directory_status Members directory
bp_member_item_meta buddypress_status_render_directory_status Members directory (alternate)
bp_nouveau_members_loop_item buddypress_status_render_directory_status Nouveau template
bp_member_members_list_item buddypress_status_render_directory_status Legacy template
bp_member_last_active buddypress_status_append_to_last_active Appends status to “last active” text
bp_activity_post_form_options buddypress_status_update_html (priority 10) Status field in activity post form
bp_activity_post_form_options buddypress_status_options_container (priority 60) Feeling/activity container
bp_activity_before_save buddypress_status_update_status_type_activity Sets activity type
bp_activity_posted_update buddypress_status_update_activity_meta Saves mood meta to activity
bp_groups_posted_update buddypress_status_update_activity_meta Saves mood meta to group activity
bp_register_activity_actions buddypress_status_register_activity_actions Registers activity_status type
youzify_after_header_cover_head_content buddypress_status_render_member_status Youzify profile header