WordPress: Hur man publicerar flöden för varje kategori på din blogg
Som standard har en WordPress-blogg ett flöde som innehåller alla dess inlägg, oavsett kategori. Ett sätt att förbättra personalisering och segmentering för dina webbplatsbesökare är att aktivera en RSS foder specifikt för deras intressekategorier. Du kan också använda en kategorispecifik feed för att publicera ett nyhetsbrev via e-post. Du kan dock skapa anpassade kategoriflöden för din WordPress-blogg eller anpassade inläggstyper om du vill.
WordPress-kategoriflöden
Here’s code that you can add to your barntema functions.php
fil som genererar kategorispecifika RSS-flöden i WordPress med både inkluderings- och undantagslistor för kategori-ID:n:
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);
Här är en förklaring av koden:
- Funktionsdeklaration: Koden definierar en funktion som heter
custom_category_feeds
. - Listor för inkludering och uteslutning av kategorier:
- Två arrayer är definierade:
$included_category_ids
: Denna array innehåller kategori-ID:n som du vill inkludera i flödena.$excluded_category_ids
: Denna array innehåller kategori-ID:n som du vill utesluta från flödena.
- Två arrayer är definierade:
- Genomgångskategorier: Koden använder
get_categories()
för att hämta en lista över alla kategorier. - Kontroll av uteslutningslistan: För varje kategori kontrolleras om kategori-ID:t finns i
$excluded_category_ids
array. Om så är fallet fortsätter koden till nästa kategori (exkluderar den). - Kontroll av inkluderingslistan: Den kontrollerar sedan om kategorin ska ingå. Om
$included_category_ids
arrayen inte är tom, och kategori-ID:t finns inte i den arrayen, fortsätter koden till nästa kategori (exkluderar den från inkludering). - Generera RSS-flödesinnehåll: Koden fortsätter med att generera RSS-flödesinnehåll för kategorier som klarar inkluderings- och exkluderingskontrollerna. Koden för att generera RSS-flödesinnehåll visas inte men bör likna de tidigare exemplen.
- Mata ut flödet: Slutligen ställer den in lämplig innehållstyp för RSS-flödet och ekar RSS-flödets innehåll.
Nyckelfunktionen i den här koden är möjligheten att ange både en inkluderingslista och en undantagslista med kategori-ID:n, vilket ger dig finkornig kontroll över vilka kategorier som ingår eller exkluderas i de genererade kategorispecifika RSS-flödena.
Ditt WordPress-kategoriflöde
Användare kan använda URL struktur som tillhandahållits tidigare för att komma åt det anpassade kategorispecifika flödet som du har skapat i WordPress. URL-formatet för att komma åt ett kategorispecifikt flöde är följande:
http://yourwebsite.com/category/{category-name}/feed/
Här är en uppdelning av hur du anropar flödet:
- ersätta
yourwebsite.com
med din faktiska webbplatsdomän eller URL. - Byta ut {
category-name
} med snicken för den kategori som du vill komma åt flödet för. Snigeln är en gemen, bindestreckseparerad version av kategorinamnet. Till exempel om ditt kategorinamn är Marknadstips, kan snigeln vara marknadsföringstips. - Lägg till
/feed/
till slutet av webbadressen. Detta indikerar att du vill komma åt RSS- eller Atom-flödet för den specifika kategorin.
Om din webbplats till exempel är "example.com" och du vill komma åt flödet för kategorin "Marknadsföringstips", skulle webbadressen vara:
http://example.com/category/marketing-tips/feed/
Användare kan ange denna URL i sin webbläsare eller använda flödesläsare för att prenumerera på det kategorispecifika flödet. Denna URL kommer att förse dem med RSS- eller Atom-flödet för den valda kategorin, vilket gör det enkelt för dem att hålla sig uppdaterade om innehållet i den kategorin.