A Week in Core – February 12, 2024

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 5 and February 12, 2024.

  • 71 commits
  • 245 contributors
  • 82 tickets created
  • 11 tickets reopened
  • 82 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

  • Improve contrast and consistency of focus styles – #51870

Bundled Themes

  • Twenty Fifteen: Add top margin to the File 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. button styles – #58498
  • Twenty Nineteen: Add border-radius to avatarAvatar An avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. images in the editor – #59285
  • Twenty Nineteen: Correct line height for Button block – #58443
  • Twenty Nineteen: Restore transition property to a single line – #58443
  • Twenty Sixteen: Add border-radius to avatar images in the editor – #59253
  • Twenty Twenty-Four: Add missing translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. functions to text strings – #60298
  • Twenty Twenty-Four: Prefix the block pattern categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. name – #59839
  • Twenty Twenty-Three: Include Latin-extended characters in DM Sans font files – #59008
  • Twenty Twenty-Two: Prefix the pages block pattern category name – #59839
  • Twenty Twenty: Fix Table block default and custom border colors – #58022
  • Twenty Twenty: Scope .privacy-policy styles to the footer only – #60469
  • Improve focus outline in Twenty Twenty-Four – #60334
  • Cast font URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org functions to string for add_editor_style()#59704

Build/Test Tools

  • Fix 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. pulling local environment containers on Apple silicone – #59930
  • Generate a human-readable HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. coverage report – #60476
  • Make the props bot message shorter – #60417
  • Pin a specific commit for Hosting Test Reporter – #59647
  • Revert [57551]#59647
  • Unpin PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 7.4 from the test coverage workflow – #59647
  • Adjust the 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. key time in wp_scheduled_delete() tests – #59938

Canonical

  • Introduce admin_canonical_url 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.#59545

Coding Standards

  • Add missing fullstop to docblocks in wp-includes/vars.php#41877
  • Replace alias join() in WP_Font_Utils#60473

Editor

  • Add viewScriptModule handling to block.json metadata – #60233
  • Add wakeup magic method to the block bindings registry – #60282
  • Avoid double escaping on value passed for attribute in HTML 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.) processor
  • Expand Block Bindings for button block – #60481
  • Fix block style variation selector generation – #60453
  • Fix typo in FontUtils doc block – #59166
  • Improve code documentation for block bindings – #60282
  • Introduce WP_Block_Bindings_Source class – #60447
  • Make asset file optional for block scripts – #57234
  • Refactor block binding processing and attribute computation – #60282
  • Register the Google Font collection – #59166
  • Show the patterns page for classic themes – #58827
  • Update PHPDocPHPDoc (docblock, inline docs) for block bindings’s context arg – #59743
  • Update pattern overrides attribute format – #60456
  • Update the WordPress packages to 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/ 17.7RC1 – #60315
  • Block 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.: Inject hooked blocks into modified templates and parts – #59646
  • Blocks: Allow reading the script handle from asset files – #60485
  • Interactivity 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.: Integrate Server Directive Processing – #60356
  • Interactivity API: Remove empty file – #60356

Filesystem API

  • Fix typo in ftp_base::restore()#60497

General

  • Add an option to configure the site icon in general settings – #54370, #16434
  • Remove ableist language from code comments – #60247

HTML API

  • Add subclassed has_bookmark() and fix seek() – #60474
  • Join text nodes on 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.-tag-name boundaries – #60385

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 for Planet URLs – #58010

Media

  • Update progress spinner position on small screens – #33049
  • enable control of progressive image output – #21668

Networks and Sites

  • Improve switch_to_blog() docblockdocblock (phpdoc, xref, inline docs)#60332

Permalinks

  • Detect Caddy web server support – #41877

Plugins

  • Store 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 deletion results in temporary option – #59433

Quick/Bulk Edit

  • Pre-fill category fields with their status – #11302

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 featured_media field to attachments endpoint – #41692
  • Improve error handling in REST meta fields – #48823
  • Introduce the necessary endpoints for the font library – #59166
  • Provide detailed error data in REST API response – #60014

Script Loader

  • Add a timezone offset display value to wp.date.setSettings – #60105
  • Improve translators comments for wp.date.setSettings in compat file – #60412
  • always output core block global styles after base global styles – #60280
  • Add deregister module function – #60463

Shortcodes

  • Always return an array in shortcode_parse_atts()#59249

Themes

  • Add ‘theme_files’ cache group to block pattern cache operations – #60120
  • update add_theme_support docblock – #60221

Toolbar

  • Add adminbar link for new sites in networknetwork (versus site, blog) installs – #41104

Upgrade/Install

  • Avoid update_option() calls during bootstrap – #60461, #60457, #60491
  • Upgrade/Install: Introduce Plugin Dependencies – #22316
  • Micro-optimizations for getting plugin_file in plugins loader 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.#60510
  • Remove unnecessary individual subfiles from $_old_files array – #58995

Users

  • Replace table tags for color palettes in profiles – #53157

Props

Thanks to the 245 (!!) people who contributed to WordPress Core on Trac: @gziolo (14), @mukesh27 (13), @swissspidy (13), @sabernhardt (13), @poena (12), @shailu25 (11), @huzaifaalmesbah (9), @youknowriad (8), @oglekler (7), @joedolson (7), @jorbin (7), @audrasjb (7), @spacedmonkey (6), @SergeyBiryukov (6), @dmsnell (6), @get_dave (6), @hellofromTonya (5), @afercia (5), @kebbet (5), @harshgajipara (5), @johnbillion (5), @costdev (4), @nicolefurlan (4), @jonsurrell (4), @czapla (4), @TimothyBlynJacobs (3), @karmatosed (3), @pbiron (3), @desrosj (3), @afragen (3), @azaozz (3), @luisherranz (3), @dingo_d (2), @mikeschroder (2), @andraganescu (2), @johnjamesjacoby (2), @rajinsharwar (2), @nidhidhandhukiya (2), @cbravobernal (2), @dd32 (2), @wildworks (2), @pooja1210 (2), @wasiur195 (2), @scribu (2), @ajmcfadyen (2), @peterwilsoncc (2), @pitamdey (2), @santosguillamot (2), @isabel_brison (2), @bernhard-reiter (2), @mcsf (2), @ocean90 (2), @aaronrobertshaw (2), @sadpencil (1), @cfinnberg (1), @viliamkopecky (1), @ecc (1), @rcorrales (1), @cvorko (1), @flixos90 (1), @joemcgill (1), @adamsilverstein (1), @_ck_ (1), @markoheijnen (1), @Japh (1), @pmeenan (1), @derekspringer (1), @buley (1), @ericlewis (1), @bahia0019 (1), @born2webdesign (1), @kushang78 (1), @timothyblynjacobs (1), @wonderboymusic (1), @dlh (1), @obenland (1), @jameskoster (1), @kjellr (1), @stacimc (1), @h71 (1), @krupajnanda (1), @jordesign (1), @monzuralam (1), @hrrarya (1), @fnpen (1), @mhshohel (1), @bedas (1), @jeremyfelt (1), @prionkor (1), @matveb (1), @benniledl (1), @jsnajdr (1), @mnydigital (1), @onemaggie (1), @luminuu (1), @pouicpouic (1), @ugyensupport (1), @jivygraphics (1), @sumitbagthariya16 (1), @kkmuffme (1), @talldanwp (1), @dartiss (1), @upadalavipul (1), @manfcarlo (1), @mayur8991 (1), @panchalhimani711 (1), @itpathsolutions (1), @thakordarshil (1), @Ankit-K-Gupta (1), @darshitrajyaguru97 (1), @pavelevap (1), @chasedsiedu (1), @helen (1), @joshcanhelp (1), @ubernaut (1), @Cyberchicken (1), @laumindproductscomau (1), @Marcoevich (1), @tomybyte (1), @thinkluke (1), @virtality-marketing-solutions (1), @Michalooki (1), @itecrs (1), @pannelars (1), @WHSajid (1), @samba45 (1), @Mte90 (1), @tomluckies (1), @soulseekah (1), @francina (1), @webcommsat (1), @balub (1), @sarathar (1), @glendaviesnz (1), @up1512001 (1), @zodiac1978 (1), @davidbinda (1), @westonruter (1), @retrofox (1), @joefusco (1), @colorfultones (1), @acosmin (1), @alh0319 (1), @beafialho (1), @javiercasares (1), @mmaattiiaass (1), @grantmkin (1), @oandregal (1), @ajlende (1), @ahoereth (1), @alanfuller (1), @alexkingorg (1), @amykamala (1), @anonymized_10690803 (1), @apeatling (1), @ashfame (1), @atimmer (1), @aristath (1), @batmoo (1), @beaulebens (1), @blobaugh (1), @bobbingwide (1), @boonebgorges (1), @brianhenryie (1), @chanthaboune (1), @chrisdavidmiles (1), @coolmann (1), @courane01 (1), @danielbachhuber (1), @davidperez (1), @Denis-de-Bernardy (1), @DJPaul (1), @dougal (1), @DrewAPicture (1), @ethitter (1), @filosofo (1), @georgestephanis (1), @giuseppemazzapica-1 (1), @goldenapples (1), @griffinjt (1), @husobj (1), @ideag (1), @jarednova (1), @jbobich (1), @jbrinley (1), @jltallon (1), @johnciacia (1), @joppuyo (1), @jsmoriss (1), @knutsp (1), @kraftbj (1), @kraftner (1), @kurtpayne (1), @lkraav (1), @logikal16 (1), @man4toman (1), @markjaquith (1), @matt (1), @mbijon (1), @megphillips91 (1), @mikeschinkel (1), @mordauk (1), @morehawes (1), @mrwweb (1), @mte90 (1), @mzaweb (1), @nacin (1), @norcross (1), @nvwd (1), @nwjames (1), @obliviousharmony (1), @paaljoachim (1), @pauldewouters (1), @pbaylies (1), @Philipp15b (1), @pogidude (1), @retlehs (1), @rmccue (1), @ryan (1), @sabreuse (1), @sc0ttkclark (1), @sereedmedia (1), @ShaneF (1), @shidouhikari (1), @soean (1), @stephenh1988 (1), @taylorde (1), @tazotodua (1), @threadi (1), @TJNowell (1), @tollmanz (1), @toscho (1), @tropicalista (1), @Viper007Bond (1), @westi (1), @whiteshadow (1), @williamsba1 (1), @wpsmith (1), @ZaneMatthew (1), @noisysocks (1), @kevin940726 (1), and @fabiankaegy (1).

Congrats and welcome to our 28 (!!) new contributors of the week: @sadpencil, @cfinnberg, @viliamkopecky, @ecc, @cvorko, @pmeenan, @derekspringer, @born2webdesign, @kushang78, @hrrarya, @fnpen, @mhshohel, @benniledl, @mnydigital, @up1512001, @alh0319, @anonymized_10690803, @blobaugh, @chrisdavidmiles, @giuseppemazzapica-1, @jltallon, @johnciacia, @logikal16, @pbaylies, @Philipp15b, @pogidude, @tropicalista, @whiteshadow ♥️

Core committers: @gziolo (11), @youknowriad (10), @sergeybiryukov (8), @audrasjb (7), @joedolson (7), @swissspidy (5), @desrosj (5), @spacedmonkey (3), @jorbin (3), @costdev (3), @hellofromtonya (2), @dmsnell (2), @isabel_brison (2), @adamsilverstein (1), @davidbaumwald (1), and @bernhard-reiter (1).

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

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 7.4 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

Fields API Kick-off Chat Summary: January 5th, 2023

It’s been over 4 years since the Fields API project has been active and many things have changed for WordPress in that period.

Since then, many things were introduced into WordPress itself including things like:

  • 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
  • Full Site Editing has replaced 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. (which is now only used for classic themes)
  • New Navigation editing
  • Widgets are now legacy and have been replaced with new blocks and a new 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. editor
  • Newer PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher compatibility (testing still in progress for PHP 8.0+) and talks of upping the minimum PHP version

All of that has led to @joedolson approaching me to determine if it’s worth bringing Fields 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. back with a new vision.

After some initial discussion, the passion reignited within me to get this going again and we ended up having our first kick-off meeting today to discuss where we’ve been, where we’re at, and where we want to go in 2023. This and future work will be organized through our 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 #core-fields

Read below for what we discussed and here’s a link to watch the video from our initial meeting.

Video recording

The kick-off discussion

Meeting notes

Introductions

  • @sc0ttkclark – Scott Kingsley Clark
    • Senior Software Engineer at Pagely / GoDaddy
    • Lead Developer of the Pods Framework
    • Previously Co-Lead of the Fields API project from 2013-2016 with @ericlewis and then Lead Developer from 2016-2017
  • @borkweb – Matthew Batchelder
    • Been working with WordPress since ~2004
    • Worked with The Events Calendar and now Director of Engineering at StellarWP overseeing their products and initiatives
  • @joedolson – Joe Dolson
    • Contributing to WordPress since about 2006
    • WP CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Committercommitter A developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component.
    • Working on the 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) team
    • Reached out to Scott about Fields API from the perspective of improving accessibility for the Settings page
  • @jason_the_adams – Jason Adams
    • Manager of Development at GiveWP
    • Matt and him want to get together about how to help create unified libraries for multiple projects across StellarWP and other companies
    • GiveWP has it’s own Field API that it’s been pushing forward as well
  • @peteringersoll – Peter Ingersoll
    • Worked with WP for about 10 years
    • Not a developer but a user/self-titled user advocate
    • Coming at this as a perspective as a user who is interested in how this will work

Overview of Fields API – where we started

  • Started work in November 2013 with @ericlewis as lead and @sc0ttkclark as co-lead
  • Started holding meetings back when Freenode IRCIRC Internet Relay Chat, a network where users can have conversations online. IRC channels are used widely by open source projects, and by WordPress. The primary WordPress channels are #wordpress and #wordpress-dev, on irc.freenode.net. was being used before Slack
  • Initial focus was around Post 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. fields and meta boxes in the Post Editor
  • Expanded over time to cover a generalized API to work with
    • Post meta boxes and their fields
    • Settings fields (replacing the Settings API)
    • User profile fields (edit profile, add new user)
    • Term fields (add term, edit term)
    • Comment fields (add comment on frontend, edit comment in dashboard)
    • Media fields (modal)
    • Customizer (allowing the Customizer to see Fields API configurations)
  • We built 3 different prototypes over time
  • Hundred of plugins in WP have their own Fields API and lots of devs have their own preference on code structure so there were lots of voices with different opinions for what the Fields API should look like
  • WP Core team (committers and contributors) were somewhat receptive but we couldn’t gain momentum
  • The block editor and other projects started up which reduced priority for getting Fields API into WP especially since it wasn’t just one small part of WP
  • @sc0ttkclark reached out for anyone else to take over the project as lead (while Scott supported) but couldn’t find anyone so the project became inactive

Rebooting Fields API – where we’re at

  • @joedolson approached @courane01 and @sc0ttkclark to see if we wanted to tackle Accessibility as a goal for a smaller reboot of the Fields API
  • The GitHub repository has been unarchived and is ready to start the next steps of getting things going again
  • Lots of test coverage for the API itself
  • A number of examples of how to work with the API
  • Implementations that were covered at the time (in WP 4.5)
  • Things that were in progress at the time (in WP 4.5)
  • @jason_the_adams gave a demo of the GiveWP Fields API
    • Uses a mid-level API to register the configurations
    • Implementations handle rendering those
    • The primary implementation is a Block Editor powered form editing experience
    • @borkweb and @sc0ttkclark provided positive feedback about the PHP side of things

Where we’re going

  • @sc0ttkclark What PHP version should we target?
    • PHP 5.6 is the current minimum and we’ll stick to that unless progress is made on upping the minimum WP version
    • If the minimum version is upped, we can revisit this and adjust our code to follow suit
  • @borkweb How we approach things in WP now is much different than back when the Fields API started
    • Is there merit in separation of data and output like what GiveWP is doing versus what the very coupled approach that the Fields API has right now
  • @joedolson Whether this can be potentially be used for the Block Editor may have a big impact on whether it has traction, though there are plenty places where it could be useful
  • @sc0ttkclark
    • Content areas like Posts and Terms, we’ll likely see more expansion of the Block Editor
    • There are a few places in WP that may not make sense to be in the block editor itself
      • Settings
      • User profile
      • Maybe others?
    • Those areas may eventually use ReactReact React is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/. components to render but won’t live in the “Block Editor” that we know of today
    • We could separate the Fields API focus into specific component implementations, not unlike what we had before but with the goal being that we are registering structure – whether or not that is the same exact input used for each screen (some screens will need their own form implementations for their inputs that may not be HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. renders)
    • If we wanted to implement Fields API for the Block Editor, it could help register Components for the Inspector Panel for Blocks, which is currently an area with high copy/paste
      • Fields API could register Inspector Panel sections and components
    • PHP has grown up and it may be better to use objects than straight PHP arrays especially since that can work with IDEs and help with autocomplete for a better developer experience
    • With the Fields API, I want to make possible the idea that you can interact with the configuration of a form and add/change fields by registering new fields or adjusting their configurations
    • Knowing what the structure of a page is (outside of just basic actions that people use now to render HTML) gives devs the ability to take those configurations and consume them through WP-CLIWP-CLI WP-CLI is the Command Line Interface for WordPress, used to do administrative and development tasks in a programmatic way. The project page is http://wp-cli.org/ https://make.wordpress.org/cli/, 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/., and PHP for custom implementations like the WordPress iOSiOS The operating system used on iPhones and iPads. app and many other apps that need to represent the various edit screens
  • @borkweb So the Fields API project would morph into a data layer and one or more rendering implementations to consume that
  • @sc0ttkclark
    • We can focus on Settings page at first and go from there into the User profile, but leave everything else out until we gain traction and get something into Core
    • Don’t focus on legacy things like the Classic Editor or Customizer or the Widget forms
  • @joedolson Getting this built out and implemented is a challenge but I’m game
  • @sc0ttkclark We should figure out what we want to structure the Fields API off of, but use object oriented as much as possible and make the focus on better developer experience so we can help level up working with WP
    • We could look at the structure of GiveWP’s Fields API and other modern Fields APIs from other plugins/libraries
    • Avoid looking back at older/legacy plugins and libraries
    • Find a consensus on what makes sense that most people will be familiar with based on what’s popular/modern
    • The current Fields API is based on the Customizer API which has become antiquated already

Next steps

  • Meetings: Figure out the frequency of meetings and when our next meeting is
  • Viability: Get a gut-check from WP core dev team in the core meeting and through responses to this post on direction and our focus
  • Spec: Look at modern Fields APIs in modern plugins/libraries and figure out how we want that structure to look like through a new spec doc
  • Code: Start with a Settings API implementation collaborating with @joedolson and the Accessibility team to ensure that side is accessible
  • Testing: Ensure the API is well tested with unit tests
#feature-plugins, #fields-api, #options-meta, #summary

A Week in Core – February 8, 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 February 1 and February 8, 2021.

  • 41 commits
  • 123 contributors
  • 64 tickets created
  • 9 tickets reopened
  • 79 tickets closed

You might have noticed that the activity on Core continued to increase this week, due to WordPress 5.7 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. cycle. Also, WordPress 5.6.1 was released on Wednesday 3, 2021.

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

Administration

  • Fix background color of 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 update row on small screens – #52452
  • New 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. ahead of the months drop-down – #51660
  • use shorthand css properties to improve readability – #52148
  • Coding Standards: Update links to be 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. in package-lock.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.[50163]

Build/Test Tools

  • Fix tests after [50185]#52341
  • Specify a version range within engines for node and npm#52455

Docs

  • Clarify the @return value for wp_get_attachment_image_url() and get_the_post_thumbnail_url()#52183

Editor

  • Correct the check for unsaved content in wp.autosave.server.postChanged()#52440

Media

  • Use a unique name for the nonce of the custom fields toggle form – #51483
  • Pause any playing media when closing the the media modal – #48562
  • Consistency in logic to pass wp_getimagesize() tests – #49889

Privacy

  • Remove gray left border on the inline notices in Privacy Policy Guide – #52430
  • Update URLs to the Privacy Policy Guide in help tabs – #52430
  • Rename the $send_confirmation_email parameter of wp_create_user_request() to $status, for clarity – #52430
  • Update colors to match new color palette – #52436
  • Redesign the Privacy settings pages – #49264

Security

  • add Content-Security-Policy script loaders – #39941

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.

  • Add filter for post statuses when updating term count – #38843

Users

  • Allow the role of users to be bulk changed to no role from the Users listing screen – #52238

Props

Thanks to the 123 people (that’s HUGE) who contributed to WordPress Core on Trac last week:

@hellofromTonya (12), @xkon (10), @TimothyBlynJacobs (7), @audrasjb (6), @paaljoachim (5), @peterwilsoncc (5), @mukesh27 (5), @dd32 (4), @SergeyBiryukov (4), @hedgefield (4), @garrett-eclipse (4), @sabernhardt (4), @afragen (3), @birgire (3), @whyisjake (3), @johnbillion (3), @Mista-Flo (3), @desrosj (2), @poena (2), @davidbaumwald (2), @knutsp (2), @estelaris (2), @noisysocks (2), @flixos90 (2), @adamsilverstein (2), @dlh (2), @afercia (2), @Clorith (2), @kurtpayne (1), @jaymanpandya (1), @anyssa (1), @sippis (1), @AmethystAnswers (1), @timothyblynjacobs (1), @lukecavanagh (1), @magicroundabout (1), @erichmond (1), @DrewAPicture (1), @Ipstenu (1), @nico_martin (1), @eventualo (1), @bduclos (1), @yannkozon (1), @wonderboymusic (1), @ericlewis (1), @joyously (1), @pento (1), @tinodidriksen (1), @markhowellsmead (1), @jrf (1), @ianmjones (1), @nacin (1), @jeremyfelt (1), @prettyboymp (1), @r-a-y (1), @ryan (1), @dimadin (1), @stevenkword (1), @jfarthing84 (1), @aristath (1), @7studio (1), @kara.mcnair (1), @swissspidy (1), @pbiron (1), @Howdy_McGee (1), @netweblogic (1), @burtrw (1), @megabyterose (1), @souri_wpaustria (1), @pixelverbieger (1), @e_baker (1), @scruffian (1), @iprg (1), @Joen (1), @viablethought (1), @GunGeekATX (1), @mkaz (1), @jeroenrotty (1), @ovidiul (1), @bonniebeeman (1), @magnuswebdesign (1), @hmabpera (1), @worldedu (1), @dbtedg (1), @bartosz777 (1), @nwjames (1), @roger995 (1), @tonysandwich (1), @ibiza69 (1), @archon810 (1), @hwk-fr (1), @naveen17797 (1), @GeekPress (1), @vandestouwe (1), @amolv (1), @justinahinon (1), @davecpage (1), @tomdxw (1), @herregroen (1), @ankitmaru (1), @jnylen0 (1), @jason_the_adams (1), @mayankmajeji (1), @karmatosed (1), @wesselvandenberg (1), @allendav (1), @iandunn (1), @TZ-Media (1), @azaozz (1), @joedolson (1), @hareesh-pillai (1), @jadeddragoon (1), @geoffguillain (1), @jorbin (1), @antpb (1), @clorith (1), @ocean90 (1), @enricocarraro (1), @alinod (1), @epicfaace (1), @mallorydxw (1), @jrchamp (1), and @JoshuaWold (1).

And we also have a new Week in Core record! Please join me to say welcome to our 21 new Core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. of the week ♥️
@alinod, @jadeddragoon, @mallorydxw, @epicfaace, @hwk-fr, @enricocarraro, @geoffguillain, @nwjames, @GeekPress, @viablethought, @naveen17797, @ibiza69, @tonysandwich, @roger995, @bartosz777, @dbtedg, @worldedu, @hmabpera, @magnuswebdesign, @vandestouwe, and @bonniebeeman.

Core committers: @sergeybiryukov (14), @antpb (6), @desrosj (3), @timothyblynjacobs (3), @peterwilsoncc (3), @ryelle (2), @adamsilverstein (2), @whyisjake (2), @joemcgill (2), @ocean90 (1), @johnbillion (1), @jorbin (1), and @iandunn (1).

Please note: it only includes commits with proper props attribution.

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

A Week in Core – February 1st, 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 25, 2021 and February 1st, 2021.

  • 57 commits
  • 93 contributors
  • 62 tickets created
  • 8 tickets reopened
  • 84 tickets closed

You might have noticed that the activity on Core increased this week. This is due to the end of the alpha cycle of WordPress 5.7 (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.) and WordPress 5.6.1 (next minor) 🗓
5.7 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 is planned for tomorrow and 5.6.1 is planned on Wednesday 3, 2021 🚀

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

Administration

  • Remove italic text to improve readability – #47327
  • Accommodate long translations of user roles in the “Role” list table column – #52184
  • Standardize colors used in CSSCSS Cascading Style Sheets. to a single palette – #49999
  • Respect the prefers-reduced-motion media query for update icon spinner animations – #52263

Application Passwords

  • Introduce fine grained capabilitiescapability 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).#51703
  • Introduce introspection endpoint – #52275
  • Improve validation and sanitization of the application name – #51941

Build/Test Tools

  • Replace node-sass with Dart Sass – #51763

Bundled Themes

  • Twenty Twenty-One: Correct 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. name in twenty_twenty_one_get_starter_content() DocBlockdocblock (phpdoc, xref, inline docs)#52410
  • Twenty Twenty-One: Correct colors for the Menu button – #52374
  • Twenty Twenty: Remove aria-expanded on search modal close button – #52355

Comments

  • Introduce a method for commenters to opt-in to receiving an email notification when their moderated comment gets approved – #33717

Editor

  • Introduce a dynamic filter for the content of a single 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.#46187
  • Update @wordpress npm packages – #52334
  • Add enableCustomSpacing#51760

Docs

  • Switch a comment in WP_Media_List_Table::prepare_items() to multi-line format, per the documentation standards – #52025
  • Revert documentation change for wp_get_attachment_metadata()#52196

Login

  • Enable filtering the back to blog link – #35449

Mail

  • Make sure the SMTP class is only required once if a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party requires wp-includes/class-smtp.php directly – #52369

Media

  • Remove unused refresh from _requery – #50025
  • Remove caching from filter by date in media library – #50025
  • Ensure that wp_get_attachment_metadata can return values from the global $post, if available – #52196

Menus

  • Add sticky footer to avoid duplicate save buttons – #51631

Plugins

  • Rotate the Updates icon in the adminadmin (and super admin) bar when performing inline updates on the Plugins screen – #51476

Posts, Post Types

  • Introduce new functions for determining if a post has a parent (has_post_parent()) and to fetch the post parent (get_post_parent()) – #33045
  • Introduce “Filter by date” and “Filter by categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.” as post type and 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. labels, respectively – #42421

Privacy

  • Ensure that exported user data reports can’t be found with directory listings – #52299

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 batch image editing endpoints – #52192
  • Refactor rest_validate_value_from_schema into separate validation functions per-type – #52375
  • Introduce modified_before and modified_after query parameters for the posts endpoints – #50617

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.

  • Address PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher/JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. errors when viewing autosave on imported posts – #31249
  • Generate correct number of columns in wp_text_diff#25473

Robots

  • Add max-image-preview:large directive by default – #51511

Security

  • Allow short-circuiting the wp_update_https_detection_errors() process – #47577
  • Improve accuracy in messaging about 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. support – #47577

Site Health

  • Update the language around how PHP should be updated – #52327
  • Update php update strings to not overpromise performance – #52327
  • Only run the version checks on the main site – #52135

Taxonomy

  • Declare and document the sort and args properties of the WP_Taxonomy class – #52142

Upgrade/Install

  • Display correct message about the current version in the admin footer – #51976
  • Allow WordPress sites to opt-in to development releases – #51978

Users

  • Enable admins to send users a reset password link – #34281

Props

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

@audrasjb (16), @SergeyBiryukov (10), @xkon (7), @hellofromTonya (6), @Mista-Flo (5), @afercia (5), @johnbillion (5), @adamsilverstein (5), @TimothyBlynJacobs (4), @sabernhardt (4), @whyisjake (4), @johnjamesjacoby (3), @joedolson (3), @timothyblynjacobs (3), @afragen (2), @kburgoine (2), @maxpertici (2), @garrett-eclipse (2), @DrewAPicture (2), @Clorith (2), @flixos90 (2), @peterwilsoncc (3), @poena (2), @teamdnk (2), @birgire (2), @hedgefield (2), @paaljoachim (2), @wonderboymusic (2), @knutsp (2), @mdwolinski (1), @cfinke (1), @melchoyce (1), @claytoncollie (1), @chanthaboune (1), @dilipbheda (1), @isabel_brison (1), @yakimun (1), @talldanwp (1), @youknowriad (1), @oellin (1), @mukesh27 (1), @freewebmentor (1), @lucasbustamante (1), @alexstine (1), @francina (1), @karmatosed (1), @engahmeds3ed (1), @notlaura (1), @danfarrow (1), @Boniu91 (1), @drw158 (1), @ravipatel (1), @Joen (1), @ibdz (1), @jeremyfelt (1), @zodiac1978 (1), @mehulkaklotar (1), @aaribaud (1), @Ipstenu (1), @dd32 (1), @gziolo (1), @gunnard (1), @eventualo (1), @ericlewis (1), @JoshuaWold (1), @iseulde (1), @ramiy (1), @sebastianpisula (1), @desrosj (1), @ajlende (1), @manzoorwanijk (1), @noisysocks (1), @pbiron (1), @azaozz (1), @nicolalaserra (1), @ebinnion (1), @Chaton666 (1), @nosolosw (1), @kebbet (1), @jeffr0 (1), @swissspidy (1), @mrahmadawais (1), @jdgrimes (1), @obenland (1), @Monika (1), @imath (1), @helen (1), @joostdevalk (1), @tweetythierry (1), @westonruter (1), @pinkalbeladiya (1), @davidbaumwald (1) and @greatsaltlake (1)

Please welcome our 8 new Core contributorsCore Contributors Core contributors are those who have worked on a release of WordPress, by creating the functions or finding and patching bugs. These contributions are done through Trac. https://core.trac.wordpress.org. of the week ♥️
@teamdnk, @oellin, @engahmeds3ed, @aaribaud, @gunnard, @nicolalaserra, @pinkalbeladiya and @greatsaltlake.

Core committers: @sergeybiryukov (12), @whyisjake (5), @johnbillion (4), @antpb (4), @joedolson (4), @timothyblynjacobs (4), @adamsilverstein (3), @flixos90 (3), @ryelle (2), @noisysocks (2) and @peterwilsoncc (1).

Please note: it only includes commits with proper props attribution.

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

A Week in Core – December 21, 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 December 14 and December 21, 2020.

  • 41 commits
  • 57 contributors
  • 81 tickets created
  • 12 tickets reopened
  • 90 tickets closed

Now that WordPress 5.6 « Simone » was smoothly delivered to millions of people, the WordPress Core Team is quietly moving to WordPress 5.7.

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

Build/Test Tools

  • Build/Test Tools: Support the use of MariaDB in the local Docker environment – #51744
  • Build/Test Tools: Run the Ajax test group for 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#46567
  • Build/Test Tools: Generate a code coverage report using 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 – #52034

Bundled Themes

  • Twenty Twenty-One: Do not specify `loading=“eager”` for single post thumbnails – #52139
  • Twenty Twenty-One: Allow local anchor links to be used in primary navigation – #52006
  • Twenty Ten: Correct `$post_title` variable name in `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.-attachment.php` – #52121
  • Twenty Twenty-One: Clarify a sentence in `readme.txt` – #52120
  • Twenty Nineteen: Add “Continue reading” link for post excerpts – #46177
  • Twenty Twenty-One: Correct `since` inline documentation tags – #51958
  • Twenty Twenty-One: Make text within code blocks readable in Dark Mode – #51985
  • Twenty Twenty-One: Prevent `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.` embeds from being too narrow – #52004
  • Twenty Twenty-One: Fix typos in some inline comments – #52071XML-RPC: Emit an appropriate 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. status code when an error is returned in response to an XML-RPC request – #48213

Docs

  • Use a canonical form of “knowledgeable” in `readme.htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.` – #52125
  • Fix typo in `getCursorMarkerSpan()` DocBlockdocblock (phpdoc, xref, inline docs) in `js/_enqueues/wp/editor/base.js` – #52128

Editor

  • Fix improper triggering of the “Are you sure” prompt when navigating away from the old, “classic” Edit Post screen and there are no changes. Was
  • Blocks: Align with 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/ the name of generated asset handle for core blocks – #50328

Feed

  • Replace `join()` with `implode()` for safety – #51056
  • Merge multiple 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. values to avoid fatal error – #51056

Mail

  • Introduce a `pre_wp_mail` 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. to allow short-circuiting the `wp_mail()` function without having to override the pluggable function – #35069

Media

  • Editor: Fix improper triggering of the “Are you sure” prompt when navigating away from the old, “classic” Edit Post screen and there are no changes. Was triggered when there is an instance of TinyMCE in the 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. postbox – #52038
  • Enable lazy-loading of iframes by adding the `loading=”lazy”` attribute to iframe tags on the front-end – #50756
  • Uploads: Introduce the `{$action}_overrides` filter that allows the overrides parameter for file uploads and file sideloads to be filtered – #16849
  • Fix the template for the “Align” and “Link To” fields in the media modal when inserting an image from URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org

Query

  • Respect post-type specific capabilitiescapability 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). when querying for multiple post types – #13509, #48968, #48556
  • Ensure the author archive title always shows the name of the queried author, regardless of whether there are results – #44183

Props

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

@mukesh27 (5), @poena (5), @SergeyBiryukov (4), @audrasjb (2), @johnbillion (2), @Mte90 (2), @azaozz (2), @sabernhardt (2), @flixos90 (2), @westonruter (1), @justinahinon (1), @slaFFik (1), @leogermani (1), @helen (1), @thorlentz (1), @laurelfulford (1), @ericmann (1), @kevin940726 (1), @rodrigosprimo (1), @jonathanstegall (1), @alex27 (1), @noisysocks (1), @david.binda (1), @litemotiv (1), @inc2734 (1), @NicolasKulka (1), @hellofromTonya (1), @mbabker (1), @skithund (1), @desrosj (1), @timothyblynjacobs (1), @mdrockwell (1), @davidbaumwald (1), @metalandcoffee (1), @swissspidy (1), @ryelle (1), @macmanx (1), @t-p (1), @aristath (1), @iandunn (1), @jakub.tyrcha (1), @nacin (1), @wonderboymusic (1), @DvanKooten (1), @jtsternberg (1), @ocean90 (1), @ericlewis (1), @birgire (1), @ayeshrajans (1), @Tkama (1), @subrataemfluence (1), @shahinsid07 (1), @voboghure (1), @gkibria69 (1), @garrett-eclipse (1), @netweb (1) and @manzurahammed (1).

Core committers: @desrosj (8), @sergeybiryukov (5), @johnbillion (4), @azaozz (2), @iandunn (2), @gziolo (1), @boonebgorges (1) and @flixos90 (1).

Thanks @annezazu for proofreading this post.

#5-7, #week-in-core

Dev Chat Summary: September 21 (4.7 week 5)

This post summarizes the dev chat meeting from September 21st (agenda, Slack archive).

Reminders

  • Schedule: As of this meeting, we are 4 weeks from the final chance to merge in major features. This includes Twenty Seventeen.

Bug Scrubs

  • 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 scrub this week. 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) standing scrub on Mondays at 17:00 UTC in the #accessibility channel. Other teams tend to devote time in their weekly meetings.
  • General purpose 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. scrubs to move tickets along in the milestone to be hosted by @morganestes, @stevenkword, @aaroncampbell, & @desrosj
  • @swissspidy to run Cron 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. bug scrub as time allows
  • If you can you run a scrub to help ensure tickets move forward, then please pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” @jorbin for guidance. Here’s a writeup on how to run a bug scrub

Components & Features

  • Twenty Seventeen (@davidakennedy, @melchoyce)
  • 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/. (@krogsgard, @kadamwhite )
    • Latest update
    • API discussion is at 7 am Pacific on Mondays
    • Settings endpoints and meta support both have first-passes on them, which need internal review and some more testing before we ship
    • We have a path forward for passworded posts (password in the query string, eww, but only viable option), there really isn’t a way we can see to avoid sending them as a query param
    • Meeting tomorrow in #core-restapi at 21:00 UTC to go through open issues around non-trivial, conceptual issues in WordPress. REST API team will prepare summary of issues for component maintainers and/or lead devs to review, question, and help guide discussion towards consensus.
  • Media (@mikeschroder, @joemcgill)
    • Latest update
    • Moving our weekly meetings up to Fridays at 17:00 UTC starting this week
    • Unexpected change to media title behavior in WP 4.6.1 (#37989) – The main issue here was resolved, but there seems to still be some odd behavior affecting words being chopped off filenames with international characters. Could use extra eyes from anyone (along with @sergey) more versed in 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.. Regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. on the attachment titles that we generate on upload all became URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org encoded instead of reading like a normal title.
    • Media search doesn’t include file name (#22744) – Committed earlier this week. Please report any issues that come as a result.
    • Next step in improving the organization of the media library is to assess both the infrastructure and UIUI User interface improvements that need to be made here. Prefer to include #design early in this process, rather than asking for UI feedback on development driven decisions, hope to be part of the #design chat agenda tomorrow
  • Customize (@westonruter, @celloexpressions)
    • Latest update
    • In this week’s meeting we developed a schedule for publishing make/coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. feature proposals/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. for the remaining primary 4.7 customize projects, working backward from anticipated time to commit after the proposal and current readiness:
      • Week of 9/19: Improving sliding panels UI (34391, @delawski)
      • Week of 9/26: A new experience for themes in 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. (37661, @celloexpressions). Please review soon for any requested changes in direction or design.
        • Summary: The existing themes section in the customizer is replaced with a full-screen theme browser and installer… The UI is nearly identical to wp-adminadmin (and super admin)/theme-install.php… The .org-based theme-install previewer is not accessible here because it is likely to cause confusion with its customizer-like interface and the resulting need to switch contexts back and forth… An overarching goal is to avoid switching in and out of the admin/frontend/customize contexts during theme installation and previewing, instead staying in the hybrid customizer context that provides a combination of frontend plus controls… On the technical side, this heavily leverages JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.-templated customizer controls and scales nicely to hundreds of themes.
        • Visual:
        • Please comment on the ticketticket Created for both bug reports and feature development on the bug tracker. with your feedback as soon as possible, preferably with specific concerns/ideas and reasons.
        • @celloexpressions to check in with @karmatosed on user testing ahead of posting final feature proposal
      • Week of 9/26: Customize transactions (30937, @westonruter evaluating this week and might puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) again)
      • Week of 10/3: Code-editing gateways, via CSSCSS Cascading Style Sheets. (35395, @johnregan3/@celloexpressions). Awaiting approval/feedback on the acceptability/ability to bundle the two proposed libraries in core, with feedback particularly needed from committers and anyone familiar with the Jetpack fork of CSSTidy.
      • Week of 10/10: Customizer browser history (28536, @westonruter)
  • I18n (@swissspidy)
    • User Admin Language (#29783) – almost ready, another review this week and will commit if no blockerblocker A bug which is so severe that it blocks a release. pops up
    • Introduce a localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English.-switching function (#26511) – @ocean90 to do some benchmarking
    • Introduce some 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/. i18n functions (#20491) – GlotPress side has a solid 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 for exporting translations as 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. files (assistance on testing would be helpful). Still tinkering with the WordPress side and would love to get some additional feedback there.
  • Editor (@azaozz, @iseulde)
    • No updates, but would love to figure out a way to get more user feedback that helps us set direction for the editor. Will look to add some Core questions to annual survey on 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/. Otherwise will start with something in 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. tester plugin, biased audience but it’s one that exists, is more likely to opt-in, and will be more flexible.
  • 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. (@johnbillion)

Open Floor

  • @pbearne on Add filters to wp_new_user_notification and wp_password_change_notification (#38068) – added a set of filters to allow us to override email messages send by the wp_new_user_notification and wp_password_change_notification functions. @johnbillion to review as it relates to work on notifications.
  • @danieliser checking for interest for core in a set of reusable templates, models & functionality for forms, tabs & modals
  • @ericlewis on Bulk actions: Reactivate bulk actions hook + add hander hook for all admin screens (#16031) – could use a review of the latest 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., looking to commit sometime in the next week
  • @dshanske still working through the Pings and Trackbacks component

#4-7, #core, #dev-chat, #summary

Week in Core, September 7 – 20, 2016

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 [38571-38636]. Here are the highlights:

  • 66 commits
  • 61 contributors
  • 171 tickets created
  • 15 tickets reopened
  • 106 tickets closed

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

Code Changes

Administration

Bootstrap/Load

  • Docs: Use a third-person singular verb for wp_doing_ajax 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. added in [38334]. [38607] #25669
  • Bootstrap: Use dirname() when loading class-wp-hook.php from plugin.php. [38589] #37707

Charset

  • Database: Fall back to utf8 when utf8mb4 isn’t supported. [38580] #37982

Customize

  • Add wp-util as a dependency for customize-controls. [38628] #38107
  • Remove IE8 access to 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. to discontinue support. [38627] #38021
  • Let static_front_page section be contextually active based on whether there are any published pages. [38624] #34923, #38013
  • Ensure nav menu items lacking a label use the title from the original object. [38618] #38015
  • CBetter hover/focus state for section titles and available widgets. [38602] #29158
  • Implement previewing of form submissions which use the GET method. [38587] #20714
  • Prevent 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. previewing logic from building 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. jQuery selectors when sidebars are registered without a class name in before_widget. [38577] #37993

Database

  • Normalise index names in dbDelta(). [38591] #34874
  • Increase the size of wp_posts.post_password to 255 characters. [38590] #881

Formatting

  • Docs: Use a third-person singular verb for smilies filter added in [38504]. [38608] #35905
  • Update autop() to match wpautop(). [38594] #4857, #4857
  • Docs: Fix an outdated comment. [38593] #4857
  • Add an extra line break before 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. elements in wpautop(). [38592] #4857
  • Don’t send an 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. status code in wp_send_json() by default. This avoids clobbering an HTTP status code that may have been set prior to calling this function. [38576] #35666

General

  • 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: Revert [38388]. [38636] #37699
  • Docs: Use a third-person singular verb for register_post_type_args filter added in [34242]. [38610] #37770

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.

  • Correct context for Next/Previous strings in get_the_posts_pagination(). [38611] #37952

Media

Menus

  • 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): Standardize the remove/delete/cancel links in the Menus screen and Publish 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. boxes. [38616] #37969, #37018, #37448, #37138, #27314
  • Use strict comparison for the condition added in [38612]. [38613] #37846
  • Remove ‘sub item’ label when removing the sub item’s parent. [38612] #37846
  • Docs: Fix phpdocPHPDoc (docblock, inline docs) and jsdoc typos introduced in [38584] and [38587], respectively. [38588] #33742, #20714
  • Prevent non-published posts/pages from being returned in search results for adding as nav menu items. [38584] #33742
  • Fix notices thrown by classes extending Walker_Nav_Menu. [38575] #35206
  • Improve documentation of new $item_spacing argument. [38574] #35206

Networks and Sites

  • Multisite: Show always domain and path when deleting a site. [38633] #37309
  • Multisite: Use get_networks() in get_main_network_id(). [38632] #37218
  • Multisite: Provide $join as a possible SQL clause to the sites_clauses filter. [38631] #37922
  • Multisite: Add annotations for extended WP_Site properties. [38630] #37932
  • Docs: Synchronize docblocks for WP_Site_Query::__construct() and get_sites() after the changes in [37735], [38008], [38103], and [38336]. [38596] #38039
  • Docs: Correct description for domain and path arguments in WP_Network_Query::__construct(). [38595] #32504

Options, Meta APIs

  • Options: Build out register_setting like register_meta. [38635] #37885

Permalinks

  • Ensure Pending Review Posts permalink posts link to the draft [38572] #37423

Plugins

  • Style the primary action link in the non-js “Installing 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” page. [38617] #36430
  • Tests: Use add_filter() when it’s available. [38582] #17817
  • Docs: Fix minor formatting for inline docsinline docs (phpdoc, docblock, xref) in WP_Hook following its introduction in [38571]. [38573] #17817
  • 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.: Add the new class WP_Hook, and modify hook handling to make use of it. [38571] #17817

Posts, Post Types

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

Shortcodes

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.

  • Docs: Correct the description of {$taxonomy}_term_new_form_tag hook, making it more consistent with other *_form_tag hooks. [38629] #38104
  • Pass taxonomy name to actions in term-relationship CRUDCRUD Create, read, update and delete, the four basic functions of storing data. (More on Wikipedia.) functions. [38621] #38006
  • Query: Eliminate unnecessary wp_list_filter() call in get_queried_object(). [38586] #37962
  • Query: Avoid PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher notice in get_queried_object() when query contains NOT EXISTS tax query. [38585] #37962

Themes

  • Docs: Correct two references to plugins in the $args parameter description for themes_api(). [38623] #37939
  • Docs: Use a third-person singular verb for {$type}_template_hierarchy filter added in [38385]. [38609] #14310
  • Docs: Use a third-person singular verb in the DocBlockdocblock (phpdoc, xref, inline docs) summary for get_theme_file_uri(), get_parent_theme_file_uri(), get_theme_file_path(), and get_parent_theme_file_path(), introduced in [38578]. [38606] #18302
  • Docs: Use a third-person singular verb for theme_file_uri, parent_theme_file_uri, theme_file_path, and parent_theme_file_path filters added in [38578]. [38605] #18302
  • Add the non-encoded form of the queried item slug to the template hierarchy when the slug contains non-ASCII characters. [38583] #37655
  • Taxonomy: Revert accidental changes introduced in [38578]. [38579] #18302
  • Improve child themeChild theme A Child Theme is a customized theme based upon a Parent Theme. It’s considered best practice to create a child theme if you want to modify the CSS of your theme. https://developer.wordpress.org/themes/advanced-topics/child-themes/. file inheritance by introducing functions for locating and fetching the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org or path to files within child and parent themes. [38578] #18302

Toolbar

  • Add a ‘View Posts’ link to the toolbar when on the post listing screen. [38634] #34113

Upgrade/Install

  • Docs: Correct a comment and @return entry in WP_Upgrader::create_lock(). [38622] #38089
  • Automatically log users in after installation. [38619] #34084

XML-RPC

  • Avoid a PHP notice in ::pingback_ping() if page title was not found. [38620] #36727
  • Check the minimum number of arguments in ::wp_getUsersBlogs() and ::blogger_getUsersBlogs(). [38600] #29750

Thanks to @aaroncampbell, @adamsilverstein, @afercia, @akibjorklund, @DMing, @BjornW, @boonebgorges, @celloexpressions, @curdin, @danielpietrasik, @dd32, @DrewAPicture, @eliorivero, @enshrined, @ericlewis, @FlorianBrinkmann, @folletto, @georgestephanis, @gma992, @helen, @hideokamoto, @hugobaeta, @ian.edington, @iandunn, @jbrinley, @jeremyfelt, @joehoyle, @joemcgill, @johnbillion, @johnjamesjacoby, @jorbin, @karmatosed, @kitchin, @knutsp, @markshep, @MaximeCulea, @melchoyce, @monikarao, @nacin, @nazgul, @obenland, @ocean90, @paulwilde, @pento, @peterwilsoncc, @RedSand, @rmccue, @rnoakes3rd, @rommelxcastro, @ryankienstra, @ryanplas, @SergeyBiryukov, @skippy, @spacedmonkey, @swissspidy, @Takahashi_Fumiki, @websupporter, @welcher, @westonrute, @westonruter, and @wonderboymusic for their contributions!

#4-7, #week-in-core

WordPress 4.7: What’s on your mind?

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. has been open for 4.7 commits for a couple weeks now, with 4.7 formally kicking off next week – more on that to come shortly. To help get an understanding of what people want to see in 4.7 (and beyond), chime in below with pet tickets, projects, and other wishlist items. If you’re able to work on your suggestion, please also indicate that. As both the release leadRelease Lead The community member ultimately responsible for the Release. and a lead developer, I have plenty of thoughts of my own, but right now I want to hear yours.

Disclaimer: Comments do not constitute binding contracts. 🙂

#4-7, #wishlist

Week In Core, July 6 – July 12 2016

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 [37980-38039]. Here are the highlights:

  • 59 commits
  • 39 contributors
  • 61 tickets created
  • 3 tickets reopened
  • 20 tickets closed

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

Code Changes

Administration

  • Add aria-button-if-js class to links in the media list table that behave like buttons when 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/. is on. [38031] #26504, #36555

Bootstrap

  • Make wp_is_ini_value_changeable() compatible with PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 5.2.6 – 5.2.17. See #32075. [38017] #32075
  • Enhance core’s memory limit handling. Related commits: [38011-38013] [38015] #32075
  • Clean up wp_convert_hr_to_bytes(). [38013] #32075
  • Move wp_convert_hr_to_bytes() to wp-includes/load.php. [38012] #32075
  • Move constants for data sizes before constants for memory limits. [38011] #32075

Comments

Customize

  • Fix panel indentation in Firefox. [37984] #34622
  • Ensure that WP_Customize_Setting::value() can return a previewed value for aggregated multidimensionals. [37982] #37294
  • Ensure that WP_Customize_Nav_Menu_Section is able to represent a placeholder nav menu. [37981] #37293

Docs

  • The $labels property in WP_Post_Type is of type object as returned from get_post_type_labels(), not an array. [38030] #36217
  • Standardize references to “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. box” or “meta boxes” as two distinct words throughout core documentation per the core spelling guide. [38029] #32246
  • Standardize capitalization of Ajax throughout core documentation per the core spelling guide. [38028] #32246
  • Link the 4.6 changelog entry in the DocBlockdocblock (phpdoc, xref, inline docs) for register_meta() to its corresponding 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. on make/core. [38027] #35658, #37318
  • Fix a typo in the DocBlock for themes_api(), themes_api, plugins_api(), and plugins_api. [38025] #32246
  • Fix minor formatting and syntax for wp-admin/* elements introduced in 4.6. [38024] #37318
  • Cross-reference parent classes in DocBlocks for upgrader classes moved to their own files in 4.6 [38023] #36618, #37318
  • Improve usefulness of DocBlocks for ajax-actions.php functions introduced in 4.6. [38022] #37318
  • Fix a typo in the hook doc description for the enable_loading_advanced_cache_dropin run-time 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.. [38021] #34936, #37318
  • Fix a typo in an inline hook reference in the DocBlock for comment_form(). [38018] #32246
  • Fix typo in a comment in Core_Upgrader::upgrade(). [38014] #37314
  • Correct the description of the $network_id in WP_Site_Query. [38008] #35791
  • Fix an incorrect @since comment. [37994] #36495
  • Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core. [37985] #36495

Embeds

  • Include localeLocale A locale is a combination of language and regional dialect. Usually locales correspond to countries, as is the case with Portuguese (Portugal) and Portuguese (Brazil). Other examples of locales include Canadian English and U.S. English. stylesheets after default styles. [38010] #36839
  • Don’t print the HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. for a 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. if a post has no featured image. [37988] #37288

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.

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.

  • I18N: Introduce an on/off switch for locales where comment number needs to be declined. [37987] #13651

Media

  • Don’t use ‘full’ as array key in wp_calculate_image_srcset(). [37986] #36345

Meta

  • Add a missing @since param for wp_object_type_exists(). [38038] #35658
  • Don’t pass an empty $meta_key to get_metadata(). [37996] #35658
  • Introduce an initial set of tests for register_meta(). [37995] #35658
  • Make registration error conditions return consistently. [37991] #
  • Ensure $object_subtype is available before use in register_meta(). [37990] #35658

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

  • Use hash_equals() when comparing hashes to mitigate timing attacks. [38032] #37324
  • Correct logic used to display an Edit User link after adding a user. [38007] #37223
  • Add a nonce to the “Cancel” URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org when changing a site’s adminadmin (and super admin) email. [38006] #36954
  • Don’t store max_num_pages in WP_Network_Query query cache. [38003] #32504
  • Don’t store max_num_pages in WP_Site_Query query cache. [38002] #35791

Plugins

  • Improve Ajax search of installed plugins. [38033] #37230
  • In plugin_basename() sort 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 paths before resolving symlinks. [37983] #28441

Resource Hints

  • Remove schemes from dns-prefetch resource hint outputs. [38036] #37240

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.

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.

  • Remove an unnecessary double assignment in WP_Term_Query::get_terms(). [38020] #37254

Tests

  • Don’t change the memory_limit setting during tests. See #32075. [38016] #32075
  • Ensure that test 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. user ID actually uses an invalid user ID. [38005] #37308
  • Add description for data_get_comments_number_text_declension(). [37997] #13651

Text Changes

Themes

  • PHP 7 compatibility issues fixed in Twenty Thirteen and Twenty Fourteen [38026] #37227

TinyMCE

  • preserve and tags inside the editor. Uses image placeholders for the tags and makes then visible. [38039] #32923
  • update to 4.4.0, changelog: https://github.com/tinymce/tinymce/blob/master/changelog.txt. [38034] #36434, #37327

Toolbar

  • Allow 0 as a value for the tabindex property of a menu item. [38035] #32495

Upgrade/Install

  • Do not remove event handlers when trying to update a theme. [38019] #37285

Widgets

  • After [37972], ensure that $box['args'] is an array before trying to access __widget_basename. [38004] #35021

Props

Thanks to @A5hleyRich, @adamsilverstein, @afercia, @azaozz, @birgire, @boonebgorges, @DrewAPicture, @elrae, @ericlewis, @Faison, @helen, @iseulde, @jaspermdegroot, @jdgrimes, @jeremyfelt, @joedolson, @joemcgill, @johnbillion, @jrf, @karmatosed, @metodiew, @niallkennedy, @ocean90, @pento, @peterwilsoncc, @rachelbaker, @ramiy, @rmccue, @sc0ttkclark, @scottbasgaard, @SergeyBiryukov, @spacedmonkey, @stubgo, @swissspidy, @valendesigns, @westonruter, @wpfo, @xknown, and @Zuige for their contributions!

#4-6, #week-in-core