© 2017
A MarketPress Theme

add_menu_pages_code

WordPress Debug: „Notice: has_cap was called with an argument that is deprecated since version 2.0!”

Bei der Pluginprogrammierung bzw. Theme-Entwicklung stellt der pflichtbewusste WordPress Developer gerne auf „Debug Modus“ um seine eigenen Arbeiten zu kontrollieren bzw. Fehler schneller zu finden.
Um den Debug Modus zu aktivieren setzt man in der wp-config.php folgende Variable auf „true“:

//wp-config.php

define('WP_DEBUG', true);

Nun habe ich eben an einem Kundenprojekt gearbeitet, wo ein Lizenztheme aus dem Themepool von Themeforest verwendet wird, mit Erschrecken beim Aktivieren eine Fehlermeldung im Adminbereich sehen müssen.

Notice: has_cap wurde mit einem Parameter oder Argument aufgerufen, der seit Version 2.0 veraltet ist! 
Die Benutzung von user_level in Plugins und Themes ist veraltet. Nutze stattdessen das Abfragen von roles oder capabilities.

Kurze Nachforschungen haben ergeben, dass es sich um eine veraltete Form in den Paramentern des Funktionsaufruf:

add_menu_page

und

add_submenu_page

. Bei Nicky Hajal bin ich auf die Lösung gestossen:

//Falsch, nutzt '8' als Rollendefinition

add_menu_page( 'UtMan', 'UtMan', 8, 'utman', array(&$this, 'mainAdmin'), null, 6);

//Richtig: Erlaubnis geändert in 'edit_pages' (darf Seiten editieren)

add_menu_page( 'UtMan', 'UtMan', 'edit_pages', 'utman', array(&$this, 'mainAdmin'), null, 6);

//Falsch, nutzt 'administrator' als Rollendefinition

add_submenu_page('utman', 'UtMan Requests', 'Requests', 'administrator', 'utman-requests', array(&$this, 'requestPage'));

//Richtig: Erlaubnis geändert in 'edit_pages' (darf Seiten editieren)

add_submenu_page('utman', 'UtMan Requests', 'Requests', 'edit_pages', 'utman-requests', array(&$this, 'requestPage'));

Seit einiger Zeit wurden die sog. User Level Abfragen ausgetauscht und durch „Roles and Capabilities“ ersetzt, die eine feinere Abstimmung in den Funktionen bietet. Somit bietet sich bei der Theme Programmierung das “

install_themes

als Erlaubnisabfrage an.

 add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );

weitere Informationen auch im offiziellen Codex:
http://codex.wordpress.org/Adding_Administration_Menus
http://codex.wordpress.org/Roles_and_Capabilities

0 Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

WP Camp Webring
%d Bloggern gefällt das: