我近在一个客户网站上工作,这需要我为他的网站创建一个自定义插件。我想向用户隐藏 WordPress 插件,因为他是初学者,并且该插件包含一些运行他的网站的敏感功能。有时,当您的客户雇用您做WordPress技术维护,并且该工作只需要您安装插件时,您可能希望从插件列表中隐藏该插件。您不希望您的客户看到您仅向他/她收取安装插件的费用。
在本教程中,我将向您展示如何轻松地从插件列表中隐藏 WordPress 插件。该插件仍然可以工作,但不会出现在插件列表中。
只需将以下代码片段添加到当前主题的functions.php文件中:
function hide_plugin_trickspanda() {
global $wp_list_table;
$hidearr = array('plugin-directory/plugin-file.php');
$myplugins = $wp_list_table->items;
foreach ($myplugins as $key => $val) {if (in_array($key,$hidearr)) { unset($wp_list_table->items[$key]);}
}
}
add_action('pre_current_active_plugins', 'hide_plugin_trickspanda');
将上面代码中的plugin-directory/plugin-file.php替换为您的插件的目录和文件名。您可以通过单击插件列表中的编辑插件链接来找到此信息。
如果您想从 WordPress 多站点隐藏该插件,那么上面的代码片段不会从网络管理列表中删除该插件。这是适用于 WordPress 多站点的代码片段
function mu_hide_plugins_network( $plugins ) {
// let's hide akismet
if( in_array( 'akismet/akismet.php', array_keys( $plugins ) ) ) {
unset( $plugins['akismet/akismet.php'] );
}
// let's hide Elementor Proif( in_array( 'elementor-pro/elementor-pro.php', array_keys( $plugins ) ) ) { unset( $plugins['elementor-pro/elementor-pro.php'] );}return $plugins;
}
add_filter( 'all_plugins', 'mu_hide_plugins_network' );
我以 Akismet 、Elementor Pro为例。您必须将akismet/akismet.php、elementor-pro/elementor-pro.php替换为您要隐藏的插件的目录和文件名。