Welcome back the latest issue of Week in Core Core is the set of software required to run WordPress. The Core Development Team builds WordPress., covering changes [36671-36541]. Here are the highlights:
- 131 commits
- 82 contributors
- 89 tickets created
- 9 tickets reopened
- 140 tickets closed
Ticket Created for both bug reports and feature development on the bug tracker. numbers based on trac timeline for the period above.
Note: If you want to help write the next WordPress Core Weekly summary, check out the schedule over at make/docs and get in touch in the #core-weekly-update Slack 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.
Code Changes
Accessibility 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)
- Improve the color contrast ratio for the input placeholders. [36619] #35777
- Remove title attributes from the Plugin 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 details modal. [36618] #35111
- Remove the revisions 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. limit warning from the Publish box. [36612] #35029
- Fix displaying of Universal time and Local time info on the General Settings screen. [36585] #35064
- Improve color contrast updating any
#999
gray used for text or icons to a darker gray. [36587] #35660
- Accessibility: after [36000] conditionally print out the
aria-describedby
attribute on the Featured 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. postbox. [36584] #35076
- Accessibility: Reduce the WordPress shades of grey, Episode 2. [36582] #35783
Administration
- Replace the custom comment form with
comment_form()
and reduce number of links. [36595] #35888
- Remove extra spaces between function names and brackets [36572] #16774, #34365
- Remove slashes from search terms and use
urldecode()
in non-URL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org contexts. [36560] #35712
Authentication
- Allow users to log in using their email address. [36617] #9568
Autosave
- Do not strip slashes from the whole
&_POST
when doing autosaves. [36543] #35408
Bootstrap/Load
Build/Test Tools
Comments
- Rename
$linea
to $remote_source
for clarity. Add remote_source
to comment data, so it’s available to preprocess_comment
and comment_post
filters. Pass the original (unfiltered) response source to the filters too (as remote_source_original
in comment data). [36661] #34141
- Pass comment data to the
comment_post
filter 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.. [36660] #34141
- Look for wp_error when checking whether
$wpdb->get_col_length()
has failed. [36542] #10377
- Refresh the Moderate Comment screen for a friendlier experience with email moderation actions. [36588] #34133
Customize
- Let
WP_Customize_Selective_Refresh
class be final
to match manager and other component classes. [36624] #27355
- Ensure
dynamic_sidebar()
finishes with removing the sidebar 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. ID from the current_dynamic_sidebar_id_stack
. [36623] #27355
- Prevent dropping backslashes from input on general settings and settings for nav menus and some widgets. [36622] #35898
- Fix and extend broken ajax unit tests to account for partials being skipped from rendering. [36650] #35914
- Skip exporting partials to client and handling rendering requests if user can’t modify associated settings. [36643] #27355, #35914
- Add visual feedback to reorder buttons. [36641] #35041
- Contain “No image set/selected” in dashed border. [36639] #35826
- Update unit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. for
WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item()
to account for slashing if user can’t unfiltered_html
. [36610] #35869
- Prevent PHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher notice and JS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. error caused by widgets and nav menus components if user only has
customize
capability. [36611] #35895
- Fix previewing and updating of nav menu items containing slashed/slashable characters. [36608] #35869
- Fix “Loading…” message from persisting in panel title when user does not have
manage_options
cap to edit blogname
. [36606] #35579
- Add selective refresh framework with implementation for widgets and re-implementation for nav menus. [36586] #27355
- Prevent consecutive
refresh
requests from preview from causing JS error. [36583] #27355, #35866
- In nav menus show the location name instead of slug. [36573] #34755
- Add missing test changes for [36573]. [36574] #34755
- Autoprefixer for [36532]. [36548] #31195
Docs
- Correct
$number
type in number_format_i18n()
. [36644] #35893
- Update the type for
$callback
parameters to callable
in DocBlocks for add_settings_section()
and add_settings_field()
. [36642] #35772
- Improve documentation for
WP_REST_Request
to highlight a caveat of ArrayAccess when it comes to passing similar arguments for multiple request methods. [36636] #35799
- Improve description of
get_term()
return value. [36634] #35919
- Correct
param
types on some filters in wp_filter_comment()
. [36626] #35908
WP_Meta_Query
accepts ‘EXISTS’ or ‘NOT EXISTS’ for $compare
. [36609] #35891
- Fix two incorrect notations of the
$show_admin_bar
global to specify a boolean type, not WP_Admin_Bar
. [36601] #35686
- Add missing since and access tags to
get_curies
method and filter from r36533 [36593] #34729, #32246
- Add an explanation for the dynamic portion of the
{$taxonomy}_term_edit_form_top
hook, introduced in [36526]. [36577] #32246
- Add formatting to a changelog entry in the hook doc for the
rest_dispatch_request
filter. [36576] #32246
- Remove a duplicate
@static
tag 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.) from the WP_Customize_Panel->instance_count
property DocBlock (phpdoc, xref, inline docs). [36568] #32246
Embeds
- Only display an iframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. when it was successfully loaded. This prevents showing a blank iframe by first checking if a message was successfully received from it. [36648] #35894
- Make the click event handler work for dynamically added links. [36637] #35630
- Load the default site icon from the
wp-includes
directory. [36635] #35322
External Libraries
- Update Backbone and Underscore to the latest versions. [36546] #34350
Feeds
Formatting
- Avoid a PHP warning when
wptexturize()
is called with a trailing less-than symbol. [36578] #35864
Help/About
HTTP 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. API 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.
- Certificate bundle: Attempt to move a certificate lower in the file to allow older OpenSSL versions to parse it & communicate with WordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ securely again. The OpenSSL version which was failing in this case was
OpenSSL 0.9.8e 23 Feb 2007
. [36570] #35637, #30434, #25007
I18N 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.
- Add translator comments and context to “New Site Created” email notification strings. [36669] #35716
- Replace hardcoded URL in a translatable string with a placeholder in
wp-admin/upload.php
. [36668] #35743
- Add missing periods to two strings in
wp-admin/network/sites.php
[36664] #35720
- Add translators comments to wp-admin (and super admin)/users.php. [36621] #35885
- Remove HTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. tags from translatable strings in
wp-admin/plugins.php
. [36662] #35679
- Add the ability to parse a whole directory with add-textdomain.php. [36600] #35499
- Remove PHP4 constructor from add-textdomain.php. [36599] #31982
- Add test for
wp_dropdown_languages()
. [36631] #35294
- Respect the coding standards when adding textdomains with add-textdomain.php. [36603] #21616
- Remove tag from translatable string in
wp-admin/includes/class-wp-filesystem-ssh2.php
. [36670] #35741
- Remove tag from translatable string in
wp-admin/includes/class-wp-ms-sites-list-table.php
. [36663] #35676
- Remove tag from translatable string in
wp-admin/theme-install.php
. [36666] #35739
- Remove tag from translatable string in
wp-admin/options-general.php
. [36656] #35673
- Remove tags from translatable strings in
wp-admin/install.php
. [36665] #35738
- Remove tags from translatable strings in
wp-admin/custom-header.php
. [36658] #35675
- Remove tags from translatable strings in
wp-admin/themes.php
. [36657] #35745
- Remove tag from translatable string in
wp-admin/user-edit.php
. [36655] #35672
- Remove tag from translatable string in
wp-admin/import.php
. [36653] #35671
Media
Menus
Multisite 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
- Make view mode sticky for network (versus site, blog) users and sites list tables. [36562] #34365
- Avoid a PHP Notice when saving a site address without a path. [36561] #35631
Performance
- In
wp_upload_dir()
do not cache error from wp_mkdir_p()
when a directory cannot be created. Keep trying to create the dirs. This happens mostly in file upload context. [36628] #34359
- Replace
wp_upload_dir()
with the new wp_get_upload_dir()
in all cases where a file is not being uploaded. Deprecate _wp_upload_dir_baseurl()
, and replace it with wp_get_upload_dir()
. [36569] #34359
- Reintroduce term meta 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. unit test accidentally removed in [36566]. [36567]
- More performance improvements to metadata lazyloading. [36566] #35816
- Improve the performance of
wp_upload_dir()
: [36565] #34359
Plugins
Posts
- Introduce
get_post_types_by_support()
. Similar to get_post_types()
, this new function returns a list of post type names that support a specific feature. [36652] #34010
- Non-trashed posts should take slug priority over trashed posts. [36607] #11863
Query
- Search should match
post_excerpt
in addition to title and content. When ordering search results, exact matches in the post excerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. are weighted above those in post content, but below those in the post title. [36647] #35762
- Allow a seed value to be passed when using ‘rand’
$orderby
. [36632] #35692
- In
WP::handle_404()
introduce a filter pre_handle_404
to short-circuit default header 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. status handling. [36629] #10722
is_*( $int )
should not falsely match strings starting with “$int”. [36625] #24674, #35902
Revisions
Schema
Script Loader
- Don’t parse
$src
if the current color scheme isn’t registered. [36591] #35882
- Pass the media attribute as an argument to the
style_loader_tag
filter. [36592] #34765
- Bail if
WP_Styles::_css_href()
returns an empty value. [36590] #35229
- Make sure that inline styles for handles without a source are printed. [36550] #35229
- JSHint for [36602]. [36605] #33301
- Fix missing script output when the groups of dependencies are different. [36604] #35873
- Introduce
wp_add_inline_script()
. [36633] #14853
- Restore loading order for wp-admin: open-sans, dashicons, etc. [36551] #35229
Styles
- Clarify the allowed values for the
$media
parameter of wp_register_style()
/wp_enqueue_style()
. [36649] #35921
Taxonomy
- Make
$taxonomy
parameter optional in get_edit_term_link()
. [36646] #35922
- Allow
get_terms()
to fetch terms regardless of taxonomy. [36614] #35495
- In
get_terms()
, assemble WHERE
conditions in an array instead of concatenating. [36598] #35495
- Add changelog entry for
publicly_queryable
argument in register_taxonomy()
. [36564] #34491
Template
Themes
TinyMCE
Updates
- Pass locales of all available languages to the themes/plugins update API. [36630] #34937
Upgrade/Install
- Prevent further actions if an update button is disabled. [36558] #35257
- Add a hook to the end of the network’s Add New User form. [36556] #15389
- Add a hook to the end of the Add Site form. [36555] #34739
- Enhance the language of the “Success” message. [36553] #34897
- Improve wording on the page for the database connection details. [36545] #26879
- Use “Username” instead of “User Name”. [36544] #35850
Users
- Pass the array of user IDs being deleted to the
delete_user_form
action hook in two places. [36640] #35063
- Introduce
_wp_get_current_user()
for improved backward compatibility. [36651] #19615
Widgets
- Avoid a PHP notice in
is_dynamic_sidebar()
is a sidebar is registered but does not yet have an index in the sidebars_widgets
option. [36667] #35928
Props
Thanks to @dnewton,@joemcgill, @abiralneupane, @adamsilverstein, @afercia, @aidanlane, @Ankit, @apaliku, @atimmer, @azaozz, @barryceelen, @boonebgorges, @charlestonsw, @chris_dev, @ckoerner, @coffee2code, @coreymcollins, @danielbachhuber, @dd32, @Denis-de-Bernardy, @dlh, @DrewAPicture, @dshanske, @ericlewis, @ethitter, @flixos90, @GaryJ, @gitlost, @groovecoder, @Gupta, @hakre, @helen, @hlashbrooke, @iamntz, @igmoweb, @iseulde, @JamesDiGioia, @jdgrimes, @jeremyfelt, @JoeFusco, @joehoyle, @johnbillion, @jorbin, @K, @karmatosed, @kjbenk, @kovshenin, @lpawlik, @mayukojpn, @mdgl, @meitar, @melchoyce, @MikeHansenMe, @mikejolley, @mikeschroder, @netweb, @nicd, @ocean90, @pento, @prettyboymp, @ptahdunbar, @rachelbaker, @ramiy, @realloc, @ryan, @ryankienstra, @salcode, @sc0ttkclark, @sebastianpisula, @SergeyBiryukov, @stevegrunwell, @stevenkword, @swissspidy, @thewanderingbrit, @thisisit, @usermrpapa, @valendesigns, @vhomenko, @welcher, @westonruter, @williamsba1, and @wpsmith for their contributions! for their contributions!
#4-5, #week-in-core