Jednoduchá úprava zobrazování výpisu položek RSS zdroje ve WordPressu pomocí funkce the_content_feed()

Součástí WordPressu jsou samozřejmě také automaticky generované RSS zdroje. Nebudeme teď řešit, jak je zobrazovat (nabízet) pro čtenáře, ale podíváme se na konkrétní úpravu zobrazování výpisu položek výchozího RSS zdroje. WordPress generuje RSS zdroj v následující podobě: klikací nadpis s odkazem, datum publikování, autor a poté už samotný obsah příspěvku nebo jeho zkrácenou část na ukázku (podle toho, zda máte v menu Nastavení – Čtení zaškrtnuto u “Položky v RSS zobrazovat jako” možnost “Pouze několik úvodních vět”). A jak to udělat, pokud si do tohoto výpisu chcete ještě něco přidat (obrázek, reklamu, odkaz, rubriku)?

Vše budu vysvětlovat na nejnovější verzi WordPressu 2.9, protože zde došlo k několika důležitým změnám, takže pokud máte ještě starší verzi, tak si budete muset řešení už dohledat sami (zbytečné), nebo nejdříve aktualizovat WordPress (doporučené). Použijeme jednoduchou úpravu a využijeme filtrů WordPressu. Rozhodně nedoporučujeme upravovat zdrojové soubory WordPressu, které k tomu sice svádějí (např. feed-rss.php), ale při dalších aktualizacích toho budete určitě litovat. Můžete si buď vytvořit vlastní .php soubor a použít ho jako svůj malý plugin, nebo stačí použít soubor functions.php ve vaší šabloně, kam můžete vložit následující kód:

<?php
function uprava_rss($content) {
$content = $content."Libovolný text nebo HTML";
return $content;
}
add_filter('the_excerpt_rss', 'uprava_rss');
add_filter('the_content_feed', 'uprava_rss');
?>

A co to vlastně udělá? Proměnná $content představuje samotný obsah příspěvku. Vezmeme tedy obsah příspěvku a pomocí vlastní PHP funkce uprava_rss() k tomuto obsahu přidáme na konec ještě libovolný text (nebo i HTML odkaz). Tímto způsobem tedy modifikujeme obsah příspěvku, který bude zobrazen v RSS zdroji. Poté použijeme tuto naši funkci jako filtr, a to na správných místech: the_content_feed (při zobrazení celého obsahu příspěvku v RSS zdroji) a the_excerpt_rss (při zobrazení pouze několika úvodních vět).

Občas by chtěl mít někdo v RSS zdroji třeba i výpis rubrik, což je už trochu složitější, respektive jsem nevymyslel nic jednoduššího než použít kombinaci funkcí get_the_category()get_category_link(). Pokud vás napadne něco jednoduššího, tak to samozřejmě uvítám. Použitelný (funkční) kód si můžete prohlédnout (a případně i použít) níže:

<?php
function uprava_rss($content) {
global $post;
$pocet_rubrik = 0;
$rubriky = get_the_category($post->ID);
foreach($rubriky as $rubrika) {
$rubrika_odkaz = get_category_link($rubrika->cat_ID);
if ($pocet_rubrik == 0) { $rubriky_odkazy .= "".$rubrika->cat_name.""; } else { $rubriky_odkazy .= ", ".$rubrika->cat_name; }
$pocet_rubrik = $pocet_rubrik + 1;
}
$content = "Rubriky: ".$rubriky_odkazy."
".$content;
return $content;
}
add_filter('the_excerpt_rss', 'uprava_rss');
add_filter('the_content_feed', 'uprava_rss');
?>

Raději nebudu zabředávat do složitého vysvětlování, ale protože nemůžeme použít jednoduchou funkci single_cat_title(), tak musíme použít funkci get_the_category(), zachytit všechny rubriky k danému příspěvku do dočasného pole, projít ho pomocí cyklu foreach a přiřadit k rubrikám odkazy pomocí get_category_link(). A ještě je třeba ošetřit i několik drobností, jako např. více rubrik u jednoho příspěvku (proto proměnná $pocet_rubrik a s ní související podmínka). Pro pokročilého programátora je to velmi jednoduchý kód, ale pokud začínáte a máte nějaké dotazy, tak se neváhejte optat v komentářích. Možná také existuje pro tyto účely nějaký plugin, ale někdy je rychlejší a jednodušší napsat si několik řádků kódu, než hledat a zkoušet několik pluginů. A člověk alespoň lépe pochopí fungování WordPressu…

P.S. Ten kód pro rubriky se nezobrazuje zcela správně (netuším zatím proč – možná nějaký bug), ale když si ho zkopírujete, tak je vše v pořádku a získáte ho v originální (a funkční) podobě.

Nejoblíbenější hosting pro WordPress WEDOS.cz

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *