A Week in Core – May 22, 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 May 8 and May 22, 2023 (sorry for not being able to publish a post last week, this one will cover two weeks!).

  • 48 commits
  • 87 contributors
  • 108 tickets created
  • 10 tickets reopened
  • 79 tickets closed

Also, WordPress 6.2.1 and 6.2.2 maintenance and security releases went out!

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 missing escaping for CSSCSS Cascading Style Sheets. classes on the body 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.) in the adminadmin (and super admin)#58336

Build/Test Tools

  • Call wp_cache_flush_runtime in WP_UnitTestCase. – #31463
  • Move wp_cache_flush_runtime() next to wp_cache_flush()#57841
  • Partial revert of r55745 – #57841
  • Remove expectation of a deprecation notice from WP_Posts_List_Table tests – #58157
  • Split the tests from user/author.php into individual test classes – #57841
  • Use the function get_num_queries across all unit tests – #57841

Code Modernization

  • Correct fallback return value in get_the_author()#58157
  • Explicitly declare all properties in Text_Diff_Engine_native#58298

Coding Standards

  • Use esc_url() to escape link URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org value in wp-admin/edit-link-form.php#58282

Comments

  • Always lazily load comment 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.#57801

Docs

  • A host of corrections and improvements to inline documentation – #57840
  • Clarify @param types on get_sample_permalink_html 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.#58322
  • Correct default value for the $optimize option in Style Engine – #57840
  • Fix a few more typos in DocBlocks – #57840
  • Fix a few more typos in DocBlocks and inline comments – #57840
  • Fix a few more typos in inline comments – #58334, #57840
  • Fix typo in a comment in Bulk_Upgrader_Skin::header() and ::footer()#58334
  • Improve HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. 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. file and class headers per the documentation standards – #57840
  • Improve Style Engine DocBlocks per the documentation standards – #57840
  • Improve Style Engine file and class headers per the documentation standards – #57840
  • Improve a few DocBlocks in wp-includes/formatting.php#58316
  • Update code examples formatting in WP_HTML_Tag_Processor documentation – #58028
  • Various corrections and improvements to inline docsinline docs (phpdoc, docblock, xref) and docblocks – #57840
  • describe return type of _get_block_template_file()#57756

Editor

  • Disable lazy loading term meta in get_block_templates#58230
  • Ensure 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. comments are of a valid form
  • Remove shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. support from block templates
  • Restore shortcode support for block templates – #58333
  • Update block editor packages to 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. releases – #58274

Embeds

  • Add protocol validation for WordPress Embed code

General

  • Remove a few is_object() checks followed by instanceof operator – #58309
  • Use static on closures whenever $this is not used to avoid memory leaks – #58323

Help/About

  • Remove unwanted space in a link located on about.php#58373

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 sanitization function for 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.
  • Replace “Roll back” with “Restore” in user facing strings – #58282

Media

  • Conditionally skip lazy-loading on images before the 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. to improve LCP performance – #58211
  • Increase default for wp_omit_loading_attr_threshold to 3 – #58213
  • Introduce wp_get_attachment_image_context filter – #58212
  • Prevent CSRF setting attachment thumbnails
  • Prevent special images within post content to skew image counts and cause lazy-loading bugs – #58089

Networks and Sites

  • Lazy load site meta – #58185
  • Load WP_Metadata_Lazyloader class file if class does not exist – #58185
  • Load WP_Metadata_Lazyloader class file if class in meta.php – #58185

Plugins

  • Remove is_object() check in WP_Hook:build_preinitialized_hooks()#58290

Posts, Post Types

  • Add a new filter for query arguments in get_pages#12821

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 edit link functionality for the wp_template and wp_template_part post types – #57709

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.

  • Do not prime term meta in wp_get_object_terms#57701

Props

Thanks to the 87 people who contributed to WordPress Core on Trac last week: @spacedmonkey (15), @peterwilsoncc (10), @costdev (10), @mukesh27 (9), @xknown (6), @flixos90 (6), @sergeybiryukov (5), @westonruter (5), @johnbillion (5), @thekt12 (4), @audrasjb (4), @youknowriad (4), @jrf (4), @davidbaumwald (3), @timothyblynjacobs (3), @isabel_brison (3), @dd32 (3), @antpb (3), @Presskopp (3), @talldanwp (2), @andraganescu (2), @ntsekouras (2), @ocean90 (2), @NekoJonez (2), @oandregal (2), @matveb (2), @rmccue (2), @desrosj (2), @aristath (1), @johnjamesjacoby (1), @antonvlasenko (1), @ramonopoly (1), @ironprogrammer (1), @annezazu (1), @wonderboymusic (1), @boonebgorges (1), @voldemortensen (1), @DrewAPicture (1), @tillkruess (1), @mamaduka (1), @wildworks (1), @mdxfr (1), @hellofromtonya (1), @kebbet (1), @mattwiebe (1), @bph (1), @ndiego (1), @joen (1), @ellatrix (1), @kevin940726 (1), @andrewserong (1), @welcher (1), @juanmaguitar (1), @coffee2code (1), @azaozz (1), @bor0 (1), @thomask (1), @dilipbheda (1), @marianne38 (1), @mikeschroder (1), @ehtis (1), @jorbin (1), @gziolo (1), @chriscct7 (1), @Otto42 (1), @ryelle (1), @joedolson (1), @Clorith (1), @kamplugins (1), @afragen (1), @apermo (1), @kenwins (1), @noisysocks (1), @zunaid321 (1), @martinkrcho (1), @paulkevan (1), @ahsannayem (1), @rutviksavsani (1), @Enchiridion (1), @sumitbagthariya16 (1), @Soean (1), @sabernhardt (1), @salvoaranzulla (1), @ebai4 (1), @sajjad67 (1), @tijmensmit (1), and @dmsnell (1).

Congrats and welcome to our 5 new contributors of the week: @marianne38, @ahsannayem, @rutviksavsani, @ebai4, @tijmensmit ♥️

Core committers: @sergeybiryukov (17), @audrasjb (10), @spacedmonkey (9), @flixos90 (4), @johnbillion (2), @desrosj (1), @westonruter (1), @oandregal (1), and @davidbaumwald (1).

#6-3, #core, #week-in-core

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

  • 60 commits
  • 115 contributors
  • 45 tickets created
  • 5 tickets reopened
  • 35 tickets closed

The Core team is currently working on the next point (5.8.2) and major (5.9) releases 🛠

Worth noting that each feature slated to the 5.9 milestone has been validated, that the Twenty Twenty-Two Theme development is on the way, and the 5.9 bug scrub schedule has been published 🚀

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

  • Make dashboard 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. control submit button text more clear – #54229
  • reword some “we” usages – #46057

Application Passwords

  • display guiding text & link in user-edit.php when unavailable – #53658

Build/Test Tools

  • Add end-to-end (e2e) tests for edit posts page – #49507
  • Add missing @covers and visibility for Tests_Admin_includesMisc#39265
  • Add missing @covers tags for Tests_Admin_includesFile#39265
  • Add missing @covers tags for Tests_Admin_includesListTable#39265
  • Introduce local visual 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. testing – #49606
  • Pass workflow outcome to 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/. Notifications – #53363
  • Restore changes 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.#54054
  • Restore the https URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for browserify-aes#54054
  • Remove polyfills from 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. view scripts – #53690
  • Clean up the $_REQUEST superglobal in WP_UnitTestCase_Base::clean_up_global_scope()#53363
  • Correct @covers tags in WP_Comments_List_Table tests – #39265
  • Split WP_Posts_List_Table and WP_Comments_List_Table tests into two separate files for clarity – #53363

Bundled Themes

  • TwentySixteen – correct 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. CSSCSS Cascading Style Sheets. font-style value – #46807
  • Add privacy policy link to Twenty Twenty footer – #53446
  • Ensure logo displays in 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. previewer – #51337
  • Remove the “role” attribute on HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. elements with a default landmark role – #54079

Code Modernization

  • Pass correct default value to http_build_query() in get_core_checksums() and wp_version_check()#54229

Coding Standards

  • Add public visibility to methods in tests/phpunit/includes/#54177
  • Add visibility to methods in tests/phpunit/tests/#54177
  • Consistently escape attribute in wp-admin/themes.php#54256
  • Fix some 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. errors and warnings in wp-admin/user-edit.php#53658
  • Move wp-includes/class-http.php to wp-includes/class-wp-http.php#54389, #53359
  • Rename the $strResponse argument to $str_response in WP_Http::processResponse()#53359

Comments

  • Add noopener noreferrer to author links in list table – #40916
  • Avoid reparenting during post deletion – #37703
  • Mark comment text field as required – #16206
  • remove bespoke truncation from search string HTML – #17636
  • attempt to clarify intent of “Default post settings” section – #54300

Customize

  • Fix focus() to collapse child panels and show parent panel – #34436
  • Make range controls full width – #54329

Docs

  • Clarify the path usage register_block_type_from_metadata – #53806
  • Fix some docblockdocblock (phpdoc, xref, inline docs) syntax errors and add a missing canonical reference – #53399, #52867, #38942, #53668
  • Various docblock improvements and corrections – #53399

Editor

  • Update structure of title element for editing – #52314

External Libraries

  • Update the Iris color picker to version 1.1.1 – #54224

General

  • Remove the svn:executable property from wp-admin/_index.php#54321

Help/About

  • Improve the Welcome text in wp-admin/_index.php#54321
  • Improve typography in the Welcome to your WordPress Dashboard! text – #54321
  • Simplifies WordPress version in “Help” 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.#47848
  • add WordPress version to contextual “Help” sidebar area – #47848

Media

  • Add 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. for post thumbnail id – #23983
  • Add filter for post thumbnail url – #40547
  • Adjust alt text info link text – #48939
  • Remove security messaging in media upload failures – #53626
  • Use WP_Query::get() method to retrieve the posts_per_page value in wp_ajax_query_attachments()#54129

Menus

  • Include 960 exact pixel width in collapse measurements – #54210

Permalinks

  • Sanitize non-visible characters inside sanitize_title_with_dashes()#47912

Posts/Post Types

  • Add filter to is_post_type_viewable()#49628

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 URL Details endpoint – #54358
  • Allow sidebars and their widgets to be public – #53915
  • Improve translations, comments, and readability in URL Details endpoint – #54358
  • Support subdirectory themes in the Themes controller – #54349

Site Health

  • Add the constant WP_ENVIRONMENT_TYPE for debug data – #54340
  • Site Health: Update the icon used when no issues are reported – #53980

Themes

  • Introduce get_header_image_tag_attributes hook – #38942

Widgets

  • Add filter to disable RSS widget icon – #52224
  • Remove unused CSS breaking wp_text_diff layout – #54140

Props

Thanks to the 115 people who contributed to WordPress Core on Trac last week: @audrasjb (15), @hellofromTonya (14), @sabernhardt (14), @costdev (8), @sergeybiryukov (6), @jrf (6), @peterwilsoncc (5), @justinahinon (4), @johnbillion (4), @andraganescu (4), @mukesh27 (4), @joedolson (3), @sabbirshouvo (3), @hareesh-pillai (3), @marybaum (3), @pbearne (3), @SergeyBiryukov (3), @johnjamesjacoby (2), @swissspidy (2), @youknowriad (2), @talldanwp (2), @hellofromtonya (2), @knutsp (2), @azaozz (2), @isabel_brison (2), @spacedmonkey (2), @webcommsat (2), @dlh (2), @karmatosed (2), @afercia (2), @antpb (2), @desrosj (2), @iluy (2), @mai21 (2), @tobifjellner (1), @danfarrow (1), @mnelson4 (1), @donmhico (1), @noisysocks (1), @netweb (1), @shaunandrews (1), @obenland (1), @ocean90 (1), @retrofox (1), @timothyblynjacobs (1), @domainsupport (1), @xknown (1), @marekhrabe (1), @ipstenu (1), @jakubtyrcha (1), @get_dave (1), @webaxones (1), @lukecavanagh (1), @tobiasbg (1), @wpweaver (1), @abesell132 (1), @junaidbhura (1), @chaion07 (1), @shital-patel (1), @mamaduka (1), @aduth (1), @ashfame (1), @davidwebca (1), @beaulebens (1), @poena (1), @kevin940726 (1), @paaljoachim (1), @dhanendran (1), @Ankit K Gupta (1), @aristath (1), @westonruter (1), @alexvorn2 (1), @deepaklalwani (1), @jackreichert (1), @ibenic (1), @joemcgill (1), @rzen (1), @leogermani (1), @sebastianpisula (1), @gilbitron (1), @engelen (1), @kapilpaul (1), @strider72 (1), @rianrietveld (1), @solarissmoke (1), @infected (1), @Boniu91 (1), @mikeschroder (1), @circlecube (1), @Presskopp (1), @melchoyce (1), @powerbuoy (1), @ryelle (1), @celloexpressions (1), @ryokuhi (1), @malae (1), @Cybr (1), @mattwiebe (1), @Clorith (1), @erayalakese (1), @adam3128 (1), @cybr (1), @coreyw (1), @craigfrancis (1), @acosmin (1), @hilayt24 (1), @zodiac1978 (1), @Mte90 (1), @zieladam (1), @generosus (1), @kraftbj (1), @bjorsch (1), @bgoewert (1), @boniu91 (1), @mt8.biz (1).

Congrats and welcome to our 12 (!) new contributors of the week: @iluy, @domainsupport, @webaxones, @abesell132, @davidwebca, @gilbitron, @infected, @adam3128, @hilayt24, @generosus, @bjorsch, @bgoewert ♥️

Core committers: @hellofromtonya (19), @sergeybiryukov (12), @johnjamesjacoby (9), @joedolson (5), @antpb (4), @johnbillion (2), @clorith (2), @timothyblynjacobs (2), @gziolo (2), @peterwilsoncc (1), @davidbaumwald (1), @desrosj (1).

#5-8-2, #5-9, #core, #week-in-core

Week in Core, April 5th – April 11th 2017

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

  • 41 commits
  • 26 contributors
  • 61 tickets created
  • 12 tickets reopened
  • 56 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers based on tracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. timeline for the period above. The following is a summary of commits, organized by component.

Code Changes

Bootstrap/Load

Build/Test Tools

  • Build/Test tools: Improve the failure message reported by assertQueryTrue() so it’s a little less cryptic. [40416] #40411
  • Build/Test tools: Trim the test matrix on Travis in order to speed up the 3.8 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". build. [40407-40415] #40407
  • Add assertNotFalse() method to WP_UnitTestCase and use it where appropriate. [40388] #39219

Customize

  • Verify availability of history.replaceState (in IE9) before attempting to populate changeset_uuid parameter. [40405] #39227, #40405
  • Auto-expand a 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. area section when expanding the Widgets panel if there is only one registered 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. and it is active. [40395], [40402] #37471
  • Fix behavior of clicking Delete Menu link and keep available nav menu items panel open when doing bulk deletion. [40396], [40401] #38953
  • Fix 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. navigation of site in preview on IE11. [40381], [40386] #38409, #40198
  • Use is_header_video_active() as active_callback for external_header_video control instead of is_front_page(). [40379], [40384] #38738, #40308
  • Fix reversal of nav menu item’s type and object properties for page stub added in 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.. [40380], [40383] #38164, #40277

General

  • Build/Test tools: Remove occurrences of create_function() in unit tests. [40392] #37082

Media

Networks and Sites

  • 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: Replace unnecessary is_super_admin() check when setting up the initial networknetwork (versus site, blog). [40406] #40406, #37616
  • Align the display of site statuses on the Sites listing screen with those of posts on the Posts listing screen. [40393] #40290
  • Multisite: Partially revert [40295]. [40391] #39676, #37616
  • Multisite: Handle sites cache invalidation more granularly for option updates. [40385] #40063

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

Role/Capability

TinyMCE

  • Update the tests for version 4.5.6. Remove default plugins tests, it is quite pointless to keep repeating them at this point. [40399] #40305
  • Update TinyMCE to 4.5.6. Has many improvements and 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. [40398] #40305

Upgrade/Install

  • Introduce wp_disallow_file_mods() helper function. [40394] #38673

Thanks to @adamsilverstein, @ashokkumar24, @azaozz, @blobfolio, @curdin, @DavidAnderson, @delawski, @desrosj, @dhanendran, @flixos90, @jnylen0, @joemcgill, @johnbillion, @ketuchetan, @maguiar, @MatheusGimenez, @mattwiebe, @MaximeCulea, @melchoyce, @peterwilsoncc, @pratikshrestha, @sboisvert, @swissspidy, @timmydcrawford , @westonruter, and @wonderboymusic for their contributions!

#week-in-core

Customizer Improvements in 4.7

WordPress 4.7 has been the most active release on record for the customize component, with four major feature projects merging and shipping with 4.7 and over 90 tickets closed as fixed. This post summarizes the highlights of the user and developer-facing changes.

4.7 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. Feature Projects

Create pages within live preview during site setup

Add new pages while building menus and setting a static front pageStatic Front Page A WordPress website can have a dynamic blog-like front page, or a “static front page” which is used to show customized content. Typically this is the first page you see when you visit a site url, like wordpress.org for example.; outline your site directly in the customizer.

This project began with the ability to create posts and pages direction from the available menu items panel in the customizer, as originally proposed near the end of the 4.6 cycle:

https://make.wordpress.org/core/2016/06/16/feature-proposal-content-authorship-in-menus-with-live-preview/

Subsequent changes also added the ability to create new pages when assigning the front page and posts page in the Static Front Page section. Because this is now built into the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. dropdown-pages customizer control, themes and plugins can also allow users to create new pages for their options instead of relying on existing content. The homepage sections in Twenty Seventeen include this new allow_addition parameter. Here’s how to register a dropdown-pages control supporting new pages:

$wp_customize->add_control( 'featured_page', array(
	'label'          => __( 'Featured Page', 'mytextdomain' ),
	'section'        => 'theme_options',
	'type'           => 'dropdown-pages',
	'allow_addition' => true, // This allows users to add new pages from this dropdown-pages control.
) );

Additionally, a proposal for term statuses was developed as a first step toward expanding the menus functionality to work for creating and previewing 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. terms in a future release (see #37915).

Improvements to the Sliding Panels UIUI User interface

Customizer navigation is now faster, smoother, and more accessible.

This project tackled a series of tickets focused on improving the usability of the “sliding panels” UI in the customizer controls pane. The first step was to refactor the section and panel markup so that sections and panels are not logically nested. This is the biggest internal change to the UI and has a dedicated post going into the details:

https://make.wordpress.org/core/2016/09/28/changes-to-customizer-sliding-panelssections-in-wordpress-4-7/

This primary change resolved numerous problems with sections and panels not opening and closing properly, and eliminated situations where navigation to leave a section could become hidden. The next step was making section and panel headers “sticky” so that navigation is easier to access within long sections (such as for a menu); see #34343.

Finally, hover and focus styling for navigation in the customizer has been updated to use the blue-border approach found elsewhere in core, including for the device-preview buttons in the customizer, in #29158. This completes a refresh of the customizer controls pane’s UI design that began in WordPress 4.3 with #31336. The core UI now uses the following consistent UI patterns in the customizer:

  • White background colors are used only to indicate navigation and actionable items (such as inputs)
  • The general #eee background color provides visual contrast against the white elements
  • 1px #ddd borders separate navigational elements from background margins and from each other
  • 15px of spacing is provided between elements where visual separation is desired
  • 4px borders are used on one side of a navigation element to show hover or focus, with a color of #0073aa
  • Customizer text uses color: #555d66, with #0073aa for hover and focus states on navigation elements

Plugins and themes should follow these conventions in any custom customizer UI that they introduce, and inherit core styles wherever possible.

Any custom sections and panels, as well as customizations to the core objects in plugins and themes, should be tested extensively to ensure that they continue functioning as intended with all of these changes in 4.7. It’s particularly important to ensure that things like the use of color match the core conventions so that the user experience is seamless between functionality added by plugins and core.

Customize Changesets (formerly Transactions)

Browse your site and switch themes more seamlessly within the customizer, as your changes automatically persist in the background.

This project rewrote the internals of the customizer preview mechanism to make changes persistent. Each change made to a setting in the customizer is saved to a changeset (a new customize_changeset post type), facilitating future features such as scheduled changes, 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., or saving and sharing drafted changes. Changesets also open the door to using the customizer to preview Ajax requests, headless sites, and 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/. calls for mobile apps. In 4.7, changesets enable switching themes in the customizer without needing to decide between publishing or losing your customizations, as they’re automatically persisted in the background.

For more details on changesets, check out the two dedicated posts:

https://make.wordpress.org/core/2016/10/12/customize-changesets-formerly-transactions-merge-proposal/

https://make.wordpress.org/core/2016/10/12/customize-changesets-technical-design-decisions/

Custom CSSCSS Cascading Style Sheets.

Fine-tune your site and take your theme customizations to the next level with custom css in the customizer.

#35395 introduced a user-oriented custom CSS option in the customizer. Now that the base functionality is in place, it will be further enhanced in #38707 in future releases. Read the feature proposal for details on the implementation and why it’s important for core:

https://make.wordpress.org/core/2016/10/11/feature-proposal-better-theme-customizations-via-custom-css-with-live-previews/

There’s also a dedicated post that walks through the process of migrating existing custom CSS options in themes and plugins to the core functionality – be sure to follow those steps if your 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 or theme does custom CSS:

https://make.wordpress.org/core/2016/11/26/extending-the-custom-css-editor/

Other Changes with Dedicated Posts

4.7 features several other features deserving special attention. Read the posts for visible edit shortcuts (which expand the functionality of customizer partials), video headers (which extend the custom 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. feature), and starter content for more information:

https://make.wordpress.org/core/2016/11/10/visible-edit-shortcuts-in-the-customizer-preview/

https://make.wordpress.org/core/2016/11/26/video-headers-in-4-7/

https://make.wordpress.org/core/2016/11/30/starter-content-for-themes-in-4-7/

Additional User-facing Changes

With over 90 tickets fixed in the customize component in 4.7, we can’t cover everything here. But, here are a few more highlights:

Improved Custom Background Properties UI

#22058 introduces a more comprehensive and more usable custom background properties UI when a custom background is set up. There are now presets to control all of the detailed options at once, and the individual options are presented in a more visual way. Background size and vertical position are also now available as standalone options when using a custom preset.

Theme developers should update their add_theme_support() calls for custom-background to specify the default size, vertical position, and preset to reflect their default background image CSS. Perhaps the most significant improvement here is the ability for users to easily set up fixed full-screen backgrounds – and the ability for themes to make that behavior default if desired.

And even more…

4.7 also:

  • Loads the frontend preview 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. more naturally, eliminating a lot of weirdness with JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. running in an unexpected location and ensuring that JS-based routing will work (#30028)
  • Allows the search results page to be previewed, and any forms that use the GET method in general can now be submitted whereas previously they would do nothing when submitted (#20714)
  • Hides edit post links in the customizer by default. Plugins, such as Customize Posts, can restore the links if they make post editing available in the customizer (#38648), although the visible edit shortcuts should generally be used instead.
  • Shows a cursor: not-allowed for mouse users when hovering over external links in the preview, as these can’t be previewed
  • Officially removes support for the customizer in Internet Explorer 8, preventing users of this outdated browser from accessing the customizer at all (#38021)

Additional Developer-oriented Changes

Hue-only Color Picker

#38263 adds a hue-only mode to the Iris color picker, wpColorPicker, and WP_Customize_Color_Control. Built for Twenty Seventeen’s custom colors functionality, the hue-only mode allows users to select a hue and saves the hue degree as a number between 0 and 359. To add a hue-color control:

$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'colorscheme_hue', array(
	'mode' => 'hue',
	'section' => 'colors',
) ) );

As demonstrated in Twenty Seventeen’s custom colors strategy, the hue-selection strategy opens up a whole new world of possibilities for custom color options in themes. Rather than introducing numerous text and background color options and requiring users to adjust them to ensure that adequate color contrast is provided, themes can consolidate their color options into one or more hue pickers. Then, the corresponding use of hsl colors in CSS allows themes to define color patterns where users customize color hues without impacting the lightness of a color option, thereby preserving the designer’s use of proper contrast between text and background colors, and any use of color lightness for visual hierarchy. Check out the implementation in Twenty Seventeen for inspiration (including instant live preview).

Fix Sections that .cannot-expand

When creating custom customizer sections that, for example, display an external link but don’t actually expand to show section contents, the cannot-expand class can be added to the section title container to prevent JS events and CSS hover/focus styles from being applied. Be sure to also remove the tabindex="0" from the container if you copy the core code since your custom section shouldn’t be focusable if it can’t expand (and any contained links or buttons would be keyboard-focusable automatically). See #37980 for details.

Allow Plugins to do Comprehensive Late Validation of Settings

To account for custom subclasses of WP_Customize_Setting that don’t apply the customize_validate_{{$setting_id}} 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., this filter now will be applied when WP_Customize_Manager::validate_setting_values() is called. This ensures that plugins can add custom validation for every setting. For more, see #37638.

Credits

Huge thanks to the 61 people (and counting) receiving props for the 120+ customize component commits in 4.7 (as of RC2): @westonruter, @celloexpressions, @afercia, @sirbrillig, @ryankienstra, @helen, @ocean90, @melchoyce, @bradyvercher, @folletto, @johnbillion, @delawski, @karmatosed, @georgestephanis, @dlh, @curdin, @valendesigns, @mattwiebe, @michaelarestad, @joemcgill, @sstoqnov, @lgedeon, @mihai2u, @coreymcollins, @stubgo, @utkarshpatel, @desrosj, @odysseygate, @johnregan3, @aaroncampbell, @mapk, @iseulde, @mrahmadawais, @vishalkakadiya, @sayedwp, @hugobaeta, @jonathanbardo, @jorbin, @tristangemus, @deltafactory, @kkoppenhaver, @seancjones, @Presskopp, @Mista-Flo, @nikeo, @adamsilverstein, @lukecavanagh, @coffee2code, @peterwilsoncc, @presskopp, @pento, @Kelderic, @sebastian.pisula, @mckernanin, @FolioVision, @MikeHansenMe, @welcher, @cdog, @grapplerulrich, @iamfriendly, @flixos90.

 

#4-7, #customize, #dev-notes

Visible Edit Shortcuts in the Customizer Preview

#27403 added visible edit shortcuts to 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. preview, making it easier to see which elements of your site are editable in the customizer and how to edit them. Here’s a demo with Twenty Fifteen (note that the ability to toggle icons off has since been removed):

Implementation: Selective Refresh Partials

Visible edit shortcuts are an extension of the existing “shift-click-to-edit” functionality built into customizer partials. Partials are sections of the front end of the site, in the customizer preview, that are associated with customizer settings. When settings change, their associated partials are selectively refreshed via an Ajax call without reloading the entire preview. Partials are to the customizer preview what controls are to the customizer editing pane: a visual representation of a setting.

Buttons are now injected into partials within the preview to expose this relationship visually and to users of all input modes. However, the role of the customizer preview is to provide an accurate representation of the frontend of the site as it’ll appear once changes are published. Accordingly, visible edit shortcuts pose a challenge as they have the potential to significantly hamper the preview-ability of the preview.

To balance between discoverability and providing an accurate preview, the initial coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. iteration showed a flash of the buttons when the preview first loads, then hid them. To show the shortcuts, or to toggle them on and off, you could click/tap anywhere in the preview (except on a link or button). Keyboard users had a screen-reader-text button (visible on focus) to toggle the shortcuts on and off. This functionality was removed in [39131] and icons are currently persistently visible when customizing but hidden when the controls are collapsed, and supplemental usability testing validated this decision.

Background & Prior Implementations

Shift-click to edit an element in the customizer preview was first implemented with the widget customizer project in WordPress 3.9. Visual approaches to exposing this functionality were explored, but left for a future release. Selective refresh was also first proposed, and put on hold pending development of the concept.

The first core implementation of selective refresh came with menu management in the customizer in WordPress 4.3. Menus include shift-click-to-edit on a per-menu-item bases, further demonstrating the powerful potential of associating portions of the customizer preview with their associated settings and controls.

WordPress.comWordPress.com An online implementation of WordPress code that lets you immediately access a new WordPress environment to publish your content. WordPress.com is a private company owned by Automattic that hosts the largest multisite in the world. This is arguably the best place to start blogging if you have never touched WordPress before. https://wordpress.com/ currently supports a similar feature with visible edit icons in the customizer. This approach serves as the inspiration for the final UIUI User interface being introduced in core, with additional UXUX User experience adjustments and a complete rewrite of the implementation to make it compatible with as many themes as possible.

Adding Theme Support

Theme support for this feature is all about supporting selective refresh, which was added in WordPress 4.5. In some cases, a small amount of additional CSSCSS Cascading Style Sheets. will be required to ensure that the shortcuts are positioned properly. Edit shortcuts will be enabled by default for all themes, but are contingent on themes supporting selective refresh.

Selective Refresh for Widgets

See the post from WordPress 4.5 for adding support for selective refresh for widgets. In most cases, add_theme_support( 'customize-selective-refresh-widgets' ) is the only requirement:

https://make.wordpress.org/core/2016/03/22/implementing-selective-refresh-support-for-widgets/

Selective Refresh for Menus

Menus support selective refresh out of the box unless: a custom nav menu walker is used, the echo argument is false, or wp_nav_menu isn’t used. In those cases, you’ll need to add support directly. Some themes may still be missing full support for selective refresh of menus, which has been enabled by default since WordPress 4.3.  Reference the post for details, but note that it predates the core implementation of an 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. for selective refresh:

https://make.wordpress.org/core/2015/07/29/fast-previewing-changes-to-menus-in-the-customizer/

Selective Refresh for Custom Options

Custom logo (since 4.5) and 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. video (since 4.7) support selective refresh automatically if you use the core features via add_theme_support. Other core options such as the site title and tagline or header images can support selective refresh if you register partials for them and set their settings’ transport argument to postMessage. Here’s an example from Twenty Fifteen:

$wp_customize->get_setting( 'blogname' )->transport        = 'postMessage';
$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';

$wp_customize->selective_refresh->add_partial( 'blogname', array(
	'selector' => '.site-title a',
	'render_callback' => 'twentyfifteen_customize_partial_blogname',
) );
$wp_customize->selective_refresh->add_partial( 'blogdescription', array(
	'selector' => '.site-description',
	'render_callback' => 'twentyfifteen_customize_partial_blogdescription',
) );

Where the render callbacks call bloginfo( 'name' ); and bloginfo( 'description' ); For more details on adding support for selective refresh for custom theme options, reference the official customizer documentation.

Support in Default Themes

Twenty Eleven through Sixteen support selective refresh as of WordPress 4.5, and also support edit icons for most of their features as a result. Twenty Fourteen and Sixteen require a few very minor positioning tweaks to ensure that all of the icons are visible. This is typical of what most themes could expect needing to add.

Twenty Seventeen will be a great showcase for this new functionality, as the first theme to ship natively with selective refresh support and with visible edit shortcuts. A few additional adjustments in this new theme will ensure that every option can be previewed with selective refresh and provides visible edit shortcuts where appropriate.

Limitations & Future Iterations

The biggest limitation of the current approach is that implementation is entirely dependent on themes supporting it. However, unlike with many other theme-supported features, there is no add_theme_support for visible edit shortcuts. Where themes are already using selective refresh, shortcuts will be available out of the box in WordPress 4.7. To add theme support for edit shortcuts, themes need to add theme support for selective refresh, another newer customizer feature that allows the customizer preview to update granularly. Selective refresh provides superior user experience to the default refresh behavior because the preview context is not lost when changes are made.

Edit shortcuts currently rely on the presence of selective refresh partials for every setting that needs an icon. Some settings may be previewed exclusively with 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/. via postMessage. Icons also aren’t needed for every option; for example, layout or color options are broader than a specific area of the site, so they aren’t associated with a particular edit icon in the preview. In the future, a structured JavaScript API for partials in the customizer preview could facilitate adding icons to JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors.-previewed settings that don’t use selective refresh.

Visible edit shortcuts are also the first step toward exploring the potential to edit elements of a site directly within the customizer preview. For this to be fully investigated, it’s imperative that a majority of themes and customizer option support selective refresh so that areas of the preview are associated with the appropriate customizer settings and so that context-disrupting full page reloads can be minimized.

Contributors & Call for Help

@sirbrillig led development of the feature for core based on the equivalent feature on WordPress.com. Core props went to @sirbrillig, @mattwiebe, @celloexpressions, @melchoyce, @westonruter, and @afercia. Thanks to everyone who has contributed so far!

Now, your help is needed! Here’s what you can do to make this feature shine in WordPress 4.7:

  • Theme authors: add support for selective refresh to your themes. Start with widgets and make sure it’s working for menus, then make sure you’re using the core custom logo feature. Then, add selective refresh to the site title and tagline, header images, and any custom options with associated regions on the frontend.
  • Theme authors: adjust icon positioning in your theme’s CSS. You can add styles to.customize-partial-icon button to adjust all icons, and scope that to a specific container or even .customize-partial-icon-setting_id to adjust a particular edit icon. Note: these were updated with [39136].
  • Everyone: test edit shortcuts with your current theme with WordPress 4.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 (or newer). Most themes should be able to support them on widgets, menus, and logos with minimal effort. Contact your theme’s developer with any bugs or missing edit icon support, refer them to this post, and ask them to add support for visible edit shortcuts.
  • Everyone: test as many themes as possible and look for anywhere the shortcuts don’t display as expected, or at all. Contact the theme author with your findings, refer them to this post, and ask them to improve support for visible edit shortcuts in their themes.

#4-7, #customize, #dev-notes, #themes

Week in Core, Mar 1 – Mar 8 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 [36801-36888]. Here are the highlights:

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

WordPress Core Weekly

Here we go again! It’s time to look at what’s going on in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. This edition of WordPress Core Weekly covers March 28, 2015 [31916] through April 4, 2015 [32002].

Note: If you want to write the next WordPress Core Weekly summary, check out the schedule over at make/docs and get in touch in the #core-weekly-update Slack channel.

Highlights from this week

This week WordPress 4.2 Beta 4 got released. This hopefully last 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. saw lots of 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) improvements and added the ability to make adminadmin (and super admin) notices dismissible. Emoji support in core is now pretty stable – maybe the next weekly post is written in emojis only? Also, there were some notes posted on utf8mb4 and the term splitting in WordPress 4.2.

Last but not least, @obenland and @wonderboymusic were announced as release leads for WordPress 4.3 and 4.4, respectively. Congrats! 🎉

Code Updates

Posts, Post Types

  • After [31114] and [31323], ‘View Post’ generated in get_sample_permalink_html() should go to pretty permalink. [32002] #30910
  • Avoid duplicate classes for different terms with UTF–8 slugs in post_class() and body_class(). [31979] #30883
  • In WP_Posts_List_Table::get_views(), don’t add the current class to the all status link if ->user_posts_count has a value, which triggers the additional mine status. [31959] #24869

Users

  • WP_User_Query: When querying users with fields=all, ensure that caps and roles are filled for the current site. [32001] #31878
  • When updating the email address for an existing user, make sure the email address is not already in use. [31963] #30647

Comments

General

  • WordPress 4.2-beta4 [31997][31998]
  • Respect numerical keys in add_query_arg(). Avoid the use of array_replace() in add_query_arg(). [31966][31967] #31306
  • TinyMCE: always focus the editor after using the floated toolbar. [31972] #30619

Emoji

  • Enhance twemoji.js to support passing of additional attributes for the replacement images. [31948] #31627
  • When encoding emoji into HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. entities, 0 was being incorrectly trimmed from the right side of the hex string, causing some characters to be encoded incorrectly. [31926]
  • When staticizing emoji into <img> tags, include an alt attribute of the original Emoji, to match both Smiley and Twemoji <img> tags. [31924]
  • Change the emoji CDN to w.org, from wp.com. [31938][31977] #31651

Themes

  • Accessibility improvements for Themes screen: fix keyboard events and callbacks for the Search field, increase trigger timeout a bit, improve Esc. key handling. [31994] #26600
  • Improve focus styling of add-new-theme link. [31952] #31203
  • Add 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. to short-circuit wp_prepare_themes_for_js(). [31943] #31789

Administration

  • Accessibility improvements for Options general screen: add missing labels and aria attributes. [31993] #31144
  • Accessibility: Add landmark roles to WordPress admin areas. [31955] #31450
  • Make sure the update button in “At a Glance” dashboard 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. does not overlap with long strings. [31928] #30766

Press This

  • Prevent pasting of HTML in the title H2. Insert the clipboard text instead. [31987] #31768
  • Use more accurate wording on Tools screen. [31980] #31836
  • Use the error message returned by wp_update_post() instead of a generic one. [31930] #31808
  • Fix accessibility for the post options “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.”. Fix size of the Add CategoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. button. [31925] #31575

Upgrade/Install

  • Introduce a string representing bulk 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 success, ready for string freeze. Not used yet. [31991] #31770
  • Plugins Browser: Replace the download count with the number of Active installs of the plugin. [31990] #31865
  • Add beforeunload string for shiny updates. [31989] #31769
  • Update aria-label when doing a shiny plugin update [31982] #31722
  • Add some logic into wp_tempnam to prevent it creating ‘falsey’ directory names that might get used elsewhere within WordPress. [31936] #31811

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.

  • Merge title strings on Edit Site screens. [31962] #31844
  • Remove unused printf() on networknetwork (versus site, blog) setup screen. [31961] #31841
  • Decouple strings where the singular and plural form are not just the same string with different numbers, but essentially two different strings. [31941][31951] #28502

Customize

  • Theme Switcher: Navigation streamlining. [31975] #31289
  • Theme Switcher: Remove “Add New” references. [31968] #31837
  • Theme Switcher: Switch the details/live preview buttons. [31954] #31791
  • Theme Switcher: Use the global panel back button instead of adding a new one. [31918] #31794
  • Theme Switcher: Fix 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. HTML markup when New Theme control is added. [31950] #31203
  • Make the available widgets overlay closable on narrow screens. [31974] #28784
  • Defer rendering theme controls until the section is displayed. [31944] #31793
  • Revert [31911]. We want to preserve url and return URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org parameters to make the experience smoother. [31933] #31782
  • Increase size of search field and disable text size adjustment to prevent auto zooming. [31917] #31794
  • Increase initial-scale viewport specification to 1.0. [31921] #31794, #28784
  • Fix selector for container which includes the controls. Broken since [30102]. [31916] #31794, #31014

XML-RPC

  • Correctly set the post author in wp_xmlrpc_server::mw_editPost() when the current user is not the author of the post. [31983] #24916

Networks and Sites

Administration

  • Admin notices: Make (most) core notices dismissible. These no longer return upon refreshing the page when JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. is on and working, so users should be able to dismiss them. [31973] #31233, #23367

Bundled Theme

  • Twenty Eleven: add postMessage support for header_textcolor to improve the user experience 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.. [31971] #24128
  • Twenty Fifteen: adjust scroll behavior to make sure sidebar height is calculated during scroll events, not just resize events. [31934] #31734
  • Twenty Thirteen: make sure submenu links work correctly on small screens with touch events. [31932] #31762

Formatting

  • Alter the regex in wptexturize() to properly handle input like: <> "Hello world" <>. [31965] #30344

Permalinks

  • When shifting WP_Rewrite::flush_rules() to a later action if it was called too early, make sure to do a hard flush if requested. [31964] #30501

Media

  • When editing an image from the editor, and the image has a value for alignment (but not for width or caption), don’t bail without first checking that the alignment’s value is not alignnone. If so, add the class to the <a> before bailing. [31958] #21848
  • Media Library: Add a label for attachment type select in list mode. [31942] #31795

Editor

  • wpLink: Enable smooth scrolling on iOSiOS The operating system used on iPhones and iPads. devices. [31957] #31612

Database

  • When we check the character set of a column, and find that it’s utf8mb4, we should also check that the current connection supports utf8mb4. It’s possible that the environment may have changed since upgrading the DB, so we can fall back to utf8 when that happens. [31947] #31771
  • When we’re checking to see if the MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. client library supports utf8mb4, we need a separate check for mysqlnd versions, which using different version numbering to libmysqlclient. [31939] #31644

Login and Registration

  • Disable body scrolling when session expired log in modal is open. [31945] #31610

Media

  • Revert using require for JS modules because that made them read-only for the public. [31935] #31684, #28510

Menus

  • Fix duplicate ID for Save Menu button on Menus screen. [31927] #31803

Thanks to @A5hleyRich, @adamsilverstein, @afercia, @azaozz, @boonebgorges, @cdog, @celloexpressions, @davideugenepratt, @dd32, @deconf, @Denis-de-Bernardy, @designsimply @dllh, @DrewAPictur, @DrewAPicture, @ericlewis, @evansolomon, @folletto, @helen, @iseulde, @jeremyfelt, @joedolson, @johnbillion, @jorbin, @jorbin, @kraftbj, @lancewillett, @markoheijnen, @mattheu, @mattwiebe, @MattyRob, @mehulkaklotar, @MikeHansenMe, @miqrogroove, @mordauk, @mrahmadawais, @ocean90, @paulwilde, @pento, @ramiy, @redsweater, @rittesh.patel, @sagarjadhav, @SergeyBiryukov, @sgrant, @stephdau, @swissspidy, @tyxla, @valendesigns, @westonruter, and @wonderboymusic for their contributions!

#4-2, #week-in-core

WordPress Core Weekly

Hi Everyone!

It’s time for another run-down of what’s going on in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. This edition covers March 20, 2015 [31845] through March 28, 2015 [31915].

If you want to write the next WordPress Core Weekly summary, check out the schedule over at make/docs and get in touch in the #core-weekly-update Slack channel.

This week’s highlight is WordPress 4.2 Beta 3, which was released on Thursday. There were many 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) and emoji improvements and 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. Also, shiny installs functionality was removed.

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.

  • Improve newly added strings for i18n. [31905] #31776
  • Remove <code> tags from translatable strings. Uncomment deprecation notice for get_bloginfo( 'text_direction' ). [31899] #30614

Customize

  • Theme Switcher: Opening themes details modal shouldn’t require two clicks on touch devices. [31914] #31794
  • Theme Switcher: Reset font size of theme names in overlay. Apply left position only to themes section. [31892] #31303
  • Theme Switcher: Don’t hide action buttons on narrow screens. [31912] #31794
  • Use proper preview URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org for Live Preview links. [31911] #31782
  • Avoid SecurityErrors when 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. is embedded in an origin other than wp-adminadmin (and super admin). [31885] [31893] #31687
  • Use responsive button styles if screen is max-width 640px. [31913] #31794, #28784

Emoji

  • [31864] changed emoji image’s inline style from height to max-height. Unfortunately, anything using feedparser.py (for example, NewsBlur) strips out max-height, which gives us massive emoji in feeds. This re-adds height, and also reminds us why we can’t have nice things. [31909] #31719
  • When we’re replacing emoji with <img>s in email, we can only do that if the Content-Type is text/htmlHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. – otherwise, they’ll show up in the email as the HTML string. [31860] #31720
  • Instead of loading the emoji JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. files automatically, we now include a small JS shim in the 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., to test if the user’s browser needs Twemoji. It then loads the emoji JS files only if they’re needed. [31875] [31877] [31879] #31701
  • Set the emoji image protocol with set_url_scheme(), instead of defaulting to 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.. [31861] #31735

Press This

  • Remove role="application" from the Categories list wrapper. This doesn’t make it work better in screen readers. [31907] #31443
  • On sites that support oEmbed, if the user has selected some text, quote it below the embed. [31894] #31763
  • Fix the links on inserted images to point to the source site. Fix inserting of images above the blockquote when the editor has not been focused. [31868] #31745

Upgrade/Install

  • Fill $plugins['upgrade'] with extra info for use in list table [31872] #31738
  • Remove Shiny 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 Installs [31897] [31900] [31901] #31773, #29820
  • When creating a temporary working directory, strip off .tmp as well as .zip incase we end up using that directory as the items main directory. [31863] #30945

General

  • Remove ambiguity in the time display format in core, switches to using 24hr notation where am/pm isn’t specified. [31862] #31121
  • Comments List: Don’t let “Quick Edit” break on smaller screens. [31889] #31482
  • Admin menu: Revert [31720] for swipe open/closed. This is problematic on any device that uses swipe for history navigation, particularly iOSiOS The operating system used on iPhones and iPads.. [31910] #31187
  • Do not output empty name and id HTML attributes in get_submit_button(). [31880] #31749
  • When altering the admin URL to reflect the canonical location, keep the existing hash (if present) in the URL. [31882] #31758, #23367
  • WordPress 4.2-beta3 [31902] [31903]

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.

  • When saving post, ensure that non-hierarchical taxonomy input is defined before attempting to parse it. [31895] #30859
  • Taxonomy List Tables: On mobile devices, hide the slug column, to avoid cramping the action links into two rows. [31865] #29992
  • Supplement hook documentation for the get_terms_fields 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 more clearly explain the expected consequences of using it to modify the fields to select in a terms query. [31855] #31174

TinyMCE

  • Make sure the editor is not completely empty before checking if the user clicked above or below a wpView. [31888] #31765
  • Pad empty paragraphs with <br> in Chrome to stop it from inserting non-breaking spaces in them. [31878] #31255
  • Fix error and PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warning when adding more than one instance in RTL mode. [31874] #31578
  • Fix the icon for the wp_code button. [31858] #31733
  • When pasting an URL, check if the node it is pasted at is empty and remove any empty inline child elements. [31856] #31158

Script Loader

  • Avoid a PHP notice in wp_enqueue_script() if $handle is an array. Calling wp_enqueue_script() with an array as the first argument is a “hidden feature” and should be avoided. Use dependencies instead. [31887] #31636, #14488

Widgets

  • Text 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.: Use !empty() for checking if the filter setting is set. [31886] #31690
  • Trigger _doing_it_wrong() if register_sidebar() is not passed an id. [31850] #31675

Login and Registration

  • Implement an aria-describedby attribute for login screen errors, and improve the “Forgot password?” anchor text. [31871] #31143

Media

  • Introduce attachment_url_to_postid filter to let plugins manage the uploads location better. [31867] #31717
  • Show filename instead of extension in the list table. [31857] #30943

Bundled Theme

  • Update editor styles to better display images and captions in small screens. [31849] #31250

Build/Test Tools

Thanks to @A5hleyRich, @afercia, @aferica, @atimmer, @azaozz, @boonebgorges, @Cheffheid, @dd32, @dkotter, @DrewAPicture, @ericlewis, @extendwings, @HarishChaudhari, @helen, @ianmjones, @iseulde, @jacklenox, @janhenckens, @johnbillion, @johneckman, @jorbin, @kraftbj, @lamosty, @lancewillett, @magicroundabout, @maimairel, @markjaquith, @mattheu, @mattwiebe, @MikeNGarrett, @nerrad, @obenland, @ocean90, @pento, @ramiy, @rianrietvel, @SergeyBiryukov, @sorich87, @stephdau, @swissspidy, @tschutter, @tyxla, @valendesign, @valendesigns, and @westonruter for their contributions!

#4-2, #week-in-core

WordPress Core Weekly

Hi Everyone!

It’s that time again: WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Weekly is here. This is a catchup post and covers all commits since the last post up until 11/9/2014.

First, a couple quick notes!

Taxonomies

  • Do not create shared taxonomy terms. [30240] #21950; See #5809.
  • Split shared taxonomy terms during term update. [30238] [30239] [30241] #5809
  • Don’t force child_of=0 for non-hierarchical taxonomies in get_terms(). [30265] #30275
  • In get_adjacent_post(), $excluded_terms should check term_id rather than term_taxonom_id. [30263] #29663, #22112.
  • Allow resource_type to be specified in get_ancestors(). Being explicit about resource type (taxonomy vs post_type) allows for the proper resolution of conflicts when a taxonomy and post_type share a slug. [30141] #15029
  • In wp_insert_term(), clean up accidental duplicate terms after insert. [30238] See #22023, #5809.
  • Add some unit tests for is_object_in_term(). These tests check a number of the ways that different kinds of values for $terms (integers that match term_id, strings that match term_id or name or slug) are handled. [30204] #29467
  • In in_object_in_term(), only check numeric string values against term_id. [30205] #29467
  • Introduce term_template param to get_the_taxonomies() to allow theme and 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 authors to specify the formatting on term links as they are parsed into the taxonomy list. [30209] See #27238.
  • Allow duplicate slugs across different post types. [30158] #18962
  • In get_terms(), do not override hierarchical and pad_count when parent is present. The previous behavior resulted in descendant terms being improperly excluded from the results when passing a parent, even when hierarchical had been set to true. [30107] #29815
  • Clean up get_term_by() caching, fix cache key/group modification that was missed in [30073], and update unit tests. [30108] #21760

Twenty Fifteen

  • Use new core navigation tags. [30216] #30189
  • Support for title-tag. [30097] #30146
  • Improve support for 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.. [30274] [30275] #29988; [30230] #30164 #29980; [30272] #30165
  • Improve 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) by clarifying link context #30108 [30208], adding accessible alt text for post thumbnail links. [30231] #30076, and using continue reading links for auto-generated excerpts [30237] #30135.
  • Prevent a flash of visible sub menus before scripts load. [30211] #30056.
  • Detach widgets from the 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. in mobile views. [30243] #30252
  • Improve Styles for playlists [30213] [30269] #30163, user-selected custom colors [30221] #30234, and image alignment for RTL [30222] #30239, and body class for page templates [30100] #23470.
  • Make sure that the edit link will always be right of its icon. [30215] #30171
  • Add a fallback icon for social links where we don’t have an icon. [30212] #30148
  • Use the new archive template tags and make archive template titling simpler. [30236] #30246

Database

  • Bump db_version and add upgrade routine for schema change in [30056]. [30121] [30134] #22023
  • WPDB’s __get() function should perform strict comparisons against member names. [30292]

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.

  • Allow revision Backbone classes to be used on pages other than revision.php. [30128] #30221
  • Add a single responsibility function for outputting Revisions JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. templates: wp_print_revision_templates(). Use it in wp-admin/revision.php. [30129] #30220
  • Revisions modules should not rely on global settings; only pass in global settings on init, this allows the classes to be used agnostically elsewhere. [30131] #30219

Metadata

  • Pass all updated 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. IDs to filters in update_metadata(). [30140] #11683
  • Unserialize get_metadata() results when key is omitted. [30115] #15030

Queries

Adminadmin (and super admin)

  • Display error message when Media Library upload fails. [30156] [30177] #29891
  • Delete admin_created_user_subject() rather than deprecate. As it was never used as anything more than a callback to 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. before the MU merge, and is only available in user-new.php 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, it is safe to remove this function entirely. [30176] #29915

Customizer

  • Improve/introduce Customizer 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/. models for Controls, Sections, and Panels, along with a reference. [30102] see #28032, #28579, #28580, #28650, #28709, #29758. Fixes #29529.
  • Improve ColorControl‘s wpColorPicker to update UIUI User interface based on setting changes. Update Twenty Fifteen’s colorScheme control to properly interact with 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., using wp.customize.control(). [30126] #30031
  • Add stable sorting for panels, sections and controls in JS. Improve sorting in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher. [30214] #30225
  • Bind input and propertychange events for range input types. [30219] #30223
  • Twenty Fourteen: Make featured content in Customizer contextual to the front page. [30143] #29578

Templates

  • Introduce new template functions for archive titles and descriptions: [30223] #21995
    • get_the_archive_title() and the_archive_title() for returning/displaying the title of the current term, date, post type, post format, or author archive.
    • get_the_archive_description() and the_archive_description() for returning/displaying the description associated with the current term archive.
  • In get_page_children(), only check $page->ancestors once to avoid duplicates when the function recurses. Adds an argument, $ancestors. [30246] #18962
  • Allow get_pages(), with child_of passed to it, to work with interrupted hierarchies. [30159] #18962

Thanks to @afercia, @avryl, @azaozz, @bobbingwide, @boonebgorges, @bradyvercher, @Caspie, @celloexpressions, @dancameron, @davidakennedy, @davidjlaietta, @dikiy_forester, @dlh, @donutz, @DrewAPicture, @ericlewis, @filosofo, @florianziegler, @garyc40, @gcorne, @greuben, @hereswhatidid, @iamtakashi, @iandstewart, @imath, @Jayjdk, @jeremyfelt, @jesin, @joedolson, @johnbillion, @jorbin, @kitchin, @kovshenin, @kraftbj, @kurtpayne, @lancewillett, @landakram, @loushou, @markjaquith, @mattkeys, @mattwiebe, @mboynes, @MikeHansenMe, @mlteal, @mordauk, @morganestes, @nacin, @NikV, @nobinobi, @obenland, @ocean90, @pento, @philiparthurmoore, @realloc, @rmccue, @ryankienstra, @sakinshrestha, @SergeyBiryukov, @slobodanmanic, @TobiasBg, @tollmanz, @tywayne, @voldemortensen, @wedi, @westonruter, and @wonderboymusic for their core contributions!

Revisions covered: [30094] to [30292]. For the complete list of commits to 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., check out the log on Trac.

Interested in joining in? Write or test a patch for 4.1.

#4-1, #week-in-core

WordPress Core Weekly

Hi everyone!

It’s this time of the week again: WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Weekly is here. This updates covers all commits since last week up to to today, October 29th.

In case you missed it, the new default theme, Twenty Fifteen, is coming along very well, the feature plugins planned for 4.1 are being tested extensively and 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. 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/. 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. is getting more and more complete.

But there are many more things going on behind the scenes and Core has even passed revision [30,000]! Let’s have a look at this week:

Adminadmin (and super admin)

  • Add labels to the Personal Options input fields on the user profile editing screen. [30027] #30101
  • Editor: Use <button> instead of <a> for the Visual/Text buttons, make them focusable. [30002] #27553
  • Customizer: Add the ability for a customizer control to render its controls via a JavaScript template. Switches the default color picker control to a JavaScript template. [30014] #29572

Themes

  • Twenty Fifteen: If 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. is taller than the viewport scroll it with the content, if it’s shorter keep it fixed. [30025] #29979
  • Introduce a new means of outputting a <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.) in the theme head. Requires a theme to add support by calling add_theme_support( 'title-tag' ). [30074] #18548
  • Introduce some new template functions for navigation [30065] #29808
    • get_the_post_navigation() and the_post_navigation() for navigation to the next and previous post.
    • get_the_posts_navigation() and the_posts_navigation() for navigation to the next and previous page of posts.
    • get_the_pagination() and the_pagination() for paginated navigation between pages of posts.
    • Uses paginate_links(). This reduces the need for themes to define their own sets of navigation functions.

Internals

  • Deprecate admin_created_user_subject() [30005] #29915
  • Introduce an edit_form_before_permalink action which gets fired after the title field but before the permalink fields. [30028] #29691
  • In wp_link_pages(), only output link separators between actual pagination links. [30030] #24940
  • Rename _wp_password_hint() to _wp_get_password_hint() to bring it inline with core terminology. [30033] #21243
  • Don’t add sticky class in get_post_class() if ignore_sticky_posts query var is set. [30036] #18035
  • Don’t display Standard post format twice in 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. box if the theme unnecessarily mentions it in the add_theme_support() call. [30038] #16555
  • Add comment_reply_link_args 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. for get_comment_reply_link() arguments. [30039] #10569
  • Allow slug param of get_terms() to accept an array. [30042] #23636
  • Introduce orderby=include support for get_terms(). [30052] #23261
  • Remove UNIQUE key from slug column of terms table. [30056] #22023
  • Add wp_json_encode(), a wrapper for json_encode() that ensures everything is converted to UTF-8. Change all core calls from json_encode() to wp_json_encode(). [30055] #28786
  • Introduce wp_is_trusted_network(). A first step to establish concepts around trusted and untrusted networks. [30071] #30145
  • Don’t hardcode height for videos – this was a workaround for MediaElement internals causing problems. Responsive videos now work properly and don’t cause extra whitespace. [30082] #30078
  • Introduce some actions and filters which aid plugins in revisioning post meta. [30091] #20564

Queries

  • Allow ORDER BY in WP_Comment_Query::query() to be disabled. [30004] #29902 DisableORDER BY by passing boolean false, an empty array, or the string none to the orderbyparameter. This mirrors the behavior of WP_Query.
  • Accept orderby=include in WP_User_Query. [30016] #30064 This lets the results of a user query be sorted manually by the value of the include param.
  • Fix count in WP_Comment_Query when using meta_query. [30026] #23369
  • Optimize site query when performing networknetwork (versus site, blog) database upgrades [30029] #30097
  • Improve WP_Tax_Query param sanitization for empty strings. [30031] #30117
  • Support multiple status values in WP_Comment_Query. [30084] #29612

Thanks to @peterwilsoncc, @iamtakashi, @nacin, @mnelson4, @afercia, @psycleuk, @rianrietveld, @davidakennedy, @celloexpressions, @DrewAPicture, @jipmoors, @ipm-frommen, @mattwiebe, @avryl, @heshiming, @desaiuditd, @ankit-k-gupta, @captaintheme, @marcosf, @obenland, @tmtrademark, @briandichiara, @tareq1988, @jakub.tyrcha, @johneckman, @kosvrouvas, @ptahdunbar, @nacin, @pushplaybang, @joedolson, @aaroncampbell, @jfarthing84, @dlh, @danielbachhuber, @wpsmith, @hotchkissconsulting, @JustinSainton, @jwenerd, @wonderboymusic, @tollmanz, @chrisbliss18, @joostdevalk, @TobiasBg, @nofearinc, @karpstrucking, @ebinnion, @boonebgorges, @mattheu, @adamsilverstein, @momo360modena, @tareq1988 for their core contributions!

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. covered: [29995] to [30093]. For the complete list of commits to 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., check out the log on Trac.

Interested in joining in? Write or test a patch for 4.1.

#4-1, #week-in-core