У меня есть пользовательский тип book
и таксономия genre
с такими терминами, как novels
и mysteries
. Эти две страницы работают: страница «все книги», в которой перечислены все книги, и страница «жанр», в которой перечислены все книги в жанре. Я хочу добавить на страницу жанра список всех книг, бегущих по сторонам. Я запрашиваю все книги следующим образом:
query_posts(['post_type' => ['book']]);
... затем через них oop, используя тот же код, который работает на странице всех книг.
Скажем, мы находимся на страница загадок:
https://domain.tld/genres/mysteries/
... когда я пытаюсь получить термины жанра для каждой книги в этом списке:
$terms = get_the_terms(get_the_ID(), ['taxonomy' => 'genre']);
... $terms
успешно получает массив жанровых терминов, когда книга не загадка, но не когда книга загадка. В случае сбоя $terms
имеет значение WP_Error
из Invalid taxonomy.
Я могу обойти это, но, похоже, мне не нужно.
Вот большая выдержка из кода:
wp_reset_query(); // same behavior with or without this line
query_posts(['post_type' => ['book']]);
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$terms = get_the_terms(get_the_ID(), ['taxonomy' => 'genre']);
}
}
Вывод со страницы загадок (среди всех книг есть две загадки):
Warning: Illegal offset type in isset or empty in /PATH_REDACTED/public_html/wp-includes/taxonomy.php on line 290
Warning: Illegal offset type in isset or empty in /PATH_REDACTED/public_html/wp-includes/taxonomy.php on line 290