J'utiliseWP Recherche personnaliséeplug-in pour générer une recherche avancée dans l'un de mes nouveaux sites WP. Bien que le plugin ne soit pas totalement exempt d'erreurs, mais il fonctionne très bien (à l'exception de certains avertissements de décalage indéfini, je les ignore pour son meilleur support de recherche).
Mais récemment, j'ai remarqué que la wp_nav_menu()
sur le header.php
ne fonctionnait pas lorsque je me trouvais sur la page de recherche. C'est un code simple tel qu'il est utilisé dans bon nombre de mes WP:
<?php wp_nav_menu( array( 'theme_location' => 'header_menu', 'menu_class' => 'site-header-menu' ) ); ?>
Cela fonctionne sur toutes les autres pages, MAIS le search.php
- un modèle de recherche typique.
J'ai essayé la solution la plus citée de:
Typiquement la page de recherche contient un ?s=
sur l'URL, mais en utilisant ce plugin, je reçois:
http://example.com/?search-class=DB_CustomSearch_Widget-db_customsearch_widget&widget_number=preset-1&[search_queries_and_conditions]=&search=Search
Est-ce une cause que je ne parviens pas à faire écho au menu? ( Site en direct ici , et la recherche avancée à gauche)
Comme l'a dit Milo, il semble que ce soit un problème de plugin. Et uniquement pour ce projet, je ne vais pas faire une si grosse sortie Dig, je vais plutôt faire une chute. Je le répète, ce n'est pas une solution, c'est juste un problème qui cache la mesure.
J'ai vérifié, comme Laxmana l'a dit, y a-t-il des éléments de menu qui y sont trouvés. S'il y a des éléments de menu, affichez-les sous la forme nav_menu, sinon, affichez le menu par défaut (dans mon cas, je montre simplement le bouton "Accueil", car mon site l'exige de toute urgence).
<?php
$menu_name = 'header_menu';
$locations = get_nav_menu_locations();
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menuitems = wp_get_nav_menu_items( $menu->term_id );
?>
<?php if( !empty($menuitems) ) { ?>
<?php wp_nav_menu( array( 'theme_location' => 'header_menu', 'menu_class' => 'site-header-menu' ) ); ?>
<?php } else { ?>
<div class="menu-top-menu-container">
<ul class="site-header-menu" id="menu-top-menu">
<li class="no-margin">
<a href="<?php echo home_url('/'); ?>">Home</a>
</li>
</ul>
</div>
<?php } ?>