Zur Navigation

Nach Wordpress-Upgrade keine Feedanzeige mehr im Shop ...?

1 lizzy

Hallo geschätztes Forum,
Hallo Joerg,

mal wieder wende ich mich an dieses Forum, in der Hoffnung hier einen Wink zu bekommen. So häufig haben mir die Hinweise hier schon weitergeholfen!

Ich betreibe seit geraumer Zeit ein Blog und einen Shop. Nun habe ich - nach laaaanger Zeit - endlich mal wieder ein Wordpress Upgrade gefahren und zwar von Version 2.3.1 auf das aktuelle 3.2.1! Alles hat letztlich prima geklappt, auch die meisten Plugins ließen sich problemlos aktualisieren - der Blog für sich läuft scheinbar prima und problemlos!

In einem ebenfalls betriebenen parallelen älteren Shop (xtCommerce) haben wir bislang den Feed dieses Blogs auslesen und auf der Startseite anzeigen lassen (IMG, TITLE, LINK und SHORT_DESCRIPTION). Realisiert haben wir das über die von Siegfried Hirsch programmierte Klasse RSSmoosings, die Ihre Dienste bislang wirklich famos tat.

Seit dem WP-Upgrade wird aber nun komischerweise nichts mehr angezeigt im Shop. Im Shop/Template hat sich aber rein gar nichts verändert und der Feed-URL hat sich doch offensichtlich auch nicht verändert!?. Den kann man im Browser ganz normal aufrufen ...

Hast Du, Joerg, oder jemand anderes vielleicht 'ne Idee und kann mir 'nen Hinweis geben, wo der Fehler liegt oder liegen könnte?
Im WP-Forum gab es auf mein Hilfegesuch leider bislang kein Feedback. Ein Bekannter, der mehr Check als ich hat, sagte mir, dass es wohlmöglich mit der htaccess vom Blog zu tun haben könnte, wusste aber auch nichts konkretes ...:-(!
Ich poste nachfolgend einmal den Inhalt.
Damit das Upgrade auf WP 3.2.1 funktionierte (auf dem 1&1 Server) musste ich übrigens auf PHP 5 "umstellen" (betrifft die ersten beiden Zeilen, die ich hinzufügen musste)!
Vielleicht hatte es damit was zu tun? Gerne kann ich auch die relevanten Passagen aus der Klasse bzw. der default.php einmal posten, wenn hilfreich ...?

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /kinderfahrrad_blog/
RewriteCond %{THE_REQUEST} \?tag= [OR]
RewriteCond %{THE_REQUEST} \?___
RewriteRule .* - [G,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /kinderfahrrad_blog/index.php [L]
</IfModule>
# END WordPress

Es wäre wunderbar, wenn Ihr weiterhelfen könntet (im Shop sieht es so nackt aus ;-))

Dankeund beste Grüße,
Lizzy

28.09.2011 17:44

2 Jörg Kruse

und der Feed-URL hat sich doch offensichtlich auch nicht verändert!?. Den kann man im Browser ganz normal aufrufen ...

Das ist auch ganz sicher die alte URL, d.h. du hattest die alte URL gebookmarkt? falls ja: wirst du hierbei vielleicht weitergeleitet auf eine neue URL? wie lautet denn die URL des Feeds?

Vielleicht enthält der neue Feed irgendwelche Imkompatibilitäten, über die das Script von xt:Commerce stolpert. Hier kannst du den Feed validieren lassen:

http://validator.w3.org/feed/

28.09.2011 18:48

3 lizzy

Hi Jörg,

vielen Dank für Deine prompte Antwort!

Also, ich will ja nichts falsches behaupten, aber der URL des Feeds lautet meines Wissens nachwievor:
http://www.kinderfahrradladen.de/kinderfahrrad_blog/feed

In der unveränderten default.php des Shops finden sich folgende relevante Zeilen (zur Erklärung: es wird auch ein Google News Feed ausgelesen - das funktioniert nachwievor prima, wie man auf der Startseite unter http://www.kinderfahrradladen.de/ sehen kann!), die u.a. auch den Feed-URL des Blogs zeigen.

include ('includes/classes/RSSmoosings.php');
        $rss = new RSSmoosings();
        $feed = $rss->get_rss("http://news.google.com/news?ie=UTF-8&oe=utf8&q=kinder+fahrrad+sicherheit&hl=de&output=rss");
        $google_news_items = $rss->printItems(3, true, true, 'google');
        $news_str = '';
        foreach ($google_news_items as $item) {
            $news_str .= $item['description'] . '<br />';
        }

        $rss2 = new RSSmoosings();
        $feed = $rss2->get_rss("http://www.kinderfahrradladen.de/kinderfahrrad_blog/feed");
        $blog_items = $rss2->printItems(1);
        $blog_item = $blog_items[1];

        $default_smarty->assign('BLOG_TITLE', $blog_item['title']);
        $default_smarty->assign('BLOG_LINK', $blog_item['link']);
        $default_smarty->assign('BLOG_SHORT_DESCRIPTION', $blog_item['short_description']);
        $default_smarty->assign('BLOG_IMG', $blog_item['img']);
        $default_smarty->assign('GOOGLE_NEWS', $news_str);
        $default_smarty->assign('text', str_replace('{$greeting}', xtc_customer_greeting(), $shop_content_data['content_text']));
        $default_smarty->assign('language', $_SESSION['language']);

Die Validitätsprüfung ergibt zwar kein sauberes Ergebnis (relative Pfadangaben zu den Images werden angemeckert), aber das kann, glaube ich nicht die Ursache des Problems sein, oder?

28.09.2011 21:27

4 Jörg Kruse

Also, ich will ja nichts falsches behaupten, aber der URL des Feeds lautet meines Wissens nachwievor:
http://www.kinderfahrradladen.de/kinderfahrrad_blog/feed

Es gibt hier eine Weiterleitung nach http://www.kinderfahrradladen.de/kinderfahrrad_blog/feed/ (mit Slash am Ende)

Probier mal diese URL:

        $feed = $rss2->get_rss("http://www.kinderfahrradladen.de/kinderfahrrad_blog/feed/");

Möglicherweise kann die RSSmoosings.php nicht mit Weiterleitungen umgehen

28.09.2011 21:36

5 lizzy

... brachte leider keine Änderung - es wird im Shop nachwievor nichts angezeigt ...

28.09.2011 21:51

6 Jörg Kruse

Gibt RSSmoosings.php im Errorlog Fehler aus? Möglicherweise kommt das Script mit dem Format der neuen Feed-Ausgabe nicht zurecht. Eine neuere Version gibt es von RSSmoosings.php wohl nicht - anscheinend ist es gar nicht mehr verfügbar? Ich würde gegebenenfalls einen anderen RSS-Parser probieren. Simplepie wurde anscheinend auch eingestellt, so dass ich da leider keine Empfehlung geben kann. Aber über Suchmaschinen lassen sich sicher Alternativen finden.

28.09.2011 22:20 | geändert: 28.09.2011 22:21

7 lizzy

Guten Morgen Jörg,

mmmhh, über das Errorlog kann ich nichts sagen, mein Server speichert keine php-Errorlogs und ich kann die Einstellungen hierfür wohl auch nicht ohne weiteres ändern ...

Eine neuere Version der Klasse gibt es wohl nicht, selbst die alte RSSmoosings.php steht nicht mehr zum Download zur Verfügung. Auch eine freundliche Anfrage beim Entwickler dieser Klasse brachte leider keine Reaktion.

Würde es Sinn machen, den Inhalt der RSSmoosings.php hier mal zu posten (ist nicht so groß ;-)) oder würde das den Rahmen sprengen bzw. nicht weiterhelfen? Vielleicht wäre ja nur eine kleine Änderung notwendig, dass es wieder passt, denk' ich mir als Laie ...?

Danke und Grüße
Lizzy

29.09.2011 09:19

8 Jörg Kruse

mmmhh, über das Errorlog kann ich nichts sagen, mein Server speichert keine php-Errorlogs und ich kann die Einstellungen hierfür wohl auch nicht ohne weiteres ändern ...

Ist error_reporting deaktiviert? falls ja, würde ich es kurzzeitig aktivieren, um zu sehen, ob ein PHP Fehler auf der Seite ausgegeben wird.

Würde es Sinn machen, den Inhalt der RSSmoosings.php hier mal zu posten (ist nicht so groß ;-)) oder würde das den Rahmen sprengen bzw. nicht weiterhelfen? Vielleicht wäre ja nur eine kleine Änderung notwendig, dass es wieder passt, denk' ich mir als Laie ...?

Falls ein PHP-Fehler ausgegeben wird, kann dieser möglicherweise leicht behoben werden. Andernfalls wird eine Anpassung wahrscheinlich aufwendiger. Ich würde in dem Fall nicht versuchen, den toten Gaul weiter zu reiten, sondern mich nach einem neuen Pferd umschauen.

29.09.2011 21:41

9 lizzy

Hallo Jörg,

in den Config-Einstellungen meines Servers finde ich den Wert 2039 unter Local Value und 2037 unter Master Value.

Wenn ich richtig nachgelesen habe, sollte diese Einstellung für die PHP Version 4.4.9, die auf dem Server läuft, korrekt sein.

Aber wie rufe ich denn die Datei auf, um mir ggf. Fehler anzeigen zu lassen ...?

Danke für Deine Hilfe,
Lizzy

29.09.2011 23:18

10 Jörg Kruse

2039 ist äquivalent zu E_ALL & ~E_NOTICE", also sollten alle Fehler außer Notices ausgegeben werden. Was ist mit display_errors - steht das auf on oder off? im letzteren Fall werden die Fehler nicht auf der Seite ausgegeben (sondern nur geloggt). Wenn auch im ersteren Fall keine PHP-Fehler angezeigt werden, dann werden wohl auch keine PHP-Fehler produziert. Das macht die Fehlersuche dann aber nicht grade einfacher.

Du kannst den Code dieser Klasse von mir aus auch hier posten (sofern es deren Lizenz nicht verbietet)

30.09.2011 11:31