Intereting Posts
Установите жесткий код страницы (post-type-archive) в качестве домашней / первой страницы моего блога WordPress? Постоянная ссылка на страницы таксономии post_content с разрывами строк Отключить скрипты загрузки и стили, не работающие Как я должен обрабатывать ошибки в плагине? Как указать общедоступный URL-адрес на внутренний (скрытый) сервер со всеми вытекающими ссылками. Исключение категории из следующих и предыдущих сообщений get_terms () возвращает пустой массив Пожалуйста, объясните мне, что делает do_action Как связать аватар и псевдоним с профилем Таблица 'wp_signups' не существует Вызов mysql_query () в другой базе данных, предполагает, что WordPress использует эту базу данных Есть ли все-таки, чтобы скрыть контент в WordPress до тех пор, пока посетителям не понравится страница facebook? Удалить слизь в URL-адресе пользовательский тип сообщения и пользовательская таксономия permalink

get_categories возвращает категории верхнего уровня вместо дочерних категорий

Я сделал базовое навигационное меню подкатегории, используя приведенный ниже код.

Проблема заключается в одной категории (без детей), она возвращает категории верхнего уровня как дети, например: Новости, Без рубрики и т. Д. (Я попытался назначить дочернюю категорию, и она фактически исчезает из меню, а не фиксирует вещи)

Что может быть причиной этого?

function display_category_breadcrumbs () { $current_cat_id = get_cat_id( single_cat_title("",false) ); $parent_cats = get_categories('parent='.$current_cat_id); ?> <ul id="cat-breadcrumb"> <?php foreach ($parent_cats as $sub_category ) { echo '<li><a href="'. esc_url( get_category_link( $sub_category->term_id) ) . '">' . esc_html( $sub_category->cat_name) . '</a></li>'; } ?> </ul> <?php } 

Я считаю, что то, что вы видите, – это ожидаемое поведение, когда parent равен 0 что возвращает get_cat_id() если ему не удалось найти идентификатор категории для аргумента $cat_name . Вы можете быстро протестировать это, поставив var_dump($current_cat_id); в любое время после того, как вы установите его, чтобы увидеть, правильно ли это предположение. Если это так, вам нужно выяснить, почему вы не получаете $current_cat_id .

То, как вы делаете это сейчас, кажется мне довольно уязвимым, хотя его трудно узнать без дополнительного контекста. Я бы посмотрел, чтобы получить идентификатор непосредственно из get_the_terms() если вы находитесь в одиночных сообщениях или, может быть, с get_query_var() если на странице с временным архивом.

Тангенциально ваш код не должен работать вообще, если то, что вы вставили, неотредактировано, так как ваш оператор if не имеет теста для выполнения.