web-dev-qa-db-fra.com

wp_nav_menu n'apparaissant pas pendant quelques pages

J'ai résolu le problème avec la page, la réponse correcte est le commentaire de ptriek ci-dessous.

Eh bien, j’ai un problème un peu étrange ici, wp_nav_menu fonctionne sur toutes les pages SAUF mes pages de catégories (probablement ma page d’archives aussi, mais il n’ya pas de liens sur le site Web vers les pages d’archives, donc ça va).

Bien qu'il y ait archive.php dans mes fichiers de thème, cela contrôle ce qui est affiché sur les pages category, tag, archive, author, etc.

Je ne comprends tout simplement pas pourquoi, puisque chaque page utilise le même header.php pour afficher wp_nav_menu, elle ne s'affichera pas pour les pages de catégorie.

Est-ce que je néglige quelque chose? Je me suis cogné la tête contre mon clavier pour essayer de comprendre cela et ça ne marchera pas!

En utilisant un code très simple: <?php wp_nav_menu('container_class=menu-header&theme_location=primary'); ?>

4
Jared

J'ai eu le même problème, mais avec une version plus récente de Wordpress (3.7.1).

Sur les pages avec des taxonomies personnalisées de publications personnalisées, le wp_nav_menu n'était pas affiché. La solution ci-dessous a fonctionné pour moi.

dans functions.php du thème:

add_action( 'pre_get_posts', 'my_pre_get_posts' );
function my_pre_get_posts($query) {
  if ($query->get('post_type') === 'nav_menu_item') {
    $query->set('tax_query','');
  }
}
6
Implode

La réponse d'Implode est juste et m'a beaucoup aidé. J'ai essayé d'implémenter un hook (pre_get_posts) pour éviter d'afficher des posts de sous-catégories. Mon crochet a bien fonctionné malgré l'absence de Nav-Menus.

Ainsi, lorsque vous modifiez le tax_query, vous devez éviter de le faire pour la requête avec post_type == 'nav_menu_item'.

2
user2447452

Answer by Implode ne résoudra le problème que si vous n'utilisez pas d'autres requêtes telles que 'meta_key'. J'ai trouvé la solution complète ici .

function fix_nav_menu( $query ) {
    if ( $query->get( 'post_type' ) === 'nav_menu_item' ) {
        $query->set( 'tax_query', '' );
        $query->set( 'meta_key', '' );
        $query->set( 'orderby', '' );
    }
}

add_action( 'pre_get_posts', 'fix_nav_menu' );
1
sambua