详解WordPress中提醒安装插件以及隐藏插件的功能实现


Posted in PHP onDecember 25, 2015

提醒用户当前主题需要的插件
很多主题都需要一些插件的支持,这时你就需要提醒用户需要安装的插件,本文将教你,怎么在后台显眼的位置提醒用户当前主题要安装的插件。

最终的效果类似下图:

详解WordPress中提醒安装插件以及隐藏插件的功能实现

只需要用 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' );
PHP 相关文章推荐
php笔记之常用文件操作
Oct 12 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 PHP
初识php MVC
Sep 10 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
Laravel 5框架学习之子视图和表单复用
Apr 09 PHP
PHP浮点数精度问题汇总
May 13 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
Dec 11 PHP
PHP的PDO操作简单示例
Mar 30 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
YII框架行为behaviors用法示例
Apr 26 PHP
PHP swoole和redis异步任务实现方法分析
Aug 12 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 #PHP
smarty高级特性之对象的使用方法
Dec 25 #PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 #PHP
smarty高级特性之过滤器的使用方法
Dec 25 #PHP
WordPress中编写自定义存储字段的相关PHP函数解析
Dec 25 #PHP
PHP加密解密实例分析
Dec 25 #PHP
PHP时间类完整实例(非常实用)
Dec 25 #PHP
You might like
php 设计模式之 单例模式
2008/12/19 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
红米手机抢购的js代码
2014/03/10 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
Webpack 4如何动态切割JS注入文件名详解
2019/07/09 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python远程登录代码
2008/04/29 Python
Python tkinter事件高级用法实例
2018/01/31 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
python实现xlwt xlrd 指定条件给excel行添加颜色
2020/07/14 Python
python 贪心算法的实现
2020/09/18 Python
pandas针对excel处理的实现
2021/01/15 Python
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
Gap工厂店:Gap Factory
2017/11/02 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
行政经理的岗位职责
2013/11/23 职场文书
旷课检讨书3000字
2014/02/04 职场文书
项目总经理岗位职责
2014/02/14 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
办公室个人总结
2015/02/28 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书