web-dev-qa-db-ja.com

JetpackのPhotonがアクティブかどうかを知る方法は?

プラグインがアクティブかどうかを識別する方法は複数あります( こちらが1つです) しかし、特定のJetPackコンポーネントがアクティブであるかどうかを識別する方法は、たとえば Photon などです。

5
torinagrippa

Jetpack Trunkに新しい機能を追加しました。次のリリースで有効になるはずですJetpack::is_module_active() -

http://plugins.trac.wordpress.org/changeset/716884

それからあなたはただ呼ぶことができます:

 if(class_exists( 'Jetpack')&& Jetpack :: is_module_active( 'contact-form')){} 

少なくとも、次のバージョンがリリースされれば、ユーザーはJetpackをアップデートします。 :)後方互換性を維持したい場合は、次のようにします。

 if(class_exists( 'Jetpack')&& in_array( 'contact-form'、Jetpack :: get_active_modules()){} 

これはオプションを直接問い合わせるよりも少し厄介な方法です。

11

オプション値jetpack_active_modulesを確認しています。

database option value

Wp_optionsでphotonを検索すると、option_nameが見つかりました。


以下は管理者通知としてオプションを表示します。

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>';
}

以下は、すべてのモジュールをアクティブにした結果です。
キー番号はモジュールが有効化された順番になっています。参照として使用しないでください。
ローカルホストインストールでは

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
)
5
brasofilo