Title: March 3, 2020 – Make WordPress Core

---

#  Daily Archives: March 3, 2020

 [  ](https://profiles.wordpress.org/noahtallen/) [Noah Allen](https://profiles.wordpress.org/noahtallen/)
10:47 pm _on_ March 3, 2020     
Tags: wp-env   

# 󠀁[wp-env: Simple Local Environments for WordPress.](https://make.wordpress.org/core/2020/03/03/wp-env-simple-local-environments-for-wordpress/)󠁿

Local WordPress environments are now as simple as running a single command. `[wp-env](https://developer.wordpress.org/block-editor/packages/packages-env/)`
is a zero config tool for painless local WordPress environments. It provides decisions
over options so that users can quickly spin up WordPress without wasting time. Indeed,
the goal is to make these environment easily accessible to all — whether you’re 
a developer, designer, manager, or anyone else. It really is this straightforward:

 1. From the directory of your WordPress source code, 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/](https://wordpress.org/plugins/)
    or can be cost-based plugin from a third-party., or theme, run `wp-env start`.
 2. Access the instance on localhost:8888. The local code is already mapped and ready
    for development!

In this basic example, there is no configuration. `wp-env` creates a Docker instance
behind the scenes with the latest WordPress image and then maps the local theme 
or plugin to the environment as a Docker volume. This way, any changes you make 
to the code locally are reflected immediately in the WordPress instance.

`wp-env` requires both [Docker](https://www.docker.com/) and [Node](https://nodejs.org/).
Once these prerequisites are met, you can run `npm install -g @wordpress/env` to
install `wp-env` locally. Feel free to test it out from the root of the [Gutenberg repository](https://github.com/wordpress/gutenberg)!

For more advanced use cases, the experience is just as simple after one includes
a short configuration file (called `.wp-env.json`) in the source code. Running `
wp-env start` in the same directory as a `.wp-env.json` file will automatically 
start and configure everything for you according to the specifications in the file.
This makes it easy for new folks to start contributing or testing in advanced environments
without having to configure anything themselves.

The `.wp-env.json` file allows you to create fairly advanced local development setups.
[Here is the documentation for the config file](https://developer.wordpress.org/block-editor/packages/packages-env/#wp-env-json),
and below is an advanced use case:

    ```language-json
    {
      "core": "https://wordpress.org/wordpress-5.4-beta2.zip",
      "plugins": [
        "../../my-fancy-plugin/",
        "https://downloads.wordpress.org/plugin/classic-editor.1.5.zip",
        ".",
        "WordPress/gutenberg#master"
      ],
      "port": 1000,
      "testsPort": 1001,
      "config": {
        "WP_DEBUG_DISPLAY": true
      }
    }
    ```

The `core` field allows us to specify a source for the coreCore Core is the set 
of software required to run WordPress. The Core Development Team builds WordPress.
WordPress code. Additionally, the `plugins` and `themes` fields allow us to specify
sources for plugins and themes. These sources can be in several formats: relative
or absolute local paths, a 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 by the repository
owner. [https://github.com/](https://github.com/) repository, or a URLURL A specific
web address of a website or web page on the Internet, such as a website’s URL www.
wordpress.org to a .zip file.

In the above example, we see the following:

 * The `core` field is mapped to a 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. version of WordPress in the .zip format.
 * The `plugins` field contains several plugins. The first is a local path to a 
   plugin, the next is a zip file, the third is the plugin in the same directory
   as the `.wp-env.json` file, and last is a reference to the `master` 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 the 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/](https://wordpress.org/gutenberg/)
   GitHub repository.
 * The `port` field overrides the port on which the instance is mounted. In this
   case, we access WordPress at http://localhost:1000.
 * The `config` field sets `wp-config.php` constants. Here, the `WP_DEBUG_DISPLAY`
   constant is set to `true` in the created WordPress instance.

You might need to create this file if your plugin or theme has a lot of dependencies
or options required for development. Instead of offloading this configuration work
to the consumer, `.wp-env.json` makes the development and testing of advanced setups
easily accessible to anyone with `wp-env` installed.

Finally, props to [@noisysocks](https://profiles.wordpress.org/noisysocks/) and 
[@epiqueras](https://profiles.wordpress.org/epiqueras/) for making this tool possible.
If you’d like to learn more about `wp-env`, see [the documentation page](https://developer.wordpress.org/block-editor/packages/packages-env/),
read [the source code](https://github.com/WordPress/gutenberg/tree/master/packages/env),
or [follow development progress](https://github.com/WordPress/gutenberg/labels/%5BPackage%5D%20Env).
As always, feel free to open issues or pull requests on GitHub if you find bugs 
or have suggestions concerning the tool.

[#wp-env](https://make.wordpress.org/core/tag/wp-env/)

 [  ](https://profiles.wordpress.org/youknowriad/) [Riad Benguella](https://profiles.wordpress.org/youknowriad/)
8:37 pm _on_ March 3, 2020     
Tags: [5.4 ( 53 )](https://make.wordpress.org/core/tag/5-4/),
[block-editor ( 133 )](https://make.wordpress.org/core/tag/block-editor/), [dev-notes ( 618 )](https://make.wordpress.org/core/tag/dev-notes/)

# 󠀁[Fullscreen mode enabled by default in the editor](https://make.wordpress.org/core/2020/03/03/fullscreen-mode-enabled-by-default-in-the-editor/)󠁿

Starting with WordPress 5.4, the editor behaves differently the first time you open
the editor in a new installation or on a new device—or any other time WordPress 
resets the user preferences.

Now the editor opens in fullscreen mode by default. Note that for now, that’s a 
local setting, which is why it’s going to reset when your preferences do, including
incognito mode. Future releases will store the setting in the WordPress database.

Want to turn it off? It’s simple—just use the pulldown in the editor’s menu.

![](https://make.wordpress.org/core/files/2020/03/Capture-d%E2%80%99e%CC%81cran-
2020-03-03-a%CC%80-8.48.56-PM.png)

You can also control the editor’s mode programmatically with the data module. A 
quick reminder: the code below is 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](https://www.javascript.com/),
not PHPPHP The web scripting language in which WordPress is primarily architected.
WordPress requires PHP 7.4 or higher.

    ```javascript
    const isFullscreenMode = wp.data.select( 'core/edit-post' ).isFeatureActive( 'fullscreenMode' );

    if ( isFullscreenMode ) {
        wp.data.dispatch( 'core/edit-post' ).toggleFeature( 'fullscreenMode' );
    }
    ```

[#5-4](https://make.wordpress.org/core/tag/5-4/), [#block-editor](https://make.wordpress.org/core/tag/block-editor/),
[#dev-notes](https://make.wordpress.org/core/tag/dev-notes/)

 [  ](https://profiles.wordpress.org/notlaura/) [Lara Schenck](https://profiles.wordpress.org/notlaura/)
5:01 pm _on_ March 3, 2020     
Tags: [core-css ( 191 )](https://make.wordpress.org/core/tag/core-css/),
[summary ( 968 )](https://make.wordpress.org/core/tag/summary/)   

# 󠀁[CSS Chat Summary: 27th February…](https://make.wordpress.org/core/2020/03/03/css-chat-summary-27th-february/)󠁿

# CSSCSS Cascading Style Sheets. Chat Summary: 27th February 2020

[Full meeting transcript on Slack.](https://wordpress.slack.com/archives/CQ7V4966Q/p1582837375002800)

I ([@notlaura](https://profiles.wordpress.org/notlaura/)) facilitated the meeting.
The agenda was:

 * Idea for a CSS audit
 * Open Floor

### CSS Audit

I began the first agenda item, “Idea for a CSS audit” with some general information
about CSS audits, and this could be a useful way to inform an approach for reducing
specificty and using newer CSS features in WordPress. I also mentioned that, for
WordPress specifically, an audit might include understanding the experience of CSS
contributors since CSS can be a powerful way to bring in new folks.

I posted a few resources to information on CSS audits:

 * [CSS Audits: Taking Stock of Your Code](https://alistapart.com/article/css-audits-taking-stock-of-your-code/)
   and [Notes on CSS Audits and Design Systems](https://css-tricks.com/a-quick-css-audit-and-general-notes-about-design-systems/)
 * Tools: [Specificity Graph](https://jonassebastianohlsson.com/specificity-graph/)
   and [CSS Stats](https://cssstats.com/)

Initial thoughts were positive. [@bemdesign](https://profiles.wordpress.org/bemdesign/)
said that reducing specificity would make things easier for the future, and [@marybaum](https://profiles.wordpress.org/marybaum/)
identified it would be valuable to know how much of the codebase is in use, and 
how much of it is something we could modernize.

The following comments indicated the scope of an audit would also be something to
take into account: is this only adminadmin (and super admin) CSS, or does it include
themes and plugins?

[@marybaum](https://profiles.wordpress.org/marybaum/) mentioned CSS in the default
themes is an opportunity to model practices for other themes.

[@afercia](https://profiles.wordpress.org/afercia/) reminded us that large parts
of admin CSS are also used by plugins, so we don’t want to refactor for the sake
of introducing new features because it could break many plugins.

I added that the intent of a CSS audit would be to inform and update ongoing CSS
standards, not solely introduction of new CSS features, and [@peterwilsoncc](https://profiles.wordpress.org/peterwilsoncc/)
emphasized the distinction between recommendation and accepted recommendation, and
that the outcome of an audit would be more like a wish list and documentation of
ideals.

I then asked about current conversations around design systems and coherence in 
the code-base, and linked to the [Color Foundations in the Design Handbook](https://make.wordpress.org/design/handbook/design-guide/foundations/colors/).

[@afercia](https://profiles.wordpress.org/afercia/) mentioned that there is an additional
color palette used 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/](https://wordpress.org/gutenberg/),
and that the co-existence of the two palettes is an ongoing issue.

[@peterwilsoncc](https://profiles.wordpress.org/peterwilsoncc/) emphasized that 
this type of project would involve all teams, editor, design, coreCore Core is the
set of software required to run WordPress. The Core Development Team builds WordPress.,
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),
at the very least.

These historical tickets came to light related to the audit conversation:

 * [@peterwilsoncc](https://profiles.wordpress.org/peterwilsoncc/) mentioned that
   CSS linting was introduced in [#29792](https://core.trac.wordpress.org/ticket/29792)
 * [@afercia](https://profiles.wordpress.org/afercia/) mentioned [#35783](https://core.trac.wordpress.org/ticket/35783),
   [The WordPress shades of grey](https://core.trac.wordpress.org/ticket/35783) 
   with the [output from CSS Stats from Feb. 2016](https://cldup.com/10C6ryGsN3.png)

### Open Floor

[@xris](https://profiles.wordpress.org/xris/) asked about the importance of comments
in CSS, and that most of the Core CSS seems to uncommented or that it does not follow
commenting guidelines. They mentioned that the well-commented files – such [as this one](https://github.com/WordPress/WordPress/blob/master/wp-admin/css/about.css)–
are much easier to read.

The conversation then turned to the role of comments in general, and [@afercia](https://profiles.wordpress.org/afercia/)
mentioned some history of the WordPress CSS comments: all CSS used to be a single,
large file, and was commented when it was split into multiple files. Some of these
legacy comments remain and are out of context.

I linked to [the Comments section](https://make.wordpress.org/core/handbook/best-practices/coding-standards/css/#commenting)
in the CSS Standards section of the handbook, and identified another high-level 
outcome of an audit could be to see where these standards are and are not followed
throughout the code-base.

[@afercia](https://profiles.wordpress.org/afercia/) mentioned that we should publish
this recurring meeting on the official / [@peterwilsoncc](https://profiles.wordpress.org/peterwilsoncc/)
followed up a few days later that this has been completed!

And that concludes the meeting summary!

[#core-css](https://make.wordpress.org/core/tag/core-css/), [#summary](https://make.wordpress.org/core/tag/summary/)

 [  ](https://profiles.wordpress.org/audrasjb/) [Jb Audras](https://profiles.wordpress.org/audrasjb/)
2:24 pm _on_ March 3, 2020     
Tags: [5.4 ( 53 )](https://make.wordpress.org/core/tag/5-4/),
[field guide ( 34 )](https://make.wordpress.org/core/tag/field-guide/)   

# 󠀁[WordPress 5.4 Field Guide](https://make.wordpress.org/core/2020/03/03/wordpress-5-4-field-guide/)󠁿

WordPress 5.4 is shaping up to be the best WordPress 2020 has seen!

As a user, you’ll see new blocks and enhancements in the blockBlock Block is the
abstract term used to describe units of markup that, composed together, form the
content or layout of a webpage using the WordPress editor. The idea combines concepts
of what in the past may have achieved with shortcodes, custom HTML, and embed discovery
into a single consistent API and user experience. editor, new embeds, and improvements
in the WordPress Adminadmin (and super admin) experience.

As a developer, you’ll see [122](https://core.trac.wordpress.org/query?type=enhancement&type=feature+request&milestone=5.4&max=500&col=id&col=summary&col=type&col=milestone&col=owner&col=status&col=priority&order=priority)
enhancements and feature requests, [210](https://core.trac.wordpress.org/query?type=defect+(bug)&milestone=5.4&max=500&col=id&col=summary&col=type&col=milestone&col=owner&col=status&col=priority&order=priority)
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, and more! Of course, all those improvements mean code changes,
which could in turn require you to make updates to your site, 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/](https://wordpress.org/plugins/)
or can be cost-based plugin from a third-party., or theme.

So take a look through this Field GuideField guide The field guide is a type of 
blogpost published on Make/Core during the release candidate phase of the [WordPress release cycle](https://make.wordpress.org/core/handbook/about/release-cycle/).
The field guide generally lists all the dev notes published during the beta cycle.
This guide is linked in the about page of the corresponding version of WordPress,
in the release post and in the HelpHub version page., and see what’s relevant to
you and your users, among the many improvements coming in 5.4…

## 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)

On the [14 updates](https://core.trac.wordpress.org/query?status=closed&focuses=~accessibility&milestone=5.4&col=id&col=summary&col=owner&col=type&col=keywords&order=priority)
related to Accessibility in 5.4, you’ll want to particularly note changes to the
WordPress Admin Bar, to the calendar and recent comments widgets, on the Menu screen,
and bugs reported by the [WPCampus accessibility report](https://wpcampus.org/audit/).

## Block Editor

The block editor has continued its rapid iteration since WordPress 5.0. Now it has
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/](https://wordpress.org/gutenberg/)
version 7.5 bundled with WordPress 5.4; that’s ten releases all bundled into WordPress
5.4 (versions [6.6](https://make.wordpress.org/core/2019/10/02/whats-new-in-gutenberg-2-october/),
[6.7](https://make.wordpress.org/core/2019/10/16/whats-new-in-gutenberg-16-october/),
[6.8](https://make.wordpress.org/core/2019/10/30/whats-new-in-gutenberg-30-october/),
[6.9](https://make.wordpress.org/core/2019/11/13/whats-new-in-gutenberg-13-november/),
[7.0](https://make.wordpress.org/core/2019/11/27/whats-new-in-gutenberg-27-november/),
[7.1](https://make.wordpress.org/core/2019/12/11/whats-new-in-gutenberg-11-december/),
[7.2](https://make.wordpress.org/core/2020/01/09/whats-new-in-gutenberg-8-january/),
[7.3](https://make.wordpress.org/core/2020/01/22/whats-new-in-gutenberg-22-january/),
[7.4](https://make.wordpress.org/core/2020/02/05/whats-new-in-gutenberg-5-february/)
and [7.5](https://make.wordpress.org/core/2020/02/12/whats-new-in-gutenberg-12-february/))!
Bug fixes and performance improvements from Gutenberg versions [7.6](https://make.wordpress.org/core/2020/02/26/whats-new-in-gutenberg-26-february/)
will also be part of 5.4.

The [WordPress 5.4 Beta 1 post](https://wordpress.org/news/2020/02/wordpress-5-4-beta-1/)
highlights a lot of new features and improvements across these releases, though 
you’ll also want to note the impressive achievement of 14% loading-time reduction
and 51% time-to-type reduction (for a particularly long post of ~36,000 words, ~
1,000 blocks) since WordPress 5.3.

Below you’ll find details on two new blocks, button component updates, block collections,
default fullscreen mode for new installs/devices, custom keyboard shortcuts, general
block editor 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. updates, new block variations API, a new gradient theme API, markup
and style-related changes, and a new `@wordpress/create-block` package for block
scaffolding.

> [New Blocks in WordPress 5.4](https://make.wordpress.org/core/2020/02/27/new-or-updated-blocks-in-wordpress-5-4/)

> [An updated Button component in WordPress 5.4](https://make.wordpress.org/core/2020/02/13/an-updated-button-component-in-wordpress-5-4/)

> [Block Collections](https://make.wordpress.org/core/2020/02/27/block-collections/)

> [Fullscreen mode enabled by default in the editor](https://make.wordpress.org/core/2020/03/03/fullscreen-mode-enabled-by-default-in-the-editor/)

> [Block Editor Keyboard Shortcuts in WordPress 5.4](https://make.wordpress.org/core/2020/02/19/block-editor-keyboard-shortcuts-in-wordpress-5-4/)

> [General Block Editor API Updates](https://make.wordpress.org/core/2020/03/02/general-block-editor-api-updates/)

> [New: the block variations API](https://make.wordpress.org/core/2020/02/27/introduce-block-variations-api/)

> [New gradient theme APIs](https://make.wordpress.org/core/2020/03/02/new-gradient-theme-apis/)

> [Markup and style-related changes](https://make.wordpress.org/core/2020/03/02/markup-and-style-related-changes/)

> [New @wordpress/create-block package for block scaffolding](https://make.wordpress.org/core/2020/02/28/new-wordpress-create-block-package-for-block-scaffolding/)

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

On the [14 updates](https://core.trac.wordpress.org/query?status=closed&component=Customize&milestone=5.4&col=id&col=summary&col=status&col=owner&col=type&col=priority&col=milestone&order=priority)
of the Customizer component, WordPress 5.4 improves accessibility of focused elements
as a follow-up to WordPress 5.3 Admin CSSCSS Cascading Style Sheets. changes, adds
documentation of existing Customizer functions and 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., removes `apple-touch-icon-precomposed` deprecated 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.
tags, and improves Menu items selection logic.

Please note that some unused Customizer classes are now formally deprecated:

> [Formal deprecation of some unused Customizer classes in WordPress 5.4](https://make.wordpress.org/core/2020/02/12/formal-deprecation-of-some-unused-customizer-classes-in-wordpress-5-4/)

## Menus

On the [5 updates](https://core.trac.wordpress.org/query?status=closed&component=Menus&milestone=5.4&col=id&col=summary&col=status&col=type&col=priority&col=focuses&col=keywords&order=priority)
in the Menus component, WordPress 5.4 improves keyboard accessibility of the Menu
items selection tab panel and streamlines the user interface.

If your plugins add custom fields to menu items, you’ll want to update your code
to use the new `wp_nav_menu_item_custom_fields` hook:

> [New hooks let you add custom fields to menu items](https://make.wordpress.org/core/2020/02/25/wordpress-5-4-introduces-new-hooks-to-add-custom-fields-to-menu-items/)

## Privacy

On the [15 updates](https://core.trac.wordpress.org/query?status=closed&component=Privacy&milestone=5.4&col=id&col=summary&col=status&col=type&col=priority&col=focuses&col=keywords&order=priority)
in the Privacy component, you will want to specifically note:

 * Personal Data Export now includes Session Tokens, Community Events Location and
   Custom User Meta.
 * Personal Data Exports now include a 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. file and
   a Table of Contents
 * New filters for the headers of all Privacy-related emails
 * The privacy tables are improved for a cleaner interface
 * `wp_get_user_request_data()` function was replaced with `wp_get_user_request()`
   for better clarity

All those changes are in this dev notedev 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.:

> [Privacy Updates in 5.4](https://make.wordpress.org/core/2020/03/02/privacy-updates-in-5-4/)

## 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/](https://developer.wordpress.org/rest-api/)󠁿

On the [22 updates](https://core.trac.wordpress.org/query?status=closed&component=REST+API&milestone=5.4&col=id&col=summary&col=status&col=type&col=priority&col=focuses&col=keywords&order=priority)
related to the REST API, WordPress 5.4 now supports “OR” 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](https://codex.wordpress.org/Taxonomies#Default_Taxonomies).
relation parameter in Post Controller, adds selective link embedding and introduces
some changes in the `WP_REST_Server` method. Read below for more details on these
updates:

> [REST API Changes in 5.4](https://make.wordpress.org/core/2020/02/29/rest-api-changes-in-5-4/)

## Shortcodes

On the [3 updates](https://core.trac.wordpress.org/query?status=closed&component=Shortcodes&milestone=5.4&col=id&col=summary&col=status&col=type&col=priority&col=focuses&col=keywords&order=priority)
to the Shortcodes component, WordPress 5.4 introduces documentation improvements
and a new function: `apply_shortcodes`. This function is an alias of `do_shortcode`,
which is still supported.

> [WordPress 5.4 introduces apply_shortcodes() as an alias for do_shortcode()](https://make.wordpress.org/core/2020/02/13/wordpress-5-4-introduces-apply-shortcodes-as-an-alias-for-do-shortcode/)

## Widgets

On the [9 updates](https://core.trac.wordpress.org/query?status=closed&component=Widgets&milestone=5.4&col=id&col=summary&col=status&col=type&col=priority&col=focuses&col=keywords&order=priority)
to the Widgets component, WordPress 5.4 introduces accessibility and user interface
enhancements on the Widgets Admin screen and changes in the Recent Comments and 
Calendar Widgets HTMLHTML HyperText Markup Language. The semantic scripting language
primarily used for outputting content in web browsers. markup.

> [Changes related to Calendar Widget markup in WordPress 5.4](https://make.wordpress.org/core/2020/02/12/changes-related-to-calendar-widget-markup-in-wordpress-5-4/)

## Other Developer Updates

There are even more goodies in 5.4, like the new `wp-env` (a zero config tool for
painless local WordPress environments), enhancements to favicon handling, better
information about errors in `wp_login_failed`, a new site ID 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**’s `newblog_notify_siteadmin` filterFilter Filters are one of the two types
of Hooks [https://codex.wordpress.org/Plugin_API/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., a new TikTok video embed and removal of the CollegeHumor embed, storing
the original URLURL A specific web address of a website or web page on the Internet,
such as a website’s URL www.wordpress.org of media attachments in `_source_url` 
post meta, improved accessibility by loading the Admin Bar with `wp_body_open`, 
avoiding duplicate IDs in the Recent Comments 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., a new parameter in the `lostpassword_post` 
action in `retrieve_password()`, theme headers supporting “Requires at least” and“
Requires PHPPHP The web scripting language in which WordPress is primarily architected.
WordPress requires PHP 7.4 or higher” declarations, and the `delete_posts` capabilitycapability
A **capability** is permission to perform one or more types of task. Checking if
a user has a capability is performed by the `current_user_can` function. Each user
of a WordPress site might have some permissions but not others, depending on their
role. For example, users who have the Author role usually have permission to edit
their own posts (the “edit_posts” capability), but not permission to edit other 
users’ posts (the “edit_others_posts” capability). won’t trigger PHP notices for
custom post types. Read through the 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. below to see
details on all these changes coming in 5.4.

> [wp-env: Simple Local Environments for WordPress.](https://make.wordpress.org/core/2020/03/03/wp-env-simple-local-environments-for-wordpress/)

> [Enhancements to favicon handling in WordPress 5.4](https://make.wordpress.org/core/2020/02/19/enhancements-to-favicon-handling-in-wordpress-5-4/)

> [Miscellaneous Developer Focused Changes in WordPress 5.4](https://make.wordpress.org/core/2020/02/26/miscellaneous-developer-focused-changes-in-wordpress-5-4/)

## But Wait, There is More!

Over [198](https://core.trac.wordpress.org/query?status=closed&type=defect+(bug)&milestone=5.4&group=component&col=id&col=summary&col=type&col=owner&col=priority&col=component&col=version&order=priority)
bugs, [121](https://core.trac.wordpress.org/query?status=closed&type=enhancement&type=feature+request&milestone=5.4&group=component&col=id&col=summary&col=type&col=owner&col=priority&col=component&col=version&order=priority)
enhancements and feature requests, and [8](https://core.trac.wordpress.org/query?status=closed&type=task+(blessed)&milestone=5.4&group=component&col=id&col=summary&col=type&col=owner&col=priority&col=component&col=version&order=priority)
blessed tasks have been [marked as fixed in WordPress 5.4](https://core.trac.wordpress.org/query?status=closed&milestone=5.4&group=component&col=id&col=summary&col=owner&col=type&col=priority&col=component&col=version&order=priority).
Some additional ones to highlight include:

 * Bootstrap/Load: Enhancementenhancement Enhancements are simple improvements to
   WordPress, such as the addition of a hook, a new feature, or an improvement to
   an existing feature. to favicon handling ([#47398](https://core.trac.wordpress.org/ticket/47398))
 * Bundled Theme: Twenty Twenty: Add social icon for WhatsApp ([#49098](https://core.trac.wordpress.org/ticket/49098))
 * Comments: Add “In response to …” before threaded comments in comment feed ([#43429](https://core.trac.wordpress.org/ticket/43429))
 * Comments: Add “in reply to” in comment moderation email notification ([#43805](https://core.trac.wordpress.org/ticket/43805))
 * Embeds: Embed support has been added for TikTok ([#49083](https://core.trac.wordpress.org/ticket/49083))(
   [Gutenberg#19345](https://github.com/WordPress/gutenberg/pull/19345))
 * Embeds: Removal of CollegeHumor embed as the service doesn’t exists anymore (
   [#48696](https://core.trac.wordpress.org/ticket/48696)) ([Gutenberg#18591](https://github.com/WordPress/gutenberg/pull/18591))
 * Login and Registration: Clearer information about errors in `wp_login_failed`(
   [#49007](https://core.trac.wordpress.org/ticket/49007))
 * Login and Registration: new parameter passed into the `lostpassword_post` action
   in `retrieve_password()` ([#38334](https://core.trac.wordpress.org/ticket/38334))
 * Networks and Sites: Site ID has been added to the `newblog_notify_siteadmin` 
   filter for multisite installs ([#48554](https://core.trac.wordpress.org/ticket/48554))
 * Networks and Sites: `switch_to_blog()` and `restore_current_blog()` reuse `switch_blog`
   action ([#49265](https://core.trac.wordpress.org/ticket/49265))
 * Media: store the original URL of the attachment in the `_source_url` post meta
   value ([#48164](https://core.trac.wordpress.org/ticket/48164))
 * Menus: Make tabs panels more accessible for keyboard users ([#49211](https://core.trac.wordpress.org/ticket/49211))
 * Posts, Post Types: Use `delete_posts` without triggering PHP notices in every
   post type ([#30991](https://core.trac.wordpress.org/ticket/30991))
 * Post Thumbnails: Make sure `get_post_thumbnail_id()` returns an integer, to match
   the documented return value ([#40096](https://core.trac.wordpress.org/ticket/40096))
 * REST API: Expose all theme supports and changed permissions in `/themes` endpoint(
   [#49037](https://core.trac.wordpress.org/ticket/49037))
 * Site Health: Theme headers support “Requires at least” and “Requires PHP” declarations(
   [#44592](https://core.trac.wordpress.org/ticket/44592))
 * Toolbar: The Admin Bar is now loaded with `wp_body_open` when available ([#47053](https://core.trac.wordpress.org/ticket/47053))
 * Widgets: Avoid duplicate IDs in Recent Comments ([#46747](https://core.trac.wordpress.org/ticket/46747))

Please, test your code. Fixing issues helps you and helps millions of WordPress 
sites.

_**Props to [@jeffpaul](https://profiles.wordpress.org/jeffpaul/) and [@marybaum](https://profiles.wordpress.org/marybaum/)
for contributing to this guide.**_

 [#5-4](https://make.wordpress.org/core/tag/5-4/), [#field-guide](https://make.wordpress.org/core/tag/field-guide/)

 [  ](https://profiles.wordpress.org/swissspidy/) [Pascal Birchler](https://profiles.wordpress.org/swissspidy/)
11:38 am _on_ March 3, 2020     
Tags: [agenda ( 1,128 )](https://make.wordpress.org/core/tag/agenda/),
[feature plugins ( 122 )](https://make.wordpress.org/core/tag/feature-plugins/),
[feature projects ( 52 )](https://make.wordpress.org/core/tag/feature-projects/),
[sitemaps ( 15 )](https://make.wordpress.org/core/tag/sitemaps/), [xml-sitemaps ( 15 )](https://make.wordpress.org/core/tag/xml-sitemaps/)

# 󠀁[XML Sitemaps Meeting: March 3rd, 2020](https://make.wordpress.org/core/2020/03/03/xml-sitemaps-meeting-march-3rd-2020/)󠁿

Another week passed by with quite a productive meeting for the XML Sitemaps feature
project. Here’s a short summary, as well as the agenda for today’s meeting.

## Meeting Recap: February 25th

In case you missed it, I recommend checking out last week’s post with everything
that happened so far:

> [XML Sitemaps Meeting: February 25th, 2020](https://make.wordpress.org/core/2020/02/24/xml-sitemaps-meeting-february-25th-2020/)

As planned, we went over some of the existing issues, but we also discussed some
things that came up on short notice. Here’s the gist:

 * We reiterated on the [idea](https://github.com/GoogleChromeLabs/wp-sitemaps/issues/133)
   to remove the `lastmod` field. [@swissspidy](https://profiles.wordpress.org/swissspidy/)
   offered to start a PR that explores this so it can actually be tested in the 
   wild. [@joemcgill](https://profiles.wordpress.org/joemcgill/) offered to post
   some stats about the performance of this last modified date calculation.
 * There was a discussion, also after the meeting, about changing URLs to have a`/
   wp-` prefix and whether that prefix should be filterable. The consensus was that
   a filterFilter Filters are one of the two types of Hooks [https://codex.wordpress.org/Plugin_API/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. is unnecessary. A [new PR](https://github.com/GoogleChromeLabs/wp-sitemaps/pull/135)
   was added to implement this.
   [@kraftbj](https://profiles.wordpress.org/kraftbj/)
   offered his help to implement automatic redirects from `/sitemap.xml` to `/wp-
   sitemap.xml` for improved discoverability.
 * Next up was the [`SimpleXML` dependency](https://github.com/GoogleChromeLabs/wp-sitemaps/issues/122)
   and how the pluginPlugin A plugin is a piece of software containing a group of
   functions that can be added to a WordPress website. They can extend functionality
   or add new features to your WordPress websites. WordPress plugins are written
   in the PHP programming language and integrate seamlessly with WordPress. These
   can be free in the WordPress.org Plugin Directory [https://wordpress.org/plugins/](https://wordpress.org/plugins/)
   or can be cost-based plugin from a third-party. should behave when that PHPPHP
   The web scripting language in which WordPress is primarily architected. WordPress
   requires PHP 7.4 or higher extension is missing.
   We tend towards just disabling
   sitemaps if that’s the case, but perhaps provide some messaging about it.[@kraftbj](https://profiles.wordpress.org/kraftbj/)
   offered to try to get some stats about the availability of SimpleXML via Jetpack,
   as well as to help with a PR.[@pbiron](https://profiles.wordpress.org/pbiron/)
   reached out on the hosting community channel, and is looking for specific questions
   that we could ask in a [make/hosting](https://make.wordpress.org/hosting) post.
 * Last but not least, there was an open question about leveraging the 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/](https://developer.wordpress.org/rest-api/)
   for sitemaps. It was not fully clear though how that would be beneficial. As 
   of now, there are no plans to explore this.

## Agenda: March 3rd

The next meeting will be held on [Tuesday, March 3 at 16.00 CET](https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200303T1500)

 * Updates since last week
    - New PRs needing reviews:
       * [Filterable queries](https://github.com/GoogleChromeLabs/wp-sitemaps/pull/137)
       * [Plugin activation and deactivation hooks](https://github.com/GoogleChromeLabs/wp-sitemaps/pull/136)
       * [Unfilterable `wp-` URL prefix](https://github.com/GoogleChromeLabs/wp-sitemaps/pull/135)
       * [Disabling sitemaps on private sites](https://github.com/GoogleChromeLabs/wp-sitemaps/pull/138)
    - Good first issues:
       * [Removing trailing slash](https://github.com/GoogleChromeLabs/wp-sitemaps/issues/134)
 * `SimpleXML` dependency and fallback handling
 * Open floor
 * Release planning

_This meeting is held in the [#core-sitemaps](https://wordpress.slack.com/archives/CTKTGNJJW)
channel , to join the meeting, you’ll need an account on the [Making WordPress Slack](https://make.wordpress.org/chat/)._

[#agenda](https://make.wordpress.org/core/tag/agenda/), [#feature-plugins](https://make.wordpress.org/core/tag/feature-plugins/),
[#feature-projects](https://make.wordpress.org/core/tag/feature-projects/), [#sitemaps](https://make.wordpress.org/core/tag/sitemaps/),
[#xml-sitemaps](https://make.wordpress.org/core/tag/xml-sitemaps/)

 [  ](https://profiles.wordpress.org/paaljoachim/) [Paal Joachim Romdahl](https://profiles.wordpress.org/paaljoachim/)
9:42 am _on_ March 3, 2020     
Tags: [agenda ( 1,128 )](https://make.wordpress.org/core/tag/agenda/),
[core-editor ( 748 )](https://make.wordpress.org/core/tag/core-editor/), [core-editor-agenda ( 188 )](https://make.wordpress.org/core/tag/core-editor-agenda/),
[gutenberg ( 538 )](https://make.wordpress.org/core/tag/gutenberg/)   

# 󠀁[Editor Chat Agenda: 4th March, 2020](https://make.wordpress.org/core/2020/03/03/editor-chat-agenda-4th-march-2020/)󠁿

Note taker: [@jorgefilipecosta](https://profiles.wordpress.org/jorgefilipecosta/)

This is the agenda for the weekly editor chat scheduled for [](https://www.timeanddate.com/worldclock/fixedtime.html?msg=Core+Editor+Meeting&iso=20200304T09&ah=1)
[2020-03-04 14:00 UTC](https://www.timeanddate.com/worldclock/fixedtime.html?iso=20200304T1400).
This meeting is held in the [#core-editor](https://wordpress.slack.com/messages/C02QB2JS7)
WordPress SlackSlack Slack is a Collaborative Group Chat Platform [https://slack.com/](https://slack.com/).
The WordPress community has its own Slack Channel at [https://make.wordpress.org/chat/](https://make.wordpress.org/chat/)
channel.

 * WordPress 5.4 Upcoming Release
 * Weekly Priorities
 * Task Coordination
 * Open Floor

If you have anything to share for the Task Coordination section, please leave it
as a comment on this post. If you have anything to propose for the agenda or other
specific items related to those listed above, please leave a comment below.

[#agenda](https://make.wordpress.org/core/tag/agenda/), [#core-editor](https://make.wordpress.org/core/tag/core-editor/),
[#editor-chat](https://make.wordpress.org/core/tag/editor-chat/)

[#agenda](https://make.wordpress.org/core/tag/agenda/), [#core-editor](https://make.wordpress.org/core/tag/core-editor/),
[#core-editor-agenda](https://make.wordpress.org/core/tag/core-editor-agenda/), 
[#gutenberg](https://make.wordpress.org/core/tag/gutenberg/)