How to determine wordpress version in a plugin or code

Often when developing plugins or scripts that need to support new features and older versions of wordpress it is neccessery to determine the currently running version of a wordpress install. There are a number of ways to do this, although i believe the solution that i offer up is the best to future proof your code. Often developers will use complex string position or regular expression manipulation to determine version numbers. This is not nessacery, we simply need to write a function to covert the  $wp_version; variable from a string to a floating point number ( a decimal number ) then we are able to do regular PHP value comparison:

Old way

PHP
1
2
3
<pre><code>// Check version.</code></pre>
<pre><code>global $wp_version;</code></pre>
<pre><code>if ( strpos($wp_version, '2.7') !== false || strpos($wp_version, '2.8') !== false || strpos($wp_version, '2.9') !== false ) {  </code><span class="Apple-style-span" style="font-family: monospace;"> // do stuff </span><span class="Apple-style-span" style="font-family: monospace;">} elseif ( strpos($wp_version, '2.5') !== false || strpos($wp_version, '2.6') !== false ) { // do stuff  </span><span class="Apple-style-span" style="font-family: monospace;">} elseif ( strpos($wp_version, '2.3') !== false ) { // do stuff } elseif ( strpos($wp_version, '2.2') !== false || strpos($wp_version, '2.1') !== false || strpos($wp_version, '2.0') !== false ) { // do stuff } else { // do stuff }</span></pre>

New way

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<pre>/**
* @method wordpress_version
* @description returns the current wordpress version as a float number
*/
function wordpress_version() {
global $wp_version;
if( strpos($wp_version, '.') &lt; strpos($wp_version,',') ) {
$wp_version = str_replace('.','',$wp_version);
$wp_version = strtr($wp_version,',','.');
}
else {
$wp_version = str_replace(',','',$wp_version);
}
return (float)$wp_version;
}</pre>
<pre>if( wordpress_version() &gt; 3 )
// do stuff
if( wordpress_version() &gt; 3.2 )
// do stuff
if( wordpress_version() &lt; 3 )
// do stuff</pre>
<pre>

Leave a Reply