は、私の知る限りでは唯一のWordPress APIで管理者としてのプラグインを指定する方法はありません。私が知っている唯一のプラグインの種類は、 '使用する必要があります'、 'ネットワーク活性化'(マルチユーザーサイト用)、 'アクティブ'なので、管理プラグインも非管理モードで読み込まれると思います。プラグインはwp-settings.phpに読み込まれます。コードを読んだところ、WordPressはプラグインの読み込みに関する限り、管理モードと非管理モードを区別していないようです。関連するコードは次のとおりです。もちろん
// Load must-use plugins.
foreach (wp_get_mu_plugins() as $mu_plugin) {
include_once($mu_plugin);
}
unset($mu_plugin);
// Load network activated plugins.
if (is_multisite()) {
foreach (wp_get_active_network_plugins() as $network_plugin) {
wp_register_plugin_realpath($network_plugin);
include_once($network_plugin);
}
unset($network_plugin);
}
...
// Load active plugins.
foreach (wp_get_active_and_valid_plugins() as $plugin) {
wp_register_plugin_realpath($plugin);
include_once($plugin);
}
unset($plugin);
function wp_get_mu_plugins() {
$mu_plugins = array();
if (!is_dir(WPMU_PLUGIN_DIR))
return $mu_plugins;
if (! $dh = opendir(WPMU_PLUGIN_DIR))
return $mu_plugins;
while (($plugin = readdir($dh)) !== false) {
if (substr($plugin, -4) == '.php')
$mu_plugins[] = WPMU_PLUGIN_DIR . '/' . $plugin;
}
closedir($dh);
sort($mu_plugins);
return $mu_plugins;
}
function wp_get_active_network_plugins() {
$active_plugins = (array) get_site_option('active_sitewide_plugins', array());
if (empty($active_plugins))
return array();
$plugins = array();
$active_plugins = array_keys($active_plugins);
sort($active_plugins);
foreach ($active_plugins as $plugin) {
if (! validate_file($plugin) // $plugin must validate as file
&& '.php' == substr($plugin, -4) // $plugin must end with '.php'
&& file_exists(WP_PLUGIN_DIR . '/' . $plugin) // $plugin must exist
)
$plugins[] = WP_PLUGIN_DIR . '/' . $plugin;
}
return $plugins;
}
function wp_get_active_and_valid_plugins() {
$plugins = array();
$active_plugins = (array) get_option('active_plugins', array());
// Check for hacks file if the option is enabled
if (get_option('hack_file') && file_exists(ABSPATH . 'my-hacks.php')) {
_deprecated_file('my-hacks.php', '1.5.0');
array_unshift($plugins, ABSPATH . 'my-hacks.php');
}
if (empty($active_plugins) || wp_installing())
return $plugins;
$network_plugins = is_multisite() ? wp_get_active_network_plugins() : false;
foreach ($active_plugins as $plugin) {
if (! validate_file($plugin) // $plugin must validate as file
&& '.php' == substr($plugin, -4) // $plugin must end with '.php'
&& file_exists(WP_PLUGIN_DIR . '/' . $plugin) // $plugin must exist
// not already included as a network plugin
&& (! $network_plugins || ! in_array(WP_PLUGIN_DIR . '/' . $plugin, $network_plugins))
)
$plugins[] = WP_PLUGIN_DIR . '/' . $plugin;
}
return $plugins;
}
確実に知るための最も簡単な方法は、容疑者プラグインでWordPressのインストール時にフロントエンドページをロードすることであり、それはロードかどうかを確認するためにデバッガを使用します。プラグインは、管理者の使用を意図した場合にも
、唯一のプラグインの作者は、ちょうどメインのプラグインファイルの先頭に
if (! is_admin()) {
return;
}
を持つことができます。したがって、プラグインは本質的に読み込まれません。
私の知る限りでは、管理プラグインはAdmin Dashboardのような管理者用のもので、フロントエンドとは何の関係もないので、ブログのようにフロントエンドに読み込まれません。それがフロントエンドと何か関係がない限り:) – Manjunath