Reference of the significant action hooks and filters the BuddyX Pro theme fires. Every hook listed here is fired (do_action) or applied (apply_filters) in the shipped 5.1.4 code. Plugin hooks the theme only listens to (core WordPress, BuddyPress, WooCommerce, LearnDash, etc.) are out of scope - see those projects’ own references.
BuddyX Pro fires a large surface (roughly 55 own actions and 70 own filters). This page documents the ones you are most likely to hook. Grep the code for do_action( 'buddyx / apply_filters( 'buddyx to see the complete set.
Fired from header.php and footer.php.
Hook
Fires
buddyx_head_top
Immediately inside <head>
buddyx_head_bottom
End of <head>, before </head>
buddyx_body_top
Right after <body> opens (also fires buddyx_wp_body_open)
buddyx_page_top
Top of #page wrapper
buddyx_page_bottom
Bottom of #page, before wp_footer()
buddyx_body_bottom
After wp_footer(), before </body>
add_action ( ' buddyx_head_bottom ' , ' my_head_meta ' );
function my_head_meta () {
echo ' <meta name="theme-color" content="#ee4036"> ' ;
Fired from header.php and the header template parts.
Hook
Fires
buddyx_header_before
Before the <header id="masthead"> element
buddyx_header_wrapper_before
Inside the header, before the inner wrapper
buddyx_header_wrapper_after
Inside the header, after the inner wrapper
buddyx_header_after
After the </header> element
buddyx_header_actions
Inside the desktop menu-icons area (search / cart / color-mode toggle)
buddyx_mobile_menu_actions
Inside the mobile navigation actions (template-parts/header/navigation.php)
There is no buddyx_header hook - that name is not fired anywhere in the theme. Use buddyx_header_actions to add header widgets. The Color_Mode_Toggle component hooks its toggle onto buddyx_header_actions at priority 50.
// Add a header widget next to the search / cart icons.
add_action ( ' buddyx_header_actions ' , ' my_header_widget ' , 20 );
function my_header_widget () {
echo ' <div class="my-header-widget">Hi</div> ' ;
The most widely used pair - fired around the main content area from every top-level template (index.php, single.php, page.php, archive.php, buddypress.php, bbpress.php, the FluentCart/LearnDash templates, etc.).
Hook
Fires
buddyx_before_content
Before the content container opens
buddyx_after_content
After the content container closes
add_action ( ' buddyx_before_content ' , ' my_content_notice ' );
function my_content_notice () {
echo ' <div class="my-notice">Custom content here</div> ' ;
Hook
Fires
buddyx_sub_header
Page-title / sub-header area, after the site header
Default callback: buddyx_sub_header().
// Replace the default page header.
remove_action ( ' buddyx_sub_header ' , ' buddyx_sub_header ' );
add_action ( ' buddyx_sub_header ' , ' my_page_header ' );
function my_page_header () {
echo ' <div class="my-page-header">Custom Header</div> ' ;
Fired from the template-parts/content/ and template-parts/layout/ parts.
Hook
Fires
buddyx_entry_before
Before an entry <article>
buddyx_entry_after
After an entry <article>
buddyx_entry_content_before
Before the entry content
buddyx_entry_content_after
After the entry content
buddyx_entry_meta_after
After the entry meta row
buddyx_before_archive_loop
Before the archive loop starts
add_action ( ' buddyx_entry_content_after ' , ' my_after_post ' );
function my_after_post () {
if ( is_singular ( ' post ' ) ) {
echo ' <div class="author-bio">...</div> ' ;
Hook
Fires
buddyx_before_breadcrumb
Before the breadcrumb trail
buddyx_after_breadcrumb
After the breadcrumb trail
Fired from sidebar.php / sidebar-buddypress.php.
Hook
Fires
buddyx_sidebar_before
Before the sidebar widget area
buddyx_sidebar_after
After the sidebar widget area
Fired from footer.php and template-parts/footer/info.php.
Hook
Fires
buddyx_footer_before
Before the <footer> element
buddyx_footer_after
After the <footer> element
buddyx_copyright_before
Before the copyright row
buddyx_copyright_after
After the copyright row
add_action ( ' buddyx_footer_before ' , ' my_prefooter ' );
function my_prefooter () {
echo ' <div class="pre-footer">Newsletter signup</div> ' ;
Fired from template-parts/header/buddyx-panel.php.
Hook
Fires
buddyx_before_inner_panel
Before the inner side-panel content
buddyx_after_inner_panel
After the inner side-panel content
Fired from the login/register form parts.
Hook
Fires
buddyx_login_form_top / buddyx_login_form_bottom
Top / bottom of the login form
buddyx_register_form_top / buddyx_register_form_bottom
Top / bottom of the registration form
buddyxpro_recaptcha_after_login_form
After the login form (reCAPTCHA seam)
buddyxpro_recaptcha_after_register_form
After the register form (reCAPTCHA seam)
Hook
Fires
Parameters
buddyx_pro_post_comment_before
Before the post comments section
-
buddyx_pro_before_comment_replay
Before the comment reply link
$comment_id, $comment
buddyx_pro_after_comment_replay
After the comment reply link
$comment_id, $comment
add_action ( ' buddyx_pro_after_comment_replay ' , ' my_comment_actions ' , 10 , 2 );
function my_comment_actions ( $comment_id , $comment ) {
echo ' <button class="report-comment">Report</button> ' ;
Hook
Fires
buddyx_before_member_avatar_member_directory
Before a member avatar in the members directory
buddyx_before_group_avatar_group_directory
Before a group avatar in the groups directory
buddyx_before_item_meta / buddyx_after_item_meta
Around directory item meta
buddyx_buddypress_member_send_message_button_call
Around the member “send message” button
Fired from the Dokan store container (inc/compatibility/dokan/dokan-functions.php).
Hook
Fires
buddyx_store_container_open
Inside the store-page container open
buddyx_store_container_close
Inside the store-page container close
Fired from the FluentCart single-product template (all default priority 10).
Hook
Fires
buddyx_fluentcart_before_product_content / buddyx_fluentcart_after_product_content
Start / end of the product template
buddyx_fluentcart_before_product_header / buddyx_fluentcart_after_product_header
Around product title and meta
buddyx_fluentcart_before_product_description / buddyx_fluentcart_after_product_description
Around the product description
buddyx_fluentcart_product_tabs
Product tabs area
buddyx_fluentcart_before_related_products / buddyx_fluentcart_after_related_products
Around related products
add_action ( ' buddyx_fluentcart_after_product_header ' , ' my_trust_badges ' );
function my_trust_badges () {
echo ' <div class="trust-badges">Secure checkout</div> ' ;
These are the recommended entry points for adding, removing, or reconfiguring theme assets. See the Theme Architecture asset section.
File: inc/Styles/Component.php
Filters the CSS manifest ($handle => $data map) that drives every conditional stylesheet enqueue. Add an entry to register a new integration stylesheet, or unset one to drop it.
add_filter ( ' buddyxpro_css_files ' , function ( $ css_files ) {
$ css_files [ ' my-integration ' ] = array (
' file ' => ' my-integration.css ' ,
' preload_callback ' => function () {
return class_exists ( ' My_Plugin ' );
File: inc/Scripts/Component.php
Filters the JavaScript manifest that drives every conditional script enqueue (same shape, with footer / localize keys).
add_filter ( ' buddyxpro_js_files ' , function ( $ js_files ) {
unset ( $ js_files [ ' buddyxpro-entry-share-popup ' ] ); // drop share popup
Filter
File
Purpose
buddyxpro_customizer_settings
inc/Customizer_Settings/
Filters the full customizer settings definition
buddyx_customizer_field_type_map
inc/Customizer_Framework/
Maps field type to control class
buddyx_customizer_field_args
inc/Customizer_Framework/
Filters per-field args before registration
buddyxpro_color_scheme_presets
inc/Customizer_Settings/
Color-scheme preset list
buddyxpro_typography_presets
-
Typography preset list
buddyxpro_header_presets
-
Header layout presets
buddyxpro_google_fonts
inc/Fonts/
Available Google font list
Filter
Purpose
buddyx_breadcrumb_trail_args
Default breadcrumb args
buddyx_breadcrumb_trail_items
Final breadcrumb items array
buddyx_breadcrumb_trail_labels
Breadcrumb label strings
buddyx_breadcrumb_trail_object
Short-circuit with a custom trail object
buddyx_breadcrumb_trail
Final rendered breadcrumb HTML
Filter
Returns
buddyx_search_slide_toggle_data_attrs
Data-attribute string for the search toggle button
buddyx_search_field_toggle_data_attrs
Data-attribute string for the search field container
add_filter ( ' buddyx_search_slide_toggle_data_attrs ' , function () {
return ' data-animation="slide" data-speed="300" ' ;
Filter
Purpose
buddyxpro_minimal_layout_force_no_sidebar
Force no sidebar in the minimal layout
buddyxpro_display_title_and_description
Toggle archive title + description output
buddyxpro_filter_archive_posts_per_page
Archive posts-per-page override
buddyxpro_post_categories_limit
Max categories shown per entry
buddyxpro_reading_time_minutes
Filter the computed reading time
buddyxpro_page_settings_post_types
Post types that get the per-page settings meta box
buddyx_enable_post_thumbnails
Toggle post-thumbnail support
buddyx_off_canvas_filter_button_output
Off-canvas filter button markup
Filter
Purpose
buddyxpro_login_presets
Login-page brand presets
buddyxpro_register_page_login_url
Register-page login URL
buddyx_lostpassword_url
Lost-password URL
Filter
Purpose
buddyxpro_install_catalog
The recommended-plugins catalog shown by the Plugin Installer / Welcome screen
Filter
Purpose
buddyx_bp_is_current_action
Whether the current BP action matches (used across BP templates)
buddyx_buddypress_member_send_message_button_url
Member “send message” button URL
buddyx_get_member_joined_date
Member joined-date string
buddyx_learndash_lms_get_course_participants_per_page
Participants per page
buddyx_ld_modify_course_features
Course features list
buddyx_ld_filter_course_author_url
Course author URL
Theme components add their hooks inside initialize():
namespace BuddyxPro\BuddyxPro\MyComponent;
use BuddyxPro\BuddyxPro\ Component_Interface ;
class Component implements Component_Interface {
public function get_slug () : string {
public function initialize () {
add_action ( ' wp_head ' , array ( $ this , ' add_meta_tags ' ) );
add_filter ( ' body_class ' , array ( $ this , ' add_body_classes ' ) );
public function add_body_classes ( $classes ) {
$classes [] = ' my-custom-class ' ;
Use the correct priority (lower = earlier); the color-mode toggle occupies priority 50 on buddyx_header_actions.
Check context (is_singular(), is_page(), is_buddypress()) before outputting.
Escape all output (esc_html(), esc_attr(), esc_url()).
Return a value from filter callbacks - never echo.
Prefer the buddyxpro_css_files / buddyxpro_js_files manifest filters over dequeueing by handle where possible.
Prefix your callbacks so they never collide with the theme’s buddyx_* / buddyxpro_* functions.