web-dev-qa-db-fra.com

Faire en sorte que les notifications de l'administrateur fonctionnent pour les erreurs de plug-in

Je commence par créer des plugins et je ne comprends pas très bien le processus d'affichage des messages d'erreur. par exemple. J'utilise la fonction php readfile pour télécharger un fichier à partir d'un emplacement caché. Si quelque chose ne va pas, par exemple. le fichier n'est pas trouvé, comment afficher un message à ce moment-là .

Je sais que vous devez utiliser add_action pour 'admin_notices' , mais je ne vois pas très bien où vous êtes censé placer les appels add_action.

Autant que je sache, vous devez créer une fonction my_download_file qui tente le téléchargement et qui renvoie un <div class="error">. Ensuite, "quelque part", vous devez appeler add_action('admin_notices', 'my_download file');.

En lisant la référence d'action , celle-ci est appelée lors de l'impression des admin_notices. Mais est-il toujours appelé ou uniquement lorsque do_action est appelé?

1
icc97

Ce que vous devez faire (comme indiqué dans les commentaires) est d’exécuter votre logique conditionnelle dans la fonction appelée par add_action. Par exemple, vous ajoutez une action au hook admin notices.

L'action s'exécutera, mais les éléments contenus dans le rappel de cette action ne s'exécuteront que si vous le laissez.

add_action( 'admin_notices', 'your_custom_function' );

function your_custom_function() {

    // You need some way to set (or retrieve) the value of your $error here (if not already set)

    if( $error ) {
        // Put everything here
    }

}

Dans un thème, cela se trouve généralement dans votre fichier functions.php ou dans un fichier inclus. Dans un plugin, cela pourrait être dans n'importe quel fichier aussi longtemps qu'il est inclus dans votre fichier de plugin principal.

3
Jared