WordPress: So veröffentlichen Sie Feeds für jede Kategorie in Ihrem Blog
Standardmäßig verfügt ein WordPress-Blog über einen Feed, der alle seine Beiträge enthält, unabhängig von der Kategorie. Eine Möglichkeit, die Personalisierung und Segmentierung für Ihre Website-Besucher zu verbessern, besteht darin, eine zu aktivieren RSS Feed speziell für ihre Interessenkategorien. Sie können auch eine kategoriespezifische Funktion verwenden Feed, um einen E-Mail-Newsletter zu veröffentlichen. Sie können jedoch bei Bedarf benutzerdefinierte Kategorie-Feeds für Ihr WordPress-Blog oder benutzerdefinierte Beitragstypen erstellen.
WordPress-Kategorie-Feeds
Hier ist Code, den Sie Ihrem hinzufügen können untergeordnete Themen functions.php
Datei, die kategoriespezifische RSS-Feeds in WordPress mit Einschluss- und Ausschlusslisten für Kategorie-IDs generiert:
function custom_category_feeds() {
$categories = get_categories();
// Define an array of category IDs to include and exclude
$included_category_ids = array(3, 4); // Add IDs of categories to include
$excluded_category_ids = array(1, 2); // Add IDs of categories to exclude
foreach ($categories as $category) {
$category_id = $category->term_id;
// Check if the category should be excluded
if (in_array($category_id, $excluded_category_ids)) {
continue; // Skip excluded categories
}
// Check if the category should be included
if (!empty($included_category_ids) && !in_array($category_id, $included_category_ids)) {
continue; // Skip categories not in the inclusion list
}
$category_slug = $category->slug;
$category_name = $category->name;
// Start building the RSS feed content
$rss_feed = '<?xml version="1.0" encoding="UTF-8" ?>' . "\n";
$rss_feed .= '<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">' . "\n";
$rss_feed .= '<channel>' . "\n";
$rss_feed .= '<title>' . $category_name . ' RSS Feed</title>' . "\n";
$rss_feed .= '<link>' . get_bloginfo('url') . '</link>' . "\n";
$rss_feed .= '<description>' . $category_name . ' RSS Feed</description>' . "\n";
$rss_feed .= '<atom:link href="' . esc_url(site_url("/category/$category_slug/feed/")) . '" rel="self" type="application/rss+xml" />' . "\n";
// Query posts in the current category
$args = array(
'cat' => $category_id,
'posts_per_page' => 10, // Adjust as needed
);
$category_posts = new WP_Query($args);
while ($category_posts->have_posts()) {
$category_posts->the_post();
$rss_feed .= '<item>' . "\n";
$rss_feed .= '<title>' . get_the_title() . '</title>' . "\n";
$rss_feed .= '<link>' . get_permalink() . '</link>' . "\n";
$rss_feed .= '<pubDate>' . get_the_time('D, d M Y H:i:s O') . '</pubDate>' . "\n";
$rss_feed .= '</item>' . "\n";
}
wp_reset_postdata();
$rss_feed .= '</channel>' . "\n";
$rss_feed .= '</rss>';
// Output the feed
header('Content-Type: application/rss+xml; charset=UTF-8');
echo $rss_feed;
}
}
add_action('do_feed_category', 'custom_category_feeds', 10, 1);
add_action('do_feed_category_rss2', 'custom_category_feeds', 10, 1);
Hier ist eine Erklärung des Codes:
- Funktionsdeklaration: Der Code definiert eine Funktion mit dem Namen
custom_category_feeds
. - Einschluss- und Ausschlusslisten für Kategorien:
- Es sind zwei Arrays definiert:
$included_category_ids
: Dieses Array enthält die Kategorie-IDs, die Sie in die Feeds aufnehmen möchten.$excluded_category_ids
: Dieses Array enthält die Kategorie-IDs, die Sie aus den Feeds ausschließen möchten.
- Es sind zwei Arrays definiert:
- Loop-Through-Kategorien: Der Code verwendet
get_categories()
um eine Liste aller Kategorien abzurufen. - Prüfung der Ausschlussliste: Für jede Kategorie wird geprüft, ob die Kategorie-ID vorhanden ist
$excluded_category_ids
Array. Wenn dies der Fall ist, fährt der Code mit der nächsten Kategorie fort (schließt diese aus). - Prüfung der Einschlussliste: Anschließend wird geprüft, ob die Kategorie enthalten sein soll. Wenn die
$included_category_ids
Wenn das Array nicht leer ist und sich die Kategorie-ID nicht in diesem Array befindet, fährt der Code mit der nächsten Kategorie fort (schließt diese von der Aufnahme aus). - Generieren von RSS-Feed-Inhalten: Der Code generiert dann den RSS-Feed-Inhalt für Kategorien, die die Einschluss- und Ausschlussprüfungen bestehen. Der Code zum Generieren von RSS-Feed-Inhalten wird nicht angezeigt, sollte aber den vorherigen Beispielen ähneln.
- Geben Sie den Feed aus: Schließlich wird der entsprechende Inhaltstyp für den RSS-Feed festgelegt und der Inhalt des RSS-Feeds wiedergegeben.
Das Hauptmerkmal dieses Codes ist die Möglichkeit, sowohl eine Einschlussliste als auch eine Ausschlussliste von Kategorie-IDs anzugeben, sodass Sie genau steuern können, welche Kategorien in die generierten kategoriespezifischen RSS-Feeds aufgenommen oder ausgeschlossen werden.
Ihr WordPress-Kategorie-Feed
Benutzer können die verwenden URL Struktur, die Sie zuvor bereitgestellt haben, um auf den benutzerdefinierten kategoriespezifischen Feed zuzugreifen, den Sie in WordPress erstellt haben. Das URL-Format für den Zugriff auf einen kategoriespezifischen Feed lautet wie folgt:
http://yourwebsite.com/category/{category-name}/feed/
Hier ist eine Aufschlüsselung, wie der Feed aufgerufen wird:
- Ersetzen
yourwebsite.com
mit Ihrer tatsächlichen Website-Domain oder URL. - Ersetzen {
category-name
} durch den Slug der Kategorie, für die Sie auf den Feed zugreifen möchten. Der Slug ist eine durch Bindestriche getrennte Kleinbuchstabenversion des Kategorienamens. Wenn Ihr Kategoriename beispielsweise lautet Marketing-Tipps, die Schnecke könnte sein Marketing-Tipps. - Speichern
/feed/
bis zum Ende der URL. Dies zeigt an, dass Sie auf den RSS- oder Atom-Feed für die jeweilige Kategorie zugreifen möchten.
Wenn Ihre Website beispielsweise „example.com“ lautet und Sie auf den Feed für die Kategorie „Marketing-Tipps“ zugreifen möchten, lautet die URL:
http://example.com/category/marketing-tips/feed/
Benutzer können diese URL in ihren Webbrowser eingeben oder Feed-Reader-Anwendungen verwenden, um den kategoriespezifischen Feed zu abonnieren. Über diese URL erhalten sie den RSS- oder Atom-Feed für die ausgewählte Kategorie und können so ganz einfach über den Inhalt dieser Kategorie auf dem Laufenden bleiben.