Kommentare werden nicht immer angezeigt

  • Bei meiner WordPress-Installation tritt seit etlichen Monaten ein seltsames Phänomen auf: die meisten Besucher können die Kommentare zu einem Beitrag nicht sehen, obwohl die Kommentare in der Datenbank vorhanden sind.

    Das Ganze wird vollkommen mysteriös durch die Tatsache, daß diese Probleme nie auftreten, wenn mein Weblog von meinem heimischen Internet-Zugang aus besucht wird. Ich habe meine Website kürzlich von meinem Service Provider auf meinen eigenen lokalen Webserver verschoben, um diesem Phänomen eventuell leichter auf die Schliche zu kommen, aber auch diese „Übersiedlung“ hat nichts geholfen.

    Mit reiner Logik ist dieses Phänomen nicht zu begreifen: entweder gibt es Anmerkungen, oder es gibt keine – unabhängig davon, welcher Besucher mit welchem Browser aus welcher Ecke des Internets auch immer das PHP-Script startet, das seinerseits wiederum die Datenbank abfragt. Sollte man meinen ;-)

    Mein Weblog findet sich hier: http://www.berghofer.com/wordpress/

    Ich verwende bewußt noch WordPress Version 1.5.1.3, der Webserver ist ein Apache 1.3.33 für Darwin (Mac OS X 10.4.3) mit PHP 4.3.11 und mySQL 4.0.21.

    Das Problem gibt es auch dann, wenn ich die Datei „comments.php“ von anderen Themen bzw. „skins“ verwende. „comments.php“ von der WordPress-Version 2.0 bringt auch keine Abhilfe.

    Hat jemand eine Idee, woran das liegen könnte?

    Vermutlich verursacht die Variable „$comments“ die Probleme: mit der Abfrage „if ($comments)...“ überprüft WordPress, ob Kommentare darzustellen sind. Ich versuche gerade, die Datei „comments.php“ so zu modifizieren, daß ich „zu Fuß“ aus der Datenbank alle Kommentare lese, die zum aktuellen Beitrag gehören und anschließend die Anzahl der darzustellenden Kommentare an die Variable „$comments“ übergebe. Das funktioniert auch recht gut, nur kann ich leider aus den restlichen WordPress-Modulen nicht genau ersehen, welcher Datentyp von der Schleife „foreach ($comments as $comment)“ als „$comments“ erwartet wird. Die direkte Zuweisung des aktuell aus der Datenbank geholten Records in der Form „$comments[] = $row“ funktioniert leider nicht.

    Gibt es hier vielleicht mit PHP-Programmierung vertraute Menschen, die mir in dieser speziellen Frage etwas auf die Sprünge helfen könnten?

    Besten Dank,

    Werner.

    Einmal editiert, zuletzt von Werner Berghofer (2. Januar 2006 um 11:57)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Benutzerrechte

    hmm, ist nur so eine schnelle Idee:
    schonmal die Chmod Rechte überprüft, so von wegen schreiben und lesen für Eigentümer und Benutzer?

    Mehr fällt mir da leider auch nicht zu ein, aber vielleicht warst du ja bei der vergabe der Rechte zu geizig damit ;-)

    FNJ
    Oliver

  • Oliver,

    > schonmal die Chmod Rechte überprüft

    klar, die wurden für Debug-Zwecke sogar auf 0777 gesetzt. Ich kann mir nicht vorstellen, daß die Benutzerrechte damit in Zusammenhang stehen. Der Inhalt der WordPress-Variablen „$comments“ ist beim Zugriff der meisten Besucher anders als beim Zugriff aus meinem LAN, das ist die Teufelei dabei.

    Vergiß nicht: das wirkliche Phänomen ist ja, daß die meisten Besucher die Anmerkungen nicht sehen können, während sie von jedem Rechner aus meinem LAN, der – gleichgültig ob lokal oder über das Internet – auf meine Website zugreift, sehr wohl dargestellt werden.

    Bei meinem Internet-Provider trat dieses Problem auf, als meine HTML- und PHP-Files auf den gleichen Server verschoben wurden, auf dem auch der mySQL-Server läuft. In dem Moment, wo Web- und mySQL-Server wieder zwei verschiedene Rechner waren, ist dieses Phänomen verschwunden. Ich werde mal versuchen, dieses Szenario auch bei mir lokal nachzubilden.

    Wüßte ich, welche Datenstruktur WordPress beim Codeteil if ($comments) und der anschließenden Schleife foreach ($comments as $comment) in der Variablen $comments erwartet, würde ich sie durch eine eigene Datenbank-Abfrage entsprechend präparieren.

    Mich erschüttert auch die nicht vorhandene Trennung von (lokalisierter) Sprache und Anweisungen im WordPress-PHP-Code ziemlich. Die WordPress-Entwickler könnten sich vom Sourcecode des phpBB-Forums eine Menge Inspiration holen.

    Herzlichen Dank für’s Kopfzerbrechen, Oliver :-)

    Werner.

    Einmal editiert, zuletzt von Werner Berghofer (2. Januar 2006 um 15:31)

  • Oliver,

    ich hab’s behoben. In der Datei „comments.php“ wird jetzt der Inhalt des Objekt-Arrays $comments von einer eigenen Routine präpariert, bevor sich WordPress daran macht, ihn auszulesen, zu formatieren und darzustellen.

    Diese Zeilen haben geholfen:

    In der Datei „constants.inc.php“ stehen die Zugangsdaten zum mySQL-Server.

    Werner.

    Einmal editiert, zuletzt von Werner Berghofer (2. Januar 2006 um 20:48)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!