A Week in Core – August 29, 2022

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

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

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

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

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

Code changes

Build/Test Tools

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

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

  • Remove private delegation from cache priming functions – #56386

Code Modernization

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

Coding Standards

  • Use strict comparisons in path_is_absolute()#36308

Docs

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

Editor

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

Help/About

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

Media

  • Account for Windows when normalizing file paths – #36308

Query

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

Site Health

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

Themes

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

Props

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

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

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

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

A Week in Core – July 25, 2022

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

It was quite a busy week, with 121 people contributing to 62 commits!

Worth noting that we never had so many new contributors in a week since we restarted the Week in Core blogposts 2 years ago! 😱😍

  • 62 commits
  • 121 contributors
  • 46 tickets created
  • 6 tickets reopened
  • 49 tickets closed

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

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

  • Add labels to read-only form fields – #54302
  • Correct the escaping in documentation lookup for 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 and theme editor – #56007
  • Remove unused CSSCSS Cascading Style Sheets. selectors related to old format menu icons – #35717

Application Passwords

  • Link a more accurate documentation page in User profile edit screen – #56267

Build/Test Tools

  • Add 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.) pattern matching for the testing NPM workflow – #55652
  • Correctly detect the first workflow run for a branchbranch A directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch". or tag – #55652
  • Make the 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/ Action pattern matching for tags more specific – #55652
  • Add failure messages for site icon and custom logo tests – #55652
  • Correct the test for passing all expected parameters to the preprocess_comment 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.#55647, #56244
  • Declare custom-logo theme support for custom logo tests – #55652

Bundled Themes

  • Update NPM dependencies for Twenty Twenty and Twenty Nineteen – #55652
  • Twenty Twenty-One: Add 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. type suggestions to block patterns – #53647
  • Twenty Twenty-One: Rebuild the IE specific stylesheet – #55989
  • Twenty Twenty-One: Update NPM dependencies – #55652

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

  • Add wp_cache_flush_group function – #4476
  • Make the placement of wp_cache_flush_group() more consistent – #55647, #4476

Coding Standards

  • Adjust the logic slightly in wp_ajax_replyto_comment()#55647
  • Check if the _deprecated_file() function exists in wp-db.php#56268, #55647
  • Improve variable names in wp-trackback.php#55647, #56244
  • Move wp-includes/wp-db.php to wp-includes/class-wpdb.php#56268, #55647
  • Remove extra comma in a compact() call – #55647, #56244
  • Remove unused variable in wp-trackback.php#55647
  • Rename $comment_post_ID and $comment_author_IP variables in various files – #55647, #56244
  • Replace the old wp-db.php filename in phpcompat.xml.dist#56268, #55647
  • Standardize on user_id when passing data to comment functions – #55647, #56244
  • Use __DIR__ instead of ABSPATH in wp-db.php#56268, #55647
  • Use consistent placement for ::prepare_links() methods – #55647

Docs

  • Add a @since note for get_post_permalink() returning false on failure – #45329
  • Add function description and @since mention for get_upload_iframe_src()#55646
  • Add missing function description in wp-admin/includes/comment.php#55646
  • Add missing function description in wp-admin/includes/template.php#55646
  • Document that the $file_format parameter of metadata filters can be null – #55646, #55828
  • Fix indentation issues in block-template-utils.php docblocks, as per docs standards – #55646
  • Fix indentation issues in wp_read_video_metadata and wp_read_audio_metadata docblocks – #55646
  • List the expected type first in a few functions: – #55646
  • Provide a more accurate description for wp_is_theme_directory_ignored()#56257, #55646
  • Refine @return docblockdocblock (phpdoc, xref, inline docs) mentions for esc_sql(), wp_slash() and wp_unslash()#53946, #55646
  • Remove an obsolete function description in addslashes_gpc()#56233, #55646
  • Update do_action() docblock code example – #55977
  • Use third-person singular verbs for function descriptions in block-template.php and block-template-utils.php#55646
  • Use third-person singular verbs for function descriptions in general-template.php, as per docblocks standards – #55646
  • Use third-person singular verbs for function descriptions in wp-admin/includes/comment.php, as per docblocks standards – #55646

Editor

  • Fix register_block_type does not recognise ancestor block setting – #56184

Embeds

  • Add Pocket Casts as a trusted oEmbed provider – #55860

External Libraries

  • Update the Moment library to version 2.29.4 – #56031

Formatting

Media

  • Allow filtering audio file metadata in wp_read_audio_metadata()#55828
  • Prevent URLs from overflowing their container in the media editor – #55393
  • enable generating multiple mime types for image uploads; specifically WebP versions for JPEG images by default – #55443

Plugins

  • Improve color contrast on plugins screen when recovery mode is activated – #56190

Posts, Post Types

  • Check if the post type exists in wp_insert_post()#55877
  • Correct the check for non-existing post in get_post_permalink()#45329

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 prepare_links method to WP_REST_Post_Types_Controller class – #56019
  • Add prepare_links method to WP_REST_Taxonomies_Controller class – #56020
  • Avoid unnecessarily preparing item links – #52992
  • Prime post caches in comments endpoint – #56272
  • Use wp_get_lastest_revision_id_and_total_count function in WP_REST_Posts_Controller class – #55857

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.

  • Correct the function name for retrieving the last revision ID and total count – #55857
  • Rename the function for retrieving the latest revision ID and total count – #55857
  • Update the “last revision” wording to “latest revision” in various files – #55857

Themes

  • Add a hook to filter theme 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. image URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org#56180

Upgrade/Install

  • Improve plugin update icon alignment – #56123
  • Upgrade/Install: track php extensions and image library support for WebP and AVIF – #48116

Props

Thanks to the 121 (wow!) people who contributed to WordPress Core on Trac last week: @audrasjb (11), @SergeyBiryukov (11), @peterwilsoncc (6), @timothyblynjacobs (5), @Spacedmonkey (5), @mukesh27 (5), @sabernhardt (4), @mikeschroder (3), @dlh (3), @costdev (3), @desrosj (3), @pento (2), @mitogh (2), @pbiron (2), @dd32 (2), @joedolson (2), @poena (2), @flixos90 (2), @spacedmonkey (2), @johnbillion (2), @rafiahmedd (2), @afercia (2), @kasparsd (1), @dainemawer (1), @karinclimber (1), @cagsmith (1), @seedsca (1), @scofennellgmailcom (1), @jb510 (1), @annezazu (1), @trevorpfromsandee (1), @clorith (1), @grapplerulrich (1), @codekraft (1), @Presskopp (1), @clarkeemily (1), @shetheliving (1), @eugenemanuilov (1), @akshitsethi (1), @tweetythierry (1), @eherman24 (1), @mehulkaklotar (1), @joegrainger (1), @baxbridge (1), @chynnabenton (1), @sobatkras (1), @masteradhoc (1), @isabel_brison (1), @manzoorwanijk (1), @renegeuze (1), @hztyfoon (1), @mattwondra (1), @kebbet (1), @ryokuhi (1), @thakkarhardik (1), @dilipbheda (1), @leogermani (1), @webbeetle (1), @mmaumio (1), @feastdesignco (1), @jeffpaul (1), @markhowellsmead (1), @imarkinteractive (1), @olliejones (1), @garymatthews919 (1), @kwillmorth (1), @barneydavey (1), @tonylocalword (1), @lovor (1), @eatingrules (1), @azaozz (1), @studiolxv (1), @ryan (1), @pbearne (1), @tillkruess (1), @dg12345 (1), @lucasbustamante (1), @dougal (1), @dhilditch (1), @Ste_95 (1), @scribu (1), @sc0ttkclark (1), @filosofo (1), @hellofromTonya (1), @luigipulcini (1), @JustinSainton (1), @Chouby (1), @byohann6 (1), @malthert (1), @mitweka (1), @circlecube (1), @anantajitjg (1), @alamgircsebd (1), @kapilpaul (1), @rachelbaker (1), @furi3r (1), @MatthiasReinholz (1), @helen (1), @whaze (1), @greg24 (1), @onnimonni (1), @dxd5001 (1), @virgar (1), @nuryko (1), @laboiteare (1), @ironprogrammer (1), @zodiac1978 (1), @rodrigosevero (1), @ocean90 (1), @aristath (1), @markoheijnen (1), @gitlost (1), @p_enrique (1), @nunomorgadinho (1), @nacin (1), @targz (1), @NumidWasNotAvailable (1), @nareshbheda (1), @pratiweb (1), @justinahinon (1), and @ryelle (1).

Congrats and welcome to our 41 (!!) new contributors of the week: @dainemawer, @karinclimber, @cagsmith, @scofennellgmailcom, @trevorpfromsandee, @codekraft, @clarkeemily, @shetheliving, @eugenemanuilov, @akshitsethi, @joegrainger, @baxbridge, @chynnabenton, @sobatkras, @masteradhoc, @renegeuze, @mattwondra, @webbeetle, @feastdesignco, @imarkinteractive, @olliejones, @garymatthews919, @kwillmorth, @barneydavey, @tonylocalword, @studiolxv, @dg12345, @dhilditch, @Ste_95, @byohann6, @mitweka, @alamgircsebd, @MatthiasReinholz, @greg24, @dxd5001, @virgar, @nuryko, @laboiteare, @rodrigosevero, @targz, @nareshbheda ♥️

Core committers: @sergeybiryukov (23), @audrasjb (21), @desrosj (8), @spacedmonkey (5), @peterwilsoncc (2), @adamsilverstein (2), and @gziolo (1).

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

A Week in Core – April 4, 2022

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

  • 43 commits
  • 90 contributors
  • 54 tickets created
  • 6 tickets reopened
  • 64 tickets closed

The Core team is currently working on the next minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality., WP 5.9.3, and on the next major, WP 6.0 🛠

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

  • Adds “select all” shortcut for Mac on permalinks page when .htaccess is not writable – #54633
  • Consistently escape icon URLs in the adminadmin (and super admin) menu – #55496>
  • Do not specify menu order for the Widgets menu when the active theme is a 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. theme – #54916

Build/Test Tools

  • Add unit tests for feed_links_extra()#54713, #54725
  • First pass at a .git-blame-ignore-revs file – #55422

Bundled Themes

  • Twenty Twenty: Fix aria-expanded handling in search toggle – #53951

Canonical

  • Include all public status in 404 redirects – #47911

Code Modernization

  • Rename parameters that use reserved keywords in wp-admin/includes/class-wp-filesystem-base.php#55327
  • Rename parameters that use reserved keywords in wp-admin/includes/class-wp-importer.php#55327
  • Rename parameters that use reserved keywords in wp-admin/includes/class-wp-list-table.php#55327

Comments

  • Improve performance of the wp_count_comments function – #19901
  • 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) fixes following [53024]#54939
  • Improve performance checking for published pages – #55425
  • When a block theme is active, add an information about Site Editor 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.#54939

Docs

  • Add missing description for $pagenow global in various functions – #54729, #55499
  • Add missing description for $taxnow global in various functions – #54729
  • Add missing description for $typenow global in various functions – #54729
  • Add missing descriptions for WP_List_Table::get_items_per_page() parameters – #54729, #55327
  • Consistently document the $pagenow global in WP_Customize_Manage methods – #55499
  • Further remove HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. markup from various function summaries – #55506
  • Remove HTML markup from WP_REST_URL_Details_Controller class method summaries – #55506
  • Typo correction in wp_fuzzy_number_match DocBlockdocblock (phpdoc, xref, inline docs)#55493
  • Use correct format for multi-line comments in the_block_editor_meta_boxes()#54729
  • Use third-person singular verbs for function descriptions in WP_Automatic_Updater class, per the documentation standards – #54729
  • Use third-person singular verbs for function descriptions in WP_Customize_Manager class, per the documentation standards – #54729
  • Use third-person singular verbs for function descriptions in WP_Customize_Nav_Menus class, per the documentation standards – #54729
  • Use third-person singular verbs for function descriptions in WP_Embed class, per the documentation standards – #54729

Editor

  • Change location of block support styles in wp_head#55474
  • Use wp_unique_id() instead of uniqid() to generate CSSCSS Cascading Style Sheets. class names – #55474

Formatting

  • Account for HTML entities in wp_extract_urls()#30580

General

  • Open change permalink structure links in same tab – #55252
  • Validate input of wp_list_pluck()#54751

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.

  • Move code out of a translatable string in get_user_count() and related functions – #38741

KSES

Login and Registration

  • Add autocomplete attributes – #41136

Mail

  • Replace empty site title with domain name in email subjects – #54760

Media

  • Introduce wp_content_img_tag 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.#55347
  • Preserve attachment properties on cropping custom logo – #37750

Menus

Posts, Post Types

  • Set post filter in update_post_cache()#50567
  • Translate default labels once – #26746

Quick/Bulk Edit

  • Position action buttons in close proximity – #55364

Taxonomy

  • Improve performance by taxonomy queries by adding a limitting requested terms – #55360

Themes

  • Add “title” key to i18n schema – #54336

Users

  • Fix notice error in WP_Posts_List_Table class – #38741
  • Introduce the concept of a large site to single site installations – #38741
  • Move get_user_count() and related functions to wp-includes/user.php#38741

Props

Thanks to the 90 (!) people who contributed to WordPress Core on Trac last week: @SergeyBiryukov (11), @costdev (9), @audrasjb (8), @peterwilsoncc (8), @aristath (4), @johnbillion (4), @Spacedmonkey (4), @kebbet (4), @jrf (4), @justinahinon (4), @poena (4), @ironprogrammer (4), @flixos90 (4), @hellofromTonya (4), @afercia (3), @davidbaumwald (3), @azouamauriac (3), @mukesh27 (3), @Clorith (2), @dd32 (2), @antonvlasenko (2), @johnjamesjacoby (2), @sabernhardt (2), @mamaduka (2), @alexstine (2), @joedolson (2), @nacin (2), @jb510 (2), @Rahe (1), @uday17035 (1), @spacedmonkey (1), @r-a-y (1), @adamsilverstein (1), @Znuff (1), @pbearne (1), @Presskopp (1), @marybaum (1), @pbiron (1), @lumpysimon (1), @desrosj (1), @pento (1), @macbookandrew (1), @jrchamp (1), @miss_jwo (1), @obenland (1), @tharsheblows (1), @Mista-Flo (1), @psmits1567 (1), @westonruter (1), @cbravobernal (1), @ndiego (1), @Rufus87 (1), @wonderboymusic (1), @webcommsat (1), @tobifjellner (1), @ComputerGuru (1), @dhanendran (1), @coffee2code (1), @rsiddharth (1), @jontyravi (1), @bhrugesh12 (1), @Chouby (1), @Rarst (1), @chriscct7 (1), @ocean90 (1), @nagpai (1), @dlh (1), @tyxla (1), @utz119 (1), @hareesh-pillai (1), @chintan1896 (1), @jigar-bhanushali (1), @gvgvgvijayan (1), @Valer1e (1), @ryan (1), @ajoah (1), @marv2 (1), @mkox (1), @trex005 (1), @voldemortensen (1), @hellofromtonya (1), @goaroundagain (1), @htdat (1), @chaion07 (1), @Cybr (1), @rianrietveld (1), @oandregal (1), @FolioVision (1), @markjaquith (1),and @helen (1).

Congrats and welcome to our 7 new contributors of the week: @lumpysimon, @nagpai, @jigar-bhanushali, @gvgvgvijayan, @marv2, @mkox, @trex005 ♥️

Core committers: @sergeybiryukov (14), @audrasjb (12), @peterwilsoncc (8), @joedolson (5), @spacedmonkey (5), @gziolo (1), @flixos90 (1), and @helen (1).

#5-9-3, #6-0, #core, #week-in-core

A Week in Core – March 7, 2022

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

  • 21 commits
  • 43 contributors
  • 62 tickets created
  • 3 tickets reopened
  • 48 tickets closed

The Core team is currently working on the next minor releaseMinor Release A set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality., WP 5.9.2, and on the next major, WP 6.0 🛠

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

  • Require a valid action parameter to be set for admin-ajax.php requests – #55212

Bootstrap/Load

  • Stop unnecessary queries when using the do_parse_request 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.#10886

Coding Standards

  • Improve formatting in /wp-admin/user-edit.php#54673

Comments

  • Guard against potential PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notices in get_comment_author and get_comment_ID#54379

Docs

  • Add a @since note for WP::parse_request() about the new return value – #10886
  • Add inline comments for non-visible characters in sanitize_title_with_dashes()#47912, #54729
  • Correct the indentation in delete_term_relationships filter – #54673
  • Update the DocBlockdocblock (phpdoc, xref, inline docs) for the wpmu_new_blog action to suggest wp_initialize_site as an alternative – #49612
  • Use third-person singular verbs for function descriptions in wp-includes/class-wp-user.php#54729
  • Use third-person singular verbs for function descriptions in wp-includes/formatting.php, per the documentation standards – #54729

External Libraries

  • Upgrade PHPMailer to version 6.6.0 – #55277

General

  • Improve MS Edge user-agent sniffsniff A module for PHP Code Sniffer that analyzes code for a specific problem. Multiple stiffs are combined to create a PHPCS standard. The term is named because it detects code smells, similar to how a dog would "sniff" out food.#55297

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 a $locale parameter for remove_accents()#54415

Media

  • Allow wp_check_filetype() to support query strings in URLs – #30377

Networks and Sites

  • Suggest wp_initialize_site as an alternative for the deprecated wpmu_new_blog action – #49612

Query

  • Make sure WP_Query::get_queried_object() works for author_name before ::get_posts() is run – #55100

Tests

  • Restore the original user role in the (add|remove)_user_role 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. test – #54164

Themes

  • Correct the logic for displaying a _doing_it_wrong() notice for add_theme_support( 'html5' )#51657
  • Hide blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. themes’ live preview link following installation – #54878
  • Make sure the current_theme_supports-{$feature} filter is consistently applied – #55219

Users

  • Bring some consistency to user role hooks – #54164

Props

Thanks to the 43 people who contributed to WordPress Core on Trac last week: @SergeyBiryukov (6), @dd32 (6), @costdev (3), @johnbillion (2), @audrasjb (2), @peterwilsoncc (2), @azouamauriac (2), @pbearne (1), @arnee (1), @tyxla (1), @DrewAPicture (1), @lukecavanagh (1), @davidbaumwald (1), @Spacedmonkey (1), @voldemortensen (1), @helgatheviking (1), @pavanpatil1 (1), @sivel (1), @jrf (1), @Synchro (1), @miken32 (1), @malthert (1), @knutsp (1), @wonderboymusic (1), @henry.wright (1), @westi (1), @mukesh27 (1), @layotte (1), @atomicjack (1), @supercleanse (1), @spencercameron (1), @ianmjones (1), @abdullahramzan (1), @Boniu91 (1), @ryan (1), @swissspidy (1), @johnregan3 (1), @antonvlasenko (1), @ironprogrammer (1), @asaquzzaman (1), @MadtownLems (1), @junsuijin (1), and @ocean90 (1).

Congrats and welcome to our 4 new contributors of the week: @pavanpatil1, @supercleanse, @spencercameron, @asaquzzaman ♥️

Core committers: @sergeybiryukov (13), @audrasjb (4), @peterwilsoncc (2), @davidbaumwald (1), and @spacedmonkey (1).

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

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 – January 18, 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 11, 2021 and January 18, 2021.

  • 18 commits
  • 41 contributors
  • 47 tickets created
  • 4 tickets reopened
  • 102 tickets closed

As we get closer to the first 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. of WordPress 5.7, the Core activity has started to increase again this week 📈😎

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

  • Update hover and focus states in adminadmin (and super admin) menu – #28599
  • 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): Remove <strong> tags from labels on 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/theme editor screens – #52232

Bundled Themes

  • Twenty Twenty-One: Remove duplicate CSSCSS Cascading Style Sheets. rules – #52158
  • Twenty Twenty-One: Remove leftover file from `build:rtl` task – #52293

Coding Standards

  • Improve code layout in wp-admin/includes/class-wp-media-list-table.php#51014
  • Coding Standards: Fix WPCSWPCS The collection of PHP_CodeSniffer rules (sniffs) used to format and validate PHP code developed for WordPress according to the WordPress Coding Standards. May also be an acronym referring to the Accessibility, PHP, JavaScript, CSS, HTML, etc. coding standards as published in the WordPress Coding Standards Handbook. issue in [49963]#52316

Customize

  • Update button label reference in themes help text to reflect the label introduced in [41626]#52271

Docs

  • Correct description for wp_slash() and wp_unslash()#51800
  • Docs: Clarify the instructions on starting the local environment for the first time – #52278

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 support for German (Austria) 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. in remove_accents()#52110
  • I18N: Add context for the Public string in site attributes list on Edit Site screen – #52309

Media

  • Use consistent method for instantiating an attachment author object in Media Library – #52030

Menus

  • Fix minor UIUI User interface issues on Edit Menus screen on smaller viewports – #49245, #51706

Posts, Post Types

  • Introduce a 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. paginate_links() output – #44018

Privacy

  • Use more consistent wording for strings related to personal data requests – #51849

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

  • Allow sending an empty array to delete multi 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. keys – #50790

Script Loader

  • Remove unused source file for wp-a11y.js which was replaced with the @wordpress/a11y package – #50093

Widgets

  • Implement TinyMCE on text widgets in Accessibility Mode – #52073

Props

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

@audrasjb (7), @mukesh27 (3), @afercia (3), @sabernhardt (2), @ibdz (2), @poena (1), @rianrietveld (1), @Boniu91 (1), @ravipatel (1), @jomisica (1), @accessiblejoe (1), @florianziegler (1), @hedgefield (1), @michaelarestad (1), @ryan (1), @yoavf (1), @chemiker (1), @paaljoachim (1), @estelaris (1), @SergeyBiryukov (1), @passoniate (1), @nonverbla (1), @pawki07 (1), @alexstine (1), @carloscastilloadhoc (1), @hellofromTonya (1), @garrett-eclipse (1), @re.ardestani (1), @laxman-prajapati (1), @hansjovisyoast (1), @MadtownLems (1), @hareesh-pillai (1), @chrisvanpatten (1), @dariak (1), @xkon (1), @transl8or (1), @ovidiul (1), @johnbillion (1), @patopaiar (1), @antpb (1) and @justinahinon (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 ♥️
@jomisica, @nonverbla, @pawki07, @carloscastilloadhoc, @reardestani, @dariak, @ovidiul and @patopaiar.

Core committers: @sergeybiryukov (11), @ocean90 (3), @ryelle (2), @joedolson (1) and @timothyblynjacobs (1)..

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

Week in Core, Feb. 23-Mar 1 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 [36672-36800]. Here are the highlights:

  • 128 commits
  • 52 contributors
  • 115 tickets created
  • 19 tickets reopened
  • 135 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers based on trac timeline for the period above.

Note: If you want to help write the next WordPress Core Weekly summary, check out the schedule over at make/docs and get in touch in the #core-weekly-update SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.

Continue reading

#4-5, #week-in-core

Week in Core, Feb. 16-23 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 [36671-36541]. Here are the highlights:

  • 131 commits
  • 82 contributors
  • 89 tickets created
  • 9 tickets reopened
  • 140 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers based on trac timeline for the period above.

Note: If you want to help write the next WordPress Core Weekly summary, check out the schedule over at make/docs and get in touch in the #core-weekly-update SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.

Code Changes

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)

  • Improve the color contrast ratio for the input placeholders. [36619] #35777
  • Remove title attributes from the PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party details modal. [36618] #35111
  • Remove the revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. limit warning from the Publish box. [36612] #35029
  • Fix displaying of Universal time and Local time info on the General Settings screen. [36585] #35064
  • Improve color contrast updating any #999 gray used for text or icons to a darker gray. [36587] #35660
  • Accessibility: after [36000] conditionally print out the aria-describedby attribute on the Featured ImageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. postbox. [36584] #35076
  • Accessibility: Reduce the WordPress shades of grey, Episode 2. [36582] #35783

Administration

  • Replace the custom comment form with comment_form() and reduce number of links. [36595] #35888
  • Remove extra spaces between function names and brackets [36572] #16774, #34365
  • Remove slashes from search terms and use urldecode() in non-URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org contexts. [36560] #35712

Authentication

  • Allow users to log in using their email address. [36617] #9568

Autosave

  • Do not strip slashes from the whole &_POST when doing autosaves. [36543] #35408

Bootstrap/Load

Build/Test Tools

Comments

  • Rename $linea to $remote_source for clarity. Add remote_source to comment data, so it’s available to preprocess_comment and comment_post filters. Pass the original (unfiltered) response source to the filters too (as remote_source_original in comment data). [36661] #34141
  • Pass comment data to the comment_post 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.. [36660] #34141
  • Look for wp_error when checking whether $wpdb->get_col_length() has failed. [36542] #10377
  • Refresh the Moderate Comment screen for a friendlier experience with email moderation actions. [36588] #34133

Customize

  • Let WP_Customize_Selective_Refresh class be final to match manager and other component classes. [36624] #27355
  • Ensure dynamic_sidebar() finishes with removing the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. ID from the current_dynamic_sidebar_id_stack. [36623] #27355
  • Prevent dropping backslashes from input on general settings and settings for nav menus and some widgets. [36622] #35898
  • Fix and extend broken ajax unit tests to account for partials being skipped from rendering. [36650] #35914
  • Skip exporting partials to client and handling rendering requests if user can’t modify associated settings. [36643] #27355, #35914
  • Add visual feedback to reorder buttons. [36641] #35041
  • Contain “No image set/selected” in dashed border. [36639] #35826
  • Update unit testunit test Code written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. for WP_Customize_Nav_Menu_Item_Setting::value_as_wp_post_nav_menu_item() to account for slashing if user can’t unfiltered_html. [36610] #35869
  • Prevent PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice and JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. error caused by widgets and nav menus components if user only has customize capability. [36611] #35895
  • Fix previewing and updating of nav menu items containing slashed/slashable characters. [36608] #35869
  • Fix “Loading…” message from persisting in panel title when user does not have manage_options cap to edit blogname. [36606] #35579
  • Add selective refresh framework with implementation for widgets and re-implementation for nav menus. [36586] #27355
  • Prevent consecutive refresh requests from preview from causing JS error. [36583] #27355, #35866
  • In nav menus show the location name instead of slug. [36573] #34755
  • Add missing test changes for [36573]. [36574] #34755
  • Autoprefixer for [36532]. [36548] #31195

Docs

  • Correct $number type in number_format_i18n(). [36644] #35893
  • Update the type for $callback parameters to callable in DocBlocks for add_settings_section() and add_settings_field(). [36642] #35772
  • Improve documentation for WP_REST_Request to highlight a caveat of ArrayAccess when it comes to passing similar arguments for multiple request methods. [36636] #35799
  • Improve description of get_term() return value. [36634] #35919
  • Correct param types on some filters in wp_filter_comment(). [36626] #35908
  • WP_Meta_Query accepts ‘EXISTS’ or ‘NOT EXISTS’ for $compare. [36609] #35891
  • Fix two incorrect notations of the $show_admin_bar global to specify a boolean type, not WP_Admin_Bar. [36601] #35686
  • Add missing since and access tags to get_curies method and filter from r36533 [36593] #34729, #32246
  • Add an explanation for the dynamic portion of the {$taxonomy}_term_edit_form_top hook, introduced in [36526]. [36577] #32246
  • Add formatting to a changelog entry in the hook doc for the rest_dispatch_request filter. [36576] #32246
  • Remove a duplicate @static 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.) from the WP_Customize_Panel->instance_count property DocBlockdocblock (phpdoc, xref, inline docs). [36568] #32246

Embeds

  • Only display an iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. when it was successfully loaded. This prevents showing a blank iframe by first checking if a message was successfully received from it. [36648] #35894
  • Make the click event handler work for dynamically added links. [36637] #35630
  • Load the default site icon from the wp-includes directory. [36635] #35322

External Libraries

  • Update Backbone and Underscore to the latest versions. [36546] #34350

Feeds

Formatting

  • Avoid a PHP warning when wptexturize() is called with a trailing less-than symbol. [36578] #35864

Help/About

HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Certificate bundle: Attempt to move a certificate lower in the file to allow older OpenSSL versions to parse it & communicate with WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ securely again. The OpenSSL version which was failing in this case was OpenSSL 0.9.8e 23 Feb 2007. [36570] #35637, #30434, #25007

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

  • Add translator comments and context to “New Site Created” email notification strings. [36669] #35716
  • Replace hardcoded URL in a translatable string with a placeholder in wp-admin/upload.php. [36668] #35743
  • Add missing periods to two strings in wp-admin/network/sites.php [36664] #35720
  • Add translators comments to wp-adminadmin (and super admin)/users.php. [36621] #35885
  • Remove HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. tags from translatable strings in wp-admin/plugins.php. [36662] #35679
  • Add the ability to parse a whole directory with add-textdomain.php. [36600] #35499
  • Remove PHP4 constructor from add-textdomain.php. [36599] #31982
  • Add test for wp_dropdown_languages(). [36631] #35294
  • Respect the coding standards when adding textdomains with add-textdomain.php. [36603] #21616
  • Remove tag from translatable string in wp-admin/includes/class-wp-filesystem-ssh2.php. [36670] #35741
  • Remove tag from translatable string in wp-admin/includes/class-wp-ms-sites-list-table.php. [36663] #35676
  • Remove tag from translatable string in wp-admin/theme-install.php. [36666] #35739
  • Remove tag from translatable string in wp-admin/options-general.php[36656] #35673
  • Remove tags from translatable strings in wp-admin/install.php. [36665] #35738
  • Remove tags from translatable strings in wp-admin/custom-header.php[36658] #35675
  • Remove tags from translatable strings in wp-admin/themes.php. [36657] #35745
  • Remove tag from translatable string in wp-admin/user-edit.php[36655] #35672
  • Remove tag from translatable string in wp-admin/import.php[36653] #35671

Media

Menus

  • Ensure backslashes are saved in menu item fields. [36613] #14134

Multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site

  • Make view mode sticky for networknetwork (versus site, blog) users and sites list tables. [36562] #34365
  • Avoid a PHP Notice when saving a site address without a path. [36561] #35631

Performance

  • In wp_upload_dir() do not cache error from wp_mkdir_p() when a directory cannot be created. Keep trying to create the dirs. This happens mostly in file upload context. [36628] #34359
  • Replace wp_upload_dir() with the new wp_get_upload_dir() in all cases where a file is not being uploaded. Deprecate _wp_upload_dir_baseurl(), and replace it with wp_get_upload_dir(). [36569] #34359
  • Reintroduce term metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. unit test accidentally removed in [36566]. [36567]
  • More performance improvements to metadata lazyloading. [36566] #35816
  • Improve the performance of wp_upload_dir(): [36565] #34359

Plugins

Posts

  • Introduce get_post_types_by_support(). Similar to get_post_types(), this new function returns a list of post type names that support a specific feature. [36652] #34010
  • Non-trashed posts should take slug priority over trashed posts. [36607] #11863

Query

  • Search should match post_excerpt in addition to title and content. When ordering search results, exact matches in the post excerptExcerpt An excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. are weighted above those in post content, but below those in the post title. [36647] #35762
  • Allow a seed value to be passed when using ‘rand’ $orderby. [36632] #35692
  • In WP::handle_404() introduce a filter pre_handle_404 to short-circuit default headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. status handling. [36629] #10722
  • is_*( $int ) should not falsely match strings starting with “$int”. [36625] #24674, #35902

Revisions

Schema

Script Loader

  • Don’t parse $src if the current color scheme isn’t registered. [36591] #35882
  • Pass the media attribute as an argument to the style_loader_tag filter. [36592] #34765
  • Bail if WP_Styles::_css_href() returns an empty value. [36590] #35229
  • Make sure that inline styles for handles without a source are printed. [36550] #35229
  • JSHint for [36602]. [36605] #33301
  • Fix missing script output when the groups of dependencies are different. [36604] #35873
  • Introduce wp_add_inline_script(). [36633] #14853
  • Restore loading order for wp-admin: open-sans, dashicons, etc. [36551] #35229

Styles

  • Clarify the allowed values for the $media parameter of wp_register_style()/wp_enqueue_style(). [36649] #35921

Taxonomy

  • Make $taxonomy parameter optional in get_edit_term_link(). [36646] #35922
  • Allow get_terms() to fetch terms regardless of taxonomy. [36614] #35495
  • In get_terms(), assemble WHERE conditions in an array instead of concatenating. [36598] #35495
  • Add changelog entry for publicly_queryable argument in register_taxonomy(). [36564] #34491

Template

Themes

TinyMCE

Updates

  • Pass locales of all available languages to the themes/plugins update API. [36630] #34937

Upgrade/Install

  • Prevent further actions if an update button is disabled. [36558] #35257
  • Add a hook to the end of the network’s Add New User form. [36556] #15389
  • Add a hook to the end of the Add Site form. [36555] #34739
  • Enhance the language of the “Success” message. [36553] #34897
  • Improve wording on the page for the database connection details. [36545] #26879
  • Use “Username” instead of “User Name”. [36544] #35850

Users

  • Pass the array of user IDs being deleted to the delete_user_form action hook in two places. [36640] #35063
  • Introduce _wp_get_current_user() for improved backward compatibility. [36651] #19615

Widgets

  • Avoid a PHP notice in is_dynamic_sidebar() is a sidebar is registered but does not yet have an index in the sidebars_widgets option. [36667] #35928

Props

Thanks to @dnewton,@joemcgill, @abiralneupane, @adamsilverstein, @afercia, @aidanlane, @Ankit, @apaliku, @atimmer, @azaozz, @barryceelen, @boonebgorges, @charlestonsw, @chris_dev, @ckoerner, @coffee2code, @coreymcollins, @danielbachhuber, @dd32, @Denis-de-Bernardy, @dlh, @DrewAPicture, @dshanske, @ericlewis, @ethitter, @flixos90, @GaryJ, @gitlost, @groovecoder, @Gupta, @hakre, @helen, @hlashbrooke, @iamntz, @igmoweb, @iseulde, @JamesDiGioia, @jdgrimes, @jeremyfelt, @JoeFusco, @joehoyle, @johnbillion, @jorbin, @K, @karmatosed, @kjbenk, @kovshenin, @lpawlik, @mayukojpn, @mdgl, @meitar, @melchoyce, @MikeHansenMe, @mikejolley, @mikeschroder, @netweb, @nicd, @ocean90, @pento, @prettyboymp, @ptahdunbar, @rachelbaker, @ramiy, @realloc, @ryan, @ryankienstra, @salcode, @sc0ttkclark, @sebastianpisula, @SergeyBiryukov, @stevegrunwell, @stevenkword, @swissspidy, @thewanderingbrit, @thisisit, @usermrpapa, @valendesigns, @vhomenko, @welcher, @westonruter, @williamsba1, and @wpsmith for their contributions! for their contributions!

#4-5, #week-in-core

Feature Plugin chat notes for Jan 26

Agenda

  • Review the feature plugins for status updates from leads
  • Open floor for feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. proposal

Feature Plugin Updates

  • Background Image Cropper: @celloexpressions asked for feedback for the Background Image Cropper. Current thinking is this is better explored as a standard enhancementenhancement Enhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. for coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. See #32403.
  • 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.@westonruter left status on the blog post for the Customize Pane Resizer, Customize Device preview (along with @celloexpressions), Selective Refresh, and Transactions. Please comment there if you’re interested in helping out where needed (especially requested for the Pane Resizer).
  • 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.@sc0ttkclark updated: term add/edit is in: props @technosailor. Team has been working on simplifying the code required for each screen implementing the Fields API. Scott posted an update on make/core and reports getting lots of feedback (especially from @helen, @drew, @technosailor & @celloexpressions)
  • Shiny Updates:  @obenland updated – Lots of progress in the last week. @ipstenu helped tremendously in getting it 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 compliant. Team decided to not pursue shiny activations/deactivations for a whole set of reasons, mostly around redirects on subsequent page loads, and fatal error protection.
    Currently working on enabling theme updates without having to open the modal, and revamping update-core.php.  An update will be posted to the make/core blogblog (versus network, site) soon. The team needs more feedback and testing! Testers can get the current 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 from the wordpress.org repository.
  • WP-API: @danielbachhuber updated – released 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. 11 yesterday. The team is meeting in person (minus @rachelbaker) this week at A Day of REST. Summary: in the home stretch, but there’s a ton more work to do. Friday’s contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. (at the Day of REST) will hopefully get other people diving in and contributing to the final push.

Open Floor

The full logs are available on Slack.

#4-5

WP REST API: Merge Proposal

Hello everyone! This is the post you’ve all been waiting for. 🙂

We on 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/. team (myself, @rachelbaker, @joehoyle, @danielbachhuber, and newest member and 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. @pento) would like to propose merging the REST API into WordPress core. We’ve been working a while on this, and think it’s now ready to get your feedback.

This is our first iteration of the proposal, and we’re actively looking for feedback. If you have thoughts on the project, or on this proposal, let us know! Only with your feedback can we make progress. 🙂

What is the REST API?

The REST API is a nice and easy way to get at your data in WordPress externally, whether that’s from 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/. in a theme or pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, mobile and desktop applications, or importing and exporting data. The 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. offers up all core data types (posts, terms comments, and users), plus support for 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. and 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.; we’ve got plans to eventually have access to everything the adminadmin (and super admin) and frontend have access to.

The REST API differs from existing WordPress APIs in that it is explicitly designed from the ground up for modern mobile and browser usage, using the lightweight and widely-supported 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. data serialization format with a modern REST interface. Both of these are already familiar to most developers: JSON is a subset of JavaScript intended purely as a data interchange format, and REST is a set of best practices around 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.. Both are supported natively by almost every programming language and platform.

Why do we need a new API?

WordPress already has external APIs: XML-RPC, designed for desktop clients; Atom and RSS feeds, designed for post syndication; and the venerable admin-ajax, designed for Ajax requests in the admin and frontend. These APIs all serve different purposes, but often have a great deal of overlap. In addition, these have all been stretched beyond their original intentions: XML-RPC now contains site management tools, RSS has been extended into the WXR export format, and admin-ajax is the catch-all of any sort of browser-server communication in plugins and themes.

The REST API builds upon the heritage of these APIs to provide better support today for using these, as well as laying the groundwork for expanded use in the future.

XML-RPC is the closest analogue to the REST API in terms of usage and capabilities. Originally designed back in 1998 to allow desktop clients to create and edit posts on blogs, WordPress has extended this with both other specifications (such as MetaWeblog) and with its own proprietary additions. Fundamentally, XML-RPC is built around Remote Procedure Calls (RPC), essentially a way of calling a function externally. It then uses XML to serialize the data for passing back and forth.

Unfortunately, XML serialization can be problematic at times. XML has lots of power, but support for custom entities and DOCTYPEs can cause parsing problems and security attacks, including billion laughs, and XXE exploits. (Currently, WordPress has to disable parts of the XML parser and apply regular expression replacements to be able to parse these safely.) XML is also very verbose, and represents data in a way which doesn’t map easily to programmatic data structures. JSON on the other hand is both concise and well-represented in memory, as it’s based on JavaScript’s native syntax.

The admin-ajax API is also very commonly used in WordPress, albeit typically only by plugins and themes. This is a very lightweight API that essentially acts as a mini-router. Typical usage of this API uses JSON, since it’s a browser-based API, but all usage is completely custom. A lot of the usage of this involves retrieving or updating posts on-the-fly, but due to its nature as simply a framework, these are done in completely different ways. This doesn’t lead itself to extensibility, and requires a lot of duplication every time developers want to get data in or out. We don’t want to replace all of admin-ajax though, since some use cases don’t map exactly: UIUI User interface-related interactions or things like the Heartbeat API are great examples of this.

The REST API can help to supplant these uses. Our aim is to eventually replace the XML-RPC API completely, to act as a secondary import/export format, and to replace most (but not all) uses of admin-ajax. The REST API offers an easier to use interface than the existing solutions.

Why this project?

We’ve been working on this project ever since the first WordPress Contributor Summit back in 2012. Since then, we’ve had lots of feedback from core developers, the community at large, and further beyond in the form of client developers. We believe that the REST API has an immense amount of experience behind it, and plenty of viewpoints have contributed to the project’s direction.

The API has seen great usage in the community, from various mobile apps to large news sites. This usage has helped to battle-test and prove out the API. In the process, we’ve found plenty of bugs, and some security issues. Thanks to this feedback, the API is incredibly stable and secure. (The most recent security bugs we fixed were relatively minor bugs.)

We also designed the API from the ground-up to be part of core, following a core-like mentality to our processes. The API is intended to be both a great feature and a base to build off in plugins. We undertook a significant refactoring and partial rewrite in version 2 to make this extensibility even better. This open process also means that most of the design decisions are documented publicly as we’ve engaged stakeholders to gauge feedback.

We believe these pieces combined make this a fantastic feature for WordPress core, and we hope you all agree. 🙂

What’s the plan?

The plan we’re aiming for is a two part merge of the API. For the first stage, the infrastructure code would be merged into wp-includes and made available for plugins and themes. This is an internal API only, but offers an “API construction kit” for developers to use. For the second stage, the endpoints would be merged, and the API would be enabled for sites by default.

This plan splits the API into two parts, infrastructure and endpoints:

  • Stage One: Infrastructure: The infrastructure is the code responsible for routing requests and handling the “meta” layer of the API, including JSON serialisation/deserialisation, linking, embedding, and REST best practices. This adds a simplified routing layer outside of WP’s rewrites, allowing non-query-var rewrites easily, acting as a base for building APIs inside WordPress.
  • Stage Two: Endpoints: These are where much of the complexity of the API lies, as they’re responsible for mapping data from the external JSON format to the internal data structures, and vice versa. The “business” logic of integrating with WordPress is almost entirely contained within the endpoints. These are the more complex part of the API, as they require using deep APIs in WordPress, and handling security and privacy concerns.

With this plan, we would aim to have the infrastructure merged in 4.4, and the endpoints merged one release later in 4.5.

The slow nature of this plan allows a longer review time on the API for core committers. It also gives extra time for reviewing the endpoints, since they would be delayed one release.

Merging the infrastructure now would allow third-party code to begin using the API to build upon it, including migrating from existing custom code. It would also help to increase developer confidence in the API (as it represents a commitment by the project towards a REST API).

In this plan, the first stage would not include any of the base controllers (such as the posts controller). This may limit the utility of the infrastructure for plugins and themes, however as the endpoints would be merged a cycle later, it’s expected that this wouldn’t have a huge impact.

The infrastructure of the API is approximately 2700 lines of codeLines of Code Lines of code. This is sometimes used as a poor metric for developer productivity, but can also have other uses. (roughly a third of the API codebase), and the endpoints make up the remaining 5500 lines of code.

What would happen after merge?

After merging the REST API into core, we’d spend approximately two weeks partying and celebrating. 🙂

Once we’re done with the parties, one major question would be how we manage the API in the future. The existing management and contribution process via 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/ has been extremely successful, as we’ve had 61 people’s pull requests merged into the API. Contribution via GitHub is especially useful for the API, as it’s a heavily developer-focussed project, and is aimed at external (non-WordPress) developers. On the other hand, all other contribution to WordPress is done via SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. and TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress., so integrating with this process is important for existing developers, as well as core’s general processes. We need to ensure the API is an integral part of core, not a separate project.

Given the team’s experience with GitHub as well as Trac, we can bring the best of both worlds by helping integrate the two. This would also improve contribution for WordPress as a whole, and benefit the whole community. This will be especially important as we encourage more contributions from the wider community (client authors, for example). We think we can make good progress here, and we’d love to try and help improve the process. 🙂

In addition to the project management, there are still further API projects we need to tackle. Authentication is the most important of these, as a huge focus on OAuth and similar would be needed to make the API more useful for external clients. Currently, we haven’t had enough time to spend on this as well as managing the API project, however the API is now reaching a finalised stage, so this should be able to improve quickly. Centralised authentication is a huge part of this, as the regular OAuth registration process is cumbersome for a distributed system like WordPress.

Important note: We don’t believe authentication is required for the API merge, and we treat it as a separate project. The authentication is a completely separate system to the API itself. This is something we’d give more time to in the future, but we want to focus on shipping the API for now.

Let’s go!

This is our merge plan for the API, however it’s not finalised. If you’ve got comments, thoughts, suggestions, opinions, or words of encouragement, let us know. We’d love to know what you think. Thank you all, you’re wonderful, and stay golden.

#feature-plugins, #json-api, #merge, #proposal, #rest-api