WordPress: Hírcsatornák közzététele a blogon minden kategóriához
Alapértelmezés szerint a WordPress blogoknak van egy hírcsatornája, amely az összes bejegyzést tartalmazza, kategóriától függetlenül. A webhely látogatóinak személyre szabásának és szegmentálásának javításának egyik módja, ha engedélyezi a RSS az érdeklődési kategóriáiknak megfelelő takarmányt. Használhat kategóriaspecifikusat is hírfolyam e-mailes hírlevél közzétételéhez. Azonban, ha szeretné, létrehozhat egyéni kategória-hírcsatornákat a WordPress blogjához vagy egyéni bejegyzéstípusokhoz.
WordPress kategória hírcsatornák
Here’s code that you can add to your gyerek téma functions.php
fájl, amely kategória-specifikus RSS-hírcsatornákat hoz létre a WordPressben a kategóriaazonosítók felvételi és kizárási listáival:
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);
Íme a kód magyarázata:
- Funkciónyilatkozat: A kód egy nevű függvényt határoz meg
custom_category_feeds
. - Kategória felvételi és kizárási listák:
- Két tömb van meghatározva:
$included_category_ids
: Ez a tömb tartalmazza azokat a kategóriaazonosítókat, amelyeket fel szeretne venni a hírcsatornákba.$excluded_category_ids
: Ez a tömb tartalmazza azokat a kategóriaazonosítókat, amelyeket ki szeretne zárni a hírcsatornákból.
- Két tömb van meghatározva:
- Hurok a kategóriákon keresztül: A kód használ
get_categories()
az összes kategória listájának lekéréséhez. - Kizárási lista ellenőrzése: Minden kategória esetében ellenőrzi, hogy a kategóriaazonosító szerepel-e a
$excluded_category_ids
sor. Ha igen, a kód a következő kategóriába lép (kizárja). - Felvételi lista ellenőrzése: Ezután ellenőrzi, hogy a kategória szerepeljen-e. Ha a
$included_category_ids
A tömb nem üres, és a kategóriaazonosító nincs ebben a tömbben, a kód a következő kategóriába lép (kizárja a felvételből). - RSS feed tartalom generálása: A kód továbbfejleszti az RSS-hírcsatorna tartalmát azokhoz a kategóriákhoz, amelyek megfelelnek a felvételi és kizárási ellenőrzéseken. Az RSS-hírcsatorna tartalom generálására szolgáló kód nem látható, de hasonlónak kell lennie az előző példákhoz.
- A hírfolyam kiadása: Végül beállítja a megfelelő tartalomtípust az RSS-hírfolyamhoz, és visszhangozza az RSS-hírcsatorna tartalmát.
Ennek a kódnak a legfontosabb jellemzője, hogy megadhat egy felvételi listát és egy kizárási listát is a kategóriaazonosítókról, így Ön pontosan szabályozhatja, hogy mely kategóriák szerepeljenek vagy zárjanak ki a generált kategóriaspecifikus RSS-hírcsatornákban.
Az Ön WordPress kategória hírcsatornája
A felhasználók használhatják a URL korábban biztosított struktúrát a WordPressben létrehozott egyéni kategóriaspecifikus hírcsatorna eléréséhez. A kategória-specifikus feed eléréséhez szükséges URL-formátum a következő:
http://yourwebsite.com/category/{category-name}/feed/
Íme a hírcsatorna hívásának lebontása:
- Cserélje
yourwebsite.com
a webhely tényleges domainjével vagy URL-jével. - Csere {
category-name
} annak a kategóriának a slugjával, amelyhez hozzá szeretne férni a hírfolyamhoz. A slug a kategória nevének kisbetűs, kötőjellel elválasztott változata. Például, ha a kategória neve Marketing tippek, a csiga lehet marketing-tippek. - hozzáad
/feed/
az URL végére. Ez azt jelzi, hogy az adott kategória RSS- vagy Atom-hírcsatornájához szeretne hozzáférni.
Például, ha webhelye „example.com”, és szeretne hozzáférni a „Marketingtippek” kategória hírcsatornájához, az URL a következő lesz:
http://example.com/category/marketing-tips/feed/
A felhasználók beírhatják ezt az URL-t a webböngészőjükbe, vagy hírfolyam-olvasó alkalmazásokkal feliratkozhatnak a kategória-specifikus hírfolyamra. Ez az URL biztosítja számukra a kiválasztott kategória RSS- vagy Atom-hírcsatornáját, megkönnyítve számukra, hogy naprakészek maradjanak az adott kategória tartalmával kapcsolatban.