php - 在类别或标签页面上找不到菜单项
问题描述
我在 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 错误。
解决方案
推荐阅读
- html - devtools 中的 position-bottom 是什么意思?
- excel - 在 Excel 中反转空单元格和非空单元格 - VBA
- django - Django 设计功能来检查无效主机的 500 错误并阻止 IP
- c# - Webview UWP Win 8.1 中兼容的启用模式
- javascript - 提交表单时不显示单选按钮值
- css - 清除属性不适用于第 n 个子选择器
- ruby-on-rails - 卸载加载jQuery dataTables Rails 5.2
- testing - 测试期间的日志记录和预期异常
- c++ - 如何使用树莓派获取 ina219 传感器数据
- jquery - jQuery ajax.error() 用于除 403 之外的所有错误