Skip to content

Hooks reference

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

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/.