Ich habe einen benutzerdefinierten Beitragstyp namens guides
, es gibt 3 Kategorien, in denen sich ein Beitrag befinden kann, die 3 Kategorien sind untergeordnete Kategorien einer Kategorie mit der ID 87
.
Momentan kann ich diese Kategorien durchlaufen und ihren Namen und/oder ihre ID anzeigen. Ich muss jede Kategorie durchlaufen und die Beiträge in dieser Kategorie anzeigen. Ich kann nicht herausfinden, wie. Dies ist der Code, den ich habe, der die Kategorien durchläuft und deren ID anzeigt. In dieser Schleife möchte ich die Beiträge anzeigen. Wie kann ich das machen?
$categories = get_categories( array(
'orderby' => 'name',
'child_of' => 87,
'order' => 'ASC'
) );
foreach( $categories as $category ) {
echo $category->term_id;
}
Dein Start sieht schon ok aus. Sie müssen jetzt die Posts abrufen, die den term_id
Ihres $category
enthalten.
$categories = get_categories( array(
'orderby' => 'name',
'child_of' => 87,
'order' => 'ASC'
) );
foreach( $categories as $category ) {
// display current term name
echo $category->name;
// display current term description, if there is one
echo $category->description;
// get the current term_id, we use this later in the get_posts query
$term_id = $category->term_id;
$args = array(
'post_type' => 'guides', // add our custom post type
'tax_query' => array(
array(
'taxonomy' => 'category', // the taxonomy we want to use (it seems you are using the default "category" )
'field' => 'term_id', // we want to use "term_id" so we can insert the ID from above in the next line
'terms' => $term_id // use the current term_id to display only posts with this term
)
)
);
$posts = get_posts( $args );
foreach ($posts as $post) {
// display post title
echo $post->post_title;
// display post excerpt
echo $post->post_excerpt;
// or maybe you want to show the content instead use ...
#echo $post->post_content;
}
}
Wie ich bereits erwähnt habe, geht aus Ihrer Frage nicht hervor, ob Sie die Standardtaxonomie "Kategorie" von WordPress oder eine benutzerdefinierte Taxonomie verwenden.
Wie Sie sehen können, ist dies nur ein Minimum an Code. Ich bin mir sicher, dass Sie es ein wenig erweitern müssen, zum Beispiel um Permalinks zum Post und so weiter hinzuzufügen.
Schauen Sie sich auch den Codex zur Funktion get_posts()
an. Hier erhalten Sie einige Informationen zu taxonomy
Abfragen mit get_posts()
.
Alle verwendbaren Taxonomieparameter finden Sie im Codex wp_query()
hier .
Hier sehen Sie, dass Sie in einigen Fällen (zum Beispiel, wenn ein Beitrag mehreren Unterkategorien angehört) auch einen array of ID´s
anstelle eines einzelnen term_id
verwenden können, wie zum Beispiel:
'field' => 'term_id',
'terms' => array( 103, 115, 206 ),