详解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 09 PHP
php preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
解析dedeCMS验证码的实现代码
Jun 07 PHP
php上传文件并存储到mysql数据库的方法
Mar 16 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
php简单复制文件的方法
May 09 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
CI框架实现框架前后端分离的方法详解
Dec 30 PHP
PHP使用Redis实现防止大并发下二次写入的方法
Oct 09 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 PHP
如何在centos8自定义目录安装php7.3
Nov 28 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导出CSV抽象类实例
2014/09/24 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
定义select的边框颜色
2008/04/28 Javascript
使用jQuery操作Cookies的实现代码
2011/10/09 Javascript
js跑马灯代码(自写)
2013/04/17 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
Vue实现简易计算器
2020/02/25 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
2020/08/25 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
Python实现学校管理系统
2018/01/11 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
python之信息加密题目详解
2019/06/26 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
Django项目uwsgi+Nginx保姆级部署教程实现
2020/04/19 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
Python字典dict常用方法函数实例
2020/11/09 Python
关于老式浏览器兼容HTML5和CSS3的问题
2016/06/01 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
材料加工工程求职信
2014/02/19 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
公司年会主持词范文!
2019/05/07 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL