详解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中常用数组处理方法实例分析
Aug 30 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
php数组中删除元素的实现代码
Jun 22 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
Jun 25 PHP
php验证是否是md5编码的简单代码
Apr 01 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 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全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
js控制input输入字符解析
2013/12/27 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
js的flv视频播放器插件使用方法
2015/06/23 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
使用Angular.js实现简单的购物车功能
2016/11/21 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
python实现端口转发器的方法
2015/03/13 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
党员承诺书内容
2014/03/26 职场文书
六一儿童节演讲稿
2014/05/23 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
Python如何配置环境变量详解
2021/05/18 Python
MySQL 全文索引使用指南
2021/05/25 MySQL