je veux poser une question simple qui que faire si je dois vérifier si un pliugin est installé. par exemple, je veux exécuter un code, qui dit,
si Gutenberg est installé, exécutez le code suivant, sinon.
j'ai créé ce code, mais je ne suis pas sûr que cela fonctionnera ou non.
if(defined('Gutenberg')) {
}
est-ce la bonne façon ou y at-il une autre façon de le faire? Merci d'avance
Vérifier si un plugin est installé est toujours une mauvaise idée car des plugins peuvent être installés mais pour une raison quelconque ne pas fonctionner ou fonctionner de manière différente de celle que vous pourriez espérer.
Par exemple, les types de publication qui ne sont pas exposés dans l'API REST ne peuvent pas être modifiés par gutenberg.
Comme toujours, si vous avez une fonctionnalité qui dépend d'un plugin, vous devez vous connecter à ses actions et à ses filtres pour éviter de deviner s'il est actif ou non (le fait que l'action soit "appelée" est la meilleure indication d'activité) , ou demandez à l'auteur du plug-in d'ajouter le type d'action/de filtre que vous jugeriez utile.
Pour cela, vous pouvez vérifier si une classe ou une fonction spécifique incluse dans le plug-in est définie, avec class_exists()
ou function_exists()
, respectivement.
Pour Gutenberg, vous pouvez vérifier register_block_type()
:
if ( function_exists( 'register_block_type' ) ) {
// Gutenberg is available.
}
Cependant, je me rangerais avec Mark Kaplun pour dire que ce n’est pas une bonne idée dans la plupart des cas et que cela n’est même pas nécessaire si vous suivez les meilleures pratiques.
Si vous voulez interagir avec un plugin, vous devriez le faire via des hooks et des filtres. Peu importe que le plugin soit en cours d'exécution ou non: les hooks ne fonctionneront tout simplement pas.