创客百科

姿势共享,有节操无门槛参与的创客百科,创客动力之源 \ (^_^) /

用户工具

站点工具


note:spoony:wordpress-检测某个插件是否已经启用

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

note:spoony:wordpress-检测某个插件是否已经启用 [2017/02/17 23:43]
Spoony 创建
note:spoony:wordpress-检测某个插件是否已经启用 [2017/02/17 23:45] (当前版本)
Spoony
行 1: 行 1:
 ====== WordPress 检测某个插件是否已经启用 ====== ====== WordPress 检测某个插件是否已经启用 ======
 +<​code>​
 +使用 is_plugin_active() 进行检测
  
-使用Wordpress朋友可能遇到这样的问题在非single.php页面中我们有时候想调用当前文章标题、内容等信息,而Wordpress在生成文章页的时候在各个页中唯一不变只有当前文章ID,那么何这个ID获取到当前标题、内容等信息呢?+is_plugin_active() 函数是专门用来检测插件是否已经安装并启用的,使用的方法很简单只需要添加对应的插件的主文件路径即可: 
 +if(!is_plugin_active( '​wordpress-popular-posts/​wordpress-popular-posts.php' )) 
 +
 + echo '需显示的内容'; 
 +
 +面的代码作用就是:果没有启用 WordPress Popular Posts,就显示一段提醒字。’wordpress-popular-posts/​wordpress-popular-posts.php’ 就是 WordPress Popular Posts 插件主文件的路径。
  
-以通过下面的代码实现:+有些时候,is_plugin_active() 没办法检测到插件,你能需要在前导入WordPress的 plugin.php 文件,样例如下
  
-<​code>​ +include_once( ABSPATH . 'wp-admin/includes/plugin.php'​ ); 
-<?php +if(!is_plugin_active( '​wordpress-popular-posts/​wordpress-popular-posts.php'​ )) 
-$id='​14'//文章的ID + { 
-$title = get_post($id)->​post_title;​ + echo '​需要显示内容';​ 
-echo $title;//​输出文章标题 + } 
-?>+检测 Class 是否存在(class_exists)
  
-其他信息可以通过改变get_post($id)->​post_title中的post_title来实现: +我们可以通过 ​class_exists 函检测插件某个类Class是否存在,从而达到检测目。前提是你需要查看插件源代码,找到某个特有的Class类。比如检测 WooCommerce 是否启用: 
-post_author:(整)文章作者编号 + 
-post_data:字符文章发表日期和时间(YYYY-MM-DD HH-MM-SS) +if (class_exists('​Woocommerce'​)) {  
-post_data_gmt:(字符)文章发表格林尼治标准时间(GMT) (YYYY-MM-DD HH-MM-SS) + echo '​Woocommerce is actived';​ 
-post_content(字符)文章内容 +
-post_title:字符文章标题 +检测命名常量是否已定义 
-post_category:整数文章类别的编号注意:该值在WordPress 2.1之后的版本总为0。定义文章的类别时可使用 ​get_the_category()函数。 + 
-post_excerpt(字符)文章摘要 +可以使用 defined 检测插件的命名常量Named Constant是否已定义defined)。比如检测是否定义了 NextGen 插件的 NEXTGEN_GALLERY_PLUGIN_VERSION 常量,如果已定义,说明该插件已启用,接着再检测 NextGen ​版本是否 大于或等于 2.0.0 : 
-post_status:(字符)文章状态(publish|pending|draft|private|static|object|attachment|inherit|future) + 
-comment_status:(字符)评论状态(open|closed|registered_only) +if ( defined('​NEXTGEN_GALLERY_PLUGIN_VERSION'​) ) { 
-ping_status:(字符)pingback/​trackback状态(open|closed) + return version_compare(NEXTGEN_GALLERY_PLUGIN_VERSION,​ '​2.0.0'​) >= 0; 
-post_password:(字符)文章密码 +
-post_name:(字符)文章的URL嵌套 +检测函数名是否存在 
-to_ping:(字符)引用URL链接 + 
-pinged:(字符)引用的链接 +使用 ​function_exists ​函数检测插件特有的某个函数名是否存在,比如检测 Hello Dolly 插件特有的函数名 hello_dolly_get_lyric 是否存在: 
-post_modified:(字符)文章最后修改间(YYYY-MM-DD HH-MM-SS) + 
-post_modified_gmt:(字符)文章最后修改GMT时间(YYYY-MM-DD HH-MM-SS) +if ( function_exists( '​hello_dolly_get_lyric'​ ) ) { 
-post_parent:(整数)父级章编号(供附等) +小结 
-guid:字符文章一个链接注意:不能将GUID作永久链接(虽然在2.5之前的版中它的确被当作永久链接),也能将它作为文章可用链接GUID是种独有标识符,只目前恰巧成为文章的一个链接。 + 
-post_type:(字符)(日志 | 页面 | 附) +is_plugin_active() 需知道插件安装目录和主文件,通常情况下,这是比较可靠的。但是如果有人通FTP上传安装插件修改了插件的文件夹名称,就没办法了,当然,这只是概率很低的情况。 
-post_mime_type:(字符)Mime类型(供附等) +通过 class_exists 检测插件特有的类class是否存在,也是非常可靠的。一个插件一旦添加了某个类,是基本不会再修改的。麻烦的是,你需要浏览插件源代码找到是否存在独无二的类。 
-comment_count:(整)评论总+通过 defined 检测插的命名常量是否存在,以及比对常量值,这个方法可以检测到插的版本号,这样,如果用户使用的插件版本太低,就可以进行相关提示。 
 +通过 function_exists 检测某个插件特有的函是否存在,也是可行的,但是如果开发者修改了该函名,就行不通了。 
 +所以,具体要选择什么方法,根据自己的需要进行选择吧。
 </​code>​ </​code>​
 +
 +参考资料:http://​themergency.com/​wordpress-tip-how-to-check-if-a-plugin-is-active/​
note/spoony/wordpress-检测某个插件是否已经启用.txt · 最后更改: 2017/02/17 23:45 由 Spoony