Je suis nouveau sur wordpress et j'essaie de créer un plugin de paramètres de livraison simple, en l'ajoutant à la section générale. Dès que je clique sur activer, je vois un écran blanc. Je ne suis pas sûr de ce que je fais mal. Toute aide sera grandement appréciée. Merci!!

function delInfoSec()
{
    add_settings_section("delivery_info", "Delivery Info", "delInfoHtml", "general");
}


add_settings_field("min_del","Minimum Delivery","minDelCallBack","general","delivery_info");


register_setting("general","min_del");

add_action("admin_init","delInfoSec");


function minDelCallBack(){

    echo "<h3>Enter minimum  delivery</h3>";

}


function delInfoHtml(){

    echo "<input type='text'>";
}
2
json2021 19 juin 2016 à 19:05

2 réponses

Meilleure réponse

Deux problèmes. Ce premier conseil vous aidera à résoudre les problèmes suivants :

Pour obtenir des informations de débogage utiles pendant que vous développez, vous devez modifier votre fichier wp-config.php. Trouvez la ligne qui dit define('WP_DEBUG', FALSE); et remplacez-la par define('WP_DEBUG', TRUE); - cela entraînera WordPress et PHP pour afficher les erreurs afin que vous puissiez voir exactement ce qui se passe.

Votre problème de code est que vous ne pouvez pas appeler certaines de ces fonctions en dehors des crochets appropriés. Ils ne sont disponibles que si vous êtes dans "admin", vous devez donc les appeler à l'intérieur de admin_init.

Voici un article qui couvre TOUT ce que vous essayez de faire dans un didacticiel complet : http://code.tutsplus.com/tutorials/the-complete-guide-to-the-wordpress-settings- api-part-2-sections-fields-and-settings--wp-24619

Votre code doit être modifié comme suit:

add_action("admin_init","delInfoSec");

function delInfoSec() {
    add_settings_section("delivery_info", "Delivery Info", "delInfoHtml", "general");
    // To add and register your settings, do it in the "admin_init" hook
    add_settings_field("min_del","Minimum Delivery","minDelCallBack","general","delivery_info");
    register_setting("general", "min_del");
}

function minDelCallBack() {
    echo "<h3>Enter minimum  delivery</h3>";
}

function delInfoHtml() {
    echo "<input type='text'>";
}
1
random_user_name 19 juin 2016 à 20:05

La page blanche signifie qu'il y a une erreur sur votre plugin. Veuillez vérifier le fichier journal qui vous indiquera l'erreur exacte sur la page avec le numéro de ligne. Si tout va bien, veuillez également vérifier la version php prise en charge par le plugin et la version php sur laquelle le serveur est en cours d'exécution. Parfois, la non-concordance de la version php vous donne également une page blanche.

BR

1
Jeet 19 juin 2016 à 19:07