Transient for main navigation
Unbelievable how many queries this thing needs...
This commit is contained in:
parent
bfb78b7615
commit
2770f74168
@ -589,7 +589,8 @@ function fictioneer_purge_cache_transients( $post_id ) {
|
||||
fictioneer_delete_transients_like( 'fictioneer_shortcode' );
|
||||
}
|
||||
|
||||
// Footer menu
|
||||
// Menus
|
||||
delete_transient( 'fictioneer_main_nav_menu' );
|
||||
delete_transient( 'fictioneer_footer_menu' );
|
||||
}
|
||||
add_action( 'save_post', 'fictioneer_purge_cache_transients' );
|
||||
|
@ -91,6 +91,7 @@ if ( ! function_exists( 'fictioneer_footer_menu_row' ) ) {
|
||||
$menu = str_replace( 'class="', 'class="footer__menu-list-item ', $menu );
|
||||
$menu = str_replace( 'current_page_item', '', $menu );
|
||||
$menu = str_replace( 'current-menu-item', '', $menu );
|
||||
$menu = str_replace( 'aria-current="page"', '', $menu );
|
||||
$menu = preg_replace( '/<\/li>\s*<li/', '</li><li', $menu );
|
||||
|
||||
set_transient( 'fictioneer_footer_menu', $menu );
|
||||
|
2
js/application.min.js
vendored
2
js/application.min.js
vendored
File diff suppressed because one or more lines are too long
@ -24,14 +24,27 @@
|
||||
<div class="main-navigation__wrapper">
|
||||
<div class="main-navigation__left">
|
||||
<?php
|
||||
wp_nav_menu(
|
||||
array(
|
||||
'theme_location' => 'nav_menu',
|
||||
'menu_class' => 'main-navigation__list',
|
||||
'container' => '',
|
||||
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>'
|
||||
)
|
||||
);
|
||||
$menu = get_transient( 'fictioneer_main_nav_menu' );
|
||||
|
||||
if ( empty( $menu ) ) {
|
||||
$menu = wp_nav_menu(
|
||||
array(
|
||||
'theme_location' => 'nav_menu',
|
||||
'menu_class' => 'main-navigation__list',
|
||||
'container' => '',
|
||||
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
|
||||
'echo' => false
|
||||
)
|
||||
);
|
||||
|
||||
$menu = str_replace( 'current_page_item', '', $menu );
|
||||
$menu = str_replace( 'current-menu-item', '', $menu );
|
||||
$menu = str_replace( 'aria-current="page"', '', $menu );
|
||||
|
||||
set_transient( 'fictioneer_main_nav_menu', $menu );
|
||||
}
|
||||
|
||||
echo $menu;
|
||||
?>
|
||||
</div>
|
||||
<div class="main-navigation__right">
|
||||
|
@ -1978,3 +1978,23 @@ fcn_theBody.addEventListener('click', event => {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// =============================================================================
|
||||
// SCROLL TO ANCHORS
|
||||
// =============================================================================
|
||||
|
||||
/**
|
||||
* Mark currently active menu item
|
||||
*
|
||||
* @since 5.5.0
|
||||
*/
|
||||
|
||||
function fcn_markCurrentMenuItem() {
|
||||
_$$(`.menu-item > [data-nav-object-id="${fcn_theBody.dataset.postId}"]`).forEach(element => {
|
||||
element.setAttribute('aria-current', 'page');
|
||||
element.closest('.menu-item').classList.add('current-menu-item');
|
||||
});
|
||||
}
|
||||
|
||||
// Initialize
|
||||
fcn_markCurrentMenuItem();
|
||||
|
Loading…
x
Reference in New Issue
Block a user