详解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 相关文章推荐
初学CAKEPHP 基础教程
Nov 02 PHP
PHP版 汉字转码的实现详解
Jun 09 PHP
php中explode函数用法分析
Nov 15 PHP
PHP实现从远程下载文件的方法
Mar 12 PHP
PHP借助phpmailer发送邮件
May 11 PHP
php生成固定长度纯数字编码的方法
Jul 09 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
使用Yii2实现主从数据库设置
Nov 20 PHP
浅谈PHP中pack、unpack的详细用法
Mar 12 PHP
PHP实现获取url地址中顶级域名的方法示例
Jun 05 PHP
PHP设计模式之命令模式示例详解
Dec 20 PHP
PHP队列场景以及实现代码实例详解
Feb 26 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下实现农历日历的代码
2007/03/07 PHP
zend api扩展的php对象的autoload工具
2011/04/18 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
sql注入与转义的php函数代码
2013/06/17 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
angularjs中的单元测试实例
2014/12/06 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
JavaScript循环_动力节点Java学院整理
2017/06/28 Javascript
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
Vue-cli打包后部署到子目录下的路径问题说明
2020/09/02 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
python原始套接字编程示例分享
2014/02/21 Python
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
python数据结构之二叉树的建立实例
2014/04/29 Python
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
Python制作爬虫抓取美女图
2016/01/20 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
外企财务年会演讲稿
2014/01/03 职场文书
物流仓管员工作职责
2014/01/06 职场文书
会计顶岗实习心得
2014/01/25 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
公务员处分决定书
2015/06/25 职场文书