Проверка наличия терминов произвольной таксономии у записи

18 дек. 2016 г., 13:40:05
Просмотры: 24.9K
Голосов: 10

Это,

if( has_term( 'jazz', 'genre' ) ) {
    // выполнить что-то
}

проверит, имеет ли запись термин jazz из произвольной таксономии genre. Но как проверить, принадлежит ли запись к произвольной таксономии genre? Независимо от того, какой термин она имеет, главное чтобы был любой термин из таксономии genre.

То есть что-то вроде этого,

if ( has_taxonomy('genre') ) {
    // неважно джаз, блюз или рок-н-ролл; главное чтобы запись имела любой из них
}
1
Комментарии

https://codex.wordpress.org/Function_Reference/wp_get_post_terms

Shamsur Rahman Shamsur Rahman
18 дек. 2016 г. 14:35:50
Все ответы на вопрос 2
0
19

Вы можете оставить параметр термина пустым, например:

if( has_term( '', 'genre' ) ) {
    // сделать что-то
}

чтобы проверить, есть ли у текущего объекта записи какие-либо термины в таксономии "genre".

Функция использует is_object_in_term(), где:

Указанные термины проверяются по term_ids, названиям и слагам терминов объекта. Термины, заданные как целые числа, будут проверяться только по term_ids терминов объекта. Если термины не указаны, определяется, связан ли объект с любыми терминами в указанной таксономии.

18 дек. 2016 г. 14:38:28
2
if ( has_term('', 'genre') ) {
    // неважно, джаз это, блюз или рок-н-ролл; функция вернет true, если запись содержит любой из этих терминов
}

вернет true, если запись содержит любой термин из таксономии genre

18 дек. 2016 г. 14:38:21
Комментарии

Я не думаю, что функция has_taxonomy() существует в ядре WordPress.

birgire birgire
18 дек. 2016 г. 16:47:28

Извините, это была ошибка. Изменил has_taxonomy на has_term

Tunji Tunji
18 дек. 2016 г. 17:15:19