Add helper to output taxonomy submenus

This commit is contained in:
Tetrakern 2024-08-07 12:05:30 +02:00
parent 899205c322
commit 6759813422
2 changed files with 26 additions and 23 deletions

View File

@ -1070,6 +1070,31 @@ function fictioneer_render_taxonomy_submenu( $type = 'fcn_genre', $hide_empty =
echo apply_filters( 'fictioneer_filter_taxonomy_submenu_html', $html, $terms, $type, $hide_empty );
}
/**
* Adds actions to render taxonomy submenus as needed
*
* @since 5.22.1
*
* @param string $menu The menu HTML to be rendered.
*/
function fictioneer_add_taxonomy_submenus( $menu ) {
$submenu_callbacks = array(
'trigger-term-menu-categories' => 'fictioneer_render_category_submenu',
'trigger-term-menu-tags' => 'fictioneer_render_tag_submenu',
'trigger-term-menu-genres' => 'fictioneer_render_genre_submenu',
'trigger-term-menu-fandoms' => 'fictioneer_render_fandom_submenu',
'trigger-term-menu-characters' => 'fictioneer_render_character_submenu',
'trigger-term-menu-warning' => 'fictioneer_render_warning_submenu'
);
foreach ( $submenu_callbacks as $trigger => $callback ) {
if ( strpos( $menu, $trigger ) !== false ) {
add_action( 'wp_footer', $callback );
}
}
}
/**
* Action wrapper for the category submenu
*

View File

@ -90,29 +90,7 @@ if ( $header_style === 'wide' ) {
}
}
if ( strpos( $menu, 'trigger-term-menu-categories' ) !== false ) {
add_action( 'wp_footer', 'fictioneer_render_category_submenu' );
}
if ( strpos( $menu, 'trigger-term-menu-tags' ) !== false ) {
add_action( 'wp_footer', 'fictioneer_render_tag_submenu' );
}
if ( strpos( $menu, 'trigger-term-menu-genres' ) !== false ) {
add_action( 'wp_footer', 'fictioneer_render_genre_submenu' );
}
if ( strpos( $menu, 'trigger-term-menu-fandoms' ) !== false ) {
add_action( 'wp_footer', 'fictioneer_render_fandom_submenu' );
}
if ( strpos( $menu, 'trigger-term-menu-characters' ) !== false ) {
add_action( 'wp_footer', 'fictioneer_render_character_submenu' );
}
if ( strpos( $menu, 'trigger-term-menu-warning' ) !== false ) {
add_action( 'wp_footer', 'fictioneer_render_warning_submenu' );
}
fictioneer_add_taxonomy_submenus( $menu );
echo $menu;
}