Changesets included in Core Weekly posts
Changes between September 23 and November 9, taken from Core Weekly posts. Revisions covered: [29756] to [30292]. For this list of commits, check the log on Trac.
Anything checked off has already been added to the version page in some form, or skipped.
Admin
- If the current user does not have the
delete_postscap on the current post type, don’t list delete or trash as bulk actions for the relevant context of Post list table. [29757] #20175 (@kpdesign) - TinyMCE: when pasting/inserting content before a view, add new paragraph above it and insert the content there. (@kpdesign)
- TinyMCE: Use Tahoma for RTL in general and Arial for Hebrew in editor styles. [29773] #29553 (@kpdesign)
- Fix tapping on the menu in iOS and Android [29770] #29365
- Don’t display an empty comment author IP link on Comments screen. [29774] #29766
- In the form handler logic for
edit-tags.php, don’t redirect until$_REQUEST['paged']has been checked. Allswitchcases (exceptedit) now usebreakinstead ofexit. [29782] #16162 - Show the number of approved comments instead of all comments on the dashboard in the “At a glance” section. [29785] #26738 (@kpdesign)
- First pass at pinning the admin menu on scrolling similarly to how the side metaboxes are pinned on the Edit Post screen. [29835] #29806 (@kpdesign)
- Add classes to form containers on Edit User and taxonomy screens. [29803] [29804] #29348 #28196
- Add default z-index to the admin menu, see [29841] #29806
- Use correct context for “Name” and “Parent” strings on taxonomy screens. Remove unnecessary context for “Slug” and “Description” strings. [29821] #29824
- When switching to the Text editor, make the textarea visible to screen readers. [29815] #29815 (@kpdesign)
- Add a default filter to
title_save_preto avoid extra whitespace. [29801] #19904 (@kpdesign) - Add missing labels to category filter dropdowns. [29870] [29871] #29921
- Differentiate between invalid and missing admin emails when adding a new site [29877] #17890
- Admin menu: Fix pinning after resizing the window. Merge the two DOM ready callbacks in common.js. Fix the submenus position adjustment on focus. [29898] #29806
- Themes: Make “Live Preview” the primary action and “Activate” secondary. [29957] #26899 (@kpdesign)
- Themes: Fix some theme install stylings [29959] #28148 #29556 (@kpdesign)
- Live-update site title in toolbar when changing the corresponding field in General Settings. [29963] #28682
- Allow apostrophes in email addresses when adding users via the Dashboard. [29966] #18039
- Admin menu changes: Fix scrolling the pinned menu with a mouse wheel. Fix pinning when the menu is only slightly taller than the viewport. Disable pinning on IE8, updating CSS top makes it jump when scrolling with a mouse wheel. [29978] #29806
- Add labels to the Personal Options input fields on the user profile editing screen. [30027] #30101
- Display error message when Media Library upload fails. [30156] [30177] #29891 (@kpdesign)
- Delete
admin_created_user_subject()rather than deprecate. As it was never used as anything more than a callback to a filter before the MU merge, and is only available inuser-new.phpin multisite, it is safe to remove this function entirely. [30176] #29915 (@kpdesign)
Editor
- TinyMCE: fix the ‘wpgallery’ plugin to use a placeholder for galleries when either the ‘wpview’ plugin or wp.mce is not loaded. [29883] #28756 (@kpdesign)
- Quicktags: move focusing the editor after inserting content to the end of the code blocks. [29884] #29944 (@kpdesign)
- Editor-expand: reset the editor height after the window is resized. [29886] #29952 (@kpdesign)
- Editor-expand: Better calculation for the caret position when auto-scrolling while typing. Fix auto-scrolling for non-WebKit browsers when the caret is above the top of the editor. [29929] #29954 (@kpdesign)
- TinyMCE: update the default styles: make the font size larger and make it the same size in tables. [29986] #30038 (@kpdesign)
- TinyMCE: update to 4.1.6+. Adds support for cache-busting when auto-loading JS and CSS. [29994] #30079 (@kpdesign)
- Use
<button>instead of<a>for the Visual/Text buttons, make them focusable. [30002] #27553 (@kpdesign) - First pass at merging the Focus feature plugin. (@kpdesign)
Bundled Themes
- Prevent the arrow in “Continue reading” links from wrapping to a second line. [29771] #27908 (@kpdesign)
- Twenty Fourteen: Include Latin Extended font subset for Lato. [29772] #29690 (@kpdesign)
- Add an alt attribute with the site title for header images linked to the home page. [29842] #15926 (@kpdesign)
- Introduce a new means of outputting a
<title>tag in the theme head. Requires a theme to add support by callingadd_theme_support( 'title-tag' ). [30074] #18548 (@kpdesign) - Introduce some new template functions for navigation:
get_the_post_navigation()andthe_post_navigation()for navigation to the next and previous post.get_the_posts_navigation()andthe_posts_navigation()for navigation to the next and previous page of posts.get_the_pagination()andthe_pagination()for paginated navigation between pages of posts. Usespaginate_links(). This reduces the need for themes to define their own sets of navigation functions. [30065] #29808 (@kpdesign)
Twenty Fifteen
- Importing Twenty Fifteen, first pass at our new default theme for 2015, set for 4.1. [29892] [29893] #29799 (@kpdesign)
- Set Twenty Fifteen as the new default theme. [29895] [29900] #29799 (@kpdesign)
- Make
font-size/line-heightineditor-style.cssthe same as instyle.css. Remove margins from the editor body, interferes with autoresize in some browsers, and is overridden in the default styles. [29909] #29799 (@kpdesign) - No rem in
editor-style.cssfor now. [29910] #29799 (@kpdesign) - Add print styles. [29919] #29967 (@kpdesign)
- If the sidebar is taller than the viewport scroll it with the content, if it’s shorter keep it fixed. [30025] #29979 (@kpdesign)
- Use new core navigation tags. [30216] #30189 (@kpdesign)
- Support for
title-tag. [30097] #30146 (@kpdesign) - Improve support for customizer. [30274] [30275] #29988; [30230] #30164 #29980; [30272] #30165 (@kpdesign)
- Improve 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. (@kpdesign)
- Prevent a flash of visible sub menus before scripts load. [30211] #30056. (@kpdesign)
- Detach widgets from the header in mobile views. [30243] #30252 (@kpdesign)
- 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. (@kpdesign)
- Make sure that the edit link will always be right of its icon. [30215] #30171 (@kpdesign)
- Add a fallback icon for social links where we don’t have an icon. [30212] #30148 (@kpdesign)
- Use the new archive template tags and make archive template titling simpler. [30236] #30246 (@kpdesign)
Comments
- WP_Comment_Query:
comment__in,comment__not_in,post__in,post__not_in. [29808] #25386 (@kpdesign) - Add a class attribute for submit button in comment form. [29809] #20446 (@kpdesign)
- Add an
aria-labelattribute with commenter’s name toget_comment_reply_link(). [29822] #16433 (@kpdesign) - Add
aria-describedbyattributes tocomment_form(). [29846] #24148 (@kpdesign) - Don’t print an empty HTML markup when
comment_reply_link()returns no link. [29908] #29895 (@kpdesign) - Use the comment API rather than direct SQL queries in
comments_template(). [29965] #19623 (@kpdesign)
Customizer
- Change instances of “Theme Customizer” to just “Customizer”, as the Customizer isn’t necessarily theme-specific. [29903] #29947 (@eliorivero)
- Only POST dirty settings to preview to improve performance. [29905] #29983 (@eliorivero)
- Don’t trigger a change event if two unchanged object values are equal, second pass. [29907] #26061 (@eliorivero)
- Introduce
customize_preview_$setting->typeaction to handle multiple settings of the same type. [29948] #29165 (@eliorivero) - Extract content markup for panels to its own method,
WP_Customize_Panel::render_content(). This allows to override the behavior of a panel and its contents. [29950] #29324 (@eliorivero) - Add the ability for a customizer control to render its controls via a JavaScript template. Switches the default color picker control to a JavaScript template. [30014] #29572 (@eliorivero)
- Improve/introduce Customizer JavaScript models for Controls, Sections, and Panels, along with a reference. [30102] see #28032, #28579, #28580, #28650, #28709, #29758. Fixes #29529. (@eliorivero)
- Improve
ColorControl‘swpColorPickerto update UI based on setting changes. Update Twenty Fifteen’scolorSchemecontrol to properly interact with the API, usingwp.customize.control(). [30126] #30031 (@eliorivero) - Add stable sorting for panels, sections and controls in JS. Improve sorting in PHP. [30214] #30225 (@eliorivero)
- Bind
inputandpropertychangeevents for range input types. [30219] #30223 (@eliorivero) - Twenty Fourteen: Make featured content in Customizer contextual to the front page. [30143] #29578 (@kpdesign)
External Scripts
- Update jQuery UI to 1.11.1. 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.) [29847] #29833 (@kpdesign) - Update jQuery UI to 1.11.2. [29920] #29833 (@kpdesign)
Internals
- wp_extract_urls() needs to also grab URLs with query strings and hashes. [29756] #29314
- In
wp_ajax_replyto_comment(), if$_POST['comment_type']is set, use it for the value of$comment_type, which thecompact()call has assumed is set since [8720]. It never was. [29758] #29704 - Ordering by
RAND(): The shortcode callbacks for gallery and playlist check for'RAND' == $atts['order'], which isn’t a valid value for order. Remove those checks and update the docs. InWP_Query, if the value of orderby is rand, order is irrelevant and should be unset. [29760] #29629 - Add safeguards for when ext/hash is not compiled with PHP. [29761] [29751] #29518
- Improve and clarify inline commenting inside the
check_comment()function. [29763] [29762] #29734 - Create correct permalinks for child posts of hierarchical post types when default permalinks are used. [29765] #29615
- Allow bookmarks to be ordered by link_description in get_bookmarks(). [29778] #29763
- In
paginate_links(), ensure that query string args are propagated to the resulting paginated links. [29780] #29636 - The joys of
wptexturize(): Revert parts of [28773] and [28727] and [29748]. Do not ignore unclosed HTML comments. Do not break unregistered shortcodes, e.g. [hello attr=”value”], or when there is extra whitespace, e.g. [ hello ]. Do not break HTML in shortcode attributes, e.g. [hello attr=”<”]. [29781] #29557 - Use SSL for all references to WordPress.org [29787] [29788] [29789] #27115 (@kpdesign)
- Change the default orderby value in
wp_get_nav_menus()to'name'. [29792] [29796] #29460 (@kpdesign) - Handle deficiencies in PHP’s
parse_urlin older versions of PHP (<5.4.7) inWP_HTTP::make_absolute_url(). Correctly handle url’s containing url’s inWP_HTTP::make_absolute_url(). Correctly support Schemeless URLs inWP_HTTP::make_absolute_url()by respecting the ‘host’ field if present in the relative url. [29851] [29850] [29861] #28001, #29886 - New
remove()method and some unit tests for theWP_Errorclass. @29854 #28092 (@kpdesign) - Return an error when adding a term to a non-existent parent. [29867] #29614
- Add a 6th (!) attribute to
wp_get_attachment_link()to allowaria-describedbyto be added to gallery output. [29914] #27402 - Cache
get_term_by()calls: Add a helper function,wp_get_last_changed(), to retrieve a last-modified timestamp by cache group. Original term cache entries maintain BC. [29915] #21760 (@kpdesign) -
wp_schedule_single_event()should not prevent scheduling a future duplicate event. It should only reject an event as a duplicate if there is already a similar event scheduled within 10 minutes of the given timestamp. [29939] #28213 - Add ID attribute to style element from
wp_add_inline_style(). [29956] [29958] #30032 - Move password hint text to a function. Add
password_hintfilter. [29962] #21243 (@kpdesign) - HTTP API: Support both the
limit_response_sizeandstreamparameters at the same time, allowing a partial file download. [29968] #26726 - Deprecate
admin_created_user_subject()[30005] #29915 (@kpdesign) - Introduce an
edit_form_before_permalinkaction which gets fired after the title field but before the permalink fields. [30028] #29691 (@kpdesign) - In
wp_link_pages(), only output link separators between actual pagination links. [30030] #24940 - Rename
_wp_password_hint()to_wp_get_password_hint()to bring it inline with core terminology. [30033] #21243 (@kpdesign) - Don’t add
stickyclass inget_post_class()ifignore_sticky_postsquery var is set. [30036] #18035 (@kpdesign) - Don’t display Standard post format twice in the meta box if the theme unnecessarily mentions it in the
add_theme_support()call. [30038] #16555 - Add
comment_reply_link_argsfilter forget_comment_reply_link()arguments. [30039] #10569 (@kpdesign) - Allow
slugparam ofget_terms()to accept an array. [30042] #23636 - Introduce
orderby=includesupport forget_terms(). [30052] #23261 - Remove
UNIQUEkey fromslugcolumn of terms table. [30056] #22023 - Add
wp_json_encode(), a wrapper forjson_encode()that ensures everything is converted to UTF-8. Change all core calls fromjson_encode()towp_json_encode(). [30055] #28786 - Introduce
wp_is_trusted_network(). A first step to establish concepts around trusted and untrusted networks. [30071] #30145 (@kpdesign) - Don’t hardcode
heightfor videos – this was a workaround for MediaElement internals causing problems. Responsive videos now work properly and don’t cause extra whitespace. [30082] #30078 (@kpdesign) - Introduce some actions and filters which aid plugins in revisioning post meta. [30091] #20564 (@kpdesign)
Database
- Bump
db_versionand add upgrade routine for schema change in [30056]. [30121] [30134] #22023 - WPDB’s
__get()function should perform strict comparisons against member names. [30292]
Metadata
- Pass all updated meta IDs to filters in
update_metadata(). [30140] #11683 - Unserialize
get_metadata()results whenkeyis omitted. [30115] #15030 (@kpdesign)
Queries
- Use the primary
meta_queryclause when parsing orderby inWP_Query. [29855] #16814 - Introduce support for nested queries in
WP_Meta_Query. [29887] #29642 - Use only LEFT JOINs when a
meta_querycontains a NOT EXISTS clause. [29890] #29062 - Introduce support for nested queries in WP_Tax_Query. [29891] #29718 #29738
- Support
EXISTSandNOT EXISTSinWP_Tax_Query. [29896] #29181 - Support nested tax query syntax in
redirect_canonical(). [29901] #29738 - Avoid redundant table joins in
WP_Tax_Query. [29902] #18105 - Check that search value is scalar before parsing. Prevents PHP notices when non-scalar values are passed. [29912] #29736
- Introduce nested query support to
WP_Date_Query. [29923] #29822 - Throw notices
_doing_it_wrong()notices are now generated when passing out-of-range values (month=13) or invalid dates (2014-02-29) toWP_Date_Query. [29925] #25834 - Support
date_querybyuser_registeredinWP_User_Query. [29934] #27283 - Comment/post author in/not_in for
WP_Comment_Query. [29935] #29885 - Better “inclusive” support for string values in
WP_Date_Query. [29936] #29908 - Allow
ORDER BYinWP_Comment_Query::query()to be disabled. [30004] #29902 DisableORDER BYby passing booleanfalse, an empty array, or the stringnoneto theorderbyparameter. This mirrors the behavior ofWP_Query. - Accept
orderby=includeinWP_User_Query. [30016] #30064 This lets the results of a user query be sorted manually by the value of theincludeparam. - Fix
countinWP_Comment_Querywhen usingmeta_query. [30026] #23369 - Optimize site query when performing network database upgrades [30029] #30097 (@kpdesign)
- Improve
WP_Tax_Queryparam sanitization for empty strings. [30031] #30117 - Support multiple
statusvalues inWP_Comment_Query. [30084] #29612 - Improvements to
WP_User_Query[30094] #23849, #27026 andWP_Comment_Query[30098] #12668. - Introduced
dayofweek_isotime param forWP_Date_Query. [30142] #28063 (@kpdesign)
Revisions
- Allow revision Backbone classes to be used on pages other than revision.php. [30128] #30221 (@kpdesign)
- Add a single responsibility function for outputting Revisions JS templates:
wp_print_revision_templates(). Use it inwp-admin/revision.php. [30129] #30220 (@kpdesign) - 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 (@kpdesign)
Taxonomies
- Do not create shared taxonomy terms. [30240] #21950; See #5809. (@kpdesign)
- Split shared taxonomy terms during term update. [30238] [30239] [30241] #5809 (@kpdesign)
- Don’t force
child_of=0for non-hierarchical taxonomies inget_terms(). [30265] #30275 - In
get_adjacent_post(),$excluded_termsshould checkterm_idrather thanterm_taxonom_id. [30263] #29663, #22112. - Allow
resource_typeto be specified inget_ancestors(). Being explicit about resource type (taxonomyvspost_type) allows for the proper resolution of conflicts when ataxonomyandpost_typeshare 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 matchterm_id, strings that matchterm_idornameor slug) are handled. [30204] #29467 - In
in_object_in_term(), only check numeric string values againstterm_id. [30205] #29467 - Introduce
term_templateparam toget_the_taxonomies()to allow theme and plugin 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 overridehierarchicalandpad_countwhenparentis present. The previous behavior resulted in descendant terms being improperly excluded from the results when passing aparent, even whenhierarchicalhad been set totrue. [30107] #29815 - Clean up
get_term_by()caching, fix cache key/group modification that was missed in [30073], and update unit tests. [30108] #21760 (@kpdesign)
Language Packs
Media
- Add two properties to media.model.Attachments.propmap: include and exclude, which are aliases for
post__inandpost__not_in. This allows you to instantiate a library that includes and/or excludes specific attachments by passing a single ID or an array of IDs. [29759] #26587 (@kpdesign) - Disable multi-file uploading in iOS 7.x Safari as it prevents uploading of videos. [29776] #29602 (@kpdesign)
- When the modal is open, don’t respond to arrow keys when
<textarea>has focus. [29777] #29725 (@kpdesign) - Add size to the UI for Gallery Settings in the media modal. Ensure that the TinyMCE view is refreshed when size changes. [29779] #18143 (@kpdesign)
- Account for
MEDIA_TRASHin both the Media Grid and Media List Table. [29810] [29811] [29812] #29742 (@kpdesign) - Add the date filter from media grid to the media modal. [29813] #28990 (@kpdesign)
- Add a namespace to the click handler registration for
.insert-mediainmedia-editor.js:click.add-media-buttonto allow devs to override the default behavior. [29802] #23096 (@kpdesign) - In
wp_delete_attachment(): account for orphan sizes by looping over the sizes stored in metadata, instead of relying on the current sizes stored in$_wp_additional_image_sizes. [29816] #24518 (@kpdesign) - For
attachment-compatfields, show a spinner whilewp.media.model.Attachment.saveCompat()is firing. #27028 [29831] - In the admin, give media list table icons auto for width and height. In the post thumbnail metabox, apply
width: auto. If someone turns on support SVG files, this will allow them to show up. [29832] #26256 - Allow
PSDs (Photoshop documents) to be uploaded. [29833] #28805 (@kpdesign) - Fix setting default quality in
WP_Image_Editor. [29834] #29856 (@kpdesign) - Pass the requested size to
wp_get_attachment_image_attributesfilter. [29836] #29869 (@kpdesign)
Multisite
Network Admin
- Don’t display update count for Themes when the user doesn’t have the
update_themescap. [29817] #29651 (@kpdesign) - Don’t display update count for Plugins when there aren’t any/count is 0 [29817] #29651 (@kpdesign)
- Properly check if the theme is active on the main site to avoid deleting it via bulk actions. [29839] #29861 (@kpdesign)
Plugins
- In
activate_plugin(), do not re-run the activation routine for already-active network-wide plugins. [29818] #28651 (@kpdesign) - Avoid a PHP notice in
list_plugin_updates()ifplugins_api()returned aWP_Errorobject. [29825] #29583 (@kpdesign) - Use correct links for filtering plugin reviews. #29826 [29754] (@kpdesign)
- Plugin search: Wrap results in a form to fix pagination’s
pagedinput field. #18724 [29829] (@kpdesign) - Pass the requested size to
wp_get_attachment_image_attributesfilter. [29836] #29869 (@kpdesign)
Templates
- Introduce new template functions for archive titles and descriptions:
get_the_archive_title()andthe_archive_title()for returning/displaying the title of the current term, date, post type, post format, or author archive.get_the_archive_description()andthe_archive_description()for returning/displaying the description associated with the current term archive.[30223] #21995 (@kpdesign) - In
get_page_children(), only check$page->ancestorsonce to avoid duplicates when the function recurses. Adds an argument,$ancestors. [30246] #18962 (@kpdesign) - Allow
get_pages(), withchild_ofpassed to it, to work with interrupted hierarchies. [30159] #18962 (@kpdesign)