Oprava RSS ve WordPress
S tímhle problémem jsem se setkala opakovaně u různých verzí WordPressu. Po čisté instalaci běží RSS v pořádku, ale někdy stačí jen změnit téma vzhledu, nebo zapnout nějaký plugin a RSS z minuty na minutu přestane fungovat, někdy jen pro příspěvky, jindy pouze pro komentáře, nejčastěji obojí. Navíc obvykle ani hned nezjistíte, že tento problém nastal, ba dokonce i když problematické pluginy povypínáte, problém přetrvává. Zkrátka jednoho dne zkusíte načíst RSS a ejhle, ono nefunguje. Hledala jsem a zkoušela různé způsoby oprav a nakonec, zdá se, jsem snad našla jednu funkční, která vyžaduje zásah do kódu RSS souborů, ale ten zásah je opravdu drobný.
Obvykle se při problémech s RSS při jejich načtení objeví hláška, že je zde chyba parsování, v RSS jsou prázdné řádky. Obvyklá je například hláška: Chyba parsování XML: Na začátku externí entity chybí procesní instrukce xml.
Nejprve však zmíním, jakou cestou jsem se ubírala, protože třeba někomu bude vyhovovat jiná možnost.
1. Ještě ve WordPressu 2.6 jsem celkem úspěšně aplikovala plugin: Fix RSS feeds, ale ve verzi 2.7 už mi ani tento plugin nebyl nic platný. Pro zájemce o jeho vyzkoušení platí link níže. Plugin by měl odstranit prázdné řádky ze všech souborů, původní pak přetvoří jako záložní soubory s koncovkou .bak. Těžko říci, zda problém, proč tento plugin mi později nepomohl, je v tom, že v novější verzi funguje trochu jinak nebo je třeba nastavit správně CHMOD prakticky všech souborů, aby se úprava provedla, nevím. Třeba však právě vy máte dobrou zkušenost i ve vyšších verzích WordPressu a s nejnovější verzí tohoto pluginu či dost možná někomu z vás i nyní pomůže, proto jej zde níže uvádím:
Fix RSS feed:
http://wordpress.org/extend/plugins/fix-rss-feed/
***
2. Další možností, na kterou jsem narazila a která se hodí pro případ (dlužno dodat, že však vzhledem k defaultnímu nastavení WordPressu nejčastější), kdy blog i RSS je kódováno v UTF-8, je odstranění XML deklarace. Zjevně je možné vynechat deklaraci XML v kódu, tedy z příslušných souborů, o nichž bude řeč ještě níže, a sice odstraněním řádku s XML deklarací, což však znamená, že kód se stane nevalidním, nicméně ve velkém procentu případů si s ním RSS čtečky bez problémů poradí.
Odstraňuje se tento řádek:
<?php echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"? '.'>'; ?>
***
3. A konečně jsem také našla dvě řešení na úpravu kódu. První z nich mi nefungovalo tak, jak mělo, ale podle ohlasů někomu pomohlo, proto opět zmíním odkaz na příslušnou stránku: zde. Na podobném principu je pak úprava kódu, kterou jsem nakonec úspěšně aplikovala, a zdá se, že skutečně vše běží tak, jak má a RSS validátor navíc ukazuje, že kód je validní.
Postup je prostý, nicméně potřebujete využít nějaký program na úpravu kódu, doporučuji editor PSPad. V FTP klientu přejděte z hlavního adresáře stránek do adresáře wp-includes a odtud si zkopírujete soubory: feed-rss2.php, feed-rss2-comments.php, feed-rss.php, feed-rdf.php a feed-atom.php.
Tyto soubory otevřete v editoru PSPad a najděte následující řádek:
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
$more = 1;
pod ten vložte (vychází to na cca desátý řádek ve všech souborech)
ob_clean();
takže výsledek je:
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
$more = 1;
ob_clean();
Soubory uložte a nahrajte zpět na server. Před zkouškou RSS raději vyprázdněte cache prohlížeče, a pak by vše již mělo fungovat tak, jak má. A pokud máte nějaké nejasnosti, podívejte se na stránky, kde jsem tento návod našla (viz zde).
Přečtěte si také:
- Při hezkých URL je možné odebírat jen část RSS
- Upravte si české formátování čísel
- Nutná oprava RSS ve WordPress 2.8.1
- Změna adresy oficiálního blogu vývojářů WordPressu
- Widget pro vertikálně rotující RSS
Kategorie : Užitečné, WordPress
Štítky:oprava, parsování, RSS, XML
8 x okomentováno “Oprava RSS ve WordPress”
Přidat komentář (+)-
Mě blbnul cforms, což je pro mě absolutně nepostradatelný plugin, tak jsem dnes půl dne zabil zkoumáním, který plugin za to může, a on to byl naštěstí nahraditelný (a naštěstí ani nějak zásadní) Global Translator. A přitom všem jsem se zapomněl zase zaměřit na to RSS, tak zase nevím, kde je chyba. Ale teď po těch úpravách už to naštěstí ani zkoumat nemusím.
-
Další systémové řešení, které při mém trápení s tímto problémem spáchal kolega, najdete zde:
http://wejn.org/stuff/wejnswpwhitespacefix.php.html -
What is captcha code?, pls provide me captcha code codes or plugin, Thanks in advance.


Přesně tohle jsem hledal. Díky Vám mi po dlouhé době funguje RSS.