详解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 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
php 中文和编码判断代码
May 16 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
深入解析PHP中逗号与点号的区别
Aug 05 PHP
php函数指定默认值方法的小例子
Dec 04 PHP
php调用新浪短链接API的方法
Nov 08 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
php使用ftp实现文件上传与下载功能
Jul 21 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
Apr 14 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需登录的文件上传管理系统
2020/03/21 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
php中给js数组赋值方法
2014/03/10 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
Vue.js每天必学之表单控件绑定
2016/09/05 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
可能被忽略的一些JavaScript数组方法细节
2019/02/28 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
Python计算回文数的方法
2015/03/11 Python
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
python网络应用开发知识点浅析
2019/05/28 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
Python3压缩和解压缩实现代码
2021/03/01 Python
英国领先的杂志订阅网站:Magazine.co.uk
2018/01/25 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
文员岗位职责
2013/11/09 职场文书
税务专业毕业生自荐信
2013/11/10 职场文书
员工评语大全
2014/01/19 职场文书
网页美工求职信
2014/02/15 职场文书
文明之星事迹材料
2014/05/09 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
毕业生自荐信范文
2015/03/05 职场文书
各类场合主持词开场白范文集锦
2019/08/16 职场文书
如何用threejs实现实时多边形折射
2021/05/07 Javascript
Python访问Redis的详细操作
2021/06/26 Python
MongoDB数据库之添删改查
2022/04/26 MongoDB
mysql性能优化以及配置连接参数设置
2022/05/06 MySQL