it-swarm.com.de

Wie finde ich einen Fehler in meinem Code, wenn die Fehlermeldung darauf verweist? WP Kerndatei?

Beim Testen eines meiner Plugins mit 4.5 RC von WordPress ist mir nach dem Aktivieren des Debugs in der Datei wp-config.php ein Fehler in einer Core-Datei WP aufgefallen

Notice: Trying to get property of non-object in /wp-includes/post-template.php on line 289

Während des Eliminierungsprozesses (Deaktivieren aller anderen Plugins bis zum erneuten Auffinden der Nachricht) wird dies vermutlich durch die Optionsseite meines Plugins verursacht (ich nehme an, es könnte sich möglicherweise um die wichtigste benutzerdefinierte Post-Seite handeln), es wird jedoch keine Fehlermeldung angezeigt um mich darauf hinzuweisen, wohin. Der Fehler verweist auf eine WP Kerndatei.

Dieser Fehler wird nicht überall im Administrator angezeigt, nur auf bestimmten Seiten wie den Hauptseiten der Plugins, des Dashboards, der Benutzer, der Kommentare, des Erscheinungsbilds, der Einstellungen und auf meiner Optionsseite selbst, aber merkwürdigerweise NICHT auf anderen Bearbeitungen oder Posts Seiten meines Plugins oder Posts oder Seiten oder Medien der Site.

Der Code in dieser Zeile im Kern ist

if ( false !== strpos( $post->post_content, '<!--noteaser-->' ) && ( ! $multipage || $page == 1 ) )

und das Seltsame ist, dass meine Optionsseite keine Beziehung zum Post-Inhalt hat, sondern nur Optionen, also nicht sicher, warum diese Funktion (Teil von "get_the_content") überhaupt aufgerufen wird. Und da es keine spezifischere Fehlermeldung als die obige gibt oder eine, die sich auf eine Zeile in MEINEM Code bezieht, habe ich Probleme zu finden, welcher Teil meines Codes dies überhaupt auslösen könnte.

Kann jemand einen Weg empfehlen, dies besser zu beheben? Ein Tool mit besseren, spezifischeren Fehlerberichten oder Möglichkeiten, um das Problem zu finden und zu beheben? Ich weiß, es ist nur ein HINWEIS und nicht tödlich, aber ich würde es trotzdem gerne beheben, wenn es möglich ist.

Vielen Dank.

1
Stephen

Ich habe herausgefunden, was das verursacht hat, aber es war durch Ausprobieren, da es keine guten Debug-Informationen gab. Und der Fehler lag im Hauptteil meines Plugins, NICHT in den Optionen, wie ich vorher vermutet hatte. Ich fand heraus, dass ich verwenden musste

'content'  => $p->post_content

in meiner Abfrage/foreach Schleife anstelle von

'content'  => get_the_content($p->ID)

und dass die Fehlerzeile im ursprünglichen Debug (Zeile 289) bei einer Funktion mit dem Namen "get_the_content" (dh der von mir verwendeten) fehlschlug, was sich im Nachhinein als klar herausstellte (obwohl es in diesem Fall nett gewesen wäre) Zeile in meinem Code wurde im Debug angegeben). Auf jeden Fall würde dies nicht funktionieren ohne eine globale $ post-Variable, die alle möglichen anderen Inhaltsprobleme verursacht. Aber das direkte Abrufen des Inhalts (anstelle der Funktion get_the_content) hat mein Problem gelöst. Hoffe das hilft jemand anderem.

1
Stephen