PR

【WordPress】サイトネットワークで有効化しているプラグインを一覧表示するショートコード【マルチサイト】

カスタマイズ サイトネットワークで有効化しているプラグイン一覧を表示 カスタマイズ

WordPressをマルチサイト化すると、ひとつの管理画面で複数のサイトを運用することができます。

複数サイトを一括で管理できるので便利なのですが、たくさんのサイトを運用していくと管理が大変です。

ということでマルチサイトのサイトネットワークで有効化しているプラグイン一覧を表示させるためのショートコードを作成しました。

このコードはチャットGPTと一緒に作りました。

当サイトのチャットGPTは、無料版のチャットGPT(GPT-3.5)を指します。

完成後のイメージ

完成後のイメージはこちらです。マルチサイト上にショートコードを貼り付ける必要があります。

サイトネットワークで有効化しているプラグイン一覧

マルチサイトで有効化しているプラグインはこちらです。

マルチサイトのインストール済プラグイン
左に青色の帯が付いているのがサイトネットワークで有効化しているプラグイン(2つ)です

コードの紹介

早速コードを紹介します。こちらのコードはマルチサイト専用です。

/*-------------------------------------------*/
/* サイトネットワークで有効化しているプラグインを表示する */
/*-------------------------------------------*/
function display_network_plugins_shortcode() {
	// ネットワークで有効化されているプラグインの情報を取得
	$network_plugins = get_site_option('active_sitewide_plugins');

	if (empty($network_plugins)) {
		return 'サイトネットワークで有効化しているプラグインはありません';
	}

	// プラグイン一覧を表示
	$output = '<ul>';
	foreach ($network_plugins as $plugin_path => $timestamp) {
		$plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_path);
		$output .= '<li>' . esc_html($plugin_data['Name']) . '</li>';
	}
	$output .= '</ul>';

	return $output;
}
// ショートコードを追加
add_shortcode('display_network_plugins', 'display_network_plugins_shortcode');

使い方

まずはfunctions.phpに紹介したコードを貼り付けます。

次に固定ページでも投稿ページでもどこでもいいのでショートコード[display_network_plugins]を貼り付けます。

更新したサイトを確認するとリスト形式でサイトネットワークで有効化しているプラグインの名前が表示されます。

サイトネットワークで有効化しているプラグインがなければサイトネットワークで有効化しているプラグインはありませんと表示されます。

コードを貼り付けるサイトについては、マルチサイトであればどのサイトのfunctions.phpに貼り付けても問題ないはずです。コードを貼り付けたサイト内にショートコードを追加する必要はあります。

簡単な解説

6行目

$network_plugins = get_site_option('active_sitewide_plugins');

でプラグイン情報を集めています。

14~17行目

foreach ($network_plugins as $plugin_path => $timestamp) {
	$plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin_path);
	$output .= '<li>' . esc_html($plugin_data['Name']) . '</li>';
}

でサイトネットワークで有効化しているプラグインをすべて表示させています。

23行目

add_shortcode('display_network_plugins', 'display_network_plugins_shortcode');

でショートコードを作成しています。display_network_pluginsを変更するとショートコードの名前を変えることができます。

例えば、ショートコードの名前を[multisite_plugin]にしたいときは、23行目を

add_shortcode('multisite_plugin', 'display_network_plugins_shortcode');

にします。

ショートコードの名前を変えられてうれしい♪

まとめ

マルチサイトのサイトネットワークで有効化しているプラグインが知りたいときがあったのでチャットGPTと一緒に作ってみました。

マルチサイトで大量のサイトを運用していれば需要はあると思いますが、ほとんどの人は使わないと思います。

追記

今回紹介したコードをさらに改造しました。

タイトルとURLをコピーしました