详解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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
PHP自动更新新闻DIY
Oct 09 PHP
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
解密ThinkPHP3.1.2版本之模板继承
Jun 19 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
PHP邮件发送类PHPMailer用法实例详解
Sep 22 PHP
PHP提高编程效率的20个要点
Sep 23 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
thinkPHP5.0框架应用请求生命周期分析
Mar 25 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
PHP 实现链式操作
Mar 09 PHP
一文搞懂PHP中的抽象类和接口
May 25 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
解析argc argv在php中的应用
2013/06/24 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP的cookie与session原理及用法详解
2019/09/27 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
Javascript 判断 object 的特定类转载
2007/02/01 Javascript
javascript 年月日联动实现核心代码
2009/12/21 Javascript
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
2010/06/21 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
gulp解决跨域的配置文件问题
2017/06/08 Javascript
vue移动端模态框(可传参)的实现
2019/11/20 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
使用python 爬虫抓站的一些技巧总结
2018/01/10 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
运动会解说词50字
2014/01/18 职场文书
高二英语教学反思
2014/01/19 职场文书
计算机专业职业规划
2014/02/28 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
三好学生事迹材料
2014/12/24 职场文书
八年级英语教学计划
2015/01/23 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python