
Table of Contents
WordPress PHP Statistic Insights
- WordPress 1.0.0 (2004-01) wants PHP 4.0.6 (2001-06) minimum.
- WordPress 1.2.0 (2004-05) wants PHP 4.1.0 (2001-12) minimum.
- WordPress 2.2.0 (2007-05) wants PHP 4.2.0 (2002-04) minimum.
- WordPress 2.5.0 (2008-03) wants PHP 4.3.0 (2002-12) minimum.
- WordPress 3.2.0 (2011-07) wants PHP 5.2.4 (2007-08) minimum.
- WordPress 5.2.0 (2019-05) wants PHP 5.6.20 (2016-03) minimum.
- WordPress 6.3.0 (2023-08) wants PHP 7.0.0 (2015-12) minimum.
- WordPress 6.6.0 (2024-07) wants PHP 7.2.24 (2019-10) minimum.
Notice that WordPress 2.5.0 seems to be when the fast-pace keeping up with the latest PHP releases has been officially decoupled.
A good choice, thank you, because forcing many-many minor PHP (runtime layer) upgrades to apply WordPress (application layer) fixes should be an environment owners choice; able to be planned, scheduled, executed in alignment with the websites owners outage window policies.
Decoupling runtime (PHP) from application (WordPress) updates has clear benefits; like reduced regression testing scope for all applications in that runtime environment and smaller outage windows that minimise service interruption (a brand reputation factor).
The official WordPress PHP statistics tells a short story (November 2024).

Unfortunately, only reporting PHP statistics for WordPress >= 3.2.0.
Which skews reporting % distribution (a little) by not including >= PHP 4.3.
These WordPress PHP Statistics do not appear to cover the WordPress 3.0.0 to 3.1.4 PHP minimum requirements (>= PHP 4.3.0).
Does ~0.5 million websites out of ~493 million, skew it enough to matter?
WordPress PHP Installations – Version by % Table (2024-11)
Version Installations (%)
8.4 0.02%
8.3 4.92%
8.2 21.24%
8.1 19.47%
8.0 9.82%
7.4 33.23%
7.3 3.30%
7.2 2.77%
7.1 0.70%
7.0 1.12%
5.6 2.28%
5.5 0.26%
5.4 0.31%
5.3 0.39%
5.2 0.17%
5.1 (unknown)
5.0 (unknown)
4.4 (unknown)
4.3 (unknown)
- With PHP 4.3 to 4.4 on (unknown) million websites.
- With PHP 5.0 to 5.1 on (unknown) million websites.
- With PHP 5.2 to 5.5 on ~5.571 million websites (~1.13%).
- With PHP 5.6 to 5.6 on ~11.240 million websites (~2.28%).
- With PHP 7.0 to 7.4 on ~202.722 million websites (~41.12%).
- With PHP 8.0 to 8.4 on ~273.467 million websites (~55.47%).
With ~5.571 million PHP <= 5.5 WordPress websites officially not supported.
WordPress Plugin Development Considerations
What major features do WordPress Plugin developers need to consider as a core suite of WordPress and PHP capability to rely on, as a minimum?
One perspective … PHP classes do not really become practical until the private, protected and public scope visibility for members and methods is available (a 2 cent opnion).
- Consider >= WordPress 3.2.1 (2011-07) minimum.
- Consider >= PHP 5.2.4 (2007-08) minimum.
Here are a few notable features used during WordPress plugin development.
- PHP 1.99s (1996-05) for array() function to declare instance.
- PHP 1.99s (1996-05) for array[{#|’name’}] syntax for named-array.
- PHP 1.99s (1996-05) for break statement.
- PHP 1.99s (1996-05) for count() function.
- PHP 1.99s (1996-05) for echo command.
- PHP 1.99s (1996-05) for exit() function (no parameter).
- PHP 1.99s (1996-05) for fputs() function.
- PHP 1.99s (1996-05) for global command.
- PHP 1.99s (1996-05) for include command.
- PHP 1.99s (1996-05) for isset() function.
- PHP 1.99s (1996-05) for null variable value.
- PHP 1.99s (1996-05) for return statement.
- PHP 1.99s (1996-05) for static variable statement.
- PHP 1.99s (1996-05) for strstr() function.
- PHP 1.99s (1996-05) for strtolower() function.
- PHP 1.99s (1996-05) for substr() function.
- PHP 1.99s (1996-05) for unset() function.
- PHP 3.0.0 (1998-06) for ‘.’ and ‘.=’string concatenation operators.
- PHP 3.0.0 (1998-06) for __FILE__ magic constant.
- PHP 3.0.0 (1998-06) for __LINE__ magic constant.
- PHP 3.0.0 (1998-06) for class command (public scope).
- PHP 3.0.0 (1998-06) for dirname() function.
- PHP 3.0.0 (1998-06) for empty() function.
- PHP 3.0.0 (1998-06) for error_log() function.
- PHP 3.0.0 (1998-06) for exit() function (with parameter).
- PHP 3.0.0 (1998-06) for extends command (public scope).
- PHP 3.0.0 (1998-06) for is_array() function.
- PHP 3.0.0 (1998-06) for is_integer() function.
- PHP 3.0.0 (1998-06) for trim(), ltrim(), rtrim() functions.
- PHP 3.0.7 (1999-03) for ignore_user_abort() function.
- PHP 4.0.0 (2000-05) for === and !== operators.
- PHP 4.0.0 (2000-05) for [] array short syntax.
- PHP 4.0.0 (2000-05) for die() function.
- PHP 4.0.0 (2000-05) for foreach command.
- PHP 4.0.0 (2000-05) for function_exists() function.
- PHP 4.0.0 (2000-05) for fwrite() function.
- PHP 4.0.0 (2000-05) for include_once() function.
- PHP 4.0.0 (2000-05) for preg_replace() function.
- PHP 4.0.0 (2000-05) for require_once() function.
- PHP 4.0.4 (2000-12) for =& new class reference assignment.
- PHP 4.0.4 (2000-12) for is_null() function.
- PHP 4.1.0 (2001-12) for version_compare() function.
- ——————-
- PHP 4.3.0 (2002-12) minimum for WordPress >= 2.5.0 (2008-03).
- PHP 4.3.0 (2002-12) for __CLASS__ magic constant.
- PHP 4.3.0 (2002-12) for __FUNCTION__ magic constant.
- PHP 4.3.0 (2002-12) for debug_backtrace() function.
- PHP 5.0.0 (2004-07) for __METHOD__ magic constant.
- PHP 5.0.0 (2004-07) for abstract modifier.
- PHP 5.0.0 (2004-07) for const modifier.
- PHP 5.0.0 (2004-07) for final modifier.
- PHP 5.0.0 (2004-07) for implements command.
- PHP 5.0.0 (2004-07) for interface command.
- PHP 5.0.0 (2004-07) for private scope.
- PHP 5.0.0 (2004-07) for protected scope.
- PHP 5.0.0 (2004-07) for public scope.
- PHP 5.0.0 (2004-07) for use command.
- ——————-
- PHP 5.2.4 (2007-08) minimum for WordPress >= 3.2.1 (2011-07).
- PHP 5.3.0 (2009-06) for __DIR__ magic constant.
- PHP 5.3.0 (2009-06) for __NAMESPACE__ magic constant.
- PHP 5.3.0 (2009-06) for namespace command.
- PHP 5.4.0 (2012-02) for __TRAIT__ magic constant.
- PHP 5.4.0 (2012-02) for trait command.
- ——————-
- PHP 5.6.20 (2016-03) minimum for WordPress >= 5.2.0 (2019-05).
- ——————-
- PHP 7.0.0 (2015-12) minimum for WordPress >= 6.3.0 (2023-08).
- PHP 7.0.0 (2015-12) for null coalescing operator (??).
- ——————-
- PHP 7.2.24 (2019-10) minimum for WordPress >= 6.6.0 (2024-07).
- PHP 8.0.0 (2020-11) for new class with arbitrary expression.
- PHP 8.0.0 (2020-11) for trait private abstract method define.
- PHP 8.2.0 (2022-12) for readonly class modifer.
- PHP 8.2.0 (2022-12) for trait constant member define.
- WordPress 1.0.0 (2004-01) for apply_filters() function.
- WordPress 1.0.0 (2004-01) for $wpdb::get_results() method.
- WordPress 1.2.0 (2004-05) for add_action() function.
- WordPress 1.2.0 (2004-05) for check_admin_referer() function.
- WordPress 1.2.0 (2004-05) for do_action() function.
- WordPress 1.2.0 (2004-05) for plugin capability.
- WordPress 1.5.0 (2005-02) for admin_menu hook.
- WordPress 1.5.0 (2005-02) for load_plugin_textdomain() function.
- WordPress 1.5.0 (2005-02) for Options API.
- WordPress 1.5.0 (2005-02) for plugins_loaded hook.
- WordPress 1.5.1 (2005-05) for is_admin() function.
- WordPress 2.0.0 (2005-12) for current_user_can() function.
- WordPress 2.0.4 (2005-12) for wp_die() function.
- WordPress 2.1.0 (2007-01) for __() function.
- WordPress 2.1.0 (2007-01) for admin-ajax.php feature.
- WordPress 2.1.0 (2007-01) for WP_Error class.
- WordPress 2.3.0 (2007-09) for wpdb::prepare() method.
- ——————-
- WordPress 2.5.0 (2008-03) requires PHP >= 4.3.0 (2002-12).
- WordPress 2.5.0 (2008-03) for admin_init hook.
- WordPress 2.7.0 (2008-12) for plugin uninstall.php.
- WordPress 2.7.0 (2008-12) for Settings API feature.
- WordPress 2.7.0 (2008-12) for plugin_action_links_ hook.
- WordPress 2.8.0 (2009-06) for esc_attr__() function.
- WordPress 2.8.0 (2009-06) for plugin_row_meta hook.
- WordPress 2.9.0 (2009-12) for wp_kses_post() function.
- WordPress 3.1.0 (2011-02) for admin_notices hook.
- ——————-
- WordPress 3.2.1 (2011-07) requires PHP >= 5.2.4 (2007-08).
- WordPress 5.1.0 (2019-02) for plugin_loaded hook.
- ——————-
- WordPress 5.2.0 (2019-05) requires PHP >= 5.6.20 (2016-03).
- ——————-
- WordPress 6.3.0 (2023-08) requires PHP >= 7.0.0 (2015-12).
- ——————-
- WordPress 6.6.0 (2024-07) requires PHP >= 7.2.24 (2019-10).
Question: Given the combined complexity of ‘WordPress + PHP’ features, what are your thoughts on how to choose which versions your plugin is going to support?
Leave a Reply