Welcome back the latest issue of Week in CoreCore 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
Ticketticket 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 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.
Code Changes
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)
- Improve the color contrast ratio for the input placeholders. [36619] #35777
- Remove title attributes from 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/ or can be cost-based plugin from a third-party. details modal. [36618] #35111
- Remove the 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. 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
#999gray used for text or icons to a darker gray. [36587] #35660 - Accessibility: after [36000] conditionally print out the
aria-describedbyattribute on the 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. 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-URLURL 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
Autosave
Bootstrap/Load
- Don’t display errors during Ajax requests. [36571] #34915, #23811, #26262
- Make
$wp_local_packageexplicitly global in wp-settings.php. [36557] #34975
Build/Test Tools
- Add
Tests_dbDelta::assertTableHasPrimaryKey(). [36552] #34877 - Add a test for testing
wp_enqueue_script()with an alias handle in the footer. [36559] #35643 - Test that jQuery can be moved into footer after [36550]. [36596] #25247
- Add test for
wp_get_installed_translations(). [36563] #35284
Comments
- Rename
$lineato$remote_sourcefor clarity. Addremote_sourceto comment data, so it’s available topreprocess_commentandcomment_postfilters. Pass the original (unfiltered) response source to the filters too (asremote_source_originalin comment data). [36661] #34141 - Pass comment data to the
comment_postfilterFilter 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_Refreshclass befinalto match manager and other component classes. [36624] #27355 - Ensure
dynamic_sidebar()finishes with removing the 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. ID from thecurrent_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 testunit 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’tunfiltered_html. [36610] #35869 - Prevent PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher notice and JSJS 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
customizecapabilitycapability A capability is permission to perform one or more types of task. Checking if a user has a capability is performed by thecurrent_user_canfunction. 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).. [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_optionscap to editblogname. [36606] #35579 - Add selective refresh framework with implementation for widgets and re-implementation for nav menus. [36586] #27355
- Prevent consecutive
refreshrequests 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
$numbertype innumber_format_i18n(). [36644] #35893 - Update the type for
$callbackparameters tocallablein DocBlocks foradd_settings_section()andadd_settings_field(). [36642] #35772 - Improve documentation for
WP_REST_Requestto 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
paramtypes on some filters inwp_filter_comment(). [36626] #35908 WP_Meta_Queryaccepts ‘EXISTS’ or ‘NOT EXISTS’ for$compare. [36609] #35891- Fix two incorrect notations of the
$show_admin_barglobal to specify a boolean type, notWP_Admin_Bar. [36601] #35686 - Add missing since and access tags to
get_curiesmethod and filter from r36533 [36593] #34729, #32246 - Add an explanation for the dynamic portion of the
{$taxonomy}_term_edit_form_tophook, introduced in [36526]. [36577] #32246 - Add formatting to a changelog entry in the hook doc for the
rest_dispatch_requestfilter. [36576] #32246 - Remove a duplicate
@statictagtag 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 theWP_Customize_Panel->instance_countproperty DocBlockdocblock (phpdoc, xref, inline docs). [36568] #32246
Embeds
- Only display an iframeiframe 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-includesdirectory. [36635] #35322
External Libraries
Feeds
- Make Custom 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. Feeds Auto-discoverable [36671] #23677
Formatting
Help/About
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. 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.
- Certificate bundle: Attempt to move a certificate lower in the file to allow older OpenSSL versions to parse it & communicate with WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ securely again. The OpenSSL version which was failing in this case was
OpenSSL 0.9.8e 23 Feb 2007. [36570] #35637, #30434, #25007
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.
- 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-adminadmin (and super admin)/users.php. [36621] #35885
- Remove HTMLHTML 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
- Update unit tests after change to default image quality. [36616] #33642
- Reduce default image compression quality to ’82’. [36615] #33642
- After [36546] restore the “Add new” functionality. [36575] #34350, #35853
Menus
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
- Make view mode sticky for networknetwork (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 fromwp_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 newwp_get_upload_dir()in all cases where a file is not being uploaded. Deprecate_wp_upload_dir_baseurl(), and replace it withwp_get_upload_dir(). [36569] #34359 - Reintroduce term 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. 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 toget_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_excerptin addition to title and content. When ordering search results, exact matches in the post excerptExcerpt 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 filterpre_handle_404to short-circuit default 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. status handling. [36629] #10722 is_*( $int )should not falsely match strings starting with “$int”. [36625] #24674, #35902
Revisions
Schema
Script Loader
- Don’t parse
$srcif the current color scheme isn’t registered. [36591] #35882 - Pass the media attribute as an argument to the
style_loader_tagfilter. [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
$mediaparameter ofwp_register_style()/wp_enqueue_style(). [36649] #35921
Taxonomy
- Make
$taxonomyparameter optional inget_edit_term_link(). [36646] #35922 - Allow
get_terms()to fetch terms regardless of taxonomy. [36614] #35495 - In
get_terms(), assembleWHEREconditions in an array instead of concatenating. [36598] #35495 - Add changelog entry for
publicly_queryableargument inregister_taxonomy(). [36564] #34491
Template
Themes
- After [36546] restore theme search functionality. [36580] #34350
- Fix flickering of the theme screenshot on hover in WebKit browsers. [36579] #35787
- Improve error messages for broken themes. [36638] #35286
TinyMCE
- Inline text patterns [36627] #33300
- Fix the regex that removes spaces from empty paragraphs. Was causing problems when wpautop is disabled and there are many U+00A0 chars between the opening “ and an inline tag. These chars are inserted by the browsers to maintain consecutive spaces typed by the users in contentEditable. [36597] #35890
- Update to 4.3.4. Changelog: https://github.com/tinymce/tinymce/blob/master/changelog.txt. [36589] #35876
- Create and edit links inline. [36602] #33301
Updates
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_formaction 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 thesidebars_widgetsoption. [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!