Вопрос

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

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

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

<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
   echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
Это было полезно?

Решение

Привет @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>

PS предполагает is_term() был правильной функцией, на самом деле устарел; term_exists() заменяет is_term(); Просто к вашему сведению.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top