As we explained in the previous post, for each new version of WordPress, we aim to release an article explaining the compatibility of PHP PHP (PHP: Hypertext Preprocessor) is a general-purpose scripting language especially suited to web development. PHP code is usually processed on a web server by a PHP interpreter. On a web server, the result of the interpreted and executed PHP code would form the whole or part of an HTTP response. with the WordPress versions and our team’s recommendation for that specific version.
On this occasion, once again, we will explain the details of compatibility, including “beta Beta is the software development phase following alpha. A Beta phase generally begins when the software is feature complete but likely to contain a number of known or unknown bugs. Software in the beta phase will generally have many more bugs in it than completed software, speed or performance issues, and may still cause crashes or data loss. The focus of beta testing is reducing impacts to users, often incorporating usability testing. compatible” or “compatible with exceptions”.
So, here you have the compatibility information, this time, for WordPress 6.4.
WordPress’ server A server is a piece of computer hardware or software that provides functionality for other programs or devices. Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers. requirements
Even if there are more stable software versions, that doesn’t mean they are the ones WordPress recommends.
This makes WordPress 6.4 requirements:
- PHP: 7.0+
- MySQL MySQL is an open-source relational database management system (RDBMS). MySQL is free and open-source software under the terms of the GNU General Public License.: 5.0.15+
- MariaDB MariaDB is a fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. MariaDB intended to maintain high compatibility with MySQL, ensuring a drop-in replacement capability with library binary parity and exact matching with MySQL APIs and commands.: 5.5+
You can read more at Server requirements.
WordPress’ compatibility “at the time”
WordPress 6.4 was released on November 7, 2023, and at that time we had the following components available (stable or security-maintained versions only, and RC A beta version of software with the potential to be a final product, which is ready to release unless significant bugs emerge. only for informational purposes).
- PHP: 8.0–8.2, and 8.3-RC
- MySQL: 5.0–8.1 (LTS versions: 8.0)
- MariaDB: 10.4–10.6, and 10.10–11.0 (LTS versions: 10.6, and 10.11)
You can read more at WordPress Compatibility.
WordPress and PHP
PHP is a programming language on which WordPress code is based. This language runs on the server, and it is critical to keep it up to date, both for security and functionality.
WordPress supports many versions of PHP, some even obsolete (PHP Compatibility and WordPress Versions).
WordPress 6.4 (core Core is the set of software required to run WordPress. The Core Team builds WordPress.) is:
- fully compatible with PHP 7.01, 7.11, 7.21, 7.31, and 7.41.
- compatible with exceptions with PHP 8.0, 8.1, and 8.2.
- beta compatible with 8.32.
1 SECURITY ALERT: These versions are not officially maintained by PHP, so they are considered insecure and obsolete versions and should not be used in production. Check with your hosting A web hosting service is a type of Internet hosting service that allows individuals and organizations to make their website accessible via the World Wide Web. provider about the security maintenance they can do.
2 DEVELOPMENT ALERT: These versions are in development, so it’s not recommended to use them in a production environment. PHP 8.3 release date: November 23, 2023.
What “compatible with exceptions” mean?
- Named parameters. WordPress does not support named parameters.
PHP 8.0 supports optionally calling functions and class methods by specifying the parameter name, instead of calling them on the order of parameters that they are declared.
PHP, and many other programming languages, support positional parameters: The caller passes the parameters in the same order the function/method declares its parameters.
- Filesystem WP_Filesystem_FTPext and WP_Filesystem_SSH2 when connect fails.
An investigation is underway as to why on some occasions the access to the files returns some type of error.
- Not all “passing null to non-nullable” issues have been found.
In PHP, you can tell a function exactly what type of information it should accept. If you tell a function to expect a certain type of information, and you give it nothing at all (
null is like saying “nothing”), then PHP gets confused and gives an error. This problem happens when someone accidentally gives a function “nothing” when the function wasn’t designed to handle “nothing”.
- htmlentities() et al needs the default value of the flags parameter explicitly set.
According to htmlentities(), the default for flags for PHP 8.1 was “changed from
ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401”. All use cases for this functionality in WordPress Core are being investigated.
- Replace most strip_tags() with wp_strip_tags().
There are rare occasions when the strip_tags() function is passed a null value, which generates a warning that the string is deprecated.
What “beta” mean?
- Deprecation notices
A deprecation notice is not an error, but rather an indicator of where additional work is needed for compatibility before PHP 9.0. With a deprecation notice, the PHP code will continue to work and nothing is broken.
Hosting Team Recommendation
Taking all this into account, the Hosting Team’s recommendations for WordPress 6.4 are as follows (which may differ from the global ones).
- PHP: 8.1.x or 8.2.x
- MySQL: 8.0.x
- MariaDB: 10.11.x
IMPORTANT: These recommendations are intended, primarily, for new installations by hosting providers.