Wie erzwinge ich einen bestimmten benutzerdefinierten Post-Typ in der Schleife

Ich entwickle einen Blog, in dem die Hauptpost einen benutzerdefinierten Beitragstyp hat.

Nehmen wir an, dass es sich um einen benutzerdefinierten Post-Typ Buch handelt.

Ich möchte, dass die Seite / author / admin die Bücher des Autors admin auflistet, aber stattdessen geht es und sucht nach Posts von admin, dem integrierten Basistarttyp.

Wie kann ich meinen benutzerdefinierten Posttyp Book in allen solchen Indexabfragen verwenden? (Hauptseite, Autor, Suche, usw.).

Solutions Collecting From Web of "Wie erzwinge ich einen bestimmten benutzerdefinierten Post-Typ in der Schleife"

Sie können alle Hauptabfragen ändern, bevor sie über die Aktion pre_get_posts werden, und überprüfen, ob is_main_query :

 function wpa75492_post_type_query( $query ) { if ( $query->is_main_query() ) { $query->set( 'post_type', array( 'book' ) ); } } add_action( 'pre_get_posts', 'wpa75492_post_type_query' ); 

Verwenden Sie den Parameter post_type = your-custom-post-type-slug-here

Wenn zum Beispiel dein post type slug “product” ist, benutze den Code wie folgt:

 query_post("post_type=product"); 

Sie müssen die Posts von diesem bestimmten Post-Typ vor der Schleife abfragen. Fügen Sie also auf Ihrer Autorenarchivseite oder einer beliebigen Seitenvorlage Folgendes vor der Schleife hinzu:

 query_posts(array( 'post_type' => 'book_posttype', 'author_name' => 'mark' )); 

Query_posts kann auch andere Parameter annehmen.

http://codex.wordpress.org/Function_Reference/query_posts

Es kann dieselben Parameter wie WP_query verwenden. Einer davon ist autor_name.

http://codex.wordpress.org/Class_Reference/WP_Query#Parameters

Sie können auch eine Autorenseitenvorlage hinzufügen, in die Sie diese Abfrage einfügen möchten, und die Schleife. Es wäre eine Seite in Ihrem Themenverzeichnis namens author-mark.php oder was auch immer der Name ist.