Je développe actuellement un thème WordPress et j'aimerais qu'il comporte un panneau de préférences afin de spécifier le code de suivi Google Analytics de l'utilisateur, par exemple.
En suivant les instructions du Codex et de plusieurs tutoriels, ce morceau de code placé dans le fichier functions.php devrait créer un sous-menu de la section "Apparence" et afficher les "Préférences de thème" si l'utilisateur dispose de la fonctionnalité "manage_options". ou "Vous ne passerez pas." si non.
// Add theme settings link in the admin section menu
function add_appearance_menu() {
add_theme_page('Theme preferences', 'Theme pref.', 'manage-options', 'interact-theme-settings', 'render_theme_settings');
}
add_action('admin_menu', 'add_appearance_menu');
// Render theme settings page
function render_theme_settings() {
if (!current_user_can('manage_options')) {
wp_die(__('You shall not pass.'));
}
echo "Theme preferences";
}
Cependant, rien de nouveau n'apparaît dans mon menu administrateur et lorsque j'essaie d'accéder à la page manuellement ( http://mydomain.com/wp-admin/themes.php?page=interact-theme-settings ), il affiche ce message d'erreur:
Vous ne disposez pas des autorisations suffisantes pour accéder à cette page.
... qui n'est en aucun cas le message "Vous ne passerez pas" que j'ai spécifié dans ma fonction render-theme_settings ().
Quelqu'un peut-il m'expliquer s'il vous plaît ce qui ne va pas avec mon code? Merci d'avance pour votre aide :)
EDIT: Je voudrais souligner que, bien sûr, l'utilisateur que je teste tout cela avec HAS la capacité 'manage_options'.
manage-options
devrait être manage_options
. Essaye ça:
add_theme_page('Theme preferences', 'Theme pref.', 'manage_options', 'interact-theme-settings', 'render_theme_settings');