web-dev-qa-db-fra.com

previous_post_link/next_post_link disparaissent lors de l'exclusion par post_format

J'essaie d'exclure les formats de publication de côté de mes liens suivants et précédents, mais pour une raison quelconque, utiliser get_term_by ne me renvoie pas le term_id pour la taxonomie post_format. Je vois que cette taxonomie est utilisée par le noyau Wordpress ici , alors je sais que je le fais de la bonne façon. Selon cette publication , je dois être sûr que la taxonomie est correctement enregistrée. Imprimer le débogage Je vois la sortie suivante de get_taxonomies().

Array
(
    [category] => category
    [post_tag] => post_tag
    [nav_menu] => nav_menu
    [link_category] => link_category
    [post_format] => post_format
    [tagportfolio] => tagportfolio
)

Donc, je peux voir que la taxonomie post_format a été enregistrée. Voici mon code:

<?php print_r(get_taxonomies()); ?>
<?php print_r(get_term_by('id', 'post-format-aside', 'post_format')->term_id); ?>
<?php previous_post_link('&lsaquo; %link', '%title', false, array(get_term_by('id', 'post-format-aside', 'post_format')->term_id )); ?>
<?php next_post_link('%link &rsaquo;', '%title', false, array(get_term_by('id', 'post-format-aside', 'post_format')->term_id )); ?>

Des idées sur pourquoi cela ne fonctionne pas? Pourquoi les posts réservés ne sont-ils pas exclus ici?

UPDATE 1

Le code suivant me renvoie un term_id de get_term_by, mais entraîne la disparition des liens suivant/précédent:

<?php print_r(get_taxonomies()); ?>
<?php print_r(get_term_by('slug', 'post-format-aside', 'post_format')->term_id); ?>
<?php previous_post_link('&lsaquo; %link', '%title', false, array(get_term_by('slug', 'post-format-aside', 'post_format')->term_id )); ?>
<?php next_post_link('%link &rsaquo;', '%title', false, array(get_term_by('slug', 'post-format-aside', 'post_format')->term_id )); ?>

L'objet renvoyé par get_term_by est:

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 )

UPDATE 2

Lorsque j'active le débogage de la requête Wordpress , la requête suivante est déclenchée, à savoir le jeu vide.

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)

Ce qui est étrange à propos de ce qui précède est que la requête semble tenter de trouver le post précédent en fonction de la taxonomie de la catégorie, ce que j’ai explicitement demandé à la fonction de ne pas utiliser avec les paramètres de la requête. Cela ressemble à un bug dans Wordpress pour moi.

1
markshiz

J'ai déposé un bogue contre Wordpress car la requête ici me fait penser qu'il s'agit d'un bogue dans le framework: https://core.trac.wordpress.org/ticket/32833#ticket

0
markshiz