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é:



Kategorie : Užitečné, WordPress
Štítky: , , ,

11 x okomentováno “Oprava RSS ve WordPress”

Přidat komentář (+)

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

  2. WPress napsal:

    To mě těší, zatím také úspěšně aplikuji třetí řešení v řadě, v jiném článku jsem dala k dipozici i již upravené RSS soubory podle tohoto návodu
    (viz http://www.wpress.cz/37/nutna-oprava-rss-ve-wordpress-2-8-1/ )

    Je vcelku zřejmé, že RSS rozhodí některý plugin (pluginy), ale co dělat, když je člověk potřebuje, že? 😉

  3. 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.

  4. WPress napsal:

    Aspoň zatím se zdá, že tato úprava opravdu pomáhá. Tak doufám, že to tak platí obecně.
    Nicméně je fakt, že když si člověk nahraje novou verzi WordPressu, tyhle soubory se přepíšou, a i když by teoreticky mohla aktualizace WordPressu problém vyřešit, má nedávná zkušenost mi říká, že to tak není, a tak po aktualizaci nezbývá než dané RSS soubory upravit znovu.

  5. Michal Čížek napsal:

    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

  6. ElenaLisvato napsal:

    What is captcha code?, pls provide me captcha code codes or plugin, Thanks in advance.

  7. WPress napsal:

    Michal Čížek: Díky za odkaz na další způsob řešení.

    ElenaLisvato: I think, here is everything about CAPTCHA: http://en.wikipedia.org/wiki/CAPTCHA

    There are many plugins, just look:

    http://wordpress.org/extend/plugins/search.php?q=captcha

  8. Aktualizace napsal:

    Našla jsem plugin, který by podle popisku také měl pomoci s chybou načítání RSS (podotýkám, že jsem ho netestovala), více viz odkaz:

    http://wordpress.org/extend/plugins/fix-rss-feed/

    A nebo můžete vyzkoušet i tento plugin (aktualizován pro WordPress 2.9.2)

    http://wordpress.org/extend/plugins/broken-rss-feed-fixer/

  9. mortymer napsal:

    Díky moc,zabral mi ten plugin,po týdnu bádání,konečně RSS jede.Díky za tip.

  10. LuBu_cz napsal:

    Dnes jsem řešil výše zmíněný problém a pomohlo přepsání

    html xmlns=“http://www.w3.org/1999/xhtml“ dir=“ltr“ lang=“en-US“

    na

    html xmlns=“http://www.w3.org/1999/xhtml“ dir=“ltr“ xml:lang=“cs“ lang=“cs-CZ“

    Každopádně děkuji za článek, bez něj bych to nedal.

Okomentovat

Pro vkládání komentářů musíte být přihlášen/a.