Условный оператор для пользовательской таксономии
Не могу разобраться, как этого добиться, если это вообще возможно. Нужен аналог is_category, но для пользовательской таксономии, которую я создал. Таксономия называется Taxonomy Name и содержит 2 элемента: Taxonomy One и Taxonomy Two. Вот что я пробовал:
<?php if ( has_term('taxonomy-one' ) ) {?>
<div class="test" style="color: red"><?php the_field('field_name'); ?></div>
<?php } elseif ( has_term('taxonomy-two' ) ) {?>
<div class="test" style="color: green"><?php the_field('field_name'); ?></div>
<?php } ?>
Похоже, что по этой теме нет документации, поэтому я совсем не уверен, возможно ли это. Надеюсь на помощь, любые предложения будут очень ценны!
Я почти уверен, что не стоит использовать отрицание в условиях... Если вы проверяете ! is_tax..., это будет истинно не только для других страниц таксономий, но и для одиночных записей, и любых других...
Поэтому это должно выглядеть так:
<?php if ( is_tax('taxonomy-name','taxonomy-one' ) ) {?>
<div class="test" style="color: red"><?php the_field('field_name'); ?></div>
<?php } elseif ( is_tax('taxonomy-name','taxonomy-two' ) ) {?>
<div class="test" style="color: green"><?php the_field('field_name'); ?></div>
<?php } ?>
А что касается отсутствия документации... Я не знаю, где вы искали, но есть страница в кодексе для is_tax: http://codex.wordpress.org/Function_Reference/is_tax ;)
P.S. Если вы хотите проверить, относится ли запись к определённому термину, то вам следует использовать функцию has_term.
спасибо за это! Я читал об этом в codex раньше, но на самом деле я не хочу размещать этот код в архиве таксономии, а в архиве произвольного типа записи, к которому я добавил пользовательские таксономии :) Я также пробовал приведенный выше код, который вы предложили, но он не сработал :(
user1374796
is_tax проверяет, является ли текущая страница архивом таксономии. Архив произвольного типа записи — это не архив таксономии (так же как индекс записей — это не архив категории)... Так что я не совсем понимаю, чего вы хотите достичь...?
Krzysiek Dróżdż
а, понятно, я не знал этого, я новичок в таксономиях, извините. Я хотел проверить, относится ли запись к одной таксономии или к другой. Если к одной — текст в архиве записей должен быть красным, если к другой — зеленым.
user1374796
Без проблем. Вам следует использовать has_term (http://codex.wordpress.org/Function_Reference/has_term).
Krzysiek Dróżdż
Я отредактировал свой вопрос с использованием has_term, но всё равно ничего не работает, ничего не отображается?
user1374796
Что такое taxonomy-one в вашем коде? Это термин или название вашей пользовательской таксономии?
Krzysiek Dróżdż
А как называется эта пользовательская таксономия? (не термин)
Krzysiek Dróżdż
название этой таксономии - 'Taxonomy Name' с ярлыком 'taxonomy-name'
user1374796
Хорошо, попробуйте has_term('taxonomy-one', 'taxonomy-name')
Krzysiek Dróżdż