PHP:如何比较WordPress版本?

Ivi*_*pić -5 php wordpress

有趣的问题发生在我今天,我无法比较2个版本的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';
Run Code Online (Sandbox Code Playgroud)

哪里弄错了?

我得到-1并且需要1为WordPress版本4.7.2 get_bloginfo()返回什么.

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

小智 7

使用此代码:

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


use*_*ser 7

虽然回答了,但值得注意的是,当前安装的版本也可以通过$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';
} 
Run Code Online (Sandbox Code Playgroud)

此外,考虑到版本被分配到$wp_version/wp-includes/version.php,随后从要求/wp-load.php-说变量已经在全球范围内,所以你可以省略global $wp_version但是你的IDE可能会抱怨(所以不一定推荐)。

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

……或者:

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

有趣的是在/wp-admin/update-core.phpWordPress 中调用get_bloginfo('version')函数:

  • list_core_update
  • core_upgrade_preamble
  • list_plugin_updates
  • after_core_update

...如果调用 get_bloginfo('version')还提供了第二个参数的值,display例如:

  • get_bloginfo('version', 'display')

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

  • add_filter( 'bloginfo_url', 'your_callback' )

...如果返回的版本在使用前被修改并且您依赖于精确和准确的版本阅读,则值得注意。