it-swarm.com.de

Möchten Sie auf der Seite Taxonomie-Vorlage Post_Type hinzufügen

Ich habe eine benutzerdefinierte Taxonomie-Vorlagenseite in meinem Design. Wenn jemand auf einen Termlink in dieser Taxonomie klickt, möchte ich IMMER einen bestimmten Post-Typ zur Abfrage hinzufügen.

Ich bin mir nicht ganz sicher, wie ich das machen soll. Ich habe einige Funktionen in PHP 5.3 gefunden, die den Anschein haben, als würden sie dies tun, aber ich habe 5.2 auf meinem Host installiert.

Aber ich möchte im Grunde genommen die aktuelle $ wp_query nehmen, 'post-type' => 'my-custom-post-type' hinzufügen und dann mit $ wp_query in meiner Schleife fortfahren. Ist das möglich?

Ich bin wahrscheinlich übermüdet und gestresst und es gibt einen viel einfacheren Weg, dies zu tun, und ich kann mir das einfach nicht vorstellen = D

Vielen Dank!

BEARBEITEN----

Ok, klar ist meine Methodik hier weg. Wahrscheinlich eine direkte Folge von Müdigkeit.

Ich habe es geschafft, Code zu finden, mit dem ich $ wp_query manipulieren und hinzufügen konnte, was ich wollte. aber es gab nicht das gewünschte Ergebnis:

function _my_method(&$item, $key) {
    if ($key == 'post_type') {
        $item = 'backend_data';
    }
}
array_walk_recursive( $wp_query , '_my_method' );

Im QUERY_VARS-Teil des Arrays hat post_type nun den Wert backend_data. Abgesehen davon, dass ich im Array $ wp_query weiterhin sehe, wie es jeden verfügbaren Beitragstyp abfragt.

[request] => SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts INNER JOIN 
wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( 
wp_term_relationships.term_taxonomy_id IN (35) ) AND wp_posts.post_type IN ('post', 
'page', 'attachment', 'company', 'backend_data', 'ps_promotion') AND (wp_posts.post_status = 'publish' OR wp_posts.post_author = 1 AND wp_posts.post_status = 'private') GROUP BY 
wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 [posts] => Array ( [0] => 
backend_data [1] => stdClass Object ( [ID] =>

und dann werden die beiden Posts gezogen, die sich in 'posts' befinden ... backend_data wird jedoch erneut aufgelistet, bevor mit dem Abrufen der Post-Informationen begonnen wird. Aber ich weiß eindeutig nicht genug über die Funktionsweise von WordPress und Arrays, um zu verstehen, was WTF an diesem Punkt tut = D

EDIT -----

Okay, jetzt bin ich nur davon überzeugt, dass mein Gehirn matschig geworden ist und es einen wortgewaltigeren Weg geben muss, um dies zu tun. zuerst vor und dann nach meiner obigen Funktion, und es gibt immer noch das gleiche mit allen Post-Typen für.

Also, ich schätze, ich habe das alles ohne Grund zu meiner Frage hinzugefügt :(

1
Sam K

Sie können pre_get_posts filter hook verwenden, um zu überprüfen, ob Sie sich auf der Taxonomieseite befinden, und in diesem Fall einfach Ihren benutzerdefinierten Beitragstyp zur Abfrage hinzuzufügen:

function add_my_type( $query ) {
    if ( $query->is_tax('YOUR_TAXONOMY') ) {
        $query->set( 'post_type', array('post','YOUR_CUSTOM_POST') );
    }
}
add_filter( 'pre_get_posts', 'add_my_type' );
4
Bainternet