WordPress导航错误未定义属性:WP_Post_Type :: $ term_id

时间:2019-06-23 01:02:54

标签: wordpress wp-nav-menu-item

我遇到了一个问题,好像有人遇到了,但是没有人发布解决方案。

当我使用wp_nav_menu()函数创建自定义帖子类型和自定义分类法后,会出现问题。我仅在我的存档页面上看到此错误,我在该页面上收到错误:

Notice: Undefined property: WP_Post_Type::$term_id in C:\WebServer\Bolton\wp-includes\nav-menu-template.php on line 350

尽管我将分类法更改为false,但问题仍然存在。我还可以通过编辑WordPress核心文件来停止错误:

/wp-includes/nav-menu-template.php

第349-361行,如果我将其包装在is_single()

// LINES 349 - 361

if (is_single()) {
    $desc = $queried_object->term_id;
    do {
        $possible_taxonomy_ancestors[ $queried_object->taxonomy ][] = $desc;
        if ( isset( $term_to_ancestor[ $desc ] ) ) {
            $_desc = $term_to_ancestor[ $desc ];
            unset( $term_to_ancestor[ $desc ] );
            $desc = $_desc;
        } else {
            $desc = 0;
        }
    } while ( ! empty( $desc ) );
}

因此nav-menu-template无法获得查询的对象ID,因为它位于存档页面上,并因此给出了错误。菜单仍然可以正确显示,尽管在整个导航中有一个很大的提示。

该通知与我编辑的Wordpress导航菜单模板文件一起消失了,尽管版本更新会破坏该文件,所以我需要修复核心问题。

对wp_nav_menu()的调用可以是简单的,也可以是任何参数(名称,ID等)的错误相同。

谢谢您的时间。

Ps。这是我第一个发布的问题,如果做错任何事情,我深表歉意。

以下是我的CPT和分类法注册:

// Register CPT's
$args = [
    'label' => 'Services',
    'public' => true,
    'has_archive' => true,
    'menu_icon' => 'dashicons-hammer',
    'taxonomy'  => 'locations'
];
register_post_type ("Services", $args);

// Register taxonomies
$labels = [
    'name'  => 'Locations',
    'singular_name' => 'Location',
];
$args = [
    'hierarchical' => true,
    'labels' => $labels,
    'public' => true,
    'query_var' => true,
];
register_taxonomy ("locations", "services", $args);

0 个答案:

没有答案