Auflisten von benutzerdefinierten Post-Typen auf der Archivseite mit Array

Ich fange gerade an, meinen Kopf um benutzerdefinierte Beitragstypen zu wickeln und aus irgendeinem Grund kann keiner der benutzerdefinierten Beitragstypen in der Schleife angezeigt werden. Ich habe einige Fragen online gefunden, aber keine von ihnen sind in geschlossenen PHP-statementen und ich bin mir nicht sicher, wie Sie sie integrieren. Folgendes habe ich:

// add custom post type add_action( 'init', 'create_post_type' ); function create_post_type() { register_post_type( 'band_artists', array( 'labels' => array( 'name' => __( 'Artists' ), 'singular_name' => __( 'Artist' ) ), 'public' => true, 'has_archive' => true, 'supports' => array( 'title', 'editor', 'comments', 'excerpt', 'custom-fields', 'thumbnail' ), 'rewrite' => array('slug' => 'artists'), 'taxonomies' => array('category', 'post_tag') ) ); } 

und mit einem Randomizer abfragen … Das funktionierte, wenn es sich um einfache Posts handelte (abzüglich des 'post_type' offensichtlich).

  'band_artists', 'showposts' => 1, 'orderby' => 'rand', 'category' => '5' )); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <div id="post-" class="artistSingle"> ID ) ): ?> 

ID, 'band', true)): ?> Band: ID, 'band', true); ?>
ID, 'gear', true)): ?> Gear: ID, 'gear', true); ?>
ID, 'website', true)): ?> Website: <a href="http://ID, 'website', true); ?>" target="_blank">ID, 'website', true); ?>

'' ) ); ?>

Solutions Collecting From Web of "Auflisten von benutzerdefinierten Post-Typen auf der Archivseite mit Array"

http://img.daswordpress.com/loop/Template_Hierarchy.png schöne visuelle Gliederung der Vorlagenhierarchie

Nach viel Suchen und Bearbeiten von benutzerdefinierten Post-Typen habe ich es herausgefunden. Ich habe auch Dinge hinzugefügt, um die Spezifikationen präziser zu machen.

 // Add custom post type Artists function register_artists_post_type() { register_post_type('artists',array( 'labels' => array( 'name' => __( 'Artists' ), 'singular_name' => __( 'Artist' ), 'add_new' => __( 'Add Artist','Artist' ), 'add_new_item' => __( 'Add New Artist' ), 'edit_item' => __( 'Edit Artist' ), 'new_item' => __( 'New Artist' ), 'view_item' => __( 'View Artist' ), 'search_items' => __( 'Search Artists' ), 'not_found' => __( 'No Artists Found' ), 'not_found_in_trash' => __( 'No Artists In Trash' ), 'parent_item_colon' => '' ), 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'has_archive' => true, 'supports' => array( 'title','editor','excerpt','custom-fields','thumbnail' ), 'rewrite' => array('slug' => 'artists'), 'taxonomies' => array('large_feature','small_feature'), 'capability_type' => 'post', 'hierarchical' => false, )); } add_action('init','register_artists_post_type') 

Registriere benutzerdefinierte Taxonomien (für Anfänger, das ist eine originelle Art, Kategorien zu sagen … “Kategorien” in normalen Beiträgen ist nur die Standardtaxonomie)

 // Add custom taxonomies for Artists post type add_action('init','register_large_feature_taxonomy'); function register_large_feature_taxonomy() { register_taxonomy('large_feature',array('artists'),array( 'hierarchical' => true, 'label' => 'Large Feature', 'public'=> true, 'show_ui'=> true, 'query_var'=> true, 'rewrite' => false, )); } add_action('init','register_small_feature_taxonomy'); function register_small_feature_taxonomy() { register_taxonomy('small_feature',array('artists'),array( 'hierarchical' => true, 'label' => 'Small Feature', 'public'=> true, 'show_ui'=> true, 'query_var'=> true, 'rewrite' => false, )); } 

und schließlich die Abfrage, wie in archive-artists.php

 < ?php query_posts(array( 'large_feature' => 'artists_page_large', // this is the same as calling for a category within standard posts, where 'large_feature' is category and 'artists_page_large' is the ID/slug (either should work, I chose to use the slug to avoid going back to check ID numbers) 'showposts' => 1, 'orderby' => 'rand', // randomizes the posts each page load )); if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 
< ?php endwhile; endif; // end of featured large loop ?>
< ?php rewind_posts(); // start featured small loop ?> < ?php query_posts(array( 'small_feature' => 'artists_page_small', 'showposts' => 4, 'orderby' => 'rand', )); ?> < ?php if(have_posts()) : while (have_posts() ) : the_post(); ?>
< -- do stuff -->
< ?php endwhile; endif; // end of featured small loop ?>
// query to pull all posts of 'artist' custom post type < ?php query_posts('post_type=artists&orderby=title&order=asc&posts_per_page=-1'); ?> < ?php if(have_posts()) : while (have_posts() ) : the_post(); ?>

< ?php the_title(); ?>

< ?php endwhile; endif; ?>

Hoffentlich hilft das jemand anderem aus! Da ich ursprünglich eine Kategorie namens Artists mit den Slug- artists , löschte ich letztendlich die Kategorien und verwendete die Slugs für den benutzerdefinierten Post-Typ. Es war viel sauberer und beseitigte die Möglichkeit, das System zu verwirren. Es stellte sich heraus, dass ich auch eine Seite namens Artists mit einer Template-Seite hatte, die ich gelöscht hatte, aber die Seite war es immer noch der Müll. Achten Sie darauf, alle in Konflikt stehenden Elemente aus dem Papierkorb zu löschen! Selbst wenn es in Papierkorb ist, ist es immer noch in Ihrer database.