wake-up-neo.com

previous_post_link/next_post_link verschwinden beim Ausschließen von post_format

Ich versuche, Postformate von meinen nächsten und vorherigen Links auszuschließen, aber aus irgendeinem Grund gibt die Verwendung von get_term_by nicht den term_id für die post_format-Taxonomie zurück. Ich sehe, dass diese Taxonomie vom Wordpress-Kern hier verwendet wird, also weiß ich, dass ich das richtig mache. Gemäß dieser Veröffentlichung muss ich sicher sein, dass die Taxonomie ordnungsgemäß registriert ist. Druck-Debugging Ich sehe die folgende Ausgabe von get_taxonomies().

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

So kann ich sehen, dass die Taxonomie post_format registriert wurde. Hier ist mein 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 )); ?>

Irgendwelche Ideen, warum das nicht funktioniert? Warum werden die Nebenbeiträge hier nicht ausgeschlossen?

UPDATE 1

Der folgende Code gibt mir eine term_id von get_term_by zurück, führt aber dazu, dass die nächsten/vorherigen Links verschwinden:

<?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 )); ?>

Das von get_term_by zurückgegebene Objekt ist:

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

Wenn ich das Debuggen von Wordpress-Abfragen aktiviere, wird die folgende Abfrage ausgelöst, bei der es sich um die leere Gruppe handelt.

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)

Das Merkwürdige an dem oben Gesagten ist, dass die Abfrage anscheinend versucht, den vorherigen Beitrag auf der Grundlage der Kategorietaxonomie zu finden, was ich die Funktion ausdrücklich gebeten habe, dies nicht über die Abfrageparameter zu tun. Dies scheint mir ein Fehler in Wordpress zu sein.

1
markshiz

Ich habe einen Fehler gegen Wordpress gemeldet, da ich aufgrund der hier gestellten Frage vermute, dass dies ein Fehler im Framework ist: https://core.trac.wordpress.org/ticket/32833#ticket

0
markshiz