少し前からWordPress.orgに登録されているプラグインのページ表記が少し変わって、プラグインをインストール&有効化されている数(Active Installs)が表示されていました。
例えば、僕が作って公開している「Newpost Catch」プラグインのページでは、下の画像の赤枠で囲ってある「Active Installs」の数字が「10,000+」ってなっています。
Active Installs
ちなみに、現在までの累計ダウンロード数は約70,000回ほどです。
ということは「ダウンロード約7回につき1サイトはプラグインを利用してくれている」ってことになるんでしょうかね。ありがたいです。
というわけで、ここまでが前置きで以下が本題です。
プラグインのインストール&有効化されている数は取得できる
この「Active Installs」の数字を取得してWebサイトに表示する方法がありましたのでご紹介します。以下を「functions.php」の最後尾などに追記します。
<?php | |
function plugin_install_count_shortcode( $atts ) { | |
$a = shortcode_atts( array( | |
'plugin' => NULL, | |
), $atts ); | |
if( ! $a['plugin'] ) { | |
return; | |
} | |
if( ( $count = get_transient( 'plugin_install_count-' . $a['plugin'] ) ) ) { | |
return $count; | |
} | |
if( ! function_exists( 'plugins_api' ) ) { | |
include_once ABSPATH . '/wp-admin/includes/plugin-install.php'; | |
} | |
$api = plugins_api( 'plugin_information', array( | |
'slug' => $a['plugin'], | |
'fields' => array( 'active_installs' => true ) | |
) ); | |
if( is_wp_error( $api ) ) { | |
return; | |
} | |
set_transient( 'plugin_install_count-' . $a['plugin'], $api->active_installs, 24 * HOUR_IN_SECONDS ); | |
return $api->active_installs; | |
} | |
add_shortcode( 'plugin_install_count', 'plugin_install_count_shortcode' ); | |
コードがやっていること
上のコードは「plugins_api」を使用して、インストール&有効化している数を取得する流れをショートコード化して、ショートコードのパラメーターにプラグインを指定すれば数字が得られる、っていう仕組みになっていますね。
取得した数字は、Transients APIを使って24時間キャッシュさせています。キャッシュがなくなるとまたAPIにアクセスして取得する、っていう流れです。
ショートコードはこうやって使う
以下は一例として、テンプレートファイルなどにショートコードを書く方法です。
<?php echo do_shortcode( '[plugin_install_count plugin="newpost-catch"]' ); ?>
まとめ
というわけで、自作プラグインをWordPress.orgで配布されている方などを対象にした話題でした。
おまけですが「plugins_api」を使えば、累計ダウンロード数も取得できます。累計ダウンロード数はずいぶん前から取得できるようになっていたそうですね。
自分の作ったプラグインを紹介する際に、例えば「10,000人が使っているWordPressプラグイン!」という具合にうまく表示して、宣伝などにも利用できるのではないかと思います。
このページを共有する