Sind wir nicht alle Welt Held?
Pages
Recent Comments
-
Björn Hallo, leider habe ich das Tool nie fertiggestellt. Ich habe auch gerade mal meine Festplatte durchforstet, konnte aber den Sourcecode […] vor 1 Monat
-
Oliver Hallo, ist das Programm noch in Arbeit? Gruß Oliver vor 1 Monat
-
aleksy wie kann ich meinen Lehrer in der schule mit computertricks verarschen zb. computer herunterfahren mit einer tastenkombination oder einfach […] vor 4 Monaten
-
Björn @Stefan: Habe ich gerade mal ausprobiert, bei mir funktioniert das nicht. Ich glaube das ist eher ein Feature deiner Grafikkarte, ich kenne […] vor 10 Monaten
-
Björn Der Blog wurde irgendwann dann mal deaktivert, da er nur mit Spam vollgepumpt war.. Aber hier gibt es eine Kopie, wenn auch ohne Bilder! vor 10 Monaten
-
Gesponserte Links
Archives
- November 2011 (4)
- Oktober 2011 (1)
- Juli 2011 (2)
- Juni 2011 (3)
- Mai 2011 (2)
- März 2011 (6)
- Februar 2011 (1)
- Januar 2011 (3)
- Oktober 2010 (3)
- September 2010 (9)
- August 2010 (3)
- Juni 2010 (2)
- Mai 2010 (3)
- April 2010 (2)
- März 2010 (20)
- Februar 2010 (13)
- Januar 2010 (27)
- Dezember 2009 (18)
- November 2009 (15)
- Oktober 2009 (11)
- September 2009 (30)
- August 2009 (3)
- Juli 2009 (30)
- Juni 2009 (4)
- Mai 2009 (15)
- April 2009 (7)
- März 2009 (4)
- Februar 2009 (2)
- Januar 2009 (13)
- Dezember 2008 (5)
- November 2008 (4)
- Oktober 2008 (5)
- September 2008 (1)
- August 2008 (2)
- Juli 2008 (3)
- April 2008 (2)
- März 2008 (6)
- Januar 2008 (5)
- Dezember 2007 (6)
- November 2007 (6)
- Oktober 2007 (3)
- September 2007 (4)
- August 2007 (1)
- Juni 2007 (4)
- Februar 2007 (1)
- Januar 2007 (1)
- Dezember 2006 (1)
- November 2006 (2)
- Oktober 2006 (1)
- September 2006 (3)
- August 2006 (1)
- April 2006 (1)
- März 2006 (5)
- Februar 2006 (7)
- Januar 2006 (6)
- November 2005 (2)
- Oktober 2005 (3)
Fehlerhafte Links in der Sidebar bei WordPress
Vorhin ist mir aufgefallen, dass die Links zu den letzten Kommentaren in der Sidebar fehlerhaft waren. Sie zeigten sogar in ein falschen Blog. Ich dachte, es läge an der WordPress MU Installation. Also spielte ich mit den Einstellungen herum und verschlimmbesserte nur noch alles. Also ging ich einen anderen Weg und versuchte dem Fehler auf die Schliche zu kommen, in dem ich die Funktionen testete. Das ist aber recht schwierig, da das WordPress Backend mittlerweile riesig ist und wenn man nicht Up-To-Date ist, hat man absolut keine Chance. Also den Königsweg gegangen und nach und nach alle Plugins deaktiviert und schon hatte ich den schuldigen gefunden: FeedWordpress
Das Plugin sorgt dafür, dass der RSS Feed anderer Blogs ausgelesen werden und hier als eigene Einträge erscheinen. Damit der Fehler reproduzierbar ist, müssen folgende Voraussetzungen erfüllt sein:
- Bei FeedWordpress muss unter Einstellungen -> “Posts & Links” -> Permalink auf “point to the copy on the original website” stehen
- der letzte Eintrag der Seite muss ein per Feed importierter Eintrag sein
- Das Widget “Recent_Comments” oder jede andere Funktion, dass einen Permalink per “get_permalink()” zu holen versucht, muss “nach” diesem bestimmten Beitrag ausgeführt werden
Um den Fehler zu verstehen, schauen wir kurz in die “feedwordpress.php” im Pluginverzeichnis.
Dort steht folgendes:
function syndication_permalink ($permalink = '') { if (get_option('feedwordpress_munge_permalink') != 'no'): $uri = get_syndication_permalink(); return ((strlen($uri) > 0) ? $uri : $permalink); else: return $permalink; endif; } // function syndication_permalink ()In unserem Fall ruft er also die Funktion “get_syndication_permalink()” ohne Parameter auf:
function get_syndication_permalink ($id = NULL) { list($u) = get_post_custom_values('syndication_permalink', $id); return $u; }Als Defaultwert ist NULL angegeben. Ein Blick in den WordPress-Codex verrät, dass er das Benutzerdefinierte Feld des aktuellen Eintrags laden versucht. Das ist logischerweise noch der aus dem Feed importierte Eintrag und daher lädt er eine falsche URL.
Um das Problem zu beheben, einfach den Code oben durch folgenden ersetzen:
function syndication_permalink ($permalink = '') { $id = url_to_postid($permalink); if (get_option('feedwordpress_munge_permalink') != 'no'): $uri = get_syndication_permalink($id); return ((strlen($uri) > 0) ? $uri : $permalink); else: return $permalink; endif; } // function syndication_permalink ()Die “url_to_postid()” ist eine WordPress-eigene Funktion. Nun funktioniert es wieder. Darauf muss man erstmal kommen!
Dieser Beitrag wurde durch Björn am 02. März 2010 um 20:08 Uhr erstellt und ist in Allgemein kategorisiert. Jede Reaktion auf diesen Beitrag kannst du mit RSS 2.0 verfolgen. Du kannst eine Antwort oder einen Trackback von deiner eigenen Seite hinterlassen.