Проверка, есть ли на Странице Связанный термин?


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

По сути, я создал свою собственную таксономию для "возрастных групп" и создал для них три термина. Дети, Подростки, Взрослые... В области администрирования я хочу проверить условия, применимые к конкретному сообщению, и на интерфейсе сайта в шаблоне моей страницы я хочу показать конкретное изображение, если термин был связан с сообщением, или другое, если термин не был связанный.

Есть ли у кого-нибудь решение для этого... Я думал, что следующий пример кода будет работать, но это не так. (Кстати, то, что я здесь делаю, - это изменение изображения на основе css).

<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
   echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
Author: MikeSchinkel, 2010-10-25

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(); просто к вашему сведению.

 6
Author: MikeSchinkel, 2010-10-25 03:45:49