Undefined Index: Meldung bei FeedBurner FeedSmith Plug-in beheben

Alexander Trust, den 14. Juli 2018
Wordpress - Logo
Wordpress – Logo

Undefined Index: Meldung bei FeedBurner FeedSmith Plug-in beheben. Ihr nutzt vielleicht immer noch das FeedBurner-Plug-in für WordPress, um Eure gesammelten Feeds zu verwalten. Doch abgesehen davon, dass es länger nicht aktualisiert wurde, stammt es aus einer Zeit, in der vermutlich niemand daran dachte, dass er mal Kategorien absichtlich ausblenden könnte. Das könnt Ihr zum Beispiel mit Yoasts WordPress SEO, aber auch anderen.

Hinweise von PHP in Log-Files

In Euren Server-Logdateien dürften sich in dem Fall mit der Zeit einige Hinweise sammeln, sogenannte „PHP Notices“. Tatsächlich funktioniert das Plug-in auch weiterhin. Doch es beschwert sich an mancher Stelle eben, dass ein Wert, den es erwartet, nicht vorhanden ist. Das sieht in etwa wie folgt aus:

PHP Notice: Undefined index: category_name in ###/wp-content/plugins/FeedBurner_FeedSmith_Plugin.php on line 111, referer: ###/feed/

Dieser Hinweis führt Euch in die richtige Richtung. Denn in Zeile 111 der Plug-in-Datei steht der Quellcode. Der versucht auf einen Index zuzugreifen, der hin und wieder nicht gesetzt ist. Der Quellcode der aktuellen Version 2.3.1 an Zeile 111 sieht wie folgt aus:

if (is_feed() && $feed != 'comments-rss2' && !is_single() && $wp->query_vars['category_name'] == '' && ($withcomments != 1) && trim($feedburner_settings['feedburner_url']) != '') {

Ihr seht vielleicht, dass mit dem && die Bedingung für $wp->query_vars['category_name'] zwingend verknüpft wird. Die Meldung (Notice) entsteht deshalb, da der PHP-Interpreter jeden Ausdruck auch tatsächlich auswertet und $wp->query_vars['category_name'] nun manchmal nicht gesetzt ist. Das kann übrigens nicht nur an den Plug-ins liegen, die die Kategorien verbannen und umleiten.

Lösung, vorher prüfen ob Variable gesetzt ist

Ihr könnt die Hinweise in den Log-Dateien eliminieren, indem Ihr an der Stelle einfach noch eine Prüfung der Variablen voranstellt, und zwar mit !isset($wp->query_vars['category_name']. Das könntet Ihr theoretisch auch mitten innerhalb der vorhandenen IF-Bedingung tun. Es würde aber die Übersichtlichkeit stören. Fügt deshalb einfach in der Zeile davor noch eine neue IF-Abfrage hinzu. Sollte die Variable nicht gesetzt sein, erledigt Ihr das einfach und weist ihr einen leeren Wert/String zu, und zwar wie folgt:

if(!isset($wp->query_vars['category_name'])) $wp->query_vars['category_name'] = '';

Der Code dahinter kann dann so bleiben wie vorher bereits beschrieben.

Hinweise zu dem Problem und dieser Lösung sind gerne willkommen. Vielleicht lässt sich daran ja auch noch etwas verbessern.


Ähnliche Nachrichten