WordCamp Malaysia 2024 Contributor Day Recap

WordCamp Malaysia 2024 took place on the 22 & 23 November. WC Malaysia 2024 Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. was held on the 22 November, Friday at the Menara Ken TTDI. The HostingHosting 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. Table was led by @chaion07 with a total of 10 contributors. Here’s the list of contributors who joined in:

  1. @louisgan
  2. @raajkhan
  3. @hazreenasikin
  4. @wanzulnet
  5. @lerkaleng
  6. @awisqirani
  7. @faizsf

Here’s the list of topics we discussed:

  • Creating the WP Org Profile
  • Joining the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.
  • Introduction to the Make WordPress Hosting Team
  • Host Test Results
  • Hosting Team Handbook
  • Team Projects

We are happy to note that a total of 7 first time contributors joined the Hosting Table and a few issues have been submitted including a few PRs to the Hosting Team Repository in GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner..

#contributor-day

Nominations for Hosting Team Reps 2025

This post kicks off the election process with nominations to replace the current HostingHosting 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. Team Reps.

Current Team Reps are @Crixu and @javiercasares.

The Role

In the WordPress open-source project, each team has on average one or two representatives, abbreviated as Reps. The Team RepTeam Rep A Team Rep is a person who represents the Make WordPress team to the rest of the project, make sure issues are raised and addressed as needed, and coordinates cross-team efforts. represents the team to the wider Make project, and the project to the Hosting Team.

The reason we have multiple Team Reps is that one can take responsibility for the duties during the first half of the term while the other provides backupBackup A backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. Backups can be used to recover data after its loss from data deletion or corruption, or to recover data from an earlier time. Backups provide a simple form of disaster recovery., and that in the 2nd half of the term, the backup rep will take the primary responsibility. This means about 3 months learning the ropes, and about 3 months as the primary team rep. In the past years, we always had four reps to better cover various time zones, with two reps for the AMER region and two reps for the APAC/EMEA region. This year we’re open for discussion of the team’s whether we continue with this or if the team decides to proceed with two reps in total. In any case, we welcome anyone who contributes to the team by preparing and running meetings, running a contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. table or contributing to our projects – you don’t need to be a rep for that.

It’s not called “team lead” for a reason. It’s an administrative role. While people elected as team reps will generally come from the pool of folks that people think of as experienced leaders, the Team Rep role is designed to change hands regularly. As a Team Rep, you’re accountable to “get things done” within the team and aggregate ideas into doable actions.

This role has a time commitment attached to it. Not a huge amount, it’s at least three hours a week. Here are the main tasks:

  • Post the agenda, host the chats, and summarize them.
  • Keeping an eye on the moving parts of the team to be able to report for quarterly updates.

Full details on the Team Rep role is on the Team Update site.

In 2024, we’ve changed from four team reps to two team reps, and we wanted to open up the discussion around this again. So outside the nomination process we also want to talk as a team if we intend to be represented by two individuals or go back to the four team reps setup. You are welcome to leave a comment on this post or go ahead and leave a vote on this survey anonymously.

How the election works

Please nominate people in the comments of this post, DM an existing Team Rep, or fill out this survey anonymously. Self-nominations are welcome. The deadline is November 27th, 2024 at 23:59 UTC.

Once the nomination window is closed, we will open a poll for voting. It will stay open for about two weeks. The new reps will start their role on January 1st, 2025.

If you want to nominate someone in private, please reach out to one of the Team Reps. Current Team Reps are @Crixu and @javiercasares on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

Disclaimer: if you get nominated, please don’t feel like you have to say yes. The polls will only include the names of the people who are responding positively to a nomination. So feel free to reply with a “Thank you, but no, thank you”.

If you require supplemental information, please feel free to ask in the comments, we will be happy to reply. Please also include your opinion on the “two vs. four team reps” proposal.

#team-reps

WordPress 6.7 Server Compatibility

As we explained in previous posts (WordPress 6.6, WordPress 6.5, WordPress 6.4, WordPress 6.3), for each new version of WordPress, we aim to release an article explaining the compatibility of PHPPHP 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 “betaBeta 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.7.

HostingHosting 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. Team Recommendation

The Hosting Team’s recommendations for WordPress 6.7 are as follows (which may differ from the global ones).

  • PHP: 8.2.x, 8.3.x
  • MySQLMySQL 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.: 8.0.x, 8.4.x
  • MariaDBMariaDB 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.: 10.11.x, 11.4.x

IMPORTANT: These recommendations are intended, primarily, for new installations by hosting providers.

Where does that recommendation come from? We did review some configurations and options, we are going to explain.

WordPress’ serverServer 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.

WordPress 6.7 requirements:

  • PHP: 7.2.25+
  • MySQL: 5.5.5+
  • MariaDB: 5.5.5+

NOTE: Dropping support for PHP 7.0 and 7.1.

You can read more at Server requirements.

WordPress’ compatibility “at the time”

WordPress 6.7 (released on November 12, 2024) had the following components available (stable or security-maintained versions only, and RCRelease Candidate 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.1 (Security Support), 8.2 (Active Support), 8.3 (Active Support), and 8.4 (Candidate Support).
  • MySQL: 8.0 (LTS), 8.4 (LTS), and 9.1.
  • MariaDB: 10.5 (LTS), 10.6 (LTS), 10.11 (LTS), 11.4 (LTS), and 11.5.
  • Apache HTTPDApache HTTPD The Apache HTTP Server, colloquially called Apache, is a free and open-source cross-platform web server software. The vast majority of Apache HTTP Server instances run on a Linux distribution, but current versions also run on Microsoft Windows, OpenVMS, and a wide variety of Unix-like systems.: 2.4.
  • nginxNGINX nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. Nginx is free and open-source software, released under the terms of the 2-clause BSD license.: 1.26, and 1.27.

NOTE: PHP has extended the Security Support one extra year for actual (PHP 8.1, 8.2, 8.3, and 8.4) and new PHP versions.

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.7 (coreCore Core is the set of software required to run WordPress. The Core Team builds WordPress.) is:

  • fully compatible with 7.2 (1), 7.3 (1), and 7.4 (1).
  • compatible with exceptions with PHP 8.0 (1), 8.1, and 8.2.
  • beta compatible with 8.3, and 8.4.

(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 provider about the security maintenance they can do.

Looking for all the tickets? Check this Trac PHP Search.

What “compatible with exceptions” mean?

PHP 8.0

  • #48689: 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. NOTE: Has a patch.
  • #49728: Prepare for the internal functions throwing TypeError or ValueError exceptions on unexpected types/values. Internal functions will throw an exception if the function call arguments are of a type that is not expected. NOTE: Has a patch.
  • #51019: convert_smilies() fails on large tags. The function fails when dealing with large HTMLHTML Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. HTML describes the structure of a web page semantically and originally included cues for the appearance of the document. tags, particularly when an image with a large data URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org is included in the post content. NOTE: Has a patch, but moved to WordPress 6.8.
  • #55121: classic widgets with no settings won’t show up in 5.9. Classic widgets with no settings do not appear correctly in WordPress 5.9 and above. This is due to changes in how widgets are handled in the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor, causing compatibility problems with older widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. setups. NOTE: Has a patch, but moved to WordPress 6.3.
  • #55257: map_deep() function incompatibility with incomplete objects in PHP 8.0+. The function becomes incompatible with incomplete objects when running on PHP 8.0 or higher. NOTE: Has a patch, but moved to Future Release.
  • #59649: 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. NOTE: Moved to WordPress 6.8.
  • #60745: WP_Query::parse_query() does not handle invalid query arg values. The function does not properly handle invalid query argument values. This results in PHP fatal errors when unintended data types, like arrays, are passed where scalars are expected. NOTE: Has a patch, but moved to WordPress 6.8.

PHP 8.1

  • 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”.
  • #53465: htmlentities() 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_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401“. All use cases for this functionality in Core are being investigated. NOTE: Has a patch.
  • #57579: Replace most strip_tags() with wp_strip_tags(). Proposes optimizing how block templates are handled by minimizing unnecessary filesystem calls during their loading process. NOTE: Has a patch, but moved to Future Release.
  • #57580: Avoid errors from null parameters in add_submenu_page(). A deprecated error caused by the wp_normalize_path() function when null is passed as an argument. This issue occurs primarily due to plugins incorrectly passing null in the add_submenu_page() function. NOTE: Has a patch, but moved to Future Release.
  • #61179: Deprecated messages about passing null in widgets.php Addresses a deprecated message issue in widgets.php. NOTE: Has a patch, but moved to WordPress 6.7.

PHP 8.2

What “beta” mean?

PHP 8.3

  • 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.
  • #59231: Prepare for PHP 8.3.. NOTE: Has a patch, but moved to WordPress 6.7.
  • #59232: Introduce #[Override] attribute to mark overloaded methods This attribute helps prevent coding errors by making it clear when a method is overloaded. It also assists with refactoring, debugging, and catching potential breaking changes in the parent class. NOTE: Has a patch, but moved to Future Release.
  • #59233: Improve error handling for unserialize(). maybe_unserialize() function could still be confronted by data with trailing bytes. NOTE: Moved to Future Release.
  • #59654: PHP 8.x: various compatibility fixes for WordPress 6.7. This ticket acts as a central hub for smaller patches that fix specific PHP 8.x failures. It continues the work from previous releases, ensuring that WordPress maintains compatibility with newer PHP versions like PHP 8.0, 8.1, 8.2, and upcoming versions like PHP 8.3. NOTE: Moved to WordPress 6.7.

PHP 8.4

  • 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.
  • #62061: Prepare for PHP 8.4.. NOTE: Has a patch.

Other related tickets

PHP

Upgrading WordPress

Do you have a version earlier than WordPress 6.7? If so, we recommend you visit the Upgrading WordPress page, where you will find information on how to upgrade from WordPress 0.7 to WordPress 6.7.

#core, #php

WordPress 6.3 PHP Compatibility

Looking for updated information?
Visit the Hosting Handbook Server Environment page.

Some time ago, we commented on the compatibility of WordPress with PHP 8. Since the release of this version of PHPPHP 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., and the major versions of WordPress that have appeared since then, have led to the creation of concepts unknown to the WordPress community, such as “betaBeta 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”.

We’ve had WordPress 6.3 with us for a while now, and maybe it’s time to clarify a few things, which we’ll be keeping up with each major version of WordPress as it’s released.

WordPress’ serverServer 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.

Note that WordPress 6.3 brings an important update: Dropping support for PHP 5.

This makes WordPress 6.3 requirements:

  • PHP: 7.0+
  • MySQLMySQL 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+
  • MariaDBMariaDB 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.3 was released on August 8, 2023, and at that time we had the following components available (stable or security-maintained versions only).

  • PHP: 8.0–8.2
  • MySQL: 5.7–8.1
  • MariaDB: 10.4–10.6 and 10.9–11.0

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.3 (coreCore 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, and 8.1
  • beta compatible with PHP 8.2.

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 hostingHosting 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.

What “compatible with exceptions” mean?

PHP 8.0

  • 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.

PHP 8.1

What “beta” mean?

PHP 8.2

  • 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.3 are as follows (which may differ from the global ones).

  • PHP: 8.1.x
  • MySQL: 8.0.x
  • MariaDB: 10.11.x

IMPORTANT: These recommendations are intended, primarily, for new installations by hosting providers.

#core, #php

WordPress 6.6 Server Compatibility

As we explained in previous posts (WordPress 6.5, WordPress 6.4, WordPress 6.3), for each new version of WordPress, we aim to release an article explaining the compatibility of PHPPHP 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 “betaBeta 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.6.

HostingHosting 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. Team Recommendation

The Hosting Team’s recommendations for WordPress 6.6 are as follows (which may differ from the global ones).

  • PHP: 8.2.x
  • MySQLMySQL 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.: 8.0.x
  • MariaDBMariaDB 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.: 10.11.x

IMPORTANT: These recommendations are intended, primarily, for new installations by hosting providers.

Where does that recommendation come from? We did review some configurations and options, we are going to explain.

WordPress’ serverServer 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.

WordPress 6.6 requirements:

  • PHP: 7.2.25+
  • MySQL: 5.5.5+
  • MariaDB: 5.5.5+

NOTE: Dropping support for PHP 7.0 and 7.1.

You can read more at Server requirements.

WordPress’ compatibility “at the time”

WordPress 6.6 (released on July 16, 2024) had the following components available (stable or security-maintained versions only, and RCRelease Candidate 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.1 (Security Support), 8.2 (Active Support), and 8.3 (Active Support).
  • MySQL: 8.0 (LTS), 8.2, 8.3, and 8.4 (LTS).
  • MariaDB: 10.5 (LTS), 10.6 (LTS), 10.11 (LTS), 11.1, 11.2, and 11.4 (LTS).
  • Apache HTTPDApache HTTPD The Apache HTTP Server, colloquially called Apache, is a free and open-source cross-platform web server software. The vast majority of Apache HTTP Server instances run on a Linux distribution, but current versions also run on Microsoft Windows, OpenVMS, and a wide variety of Unix-like systems.: 2.4.
  • nginxNGINX nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. Nginx is free and open-source software, released under the terms of the 2-clause BSD license.: 1.26, and 1.27.

NOTE: PHP has extended the Security Support one extra year for actual (PHP 8.1, 8.2, and 8.3) and new PHP versions.

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.6 (coreCore Core is the set of software required to run WordPress. The Core Team builds WordPress.) is:

  • fully compatible with 7.2 (1), 7.3 (1), and 7.4 (1).
  • compatible with exceptions with PHP 8.0 (1), 8.1, and 8.2.
  • beta compatible with 8.3.

(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 provider about the security maintenance they can do.

What “compatible with exceptions” mean?

PHP 8.0

PHP 8.1

  • 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() 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_COMPAT to ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401”. All use cases for this functionality in WordPress Core are being investigated. NOTE: Has a patch, but moved to WordPress 6.7.
  • 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. NOTE: Has a patch.
  • Update is_serialized function to accept Enums. Enums are not backwards compatible with older PHP versions. NOTE: Has a patch, but moved to WordPress 6.7.

PHP 8.2

What “beta” mean?

PHP 8.3

  • 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.
  • Improve error handling for unserialize(). maybe_unserialize() function could still be confronted by data with trailing bytes. NOTE: Moved to WordPress 6.7.

Upgrading WordPress

Do you have a version earlier than WordPress 6.6? If so, we recommend you visit the Upgrading WordPress page, where you will find information on how to upgrade from WordPress 0.7 to WordPress 6.6.

Props: @luciaalcantara, @crixu, @annezazu.

#core, #php

Hosting Directory: Next Steps

Last Thursday, June 13, 2024, during the Contributor Day of WordCamp Europe 2024, we had a specific meeting for the WordPress Hosting Directory project, which was attended by various hostingHosting 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. providers.

In the meeting, which lasted 1 hour, the context behind this proposal was explained, as already announced in the document and in its previous components.

Conclusions

As stated in the proposal, initially the directory will be hosted at //make.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org//hosting/directory/ and will allow filtering and segmentation by environments (shared, VPSVPS A virtual private server (VPS) is a virtual machine sold as a service by an Internet hosting service. A VPS runs its own copy of an operating system (OS), and customers may have superuser-level access to that operating system instance, so they can install almost any software that runs on that OS., cloud…).

The directory will operate based on an algorithm that rewards elements but does not penalize them. For example, if the provider supports WP-CLIWP-CLI WP CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way., they will earn more points. If they participate in Five for the Future, they will also earn more points.

The information retrieval will be done through a JSONJSON JavaScript Object Notation (JSON) is an open standard file format, and data interchange format, that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and array data types. It is a very common data format, with a diverse range of applications, such as serving as a replacement for XML in AJAX systems. file located in the /.well-known/ folder.

The repository github.com/javiercasares/hosting-handbook has already been requested to be moved to the WordPress organization, so all communication regarding this project will be conducted through the Issues or Discussions of the repository. In any case, it is possible that the initial phase of communication will be done privately, and subsequently, once the feed is approved, everything will be made public. This is to establish communication between the Review Team and the provider and validate details that initially do not need to be public. This system could evolve and change once the project is launched.

The first phase will involve providers that are already using their “bot” in the Host Test Results, so the team will work with providers they already have a relationship with. This will also help validate the functionality of the tests and ensure that communication is bidirectional over time.

Once the first version of the directory is launched, with about 25 providers, it will be opened to the participation of other providers.

Until then, the Review Team will be limited and small to document and iterate on the JSON Schema as needed and request changes from the pilot phase providers. Once the first version is launched, the team will open to the participation and training of new members.

Next Steps

The next steps will be directed in two ways.

The first path is the creation of the pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory or can be cost-based plugin from a third-party. for the Hosting site where the directory will be created. In the coming weeks, the necessary materials will be prepared, and the development team will be assembled. If you are interested in participating, please contact @javiercasares on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

The second path will be to release a betaBeta 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. version of the JSON Schema and start contacting various providers who want to participate to prepare an initial version of the file and work through the review process.

The goal is to have a functional version in approximately 3 months (if possible, before WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. US 2024), so that by October we can launch a first version, finalize the Schema, and begin opening the Review Team processes and directory access in a generalized manner.

Soon

In the coming weeks, we will publish two more posts.

The first one will focus on the plugin, explaining its functionalities, the required features, and how it will be managed. This post will provide a comprehensive overview of the plugin’s architecture and the development steps necessary to ensure its successful implementation.

The second post will be dedicated to the Review Team. It will outline the requirements for joining the team, the initial review process, and how subsequent reviews will be conducted based on available tools. Additionally, we will discuss the preparation of an onboarding process for new members as we make further progress in the project.

#hosting-directory

Proposal: WordPress Hosting Directory

For some time now, different proposals have been developed suggesting that the HostingHosting 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. Team offer a directory of hosting companies. This directory would be primarily based on objective criteria such as technical features or contributions, enabling WordPress users to make informed decisions suited to their hosting needs, a fundamental aspect of CMS functionality.

This initiative began a few years ago with the WordPress.org Recommended Hosts Page Requirement Matrix Criteria, an initial approach to consider all potential elements that hosting companies must meet as requirements.

Following this, a formal proposal known as Project Bedrock was developed. It aimed to create a directory of hosting companies that promote WordPress from a purely objective standpoint, where users can search, filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output., and browse through multiple combinations.

This effort initially did not include formal participation of hosting companies in the community, which led to an additional proposal, the Hosting Application Rubric focused exclusively on this aspect.

From these three projects, a roadmap is now proposed for what the project should be and how to approach it, from a slightly different perspective than the current one, with certain unresolved issues that will need to be discussed in the team’s weekly meetings and the Contributor Days in the coming months.

The Directory

The project’s goal is to create //make.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org//hosting/directory/ where filtering can be done based on various needs, displaying a list of companies and products. Filters might include the type of hosting (shared, VPSVPS A virtual private server (VPS) is a virtual machine sold as a service by an Internet hosting service. A VPS runs its own copy of an operating system (OS), and customers may have superuser-level access to that operating system instance, so they can install almost any software that runs on that OS., cloud, etc.), whether WP-CLIWP-CLI WP CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. access is available, or the type of energy the servers use. The list is quite extensive and may include over 50 variables.

The listings will feature an algorithm based on objective elements, providing a clear and common scoring of what ranks higher and lower. Factors in scoring will include ease of access to tools offered by the community (like WP-CLI), participation in the Hosting Team’s Testing Project, and the company’s involvement in the Five for the Future project.

There will be two types of data: company profiles with general information, and the products offered by each company.

Data Retrieval

To keep the directory agile, creating a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory or can be cost-based plugin from a third-party. that includes all the options might be very complex. Storing the information, however, is not. Therefore, the use of a JSON Schema is being considered, which could also allow the project to evolve in the future with backward compatibility. There is also an example of what such a file would look like that a provider would need to create.

The files would be hosted at a path such as:

/.well-known/wordpress-hosting/wordpress-hosting.json

First Data Review

Considering that these paths do not contain any personal information that could breach privacy legislation, the initial management would be through a GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. Issue, indicating the provider’s path (or the main URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org) and the main user within WordPress.org.

A first review of the data would be conducted, and the same Issue would report potential errors or unverifiable elements. Once the first approval is done, this user would be assigned a role that would allow indicating their participation in the directory, and the URL of the JSONJSON JavaScript Object Notation (JSON) is an open standard file format, and data interchange format, that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and array data types. It is a very common data format, with a diverse range of applications, such as serving as a replacement for XML in AJAX systems. to be processed would be assigned.

An alternative is sending a message to hosting (a) wordpres.org and following up through the ticket support platform. In any case, both approaches would be complementary.

The Plugin

The creation of a plugin that allows three main tasks is necessary.

The first is the reading of the JSON data and its storage. Once the first reading (previously reviewed) is approved, it will be published as the current content.

The second task is the review of changes. Any changes in the JSON data would be stored in a future/draft entry, pending review by the team in charge. This way, we will have several contents for the same user: past entries, the current public entry, and a future entry pending review with different data from the current one.

The third is basically the directory itself, which will display data on the frontend, both from companies and products, in addition to listings with filters, the result sorting algorithm, and a system for users (who should be logged in) to report incorrect data, thus generating an internal ticket for the review team.

Data Review Team

One of the most important aspects of this project is the review of changes and proposals from hosting providers, which community members will need to examine. Initially, a period of review and learning work will be planned, along with the creation of documentation, which will later open to more contributors. There is no rush, so the emphasis will be on taking things slow and steady rather than trying to set up the directory in a week.

Initially, four tasks are proposed:

  • The main task will be to review new hosting providers, their services, and ensure the initial information is correct.
  • The second task will continue the first, reviewing any changes that occur.
  • The third task is to review complaints that may come from the website, indicating erroneous data.
  • Finally, as a fourth point, we have the resolution of general issues, which would be managed by email, involving communication between the parties.

This does not mean that there will not be additional tasks sporadically, such as maintaining the JSON Schema with new product versions, informing providers of the JSON update, etc.

Next Steps / Roadmap

The first major milestone will be WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe 2024, where on Contributor DayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/., feedback on the project can be discussed and received from hosting providers, both in terms of adding and removing elements from the JSON Schema. Meanwhile, Issues and comments can be left on the enabled GitHub.

A second step will be the construction of the plugin and the entire review system. If anyone is interested in creating this project, please comment (you can write to @javiercasares on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. or leave comments on the post). In any case, ideas about this potential plugin are welcome.

A subsequent milestone will be at WordCamp US 2024, also on Contributor Day, where emphasis will be placed on this project, receiving inputs from those U.S. companies not present at WordCamp Europe.

Conclusion and Call to Action

As we move forward with the WordPress Hosting Directory, we are embarking on a journey that not only enhances the WordPress community’s access to reliable and transparent hosting information but also strengthens the bond between WordPress and hosting providers. This directory aims to serve as a robust resource, equipping users with the necessary tools to make informed decisions that align with their specific hosting needs.

Your involvement is crucial to the success of this project. Whether you are a hosting provider, a developer, or a community member, your feedback, ideas, and contributions are invaluable. We encourage everyone to engage with the project through the following channels:

  • Feedback Submission: Provide your insights and suggestions via the GitHub repository or direct communications to the Hosting Team.
  • Participation in Upcoming Events: Join us at WordCamp Europe and WordCamp US in 2024. These events will be pivotal for discussing further developments and refining our approach based on your input.
  • Volunteering: We will be searching for volunteers to join the Hosting Review Team. This team will play a critical role in ensuring the accuracy and integrity of the data within the directory.

Together, we can create a directory that not only reflects the diversity and capability of the WordPress Hosting Community but also sets new standards for transparency and user-centric information in the industry. Let’s work together to build a tool that will be indispensable for every WordPress user navigating the complexities of web hostingHosting 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..

Thank you for considering this proposal. We look forward to your active participation and support in shaping the future of WordPress hosting.

Props: @crixu

#hosting-directory

WordPress 6.4 PHP Compatibility

Looking for updated information?
Visit the Hosting Handbook Server Environment page.

As we explained in the previous post, for each new version of WordPress, we aim to release an article explaining the compatibility of PHPPHP 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 “betaBeta 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’ serverServer 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+
  • MySQLMySQL 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+
  • MariaDBMariaDB 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 RCRelease Candidate 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 (coreCore 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 hostingHosting 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?

PHP 8.0

  • 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.

PHP 8.1

  • 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_COMPAT to 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.

PHP 8.2

What “beta” mean?

PHP 8.3

  • 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.

#core, #php

WordPress 6.5 PHP Compatibility

As we explained in the previous post, for each new version of WordPress, we aim to release an article explaining the compatibility of PHPPHP 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 “betaBeta 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.5.

WordPress’ serverServer 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.5 requirements:

  • PHP: 7.0+
  • MySQLMySQL 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.5.5+
  • MariaDBMariaDB 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.5+

You can read more at Server requirements.

WordPress’ compatibility “at the time”

WordPress 6.5 was released on April 2, 2024, and at that time we had the following components available (stable or security-maintained versions only, and RCRelease Candidate 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.1, 8.2, and 8.3
  • MySQL: 8.0 (LTS), 8.2, and 8.3.
  • MariaDB: 10.4 (LTS), 10.5 (LTS), 10.6 (LTS), 10.11 (LTS), 11.0, 11.1, 11.2, and 11.3

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.5 (coreCore 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.01, 8.1, and 8.2.
  • beta compatible with 8.3.

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 hostingHosting 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.

What “compatible with exceptions” mean?

PHP 8.0

  • 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.

PHP 8.1

  • 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_COMPAT to 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.

PHP 8.2

What “beta” mean?

PHP 8.3

  • 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.5 are as follows (which may differ from the global ones).

  • PHP: 8.2.x
  • MySQL: 8.0.x
  • MariaDB: 10.11.x

IMPORTANT: These recommendations are intended, primarily, for new installations by hosting providers.

Props: @luciaalcantara

#core, #php

The Image Revolution: AVIF and WebP

With the release of WordPress 6.6 in July, extended support for optimized image formats such as AVIF and WebP is being introduced. This update represents a significant improvement in how images are managed and served on the web, which is crucial for both developers and hostingHosting 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. companies. Below, we explore these formats in detail and their importance in image optimization compared to more traditional formats like JPEG.

What are AVIF and WebP?

AVIF

AVIF (AV1 Image File Format) is an image format derived from the AV1 video codec. It offers superior compression and image quality compared to traditional formats. Key features of AVIF include:

  • Efficient Compression: AVIF provides more efficient lossless and lossy compression than JPEG, resulting in significantly smaller file sizes.
  • Image Quality: Maintains high image quality even at high compression rates.
  • Transparency Support: Like PNG, AVIF supports transparency, making it ideal for a wide range of applications.
  • High Dynamic Range (HDR): AVIF supports HDR, enhancing visual quality on compatible devices.

WebP

WebP, developed by Google, is an image format designed to reduce image file sizes without compromising quality. Its key features include:

  • Lossy and Lossless Compression: Offers both lossy and lossless compression, adapting to different needs.
  • Transparency: Like AVIF and PNG, WebP supports transparency.
  • Animations: WebP can store animated images, offering an alternative to traditional GIFs with smaller file sizes.
  • Loading Speed: Due to its efficient compression, WebP images load faster, improving website performance.

Comparison with JPEG

JPEG has been the de facto standard for web images for many years. However, it has limitations compared to AVIF and WebP:

  • Compression: JPEG uses lossy compression that can result in visible artifacts at high compression rates.
  • File Size: JPEG images are typically larger than their AVIF and WebP counterparts for the same image quality.
  • Transparency and Animations: JPEG does not support transparency or animations, limiting its versatility.

Benefits for Hosting Companies

With the extended support for AVIF and WebP in WordPress 6.6, hosting companies should be prepared to take full advantage of these technologies. Here are some recommendations:

Installation of Necessary Libraries:

  • PHPPHP 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. GD and ImageMagick: Ensure that the PHP GD and ImageMagick libraries are updated and configured to support AVIF and WebP. This may involve installing additional dependencies or recompiling the libraries with support for these formats.
  • Libavif and Libwebp: These libraries are essential for the compression and decompression of AVIF and WebP images. Hosting companies should ensure they are installed on their servers.

Performance Optimization:

  • ServerServer 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. Configuration: Adjust server settings to efficiently serve AVIF and WebP images. This includes configuring appropriate HTTPHTTP The Hypertext Transfer Protocol (HTTP) is protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, where hypertext documents include hyperlinks to other resources that the user can easily access, for example by a mouse click or by tapping the screen in a web browser. headers for cachingCache A cache is a component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. and compression.
  • Automatic Conversion: Implement solutions that automatically convert uploaded images to these optimized formats.

Education and Support:

  • Training: Provide clients with educational resources on the benefits of AVIF and WebP and how to use them on their websites.
  • Technical Support: Be prepared to assist clients with the configuration and use of these new formats.

Installation on Debian / Ubuntu

Installing libavif and libwebp

Update system packages:

   sudo apt update
   sudo apt upgrade -y

Install essential dependencies:

   sudo apt install -y build-essential cmake git

Install libwebp:

   sudo apt install -y libwebp-dev

Install libavif:
First, install libaom, a library needed for libavif.

   sudo apt install -y libaom-dev

Then proceed with libavif:

   git clone https://github.com/AOMediaCodec/libavif.git
   cd libavif
   mkdir build
   cd build
   cmake ..
   make
   sudo make install

Configuring PHP GD and ImageMagick

Install PHP and necessary extensions:

   sudo apt install -y php php-gd php-imagick

Verify that the extensions are enabled:

   php -m | grep -E 'gd|imagick'

Restart the web serverServer 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.:

   sudo systemctl restart apache2  # For Apache
   sudo systemctl restart nginx  # For Nginx

Installation on CentOS / Red Hat

Installing libavif and libwebp

Update system packages:

   sudo yum update -y

Install essential dependencies:

   sudo yum groupinstall -y "Development Tools"
   sudo yum install -y epel-release
   sudo yum install -y cmake3 git

Install libwebp:

   sudo yum install -y libwebp-devel

Install libavif:
First, install libaom.

   sudo yum install -y libaom-devel

Then proceed with libavif:

   git clone https://github.com/AOMediaCodec/libavif.git
   cd libavif
   mkdir build
   cd build
   cmake3 ..
   make
   sudo make install

Configuring PHP GD and ImageMagick

Install PHP and necessary extensions:

   sudo yum install -y php php-gd php-pecl-imagick

Verify that the extensions are enabled:

   php -m | grep -E 'gd|imagick'

Restart the web server:

   sudo systemctl restart httpd  # For Apache
   sudo systemctl restart nginx  # For Nginx

Conclusion

By following these steps, hosting companies can ensure their servers are fully prepared to handle images in the AVIF and WebP formats. This will not only improve the quality and loading speed of images on their clients’ websites but also provide a significant competitive advantage in the hosting services market. The update to WordPress 6.6 in July will be a crucial moment to implement these strategies and lead in the support of next-generation image formats.

Props: @adamsilverstein

#performance, #php