Il existe plusieurs façons d'identifier si un plugin est actif ( en voici un) mais comment pouvons-nous savoir si un composant JetPack spécifique est actif, par exemple Photon ?
Nous venons de valider une nouvelle fonction dans Jetpack Trunk, qui devrait être activée dans la prochaine version, Jetpack::is_module_active()
-
http://plugins.trac.wordpress.org/changeset/716884
Ensuite, vous pouvez simplement appeler:
if (class_exists ('Jetpack') && Jetpack :: is_module_active ('contact-form')) {}
Ou du moins, vous aurez une fois la prochaine version publiée, et l'utilisateur a leur Jetpack mis à jour. :) Si vous souhaitez préserver la compatibilité ascendante, vous pouvez simplement faire:
if (class_exists ('Jetpack') && in_array ('contact-form', Jetpack :: get_active_modules ()) {}
C’est une façon un peu plus ordonnée que d’interroger directement l’option.
Vérification de la valeur de l’option jetpack_active_modules
.
La recherche de photon
dans wp_options est la façon dont j'ai trouvé le option_name
.
Ce qui suit imprime l’option sous forme d’avis d’administrateur:
add_action( 'admin_notices', 'wpse_75103_active_jetpack_modules' );
function wpse_75103_active_jetpack_modules()
{
if( !current_user_can( 'delete_users' ) )
return;
$jetp = get_option( 'jetpack_active_modules' );
$photon_active = ( in_array( 'photon', $jetp ) ) ? 'is' : 'is not';
echo '<h1>Photon ' . $photon_active . ' active</h1>';
echo '<h2>All JetPack Options</h2>';
echo '<pre>' . print_r( $jetp, true ) . '</pre>';
}
Voici le résultat avec tous les modules activés.
Les numéros de clé sont dans l’ordre dans lequel les modules ont été activés et ne doivent pas être utilisés comme référence .
( dans une installation d'hôte local )
Array
(
[0] => vaultpress
[1] => photon
[3] => notes
[5] => publicize
[7] => stats
[9] => comments
[11] => subscriptions
[13] => post-by-email
[15] => carousel
[17] => sharedaddy
[19] => after-the-deadline
[21] => infinite-scroll
[23] => enhanced-distribution
[25] => json-api
[27] => mobile-Push
[29] => widgets
[31] => latex
[33] => gravatar-hovercards
[35] => contact-form
[37] => minileven
[39] => custom-css
[41] => shortcodes
[43] => shortlinks
)