предыдущая ссылка на публикацию/следующая ссылка на публикацию исчезают при исключении по формату публикации
Я пытаюсь исключить другие форматы сообщений из моих следующих и предыдущих ссылок, но по какой-то причине использование get_term_by
не возвращает мне term_id
для таксономии post_format
. Я вижу, что эта таксономия используется ядром Wordpress здесь, поэтому я знаю, что делаю это правильно. Согласно этой публикации , мне нужно быть уверенным, что таксономия правильно зарегистрирована. Отладка печати Я вижу следующий вывод из get_taxonomies()
.
Array
(
[category] => category
[post_tag] => post_tag
[nav_menu] => nav_menu
[link_category] => link_category
[post_format] => post_format
[tagportfolio] => tagportfolio
)
Так что я могу видеть post_format
таксономия зарегистрирована. Вот мой код:
<?php print_r(get_taxonomies()); ?>
<?php print_r(get_term_by('id', 'post-format-aside', 'post_format')->term_id); ?>
<?php previous_post_link('‹ %link', '%title', false, array(get_term_by('id', 'post-format-aside', 'post_format')->term_id )); ?>
<?php next_post_link('%link ›', '%title', false, array(get_term_by('id', 'post-format-aside', 'post_format')->term_id )); ?>
Есть идеи, почему это не работает? Почему здесь не исключаются дополнительные сообщения?
ОБНОВЛЕНИЕ 1
Следующий код возвращает мне идентификатор термина из get_term_by
, но приводит к исчезновению следующих/предыдущих ссылок:
<?php print_r(get_taxonomies()); ?>
<?php print_r(get_term_by('slug', 'post-format-aside', 'post_format')->term_id); ?>
<?php previous_post_link('‹ %link', '%title', false, array(get_term_by('slug', 'post-format-aside', 'post_format')->term_id )); ?>
<?php next_post_link('%link ›', '%title', false, array(get_term_by('slug', 'post-format-aside', 'post_format')->term_id )); ?>
Объект, возвращаемый get_term_by
, выглядит следующим образом:
STDCLASS OBJECT ( [TERM_ID] => 10 [NAME] => ASIDE [SLUG] => POST-FORMAT-ASIDE [TERM_GROUP] => 0 [TERM_TAXONOMY_ID] => 10 [TAXONOMY] => POST_FORMAT [DESCRIPTION] => [PARENT] => 0 [COUNT] => 0 [FILTER] => RAW )
ОБНОВЛЕНИЕ 2
Когда я включаю отладку запросов Wordpress, я вижу следующее запускается запрос, который является пустым набором.
mysql> SELECT P.ID FROM WP_POSTS AS P INNER JOIN WP_TERM_RELATIONSHIPS AS TR ON P.ID = TR.OBJECT_ID INNER JOIN WP_TERM_TAXONOMY TT ON TR.TERM_TAXONOMY_ID = TT.TERM_TAXONOMY_ID WHERE P.POST_DATE < '2015-06-01 20:10:00' AND P.POST_TYPE = 'PROJECT' AND TT.TAXONOMY = 'CATEGORY' AND P.ID NOT IN ( SELECT TR.OBJECT_ID FROM WP_TERM_RELATIONSHIPS TR LEFT JOIN WP_TERM_TAXONOMY TT ON (TR.TERM_TAXONOMY_ID = TT.TERM_TAXONOMY_ID) WHERE TT.TERM_ID IN (10) ) AND ( P.POST_STATUS = 'PUBLISH' OR P.POST_STATUS = 'PRIVATE' ) ORDER BY P.POST_DATE DESC ;
Empty set (0.01 sec)
Что странно в вышеприведенном, так это то, что запрос, похоже, пытается найти предыдущее сообщение на основе таксономии категорий, которую я явно попросил функцию не выполнять с помощью параметров запроса. Мне это кажется ошибкой в Wordpress.
1 answers
Я зарегистрировал ошибку в Wordpress, так как запрос здесь наводит меня на мысль, что это ошибка в фреймворке: https://core.trac.wordpress.org/ticket/32833#ticket