Проверка, есть ли на Странице Связанный термин?
Я ищу способ применить некоторую условную логику к терминам, связанным с публикацией.
По сути, я создал свою собственную таксономию для "возрастных групп" и создал для них три термина. Дети, Подростки, Взрослые... В области администрирования я хочу проверить условия, применимые к конкретному сообщению, и на интерфейсе сайта в шаблоне моей страницы я хочу показать конкретное изображение, если термин был связан с сообщением, или другое, если термин не был связанный.
Есть ли у кого-нибудь решение для этого... Я думал, что следующий пример кода будет работать, но это не так. (Кстати, то, что я здесь делаю, - это изменение изображения на основе css).
<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
1 answers
Привет@netconstructor:
Во-первых, предполагая, что ваша логика сработала, вы можете использовать тернарный оператор для упрощения вашего примера:
<li id="kids-<?php echo is_term('Kids','age_groups')
? 'on' : 'off'; ?>">Kids Programs</li>
Проблема, по-видимому, заключается в том, что is_term()
используется для проверки существования термина, а не в том, связан ли он с определенной должностью. Я думаю, что на самом деле ты хочешь is_object_in_term()
( который предполагает, что вы находитесь в Цикле , т.Е. Что $post
имеет соответствующее значение):
<li id="kids-<?php echo is_object_in_term($post->ID,'age_groups','Kids')
? 'on' : 'off'; ?>">Kids Programs</li>
P.S. Предполагая, что is_term()
имел была правильной функцией, на самом деле она была устаревшей; term_exists()
заменяет is_term()
; просто к вашему сведению.