Zeigen Sie Beiträge aus einer bestimmten Kategorie auf einer WordPress-Seite an
Möchten Sie Beiträge aus einer bestimmten Kategorie auf einer benutzerdefinierten Seitenvorlage in WordPress anzeigen? Dabei können Sie Ihr eigenes Vorlagendesign verwenden und die Beitragsliste auf einer WordPress-Seite anzeigen. In diesem Artikel untersuchen wir, wie Beiträge aus einer bestimmten Kategorie in einer benutzerdefinierten Seitenvorlage angezeigt werden.
Standardmäßig kannst du deinen Beitrag in WordPress kategorisieren. Diese Funktion ist nützlich, um alle Beiträge herauszufinden, die unter die bestimmte Kategorie fallen. Wenn ein Benutzer in WordPress auf eine der Kategorien klickt, wird er zu einer Beitragsliste für diese bestimmte Kategorie weitergeleitet. WordPress verwendet die folgenden Vorlagendateien für die Auflistung von Beiträgen einer Kategorie.
- kategorie-slug.php
- Kategorie-ID.php
- Kategorie.php
- archiv.php
- index.php
Um Beiträge der entsprechenden Kategorie anzuzeigen, sucht WordPress in der obigen Reihenfolge nach Vorlagendateien. Unabhängig davon, welche Vorlagendatei zuerst gefunden wird, wird der Code aus dieser Datei für die Auflistung von Beiträgen einer Kategorie verwendet.
Es dreht sich alles um die Standard-WordPress-Vorlagen. Aber was ist, wenn jemand eine benutzerdefinierte Seitenvorlage für Beitragslisten einer bestimmten Kategorie verwenden möchte?
Lassen Sie uns jedoch eine Schritt-für-Schritt-Anleitung durchgehen, um dieses Ziel zu erreichen.
Seitenvorlage in WordPress erstellen
Unser Ziel ist es, Beiträge nach Kategorie auf einer Seite anzuzeigen. Natürlich müssen Sie dafür einen Code schreiben. Erstellen Sie eine Datei template-category.php
im Verzeichnis Ihres aktiven Themes und fügen Sie den folgenden Kommentar oben in einer Datei hinzu.
template-category.php
<?php
/**
* Template Name: Category Custom Page
*/
?>
Gehen Sie als Nächstes zu Ihrem WordPress-Dashboard und erstellen Sie Ihre Seite, auf der Sie Beiträge anzeigen möchten. Weisen Sie dieser neu erstellten Seite die obige Vorlage zu.
Zeigen Sie Beiträge aus einer bestimmten Kategorie auf einer WordPress-Seite an
Bisher haben Sie Ihr Template erstellt und der WordPress-Seite zugeordnet. Als nächstes müssen Sie einen Code schreiben, der Beiträge abruft, die an eine Kategorie angehängt sind.
Ich werde WP_Query
Klasse verwenden, um die Beiträge zu holen. Ich gehe zum Beispiel davon aus, dass Sie eine Kategorie namens "WordPress" haben und an diese Kategorie angehängte Beiträge, die Sie anzeigen möchten.
Schreiben Sie den unten stehenden Code, um eine Liste der Beiträge in der Kategorie „WordPress” zu erhalten.
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'category_name' => 'wordpress',
'posts_per_page' => 5,
);
$arr_posts = new WP_Query( $args );
if ($arr_posts->have_posts() ):
while ($arr_posts->have_posts() ): $arr_posts->the_post();
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php
if (has_post_thumbnail() ): the_post_thumbnail();
endif;
?>
<header class="entry-header">
<h1 class="entry-title"><?php the_title(); ?></h1>
</header>
<div class="entry-content">
<?php the_excerpt(); ?>
<a href="<?php the_permalink(); ?>">Read More</a>
</div>
</article>
<?php
endwhile;
endif;
Im obigen Code habe ich 'category_name' => 'wordpress'
. Hier ist ‘WordPress’ der Slug einer Kategorie.
Der Benutzer kann anstelle von category_name auch die Kategorie-ID übergeben. In diesem Fall sollten Sie den Schlüssel als ‘cat’ anstelle von ‘category_name’ verwenden und die ID einer Kategorie übergeben.
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'cat' => '4', //you can pass comma-separated ids here
'posts_per_page' => 5,
);
posts_per_page
ist die Anzahl der Beiträge, die aus der Datenbank abgerufen werden sollen. Ich habe die have_posts()
Methode verwendet, die prüft, ob der nächste Beitrag für die WordPress-Schleife verfügbar ist. Wenn es verfügbar ist, durchläuft es jeden Beitrag und zeigt ihn an.
Erhalten Sie Beiträge unter benutzerdefinierter Taxonomie
Möglicherweise arbeiten Sie mit einem benutzerdefinierten Beitragstyp und möchten die Beiträge aus einer benutzerdefinierten Taxonomie anzeigen. In diesem Fall müssen Sie das Argumentarray wie folgt ändern:
$args = array(
'post_type' => 'CUSTOM_POST_TYPE_NAME',
'post_status' => 'publish',
'posts_per_page' => 5,
'tax_query' => array(
array(
'taxonomy' => 'TAXONOMY_NAME',
'field' => 'slug',
'terms' => array( 'TERM_SLUG' ),
'operator' => 'IN'
),
),
);
$arr_posts = new WP_Query( $args );
Stellen Sie sicher, dass Sie die Platzhalter durch die tatsächlichen Werte ersetzen.
Seitennummerierung
Der Code, den ich geschrieben habe, holt nur begrenzte Beiträge aus der Kategorie. Obwohl Sie eine beliebige Anzahl von Beiträgen erhalten können, indem Sie eine Zahl an ‘posts_per_page’ übergeben, zeigen wir normalerweise eine Reihe von Beiträgen pro Seite an und verwenden dann die Paginierung, um die nächste und vorherige Reihe von Beiträgen zu erhalten.
Um die Paginierung zu integrieren, installieren und aktivieren Sie das WP-PageNavi- Plugin.
Dieses Plugin bietet eine Methode, wp_pagenavi()
die Paginierungslinks generiert, die auf der Seite mit der Beitragsliste verwendet werden können.
Um Paginierungslinks zu Ihrer WordPress-Seite hinzuzufügen, müssen Sie Ihren Code ändern. Zuerst müssen Sie paged
Parameter übergeben und dann die Funktion verwenden wp_pagenavi()
.
Sie erhalten den Wert für paged wie folgt:
$paged = (get_query_var( 'paged' ))? get_query_var( 'paged' ): 1;
Ihr endgültiger Code ist also wie folgt.
template-category.php
<?php
/**
* Template Name: Category Custom Page
*/
get_header(); ?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
$paged = (get_query_var( 'paged' ))? get_query_var( 'paged' ): 1;
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'category_name' => 'wordpress',
'posts_per_page' => 5,
'paged' => $paged,
);
$arr_posts = new WP_Query( $args );
if ($arr_posts->have_posts() ):
while ($arr_posts->have_posts() ): $arr_posts->the_post();
?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php
if (has_post_thumbnail() ): the_post_thumbnail();
endif;
?>
<header class="entry-header">
<h1 class="entry-title"><?php the_title(); ?></h1>
</header>
<div class="entry-content">
<?php the_excerpt(); ?>
<a href="<?php the_permalink(); ?>">Read More</a>
</div>
</article>
<?php
endwhile;
wp_pagenavi(
array(
'query' => $arr_posts,
)
);
endif;
?>
</main><!-- .site-main -->
</div><!-- .content-area -->
<?php get_footer(); ?>
Jetzt können Sie die HTML-Struktur ändern, die Klassen verwenden, Styling hinzufügen und eine schön gestaltete Seite für Ihre Beitragsliste erstellen.
Ich hoffe, Sie verstehen, wie Sie Beiträge aus einer bestimmten Kategorie auf einer WordPress-Seite anzeigen. Bitte teilen Sie Ihre Gedanken im Kommentarbereich unten mit.
Zum Thema passende Artikel
- So laden Sie WordPress-Beiträge mit AJAX
- So legen Sie ein hervorgehobenes Bild programmgesteuert in WordPress fest
- So legen Sie die richtigen Dateiberechtigungen für WordPress fest