Four Weeks in Core – October 9, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between September 4 and October 9, 2023.

Please note that exceptionally and because of personal vacations, this Week in Core issue covers 4 weeks 😊

  • 269 commits
  • 337 contributors
  • 295 tickets created
  • 43 tickets reopened
  • 277 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Continue reading

#6-4, #core, #week-in-core

Proposal: Criteria for Removing “Beta Support” from Each PHP 8+ Version


Update on August 1, 2023: Added requirement to publish Make/CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. post that details the compatibility change for the release (added to the “Beta Support” removal process section). Props @chanthaboune.


Officially WordPress Core currently provides “betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. support” (or “beta compatibility”) for PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.0, 8.1, and 8.2, as per the compatibility table in the handbook. The term “beta support” was first used in 2020 for WordPress 5.6 and PHP 8.0, though no criteria were set for determining when it could be removed. When should WordPress Core be considered compatible with a specific PHP version? Could it be compatible even with known and documented incompatible exceptions? This proposal is being set forth by a group of trusted contributors (see the props list below) who have consistently focused on the overall forward and backward compatibility of WordPress in the context of PHP as a way to outline any criteria, data, or roadmap needed to answer these questions.

The scope and goals of this proposal are:

  • Set the criteria for determining when WordPress Core has reached compatibility with a specific PHP version that WordPress supports.
  • Once the criteria are met, then the “beta support” classification can be removed for that WordPress version and beyond.
  • Set a phased approach for moving from “beta support” to compatible with exceptions (optional) to fully compatible.

The proposal starts with an understanding of what “compatibility” means, then dissects the meaning to identify indicators, and finally uses the indicators to build decision-making criteria.

What is outside the scope of this proposal?

  • Theme or 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 https://wordpress.org/plugins/ or can be cost-based plugin from a third-party compatibility. There is no guarantee that any theme or plugin a site owner uses is compatible with or safe to upgrade to a PHP version. Rather, this proposal is for WordPress Core itself.
  • List of supported PHP versions. It is not for determining which PHP versions WordPress should support, e.g. PHP EOL (End of Life), raising the minimum supported PHP version, etc.

Quick navigation

  1. What compatibility means
  2. Identifying indicators
  3. Proposed compatibility criteria
  4. “Beta Support” removal process
  5. Conclusion

1. What compatibility means

Because of the nature of WordPress usage and the commitment to our user base, compatibility is to be considered in the eyes of those users. The goal is to elevate the broader ecosystem to a state that is compatible with PHP 8. That requires that the Core software not just be compatible on its own, but also provides defenses against common problems seen in the transition to PHP 8, while continuing to function on older versions of PHP.

~ What does compatibility mean here? from WordPress and PHP 8.0 by @desrosj

Building upon the above quote, compatibility means:

WordPress Core’s compatibility with a specific PHP version happens when enough sites run without issues (a) in the ways users configure and use their sites (b) while also continuing to function on all older PHP versions WordPress supports.

Notice this description intentionally focuses on users with emphasis on the ways users use WordPress. WordPress is committed to being user-first. Technical decisions (including compatibility) should first focus on users and thus usage.

Is full 100% compatibility required before removing “beta support”?

No. This proposal does not require a full 100% compatibility requirement for removing “beta support”. Instead, it takes a more pragmatic phased approach.

Some PHP version features or changes are breaking changes that (a) may require more effort and time to fully resolve or (b) may not be fully resolvable due to various reasons such as external dependencies, backward compatibility, etc.

Imagine the scenario where the bulk of WordPress Core is compatible with a specific PHP version but there are one or more incompatibilities yet to be resolved. Should those incompatibilities 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. removing “beta support”? Or could those be accepted and documented as exceptions?

This proposal proposes the following phases:

  • “beta support”
  • compatible with documented exceptions
  • full compatibility

Reaching full 100% compatibility may not always be possible or it may take extensive amount of time. This should not block the removal of the “beta support” label. If one version is blocked, then all versions after that version are also blocked. By taking a phased approach, the project retains flexibility to take decisions that are best for users and the broader ecosystem.

2. Identifying indicators

In dissecting the above meaning, the keys to achieve compatibility reside in:

  • Enough sites: enough sites running on a given PHP version over enough time.
  • Issues: all known compatibility issues resolved or accepted as incompatible.
  • BC: compatibility changes are backward compatible with all earlier PHP versions WordPress supports.

Enough sites: What does a minimum threshold of sites signify?

Enough sites should indicate a variety of different usages. Usages are important.

It can indicate WordPress itself runs with different technical stacks of themes, plugins, configurations, and hosted environments.

WordPress is never used in isolation (without any theme or plugins), so WordPress itself being able to run on PHP 8 does not indicate “full” compatibility…

The state of PHP 8 support within the broader ecosystem (plugins, themes, etc.) is impossible to know.

~ WordPress and PHP 8.0 by @desrosj

Usages can also indicate a variety of the WordPress functionality is being used by users. Why is this important? It can indicate how much of the WordPress Core’s source code is being run on a specific PHP version with the different technical stacks.

Issues: What does “issues” signify?

If the number of sites running on a specific PHP version continues to grow over time, then an inference could be made that the sites run without issue. How so? The thinking is: why would the usage grow over time if there are compatibility issues blocking sites from running on the version? Using that logic, the growth of “enough sites” over time can indicate there are no known compatibility “issues”.

Historically, WordPress relies on users to provide feedback and report issues. Thus, the “issues” indicator also means all known compatibility issues are resolved or excluded. (Note: In TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., the phpNN keyword convention (e.g. php80, php81, and php82) identifies a PHP compatibility issue or task. A new php-compatibility focus is also proposed for further help with identifying compatibility tickets.)

Thus, “issues” can be considered as a combination of the growth of enough sites over time and all reported and known compatibility issues are resolved or accepted as incompatible.

What is resolved?

A known issue is resolved by various actions including fixed, closed, accepted as not impacting compatibility, or documenting as being incompatible.

Backward compatibility: How does backward compatibility relate to PHP versions?

Users and user confidence. WordPress has a long history of prioritizing backward compatibility (also known as BC and back compatback compat Backward compatibility - a desire to ensure that plugins and themes do not break under new releases - is a driving philosophy of WordPress. While it is a commonly accepted software development practice to break compatibility in major releases, WordPress strives to avoid this at all costs. Any backward incompatible change is carefully considered by the entire core development team and announced, with affected plugins often contacted. It should be noted that external libraries, such as jQuery, do have backward incompatible changes between major releases, which is often going to be a greater concern for developers.) to ensure WordPress runs for users regardless of which PHP version they are using. In this way, users can upgrade to a newer PHP version with the confidence their site will continue to function.

PHP 8 introduces many breaking changes, meaning the changes in the language do not work on versions older than PHP 8. To make WordPress compatible with PHP 8, changes must also stay compatible with all PHP versions it supports.

How can backward compatibility be determined?

Each change must not change the previously intended behavior or code usage (e.g. function names or signatures, input types or data structures, return types or data structures, etc.) and must work on all WordPress supported PHP versions.

The adopted approach is to add automated tests prior to the compatibility change and then ensure the change does not alter the behavior or code usage.

3. Proposed compatibility criteria

Using the above indicators, let’s build criteria for determining when a WordPress version is compatible with a specific PHP version.

All of these indicators must be true for a specific PHP version:

  • Enough sites: At least 10% (i.e. usage percentage) of all WordPress sites running on a specific or newer PHP version for at least 3 months.
    • The usage percentage is calculated by combining usages of the target version plus all newer versions. For example, the PHP 8.0 % of usage is the sum of usage from 8.0, 8.1, 8.2, etc.
  • Issues:
    • All reported and known compatibility issues are resolved.
    • All accepted incompatibilities are documented as exceptions from full compatibility.
  • BC: Full backward compatibility is maintained for all older PHP versions WordPress supports, demonstrated with automated tests for each compatibility change.

The criteria in action for WordPress 6.3

Let’s see the proposed compatibility criteria in action. Could the “beta support” label be removed in WordPress 6.3 for different PHP 8 versions?

As of June 19, 2023:

  • Enough sites:
    • PHP 8.0: 13.49% (+8.92% from PHP 8.1 +1.41% from PHP 8.2 = 23.82% ✅ )
    • PHP 8.1: 8.92% (+1.41% from PHP 8.2 = 10.33% ✅ )
    • PHP 8.2: 1.41%
  • Issues:
    • Current list of reported issues:
    • Possible Incompatibilities for acceptance consideration:
      • Named parameters: Should WordPress be fully-compatible with named parameters? There are backward compatibility (BC) considerations to consider. Once WordPress is compatible with a specific PHP version, the names of function/method parameters can never change as any changes would be a BC break (See Trac 57838).
      • Explicitly setting default value of the flags parameter for htmlentities() et all (See Trac 53465).
  • BC: there are no known unresolved backward compatibility issues, though there is not a specific keyword available for tracking.

PHP 8.0 and 8.1 meet the minimum “enough sites” criteria, but have open tickets that need to be resolved to pass the “issues” criteria. Once each is resolved or accepted as incompatible, then it is possible for WordPress 6.3 to be declared compatible (possibly with incompatibility exceptions) with PHP 8.0 and 8.1.

Why not use the automated test suites as the compatibility indicator?

Automated tests are an important part of the testing and feedback loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. strategy in software development. A good set of tests can identify problems before the code ships to users.

But as previously noted, users are not running WordPress by itself, but rather as part of a stack of technologies. Knowing the majority of possible usage scenarios (such as an array of different themes and plugins) to use as test data is difficult. Thus, automated testing is part of an overall strategy when combined with the other indicators previously noted.

The automated tests are not included as part of the indicators. Currently the WordPress automated test suites are not yet significant or good enough to indicate with confidence that the source code is fully compatible and meets all of the above criteria.

What is required for the test suites to be considered significant and good enough?

  • The vast majority of the code would need to be exercised by the tests.
  • A broad set of scenarios for what should (happy path) and shouldn’t (unhappy path) happen in the ways users configure and use WordPress.

Currently, the WordPress Core’s automated test suites do not meet this criteria. For example, using the published code coverage report, less than half of the code is being exercised by tests. (Note: the published code coverage report is misleading as it represents “unclean” code coverage. The actual percentage is significantly lower. Work is ongoing to improve the reporting .) In addition, the test suites need to grow their testing scenarios to include the different ways users use WordPress.

4. “Beta Support” removal process

Once the above criteria are met, then the “beta support” classification can be removed for the next major WordPress release. Since only the most recent major branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". of WP is supported, previous versions of WP with “beta support” for a PHP version will remain, even if security updates are pushed to older branches after the fact.

The process for each PHP version:

  • Verify all of the above criteria are met.
    • Pull the site usage numbers to verify usage meets the criteria.
    • Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. all php-compatibility tickets for the PHP version (phpNN keyword) to ensure all tickets are resolved.
    • Verify backward compatibility.
  • Gather the list of accepted incompatibilities.
  • Identify and resolve dependency needs, such as a MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. change for Site Health to get the “recommended PHP” version via an APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. call.
  • When adding the next major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. to to the PHP Compatibility and WordPress Versions handbook page, do not add the * next to that specific PHP version. If there are incompatibilities, add ** next to the PHP version and list each incompatibility below the table.
  • Publish a Make/Core post that details what the compatibility change means for users and extenders.

5. Conclusion

This post presents a thoroughly referred recommendation for when to remove “beta support” from PHP 8 and newer versions. The criteria were a result of the feedback from several contributors listed below. However, it is only a proposal and is not concrete. Adjustments can be made to this proposal based on feedback from contributors in the comments below. If you have any thoughts, please do leave them below!

Unless there is a need to republish a modified version of this proposal for further feedback, after a consensus is reached and any needed approval from leadership to implement this proposal is received, the following action items would need to be addressed:

  • The Make WordPress Core handbook should be updated in the appropriate places to:
    • outline the criteria and process for reviewing each “beta support” PHP version with each WordPress major release.
  • Trac:
    • Add php-compatibility focus, which will be listed in “Contributor Focuses”. (Status: Done on Aug 1, 2023 ✅)
    • Contributors should scrub all tickets for PHP compatibility to (Status: Done as of Aug 8, 2023 ✅)
      • Add the php-compatibility focus with a description of “Relating to PHP forward and backwards compatibility. A phpNN keyword identifies the PHP version that introduced the incompatibility”.
      • Update the PHP version phpNN keyword, if necessary.
      • Determine the ticketticket Created for both bug reports and feature development on the bug tracker. status and next step toward resolution, including: close with a message why, complete, or get consensus on ones to be accepted as incompatible.
  • Any other action items identified while discussing this proposal.

Props to @jrf @joemcgill @mikeschroder @desrosj @azaozz @costdev @ironprogrammer @antonvlasenko for contributing to this post through providing feedback and proof-reading.

#php, #php-8-0, #php-compatibility

A Week in Core – February 13, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between February 6 and February 13, 2023.

  • 103 commits
  • 165 contributors
  • 71 tickets created
  • 13 tickets reopened
  • 99 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

  • Close adminadmin (and super admin) menu when focus moves to body – #53587
  • Define the $title global on privacy screens – #57578
  • Fix JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. test failure – #53587
  • Match title tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) to menu item for Editor – #57654

Application Passwords

  • Allow plain HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. success and reject URLs when using a local environment type – #52617

Build/Test Tools

  • Add a devcontainer for Codespaces support – #57187
  • Add unit tests for wp_set_password hook – #57436
  • Cleanup change to package.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.
  • Update json2php package – #57535
  • Update npm dependencies for bundled themes – #57535
  • Add missing @covers tag for a wp_update_comment() test – #56793
  • Declare the $post_id property in wp_comments_personal_data_exporter() tests – #56793
  • Move PasswordHash test file to a more appropriate place – #56340
  • Move wp_comments_personal_data_eraser() tests to their own file – #56793
  • Move wp_comments_personal_data_exporter() tests to their own file – #56793
  • Rename the html tests directory to html-api#56793
  • Use assertSameSets() in WP_Query tests for search_columns argument – #43867

Bundled Themes

  • Twenty Fifteen: Bundle Google Fonts locally – #55985
  • Twenty Fourteen: Bundle Google Fonts locally – #55985
  • Twenty Seventeen: Bundle Google Fonts locally – #55985
  • Twenty Sixteen: Bundle Google Fonts locally – #55985
  • Twenty Thirteen: Bundle Google Fonts locally – #55985
  • Twenty Twelve: Bundle Google Fonts locally – #55985
  • Twenty Twelve: Properly reflect text color changes in Table 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.#56466
  • Twenty Twenty: Properly reflect text color changes in Quote and Pullquote block – #55990
  • Fix row variation nested in group block – #56226
  • Recommit generated files following [55329]#56226

Coding Standards

  • Add missing escaping function in Custom_Image_Header::show_header_selector()#57638
  • Pass correct value to get_delete_post_link() in attachment_submit_meta_box()#57690
  • Rename $comment_ID variable to $comment_id in various files – #57671, #56791
  • Rename the remaining $cat_ID variables to $cat_id#56754

Comments

  • Allow to pass $comment_ID parameter to comment_time()#52322
  • Allow to pass $comment_ID parameter to get_comment_time()#52322
  • Improve rel attribute usage in comments – #53290, #56444
  • Use correct orderby parameter name in personal data exporter and eraser – #57700

Docs

  • Add a @since note about Twenty Twenty-Three for WP_Theme::$default_themes#57714
  • Correct @since tag for WP_Locale_Switcher::$stack#57123
  • Document possible return values for wp_get_word_count_type()#56698
  • Miscellaneous improvements and corrections to docblocks – #56792
  • Replace short array syntax in WP_HTML_Tag_Processor documentation – #57691
  • Use third-person singular verbs for WP_Meta_Query related function descriptions, as per docblocks standards – #56792
  • Various improvements in XML-RPC Class function descriptions, as per docblocks standards – #56792

Editor

  • Updated the WordPress packages to include GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 15.1.0 changes – #57471
  • Updates the WordPress packages with all the fixes targetted for WP 6.2 beta1 – #57471
  • Add frontend block-level settings to the core – #57651
  • Add layout controls to children of flex layout blocks – #57584
  • Introduce sticky position block support – #57618
  • Remove “betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.” label from Site Editor submenu item – #57654
  • Restores file block button styles for classic themes – #57688
  • Support the block_types and viewport_width props for remote patterns fetched from Pattern Directory – #57611
  • Update wordpress packages for 6.2 Beta 2 – #57471
  • Use WP_HTML_Tag_Processor in wp_render_elements_support()#57642
  • svn add new files missed in [55285]#57618
  • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. site editor intialization changes from Gutenberg 15.1 – #57480

Embeds

  • Update YouTube provider for live URLs – #57632
  • Use documented mixcloud.com oembed endpoint – #57376

Emoji

  • Fix emoji feature detection – #57301

External Libraries

  • Prevent a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.1 deprecation notice in PasswordHash::gensalt_blowfish()#56340
  • Update element-closest#52851
  • Update jQuery Migrate to version 3.4.0 – #56743
  • Update miscellaneous libraries to their latest versions – #57646

Feeds

  • Fix various typos in MagpieRSS – #57102

Filesystem APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Add test for uncovered WP_Error in move_dir()#57375

Formatting

  • Add aspect-ratio as valid CSSCSS Cascading Style Sheets. property in KSES – #57664
  • Guard wp_strip_all_tags() against fatal errors – #56434
  • Treat math elements as block-level elements – #13340

General

  • Check that set_time_limit() function is available before using it in core – #55711

Help/About

  • Add info about the “View” row action link to the Users screen help tab – #57666

I18Ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Introduce word_count_type property to WP_Locale#56698
  • Mark screen reader strings as such with translator comments – #29748
  • Prevent fatal error in WP_Textdomain_Registry#57218

Login and Registration

  • Set correct default values in wp_signon()#56850

Mail

  • Check that set_time_limit() function is available before using it in class-pop3.php#57659

Media

  • Add test file missed in [55278]#57370
  • Bail early if image is already the requested size – #57370
  • Enable selective optout for video and audio shortcodes – #40144
  • Enhance logic to determine LCP image in block themes and avoid lazy-loading it – #56930
  • Fix focus loss updating custom fields in media modal – #40909
  • Introduce wp_get_attachment_link_attributes 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.#41574
  • Maintain the functionnality of the deprecated WP_Media_List_Table::column_desc() method – #39710
  • Remove unwanted quotation marks for playlist template – #50865
  • Use strict comparison in make_subsize()#57370

Menus

  • Test creating parent after a child doesn’t throw an error – #57122

Options, MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. APIs

  • Add a filter to allow the shortcut return to wp_load_alloptions function – #56045

Permalinks

  • Properly escape strings in Permalinks Settings screen – #57143

Privacy

  • Add rel="privacy-policy" to the Privacy Policy link – #56345

Query

  • Add a search_columns argument to control which fields are searched in a search query – #43867

Quick/Bulk Edit

  • Remove the bulk_edit_posts action for now – #28112

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

  • Remove ‘Invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. user ID’ error in WP_REST_Users_Controller::update_item() – #56662
  • Support non-Latin characters in template route regex – #57329

RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.

  • Add a way to filter the revisions considered for deletion – #57320

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.

  • Implement wp_cache_get_multiple in wp_queue_posts_for_term_meta_lazyload#57150

Themes

  • Add caching to WP_Theme::is_block_theme()#57114
  • Remove local() from @font-face styles in _wp_theme_json_webfonts_handler() – #57430
  • Revert appearance tools theme support – #57649
  • Use add_action for pre_get_posts hook in _add_template_loader_filters()#57097

Toolbar

  • Prevent false positive on automated contrast testing – #56789

Upgrade/Install

  • Skip preloading Requests for WordPress versions before 4.6 – #57662

Users

  • Add support for RoboHash GravatarGravatar Is an acronym for Globally Recognized Avatar. It is the avatar system managed by WordPress.com, and used within the WordPress software. https://gravatar.com/. images in default user profile pics – #57493
  • Change parameters order in send_auth_cookies filter – #56971
  • Pass correct number of arguments to send_auth_cookies filter in wp_clear_auth_cookie()#56971
  • Pass the authentication scheme to the send_auth_cookies filter – #56971
  • Update get_avatar_url() and get_avatar() to include RoboHash support – #57493

Props

Thanks to the 165 (!!) people who contributed to WordPress Core on Trac last week: @costdev (33), @mukesh27 (22), @audrasjb (21), @sergeybiryukov (19), @desrosj (14), @sabernhardt (12), @poena (11), @hellofromTonya (10), @ocean90 (9), @aristath (8), @davidbaumwald (8), @peterwilsoncc (8), @flixos90 (8), @ntsekouras (8), @robinwpdeveloper (8), @paapst (7), @azaozz (7), @webcommsat (7), @JeffPaul (7), @jffng (6), @jhoffmann (6), @cbirdsong (6), @kau-boy (6), @MatthiasReinholz (6), @luminuu (6), @westonruter (6), @bedas (6), @jrf (6), @spacedmonkey (5), @garrett-eclipse (5), @mamaduka (5), @joedolson (5), @hellofromtonya (5), @kjellr (5), @adamsilverstein (4), @kebbet (4), @johnbillion (4), @ironprogrammer (3), @petitphp (3), @rudlinkon (2), @andrewserong (2), @Mamaduka (2), @antpb (2), @afragen (2), @afercia (2), @krunal265 (2), @nithins53 (2), @dmsnell (2), @swissspidy (2), @ryokuhi (2), @joemcgill (2), @antonvlasenko (2), @james-roberts (2), @jorgefilipecosta (1), @birgire (1), @gziolo (1), @hareesh-pillai (1), @jipmoors (1), @Chouby (1), @abidhasan112 (1), @pavelevap (1), @mercime (1), @dd32 (1), @chocofc1 (1), @Presskopp (1), @jeherve (1), @matclayton (1), @slieschke (1), @sergiomdgomes (1), @chintan1896 (1), @juliobox (1), @a4jpcom (1), @stalukder03 (1), @adeltahri (1), @arrasel403 (1), @10upsimon (1), @hvar (1), @aaroncampbell (1), @joyously (1), @jokerrs (1), @theode (1), @adamziel (1), @jhned (1), @kawserz (1), @faisal03 (1), @bookwyrm (1), @bhavz-10 (1), @dshanske (1), @NathanAtmoz (1), @oandregal (1), @ipajen (1), @obayedmamur (1), @bgoewert (1), @SteelWagstaff (1), @hughie.molloy (1), @ericlewis (1), @conner_bw (1), @hakre (1), @wojtek.szkutnik (1), @nicholaswilson (1), @pbearne (1), @galbaras (1), @danielbachhuber (1), @manfcarlo (1), @re_enter_rupok (1), @ajlende (1), @hanshenrik (1), @faguni22 (1), @nidhidhandhukiya (1), @wetah (1), @ehtmlu (1), @luehrsen (1), @rafinkhan (1), @sapayth (1), @devtanbir (1), @kmadhak (1), @kajalgohel (1), @reduanmasud (1), @samruddhikhandale (1), @shahidul95 (1), @scruffian (1), @wildworks (1), @kapilpaul (1), @smeunus (1), @thelovekesh (1), @dhusakovic (1), @kaneva (1), @abirhasandipu (1), @shraboni (1), @jaedm97 (1), @riccardodicurti (1), @anantajitjg (1), @mujuonly (1), @dinhtungdu (1), @wojtekn (1), @thomasplevy (1), @pedromendonca (1), @matveb (1), @priethor (1), @isabel_brison (1), @viralsampat (1), @cadic (1), @wppunk (1), @h4l9k (1), @d-signed (1), @travisaxton (1), @jorbin (1), @samiamnot (1), @benish74 (1), @mburridge (1), @helen (1), @antonyagrios (1), @afrin29 (1), @syhc (1), @teebee (1), @lucymtc (1), @bueltge (1), @lkraav (1), @TobiasBg (1), @lenasterg (1), @grl570810 (1), @wirecat (1), @sam1el (1), @craiglpeters (1), and @mahbubshovan (1).

Congrats and welcome to our 32 (!!) new contributors of the week: @jokerrs, @kawserz, @bookwyrm, @hughiemolloy, @nicholaswilson, @re_enter_rupok, @hanshenrik, @faguni22, @ehtmlu, @rafinkhan, @sapayth, @reduanmasud, @samruddhikhandale, @shahidul95, @smeunus, @abirhasandipu, @jaedm97, @riccardodicurti, @wojtekn, @h4l9k, @d-signed, @travisaxton, @samiamnot, @benish74, @antonyagrios, @afrin29, @syhc, @teebee, @grl570810, @wirecat, @sam1el, @craiglpeters ♥️

Core committers: @audrasjb (29), @sergeybiryukov (24), @peterwilsoncc (7), @davidbaumwald (6), @joedolson (6), @flixos90 (6), @hellofromtonya (5), @danielbachhuber (4), @desrosj (4), @youknowriad (3), @johnbillion (2), @jorbin (2), @spacedmonkey (2), @helen (1), @swissspidy (1), and @jorgefilipecosta (1).

#6-2, #core, #meta6545, #week-in-core

A Week in Core – August 29, 2022

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between August 22 and August 29, 2022.

  • 33 commits
  • 99 contributors
  • 46 tickets created
  • 10 tickets reopened
  • 45 tickets closed

The Core team is currently working on the next major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope., WP 6.1 🛠

The team has also started working on Twenty Twenty-Three, the next bundled theme that will be included with WP 6.1 🎨

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Build/Test Tools

  • Automatically rerun a workflow the first time it fails – #56407
  • Enable running the tests on PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 8.2 – #56009

Cache APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Remove private delegation from cache priming functions – #56386

Code Modernization

  • Explicitly declare WP-specific property in WP_SimplePie_File#56033
  • Explicitly declare all properties created in set_up() methods of various test classes – #56033
  • Explicitly declare all properties in POMO_Reader et al – #56033
  • Explicitly declare all properties in WP_Ajax_Upgrader_Skin#56033
  • Explicitly declare all properties in WP_Test_Stream#56033
  • Explicitly declare all properties in various tests – #56033
  • Remove dynamic properties in Tests_Comment_Walker#56033
  • Remove dynamic properties in WP_Test_REST_Posts_Controller#56033
  • Remove dynamic properties in WP_Test_REST_Users_Controller#56033
  • Remove dynamic properties in WP_UnitTestCase_Base#56033
  • Remove unused dynamic property in WP_Test_REST_Pages_Controller#56033

Coding Standards

  • Use strict comparisons in path_is_absolute()#36308

Docs

  • Correct typo in wp_maybe_clean_new_site_cache_on_update() parameter description – #55646

Editor

  • 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. Patterns: Add new Footers categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.#56416
  • Backportbackport A port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes from GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ into Core for WP 6.0.2 RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta).#56414
  • Ensure get_block_templates() returns unique templates or template parts – #56271
  • Ensure that timezone.offset passed to @wordpress/date is a float – #56459

Help/About

  • Improve vertical alignment in the Additional Design Tools section – #56210

Media

  • Account for Windows when normalizing file paths – #36308

Query

  • Cache post ID database query within WP_Query#22176, #55652

Site Health

  • Don’t show issue groups unless there are items in them – #47222
  • Improve the fatal error handling text in multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site scenarios – #48929
  • Introduce persistent object cache check – #56040

Themes

  • Add support for Update URI headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes.#14179, #23318, #32101

Props

Thanks to the 99 (!) people who contributed to WordPress Core on Trac last week: @jrf (14), @costdev (8), @SergeyBiryukov (7), @antonvlasenko (5), @desrosj (4), @johnbillion (4), @audrasjb (3), @peterwilsoncc (2), @markjaquith (2), @ironprogrammer (2), @mukesh27 (2), @DavidAnderson (2), @jorbin (2), @dd32 (2), @hellofromTonya (2), @Clorith (2), @spacedmonkey (2), @tillkruss (2), @chriscct7 (2), @knutsp (1), @mordauk (1), @talldanwp (1), @nvartolomei (1), @aspexi (1), @benoitchantre (1), @GaryJ (1), @Ipstenu (1), @TJNowell (1), @gMagicScott (1), @Otto42 (1), @mikejolley (1), @lev0 (1), @juliobox (1), @Rarst (1), @jb510 (1), @GeekStreetWP (1), @khromov (1), @ryno267 (1), @rudlinkon (1), @gregorlove (1), @marybaum (1), @JavierCasares (1), @ayeshrajans (1), @skithund (1), @zieladam (1), @tomepajk (1), @Mte90 (1), @oglekler (1), @webcommsat (1), @dougwollison (1), @weboccults (1), @sabernhardt (1), @joostdevalk (1), @swissspidy (1), @jonmackintosh (1), @uofaberdeendarren (1), @leemon (1), @georgestephanis (1), @williampatton (1), @damonganto (1), @ocean90 (1), @birgire (1), @stevenlinx (1), @Whissi (1), @kebbet (1), @sergeybiryukov (1), @scribu (1), @ryan (1), @nacin (1), @meloniq (1), @drewapicture (1), @batmoo (1), @aaroncampbell (1), @poena (1), @robinwpdeveloper (1), @palmiak (1), @rkaiser0324 (1), @davidbaumwald (1), @DrewAPicture (1), @jdgrimes (1), @furi3r (1), @crazycoders (1), @rmccue (1), @miqrogroove (1), @afragen (1), @apedog (1), @markparnell (1), @grapplerulrich (1), @earnjam (1), @mweichert (1), @joyously (1), @dingdang (1), @infolu (1), @JeroenReumkens (1), @nhuja (1), @sean212 (1), @filosofo (1), @design_dolphin (1), and @Synchro (1).

Congrats and welcome to our 4 new contributors of the week: @tillkruss, @tomepajk, @Whissi, @rkaiser0324 ♥️

Core committers: @sergeybiryukov (20), @desrosj (3), @clorith (2), @antpb (2), @peterwilsoncc (2), @noisysocks (1), @flixos90 (1), @mcsf (1), and @gziolo (1).

#6-1, #core, #week-in-core

A Week in Core – November 15, 2021

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between November 8 and November 15, 2021.

  • 116 commits (!)
  • 204 contributors (!)
  • 57 tickets created
  • 10 tickets reopened
  • 89 tickets closed

The Core team is currently working on the major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope., WordPress 5.9 🛠

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

About/Help

  • Add commas to end of multi-line array items – #54357
  • add docs links to several screens – #54357

Administration

  • Restores “Customize” menu item for non-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. themes and moves for block themes – #54418

Bootstrap/Load

  • Add HTTP/3 as a valid HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. protocol. – #54404
  • Bootstrap/Load: Check $_SERVER['SCRIPT_NAME'] exists before passing to strpos() in wp_fix_server_vars()#54142

Build/Test Tools

  • Cache the results of PHP_CodeSniffer across workflow runs – #49783
  • Exclude plugins and non-bundled themes from PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher compatibility scans – #54425
  • Make adjustments to how Quick Draft tests confirm expected behavior – #54409
  • Mock no results remote request in WP_REST_Block_Directory_Controller:: get_items() – #54420
  • Mock remote request for WP_REST_Block_Directory_Controller::get_items()#54420
  • Mock remote request for unknown 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 https://wordpress.org/plugins/ or can be cost-based plugin from a third-party in WP_REST_Plugins_Controller::create_item()#54420
  • Restore the httpsHTTPS HTTPS is an acronym for Hyper Text Transfer Protocol Secure. HTTPS is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted. This is especially helpful for protecting sensitive data like banking information. URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for browserify-aes – #54337
  • Update all 3rd party GitHubGitHub GitHub is a website that offers online implementation of git repositories that 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. https://github.com/ actions to the latest versions – #53363
  • Change default GitHub branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.#54399
  • Update qUnit test fixtures after [52128]#54336

Bundled Theme

  • Display required text field in core themes – #54392
  • Import Twenty Twenty-Two, the new default theme for WordPress 5.9 – #54318
  • Twenty Eleven: Improve comment form styling for required fields – #54408
  • Twenty Nineteen: Apply coding standards fix from running composer format#54392
  • Twenty Twenty-One: Add privacy policy link to footer – #53445
  • Twenty Twenty-One: Correct default image alignment in the editor – #53809
  • Twenty Twenty-One: Prevent printing skip link focus fix when SCRIPT_DEBUG is enabled – #54429
  • Twenty Twenty-Two: Import the assets directory from GitHub – #52081
  • Twenty Twenty-Two: Import the latest changes from GitHub – #54318

Coding Standards

  • Minor alignment fix after [52058]#52058
  • PHP Code style errors – #43700
  • PHP Code style errors – #43700
  • Rename the $gzData argument to $gz_data in WP_Http_Encoding::compatible_gzinflate()#53359
  • Revert accidental image changes in [52171]#54168
  • Revert unrelated change to wp_send_user_request()#43700
  • Use strict comparison in wp-admin/includes/ms.php#47422

Comments

  • Don’t output “cancel comment reply link” if comments aren’t threaded – #37267
  • Use get_comment_author() to retrieve the comment author name in get_comment_reply_link()#53678

Database

  • WPDB: Capture error in wpdb::$last_error when insert fails instead of silently failing for invalidinvalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. data or value too long – #37267

Docs

  • Add missing documentation for the $javascript parameter of the wp_inline_script_attributes 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.#53399
  • Avoid using “CPT” instead of “custom post typeCustom Post Type WordPress can hold and display many different types of content. A single item of such a content is generally called a post, although post is also a specific post type. Custom Post Types gives your site the ability to have templated posts, to simplify the concept.” – #53399, #54335, #54336
  • List the expected return type first in a few functions – #53399

Editor

  • Update SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. props to ignore new asset files – #54337, #53361
  • Update SVN props to ignore new asset files – #54337, #53361
  • Add documentation for the $block_editor_context parameter of the block_editor_rest_api_preload_paths hook – #52920, #53399
  • Site Editor and PHP changes from GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 10.1 – 11.9 – #54337
  • Site Editor: Load as full screen by default – #54337
  • Add Navigation Area infrastructure – #54337
  • Add block theme infrastructure – #54335
  • Add get_query_pagination_arrow function to core
  • Add public functions for interacting with global styles & settings – #54336
  • Fix fatal call to add_query_args() – #54337
  • Fix how the Site Editor is linked to – #54337
  • Fix incorrect access of ID field – #54337
  • Global Styles Rest endpoints – #54336
  • Global styles user content escaping – #54336
  • Load iframed assets in Site Editor – #54337
  • Update wordpress packages – #54337
  • Fix Linting error affecting trunk
  • Update wordpress packages – #54337
  • Update wordpress packages – #54337
  • Update block-theme-pl_PL.mo file. – #54336

Embeds

  • Conditionally enqueue wp-embed only if needed and send ready message in case script loads after post embed windows – #44632, #44306
  • Fix inclusion of wp-embed-template script and style when SCRIPT_DEBUG is disabled – #44632
  • Fix parsing of post embeds in wp_filter_oembed_result() by appending wp-embed script instead of prepending it in get_post_embed_html()#44632

External Libraries

  • Update the regenerator-runtime package to version 0.13.9#54027
  • Update ‘reactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.’ and ‘react-dom’ – #54337

General

  • Add “noopener” to wp_list_bookmarks() output – #53839
  • General: Convert wp_list_filter() into a wrapper for wp_filter_object_list()#53988
  • General: Minor fixes to Global Style related code – #54336

HTTP APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Ensure value returned from 'http_allowed_safe_ports' is an array to avoid PHP 8+ TypeError fatal error – #54331
  • Introduce 'http_allowed_safe_ports' filter in wp_http_validate_url()#54331

Internationalization

  • Add language switcher on login/registration screens – #43700
  • Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. wrapper for the Global Styles post type description – #54336

Login and Registration

  • Fix failing test for “email already exists” registration error improvement – #53631
  • Improve “email already exists” registration error message – #53631
  • Improve messaging for invalid log-out nonces – #52600
  • Pass $errors parameter to registration_redirect filter – #53992
  • Wrap long usernames in login error message – #37617

Mail

  • Add wp_mail_succeeded hook to wp_mail#53826

Media

  • Add “webp” extension to wp.media.controller.Library isImageAttachment#53917
  • Change upload button to a file input for better e2e targeting – #54168
  • Featured imageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. modal loads only selected image – #42937
  • Featured image modal loads only selected image – #53765
  • Refine the heuristics to exclude certain images and iframes from being lazy-loaded to improve performance – #53675, #50425
  • Revert media uploader input change in [52059]#54168, #54411
  • Add audible notice on menu item add or remove – #53840

Options, MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. APIs

  • Correct docs for $_meta_value parameter in xxx_{$meta_type}_meta hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.#53102

Posts, Post Types

  • Add $old_status parameter to {$new_status}_{$post->post_type} action – #36180
  • Mark the wp_global_styles post type as _builtin#54336
  • Remove gutenberg text domain from post type strings – #54336, #54337
  • Update _edit_last meta when posts are edited in bulk – #42446

Quick/Bulk Edit

  • Disable auto-correct for slugs – #50499

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

  • Add /wp/v2/block-navigation-areas endpoint – #54393
  • Add batch support for posts and terms controllers – #53063
  • Expose the site icon in the REST API index – #52321
  • Introduce Menu management endpoints – #40878
  • Regenerate wp-api-generated.js after [52068]#53063
  • Remove experimental block menu item types – #40878

RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.

  • Introduce wp_get_post_revisions_url() to get URL for editing revisions – #39062

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.

  • Allow get_*_*_link() and edit_term_link() functions to accept a term ID, WP_Term, or term object – #50225
  • Change some static strings to registration labels – #43060
  • Clarify the taxonomy labels for customizing the field descriptions on Edit Tags screen: – #43060
  • Display update notices when adding terms – #42937
  • Document that the get_terms filter can have null for $taxonomies#54222

Template

  • Fix “undefined index: 00” when archive month query is empty in wp_title()#31521

Themes

  • Avoid fatal error loading adminadmin (and super admin) styles when SCRIPT_DEBUG is false#54401, #54336
  • Check both parent and child themes for a theme.json file – #54401
  • Force a scrollbar on the Themes page to prevent visual shake on hover – #53478
  • Twenty Twenty-Two is now the default theme – #54318
  • Update theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. classes for WordPress 5.9 – #54336
  • Hide Customize from admin bar when using a block theme – #54337

Upgrade/Install

  • Deactivate the Gutenberg plugin if its version is 11.8 or lower – #54405
  • Update screen reader text counts in adminbar – #29022

Users

  • Introduce wp_list_users() function – #15145
  • Prevent infinite loopLoop The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. when using capability checks during determine_current_user on multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site#53386

Widgets

  • Use isset() in WP_Widget:: display_callback() to support ArrayIterator and ArrayObject#52728
  • Wraps long 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. titles in classic Widgets screen – #37451

Props

Please note that it was the most prolific week since we restarted the Week in Core blogblog (versus network, site) posts last year!

Thanks to the 204 (!) people who contributed to WordPress Core on Trac last week: @hellofromTonya (28), @audrasjb (21), @sabernhardt (14), @desrosj (11), @sergeybiryukov (11), @costdev (10), @johnbillion (9), @oandregal (8), @spacedmonkey (7), @peterwilsoncc (7), @poena (6), @swissspidy (6), @afercia (6), @youknowriad (6), @noisysocks (5), @davidbaumwald (5), @hellofromtonya (4), @birgire (4), @TimothyBlynJacobs (4), @SergeyBiryukov (4), @mukesh27 (3), @Mamaduka (3), @adamsilverstein (3), @antonvlasenko (3), @aristath (3), @pento (3), @dd32 (3), @chaion07 (3), @westonruter (3), @jorbin (3), @TobiasBg (2), @chrisvanpatten (2), @joedolson (2), @soean (2), @dilipbheda (2), @manishamakhija (2), @kjellr (2), @garrett-eclipse (2), @flixos90 (2), @kafleg (2), @Clorith (2), @dlh (2), @Boniu91 (2), @justinahinon (2), @ryelle (2), @ocean90 (2), @mte90 (2), @hareesh-pillai (2), @jrf (2), @webcommsat (2), @drewapicture (2), @tobifjellner (2), @bgardner (1), @rviscomi (1), @sourav926 (1), @jonoaldersonwp (1), @azaozz (1), @briceduclos (1), @colorful-tones (1), @tweetythierry (1), @pbearne (1), @sebastianpisula (1), @aaroncampbell (1), @kapilpaul (1), @xknown (1), @chriscct7 (1), @donmhico (1), @gziolo (1), @malthert (1), @greenshady (1), @nacin (1), @rohan013 (1), @bernhard-reiter (1), @ntsekouras (1), @tw2113 (1), @Nikschavan (1), @keyur5 (1), @paaljoachim (1), @jdy68 (1), @dgwyer (1), @almendron (1), @kallookoo (1), @zieladam (1), @palmiak (1), @andraganescu (1), @dingo_d (1), @isabel_brison (1), @utz119 (1), @kadamwhite (1), @scruffian (1), @NateWr (1), @schlessera (1), @Spacedmonkey (1), @ribaricplusplus (1), @talldanwp (1), @wpscholar (1), @pgking (1), @andynick (1), @richtabor (1), @kraftbj (1), @dimadin (1), @gregrickaby (1), @ellenbauer (1), @jffng (1), @dansoschin (1), @karmatosed (1), @littlebigthing (1), @williampatton (1), @onemaggie (1), @matveb (1), @mburridge (1), @mtoensing (1), @nickcernis (1), @nielslange (1), @wparslan (1), @georgestephanis (1), @davidkryzaniak (1), @lukecarbis (1), @galbaras (1), @jdgrimes (1), @justindocanto (1), @kwisatz (1), @liammitchell (1), @lucasw89 (1), @nettsite (1), @dpegasusm (1), @nlpro (1), @procodewp (1), @psufan (1), @richardfoley (1), @skunkbad (1), @travisnorthcutt (1), @fpcsjames (1), @asif2bd (1), @zoiec (1), @ianhayes94 (1), @david.binda (1), @mista-flo (1), @jeffpaul (1), @bravokeyl (1), @gkloveweb (1), @hitendra-chopda (1), @ovann86 (1), @anthonyeden (1), @pankajmohale (1), @sabrib (1), @xkon (1), @dlt101 (1), @mnelson4 (1), @datainterlock (1), @anandau14 (1), @woodyhayday (1), @henrywright (1), @aadilali (1), @jeremyescott (1), @davidmosterd (1), @herregroen (1), @michelwppi (1), @kebbet (1), @iaaxpage (1), @mclaurent (1), @theMikeD (1), @paulschreiber (1), @jeremyfelt (1), @dontgo2sleep (1), @swb1192 (1), @afragen (1), @JeffPaul (1), @Collizo4sky (1), @antpb (1), @hasanuzzamanshamim (1), @jigneshnakrani (1), @sourovroy (1), @rachelbaker (1), @soniakash (1), @benitolopez (1), @danielbachhuber (1), @PieWP (1), @szaqal21 (1), @mjulian7 (1), @pputzer (1), @mamaduka (1), @karpstrucking (1), @mcjambi (1), @ashfame (1), @annezazu (1), @calebwoodbridge (1), @guillaumeturpin (1), and @timothyblynjacobs (1).

Congrats and welcome to our 36 (!!) new contributors of the week: @manishamakhija, @rviscomi, @briceduclos, @keyur5, @kallookoo, @pgking, @andynick, @dansoschin, @mburridge, @mtoensing, @nickcernis, @wparslan, @justindocanto, @kwisatz, @liammitchell, @lucasw89, @nettsite, @dpegasusm, @psufan, @skunkbad, @zoiec, @ianhayes94, @anthonyeden, @sabrib, @dlt101, @datainterlock, @woodyhayday, @aadilali, @mclaurent, @dontgo2sleep, @swb1192, @hasanuzzamanshamim, @benitolopez, @mjulian7, @mcjambi, @calebwoodbridge. ♥️

Core committers: @hellofromtonya (23), @desrosj (18), @noisysocks (14), @joedolson (12), @sergeybiryukov (8), @jorgefilipecosta (7), @davidbaumwald (6), @peterwilsoncc (5), @timothyblynjacobs (5), @westonruter (4), @johnjamesjacoby (2), @jorbin (1), @johnbillion (1), @spacedmonkey (1), @adamsilverstein (1), @ocean90 (1), @youknowriad (1), @flixos90 (1), @antpb (1), @jffng (1), and @ryelle (1).

#5-8-2, #5-9, #core, #week-in-core

A Week in Core – January 25, 2021

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between January 18, 2021 and January 25, 2021.

  • 22 commits
  • 31 contributors
  • 50 tickets created
  • 7 tickets reopened
  • 47 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component.

Code changes

App Passwords

  • Extract Basic Auth check into a reusable filterable function – #52066
  • Use correct translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. function for a heading on Authorize Application screen – #52351

Blocks

  • Add automatic RTL handlind for 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. styles registered from metadata – #52301
  • Blocks: Add i18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill. support to register_block_type_from_metadata#52301

Bundled Themes

  • Twenty Twenty-One: Consistently use Yoda condition for display_title_and_tagline setting – #52329
  • Twenty Twenty-One: Add missing HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. comments for </header> tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)#52328
  • Twenty Twenty-One: Add missing styles for <button> element – #52029
  • Twenty Twenty-One: Clean up Button styles – #51927

Docs

  • Correct default value for the number argument of wp_tag_cloud()#52348
  • Document globals in dropdown_categories() and dropdown_link_categories()#41504
  • Docs: Fix typo in WP_Links_List_Table DocBlockdocblock (phpdoc, xref, inline docs)#52349

Export

  • Create an export-specific 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. for post titles – #52250

External Libraries

  • First pass at fixing jQuery deprecations in WordPress core and bundled themes – #51812

Media

  • Ensure get_post_status() does not contain half a comment – #52326
  • Ensure get_post_status() returns correct result for attachments – #52326

Menus

  • Fix linting errors introduced in [50013]#52189
  • Make use of wp_resolve_post_date() when updating menu items – #52189

Posts

  • Create a new function for resolving the post date – #52187

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.

  • Support type coercion when validating the enum JSONJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. Schema keyword – #51911
  • REST API: Support embedding links in rest_preload_api_request()#51722

Robots

  • Introduce Robots APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.#51511

Toolbar

  • Update Documentation and Support links – #52352

Upgrade/Install

  • Display version number on the “Re-install now” button on WordPress Updates screen – #51774

Props

Thanks to everyone who contributed to WordPress Core on Trac last week:

@audrasjb (5), @jmdodd (3), @SergeyBiryukov (2), @mukesh27 (2), @TimothyBlynJacobs (2), @poena (2), @ocean90 (2), @pawki07 (2), @swissspidy (2), @timothyblynjacobs (2), @megphillips91 (1), @scruffian (1), @flixos90 (1), @peterwilsoncc (1), @allancole (1), @slaFFik (1), @afragen (1), @westonruter (1), @azaozz (1), @adamsilverstein (1), @freewebmentor (1), @Clorith (1), @akramipro (1), @spacedmonkey (1), @lpawlik (1), @aaroncampbell (1), @archon810 (1), @SeBsZ (1), @umangvaghela123 (1), @yakimun (1) and @aristath (1).

Please welcome our new Core contributor of the week ♥️ @akramipro

Core committers: @sergeybiryukov (11), @pento (3), @timothyblynjacobs (3), @peterwilsoncc (2), @gziolo (2) and @flixos90 (1).

#5-6-1, #5-7, #week-in-core

A Week in Core – November 16, 2020

Welcome back to a new issue of week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between November 9 and November 16, 2020.

  • 30 commits
  • 114 contributors
  • 39 tickets created
  • 8 tickets reopened
  • 46 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers based on the Trac timeline for the period above. The following is a summary of commits, organized by component.

Code changes

Administration

  • Make sure auto-update counts properly update when bulk deleting plugins or themes – #50870

Application Passwords

  • Unify availability language – #51513
  • Further accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) improvements – #51580
  • Include authorization rewrite rule in default multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site htaccess – #51772
  • MOAR accessibility improvements – #51580

Build/Test Tools

  • Only enforce PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher extension requirements when running core tests – #50640
  • Tests QUnit: Remove restriction on running the TinyMCE Textpattern WP 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 https://wordpress.org/plugins/ or can be cost-based plugin from a third-party tests in PhantomJS – #42009
  • Clean up the new contributor welcome message – #50401

Bundled Themes

  • Introduce 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. patterns for Twenty Seventeen – #51100
  • Introduce block patterns for Twenty Sixteen – #51101
  • Twenty Nineteen: Remove unnecessary references to some variables in twentynineteen_hsl_hex() before they are defined – #49052
  • Twenty Twenty-One: Merge the latest changes changes from GitHubGitHub GitHub is a website that offers online implementation of git repositories that 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. https://github.com/ for BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 4 – #51526

Canonical

  • Prevent ID enumeration of private post slugs – #5272

Customize

  • Temporary fix for autosave restore notice not being removed – #51425
  • Ensure multiple CSSCSS Cascading Style Sheets. classes are passed to nav_menu_link_attributes as an array – #43113
  • Exclude 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. ID attributes from search – #46456

Database

  • Clean up the post_category column removed from DB schema for new installations in WordPress 28 – #51288

Documentation

  • For clarity, add some information about the return types of get_option()#51278
  • Add missing descriptions for _WP_List_Table_Compat methods – #46842
  • Add missing descriptions for Automatic_Upgrader_Skin methods – #44546
  • Clarify that get_pages() returns an array of pages, not an HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. list – #39049
  • Correct the Chocolatey package name for Node in the local environment setup instructions – #51414
  • Add missing full stop for a comment in create_initial_rest_routes()#51788

Editor

  • Update WordPress packages for RC1 – #51793
  • Move pre_render_block, render_block_data, render_block_context#51612
  • Update packages – #51696
  • Display short description from block directory in results – #51212

Embeds

  • Document $args in wp_oembed_get()#51269

Feeds

  • Don’t treat media URLs with fragments as unique for enclosures – #47421
  • Add an early exit when calling RSS functions directly – #35835
  • Register transient feed cache handler using the recommended method for SimplePie 13 or later – #29204

General

  • Convert wp_array_get() to a “private” function and add tests – #51720
  • Code Modernization: Only call libxml_disable_entity_loader() in PHP < 8 – #50898

Help/About

  • Add Site Health Status dashboard widget to the Help → Content tab – #51745

Internationalization

  • Remove HTML tags from translatable strings on WordPress Updates screen – #51742

Media

  • Avoid fatal error in wp_prepare_attachment_for_js()#51791
  • Allow users to switch from media grid to list mode in media library – #51396
  • Adjust box-sizing for audio players – #51685
  • Adjusts alignment of file name text in browser uploader – #41648
  • Improve count in Media Library pagination – #39968

Multisite

  • More consistency for clean_dirsize_cache()#19879

Permalinks

Plugins

  • Make sure the HTML ID attributes for plugin checkboxes are unique – #51256

Upgrade/Install

  • Account for the automatic_updater_disabled 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. in core auto-update settings UIUI User interface#51742
  • Better UI for auto-update settings on update screen – #51742
  • Enable all core autoupdates for new installs – #51743

Widgets

  • Do not use wrapping container in the adminadmin (and super admin) – #19709

Props

Thanks to everyone who contributed to WordPress Core last week:

@audrasjb (8), @SergeyBiryukov (8), @dd32 (5), @sabernhardt (5), @helen (4), @hellofromTonya (4), @TimothyBlynJacobs (4), @desrosj (4), @johannadevos (4), @ryelle (3), @kjellr (3), @poena (3), @dlh (3), @bridgetwillard (2), @beafialho (2), @pbiron (2), @melchoyce (2), @justinahinon (2), @noisysocks (2), @afercia (2), @azaozz (2), @karmatosed (2), @alexstine (2), @mista-flo (2), @onemaggie (2), @nacin (2), @peterwilsoncc (2), @isabel_brison (2), @ocean90 (2), @mukesh27 (2), @rogerlos (1), @kburgoine (1), @archduck (1), @dossy (1), @mopsyd (1), @Mte90 (1), @dshanske (1), @whyisjake (1), @subscriptiongroup (1), @andystitt829 (1), @thefarlilacfield (1), @jfoulquier (1), @fabifott (1), @joedolson (1), @NathanAtmoz (1), @HoaSi (1), @l3rady (1), @ravipatel (1), @samful (1), @Viper007Bond (1), @OptimizingMatters (1), @lpointet (1), @tzafrir (1), @pishmishy (1), @nlpro (1), @donmhico (1), @Denis-de-Bernardy (1), @Ipstenu (1), @bph (1), @joostdevalk (1), @andraganescu (1), @justlevine (1), @roikles (1), @krupajnanda (1), @mikeschroder (1), @MadtownLems (1), @stulab (1), @aaroncampbell (1), @lucagrandicelli (1), @ayeshrajans (1), @Pillai (1), @useStrict (1), @flymike (1), @ReneHermi (1), @ankitmaru (1), @gziolo (1), @gaambo (1), @david.binda (1), @rebasaurus (1), @williampatton (1), @zodiac1978 (1), @TheGP (1), @swissspidy (1), @thib3113 (1), @hellofromtonya (1), @jrf (1), @johnbillion (1), @Toro_Unit (1), @karthikbhatb (1), @hareesh-pillai (1), @kishanjasani (1), @SaeedFard (1), @dilipbheda (1), @ComputerGuru (1), @luminuu (1), @markoheijnen (1), @Senning (1), @afragen (1), @donsony (1), @jamescollins (1), @davidbaumwald (1), @leogermani (1), @aristath (1), @Hareesh (1), @ben.meredith@gmail.com (1), @jorgefilipecosta (1), @jffng (1), @marybaum (1), @hedgefield (1), @fierevere (1), @markparnell (1), @pbearne (1), @ovenall (1) and @jeffpaul (1).

Core committers: @sergeybiryukov (17), @helen (8), @noisysocks (4), @timothyblynjacobs (4), @antpb (4), @desrosj (3), @johnbillion (3), @peterwilsoncc (2), @whyisjake (1) and @azaozz (1).

#core-editor, #week-in-core

Editor chat summary: 28 October, 2020

This post summarizes the latest weekly Editor meeting (agendaslack transcript). This meeting was held in the #coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.-editor 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/. channel on 2020-10-28 14:00 UTC and was moderated by @annezazu.

Announcements

  • Gutenberg 9.2.2 was released on October 26th.
  • WordPress 5.6 Beta 2 was released on October 27th! Please install on a test site, play around, try to break everything, report bugs, and all that good stuff: 
  • WordPress 5.5.2 is coming to your WordPress site on October 29th.

Monthly Plan & Key Project Check-in

For context, here’s the overarching plan for October.

Widgets Screen Update shared by @andraganescu

The focus for the people previously working on this screen is now mostly on 5.6 efforts. However, there still is work around advancing various widgets project related issues. For example, @zieladam‘s PR about fixing concurrency related issues, something which became apparent while working on the widgets editor.

Reminder: the 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. core sync chat is suspended until 5.6 has been released!

Global Styles Update shared by @nosolosw

Global styles has advanced nicely this month with @jorgefilipecosta doing great work related to user-provided color palettes, etc. We’re now going to have a stronger focus on tighten things up to work great with the TwentyTwentyOne 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. based theme. Some of the items in the first wave of work will also be moved to the “future” iteration at this point.

Full Site Editing Update shared by @vindl

Full Site Editing – Navigation update:

  • Search feature for the navigation component has been merged. The next step is integrating it with the site editor.
  • It’s now possible to create new templates from the navigation sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. that correspond to default ones from template hierarchy.
  • We shipped the RTL support for the navigation component.
  • PR for creating template parts from multiple blocks selection has been merged.
  • There is a proposed framework PR for introducing a custom status for templates provided by themes (or plugins) as HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. files, which haven’t been customized by the user yet.

In other news:

Task Coordination

Note: Anyone reading this summary outside of the meeting, please drop a comment in the post summary, if you can/want to help with something.  Remember: don’t just focus on code contributions!

@nosolosw

Mainly focused on fixing issues raised in BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 and will continue to help with that, but will also come back at global styles work.

@aaroncampbell

Was trying to verify whether Single Column Functionality, which looks like it made it into 9.2, is going into WP 5.6. As a result, this small screen display issue was put in the 5.6 must-have project board to be triaged.

@annezazu

Wrangled some quicker doc updates: glossary terms to include more block based items, triage instructions to include tables for clarity & reasons for closing, and updated the Versions in WordPress doc for 5.6 (need to do the same for 5.5.2). Outside of that, helped clear out a bit of a backlog for unlabeled items, did some FSE testing/bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. reporting, and started gathering resources for the contributor working group effort!

@youknowriad

Starting to work on more FSE tasks: trying to streamline the flows to enable/disable FSE themes. Still working on documentation for 5.6 new APIs and dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.. Hoping to have time to chime in on this thread soon.

@mkaz

Has been working on improving e2e tests.

Open Floor

Should we bail on e2e tests after a single failure? Raised by @mkaz.

Marcus has been working on trying to improve tests and asked the group for thoughts on whether we should bail on e2e tests after a single failure as it’s not clear if there’s value in doing so. This is particularly the case for GitHubGitHub GitHub is a website that offers online implementation of git repositories that 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. https://github.com/ Actions to keep running all the tests after an error happens. After a quick discussion with people sharing their differing approaches to handling failures, @youknowriad summed up the root issue nicely: “I feel the issue is not that we run the whole suite on github but more that the tests actually fail…What we should do is actually take the time to fix the failures even if we’re not responsible for them”.

What should be included in the next “What’s Next” in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ post? Raised by @daisyolsen.

@nosolosw made sure to link to the previous update around Global Styles. @youknowriad mentioned both that writing Dev Notes should be mentioned for preparing for 5.6 and that he personally would like to see a greater focus on FSE related work.

Is the current plan to use PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher files instead of static HTML files for FSE? Raised by @johnstonphilip.

@youknowriad once more swooped in to share that there’s an exploration along those lines being done here.

#core-editor #core-editor-summary

Editor chat summary: 7 October, 2020

This post summarizes the weekly editor chat meeting (agenda here) held on 2020-10-14 14:00 UTC in Slack. Moderated by @andraganescu.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 9.1

  • @youknowriad reiterated the main points of the release: improvements for theme.jsonJSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. shape and developpers APIs to control the editor, the widgets screen improved and a few nice UIUI User interface iterations including 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. patterns selection on the inserter.

5.6 Project board

  • @isabel_brison drew some attention to the issues in the To do and the Needs Review columns
  • @cguntur shared the issue tracking dev notesdev note Each important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase. and @youknowriad noticed it could use some updates  to remove some of the 5.5 dev notes labels from the PRs

Monthly Plan & Key Project Updates

We requested updates on the key projects.

Widgets screen

@andraganescu provided some updates:

  • Many bugs fixed in the past week
  • Ongoing work to improve drag and drop
  • Reusable blocks will be ready for the widgets editor
  • The project board was shared

Global Styles

@jorgefilipecosta provided the update:

Full Site Editing

@vindl updates on Milestone 2:

  • The PR for porting pages selector dropdown to the navigation sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. is ready to be merged once e2e tests are fixed.
  • The initial PR that adds a basic document settings dropdown to the site editor has been merged. There are ongoing design iterations to determine the right content for it.
  • Spotlight mode for template parts has been merged and we closed the template part visibility issue. The hover interaction for template parts is still being discussed and it’s not clear whether we’ll end up landing it.

@ntsekouras provided an update on Milestone 5:

  •  The `Query` block now supports Custom Post Types and (soon to be merged) we have a Latest Pages block variation

CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.

@andraganescu provided some updates:

  • there are explorations to make the Customizer work with the new blocks in 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. areas functionality
  • there were also a couple suggestions on how to best solve it architecturally

Task Coordination

  • @mkaz
    • I’m focusing on various Social Links issues since the widget screen is going live, social could use some love. The two biggest ones left are Placeholder experience and icon sizing.
  • @timothyblynjacobs
    • I worked on moving the widgets screen to use the new sidebars & widgets endpoints. This could really use more eyes: PR: 26086
  • @annezazu
  • @vcanales
    • I have been working on refactoring @wordpress/date  to move away from momentjs. Tests passing right now, but there are a couple of formatting options that were ported from PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher that are a bit tougher to achieve PR: 25782
  • @ntsekouras
  • @itsjonq
  • @paaljoachim
  • @youknowriad
    • ComboboxControl for parent page selector
    • Block supports APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
    • Reviewing a number of PRs (templateLock, video tracks, usage of block api v2)
    • Helping with the merge with CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress..
  • @jorgefilipecosta
    • Continued the iterations on some PR’s I have open, namely video tracks, template lock updates
    • Improved the code samples of the scripts I used that will be shared as part of the Block Editor Release Process doc (these scripts were for personal use and deserved a little bit of polishing to be publicly shared).
    • Rewrote and clean up the “Package update and core path” and “Cherry picking” sections of the Block Editor Release Process doc.
    • Update core to be able to use wp-scripts packages-update command to make core patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. creation easier.
    • Submitted and commit the WordPress core update patch.
    • Made some improvements to the back-compatibility required for WordPress 5.6.
    • Iterated and merged the automatic generation of preset classes and the user-editable color palette.
    • Did Multiple PR reviews and answered pings I had pending.

Open Floor

Cover: add repeated background option.

Character count in the post editor

Extending the global styles typography options

  • @kirilzhelyazkov shared this issue to get more eyes as it extends the global styles typography options

Thanks to everyone who attended.

Editor chat summary: 7 October, 2020

This post summarizes the weekly editor chat meeting (agenda here) held on 2020-10-07 14:00 UTC in Slack. Moderated by @get_dave.

GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 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 https://wordpress.org/plugins/ or can be cost-based plugin from a third-party updates

  • Attendees were reminded that the release of Gutenberg 9.2.0 will be delayed by 1 week in order to better sync with the BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 for WordPress 5.6.
  • This means that October 19th will be the RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). for Gutenberg 9.2 and the stable release will be on October 21.
  • We reviewed @youknowriad‘s “What’s new in Gutenberg” post focusing mainly on the last major releasemajor release A release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. of Gutenberg 9.1.0. Highlights included:
    • 200 commits and 77 contributors!
    • new `ComboBoxControl` component – useful for making a selection where the number of entries can be very high.
    • Lots of accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) enhancements.
    • Category selection for Block Patterns.
    • “Open in new tab” feature for the Social Links 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..
    • Image Size control for the Media & Text block. 
  • A patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. release for Gutenberg 9.1.1 was also published during the chat which contained fixes for the 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. screen.

Preparation for WordPress 5.6 Beta 1

  • WordPress 5.6 will be the third and final major release of WordPress for 2020. As mentioned above Beta 1 is due on October 20th and this represents the cut-off point for new commits/features.
  • The focus for Gutenberg this month will be on deciding what can/cannot be ready for inclusion in WordPress 5.6.
  • A reminder that the Navigation Screen has already been removed from 5.6 in order that we can focus hard on refining the Widgets Screen (and associated editor APIs) with the aim of having it ready for inclusion.
  • Follow along with where things stand on this WordPress 5.6 Must Haves project board.

Monthly Plan & Key Project updates

Widgets screen

@mapk, @andraganescu and @zieladam provided the update:

  • Moved out of experimental status.
  • Big focus for this month in an effort to have it included in WordPress 5.6.
  • @mapk has created some issues around keyboard navigation in widgets screen and will complete all design related issues today (hopefully).
  • @zieladam noted that bringing the new editor into the customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. is quite a challenge. We would appreciate commenting with any and all ideas anyone might have on this issue.
  • @zieladam said they’re also hoping to bring custom blocks and reusable blocks into the widgets editor soon (right now only coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blocks are available).
  • Please help with testing – there’s a call for testing and a place to share Issues identified.
  • Follow the project board for the Widgets Screen.

Global Styles & Editor focused APIs

@jorgefilipecosta provided the update:

  • Editable color palette ready to be merged.
  • PR that passes the editor settings dynamically, so when a setting is edited on the edit site screen the block editor shows immediately without a need for a reload.
  • Important proposal for a mechanism to automatically generate the preset classes (e.g.: themes will not need to create classes for colors, gradients, font sizes etc anymore).
  • Many follow up PR’s that we need to do after merging this ones:
    • Generate preset classes on the client-side
    • Make sure the palettes that appear on the global styles blocks are the ones associated with that block not the global ones (currently it just uses what useEditorFeature returns and it seems to be returning the global ones).
    • Make sure we use the presets vars on global styles. E.g.: if we set a preset font size, the style output should be font-size: var( –wp…) and not the value.

Full Site Editing

No one was available to provide an update so @get_dave provided some from his notes:

@vindl then stepped in to provide more detail on Milestone 2:

  • The template selector has been moved to the navigation sidebar. The pages dropdown will likely follow suit in the next couple of days, with which we’ll complete the removal of those dropdowns from the headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. area.
  • There is a PR open that adds the basic dropdown for Document Settings in the site editor. The exact content for it still needs to be decided by design.
  • Nice progress on template part visibility. The entity spotlight mode is ready to be merged, and the same goes for template part hover interaction provided that it’s approved by design.

Customizer

No one was available to provide an update. If anyone would like to provide this async, then please leave an update in the comments.

Task Coordination

Open Floor

All items this week came from the agenda comments:

The switch to taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. terms for FSE template post theme tracking

Moving forward with the Accordion block

  • @paaljoachim questioned how we can move forward with the Accordion block as it seems to have stalled.
  • Request for feedback and input on the PRs.

Will the Gutenberg repo participate in Hacktoberfest?

  • @zzap asked if Gutenberg will mark any of GitHubGitHub GitHub is a website that offers online implementation of git repositories that 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. https://github.com/ issues for Hacktoberfest?
  • @get_dave noted that Hacktoberfest was affiliated with Digital Ocean.
  • @aaroncampbell corrected that Hacktoberfest is actually a wider-reaching movement (beyond Digital Ocean) – generally a kind of concerted effort to pitch in an help out open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL..
  • It was noted that Hacktoberfest can be super spammy as people submit dozens of low-quality PRs just so they can get a free t-shirt.
  • @paaljoachim and @aaroncampbell suggested it might still be a good way to get feedback on the project and get others involved.
  • @get_dave noted we already have a Good First Issue tag which could be used to direct Hacktoberfest contributors to.
  • It was noted that a repo must opt in to Hacktoberfest – it was suggested that @youknowriad and the Core team should leave their opinion and decision in the meeting notes (that’s here!).

Thanks to everyone who attended.