Visita <a href="http://www.liquida.it/" title="Notizie e opinioni dai blog italiani su Liquida">Liquida</a> e <a href="I widget di Liquida per il tuo blog">Widget</a>

apr14
Categoria: Personalizzare WordPress | Autore: Ghido

D'OHQualche volta potrà capitarvi un problema piuttosto fastidioso con WordPress: improvvisamente il vostro feed RSS risulta non più valido ed il browser si rifiuta di visualizzarlo, segnalando un errore di interpretazione XML senza un apparente motivo.

Disperati, andate in cerca del problema, aggiornate la versione di WordPress e tutti i plugin attivi, ma niente, l’errore persiste. Aprite allora il feed RSS in visualizzazione codice e scoprite che c’è uno spazio all’inizio del file! Uno spazio, uno stupido spazio che invalida l’XML e rende illeggibile tutto il feed.

Qual’è la causa e come risolvere?

Nello specifico, l’errore è il seguente:

Errore interpretazione XML: la dichiarazione XML o testuale non è all'inizio di un'entità

Il problema è dato sicuramente da uno degli ultimi plugin che avete installato: evidentemente il plugin incriminato aggiunge uno spazio bianco all’inizio di ogni file del vostro sito, a causa di una qualche funzione che viene chiamata ad ogni caricamento.

Una prima soluzione può essere quella di disabilitare i plugin uno ad uno e controllare ogni volta se lo spazio è scomparso. Chiaramente, nel caso abbiate molti plugin, questa operazione può risultare lunga e noiosa.

Il modo migliore per risolvere è invece questo:

  • Aprite il file wp-includes/feed-rss2.php
  • Inserite prima di qualsiasi altra cosa (ma ovviamente dopo <?php), questo codice:
ob_clean();
  • Salvate il file e uploadatelo sul server.

Riaprite il vostro feed e, con vostra grande sorpresa, scoprirete che ora funziona senza problemi! Attenzione che se usate Feedburner, dovrete aspettare che il sistema aggiorni la cache, perchè avrà in memoria ancora la versione vecchia.

Vediamo di capire. Cosa fa quella funzione? Semplicemente cancella dal buffer tutto l’output testuale che è stato scritto finora. Quindi qualsiasi testo (o spazio bianco) che verrà stampato prima del feed sarà cancellato. In questo modo lo spazio aggiunto viene ignorato ed il feed RSS risulta valido.

Questo è tutto, spero che l’articolo vi abbia aiutato nel caso foste disperati. Se invece non vi è mai capitato, meglio aggiungere questa pagina ai preferiti…. chissà che non vi torni utile in futuro.


Leggi anche:

52 Commenti

  1. Ottima soluzione, ti ringrazio per averla condivisa, ho proprio questo problema su uno dei miei blog e dopo aver seguito il tuo iter ho risolto!

    Grazie :wink:

    • Ghido

      Ottimo! Io ci ho perso le notti per trovare la causa e risolverlo XD

  2. Interessante, io però credo di essere affetto da un problema da cui non esco fuori. Dal mio sito mi vengon ofuori solo feed parziali. Ho controllato tutto, nessun settaggio per feed parziale nemmeno su feedburner dove ho reindirizzato il feed.
    Ho reinstallato WP, disintallato plugin e reinstallato uno per volta… non ne vengo fuori.
    Magari te hai qualche idea.
    grazie

    • Ghido

      Prova a mettere http://www.artoong.net/feed come sorgente del feed per feedburner e non http://www.artoong.net/feed/rss.
      Infatti il primo è l’RSS versione 2.0, mentre l’altro è la 0.92. Così dovrebbe mostrarti tutto il contenuto.

      Ciao ;)

      • ti ringrazio molto, funziona. Mi sono sentito uno scemo…la cosa più semplice è banale come al solito era la soluzione del problema.
        grazie ancora

        • Ghido

          Ehehe, felice di esserti stato utile ;)

  3. Io tengo il post da parte, non si sa mai :grin:

    • Ghido

      Già, purtroppo è un problema che succede spesso. Tra l’altro ancora non ho scoperto quale sia il plugin fallace…

  4. Martin

    Complimenta, per il suo esritto, ma lei letto questo su gHacks senza link, questi e scorretto.

    • Ghido

      No, non l’ho trovato su gHacks (che non conosco), ma mi sono inventato io come risolverlo.

      • Martin

        molto estrano perche anche in gHacks noi escritto lo stesso uguale post in stesso giorno.

        • Ghido

          Ora ho guardato e l’unico articolo simile che avete scritto è questo, ma non c’entra niente con quello che ho scritto io.
          Il mio articolo parla di un problema che IO ho avuto col feed di WordPress e di come sono riuscito a risolverlo.

  5. :sad:

    Proprio ieri sera mi sono accorto di essere afflitto da un problema molto simile – se non del tutto identico. E da ben due mesi – a quanto pare ( :roll: … e va beh, sono distratto…).

    Ho appena risolto il bug, però non seguendo il tuo fix.

    Avrai infatti notato che moltissime istanze similari sono state segnalate su wordpress.org negli ultimi due mesi. E sinceramente se ne sentono di tutti i colori, pare che ognuno riesca – o non riesca, nei casi peggiori- a trovare una sua soluzione ‘sui generis’.

    Il problema degli ‘spazi bianchi’ è effettivamente uno dei più quotati in giro, ma non sempre appare risolutivo ( :cry: non nel mio caso, almeno).

    :lol:

    Ma con un po’ di pazienza la soluzione si trova sempre… in bocca al lupo a chiunque si imbatta in questo problemaccio…non demordete, mi raccomando… :wink:

    • Ghido

      Giusto per curiosità, qual era il problema del tuo feed e come hai risolto?

  6. :mrgreen:

    Guarda, non sono un test affidabile.

    Il feed era fermo al 28 febbraio, semplicemente non prendeva più i nuovi post.

    Me ne sono accorto solo l’altro ieri, però. :roll:

    Mi sembra assurdo l fatto che da un giorno all’altro abbia smesso di funzionare, quindi sicuramente c’è una causa… ma sinceramente non credo si averla intuita.

    Ne ho provate diverse, non escluso il controllo di righe bianche, la disattivazione dei plugin etc etc.

    Alla fine ho seguito le indicazioni (ero diperato) di questo post: http://www.brightcherry.co.uk/scribbles/2008/07/22/wordpress-rss-feed-is-empty-bug-fix/

    Che propone una soluzione … assurda….. :shock: … anche perchè fino al 28 febbraio aveva funzionato…. in ogni caso.

    Ti fa aggiungere uno slash per regolare il percorso dilcuni file che ragolano i feed in wp.

    La modifica è per il file rewrite.php, nella cartella wp-includes.

    Pare – veramente non posso garantirlo – che questo sia un fix che riguarda i blog installati in cartelle diverse dalla root, come nel mio caso.

    E – come può capitare di leggere in giro – non funziona immediatamente.

    Devi aspettare un paio di decine di minuti che non-so-quale-cache si svuoti.

    Ma veramente mi è capitato di incontrare decine di casi diversi, e altrettante soluzioni azzardate.

    Tutto è bene quel che finisce… con grande fatica e stress… bene.

    Ti saluto Ghido.

    • Ghido

      Insomma… un bel casino! XD
      Grazie per aver condiviso la tua soluzione, chissà che non torni utile a qualche lettore disperato di passaggio :)

  7. Annamaria

    Ma sei un grande!!!!!

    Mi hai fatto risolvere in 2 secondi un problema che mi ha incasinato la testa!

    Vorrei solo aggiungere che se vi dà problemi anche il feed dei commenti, la soluzione è sempre quella indicata da Ghido!!

    Il file da editare in questo caso è wp-includes/feed-rss2-comments.php

    Grazie Ghido!

    • Ghido

      Di nulla, è un piacere ;)

  8. Ciao.
    Ho fatto come hai detto nel tuo post ma purtroppo il problema permane. Non ho nemmeno un plugin attivo quindi non so dove sbattere la testa :(
    Puoi aiutarmi?

    • Ghido

      Perchè? Qual’è il problema? Il tuo feed funziona.

      • A me esce quell’errore Oo come è possibile

        • Ghido

          Magari hai risolto col mio metodo, ma hai in cache ancora il vecchio feed.
          Prova a cancellare la cache del browser e a ricaricare la pagina.

          • Ho anche cancellato la cache ma Firefox continua a resituirmi quell’errore…

          • Ghido

            Ah, ecco, ho capito! Io guardavo http://www.black-cat.it/blog2/?feed=rss2 dove invece hai sistemato.
            Ora utilizza il mio trucchetto anche sul file feed-rss.php per sistemare anche http://www.black-cat.it/blog2/?feed=rss.

            In realtà non servirebbe nemmeno, perchè basta ottimizzare con FeedBurner il primo feed :wink:

  9. veramente mi esce l’errore anche su http://www.black-cat.it/blog2/?feed=rss2

    • Ghido

      Allora boh… Mi arrendo.
      Io lo vedo correttamente. Chiedi ad altre persone come lo vedono.

      • Ho chiesto ad un paio di amici e anche da loro esce l’errore….

        • Ghido

          Allora ho un browser magico che mi fa vedere anche le cose che non vanno XD

          Prova a registrarlo su Feedburner e vedi se lo accetta o se dà problemi.

          • boh a quanto pare :P che browser usi

  10. Ghido

    Mmmm… ops.. ero io a dover cancellare la cache…
    Ora vedo l’errore pure io…

    Ma il codice dove l’hai inserito? Il tuo feed dovrebbe risultare così:

    <?php
    /**
     * RSS2 Feed Template for displaying RSS2 Posts feed.
     *
     * @package WordPress
     */

     
    ob_clean();
     
    header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
  11. ho risolto installando questo plugin:
    http://wordpress.org/extend/plugins/fix-rss-feed/faq/

    • Ad ogni modo grazie mille dell’aiuto. Di questi tempi pure sui forum ufficiali è difficile riceverne :)

      • Ghido

        Wow, grande! Grazie della segnalazione, di sicuro tornerà molto utile a tutti quelli che non riusciranno a sistemare col mio sistema.

        Qui su BigThink troverai sempre aiuto, nel limite delle mie capacità almeno. Infatti più di quanto già ti avevo scritto, non sapevo che altro fare ^^

  12. Ghido credo tu abbia risparmiato giorni e giorni di bestemmie…possiamo dire che hai salvato la mia anima! :) Per fortuna appena i feed hanno cominciato a generarmi quell’errore sono subito incappata nel tuo post. Risolto in 5 minuti. Grazie, ciao

    • Meno male! Ma ti sei fiondata sul mio blog o ci sei incappata tramite Google? Cos’hai cercato?

      • Ho cercato con Google, conosco bene il tuo blog (tra l’altro ti leggo anche via feed ma quest’articolo mi era scappato). Ho cercato “feedburner Errore interpretazione XML” e sono arrivata subito qui :) meno male!

        • Ottimo! Merito di Google che mi ha letto il testo “alt” dell’immagine :D

  13. Buongiorno,
    avevo risolto tempo fa il problema dei feed con ob_clean(); secondo il suo suggerimento. Ma mi sono accorto ieri che il feed è tornato a mandare il solito messaggio di errore. Ho passato la notte a disattivare-riattivare i plugin, togliere le righe vuote prima di “” : nulla da fare! Ho installato “Fix RSS Feeds” ma non funziona (quando lo avvio mi da come output una pagina bianca). Ho fatto tutti i ping e resync di Feedburner..
    Vista l’abilità che ha dimostrato nei suoi articoli, mi rivolgo quindi a lei (e ai suoi lettori): per caso le è rimasto qualche coniglio da tirar fuori dal cilindro?
    Grazie

  14. Ti amo.

    • Vabbé, aggiungo qualche altro dettaglio sennò mi prendete per pazzo xD

      Ho passato la giornata intera cercando di risolvere sto problema. Attiva, disattiva, aggiorna, fai, google. Alla fine sono capitato qui ed ecco una soluzione efficace.

      Purtroppo c’è da modificare il core di wordpress, ma in fondo è una modifica minima e tutto sommato sopportabile.

      Grazie molte.

      • LOL, avevo immaginato qualcosa del genere :D
        Evvai, un altro utente WordPress salvato dalla pazzia, grazie a questo articolo! Sono contento ;)

  15. Ti scrivo per ringraziarti vivamente.. problema risolto grazie a te. Grazie ancora!

    • Sono contento che questo articolo abbia aiutato così tanta gente :D

      • Decisamente si! Io ogni nuovo aggiornamento di WordPress mi prevengo ed applico le modifiche hai segnalato :)

  16. Ti ringrazio moltissimo del tuo aiuto, adesso tutto funziona alla perfezione! Ho pubblicato un articolo anche per ringraziarti: http://www.appletribu.com/?p=2629

    Cordialmente,
    Paolo

    • Benone!! Questo è uno degli articoli più apprezzati.. :D
      Grazie per la citazione del tuo articolo ;)

      • eh si, perché purtroppo è un problema piuttosto noioso che vedo colpisce molti utenti WordPress…me compresa :) Tra l’altro ogni aggiornamento è la stessa storia, se non te lo ricordi rischi di perdere dei lettori. Non capisco come mai non risolvano loro aggiungendo preventivamente quella stringa :/

  17. ciao sono giuseppe, ho un problema su wordpress, nella bacheka mi appare questo errore: Warning: file_get_contents(http:) [function.file-get-contents]: failed to open stream: No such file or directory in /home/prestitifinanziamentimutui.com/public_html/wp-includes/class-feed.php on line 97

    Ho già reinstalllato wordpress 5 volte ma senza risultati, praticamente il feed del blog non funziona, ho letto questo tuo articolo, e non so se la soluzione che proponi è valida anche nel mio caso, potresti aiutarmi perfavore?

    grazie giuseppe

  18. Max

    Ciao Ghido! Dopo avere avuto un problema con il database, ho dovuto ripristinarlo e ho notato che il feed RSS non andava più nonostante tutto fosse tornato alla normalità. Grazie per i consigli, li ho seguiti alla lettera e ho anche provato con il plugin fix-rss-feed però non riesco a risolvere. Questo è il link del mio feed: http://feeds2.feedburner.com/creativebubbles

    Spero tu possa aiutarmi, grazie!!!

  19. mik

    Io avevo lo stesso problema degli spazi, ho fatto la modifica e ora devo aspettare. Ma quanto tempo ci mette più o meno il sitema ad aggiornare la cache?

    Grazie

  20. scaso

    Non ho nemmneo leto l’articolo.. ho risolto prima ^_^
    però vi dico che sul file function.php avevo una riga di nota prima del tag <?xml
    mi è bastato cancellarla, tutto risolto.
    <?xml deve essere nella priam riga.

    Come scoprirlo… quando apri il tuo rss e ricevi l'errore già ti indica la riga dove hai l'errore.
    Se non bastasse usate http://feedvalidator.org e riceverete l'errore servito..

    Spero di aiutare tutti e di essere stato utile scusate se non leggo son sempre di corsa… ciao.

Lascia un commento

Inserisci le tue informazioni personali, o loggati con il tuo account Facebook.