Tips: WordPress finner ikke feeden (RSS/Atom)

Jeg tror dette kan ha interesse for de som bruker WordPress **eldre enn versjon 2.3** (den som kom i går) og enten:

1. Bruker en plugin for å hente RSS-feeder for å lage aggregeringer (Se eksempel)
2. Bruker en widget RSS for å hente og vise en feed i en «sidebar»

og som har prøvd hente feed fra en blogg som kjører hos One.com webhotell, f.eks Hjorten, Tor Amundsen og Sissels trivialiteter. Sistnevnte er ny på One.com etter flytting nylig.


Det er en *ekkel liten bug* i måten eldre WordPress henter en side/fil med HTTP, f.eks henter en feed. Den er identifisert her hos WordPress Trac og her hos SourceForge Snoopy.

Når man med HTTP skal kontakte en webserver med virtuelle servere (alle webhotell har dette) så må det sendes med en spesiell HEADER-linje slik:

Host: sparhell.no

Problemet til Snoopy, den klassen WordPress bruker til å hente slikt, har vært at den sender:

Host: sparhell.no:80

der 80 er portnummeret, selv om 80 er default og da ikke trenger angis. Men portnummeret skal ikke være med der, i alle fall ikke når det er 80. Likevel forstår de fleste webservere dette og fjerner portnummeret før det slår opp riktig virtuell webserver. Alle, unntatt visse versjoner eller konfigurasjoner av Apache. Jeg er ikke noen Apache-ekspert, så jeg kan ikke si noe mer om dette og hva som gjør noen sårbare for feilen, og andre ikke. Noen Apacher lar seg altså forvirre totalt og gir feilmelding («Bad request» eller «Not found»).

For de som måtte ville fikse denne buggen uten å oppgradere eller risikere andre endringer, og dermed lykkes med å hente flere feeds, så kommer løsningen her:

Hent ned og åpne filen wp-includes/class-snoopy.php i en editor og navigér til linje 799 (eller søk), som lyder:

if(!empty($this->port))

og bytt den ut med:

if(!empty($this->port) && $this->port != 80)

Neste linje *er og skal være urørt*:

$headers .= «:».$this->port;

Lagre og last så opp filen igjen.

Men en mye bedre løsning er naturligvis å oppgradere WordPress til dagens utgave. Det går trolig som smurt.

Skrevet av

Knut Sparhell

IT-ingeniør, Nytt Nettsted

8 kommentarer om “Tips: WordPress finner ikke feeden (RSS/Atom)”

  1. Interessant. Er dette årsaken til at antallet feedlesere ble halvert etter at jeg måtte switche til One.com da?

    Jeg tror jeg må oppgradere, det var uansett litt kluss med den installasjonen jeg har nå, den der visual rich text-editoren virker f.eks ikke. Ikke så farlig, men litt irriterende allikevel.

  2. Spørsmålet jeg stiller meg er om det vil by på noen utfordringer å oppgradere fra en svært gammel WP til den nyeste.

    Jeg oppgraderte en gang i tiden min WP noe som førte til store problemer ettersom den versjonen jeg oppgraderte til hadde en del bugs. Senere var det ikke å lett å nedgradere igjen.

    Etter dette har jeg hatt en vegring mot å oppgradere, noe som er grunnen til at jeg i dag sitter med WP 2.0.2.

  3. En sluppet versjon har WP har nok sjelden alvorlige bugs. Problemene ligger som regel i selve oppgraderingen, tema og plugins, samt forholdet til PHP-versjon og MySQL-versjon. Selve databasen er jo en «levende» organisme hvis liv skal videreføres i en ofte ny form.

    Les mest mulig av dokumentasjon om de versjonene du skal gjennom, og hva som er nevnt om oppgradering. Noe vil kunne være verdt å merke seg, det meste trolig ikke.

    1. Ta en backup av databasen og få verifisert at den er fullstendig og trygg.
    2. Ta en backup av alle filer du har i WP
    3. Deaktiver alle plugins
    4. Slett gjerne alle filer unntatt WP-content. Der har du gjerne mediefiler og kanskje redigerte temafiler. Slett likevel WP-content/cache hvis du har den.
    5. Oppgrader først til 2.0.10, deretter til 2.1 så 2.2. ved å pakke ut filene og deretter, mellom hver oppgradering, gå til administrasjon og gjennomfør oppgraderingen.
    6. Sjekk den nye bloggen nøye, men du vil mangle plugins. Er noe rart, bruk standard tema
    7. Oppgrader tema. Har du redigert tema bør du ta kopi av dette til en egen tema-mappe under et avledet navn.
    8. Oppgrader alle plugins
    9. Aktiver en og en plugin, og sjekk godt mellom hver. Se etter feilmeldinger på sidene, i hver blokk, spesielt i topp og bunn
    10. Forsøk aktivere det tema du hadde, om det var et redigert et

    Har noe gått galt underveis og du ikke kan identifisere det, søk hjelp eller legg alt tilbake, både filer og database.

    Fint også om du har tilgang på error.log for PHP, men på et webhotell er vel det lite trolig. Loggen kan fortelle nøyaktig hvor det feiler, om noe feiler.

    Jeg er overbevist om at det går het fint, om du har tunga rett i munnen og gjøre det rolig og kontrollert, slik at du helt klart vet hva du gjorde og ikke gjorde. Med det som utgangspunkt vil det også være lett i identifisere og rette eventuelle problemer.

    Har du «hacks» eller annet redigert, eventuelt plugins som ikke lenger er kompatible, så kan det bety revurderinger eller noe ekstra jobb.

    Gå gjennom din nye WP og vurder og test ut widgets. De kan erstatte mye rart som ligger i tema (sidebars), så sant tema er «widget ready». Legge merke til at hvis én widget legges til en «sidebar» så disables temaets egne blokker/lister. Hvis du fjerner alle dukker temaets egen opp igjen. Det kan forvirre om man ikke leser det som står der om widgets før man prøver en.

    Nyere WP er kvalitativt bedre, med gode nye funksjoner. Akkurat denne bloggen følger 2.0.x-serien og vil det så lenge den versjons-serien er støttet og har mange brukere, noe på grunn av plugin-utviklingen, noe på grunn av at jeg ved oppgradering her skal gjøre om på en del ting og tang. Jeg har andre på 2.2.

Det er stengt for kommentarer.