Je n'ai pas l'autorisation d'enregistrer les options du thème que je créé moi-même?
-
22-10-2019 - |
Question
I a créé un groupe d'options suivant un tutoriel.
Mais chaque fois que je tente de sauvegarder les paramètres que je reçois les points suivants:
Vous ne disposez pas des autorisations suffisantes pour accéder à cette page.
Toutes les suggestions pour résoudre ce problème?
(Je ne sais pas si cela aide, mais je suis en utilisant Wordpress 3.1.2)
EDIT:
Je n'ai pas la question de l'autorisation si je place le code directement dans le fichier functions.php
dans mon dossier thématique.
J'ai le fichier dans functions/custom-functions.php
. Je dois changer l' « en-tête emplacement, » ne sais pas comment:
function mytheme_add_admin() {
global $themename, $shortname, $options;
if ( $_GET['page'] == basename(__FILE__) ) {
if ( 'save' == $_REQUEST['action'] ) {
foreach ($options as $value)
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
foreach ($options as $value) {
if( isset( $_REQUEST[ $value['id'] ] ) )
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
else
delete_option( $value['id'] );
}
header("Location: admin.php?page=functions.php&saved=true");
die;
}
else if ( 'reset' == $_REQUEST['action'] ) {
foreach ($options as $value)
delete_option( $value['id'] );
header("Location: admin.php?page=functions.php&reset=true");
die;
}
}
add_menu_page($themename, $themename, 'administrator', basename(__FILE__), 'mytheme_admin');
}
La solution
Vous ajoutez la page de menu à l'aide du rôle « administrateur ». Le compte que vous utilisez un administrateur?
Note:
1) Vous devez utiliser une appropriée capacité , plutôt que rôle utilisateur . En général, la capacité appropriée pour l'édition des options thématiques est edit_theme_options
.
2) Il y a un bug connu avec WordPress, en ce moment, manage_options
est nécessaire pour la forme soumettre sur options.php
, qui est utilisé par les paramètres Thème pages. Ceci est seulement un problème pour les rôles utilisateur ci-dessous éditeur, et nous espérons être fixé à 3.2 ou 3.3.
3) Si cela est un thème public, vous devez utiliser add_theme_page()
(qui ajoute un sous-menu dans le menu « Apparence »), plutôt que add_menu_page()
(ce qui ajoute une page de menu de niveau supérieur).
4) Ce tutoriel est considérablement obsolète.
Autres conseils
Vous devez effectuer deux changements dans votre code ...
- Modifier le troisième argument de
add_menu_page
de"administrator"
à"edit_theme_options"
. - Chage
header("Location:")
ligne de code ...
header("Location: admin.php?page=" . basename(__FILE__) . "&saved=true");
S'il vous plaît faire changement similaire pour Réinitialiser.