详解WordPress中提醒安装插件以及隐藏插件的功能实现
程序员文章站
2023-08-20 21:38:02
提醒用户当前主题需要的插件
很多主题都需要一些插件的支持,这时你就需要提醒用户需要安装的插件,本文将教你,怎么在后台显眼的位置提醒用户当前主题要安装的插件。
最终的效果...
提醒用户当前主题需要的插件
很多主题都需要一些插件的支持,这时你就需要提醒用户需要安装的插件,本文将教你,怎么在后台显眼的位置提醒用户当前主题要安装的插件。
最终的效果类似下图:
只需要用 admin_notices 钩子,在后台标题下边输出一个警告框,再用 is_plugin_active() 函数判断插件是否启用即可。
/** *wordpress 提醒用户当前主题需要的插件 *http://www.endskin.com/plugins-messages/ */ function bing_plugins_messages(){ $plugin_messages = array(); include_once( abspath . 'wp-admin/includes/plugin.php' ); //必须安装 wordpress seo 插件 if( !is_plugin_active( 'wordpress-seo/-seo.php' ) ) $plugin_messages[] = '当前主题要求必须安装并启用 wordpress seo 插件,<a href="http://wordpress.org/plugins/wordpress-seo/" target="_blank">点击下载此插件</a>'; //必须安装 simple urls 插件 if( !is_plugin_active( 'simple-urls/plugin.php' ) ) $plugin_messages[] = '当前主题要求必须安装并启用 simple urls 插件,<a href="http://wordpress.org/plugins/simple-urls/" target="_blank">点击下载此插件</a>'; //必须安装 bing phone 插件 if( !is_plugin_active( 'bing-phone/bing-phone.php' ) ) $plugin_messages[] = '当前主题要求必须安装并启用 bing-phone 插件,<a href="http://www.bgbk.org/wp-theme-bing-phone.html" target="_blank">点击下载此插件</a>'; if( count( $plugin_messages ) > 0 ){ echo '<div id="message" class="error">'; foreach( $plugin_messages as $message ) echo '<p><strong>' . $message . '</strong></p>'; echo '</div>'; } } add_action( 'admin_notices', 'bing_plugins_messages' );
在插件列表隐藏某些插件
在给客户开发 wordpress 网站的时候,通常都会给客户一个管理员账户,所以客户完全有能力修改网站的主题、插件、用户和一些关键设置。
但有些时候用户会不小心做出一些误操作,比如停用了必须的插件,针对这种情况,我们可以把某些插件在插件列表中隐藏,而实际上插件还是在正常运行的。
下边的代码在插件列表隐藏了 wp crontrol 和 user switching 两个插件,在插件停用的时候依然可以看到插件,只有插件启用时插件才会被从列表中隐藏。
/** *wordpress 在插件列表隐藏某些插件 *http://www.endskin.com/hide-plugins/ */ function bing_hide_plugins( $plugins ){ //隐藏 wp crontrol 插件 $plugin = 'wp-crontrol/wp-crontrol.php'; if( is_plugin_active( $plugin ) ) unset( $plugins[$plugin] ); //隐藏 user switching 插件 $plugin = 'user-switching/user-switching.php'; if( is_plugin_active( $plugin ) ) unset( $plugins[$plugin] ); return $plugins; } add_filter( 'all_plugins', 'bing_hide_plugins' );