Skip to content

Reign fires several hundred action and filter hooks across its templates. This page documents the ones a site builder is actually likely to use, grouped by where they fire, rather than listing all of them. Every hook name below is taken directly from the theme’s code.

header.php and footer.php wrap every page in this order, top to bottom:

Hook Fires
reign_html_before Before the opening <html> tag
reign_head_top Start of <head>, before wp_head()
reign_head_bottom End of <head>, after wp_head()
reign_body_top Start of <body>, before wp_body_open()
reign_before_page Before the #page wrapper div
reign_before_masthead Before the #masthead header element
reign_begin_masthead / reign_end_masthead Inside #masthead, wrapping the header content
reign_after_masthead After the header element closes
reign_before_content Before #content
reign_content_top / reign_content_bottom Inside #content, wrapping the page’s main output
reign_after_content After #content closes
reign_before_footer / reign_footer / reign_after_footer Around the footer output
reign_after_page After #page closes
reign_body_bottom End of <body>, before wp_footer()

reign_html_class (filter) adds classes to the <html> element.

Hook Fires
reign_before_header_icons / reign_after_header_icons Around the icon group (search, cart, notifications) in every header layout, v1 through v4
reign_header_v4_middle_section_html Middle section of header layout v4
reign_user_profile_menu Where the logged-in user menu renders, desktop and mobile
reign_before_reign_mobile_main_menu / reign_after_reign_mobile_main_menu Around the mobile main menu
reign_before_header_icons / reign_after_mobile_header_icons Around the icon group inside the mobile panel
Hook Fires
reign_footer_copyright_text (filter) The copyright line text, before it is echoed

The page-skeleton reign_before_footer / reign_footer / reign_after_footer actions above are also where most footer-area customization happens.

These fire from the BuddyPress templates, in both the bp-nouveau and bb-buddypress directories, so a callback registered once covers both BuddyPress and BuddyBoss Platform sites:

Hook Fires
reign_begin_member_profile_sidebar / reign_end_member_profile_sidebar Around the sidebar on a member’s profile and on a single group
reign_member_extra_info_section Extra info area on a member’s cover/header
reign_group_extra_info_section Extra info area on a group’s cover/header
reign_before_member_avatar_member_directory Before each avatar in a members-loop grid
reign_before_group_avatar_group_directory Before each avatar in a groups-loop grid
reign_bp_nouveau_directory_members_item Inside each member card in a directory or friends-request loop
reign_bp_before_displayed_user_mentionname Before the @mentionname on a member’s profile

Sign-in and registration forms (template-parts/form-login.php, template-parts/form-register.php) also expose reign_login_form_top / reign_login_form_bottom and reign_register_form_top / reign_register_form_bottom.

Filter Purpose
reign_excerpt_length Word count for auto-generated excerpts
reign_excerpt_more The “read more” ellipsis text on excerpts
reign_breadcrumbs_separator The separator markup between breadcrumb items
reign_breadcrumbs_home_title The label for the Home breadcrumb
reign_sidebar_id_for_left_sidebar Which registered sidebar ID renders in the left-sidebar slot
reign_render_fallback_page_header Whether the fallback page-header banner renders on a given request
reign_customize_classic_widgets Default true: widget areas in the Customizer use classic widget forms. Return false to restore block widgets there
reign_member_header_allowed_positions Member header positions a member may save on their profile. Default ['inside', 'top']
reign_load_ideapush_assets Force IdeaPush styling onto a page Reign does not detect (for example a widget). It loads on its own on idea pages and pages with the [ideapush] shortcode

Added in 8.0.8. All search filters run on front-end searches only.

Filter Purpose
reign_search_exclude_post_types Post types to drop from search results. Receives an empty array and the WP_Query. Wins over the include list
reign_search_post_types Restrict search to exactly these post types. Receives an empty array and the WP_Query. Can also force in a type registered with exclude_from_search
reign_searchable_post_types The list of searchable post types with labels
reign_search_scope_excluded_post_types Infrastructure post types hidden from that list (Elementor library and landing pages, attachments)
reign_search_federation Default true. Return false to turn off the plugin result sections on the search page
reign_search_federation_providers Add, remove or reorder result sections. Built-in ids: buddynext, jetonomy, eventonomy, mediaverse, learnomy
reign_search_federation_excluded_providers Array of provider ids to hide, for example ['mediaverse']
reign_search_federation_buddynext_row_url The link used for each BuddyNext result row
reign_search_federation_buddynext_direct_link_types BuddyNext result types that link straight to the item
reign_search_federation_buddynext_cpt_types BuddyNext result types backed by WordPress post types
reign_use_buddynext_header_search Whether the header search opens BuddyNext’s community search. Return true or false to override the theme setting

A URL that sets post_type (for example a plugin’s own search form) bypasses both scope filters.

// Keep WooCommerce products out of the site search.
add_filter( 'reign_search_exclude_post_types', function ( $types ) {
$types[] = 'product';
return $types;
} );
// Hide the MediaVerse section from search results.
add_filter( 'reign_search_federation_excluded_providers', function ( $ids ) {
$ids[] = 'mediaverse';
return $ids;
} );

Hooks carried over from the Reign add-ons era

Section titled “Hooks carried over from the Reign add-ons era”

Before Reign 8, header/footer/sidebar customizations went through hooks prefixed wbcom_ and wbtm_, fired by the separate Reign add-ons. inc/reign-deprecated-hooks.php keeps those working: every current reign_* layout hook also re-fires its old equivalent, so code written against the legacy names still runs. For example, reign_before_content still triggers wbcom_before_content, and reign_member_extra_info_section still triggers wbtm_member_extra_info_section. New code should hook the reign_* names directly.

Three older filters were also case-sensitive in a way that broke silently: BP_reign_user_progress, BP_reign_user_progress_formatted and BP_reign_profile_completion_form_update were lowercased to bp_reign_user_progress, bp_reign_user_progress_formatted and bp_reign_profile_completion_form_update. Both names still work, bridged through the same file, but write new code against the lowercase names.

One bridge was removed outright in 8.0.5: the wbcom_kirki_theme_customizer_loaded compatibility action. Its trigger had no firer since Kirki was removed in 8.0.0, so it could never run. There is no replacement hook for it, and Kirki itself is gone from Reign 8. Register Customizer fields through Panel::add() / Section::add() / Field::add() in the theme’s own Customizer Framework instead, documented alongside the code in inc/Customizer_Framework/.