首页 > 解决方案 > 在类别或标签页面上找不到菜单项

问题描述

我在 header.php 文件中有以下菜单调用

<nav id="site-navigation" class="navigation main-navigation" role="navigation">
    <?php wp_nav_menu(
        array(
        'theme_location' => 'primary',
        'menu_class' => 'nav-menu',
        'container' => false
        )
    );?>
</nav>

当我查看常规帖子时,菜单显示得很好。当我查看类别或标签页面时,我看到的只是导航包装,但没有项目。为了调试,我在里面放了一些 var_dumpswp-includes\nav-menu-template.php来找出问题所在。问题似乎就在这里。

if ( $menu && ! is_wp_error( $menu ) && ! isset( $menu_items ) ) {
    $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
}

$menu_items 设置为除标签和类别页面之外的所有页面的集合。在此调用之前,我做了一个 $menu 的 var_dump,变量对于两者都是相同的。以下对象设置为所有页面类型的菜单,包括类别和标签,但由于某种原因,它不会获取类别和标签页面的菜单项。

 { ["term_id"]=> int(16) ["name"]=> string(4) "Main" ["slug"]=> string(4) "main" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(16) ["taxonomy"]=> string(8) "nav_menu" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(19) ["filter"]=> string(3) "raw" ["terms_order"]=> string(1) "0" }

我尝试更改 wp_nav_menu() 调用以删除所有参数,它仍会在所有页面上列出相同的菜单,但在标签和类别上它将列出页面。我假设那里有一些插件打破了这一点,但日志中没有显示任何内容,并且如果我将 WP_DEBUG 设置为 true 并启用所有 PHP 错误,则没有 Wordpress 错误。

标签: phpwordpress

解决方案


推荐阅读