详解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 配置文件中open_basedir选项作用
Jul 19 PHP
php一个找二层目录的小东东
Aug 02 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
php漏洞之跨网站请求伪造与防止伪造方法
Aug 15 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
Yii2框架实现数据库常用操作总结
Feb 08 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
PHP echo()函数讲解
Feb 15 PHP
关于Yii中模型场景的一些简单介绍
Sep 22 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 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个人网站架设连环讲(三)
2006/10/09 PHP
ThinkPHP调试模式与日志记录概述
2014/08/22 PHP
PHP利用imagick生成组合缩略图
2016/02/19 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
Prototype使用指南之string.js
2007/01/10 Javascript
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
JS实现的3D拖拽翻页效果代码
2015/10/31 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
vuex页面刷新后数据丢失的方法
2019/01/17 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
python3 模拟登录v2ex实例讲解
2017/07/13 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
使用Python的toolz库开始函数式编程的方法
2018/11/15 Python
Python PyQt5整理介绍
2020/04/01 Python
HTML5中的拖放实现详解
2017/08/23 HTML / CSS
高级护理专业大学生求职信
2013/10/24 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
给物业的表扬信
2014/01/21 职场文书
财务简历的自我评价
2014/03/05 职场文书
推广普通话演讲稿
2014/05/23 职场文书
公司授权委托书范文
2014/09/21 职场文书
小学校长个人总结
2015/03/03 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers
如何利用python实现列表嵌套字典取值
2022/06/10 Python
Flink 侧流输出源码示例解析
2022/09/23 Servers