WordPress Core Weekly

Hello everyone, and welcome to this installment of the WP Weekly Roundup! This edition covers February 11th, 2015 [31411] through February 18h, 2015 [31478].

Right at the top of the list: the release of 4.1.1 rolled out Wednesday. You can read the changelog for full details, but here’s the overview.

WordPress 4.1.1

  • Tag 4.1.1 [31478]
  • Bump $tinymce_version in the 4.1 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".. [31477]
  • Remove errant string. [31475]
  • About: Add changelog for 4.1.1. [31474]
  • Add SVNSVN Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. eol-style = native where missing. [31471]
  • Add eol-style property and normalize EOLs. [31470]
  • Bump 4.1.1 version numbers & dates. [31431]

Media

  • Revert [31198] from the 4.1 branch, as it is an incomplete fix that introduces more problems than the tiny issue it was attempting to solve. [31468] #30725
  • Don’t try to read a non-existent Exif:Title tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) in wp_read_image_metadata(), as it’s not a part of the Exif standard. [31462] #31043
  • Fix the display of Audio and Video in the Media Library when using IE8 and below. [31444] #31058
  • Prevent IE9 and lower displaying the download file dialogue when attempting to upload using the html4 Plupload handler. [31429] [31430] #31037

TinyMCE

  • Fire nodeChanged when an embedded iframeiframe iFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. is resized so we can adjust the editor height and other UIUI User interface components. Props iseulde, [31466] #30646
  • Ensure the image toolbar stays visible when the image is much wider than the editor. Merges [31362] to the 4.1 branch. [31437] #30696
  • Select the iframe element by id. Needed as some browser extensions insert extra elements in the page. Merges [31180] to the 4.1 branch. [31436] #30785

Bundled Themes

  • Update CSSCSS Cascading Style Sheets. rules for .screen-reader-text to be consistent with current 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) guidelines. [31464] #31279
  • Remove URLs from reset credits. Closes #30764. [31454] #30764
  • Replace array_shift() with current() for performance. [31453] #31260

Internals

  • Add inline documentation to clarify the reasoning behind the various conditions that control how WP is loaded. [31463] #30935
  • Improve ‘orderby’ syntax for WP_Comment_Query[31467] #31045, #30478, #31265
  • Replace hardcoded usage of comment-page with the comment pagination base. [31459] #18084
  • Respect ‘default_option’ filters during early sanity checks in add_option() and update_option()[31473] #31047
  • Add $expiration as a parameter to the pre_set_transient_{$transient}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.. [31414] #30576
  • Restore PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 5.2 to Travis CI. [31472] #31244
  • Return a WP_Error if an empty name is provided when registering a post type. [31450] #31134
  • Posts list table: Add a filter to disable the months dropdown. [31438] #30254
  • In paginate_links(), don’t override custom format arguments when setting up default ‘add_args’. [31433] #30831
  • Avoid a PHP Warning when add_args is passed as false to paginate_links(). [31432] #30831

Customize

  • Remove margin for hidden controls. [31460] #31330
  • Don’t focus new widgets if they are added programmatically. [31428] #31295
  • Escape 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. links in the adminadmin (and super admin) menu. Fix usage of add_query_arg(). [31427] #30952
  • Restore showing a login form inside the previewer if an user is logged out. Broken since [31370]. [31421] #31294
  • Widgets: Add return param for widgets admin page to the “Manage in Customizer” link. [31420] #30888
  • Improve [31252] to show the move-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. buttons only if there is more than one rendered sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. [31419] #30690

Query

  • More careful type conversion in WP_Query is_*() methods. [31458] #24674
  • Add tests for some of WP_Query‘s sticky post logic. [31439] #27282

Toolbar

  • Remove title attributes from ‘About WordPress’, ‘Add New’, and ‘My Account’ items. [31456] #31324
  • Add a label for search field on front-end. [31455] #31323
  • Use require_once() to prevent a fatal error if _wp_admin_bar_init() is called twice. [31411] #31287

General

  • Provide a secondary sort order for wp_get_archives() when type=postbypost[31452] #30480
  • Update the default admin color scheme for more unity and refinement.
    This removes the red channel from blues and cools the grays a bit for a more cohesive and purposeful color scheme. [31422] #31234

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.

  • Return a WP_Error if an empty name is provided when registering a taxonomy. [31449] #31135
  • Split shared taxonomy terms on term update.
    When updating an existing taxonomy term that shares its term_id with another term, we generate a new row in wp_terms and associate the updated term_taxonomy_id with the new term. This separates the terms, such that updating the name of one term does not change the name of any others. #5809

Networks and Sites

  • Use get_admin_url() to get the correct My Sites URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org without calling switch_to_blog() directly. [31448] #31314
  • Create the My Sites URL in the context of a user’s primary site.
    Switch to the user’s primary (or active) site before creating the My Sites URL. This previously linked to the current site’s dashboard, even if a user was not a member of that site. [31445] #31314

Administration

  • Use correct default values for some admin template functions. [31446] #31308
  • Rename unused argument and remove obsolete global in iframe_header(). [31443] #31309
  • _list_meta_row() should always return a string. [31442] #31310
  • Terminate JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. statements in two admin files. [31440] #31311
  • Move the (recently added) .notice admin notices below the first H2, same as the .updated and .error notices. Merges [31023] to the 4.1 branch. [31434] #30885
  • Admin menu: Ensure top level menu item keeps hover color when hovering over or focusing on the submenu. [31424] #31275
  • Introduce a logout_redirect filter so the redirect destination can be changed when a user logs out. [31417] #27617

Embeds

  • Use RegEx instead of DOMDocumentwhen protecting <pre> tags in WP_oEmbed::_strip_newlines(). It is incredibly difficult to maintain character encoding and whitespace when parsing viaDOMDocument. [31423] #31214
  • After [31415], make sure str_replace() only occurs once for each matched tag to avoid overwriting until <pre>s. [31416] #31214
  • Protect <pre> tags when parsing oEmbed responses in WP_oEmbed::_strip_newlines() in DOMDocument is available. [31415] #31214
  • oEmbed discovery fails on encoded link URLs: decode HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. chars in the HTML-encoded URLs that are returned. [31413] #31213

Dev Chat Notes

The merge period for Feature Plugins has opened. The two candidates, Customizer Theme Switcher and the revamped Press This were both approved and will be “shepherded” in over the next week.

Also discussed were the possible switch in build tools from CSSJanus to RTLCSS (#31332), using the button element for buttons (instead of <a href="#">) and recruiting release leads for 4.3 and 4.4, with a reminder that this isn’t necessarily a developer position.

Yeah, so, the leads are already thinking about who might lead 4.3 and 4.4. The goal was always to announce these ahead of time, and hopefully see overlap with releases, but if nothing else, the release leadRelease Lead The community member ultimately responsible for the Release. for next major +n can be looking at feature plugins, tracking them, pushing them, etc.

With 4.3 starting development in less than 3 months, now would be the time to throw your hat into the ring. I think, ideally, there is an announcement before 4.2 hits betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.. This wouldn’t be about doing nothing for the next 3 months, but already getting started in terms of laying the groundwork.

If you are interested in leading a release in 2015, now would be the time to say something. Same if you are interested in helping to lead a release in 2015.

Tickets needing a look

These tickets were specifically mentioned by developers looking for assistance or an extra set of eyes:

  • #31218: nav-menu.js menu item added event
  • #27282: WP_Query returns more results when there are sticky posts
  • #17817: do_action/apply_filters/etc. recursion on same filter kills underlying call
  • #31332: RTL CSS generation: Switch from CSSJanus to RTLCSS
  • #23367: Remove message parameters from admin URl’s in the browser address bar
  • #31233: Dismissable admin notices
  • #31251: Show username in wp_dropdown_users when deleting users, not display name
  • #22768: EXIF/IPTC captions should populate caption/post_excerpt on upload, not description/post_content

Thanks to @adamsilverstein, @afercia, @azaozz, @barrykooij, @boonebgorges, @boonebgorges, @clifgriffin, @cweiske, @danielbachhuber, @dd32, @dlh, @DrewAPicture, @GregLone, @helen, @herbmillerjr, @hugobaeta, @Idealien, @ipm-frommen, @iseulde, @jdgrimes, @jeremyfelt, @johnbillio, @johnbillion, @johnjamesjacoby, @jorbin, @lancewillett, @mattheweppelsheimer, @mboynes, @melchoyce, @mgibbs18, @MikeHansenM, @morganestes, @nacin, @netweb, @norcross, @nunomorgadinho, @obenland, @ocean90, @r-a-y, @SergeyBiryukov, @simonwheatley, @sippis, @stevehickeydesign, @tywayne, @tyxla, @webord, @westonruter, and @wonderboymusic for their contributions!

#4-2, #week-in-core

WordPress Core Weekly

Hi Everyone!

It’s time for another run-down of what’s going on in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. This edition covers January 25th, 2015 [31282] through February 3rd, 2015 [31331]. If you’re interested in helping out with these updates, comment below, or pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” @mike on 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/.! There’s a dedicated #core-weekly-update channel and you can even use a super cool script to parse the logs. Without further ado:

Themes

  • Allow version number in the overlay to be selected. [31330] #31205
  • Remove a Chrome workaround that causes theme screenshots to look too crisp and no longer appears to be relevant. [31316] #26584
  • Twenty Fifteen: move RSS icon style rule lower to prevent it from being overridden by other social icon rules. [31283] #31129

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.

  • Ensure that WP_Customize_Setting::value() returns default value for setting if not dirty.
  • Allow WP_Customize_Manager::post_value() to accept a second $default argument.
  • Introduce WP_Customize_Manager::unsanitized_post_values()for accessing previously-private member variable _post_values.
  • Do require_once instead of require for Customizer classes.
  • Add unit tests for WP_Customize_Manager and WP_Customize_Setting. [31329] #28580, #30988

Script Loader

  • Separate the tests for IE conditional comments support in WP_Scripts. [31317] #16024
  • jQuery UIUI User interface: Add jquery-ui-core as dependency forjquery-ui-progressbar. [31322] #31208

Upgrade / Install

  • WP_Upgrader: Remove references to non-existant variables that have never existed. [31327] #29087
  • Remove duplicate label on installation screen. [31282] #31131

Internals

  • Plugins: Remove an unused parameter on install_plugins_upload(). [31326] #28964
  • Widgets: Add widget_nav_menu_args filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. for Custom Menu 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. arguments. [31325] #29463
  • Menus: Don’t display “Move” text without direction if there is only one menu item. [31320] #30765
  • HTTPHTTP HTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.: Fix an issue where the limit_response_size parameter wasn’t working properly with large documents and the cURL transport. [31290] #31172
  • 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.: Exclude wp-includes/class-pop3.php in wp_frontend() to prevent having 25 unused translations. [31315] #31179
  • i18n: Tabs, not spaces for indentation. [31314]
  • Switch to a 403 response code in places where it is more appropriate than a 500 due to permissions errors. [31300] #30927
  • Update readme recommendations. [31291] #31173

WP_Query

  • When using WP_Query’s fields => ids (or fields => id=>parent), make sure the returned result is always an array of integers. [31324] #31194, #27252
  • When querying for a specific post, allow posts with a non-public status to be returned as long as that status is specified.
    This makes it possible to, for example, retrieve a specific post using the p parameter of WP_Query, even if the post is in the 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., by including the post_status=trash parameter. [31321] #29167
  • Improve support for ordering WP_Query results by postmeta.
  • WP_Meta_Query clauses now support a name parameter. [31312] #31045

Posts

  • In get_sample_permalink(), override future status before generating permalink. [31323] #30910
  • In get_adjacent_post(), return private post if the current user has the capacity to read it. [31302] #30911, #30287

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.

  • Introduce show_in_quick_edit parameter + filter for register_taxonomy(). Setting show_in_quick_edit to false when registering a custom taxonomy will hide the taxonomy when editing posts using Quick Edit. [31307] #26948
  • Don’t use term IDs for array indexes when caching object terms. Uncached results pulled from wp_get_object_terms() are zero-indexed (ie 0, 1, 2…). As a result, get_the_terms() was returning a strictly different array when pulling from the cache and when the cache was empty. [31287] #31086
  • Ensure that hierarchical is respected in get_terms() when multiple taxonomies are passed. [31285] #31118
  • Ensure that pad_counts is not discarded when the first of multiple taxonomies passed to get_terms() is non-hierarchical. [31284] #31118

Media

  • Rename $instances to $instance in wp_audio_shortcode() and wp_video_shortcode() for consistency with gallery_shortcode() and wp_playlist_shortcode(). [31305] #31151
  • Pass the current 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. instance ID to post_gallery and post_playlist filters. [31304] [31309] #31151

Build / Test Tools

  • Introduce setExpectedDeprecated() and setExpectedIncorrectUsage() methods to WP_UnitTestCase. [31306] #28486
  • Improve organiation of tax_query and meta_query unit tests. [31286] #26999
  • Add basic unit tests for get_page_of_comment(). [31289] #11334
  • Add unit tests for show_option_all behavior of wp_list_categories(). [31301] #21881
  • Add tests for get_category_parents(). [31299] #30415
  • Add 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. that expects wp_parse_args() to treat true and false in a query string as strings. [31310] #30753

Adminadmin (and super admin)

  • 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 remaining instances of accesskey. [31331] #29715
  • Help/About: Don’t display the Help tab reference in Page Attributes metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. box if Help tab was removed. [31303] #31164
  • Add New User: Remove trailing whitespace from button labels. [31298] #31175
  • Login: Reduce the size of the WordPress logo tap target on log in screen on mobile, to avoid unexpected redirect away from the form. [31318] #31185

Thanks to @afercia, @Ankit K Gupta, @azaozz, @bananastalktome, @boonebgorges, @bswatson, @cyman, @dd32, @dmchale, @DrewAPicture, @ebinnion, @ericlewis, @Funkatronic, @garyc40, @helen, @hlashbrooke, @iamtakashi, @ipm-frommen, @jdgrimes, @jeremyfelt, @johneckman, @joshlevinson, @justincwatt, @kucrut for 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., @lancewillett, @meloniq, @michalzuber, @mzak, @nacin, @ninnypants for the initial patch, @ocean90, @prasoon2211, @rmarks, @SergeyBiryukov, @tomdxw, @tyxla, @valendesigns, @voldemortensen, and @westonruter for their contributions this week!

#4-2, #week-in-core

WordPress Core Weekly

Hi Everyone!

It’s time for another run-down of what’s going on in WordPress coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. This edition covers January 17th, 2015 [31234] through January 25th, 2015 [31281]. If you’re interested in helping out with these updates, comment below, or pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” me on 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/. as @mike! Without further ado:

Adminadmin (and super admin)

  • Menus: Improve accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) of nav menu locations form. [31272] #31090
  • TinyMCE: Correct vertical positioning of the image toolbar when there are several instances of the editor. [31235] #31028

Script Loader

  • jQuery UIUI User interface: Add missing dependencies for puff and scale effects. [31273] #31113

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(), check hierarchy for all $taxonomies before bailing early from parent or child_of. [31276] #31118
  • Introduce ‘childless’ parameter to get_terms(). [31275] #29839
  • Add classes for custom taxonomy terms in get_post_class(). [31271] #16223
  • Introduce ‘parent’ parameter to wp_get_object_terms(). [31270] #15675
  • Better 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. detection for _pad_term_counts(). [31248] #20635
  • Additional orderby values for wp_get_object_terms(). Adds support for ordering by ‘taxonomy’, ‘term_taxonomy_id’, and ‘parent’. [31236] #28688

Bundled Theme

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.

  • Hide the reorder-widgets button when a widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. area is empty. [31255] #27787
  • If there’s only one available sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme., hide the move-widget button. [31252] #30690
  • Replicate behavior from options-reading.php and hide front page options if there are no pages. [31234] #27630

Widgets

  • Display correct title in Archives widget if the type of archive was changed using the widget_archives_dropdown_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.. [31241] #31024

Internals

  • Options: Allow $autoload in add_option() to receive false. [31278] #31119
  • Users: In wp_update_user(), make sure $userdataID is set before using it. [31269] #31097
  • Comments: When a comment fails to insert, remove any 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. characters and try again. [31263] [31264] #21212
  • WP_Date_Query date validation should not fail for hour = 0. [31251] #31067

Thanks to @afercia, @ashfame, @azaozz, @avryl, @boonebgorges, @cais, @celloexpressions, @ChriCo, @Clorith, @dlh, @DrewAPicture, @enej, @floriansimeth, @horike, @joostdekeijzer, @jorbin, @lancewillett, @mikeschinkel, @miqrogroove, @morganestes, @nacin, @nathan_dawson, @obenland, @ocean90, @pento, @SergeyBiryukov, @sillybean, @stevenkword, @theMikeD, and @tyxla for their contributions this week!

#4-2, #week-in-core

WordPress Core Weekly

Hi Everyone!

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

First, a couple quick notes!

Taxonomies

  • Do not create shared taxonomy terms. [30240] #21950; See #5809.
  • Split shared taxonomy terms during term update. [30238] [30239] [30241] #5809
  • Don’t force child_of=0 for non-hierarchical taxonomies in get_terms(). [30265] #30275
  • In get_adjacent_post(), $excluded_terms should check term_id rather than term_taxonom_id. [30263] #29663, #22112.
  • Allow resource_type to be specified in get_ancestors(). Being explicit about resource type (taxonomy vs post_type) allows for the proper resolution of conflicts when a taxonomy and post_type share a slug. [30141] #15029
  • In wp_insert_term(), clean up accidental duplicate terms after insert. [30238] See #22023, #5809.
  • Add some unit tests for is_object_in_term(). These tests check a number of the ways that different kinds of values for $terms (integers that match term_id, strings that match term_id or name or slug) are handled. [30204] #29467
  • In in_object_in_term(), only check numeric string values against term_id. [30205] #29467
  • Introduce term_template param to get_the_taxonomies() to allow theme and pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party authors to specify the formatting on term links as they are parsed into the taxonomy list. [30209] See #27238.
  • Allow duplicate slugs across different post types. [30158] #18962
  • In get_terms(), do not override hierarchical and pad_count when parent is present. The previous behavior resulted in descendant terms being improperly excluded from the results when passing a parent, even when hierarchical had been set to true. [30107] #29815
  • Clean up get_term_by() caching, fix cache key/group modification that was missed in [30073], and update unit tests. [30108] #21760

Twenty Fifteen

  • Use new core navigation tags. [30216] #30189
  • Support for title-tag. [30097] #30146
  • Improve support for customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.. [30274] [30275] #29988; [30230] #30164 #29980; [30272] #30165
  • Improve accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) by clarifying link context #30108 [30208], adding accessible alt text for post thumbnail links. [30231] #30076, and using continue reading links for auto-generated excerpts [30237] #30135.
  • Prevent a flash of visible sub menus before scripts load. [30211] #30056.
  • Detach widgets from the headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. in mobile views. [30243] #30252
  • Improve Styles for playlists [30213] [30269] #30163, user-selected custom colors [30221] #30234, and image alignment for RTL [30222] #30239, and body class for page templates [30100] #23470.
  • Make sure that the edit link will always be right of its icon. [30215] #30171
  • Add a fallback icon for social links where we don’t have an icon. [30212] #30148
  • Use the new archive template tags and make archive template titling simpler. [30236] #30246

Database

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

RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision.

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

Metadata

  • Pass all updated metaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. IDs to filters in update_metadata(). [30140] #11683
  • Unserialize get_metadata() results when key is omitted. [30115] #15030

Queries

Adminadmin (and super admin)

  • Display error message when Media Library upload fails. [30156] [30177] #29891
  • Delete admin_created_user_subject() rather than deprecate. As it was never used as anything more than a callback to a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. before the MU merge, and is only available in user-new.php in multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site, it is safe to remove this function entirely. [30176] #29915

Customizer

  • Improve/introduce Customizer JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. models for Controls, Sections, and Panels, along with a reference. [30102] see #28032, #28579, #28580, #28650, #28709, #29758. Fixes #29529.
  • Improve ColorControl‘s wpColorPicker to update UIUI User interface based on setting changes. Update Twenty Fifteen’s colorScheme control to properly interact with the APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways., using wp.customize.control(). [30126] #30031
  • Add stable sorting for panels, sections and controls in JS. Improve sorting in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher. [30214] #30225
  • Bind input and propertychange events for range input types. [30219] #30223
  • Twenty Fourteen: Make featured content in Customizer contextual to the front page. [30143] #29578

Templates

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

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

Revisions covered: [30094] to [30292]. For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac.

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

#4-1, #week-in-core

Dev Chat Summary, October 29th

https://wordpress.slack.com/archives/core/p1414613658002331

Misses

  • BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1
  • Feature pluginFeature Plugin A plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. merge window

Decisions

  • Beta 1 will happen next Wednesday.
  • One of the betas will be dropped to offset the beta 1 delay.
  • Select 2 will be punted to 4.2 due to touch problems and upstream rewrite concerns.
  • There will be an accessibility bug scrub on Friday. https://make.wordpress.org/accessibility/2014/09/17/wordpress-accessibility-ticket-priorities-for-4-1-early/

Assignments

  • @markjaquith and @avryl will make a 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. to merge Focus.
  • @johnbillion will make a patch to merge Session Manager.

Links Mentioned

https://make.wordpress.org/core/version-4-1-project-schedule/
https://make.wordpress.org/core/2014/10/28/wordcamp-san-fransisco-user-testing-results/
https://github.com/johnbillion/wp-session-manager/pull/14
https://core.trac.wordpress.org/ticket/22229
https://core.trac.wordpress.org/ticket/25277
https://github.com/ivaynberg/select2/issues/1541
https://github.com/helenhousandi/wp-19867-9864/issues/11
https://github.com/ivaynberg/select2/milestones
https://github.com/helenhousandi/wp-19867-9864/
https://make.wordpress.org/core/2014/10/28/twenty-fifteen-chat-summary-october-28/
https://make.wordpress.org/accessibility/2014/09/17/wordpress-accessibility-ticket-priorities-for-4-1-early/
https://make.wordpress.org/core/

Focus 2

mark
I think Focus v2 is ready to be turned into a coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. patch and be merged in. Over the last few days we have been working on making it less “twitchy” and narrowing the circumstances under which focus mode is triggered, so we are sure the user is focused on composition when it happens, instead of transiently moving through the editor or absentmindedly clicking.

Session Manager

nacin
I think the session manager is ready with some minor UIUI User interface tweaks (simplifications, really) and use of the geo IP 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..

johnbillion
Yes the session management UI is in a similar position

johnbillion
I’m hoping to get that in patch form and ready to merge before the weekend

Select 2

johnbillion
@helen @ericlewis Do you have time to look into the touch problems before Friday? I am very tempted to puntpunt Contributors sometimes use the verb "punt" when talking about a ticket. This means it is being pushed out to a future release. This typically occurs for lower priority tickets near the end of the release cycle that don't "make the cut." In this is colloquial usage of the word, it means to delay or equivocate. (It also describes a play in American football where a team essentially passes up on an opportunity, hoping to put themselves in a better position later to try again.) this if we can’t get this merged by early next week, and highly visible touch support problems will prevent it being merged

johnbillion
I think we can circle back Friday during the 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. scrub and make a decision

helen
i am having bad gut feelings myself.

jorbin
I think the work @helen and @ericlewis have done is great, but there are too many unknowns (edited)

rzen
I side with withholding it for just one release. The benefits of waiting (potentially better codebase, more room to test 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), etc) far outweigh the benefits of including now (almost certain rewrites in the very near future, for one)

eric
I’d say cut it. It’s a minor improvement, not a make-or-break feature.

nacin
And with so many other things about to come in, it’s pulling resources in different directions a bit.

helen
“just one release” – i’ve been tinkering with this since february.

rzen
Fair point, very fair point

helen
but i am not worried about cutting it for 4.1. it is frustrating, but not worrisome.

johnbillion
Ok unless the situation with touch support changes in the next few days, we should consider this punted. I have also just been informed that there is a licensing issue which I was unaware of

Twenty Fifteen

johnbillion
Twenty Fifteen is steaming ahead

johnbillion
@obenland @lancewillett @iamtakashi Anything of particular note you’d like to mention?

iandstewart
It’s looking good

iandstewart
@celloexpressions just did a great review

iandstewart
and doubled our ticketticket Created for both bug reports and feature development on the bug tracker. numbers :simple_smile:

celloexpressions
Well, that was just as much as I could do in an hour :simple_smile: but it’s pretty good overall, no huge issues. I’m still thinking about the color schemes implementation

iandstewart
Not much to report on beyond the update here https://make.wordpress.org/core/2014/10/28/twenty-fifteen-chat-summary-october-28/
Make WordPress Core
Twenty Fifteen Chat Summary October 28
Notes for our weekly chat about Twenty Fifteen: Twenty Fifteen continues to feel pretty robust — thanks to everyone who’s been testing the theme, reporting bugs, and contributing to patches with co…

obenland
We had some new template tags land yesterday, I started a ticket for the new `title-tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)` support and will publish a post on that later today

obenland
Also working on adding support for the navigational template tags

PluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and Theme Install

johnbillion
Lastly from me, the proposed updates to the plugin and theme install and update process haven’t had much traction lately, as I’ve already noted, due to @nacin @melchoyce @pento @avryl being busy on other things, but we have mockups and that group are going to plow through it starting this afternoon

johnbillion
So that is still scheduled for 4.1

Feature Plugins

boren
Feature plugins need to be in the beta list. Only one of those discussed here is listed, Focus. /wp-adminadmin (and super admin)/plugin-install.php?tab=beta

nacin
@boren: Roger.

boren
Does that page have a .org analog?

nacin
Negative.

#dev-chat, #meeting-notes

WordPress Core Weekly

Hi everyone!

It’s time for WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Weekly (formerly known as Last Week in WordPress Core) again! There have been suggestions to change the name of these summary posts to stop confusions about being the last week of WordPress.

This updates covers all commits since last week up to today, October 15th. There has been much progress this week with lots of improvements to the WP_*_Query classes, fixes in the adminadmin (and super admin) and of course the introduction of the Twenty Fifteen theme! The complete summary:

Admin

  • Add missing labels to categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. 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. dropdowns. [29870] [29871] #29921
  • Differentiate between 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. and missing admin emails when adding a new site [29877] #17890
  • 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: Do not send a welcome notification when noconfirmation has been flagged [29880] #16235
  • Admin menu: [29898] #29806
    • Fix pinning after resizing the window.
    • Merge the two DOM ready callbacks in common.js
    • Fix the submenus position adjustment on focus.

Editor

  • TinyMCE: fix the ‘wpgallery’ 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 to use a placeholder for galleries when either the ‘wpview’ plugin or wp.mce is not loaded. [29883] #28756
  • Quicktags: move focusing the editor after inserting content to the end of the code blocks. [29884] #29944
  • Editor-expand: reset the editor height after the window is resized. [29886] #29952

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.

  • Change instances of “Theme Customizer” to just “Customizer”, as the Customizer isn’t necessarily theme-specific. [29903] #29947
  • Only POST dirty settings to preview to improve performance. [29905] #29983
  • Don’t trigger a change event if two unchanged object values are equal, second pass. [29907] #26061

Bundled Themes

  • Add an alt attribute with the site title for 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. images linked to the home page. [29842] #15926

Twenty Fifteen

Comments

  • Add aria-describedby attributes to comment_form(). [29846] #24148

External Scripts

  • Update jQuery UIUI User interface to 1.11.1. [29847] #29833
    • Rename all files, remove the jquery.ui. prefix. Add old files to $_old_files.
    • Add and use non-minified files in /src.
    • Add grunt task to minify jQuery UI files.
    • (Non-minified files will not be shipped.)

Language Packs

  • Language packs: Remove translations when deleting a theme or a plugin. [29856] #29860

Internals

  • Handle deficiencies in PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher’s parse_url in older versions of PHP (<5.4.7) in WP_HTTP::make_absolute_url(). [29851] [29850] [29861] #28001, #29886
    • Correctly handle url’s containing url’s in WP_HTTP::make_absolute_url().
    • Correctly support Schemeless URLs in WP_HTTP::make_absolute_url() by respecting the ‘host’ field if present in the relative url.
  • New remove() method and some unit tests for the WP_Error class. @29854 #28092
  • Return an error when adding a term to a non-existent parent. [29867] #29614

Queries

  • Use the primary meta_query clause when parsing orderby in WP_Query. [29855] #16814
  • Introduce support for nested queries in WP_Meta_Query. [29887] #29642
  • Use only LEFT JOINs when a meta_query contains a NOT EXISTS clause. [29890] #29062
  • Introduce support for nested queries in WP_Tax_Query. [29891] #29718 #29738
  • Support EXISTS and NOT EXISTS in WP_Tax_Query. [29896] #29181
  • Support nested tax query syntax in redirect_canonical(). [29901] #29738
  • Avoid redundant table joins in WP_Tax_Query. [29902] #18105

Thanks to @rianrietveld, @tschutter, @netweb, @joedolson, @bramd, @Fab1en, @ocean90, @stephenharris, @boonebgorges, @georgestephanis, @jesin, @afercia, @miqrogroove, @avryl, @mboynes, @transom, @DrewAPicture, @johnrom, @matt, @iandstewart, @iamtakashi, @obenland, @cainm, @kristastevens, @karmatosed, @chellycat, @lancewillett, @kwight, @davidakennedy, @otto42, @jakub.tyrcha, @studionashvegas, @tareq1988, @westonruter for their core contributions!

RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. covered: [29842] to [29907]. For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac.

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

#4-1, #week-in-core

@lancewillett and I will hold a Bundled Theme…

@lancewillett and I will hold a Bundled Theme Office Hour tomorrow, July 11, 2014 1700UTC in #wordpress-themes to clean out all tickets in the 4.0 milestone, starting with enhancements.

Everyone interested is invited to join us! Please feel free to test/review patches prior to tomorrow’s office hours, comment on the tickets etc., everything helps.

#4-0, #bundled-theme, #%f0%9f%91%bb

Last Week(s) in WordPress Core

Hi Everyone! It’s time for another update. This edition covers through Sunday, June 15th, and has taken a while due to travel, but @swissspidy & @designsimply have joined the team, helping to gather the information to bring us up to date. Hopefully this will help these updates be a bit more sustainable over time. If you’re interested in pitching in with these updates as well, please let me know in the comments below!

Especially of note are the first pass of the grid view for the media library, several SSLSSL Secure Sockets Layer. Provides a secure means of sending data over the internet. Used for authenticated and private actions. and oEmbed updates, and a new ‘BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. Testing’ tab on the Plugins screen.

Adminadmin (and super admin)

  • Plugins Screen: Add a new ‘Beta Testing’ tab 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 installation screen, for features as plugins such as Press This. [28749] #28513
  • Media Library: Grid view for the media library, first pass. This is alpha; expect imperfection to start. [28682] #24716

SSL

  • Forcing SSL logins now forces SSL for the entire admin. [28609] #10267
  • Force SSL on the frontend when the home URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org uses 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.. [28610] #27954
  • Force SSL admin when siteurl is explicitly configured with HTTPS. [28674] #27954
  • Use a secure logged_in_cookie when the home URL is forced HTTPS. [28627] #15330
  • Deprecate url_is_accessable_via_ssl(). [28709] #19555

Embeds

  • Read src attribute for the [embed] 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. if the shortcode body is empty. [28559] #24456
  • Add “edit” mode for [embed] and URL media previews. [28752] #28532
  • New wp_embed_register_handler to catch bad YouTube URLs and try correct them. [28652] #24660
  • Add oEmbed support for:
  • Update SlideShare oEmbed regex. [28597] #28380
  • Remove Viddler oEmbed support. [28596] #28379
  • Make it simpler for plugins to register MCE views. [28680] #28458
  • Set shortcode equal to the passed type from default args when calling wp.mce.views.register(). [28689] #28458
  • Improve handling of embed errors/error messages. [28754] #28195

Themes and Templates

  • Add a filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to human_time_diff() to allow more detailed depictions of time differences. [28670] #27271
  • Allow simple modification of sections of the title by adding a wp_title_parts filter to wp_title(). [28669] #17877
  • Add CSSCSS Cascading Style Sheets. rules to ensure that videos will be responsive, regardless of theme. [28650] #28414
  • Replace TEMPLATEPATH and STYLESHEETPATH with get_template_directory() and get_stylesheet_directory(). These constants are now deprecated [28563] #18298
  • Update Twenty Thirteen and Twenty Fourteen to Genericons 3.0.3. [28692] [28693]

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 keyboard accessibility for the media modal. [28607] #23560
  • Add screen reader labels to the date inputs on the post editing screen. [28730] #25461

WP_Query

  • When parsing the main query, if s is set to empty: ?s= and $this->is_main_query() && array_key_exists( 's', $this->query ) – kill the query instead of loading the homepage. This will load the search page with no results. [28612] #11330
  • Kill queries that explicitly pass empty arrays to category__in, tag__in, tag_slug__in, and author__in to WP_Query. [28664] #28099
  • Fix SQL generation when meta_query has an 'relation' => 'OR' for its queries and wants to 'orderby' => 'meta_value'. [28659] #25538
  • Allow users to sort posts by type in WP_Query. [28605] #28214
  • Add access modifiers to WP_User_Query Add magic methods for BC: get(), set(), isset(), unset(), and call(). [28528] #27881, #22234

Internals

  • Wide-reaching changes to do away with many instances of variable-variables. See #27881 for full list of changes.
  • Eliminate use of extract() within WordPress. #22400
  • Fix curly quotes around numbers when applicable. [28721] #8775
  • Only include relevant post authors in WXR exports. [28731] #20206
  • Append the date to $wp_version in the build output, for nightly packages. [28611] #26751.
  • Update wp_insert_comment() and wp_new_comment() with a check for successful database insert. [28672] #28254
  • Use get_pages() instead of a raw SQL query in get_body_class(). [28696] #28159
  • Pre-populate the selected URL or mailto:<email-address> when “Insert/edit link” is clicked. [28705] #19992
  • Live update the menu item title when the user is editing the “Navigation Label” field. [28707] #23076
  • Deprecate get_all_category_ids(). Suggest get_terms() as a replacement. [28679] #21200
  • Deprecate like_escape() and replace with $wpdb->esc_like(). [28711] #10041
  • Redirect edit.php?post_type=attachment to upload.php to avoid an empty list table. [28729] #27951

Formatting

  • Add new function wp_spaces_regexp() to filter for common whitespace characters. [28708] #27588
  • Treat &nbsp; like whitespace by using wp_spaces_regexp() instead of raw regex. [28716] #27588, [28717] #27587, [28718] #23185
  • In wptexturize(), ensure that texturization does not corrupt contents of HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. elements, HTML comments, and smartcode attributes. Adds a variety of unit tests/assertions. [28727] #27602, #12690, #8912
  • Various updates to wptexturize() in [28719] #19308, [28725] #22823, [28726] #20342
  • Allow user to disable texturization. [28715] #19550

TinyMCE:

  • Update TinyMCE to 4.0.28. [28606] #28391, #27941
  • In iOSiOS The operating system used on iPhones and iPads., fix placing the caret at the bottom of longer posts when the keyboard is open and disable resizing on switching editors and on show/hide of the kitchen sinkKitchen Sink When using the WYSIWYG (What You See Is What You Get) editor in WordPress, you can expand the capabilities to allow more options. This expanded area is called the "Kitchen Sink." row. [28626] #28242
  • Fix problems with undo/redo after resizing an image several times. [28614] #28389
  • Fix saving the editor content on switching from Visual to Text. [28576] #28353

Thanks to @aaroncampbell, @adamsilverstein, @alexander.rohmann, @aliso, @atimmer, @avryl, @azaozz, @boonebgorges, @bramd, @celloexpressions, @clifgriffin, @coffee2code, @danielhuesken, @DavidTheMachine, @DeBAAT, @donncha, @DrewAPicture, @eddiemoya, @edwin-at-studiojoyo.com, @ericlewis, @filosofo, @frank-klein, @Funkatronic, @garhdez, @gauravmittal1995, @gcorne, @georgestephanis, @ghost1227, @grahamarmfield, @harrym, @helen, @iamtakashi, @iljoja, @issuu, @ixkaito, @jackreichert, @JanHenkG, @Jayjdk, @jdgrimes, @jeffstieler, @jeremyfelt, @jesin, @jgadbois, @jjeaton, @jkudish, @joedolson, @johnbillion, @johnjamesjacoby, @johnzanussi, @jtsternberg, @kitchin, @knutsp, @kovshenin, @kpdesign, @kraftbj, @kurtpayne, @kwight, @lancewillett, @lessbloat, @markoheijnen, @mdbitz, @MikeHansenMe, @mikemanger, @miqrogroove, @mrmist, @MuViMoTV, @nabil_kadimi, @nacin, @nd987, @Nessworthy, @netweb, @niallkennedy, @ocean90, @obenland, @pdclark, @pento, @purzlbaum, @rclations, @redsweater, @ruudjoyo, @schoenwaldnils, @scribu, @senlin, @SergeyBiryukov, @sharonaustin, @shaunandrews, @simonwheatley, @sixhours, @slimndap, @solarissmoke, @tar.gz, @tillkruess, @topher1kenobe, @torresga, @UmeshSingla, @winterDev, @wonderboymusic, @wpsmith, @zamfeer, and @duck_ for their coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. contributions!

Thanks to @swissspidy & @designsimply for their help with compiling this post.
RevisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. covered: [28528] to [28757]. For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac.

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

#4-0, #week-in-core

Last Week in WordPress Core

Hello there! This is Last Week in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for the week of April 15-April 23. Happy release week, everyone! WordPress 3.9 “Smith” was released last Wednesday! Due to that, fewer commits this week. With a 3.9.1 maintenance release expected this week, changes up to tonight are included below.

Widgets

  • Ensure widgets stay with themes during a theme switch. See [28124]. [28161] #27897
  • Run WP_Editors::enqueue_scripts() on admin_print_footer_scripts priority 1 (later), instead of admin_footer. Fixes incompatibility with 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.. [28187] #27853
  • Remove create_function() from the customizer class to improve HHVM compatibility. [28143] #27805

Theme Installer

  • Restore .zip theme installation by casting wp_count_attachments() before iterating it to avoid a notice when items exist without a mime type. [28139] #27802
  • Prevent customizer headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. image list from listing user images twice when no theme-specified images exist. [28152] #27839
  • Improved URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org routing. [28141] [28147] #27055
  • Proper redirection and action links post-install 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. [28163] #27869

TinyMCE

  • Update the TinyMCE tests to 4.0.21.1. [28138] #27744
  • Fix icons in IE7. [28142] #27829
  • Restore wordpress_adv_hidden editor parameter to enable force-showing the kitchen sinkKitchen Sink When using the WYSIWYG (What You See Is What You Get) editor in WordPress, you can expand the capabilities to allow more options. This expanded area is called the "Kitchen Sink.". [28181] #27963
  • Shrink the font size for the selected item in “Format” dropdown so that it fits in more locales. [28180] #27903
  • Fix the active state of the Link button when an image wrapped in a link is selected. [28185] #27847
  • Don’t trigger the drag-and-drop uploader when selected test is being dragged from one window to another. [28189] #27880
  • Correct positioning when adding a caption to an image that is in a paragraph with other text. [28190] #27922
  • Update the “paste” 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 to the latest development version to fix: [28192] #27909 #27771
    • Correct pasting of Excel tables.
    • Leave TOC Anchors intact during paste.

Playlists

  • Improve styling and fix RTL for playlists. [28172] [28174] #27923; [28173] #27924
  • Alter the layout of the checkboxes in the modal view for Audio/Video Details to allow translations more room to breathe. [28184] #27893
  • Graceful failures for TinyMCE views of video/audio playlists. [28144] #27821
  • Add a compatibility layer in wp-playlist.js to avoid VM errors from MediaElement’s plugin bridge in the TinyMCE views to whitelist file types for native playback. [28171] #27892
  • Refinements for asynchronous rendering in wp.mce.media.PlaylistView. [28182] #27899
  • Keep <tracks> from being filtered out when switching between visual and text editors. [28183] #27915
  • Hide extra tracks field in media modal when adding subtitles. [28169] #27915

Internals

  • Avoid a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher warning during theme background-update checks when there are multiple theme directories registered. [28137] #27815
  • Properly gray out text fields when they are disabled or when they have the disabled class. [28179] #27906
  • Avoid counting all attachments when entering the post|page edit screens. [28191] #27985

Thanks to @avryl, @azaozz, @bobbingwide, @celloexpressions, @dimadin, @feedmeastraycat, @gcorne, @helen, @jjeaton, @johnbillion, @kworthington, @lancewillett, @mcsf, @melchoyce, @nacin, @netweb, @ocean90, @SergeyBiryukov, @smashcut, @westonruter and @wonderboymusic for their help this week!

For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac. We started talking about 4.0 plans this week in the weekly dev meeting. Come chat next Wednesday to continue the discussion, and note if you encounter issues with the new release on trac.

#3-9, #week-in-core

Last Weeks in WordPress Core

Hi! This is a late Last Week in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for the two weeks of March 17-30. Lots going on as we approach RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta)..

BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 3 is out, and you can check out the release post here. There are a few big things that have landed that are included. In particular, please test video and audio playlists by uploading more than one file of either, and check to see if you see any oddities in quote formatting, as much of wptexturize() was revamped.

Adminadmin (and super admin):

  • Theme Installer: Restore the feature 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., improve responsiveness, update router, make ‘Upload Theme’ button more consistent with the admin, and avoid theme-count causing filters to jump. [27636] #27055
  • Theme Installer: Bring keyboard 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) to the theme install screen and theme action buttons. [27804] #27521
  • Dashboard: Restore the update message in the dashboard that was removed in 3.8. [27711] #26664
  • Distraction Free Writing: Allow the fullscreen editor’s content area to be responsive. [27821] #27569
  • Accessibility: Better focus styles for form elements in the admin. [27741] #27173

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

  • Restore highlighting of widgets in preview. [27584] [27702] #27358
  • Use WP_Error for errors, and add handling for when user is missing cap to change widgets or is logged out. [27652] #27419

Themes:

  • Introduce HTML5 caption support: When supported by a theme via add_theme_support( 'html5', 'caption' ), use figure and figcaption instead of div and p. With HTML5 captions, no longer include extra 10 pixels within inline styles. img_caption_shortcode_width is skipped when the theme supports HTML5 captions. [27668] #26642 #9066
  • On attachment pages for audio and video, add support for players. [27622] #27243
  • Default Themes: Improve accessibility for keyboard and voice-over interactions. [27594] #27147 [27606] [27607] #24839
  • Default Themes: Update editor styles for A/V and Galleries. [27638] [27637] [27641] #27462
  • Default Themes: Enable thumbnail support for attachment:audio and attachment:video. Check for theme OR post type support when determining whether to enable Featured ImageFeatured image A featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. UIUI User interface in the admin. [27657] #27460

Media

  • There is no more video-playlist 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.. To use video, it is now [playlist type='video' ...]. Core playlist styles removed; the style attribute is still supported, defaulting to light. [27785] [27812] #27552
  • Only enqueue the media modal image editor within the admin. [27625] #21811
  • Support a caption attribute for audio and video shortcodes. [27640] #27320
  • Create a new file, media-audiovideo.js, to house all of the audio and video JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. code in core, and improve UXUX User experience. [27608] [27631] #27437
  • With Plupload, switch to urlstream upload method when the flash runtime is used in non IE browsers. This ensures cookies are sent but limits the maximum file size that flash can handle. By default only IE9 and older use flash, so it would only affect things if a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party disables the html5 runtime. [27662]
  • Provide a metaboxMetabox A post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. to edit audio metadata (initially from ID3) on the “Edit Media” page. [27862] [27862] [27864] [27869] #27574.

TinyMCE:

  • Update TinyMCE to 4.0.20. [27603] #24067
  • Update tests. It’s now possible to run most TinyMCE tests directly from the cli using PhantomJS. [27679] [27680] #27014
  • Playlist Preview: Support playlist views in TinyMCE. [27640] #27320
  • Edit Image Modal: Bring back some of the advanced settings. [27797] #27366

Internals

  • Masonry: Update Masonry v2/v3 shim from upstream. [27779] [27780] [27781] #27510
  • Texturize: Massive performance improvements (~600% faster); better handling of braces, nbsp, double, and weird spaces; 136 new unit tests. [27839] [27844] #22692
  • Cookie Session Checks:: Only show test cookie warnings on submit as caching/proxies may intercept the test cookie for GET requests. Introduce a new string for when headers are sent and link them to a new Cookies page on the codex. [27859] #27373
  • Object Cache:: Introduce pre_update_option filter, available in update_option(). Allows filtering of any option before its value is (maybe) serialized and updated. [27815] #27504
  • wpautop: Remove select and input from wpautop()‘s HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. blocks list. [27761] #22230
  • Heartbeat: 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. should always receive unslashed data. This affects the privileged hooks; the unprivileged hooks already did so. [27576] #27260
  • Customizer: Use esc_url_raw to escape customizer URLURL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org settings to prevent double encoding. [27574] #26569
  • Template: Encode spaces in get_template_directory_uri() and get_stylesheet_directory_uri(). [27710] #21969
  • Filesystem: Fix getchmod() for direct and ssh2 transports, for directories. [27566] #26598
  • Text/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. Cleanup: Many text changes and updates. Check out all of them in the full log on Trac.
  • i18n: In is_serialized(), use substr() rather than array access, for compatibility with multibyte overloading. [27565] #18007
  • Postmeta: Return false from metadata_exists() if the get_$type_metadata filter returns a false value. [27562] #22746
  • Pagination: Introduce before_page_number and after_page_number arguments for paginate_links(). [27600] #24709
  • E-mail: Always decode special characters for email subjects. [27801] #25346
  • WP Class: Add post_parent to the private query vars list. Fixes detached media queries. [27782] #27532.
  • Post: Use wp_parse_id_list() when parsing exclude_tree in get_pages(). Ensure a URL string, array with string as value, and array with array as value for exclude_tree can be used to specify multiple IDs. [27767] #9153

WP_Query

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:

  • Introduce a ms_site_not_found filter to replace NOBLOGREDIRECT. Bail if there’s no site. [27663] #21143; #27003
  • In multisite load, cache the main site lookup query. [27664] #27003
  • Ensure the $path is trailing-slashed in domain_exists(). [27717] #20589

For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac. Interested in helping close out the release? Write or test a patch for 3.9.

Thanks to @adamsilverstein, @adelval, @afercia, @aliso, @aubreypwd, @avryl, @azaozz, @barry, @bcworkz, @celloexpressions, @cgaffga, @Chouby, @chriseverson, @chrisguitarguy, @cramdesign, @danielbachhuber, @dannydehaan, @DavidAnderson, @DrewAPicture, @drozdz, @dustyf, @eatingrules, @ehg, @eightface, @ejdanderson, @eliorivero, @empireoflight, @ericlewis, @ericmann, @ethitter, @fahmiadib, @frank-klein, @gcorne, @grahamarmfield, @GregLone, @hakre, @helen, @jackreichert, @janw.oostendorp, @jartes, @jbkkd, @jdgrimes, @jeremyfelt, @joedolson, @johnbillion, @jorbin, @kawauso, @kovshenin, @kpdesign, @kwight, @lancewillett, @lkwdwrd, @markjaquith, @mattheu, @mattonomics, @matveb, @mauryaratan, @mcsf, @melchoyce, @MikeHansenMe, @miqrogroove, @mordauk, @nacin, @Nao, @Nessworthy, @nofearinc, @obenland, @ocean90, @paulwilde, @pavelevap, @pbearne, @philiparthurmoore, @prettyboymp, @raamdev, @rachelbaker, @ramonchiara, @roothorick, @ryelle, @sabreuse, @sandyr, @SergeyBiryukov, @shahpranaf, @siobhyb, @spmlucas, @stevenkword, @tbrams, @tlovett1, @TobiasBg, @tomauger, @Toru, @vanillalounge, @westonruter, @wonderboymusic, @xknown, and @yoavf for their efforts!

#3-9, #week-in-core