Je travaille sur un thème personnalisé en utilisant ACF. Je voudrais vérifier si le plugin est actif ou non. J'utilise ce code:
<?php include_once( ABSPATH . 'wp-content/plugins/advanced-custom-fields-pro/acf.php' );
if ( is_plugin_active( 'advanced-custom-fields-pro/acf.php' ) ) {
echo "hi";
} ?>
Cependant, j'obtiens l'erreur suivante:
Erreur fatale: appel de la fonction non définie is_plugin_active () dans /Users/johann/htdocs/clarity_v21/wp-content/themes/clarity/templates/header.php à la ligne 21
Des idées ce qui pourrait être le problème?
Donc, sur la base de la réponse fournie, j'ai essayé:
if( class_exists('acf') ) {
if (($header_style)=='style2') {
}
et cela a fonctionné! La solution consiste donc essentiellement à essayer de trouver une classe liée au plug-in que vous essayez de vérifier. Dans ce cas, la classe "acf" est spécifique au plug-in Advanced Custom Fields et ne m'a permis d'exécuter la conditionnelle que si le plug-in était actif.
Essayez de vérifier class_exists :
<?php
if( class_exists('acf') ) {
echo "hi";
}
?>
is_plugin_active()
uniquement disponible dans la zone d'administration. Vous devez inclure le fichier plugin.php
de base au début pour utiliser cette fonction.
De WordPress documentation
REMARQUE: défini dans wp-admin/includes/plugin.php, il est donc uniquement disponible dans les pages d'administration et toute référence à cette fonction doit être connectée à admin_init ou à une action ultérieure. Si vous souhaitez utiliser cette fonction à partir d'un modèle, vous devez demander manuellement plugin.php. Vous trouverez un exemple ci-dessous.
Donc ce sera comme
<?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if ( is_plugin_active( 'advanced-custom-fields-pro/acf.php' ) ) {
echo "hi";
} ?>