Dev Chat Summary: August 31 (4.7 week 2)

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

Holidays & Scheduling

  • Reminder to announce meeting moves or cancellations (e.g., Monday is US Labor Day holiday, Monday after is Eid al Adha)

Update on 4.6.1

  • 4.6.1-RC1 planned for release tomorrow (Thursday, September 1). Provides a nice window for testing before the planned release date of September 7.
  • Status:

#36335: Autoloader and #37699: Globals

  • Discussion framing: see these as being feature projects in their own right, examples of when features can’t be actual plugins and why it’s better to think of them as projects. How can these be worked on effectively?
  • Discussion:
    • New project on 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 by the repository owner. https://github.com/ that’s a clone of the WP GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/ repo
    • grunt patch allows you to use GitHub PR URLs, which can help facilitate testing for people that prefer using SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. or are using SVN for their trunk installs.
    • TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. + SVN workflow seems to work best when we’re dealing with patches and discussion leading to an individual commit; is probably a pretty poor option without some additional tools.
    • Creating feature branches for wide-ranging work seems to be a better fit and allows for less churn of the code in trunk at the same time as other major work.
    • Nice to review & collaborate on a big feature on a GitHub feature 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". as opposed to wrangling conflicting and amending patches on Trac
  • Suggestion to @wonderboymusic: fork @jorbin‘s GitHub mirror, use GH issues and develop in various branches as makes sense (or even separate forks entirely if issues become unwieldy across very different projects), and use PRs to run existing CI setup. PRs can then be used as patches in grunt patch
    • If treated as a feature project, all of that project’s management happens wherever the lead feels best serves that project. There should also be weekly meetings with updates posted on Make/CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. @wonderboymusic to determine a meeting time and post about it next week.
    • @wonderboymusic@helen in agreement on approach; GitHub repo created
  • Related question: How do we determine what sort of tasks should be feature projects? Who decides that? And when?
    • Some things to think about – is it a lot of churn? Does it need to span multiple releases and/or is it a “done when it’s done” process? Is there a lot of design and user testing involved? They exist whenever somebody has a thing they believe belongs in core and wants to run with it in that way. Getting feedback is an evolving process.

4.7 Project/Feature Proposals

  • Goal: come out of this with the start of a list of projects and a point person for that project, to be fleshed out with more participants and meeting times over the next week.
  • @johnbillionHTTPSHTTPS 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.
  • @celloexpressions – Customize component project & owner
    • Create page-based nav menus without leaving live preview – #34923@celloexpressions (follow up tickets forthcoming)
    • A new experience for themes in the customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.#37661@celloexpressions
    • Code-editing gateways, via CSSCSS Cascading Style Sheets.#35395@johnregan3
    • Customizer browser history – #28536@westonruter
    • Refactoring sliding panels UIUI User interface#34391@delawski
    • (maybe) Customize transactions (with no UI) – #30937@westonruter
    • will track all of the Customize projects with the weekly Customize component meetings and Make/Core posts usually posted on Thursdays starting this week
  • @krogsgardREST 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/
    • had a productive start on Monday and will have a summary up shortly
  • @boonebgorges – #20875
    • work with cache drop-in authors so that we can start leveraging across WP
  • @davidakennedy – #19627
  • @helen – there needs to be a dedicated theming 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./support team because there will be a Twenty Seventeen; actual details on that next week. There will need to be really robust teams on both the theme and theme support pieces, likely with subteams even.
    • @karmatosed: splitting core themes as a bucket for all theme into, core themes and theme functionality
    • @helen: noting that theme functionality will spill over into other components (media seems incredibly likely)
    • @themiked: interested in theming work, on the API/support side if that’s whats needed
  • @joemcgill – Media focus candidate & owner; will shepherd these through regular #core-images meetings
    • Media library organization improvements (@mike/@joemcgill)
    • Improved full size image optimizations – #37840 (@mike/@joemcgill)
    • Core Media 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.#32417 (@sheri)
    • HTTPS issues (which @johnbillion already mentioned)
    • PDF Thumbnails – #31050 (@markoheijnen)
  • @azaozz – will publish “4.7 editor wishlist” by the end of the week
    • to include Nonce refresh/saving without page reload, and few others
  • @sc0ttkclark – Fields API

Ways YOU Can Help!

  • Please comment below if there are things that didn’t get mentioned that you’d like to lead.
  • Design help and user test coordination (alongside @karmatosed) desired on #37661 by @celloexpressions, please respond if you’re open to help on this.

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

Week in Core, August 23 – 30, 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 [38346-38455]. Here are the highlights:

  • 110 commits
  • 62 contributors
  • 111 tickets created
  • 20 tickets reopened
  • 128 tickets closed

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

Code Changes

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)

  • Hide the “No activity yet” smiley from assistive technologies. [38448] #37511
  • Improve the file upload inputs styling [38435] #35552

Adminadmin (and super admin)

  • Allow WP_Screen to be checked via autoload in convert_to_screen(). [38414] #36335

Administration

  • Underline links in the admin footer for better accessibility. [38347] #37529

Bootstrap

  • Check that ini_get_all() exists before calling it, allows us to work around hosts who disable the function for “security purposes”. [38431] #37680
  • Fix failing external 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. tests after [38411] [38416] #36335
  • After r38409 and r38410, revert r38402 which reverted r38399 [38411] #36335
  • Run composer install after r38409. [38410] #36335
  • Move composer.{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.|lock} into src. [38409] #36335
  • Revert [38399] as it’s broken /build/ and subsequently core.svn.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/ [38402] #36335
  • Autoload classes using a Composer-generated PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 5.2-compatible Autoloader [38399] #36335
  • Exclude more files from the autoloader.classmap in composer.json. [38395] #36335
  • Add composer.lock and src/wp-vendor files. Nothing is using this code yet, just going through the motions. Ignore the files in src/wp-vendor/composer that will explode in PHP 5.2. [38394] #36335
  • Run composer require xrstf/composer-php52 to get the updated suggested version. Change the vendor-dir to wp-vendor. [38393] #36335
  • Exclude some files from the Composer autoload setup via exclude-from-classmap. [38391] #36335
  • Load option.php in wp-settings.php, not in functions.php. [38386] #36335
  • Add a composer.json file to the project. No code relies on it (yet), and no vendor dir is checked in (yet). No autoloader is being used (yet). Taking this first step will hopefully encourage the perfectionists of our world to scrutinize each line [38384] #36335

Build/Test Tools

  • Add support for is_front_page() to assertQueryTrue() and assert that all the tested conditions are supported by the method. [38405] #37849
  • Remove many unnecessary calls to rand_str() which can, in theory, fail at random. Static strings are much more appropriate. [38382] #37371
  • Ensure the Tests_Query_Conditionals tests set up the environment correctly before re-registering initial taxonomies. [38407] #37851
  • Require Basic_Object and Basic_Subclass files earlier in call stack [38445] #37523
  • Add docblocks for Basic_Object and Basic_Subclass classes. [38444] #37523
  • Use shared fixture in comment_exists() tests. [38372] #37842

Comments

  • Don’t do direct SQL query when fetching decendants [38446] #37696
  • Add support for all HTTP protocol versions when returning a 405 from wp-comments-post.php. [38432] #37863

Cron

  • Clarify descriptions for Cron APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. functions. [38357] #37769

Customize

  • Allow users to more seamlessly create page-based nav menus during customization [38436] #34923
  • Circumvent 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. attempting to preview links to static assets (such as uploaded images) [38396] #37828

Database

Docs

  • Alignment after [38369]. [38370] #37770
  • Correct various documentation around object and stdClass types. [38369] #37770
  • Add a missing parenthesis in an example in the DocBlockdocblock (phpdoc, xref, inline docs) for wp_redirect(). [38350] #37770
  • Improve the docs for the_title() and make them more consistent with the_title_attribute(). [38348] #37732

Editor

  • Fix jumpiness on pressing backspace and delete in the Text editor. [38426] #37690
  • Use Beacon API over sync request [38425] #
  • Improve word-count.js documentation. [38358] #37718

Embeds

  • Wp-settings.php loads class-wp-embed.php, which currently produces side effects. Move the global instantiation to wp-settings.php. WP_Embed is then in a file by itself. [38362] #37827
  • Add a missing regex delimiter for Facebook URLs. [38368] #34737
  • Add support for embedding Facebook posts and videos via oEmbed. [38367] #34737
  • Many of our oEmbed providers now default 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. embeds, redirect to the HTTPS oEmbed endpoint, or have complete support for HTTPS even if they don’t default to HTTPS [38366] #28507
  • Always use the HTTPS endpoint for YouTube embeds. The scheme parameter is no longer required as all YouTube assets now use HTTPS. [38365] #36274, #28507

FTPFTP FTP is an acronym for File Transfer Protocol which is a way of moving computer files from one computer to another via the Internet. You can use software, known as a FTP client, to upload files to a server for a WordPress website. https://codex.wordpress.org/FTP_Clients

  • Ensure that there is only one class named ftp, which is what is expected in the loading of this arcane library. This ensures that an autoload generator, something along the lines of Composer, won’t hiccup when it gets to these files. [38380] #36335

Feed

  • Move ‘WP_Feed_Cache’, ‘WP_Feed_Cache_Transient’, WP_SimplePie_File and WP_SimplePie_Sanitize_KSES into their own files via svn cp. If we move forard with autoloading, class-feed.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. class-feed.php is an interesting name: there is no Feed or WP_Feed class. [38354] #37827

Formatting

  • Add a parameter to wp_send_json_error(), wp_send_json_success(), and wp_send_json() for specifying the HTTP response code [38422] #35666
  • For a performance boost in remove_accents(), convert chr() calls to string literals. [38359] #37643

General

  • AJAX actions for List Tables do not need to declare global $wp_list_table. List tables on admin screens are in global scope, and they contain 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. that don’t pass the the list table as context, hence using globals there so that functions can import them. That problem does not exist in the AJAX actions, which are virtually impossible to hook into as is. [38455] #37699
  • Move _WP_List_Table_Compat into its own file. [38392] #37827
  • There is no good reason for class-wp-site-icon.php to drop a global instance of itself whenever the file is loaded. The lone use of the global instance of WP_Site_Icon is in an AJAX action that provides virtually no way to override – the file is loaded immediately before the global is used. [38355] #37699
  • Correct the documentation for the wp_dropdown_users_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. description and its parameters. [38406] #37770
  • After r38303, replace usage of global $_wp_additional_image_sizes with wp_get_additional_image_sizes(). [38383] #37699
  • Move WP_Session_Tokens and WP_User_Meta_Session_Tokens into their own files via svn cp. If we move forard with autoloading, session.php is useless. We could even remove it now, and just load these new files in wp-settings.php. That can be decided post-mortem. [38353] #37827
  • Move WP_Text_Diff_Renderer_inline (behold that lowercase “i”) and WP_Text_Diff_Renderer_Table into their own files via svn cp. [38352] #37827
  • Break up class-IXR.php into individual class files. [38389] #37827
  • After [38399], update the .gitignore file accordingly. [38401] #36335

HTTP API

  • Accept non-string values in cookies, fixing a 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. since 4.5. [38430] #37768
  • Handle an edgecase within the URI parsing library included in Requests, where if a double slash exists at the start of the path the URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org is passed to cURL malformed. [38429] #37733
  • Separate the test for wp_parse_url() with -1 as its component into a separate test, so the remaining tests can use strict type checking. This helps avoid gotches with the potentially empty values (ie. null) that we’re testing for. [38453] #36356
  • The tests for wp_parse_url() can’t be strict on type because this causes the tests to fail on PHP 5.2 which, bizarrely, returns the results of parse_url() (when called with a $component parameter) in a different order to later PHP versions. [38452] #36356
  • Prevent a fatal error on PHP < 5.4.7 due to changes introduced in [38449]. [38450] #36356
  • Add a $component parameter to wp_parse_url() to give it parity with PHP’s parse_url() function. [38449] #36356

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

  • Correct various instances of incorrect usage of esc_attr_e(). [38424] #37457Iimprove accuracy of docs. [38360] #37585
  • After r38364, check that global $wp_locale is an instance of WP_Locale before calling ->is_rtle() in is_rtl(). [38438] #37827
  • Retire another remaining wp-includes/locale.php require, and instead load the required WP_Locale class directly. [38404] #37827
  • Move is_rtl() to l10n.php (which loads way earlier). Load WP_Locale file in wp-settings.php. Retire wp-includes/locale.php – it only loaded the class and the one function, is_rtl(). If someone loaded this file for fun somewhere else, it would be a fatal error. [38364] #37827

Load

  • Move WP_MatchesMapRegex into its own file. [38376] #37827
  • Remove class-feed.php (There is no class named Feed or WP_Feed, it just loads other classes) and, instead, move the require calls to the only place they are ever included: inside fetch_feed(). This simplifies the include path. [38374] #36335
  • Remove session.php and, instead, move the 2 require calls to wp-settings.php. This simplifies the include path. [38373] #36335
  • Load class-phpass.php (PasswordHash class) early in wp-settings.php, instead of require_once()’ing it in several places. [38371] #36335
  • Move is_wp_error() to load.php so that WP_Error is in a file by itself. [38363] #37827

Media

  • Add a $wp_error parameter to wp_insert_attachment() to give it parity with wp_insert_post(). [38408] #37813

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

  • Move get_current_site() to load.php so that it can be used in more places, instead of importing global $current_site. [38388] #37699

OEmbed

  • Add unit tests. @group external-oembed is not run by default. [38454] #32360
  • Move _wp_oembed_get_object() to embed.php, where all of the other embed functions live. WP_oEmbed is then in a file by itself. Load class-oembed.php in wp-settings.php and remove extraneous include calls. [38361] #37827

Permalinks

  • Correct an 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. peramstructure 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 a test. [38417] #37858

Post Thumbnails

  • Prevent post thumbnail previews from spilling into other images [38433] #37697

Posts, Post Types

  • Introduce a missing private query var that should have been introduced as part of #15459 [38451] #15459, #34982
  • Don’t improperly cast IDs when fetching post, user, or term objects. [38381] #37738

Press This

  • The file for the WP_Press_This class should not produce side effects. Similar to what we did in r38355 for WP_Site_Icon, drop the instances of global instantiation for $wp_press_this via loading the file. The variable can be set inline when necessary. In most of those places, if the global is already set, the file does not load and stomp it currently. [38397] #37699

Query

  • Add and improve tests for query conditionals on the front page and home page. [38413] #37851
  • Collapse several of the is_* methods using __call(). Add method annotations. [38356] #37830
  • Move WP_Query into its own file via svn cp. [38351] #37827

Role/Capabilitycapability capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability).

  • Only users who can manage options should be able to trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days./delete the page for posts or the front page, as they are the only users who can restore it or subsequently alter the “Front page displays” setting. [38378] #37580
  • Set a property, $db, on WP_Roles to reduce global imports. [38387] #37699

Script Loader

Security

  • Return a 403 instead of a 200 HTTP status when check_ajax_referer() fails [38421] #36362
  • Trigger a _doing_it_wrong() when check_ajax_referer() is called without its first parameter. This brings it inline with check_admin_referer(). [38420] #36361

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.

  • Remove unnecessary uniqueness check in get_attachment_taxonomies(). [38437] #37368
  • Eliminate unnecessary variable in WP_Term_Query. [38377] #37544

Themes

  • Correct the type for the $name parameter of the get_header, get_footer, get_sidebar, and get_template_part_{$slug} hooks. [38434] #37770
  • Correct the list of possible values for the dynamic portion of the {$type}_template_hierarchy and {$type}_template filters. [38428] #14310
  • Introduce tests for the theme template hierarchy. [38419] #14310
  • Update filter names in the inline documentation for the get_*_template() functions. [38418] #14310, #37770
  • Remove failing tests introduced in [38390]. [38403] #14310
  • Begin introducing unit tests for the expected theme template hierarchy. More to come. [38390] #14310
  • Make the template hierarchy for a given template type filterable [38385] #14310

TinyMCE

  • Change the default font for the vi 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. to the same stack as he_IL. [38427] #37755
  • Fix toolbars alignment in RTL. [38349] #37760

Unit tests

  • Enforce $args object in wp_nav_menu() & Walker_Nav_Menu [38400] #24587

Upgrade/Install

  • Don’t display PHP errors during installation [38423] #37358
  • After [37687], fix the number of params passed to the upgrade hooks [38415] #37731
  • Wp-admin/includes/class-wp-upgrader-skins.php is unused, remove it. All of the same includes are loaded in class-wp-upgrader.php. [38379] #37827

Props

Thanks to @afercia, @Akeif, @andizer, @Ankit, @azaozz, @boonebgorges, @celloexpressions, @Chaos, @danielkanchev, @dd32, @deeptiboddapati, @diagnose, @DrewAPicture, @DylanAuty, @Engine, @flixos90, @fo, @Frank, @Frozzare, @GaryJ, @gitlost, @grapplerulrich, @Gupta, @helping, @henrywright, @ionutst, @iseulde, @issue, @ixkaito, @JakePT, @jipmoors, @joemcgill, @johnbillion, @JohnPBloch, @jrf, @K, @Klein, @kraftbj, @mapk, @melchoyce, @mrahmadawais, @nmt90, @ocean90, @pento, @peterwilsoncc, @Presskopp, @Rarst, @rodrigosprimo, @SergeyBiryukov, @shayanys, @stephenharris, @swisspidy, @swissspidy, @this, @TimothyBlynJacobs, @tnash, @to, @tollmanz, @valendesigns, @westonruter, @wonderboymusic, and @zsusag for their contributions!

#4-7, #week-in-core

Week in Core, August 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 [38274-38345]. Here are the highlights:

  • 72 commits
  • 40 contributors
  • 100 tickets created
  • 9 tickets reopened
  • 96 tickets closed

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

Code Changes

Administration

  • Allow for .nav-tab-wrapper class to be used on elements other than h3 to increase flexibility for custom settings pages. [38306] #37257

AJAX

  • add a new function, wp_doing_ajax(), which can replace… (wait for it…) DOING_AJAX checks via the constant. [38334] #25669

Bootstrap/Load

  • Include 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. 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. via require_once. [38282] #37707

Cache

  • in WP_Object_Cache, $cache_misses is public, but $cache_hits is private. They should both be public, because they’re useful for debugging purposes. [38335] #37726

Comments

  • in wp_handle_comment_submission(), $_wp_unfiltered_html_comment is passed as part of $comment_data, but is not used locally. [38313] #37771
  • in WP_Comment_Query::fill_descendants(), continue if there is an empty array in 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. [38298] #37416
  • in WP_Comment_Query::fill_descendants(), compute count() in the first for expression so that it does not run on each iteration. [38297] #37416

Customize

  • Ensure a newly-added custom link nav menu item has the appropriate CSSCSS Cascading Style Sheets. class names. [38301] #37575

Database

  • WP_Network, WP_Network_Query, and WP_Site_Query call wpdb::_escape(), thus requiring it to be public. It previously had no access modifier. _ at the beginning of a method, believe it or not, does not enforce visibility constraints. [38314] #37771

Docs

  • Update jsdoc in customize-nav-menus.js to remove references to Menu 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. plugin. Also fix @param for updateAssignedLocationsInSectionTitle. [38300] #37520
  • Update outdated phpdocPHPDoc (docblock, inline docs) for WP_Customize_Manager::validate_setting_values() to reflect changes in [37942]. [38299] #37247, #37759
  • Correct usage examples for wpdb::prepare(), which should not be called statically. [38289] #37744
  • Fix typo in load_plugin_textdomain() parameter description. [38284] #37318

Embeds

  • In get_oembed_endpoint_url(), avoid inadvertent stomping of the $format parameter passed to oembed_endpoint_url filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.. [38321] #37751

External Libraries

  • Update minified version of jquery.masonry.js. Merge of [38276] and [38281] to the 4.6 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".. [38339] #37720, #37666
  • Update to Requests master (fb5b517) which corrects a logic inversion in the cURL transport checks. Merge of [38274] to the 4.6 branch. [38338] #37700
  • Fix jshint of Gruntfile.js. Introduced in [38276] [38281] #37720
  • Update Minified version of jquery.masonry.js [38276] #37720, #37666

General

  • remove variable set needlessly in wp_check_jsonp_callback(). [38308] #37771

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.

  • Standardize naming of dynamic hooks to use interpolation vs concatenation. [38307] #37748

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.

  • in WP_HTTP_Response, the @param declarations for $status and $headers were swapped. Let us correct this. [38315] #37771

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

  • Add translator comments for strings in wp-includes/functions.wp-scripts.php. [38345] #37803
  • Add translator comments for strings in wp-includes/functions.php. [38344] #37802
  • Add translator comments for strings in wp-includes/deprecated.php. [38343] #37797
  • Add translator comments for strings in wp-includes/class-walker-comment.php. [38342] #37796
  • Add translator comments for strings in wp-includes/author-template.php. [38341] #37795
  • Add translator comments for strings in wp-includes/admin-bar.php. [38340] #37794
  • Remove unnecessary context for two strings on “Add New User” screen. [38329] #37784
  • Remove unnecessary context in wp_post_revision_title_expanded(). [38327] #37781
  • Use a consistent context for “Add New” submenu strings in adminadmin (and super admin) bar (Toolbar). [38326] #37780
  • Allow for WordPress Plugin/Theme Directory URLs to be localized. [38325] #37501
  • Replace unnecessary context with translator comments in wp_post_revision_title() and wp_post_revision_title_expanded(). [38324] #37778
  • Replace unnecessary context with a translator comment for %s Sites string in network_step1(). [38323] #37777
  • Replace unnecessary context with a translator comment for %s KB string on Networknetwork (versus site, blog) Settings screen. [38322] #37496
  • Add translator comments for Edit Site: %s string in network admin. [38320] #37776

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.

Login

  • retrieve_password() does not need to import 2 globals that it does not use. [38304] #37699

Mail

  • If post-by-email functionality is disabled, wp-mail.php should return a 403 Forbidden status code instead if 500 Internal Server Error. [38332] #37572
  • Don’t set Sender field when setting From. Merges [38286] to the 4.6 branch. [38287] #37736
  • Don’t set Sender field when setting From. [38286] #37736

Media

  • remove function_exists() call for ini_get() in _load_image_to_edit_path(). [38333] #37681
  • remove unnecessary variable assignment in gallery_shortcode(). [38309] #37771
  • add a function, wp_get_additional_image_sizes(), that wraps the retrieval of the global $_wp_additional_image_sizes. Removes 6 global imports. [38303] #37699
  • fix 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. after [38296].
  • use wp_get_attachment_metadata() instead of get_post_meta() where appropriate. [38296] #36246
  • wp_get_attachment_link() fails to output text for non-images if the attachment post doesn’t have a title and $text (argument #5) was not passed to the func. In this case, use the filename. [38295] #5, #37343
  • when calling pathinfo(), also pass a PATHINFO_* constant to avoid array notices for unset keys. [38294] #37608
  • Add some docs to media-gallery.js RIP. [38293] #37717

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

  • Fix copy/paste issue in id attribute for a dismissible message on Sites screen. [38305] #37764

Nav Menus

  • remove unnecessary variable assignment in wp_nav_menu_item_post_type_meta_box(). [38311] #37771

Query

  • use correct description in the docblockdocblock (phpdoc, xref, inline docs) for $number in WP_Comment_Query, WP_Network_Query, and WP_Site_Query. [38336] #37621
  • Non-scalar and negative values for ‘p’ should always result in a 404. [38288] #33372
  • use composition for $db in WP_Date_Query, removes need to import global $wpdb in multiple methods. [38280] #37699
  • use composition for $db in WP_Query, removes need to import global $wpdb in multiple methods. [38279] #37699
  • add a protected field, $db, (composition, as it were) to WP_*_Query classes to hold the value for the database abstraction, instead of importing the global $wpdb into every method that uses it. Reduces the number of global imports by 32. [38275] #37699

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/

  • remove unnecessary variable assignments in rest_handle_options_request(). [38310] #37771

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.

  • in get_terms(), do not assume that legacy args are being passed when the only params are top-level meta_* values. Add keys in WP_Term_Query::__construct(). Adds unit tests. [38337] #37568
  • remove unnecessary break in WP_Term::__get(). [38312] #37771
  • In is_object_in_term(), return error object rather than caching it. [38277] #32044, #36814, #37721
  • Allow attachment taxonomies to be fetched as objects. [38292] #37368

Tests

  • Fix incorrect variable name from [38330]. [38331] #37630
  • Attachment create() method should match signature of other create() methods. Legacy argument format continues to be accepted. [38330] #37630
  • Move some utility classes to their own files. [38285] #37523
  • skip checking the value in Tests_User:test_user_properties for db. Casting to array is not the most elegant thing here, and various versions of PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher key protected/private fields differently when objects are cast. [38278] #37699
  • Introduce tests for get_attachment_taxonomies(). [38291] #37368
  • Introduce tests for get_object_taxonomies(). [38290] #37368
  • Add wordpress-importer tests demonstrating slashed data behavior. [38283] #21007

TinyMCE

  • make sure the temporary id is removed when using the default image dialog and inserting an external image. [38328] #37467

Users

  • after [38317], use a @property annotation, instead of a public field. [38319] #37771
  • $user_level has been publicly-accessed on instances of WP_User since version 2.0, but is has never been declared. [38317] #37771

Widgets

  • $option_name and $alt_option_name have been used as members ever since WP_Widget became an object in 2.8, but never declared. [38318] #37771

Props

Thanks to @afercia, @Akeif, @azaozz, @bcole808, @boonebgorges, @Clorith, @codemovementpk, @danhgilmore, @danielbachhuber, @dd32, @deremohan, @dlh, @DrewAPicture, @flixos90, @fomenkoandrey, @Frank, @gma992, @henrywright, @iandunn, @imath, @JaworskiMatt, @jipmoors, @Jonnyauk, @jorbin, @JorritSchippers, @Klein, @kouratoras, @Mte90, @Presskopp, @ramiy, @rpayne7264, @sebastianpisula, @SergeyBiryukov, @swissspidy, @tivnet, @TJNowell, @tomdxw, @vishalkakadiya, @westonruter, and @wonderboymusic for their contributions!

#4-6, #week-in-core

Week in Core, August 9 – 16, 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 [38239-38274]. Here are the highlights:

  • 35 commits
  • 38 contributors
  • 73 tickets created
  • 7 tickets reopened
  • 52 tickets closed
  • WordPress 4.6 released 🎉

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

Code Changes

Bootstrap/Load

  • Bootstrap/Load: Revert 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. Global restoration around advance-cache.php. [38251] [38252] #36819

Build/Test Tools

  • Build/Test Tools: Ensure PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 7.1 is tested on Travis.[38273] #37625

Export

External Libraries

General

  • Docs: Replace some more 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. links with 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.. [38239] #37622, #36993

Help/About

  • Add release video and move images to CDN. [38267] [38268] #37246
  • Third pass for 4.6. Adjust strings. Make strings translatable. Improve margin between copy and images. [38244] #37246
  • Enhance responsive images. [38257] [38258] #35030, #37246
  • Fix punctuation errors in two strings. [38248] [38249] #37246
  • Updates for 4.6. Merge of [38213], [38215], [38234], and [38244] to the 4.6 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".. [38245] #37246

Import

  • Update/Install error messages: do not escape from the template, escape the error message string before inserting it. [38240] [38241] #37623
  • Correct the documentation for the get_sample_permalink 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., and improve the documentation for the get_sample_permalink() function. [38272] #37682

Post Thumbnails,Post Thumbnails,Post Thumbnails

Script Loader

  • Fix protocol-relative URLs for the preconnect relation type. Props azaozz for review. [38255] #37652

Upgrade/Install

Users

Thanks to @afragen, @azaozz, @azaozz for testing and second sign off, @Clorith, @dd32, @dd32 for review, @dimadin, @DrewAPicture, @DrewAPicture for review, @flixos90, @helen, @hugobaeta, @Ipstenu, @ipstenu for research, @jeremyfelt, @jerrysarcastic, @JerrySarcastic, @joemcgill, @johnbillion, @johnpgreen, @jorbin, @macmanx, @MattyRob, @ocean90, @pento for review, @peterwilsoncc, @petya, @Presskopp, @RoseAppleMedia, @rosso99, @sebastian.pisula for the original patc, @SergeyBiryukov, @stephenharris, @swissspidy, @theMikeD for the initial 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., @voldemortensen, @westi for investigation, and @wonderboymusic for their contributions!

#4-6, #week-in-core

Week in Core, August 2 – 9, 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 [38181-38238]. Here are the highlights:

  • 58 commits
  • 47 contributors
  • 76 tickets created
  • 10 tickets reopened
  • 53 tickets closed

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

Code Changes

Help/ About

Boostrap/ Load

  • Improve forward compatiblity 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. global backup methods [38223-38224] #17817, #17817, #36819

Customize

Dashboard

  • Don’t escape 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. titles in screen reader text [38225-38226] #37595, #37594

Docs

Embeds

  • Fix copy/paste error in WP_oEmbed::_add_provider_early() description. [38230] #37602

Emoji

Formatting

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

  • Correct the documented return types of get_translations_for_domain(). [38198] #32246

Media

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

Plugins

Requests

  • Merge handling for custom 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. methods [38191-38192] #37503

Taxononmy

  • Set WP_Term_Query::terms when returning terms from the cache in WP_Term_Query::get_terms() [38212], [38214] #37591
  • Add unit that shows that WP_Term_Query is broken when the query is read from the cache. [38211] #37591

Themes

Upgrade/ Install

Props

Thanks to @adamsilverstein, @afercia, @Ankit, @azaozz, @boonebgorges, @celloexpressions, @cmillerdev, @dd32, @DrewAPicture, @endocreative, @fliespl, @flixos90, @gitlost, @Gupta, @hugobaeta, @iamfriendly, @Ipstenu, @ivantedja, @jbrinley, @jeremyfelt, @joemcgill, @johnbillion, @jorbin, @juhise, @K, @karmatosed, @macmanx, @mapk, @michael-arestad, @mikeschroder, @nacin, @obenland, @ocean90, @olarmarius, @ovann86, @pento, @peterwilsoncc, @petya, @rahulsprajapati, @ramiy, @rosso99, @SergeyBiryukov, @swissspidy, @vishalkakadiya, @westonruter, @wonderboymusic, and @zetaraffix for their contributions!

#4-6, #week-in-core

Taxonomy bug scrub summary, 2016-05-05

We had a taxonomy component bug scrub today. Slack archive: https://wordpress.slack.com/archives/core/p1462464023003714

Present: @boonebgorges, @helen, @barryceelen, @wonderboymusic. @swissspidy and @jans-1 voiced their opinions via emoji reactions.

We cleared 8 items from the Awaiting Review queue, bringing it down to 35 tickets.

Let’s do this again real soon!

#4-6, #bug-scrub, #taxonomy

Week in Core, April 26 – May 3 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 [37314-37354]. Here are the highlights:

  • 40 commits
  • 33 contributors
  • 78 tickets created
  • 8 tickets reopened
  • 70 tickets closed

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

Code Changes

Administration

  • improve the Star Ratings hiding empty elements for assistive technologies. [37330] #36725
  • This 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. assigns the background color to body instead of the html element. [37321] #35314

Build/Test Tools

  • Include npm prune in the before_script command. npm prune removes extraneous packages so the cache contains only current modules. [37340] #36490
  • Document WP_UnitTestCase->go_to() [37319] #36679

Comments

  • date_query should be a property on WP_Comment_Query objects, nstead of a local variable. [37354] #36741
  • Realign parameter documentation in the DocBlocks for comment_author_email_link() and get_comment_author_email_link(). Also adds a missing return description for get_comment_author_email_link(). [37349] #36571
  • Adjust comment_author_email_link() and get_comment_author_email_link() to each accept a new optional fourth parameter, $comment, which enables overriding the $comment global. Adds tests. [37348] #36571
  • Display the comment counts in wp_dashboard_right_now() in the rare initial condition when there are 0 approved comments and only pending comments, so the AJAX count update could work. [37335] #35519
  • Pass $comment to comment_text() in Walker_Comment::comment() instead of using a function which can skip the cache. [37325] #35433

Customize

  • Handle filtering sidebars_widgets when the underlying option is non-existent. See #36389. Fixes #36660. [37352] #36389, #36660
  • Pass WP_Customize_Setting instance as second argument to customize_value_{$id_base} 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.. [37350] #36452
  • Allow Esc key to collapse the currently-expanded panel, section (or control). [37347] #22237
  • Ensure settings modified during an open save request remain dirty when save request completes. [37346] #32941
  • Increase the target size of the expand/collapse button 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.. [37341] #36093
  • Don’t auto-close the customizer when a new theme is activated. [37339] #35320
  • Remove format placeholders from 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. templates and selectors, fixing a jQuery selector syntax error and the broken highlight/shift-click behaviors. [37322] #36473

Database

  • Set 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 connection collation. [37320] #36649

Docs

  • Improve the class DocBlockdocblock (phpdoc, xref, inline docs) for WP_Widget to clarify which methods “should” vs “must” be overridden by extending sub-classes. [37343] #36703
  • Remove inline @see tags from function, class, and method references in inline docsinline docs (phpdoc, docblock, xref). [37342] #32246
  • Add backtick escaping for two inline code samples in docs. [37338] #32246
  • Standardize on using :: for Class::method() references in WP_Customize_Control inline docs. [37337] #32246
  • Document the @return value of wp_add_trashed_suffix_to_post_name_for_post(). [37334] #36728

Links

  • Rename the $link_id parameter in get_link_to_edit() to $link to better reflect that it can accept a link ID or object. [37353] #36736
  • Clarify documentation for the $link_id parameter to mention that it accepts either an integer or object. [37351] #36736

Plugins

  • In plugin_basename() normalize the file path before unresolving symlinks. [37332] #29154
  • In uninstall_plugin() pass 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. file to wp_register_plugin_realpath(). [37331] #36709

Posts

  • Allow get_page_uri() to be called without a $page argument. [37345] #26284

Query

Tests

  • Ensure that image sizes are indeed removed when errors are raised before assertions in Tests_Media. [37328] #36588
  • Ensure that the GD absrtraction is used for GD unit tests for Images. [37327] #36588
  • Remove debug cruft left over from [34816]. [37344] #17078
  • Reduce unnecessary count in create_many() 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 user tests. [37318] #36566

Themes

Users

Widgets

  • Provide PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 5.2 fallback for spl_object_hash() if disabled in logic for registering and unregistering pre-instantiated widgets. [37333] #28216
  • Allow WP_Widget subclass instances (objects) to be registered/unregistered in addition to WP_Widget subclass names (strings). [37329] #35990, #28216
  • When the Inactive Widgets section is hidden also hide the “Clear Inactive Widgets” button description text. [37323] #35592

Props

Thanks to @afercia, @andy, @boonebgorges, @celloexpressions, @chandrapatel, @DrewAPicture, @ericlewis, @flixos90, @flyingdr, @Frank-Klein, @jdgrimes, @jeremyfelt, @jsternberg, @kjbenk, @martinkrcho, @mdwheele, @michaelarestad, @netweb, @ocean90, @PeterRKnight, @pollett, @purcebr, @r-a-y, @rachelbaker, @SergeyBiryukov, @Shelob9, @tloureiro, @voldemortensen, @vortfu, @websupporter, @welcher, @westonruter, and @wonderboymusic for their contributions!

#4-6, #week-in-core

Week in Core, Apr 19– Apr 26 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 [37254-37314]. 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.

Code Changes

Build/Test Tools

  • Build/Test Tools: Reset the PHPMailer mock in Tests_Mail::tearDown(). [37307] #36609
  • Tests: Use the same incrementor for all fields belonging to a given text fixture. [37299] #35199
  • Don’t announce PR builds in 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/. People may submit a PR to our travis build repo, we shouldn’t notify slack when that happens. [37268] #36607
  • Tests: Allow override of MULTISITE and SUBDOMAIN_INSTALL constants [37266] #36567

Canonical

  • Use get_the_terms() to verify that a post belongs to the requested %category%. The get_the_terms() wrapper provides cache support, and saves a database hit
    on sites with a persistent cache backend. [37262] #36602
  • Tests: After [37260], use WP’s setUpBeforeClass() wrappers. This ensures no leakage between tests of fixture IDs. [37261] #36602
  • Add tests for permastruct containing /%category%/. [37260] #36602

Comments

  •  Add a $comment parameter to get_comment_author_url_link(). Add unit tests (none exist). [37305] #36573
  • Add unordered list styling to Comments List Table rows and Moderate Comment screen. [37304] #36160
  • Keep comments safe in the Edit Post screen. Warns users that have added a new Comment or began editing an existing without saving their changes, before they press the “update” button which would wipe out their comment changes. [37303] #32818
  • Dashboard: toggle the “View” link for comments when Approving / Unapproving from the 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.. [37302] #35518

Database

  • Suppress connection error messages when WP_DEBUG isn’t enabled. This is a partial revert of [35860], which has been causing un-catchable warnings to be generated on some server configurations. [37293] [37292] #36629, #21870

Date/Time

  • Tests: Pre-declare the $year_url property before initialization in Tests_Get_Archives::setUp(). [37271] #36611

Docs

  • Add missing return descriptions for WP_Filesystem_SSH2::chown() and WP_Filesystem_SSH2::run_command(). [37270] #30989
  • Clarify the return descriptions for get_the_time(), get_post_time(), and get_post_modified_time() to specify when an integer in the form of a Unix timestamp should be expected. [37265] #30989
  • Clarify return descriptions in the DocBlocks for set_user_setting() and delete_user_setting(). [37264] #30989
  • Clarify parameter and return descriptions in the DocBlockdocblock (phpdoc, xref, inline docs) for wp_set_all_user_settings(). [37263] #30989
  • Capitalize URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org – an acronym for Uniform Resource Locator – when used in the context of inline docsinline docs (phpdoc, docblock, xref) in wp-includes/link-template.php. [37259] #30406
  • Notate more optional parameter defaults for a variety of function DocBlocks in wp-includes/link-template.php. [37258] #30406
  • Notate optional parameter defaults for a variety of function DocBlocks in wp-includes/link-template.php. [37254] #30406

Editor

  • TinyMCE: prevent showing the placeholder URL when adding a link and clicking more than once on the Insert Link button. [37301] #36637

Emoji

  • Smilies: Move convert_smilies to happen later in the the_content 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.. [37298] #36306
  • The :roll: smiley is now an emoji. [37296] #36365
  • The diversity support test was incorrectly passing on all browsers. [37257] [37256] #36604

Feeds

  • Revert [36230] which removed the rss-http feed content type. Removing this means that any feeds which are using this feed content type are now being served as application/octet-stream instead of text/xml. [37284] [37282] #36620

General

  • Customize/Formatting: Move sanitize_hex_color(), sanitize_hex_color_no_hash(), and maybe_hash_hex_color() from class-wp-customize-manager.php into formatting.php. Adds missing braces. [37283] #33413, #27583
  • Administration: Introduce admin_print_footer_scripts-$hook_suffix", a dynamic version of the admin_print_footer_scripts hook. This is now more consistent with the generic admin_print_scripts and the dynamic admin_print_scripts-$hook_suffix 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. fired in wp-admin/admin-header.php. [37279] #34334

Media

Networks and Sites

  • Tests: Account for flexible IDs in main networknetwork (versus site, blog) deletion test. [37300] #36566
  • Tests: Exclude ms-files test group from default PHPUnit config. [37269] #36566
  • Tests: Add speedTrapListener to 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’s PHPUnit config [37267] #36566, #30017

Posts, Post Types

  • Add parameter documentation for ‘post_category’ to wp_insert_post(). [37255] #36601

Post Thumbnails

  • Fix logic 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. and tests from [37308] where post-thumbnails support wasn’t added if there were no previous post_types with support already. [37313] #22080
  • When using add_theme_support( ‘post-thumbnails’, array( $post_types) ) merge the supported post_types. [37308] #22080

Query

  • Tests: More explicit fixture content when testing s=0 query string. After [36647], the 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. generator sequence can put a 0 into the
    ‘post_excerpt’ field of a post fixture, causing false positives. [37280] #36622

Rewrite Rules

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.

  • Docs: Move the clarification of is_tax() and WP_Query::is_tax() return value added in [37235] to @return description. [37281] #36331

Text Changes

  • Consistently refer to https://wordpress.org/plugins/ and https://wordpress.org/themes/ as WordPress 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. Directory and WordPress Theme Directory, respectively. [37297] #35938

Themes

Upgrade/Install

  • Clear plugin/theme caches directly after a plugin/theme has been updated. This is a follow-up to [34751]. [37272] #34029, #36383

Users

  • Remove the “Name” column of the Users table from appearing sortable. [37314] #28064
  • Docs: Reflect the new 'user' option for wp_new_user_notification()‘s $notify parameter added in [37276] in wp_send_new_user_notifications() docs as well. [37278] #36009
  • Add a unit test for [37276]. [37277] #36009
  • In wp_new_user_notification(), sdd 'user' option for the $notify parameter, which allows for sending notification only to the user created. [37276] #36009

Thanks to @akibjorklund, @alexkingorg, @flixos90, @rachelbaker, @azaozz, @boonebgorges, @davewarfel, @downstairsdev, @DrewAPicture, @flixos90, @grapplerulrich, @helen, @iseulde, @jeremyfelt, @jesin, @jmichaelward, @joemcgill, @johnbillion, @jorbin, @juanfra, @Latz, @mpol, @ocean90, @pbearne, @pento, @polevaultweb, @rachelbaker, @rmccue, @SergeyBiryukov, @spacedmonkey, @swissspidy, @tfrommen, @tollmanz, @Unyson, @welcher, @westonruter, @WiZZarD_, and @wonderboymusic for their contributions!

#4-6, #week-in-core

Week in Core, Apr 5 – Apr 12 2016

Welcome back the latest issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., covering changes [37161-37190]. 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.

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)

  • Remove redundant title attribute from wp_star_rating(). [36092] #35141
  • 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 title attribute from the Publish box. [36053] #35029
  • Remove title attributes from the updates links on 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. and Themes list tables. [36032] #35167
  • Remove title attributes and improve accessibility on the “no-js” Menus screen. [36016] #35134
  • Remove title attributes from the Theme browser. [36015] #35140
  • Improvements for the Authentication Check modal dialog “Close X”. [36014] #35142

Bootstrap/Load

  • In WP::handle_404(), make sure $wp_query->post is a WP_Post object before cloning it. Merges [35994] to the 4.4 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".. [36064] #35013

Canonical

  • Output correct canonical links for paged posts when not using pretty permalinks. [36103] [36096] #34890

Comments

  • Return early from wp_update_comment_count() if there is not a valid post. [36115] #34977
  • Respect approval status when determining comment page count in comments_template().[36041] [36040] #8071, #35068
  • When a comment is submitted, ensure the user_ID element in the array that’s passed 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. gets populated.[36039] [36038] #34997

Customize

Docs

  • Hash notate properties and defaults for the benefit of $args parameter documentation for WP_Customize_Control::__construct(). [36114] #32246
  • Correct a funky docblockdocblock (phpdoc, xref, inline docs) in funky_javascript_fix(). [36111] #32246
  • Improve documentation for wp_admin_css_color(). [36107] #34857
  • Fix typo in a comment in wp_rand(). [36102] #35228
  • Clarify that get_post_types() accepts 'not' as its $operator parameter. [36091] #35225
  • Clarify that wp_filter_object_list() accepts 'not' as its $operator parameter. [36090] #35225
  • Correct @return type for rest_parse_date(). [36086] #35224
  • Correct @return type for count_user_posts(). [36085] #35222
  • Miscellaneous docblock code quality tweaks. [36074] #32246
  • @see != @since. [36073] #32246
  • Properly mark the optional $redirect, $network_wide, and $silent parameters as such in the DocBlock for activate_plugin(). [36072] #32246
  • Add missing @since and properly mark the optional $type parameter as such in the DocBlock for the deprecated get_others_unpublished_posts() function. Introduced in [5707]. [36071] #32246
  • Properly mark the $exclude_zeros parameter in the DocBlock for get_editable_user_ids() as optional. Also [36070] #32246
  • Miscellaneous docblock corrections. [36069] #32246
  • Fix a typo in the 4.4.0 changlog entry in the intermediate_image_sizes_advanced hook doc. [36054] #35190
  • Add missing notations for the optional $tab_index and $extended parameters in the DocBlock for the deprecated the_editor() function. [36033] #32246
  • Add missing parameter and return notations to the DocBlock for the deprecated get_usernumposts() function. [36030] #32246
  • Add documentation to wp-blogblog (versus network, site)-header.php. [36029] #35161
  • Add missing parameter and return notations in the DocBlock for get_profile(). [36028] #32246
  • Properly mark the $classname parameter as optional. [36027] #32246
  • Add missing parameter and return notations to the DocBlock for the deprecated wp_specialchars() function. [36026] #32246
  • Add missing parameter notations and descriptions in the DocBlock for get_link(). [36025] #32246
  • Add missing parameter and return notations in the DocBlock for the deprecated _nc() function. [36024] #32246
  • Add a missing summary, parameter, and return descriptiosn to the DocBlock for the deprecated function, get_linkrating(). [36023] #32246
  • Add a missing notation for the $gmt_time parameter in the DocBlock for spawn_cron(). [36022] #32246
  • Add missing DocBlocks for hash_hmac() and _hash_hmac(). Introduced in [18111]. [36021] #32246
  • Fix inline comment syntax in _mb_strlen(), an internal compat method for mb_strlen(). [36020] #32246
  • Add missing DocBlocks for mb_strlen() and _mb_strlen(). Introduced in [32114]. [36019] #32246
  • Fix inline comment syntax in _mb_substr(), an internal compat method for mb_substr(). [36018] #32246
  • Add missing DocBlocks for mb_substr() and _mb_substr(). Introduced in [17621]. [36017] #32246
  • Add missing parameter and return descriptions to the DocBlocks for _wp_object_name_sort_cb() and _wp_object_count_sort_cb(), both uasort() callbacks. [36013] #32246
  • Add a missing notation for the $context parameter in the DocBlock for _nx_noop(). [36012] #32246
  • Fix the syntax for the get_previous_post_link() DocBlock to ensure it’s read and parsed as such instead of as a multi-line comment. [36011] #32246
  • Add a missing summary, description, and @since version to the DocBlock for wp_redirect_admin_locations(). Introduced in [19880]. [36010] #32246
  • Add a missing notation for the $bookmark_id parameter in the DocBlock for clean_bookmark_cache(). [36009] #32246
  • Fix copy/paste error in wp_remote_retrieve_cookies() description. [36002] #35157

Editor

  • remove the format_for_editor filter from the_editor_content after it runs as the next editor instance on the same page may not need it. [36062] #28403

Embeds

  • Remove RDIO from oEmbed providers RDIO is shutting down. ?https://www.rdio.com/farewell/ [36066] [36007] #35152
  • Don’t show embed discovery link on 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.. [36060] [36059] #35194

External Libraries

Formatting

  • Allow map_deep() to work with object properties containing a reference.[36101]  [36100] #22300, #35058
  • Transform & into & in 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.) attributes. [36037][36036] #35008

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.

  • In wp_maybe_decline_date(), bail early if translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. functions are not available, e.g. in SHORTINIT mode. Merges [35880] to the 4.4 branch. [36063] #34967

Import

Login

Mail

  • Upgrade PHPMailer from 5.2.10 to 5.2.14. The full list of changes is available here: ?https://github.com/PHPMailer/PHPMailer/compare/v5.2.10…v5.2.14 [36083] #35212

Media

  • When creating srcset do not exclude the image size which is in the src attribute even when it is larger than max_srcset_image_width. [36110] #35108
  • Revert [35804]. This change has unintended side effects, notably that media URLs in the adminadmin (and super admin) area now unexpectedly use the https scheme. [36061] #13941, #35120
  • Fix calculations when determining whether to include particular image file in srcset. [36031] #34955

Menus

  • Avoid a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher Notice when a menu contains a now unregistered post type archive. [36095] #34449
  • Bring back line break between menu items. Reverts [34321].[36082] [36081] #35107
  • Avoid a PHP notice when trying to access the post_parent property of hierarchical post type nav menu items. Merges [35876] to the 4.4 branch. [36044] #34446

Permalinks

Posts/Post Types

  • Improve post-filter sanitization of excluded terms in get_adjacent_post(). [36079] #35211

Query

  • Re-initialise any dynamically-added public query vars before running the public query vars test. [36051] [36048] #35115
  • Introduce a 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. which will fail when new public query vars are introduced without also updating the test. [36046] [36045] #35115
  • Remove title from the public query vars list. [36035] [36034] #35115

Shortcodes

  • = is a reserved character in 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. names, mark it as such.[36098] [36097] #34939

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.

  • Force non-public taxonomies to have a query_var of false. [36109] [36108] #35089
  • Pass object ids to delete_* actions. [36080] #35213
  • Move excluded_terms filter in get_adjacent_post(). [36078] #9571, #35211
  • Respect $_wp_suspend_cache_invalidation in clean_object_term_cache(). [36076] #35208
  • Order terms by ‘name’ when populating object term cache. [36057] [36056] #28922, #35180
  • Add current-cat-ancestor class to ancestor items in wp_list_categories(). Pairs nicely with current-cat-parent. [36008] #10676
  • Ensure that wp_list_categories() supports comma-separated lists for ‘exclude’ and ‘exclude_tree’. [36006] [36005] #35156
  • Ensure get_terms() results are unique when using ‘meta_query’. [36004] [36003] #35137

Tests

  • After [36100] use an object style which is compatible with PHP5 get_object_vars(). [36118] [36117] #35058
  • When testing the utf8mb4 charset, ensure that the current 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 server has utf8mb4 support. [36116] #35249
  • Help Tab Order should be based on the Priority Argument. [36104] [36089] #35215, #33941
  • Tests: Use the correct URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in some shortcode tests. [36099] #
  • Move get_adjacent_post() tests to their own file. [36077] #35211
  • Use the default_storage_engine MySQL option on newer MySQL versions. [36055] #34692
  • Correct the public query vars test for the 4.4 branch. [36052] #35115
  • Prevent role capabilitycapability capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability). pollution in Tests_Post_GetPostsByAuthorSql::test_user_has_access_only_to_private_posts_for_certain_post_types(). [36050] #
  • Fix all the things. [36049] #30017, #32394
  • Shave a second off the user capability tests by reusing its user fixtures. [36047] #30017, #32394

Themes

  • Add singular to the list of body classes when viewing a single post object. Adds tests [36112] #35164
  • Break $wp_file_descriptions array into sections and reorder for consistency and readability. [36088] #35223
  • Add taxonomy.php, home.php, front-page.php, date.php, and singular.php to file descriptions. [36087] #35223

Toolbar

  • In Comments link, replace title attribute containing the number of pending comments with a screen reader text. [36093] #34895

Twenty Fifteen

  • Add left margin for lists inside blockquotes in editor-style.css. [36075] #33380

Users

  • Don’t continue checking a password reset key, if the hash is empty. This [36084] #33926
  • When determining whether to show the reassign content option during user delete, don’t rely upon WP_Query as it doesn’t return all forms of content wp_delete_user() operates on. [36106] [36068] #34993

Widgets

  • Remove extra quotes from 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. title in WP_Widget_RSS, accidentally added in [33814]. Merges [35978] to the 4.4 branch. [36067] #34978
  • Add missing closing tag for spinner after [35317]. [36001] #35150

Props

Thanks to @jadpm, @aaroncampbell, @afercia, @ambrosey, @ardathksheyna, @azaozz, @barryceelen, @boluda, @boonebgorges, @danielpataki, @dd32, @diddledan, @DrewAPicture, @ericlewis, @gblsm, @hnle, @igmoweb, @jeff, @jeremyfelt, @joemcgill, @johnbillion, @jorbin, @JPry, @jrchamp, @juanfra, @kiranpotphode, @KrissieV, @kucrut, @marcochiesi, @mark8barnes, @meitar, @morganestes, @mwidmann, @nofearinc, @obenland, @pento, @peterwilsoncc, @rabmalin, @rachelbaker, @ramiy, @salcode, @SergeyBiryukov, @ShinichiN, @skithund, @slushman, @swisssipdy, @swissspidy, @tharsheblows, @TimothyBlynJacobs, @tyxla, @wonderboymusic, @wp-architect, and @yetAnotherDaniel for their contributions!

#4-5, #week-in-core

Week in Core, Mar 8 – Mar 15 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 [36889-37000]. 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.

Code Changes

About

  • Run w-logo-white.png through imagemin. [36929] #35661
  • Improve color contrast of WP Badge text, and update the logo to use the latest version. [36910] #35661

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 accessibility for 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. [36964] #33305
  • Reduce the WordPress shades of grey, Episode 3. [36904] #35783
  • Improve the color contrast ratio of the expandable panel “handles”. [36959] #35923
  • wpLink: fix accessibility issues [36991] #30468

Administration

  • Use admin_url() for “Add New” links in wp-admin/users.php. [36902] #36186
  • Use admin_url() for “Add New” links in wp-admin/upload.php. [36901] #36186

Build/Test Tools

  • Add Automated Tests for custom logo support [36905] #36086, #33755
  • Let’s not reinvent wp_get_attachment_image(). [36914] #36086
  • Update grunt-rtlcss ~1.6.0 → ~2.0.1. [36935] #35104
  • Rename the precommit:core task to precommit:base for clarification. [36955] #35557
  • Introduce 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 unit tests. [36949] #33755, #36086
  • Account for expected attachemnt size in custom logo output. [36911] #36086
  • Update grunt-browserify ~4.0.1 → ~5.0.0 [36979] #35104
  • Update grunt-postcss ~0.7.1 → ~0.8.0 [36978] #35104
  • Revert r36978 [36980] #35104
  • Increase beautificatedness of language in grunt precommit 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. messages. [36924] #35557
  • Improve grunt precommit task [36906] #35557
  • Add grunt prerelease task [36930] #35557

Comments

  • On the Edit Comment screen do not show the permalink for unapproved comments. [36958] #36161

Customize

  • Restore body class removed in [36837] for when custom logo is present. [36903] #33755, #35945
  • Fix persistence of toggles for displayed nav menu item properties. [36908] #35273
  • Reduce vertical space of site icon control. [36907] #35943
  • Only add custom logo’s 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. text control if needed. [36915] #33755
  • Update cropper.js to match changes in [36931] #32783
  • Use full URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org to image to prevent breakage if moved. See #33755. [36948] #33755
  • Rely on selective refresh exclusively for previewing custom logo changes. [36990] #27355, #33755, #36096
  • Bump down the priority custom logo’s control. [36912] #35942
  • Remove selective refresh error message from appearing inline within the preview. [36890] #27355, #36164
  • Remove unused JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. variable to fix jshint error introduced in [36890]. [36892] #36164
  • Correct a unit test for custom icon functionality. [36952] #36086
  • Explicitly set full as the default custom logo size. [36950] #33755

Database

  • Reset connection status variables when the connection is closed. [36997] #36240

Docs

  • The $update_result parameter passed to WP_Automatic_Updater::after_core_update() is never a WP_Error. If an error is returned, the error object lives in the result property of the paramter. [36995] #32246
  • Re-add a @param that went missing in [36993]. [36994] #32246
  • Improvements and corrections for the $ver parameter of the dependencies 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. functions. [36993] #32246
  • Use a third-person singular verb for the get_the_excerpt() DocBlockdocblock (phpdoc, xref, inline docs) summary. [36942] #32246
  • Improve the DocBlock summary for wp_metadata_lazyloader(), introduced in [36566]. [36941] #35816, #35986
  • Improve the usefulness of the DocBlock summary for get_edit_term_link(). [36940] #32246
  • Improve the 4.5.0 changelog entry in the hook doc for the get_archives_link 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., introduced in [36418]. [36939] #35573, #35986
  • Improve the $blog_id parameter description in the DocBlock for the_custom_logo(), introduced in [36698]. [36938] #33755, #35986
  • Improve inline documentation for has_custom_logo(), introduced in [36698]. [36936] #33755, #35986
  • Improve the DocBlock summary for the_embed_site_title(), introduced in [36693]. [36923] #34561, #35986
  • Improve the DocBlock summary for the clean_comment_cache action, introduced in [36405]. [36922] #35610, #35986
  • Improve syntax for the $lengths parameter in the hook doc for the wp_get_comment_fields_max_lengths filter, introduced in [36272]. [36921] #10377, #35986
  • Improve the DocBlock summary for wp_get_comment_fields_max_lengths(), introduced in [36514]. [36920] #10377, #35986
  • Improve the DocBlock summary for wp_queue_comments_for_comment_meta_lazyload(), introduced in [36566]. [36919] #35816, #35986
  • Improve the usefulness of associated reference info in the hook doc for the comments_template_query_args filter, introduced in [36235]. [36918] #34442, #35986
  • Add a missing DocBlock summary for the WP_Scripts->print_html_before property, added in [36633]. [36917] #14853, #35986
  • Improve syntax in the DocBlock for rest_get_server(), introduced in [36529]. [36947] #35329, #35986
  • Use a third-person singular verb in the summary for get_embed_template(), introduced in [36876]. [36963] #34561, #34278, #35986
  • Improve changelog entries added for the delete_term and delete_{$taxonomy} actions in [36080] and a third entry added for the clean_term_cache action in [36399] [36962] #35213, #35611, #35986
  • Improve the summary and return description in the DocBlock for unregister_taxonomy(), introduced in [36243]. [36961] #35227, #35986
  • Use a third-person singular verb for the DocBlock summary for remove_permastruct(), introduced in [36181]. [36960] #35235, #35986
  • Improve two 4.5.0 changelog entries added for the plugins_update_check_locales and themes_update_check_locales filters, introduced in [36630]. [36966] #34937, #35986
  • Correct a typo in the DocBlock summary for get_embed_template(), introduced in [36963]. [36965] #34561, #34278, #35986
  • Update default $size value for get_custom_logo filter after [36950]. [36975] #33755
  • Correct grammar when referring to “a URL” vs “an URL” in several places. [36970] #36218
  • Improve the DocBlock summary for wp_queue_posts_for_term_meta_lazyload(), introduced in [36566]. [36945] #35816, #35986
  • Improve the accuracy of the return description for unregister_post_type(), introduced in [36316]. [36944] #14761, #35986
  • Improve the DocBlock summary for WP::remove_query_var(), introduced in [36177]. [36900] #35234, #35986
  • Standardize file header summary for wp-includes/class-wp-metadata-lazyloader.php. [36899] #35986
  • Improve inline documentation syntax throughout WP_Metadata_Lazyloader, introduced in [36566]. [36898] #35816, #35986
  • Add a missing file header to wp-includes/class-wp-metadata-lazyloader.php, introduced in [36566]. [36897] #35816, #35986
  • Update the return type for get_active_blog_for_user() This is now a WP_Site object. [36895] #32450
  • Update param/return types for WP_Site in ms-blogs.php, get_blog_details() now returns a WP_Site object. clean_blog_cache() is now called with a WP_Site object. [36894] #32450
  • Update the return type for get_current_site() This is now a WP_Network object. [36893] #32246
  • Improve DocBlock syntax for wp_get_upload_dir(), introduced in [36565]. [36925] #34359, #35986

Editor

  • Fix size of the resize handle on RTL sites for HiDPI screens. [36934] #36193
  • Fix Mac keyboard shortcut for distraction free writing. [36973] #36214
  • Hide the Move to TrashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days. link for auto-drafts until they are auto-saved. [36972] #16116
  • Correct and update the Visual and Text editors description in the screen help. [36971] #35479

Embeds

  • Update Twitter oEmbed URL. [36946] #36197
  • Extend the provider list to support moments and timelines from Twitter. [36954] #36197
  • Add support for dai.ly embeds over 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.. [36951] #36189

Emoji

Media

  • Fix typo in test_image_preserves_alpha_on_rotate(). [36998] #30596
  • Media: Fall back to GD when loading URL in HHVM Imagick. [36996] #35973
  • Progressive 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 Imagick; add profiles to whitelist. [36891] #33642, #28634
  • Support Imagick in HHVM. [36916] #35973
  • Merge two error messages and use sprintf() for the method names. [36968] #33642
  • Fix typo introduced in [36887]. [36987] #36230, #36089

Posts, Post Types

  • Call set_url_scheme() consistently on URLs passed through preview_post_link [36926] #35407

Query

  • Ignore search terms consisting of a single dash. [36989] #36195

Rewrite Rules

  • Allow rewrite rules to work in nested WordPress installations on IIS. [36953] #35558

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.

  • Correct @return annotation for wp_set_object_terms() and related functions. [36896] #36182
  • After [36874], rename $term_id to $tag_ID in wp-admin/edit-tag-form.php. [36969] #34988
  • Fix test related to cap check in get_edit_term_link(). [36986] #35922
  • Improve error handling in get_categories(). [36988] #36227

Themes

Tiny MCE

  • Update to 4.3.8, changelog: https://www.tinymce.com/docs/changelog/#version438-march152016. [37000] #36254
  • Remove unused user setting for wpLink. Remove redundant text and variable from wp_link_dialog(). [36985] #33301
  • Add audible confirmation when a link has been selected or inserted in the editor for both the inline dialog and the modal. Do not auto-search when the URL field is empty or already contains an URL. Remove a few redundant tabindex. [36984] #33301
  • When dragging, prevent error when a range cannot be created at the drop location. [36983] #36229
  • When doing undo/redo with keyboard shortcut, do not focus the inline dialog. Cannot do consecutive undo/redo if the focus is moved away from the editor. [36982] #33301
  • Ensure the inline dialog is in preview mode after updating a link from the (advanced) modal. [36977] #33301
  • Tweak the small animation shown while waiting for wpView data to make it sell CPU intensive. [36976] #33525
  • When searching, do not empty the URL input field when using the arrow keys to highlight items. [36974] #33301

Users

  • Add @since entries to wp_authenticate() and its filters now that the $username parameter can also be an email address. [36992] #9568, #35986

 

Thanks to @celloexpressions, @davidakennedy, @drebbitsweb, @hugobaeta, @iamtakashi, @@iseulde, @adamsilverstein, @afercia, @ahockley, @arush, @azaozz, @boonebgorges, @celloexpressions, @Chouby, @claudiosanches, @danielbachhuber, @DrewAPicture, @DuckDagobert, @ericlewis, @iseulde, @jeremyfelt, @joemcgill, @johnbillion, @johnjamesjacoby, @jorbin, @juliobox, @karmatosed, @markoheijnen, @melchoyce, @mikeschroder, @netweb, @niallkennedy, @obenland, @ocean90, @pento, @programmin, @rachelbaker, @RomSocial, @sebastianpisula, @SergeyBiryukov, @swissspidy, @tywayne, @virgodesign, @westonruter, @wido, @WiZZarD_, and @wonderboymusic for their contributions!

#4-5, #week-in-core