PHP:如何比较WordPress版本?

时间:2017-02-28 10:21:14

标签: php wordpress

今天我发生了一些有趣的问题,我无法比较两个版本的WordPress安装。

  

注意:我想比较WordPress版本,而不是PHP版本。

我尝试这样的例子:

if(version_compare(get_bloginfo('version'),'3.5') >= 0)
    echo 'Wordpress Version same or above 3.5';
else
    echo 'Wordpress Version below 3.5';

我犯了错误?

我得到-1,WordPress版本4.7.2需要1,get_bloginfo()返回。

我在本地PHP7中使用,但我的客户端将使用PHP5.6,PHP5.4或者无所事事。

3 个答案:

答案 0 :(得分:7)

使用此代码:

if(version_compare(get_bloginfo('version'),'3.5', '>=') )
   echo 'Wordpress Version same or above 3.5';
else
   echo 'Wordpress Version below 3.5';

答案 1 :(得分:1)

尽管回答了,但值得注意的是,$wp_version全局变量也可以检索当前安装的版本。

global $wp_version;

if ( version_compare($wp_version,'3.5') >= 0) {
    echo 'Wordpress Version same or above 3.5';
} else {
    echo 'Wordpress Version below 3.5';
} 

此外,考虑到该版本已分配给$wp_version中的/wp-includes/version.php中的/wp-load.php,因此该变量已经在全局范围内,因此您可以省略{{ 1}},但是您的IDE可能会抱怨(因此不一定推荐)。

global $wp_version

...或者:

if ( version_compare($wp_version,'3.5') >= 0) {
    echo 'Wordpress Version same or above 3.5';
} else {
    echo 'Wordpress Version below 3.5';
}   

有趣的是if ( version_compare(GLOBALS['wp_version'],'3.5') >= 0) { echo 'Wordpress Version same or above 3.5'; } else { echo 'Wordpress Version below 3.5'; } 中的WordPress在函数中调用/wp-admin/update-core.php

  • get_bloginfo('version')
  • list_core_update
  • core_upgrade_preamble
  • list_plugin_updates

...如果还向调用after_core_update提供了另一个值为get_bloginfo('version')的自变量,例如:

  • display

...然后该值也可以通过以下方式过滤:

  • get_bloginfo('version', 'display')

...值得一提的是,返回的版本在使用前已被修改,因此您依赖精确的版本阅读。

答案 2 :(得分:1)

您也可以尝试这种方式

 if ( version_compare( $GLOBALS['wp_version'], '3.5', '>=' ) ) {
     echo 'Wordpress Version same or above 3.5'; 
 } 
 else{
     echo 'Wordpress Version below 3.5';
 }