it-swarm.com.de

Undefinierter Offset: in> [...] /wp-includes/capabilities.php in Zeile 1067

Hey, ich erhalte diese Fehlermeldung bei meinem localhost-Setup, aber nur bei aktiviertem Genesis Framework. WordPress Twenty Eleven funktioniert gut. Dies geschieht, wenn ich einen neuen Beitrag erstellen möchte. Wenn ich die Seite aktualisiere, wird der Fehler wiederholt, aber der Beitrag selbst wird erstellt und alles scheint in Ordnung zu sein.

Weiß jemand woran das liegt?

Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067
Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067
Warning: Cannot modify header information - headers already sent by (output started at /var/www/secret/htdocs/wp-includes/capabilities.php:1067) in /var/www/secret/htdocs/wp-includes/pluggable.php on line 876

Es ist ein neu installiertes, nicht modifiziertes Genesis Framework.

8
James Mitch

Sie haben einen Fehler in Genesis gefunden.

Ihr Xdebug-Stack verfolgt den Schuldigen als die genesis_save_custom_fields()-Funktion, die current_user_can() mit einer singulären Fähigkeit (edit_post und edit_page) aufruft, die auch ein zusätzliches Argument erfordert, in diesem Fall die fehlende Beitrags-ID.

current_user_can() ruft has_cap() auf, der map_meta_cap() aufruft und eine switch-Anweisung für den Funktionsnamen ausführt. Siehe Zeile 1067 von functions.php . Die 2 undefinierten Versatzbenachrichtigungen stammen aus $ args [0], was kein Array ist, da die Post-ID im Aufruf current_user_can in Genesis fehlt.

Die Cannot modify header information - headers already sent Warnung stammt von Xdebug und druckt die PHP Hinweise aus. Wenn Sie Xdebug nicht verwenden, werden die PHP -Notizen nicht angezeigt, es sei denn, Sie haben Ihre Protokolle überprüft, da der Fehler in einer Funktion enthalten ist, die an save_post angehängt ist, und die Seite wird aktualisiert, wodurch Warnungen/Notices/Errors verhindert werden auch dann nicht auf der Seite angezeigt, wenn WP_DEBUG auf true gesetzt ist.

Fix:

In Zeile 234 von lib/functions/options.php ändern Sie:

/** Check the user allowed to edit the post or page */
if ( ( 'page' == $post->post_type && ! current_user_can( 'edit_page' ) ) || ! current_user_can( 'edit_post' ) )
    return;

Zu:

/** Check the user allowed to edit the post or page */
if ( ! current_user_can( 'edit_post', $post->ID ) )
    return;

Zu beachten ist auch, dass der post_type nicht überprüft werden muss, da die Großbuchstaben edit_page und edit_post austauschbar sind.

12
Chris_O

Dies wurde am 1.17 von Mark Jaquith in seinem Audit im Kofferraum behoben. Ich habe ein Ticket für eine mögliche Version 1.9.2 eingereicht.

Persönlich glaube ich, dass dies ein WordPress-Problem ist, da map_meta_cap () $ args [0] nicht überprüft oder bereinigt. Daher habe ich ein Ticket an WordPress Core gesendet.

0
Travis Smith