Lästiger Fehler gefunden: current_user_can() wars

Mein Plugin “wsl-gallery” löste in letzter Zeit folgendes Fehlverhalten aus: wenn man

  • Nicht eingeloggt war (bin ich dauernd, drum fiels mir wohl erst später auf *g*)
  • Sich die Bilder in der view “synoptic” betrachtete

wurden einem ALLE Kommentare, die es auf der ganzen Website gibt angezeigt, auch die, die nicht zum Posting passten. Das konnte ich nur dadurch abwenden, dass ich in den Templates <?php comments_template(); ?> auskommentierte. Nachteil: es konnte auch niemand mehr einen Kommentar auf wiesel.lu abgeben.

Jetzt hab ich den Fehler gefunden. Mir war aufgefallen, dass irgendwie beim Aufruf meiner Funktion die Information, um welche Seite es sich handelt (vermutlich ist sie in der globalen Variablen $id gespeichert) verloren geht. Auch WordPress Funktionen wie edit_post_link(‘(edit)’,”,’ ‘) funktionierten nicht mehr richtig. Die Funktion comments_template(); wusste also nicht mehr, zu welchem Post sie die Kommentare rausrücken soll und dachte sich wohl: spuck ich sie eben alle aus.

Nun hab ich, wie gesagt den Fehler gefunden, aber er liegt leider nicht bei mir, so dass ich ihn nur so beheben kann, dass ich auf eine bestimmte Funktionalität verzichte (ein Link zum Editieren der Bildinformation, wenn man eingeloggt ist):

Ich überprüfte in meinem Script mit der Funktion current_user_can() ob ich eingeloggt bin, und diese eigentlich sehr praktische Funktion current_user_can() vernichtet wohl die ID irgendwo.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.