Wordpress Nav Ошибка Неопределенное свойство: WP_Post_Type :: $ term_id - PullRequest
1 голос
/ 23 июня 2019

Я столкнулся с проблемой, с которой, похоже, столкнулись несколько человек, но никто не опубликовал решение.

Проблема возникает после создания пользовательского типа публикации и пользовательской таксономии при использовании функции wp_nav_menu (). Я вижу эту ошибку только на своей странице архива, где я получаю сообщение об ошибке:

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

Проблема прекращается, когда я меняю свою иерархию таксономии на ложную, хотя мне нужно, чтобы это было так Я также смог остановить ошибку, отредактировав файл ядра 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 не может получить идентификатор запрашиваемого объекта, поскольку он находится на странице архива и из-за него выдает ошибку. Меню по-прежнему отображается правильно, хотя с большой пометкой прямо через навигацию.

Уведомление исчезает с моим отредактированным файлом шаблонов navpress меню Wordpress, хотя обновление версии сломает его, поэтому мне нужно исправить проблему с ядром.

Вызов wp_nav_menu () может быть простым или с любым параметром (имя, идентификатор и т. Д.), Ошибка та же.

Спасибо за ваше время.

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);
...