Anzeigen von Posts, die nach Posttyp gruppiert sind, in taxonomy.php

Ich habe zwei Post-Typ (‘newpost’ und ‘Buch’) assoziieren mit benutzerdefinierten Taxonomie (newcategory) (writer1, writer2, writer3 …)

Ich muss jeden benutzerdefinierten Beitrag mit Post-Begriff in einem separaten Stil anzeigen.

Mein Code ist:

$post_type = array('newpost','book'); //echo get_query_var('term'); foreach($post_type as $postType) { $args = array( 'post_type' => $postType, 'tax_query' => array( array( 'taxonomy' => $taxonomy, 'field' => 'slug', 'terms' => rawurldecode(get_query_var('term')) ) ) ); $my_query = new WP_Query( $args ); if($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); { //I got all the post here by //echo '

'.the_title().'

'; but i have need it separately. //Here I want to display all the term of the custom post separately endwhile; endif; }

Solutions Collecting From Web of "Anzeigen von Posts, die nach Posttyp gruppiert sind, in taxonomy.php"

Kurze Version

Innerhalb Ihres Loop-Aufrufs: get_template_part( 'loop', get_post_type() );

Sie benötigen jetzt eine loop.php als allgemeine Fallback-Vorlage (die Standardansicht). Sie können beliebig viele post_type-spezifische Templates erzeugen, zB loop-newpost.php und loop-book.php .

Aber Sie überdenken es ein wenig und fügen eine weitere Abfrage über die Hauptabfrage hinzu (Seitenladen?). Sie können Ihrem Thema die vollständige Vorlagenunterstützung wie folgt hinzufügen.

Eine bessere Einstellung

Fügen Sie Ihre CPTs hinzu .

 function add_my_custom_post_type() { $args = array( 'menu_position' => 8, 'menu_icon' => 'dashicons-admin-post', 'public' => true, 'publicly_queryable' => true, 'query_var' => false, 'capability_type' => 'post', 'has_archive' => true, 'rewrite' => array( 'slug' => 'new-post', 'feeds' => true, 'pages' => true, 'with_front' => true, ), 'taxonomies' => array( 'author' ), 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ) ); register_post_type( 'newpost', $args ); $args['labels']['name'] = __('Books', 'my_textdomain'); $args['labels']['all_items'] = __('All Books', 'my_textdomain'); $args['labels']['singular_name'] = __('Book', 'my_textdomain'); $args['rewrite']['slug'] = 'book'; register_post_type( 'book', $args ); } add_action('init', 'add_my_custom_post_type'); 

Fügen Sie Ihre benutzerdefinierte Taxonomie hinzu .

Achtung: Der Autor ist ein Slug, der von WordPress verwendet wird. Sie müssen also kreativ sein: tax_author für den query_var & query_var und the-author für den Slug.

 function add_my_custom_taxonomy() { register_taxonomy( 'tax_author', array( 'newpost', 'book' ), array( 'hierarchical' => false, 'labels' => array( 'name' => __( 'Authors', 'my_textdomain' ), 'singular_name' => __( 'Author', 'my_textdomain' ), 'menu_name' => __( 'Author', 'my_textdomain' ), ), 'show_ui' => true, 'show_admin_column' => true, 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array( 'slug' => 'the-author', 'with_front' => true, 'hierarchical' => false ) ) ); } add_action('init', 'add_my_custom_taxonomy'); 

Fügen Sie die CPT den Hauptabfragen in Fragen mit dem pre_get_posts Hook hinzu

 function add_my_custom_post_type_to_query( $query ) { if ( $query->is_main_query() && $query->is_home() && !is_admin() /* No filtering of CPTs in the backend */) { $query->set( 'post_type', array('newpost', 'book') ); } } add_action( 'pre_get_posts', 'add_my_custom_post_type_to_query' ); 

Bearbeiten : Sie benötigen dies nicht für Taxonomien, aber wenn Sie Ihren CPT zur Hauptabfrage hinzufügen möchten, verwenden Sie diesen Hook. – Danke an @Pieter Goosen für die Klärung.

Innerhalb Ihrer Template-Datei taxonomy-tax_author.php können Sie nun die Hauptschleife verwenden :

 if (have_posts()) while (have_posts()): the_post(); get_template_part( 'loop', get_post_type() ); 

Sie benötigen jetzt eine loop.php als allgemeine Fallback-Vorlage (die Standardansicht). Sie können beliebig viele post_type-spezifische Templates erzeugen, zB loop-newpost.php und loop-book.php .

Update : Wenn Sie die Abfrage nach post_type sortieren möchten, müssen Sie sich erneut in pre_get_posts

 function order_my_custom_taxonomy( $query ) { if ( $query->is_main_query() && $query->is_tax('tax_author') && !is_admin() /* No filtering of CPTs in the backend */) { $query->set( 'orderby', 'type' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'add_my_custom_post_type_to_query' ); 

Detaillierte Informationen zum Filtern und Bestellen finden Sie unter den angegebenen Links.

Weitere Informationen über:

  • Beitragstyp: Benutzerdefinierte Beitragstypen
  • Taxonomie: Benutzerdefinierte Taxonomien
  • Aktions-Hook: pre_get_posts
  • Vorlagen laden : wptherightway.org
  • Sortieren nach: Geben Sie ein