Week in Core, November 30 – December 6, 2016

Welcome back the latest issue of Week in Core, covering changes [39380-39529]. Here are the highlights:

  • 150 commits
  • 63 contributors
  • 140 tickets created
  • 17 tickets reopened
  • 104 tickets closed
  • WordPress 4.7 released 🎉

Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

Code Changes

Administration

  • Accessibility: Remove inappropriate content from the Themes screen heading. [39528] #26601
  • Accessibility: Remove inappropriate content from the Add Themes screen heading. [39527] #26601
  • Accessibility: Remove inappropriate content from the Media Library screens headings. [39526] #26601

Build/Test Tools

  • Correctly set up the current screen during list table tests so that they don’t fail when run individually. [39481] #38761
  • Specify exact node version in package.json. [39480], [39478] #35105, #38657
  • Remove PHP 7.1 from allowed failures [39424-39425] #37625

Bundled Theme

  • Default Themes: Update version numbers and readme files for 4.7 release [39496] #38858
  • Twenty Seventeen: Fix CSS specificity problem with CSS feature query for object-fit [39495] #39073
  • Twenty Seventeen: Improve display of video header and header image in modern browsers [39485], [39483] #39035
  • Twenty Seventeen: Add specific font stack for Thai language [39484], [39482] #38937
  • Twenty Seventeen: Improve ARIA for the nav menu. [39451-39452] #39029, #39026
  • Twenty Seventeen: Ensure header text color updates in Customizer preview when cleared [39447-39448] #38993
  • Twenty Seventeen: Fix broken menu toggle in Customizer after menu items are added [39419], [39423] #38992
  • Twenty Seventeen: Fix style issues with gallery image links [39418], [39422] #38969
  • Twenty Seventeen: Hide front section panels on page load of Customizer. [39417], [39421] #38951
  • Twenty Seventeen: Add .has-header-video styles for custom color schemes. [39416] #38995
  • Twenty Seventeen: Better handling of custom headers when no image is set. [39413-39414] #38995
  • Twenty Seventeen: Make spacing on pages without comments consistent [39404-39405] #38972
  • Twenty Seventeen: Make sure header text color is applied when color schemes are active. [39397-39398] #38980
  • Twenty Seventeen: Make fixed navigation apply at correct height on front page, without header video or image [39394], [39392] #38927
  • Twenty Seventeen: Provide a background color fallback for non-webkit browsers on input styles [39388] #38939
  • Twenty Seventeen: Allow child themes to easily extend custom color patterns [39386] #38949
  • Twenty Seventeen: Make screen reader text on scroll arrow more meaningful [39384] #38970
  • Twenty Seventeen: Keep header videos from extending past footer. [39380-39381] #38950

Comments

  • Merge a similar string between comments.php, XML-RPC and the REST API comments controller. [39508] #39013

Customize

  • Prevent infinite full refresh from occurring when selective refresh falls back for a nav menu that has items excluded from rendering via filtering. [39510-39511] #38612
  • Defer populating post_name for auto-draft posts in customized state until posts are published. [39506-39507] #39078
  • Ensure changeset_uuid query param is removed from the customize.php window’s location once a changeset has been published (committed) with starter content. [39504-39505] #39081
  • Prevent posts/pages imported via starter content from being dropped when adding post/page stubs via nav menus and the dropdown-pages control. [39502-39503] #38114, #34923, #39071
  • Ensure textarea for Custom CSS displays as code (in LTR) when an RTL language is active. [39499-39500] #35395, #39085
  • Ensure a custom_css post insertion gets an initial post revision. [39479], [39477] #30854, #38672, #35395, #39032
  • Custom CSS: Change the help link to something better for users. [39467], [39466] #39015
  • Fix posts limit query arg for WP_Query from incorrect number to posts_per_page. [39434-39435] #39022
  • Reuse existing non-auto-draft posts and existing auto-draft posts in the customized state with matching slugs when applying starter content. [39411] #38114, #38928
  • Reject a changeset update when a non-future date is provided and also ensure that a published changeset always gets set to the current date/time. [39409-39410] #30937, #38943
  • Fix handling of the nav menu item labels (titles) that match defaults (original titles) and fix the display of item type labels. [39395], [39393] #38015, #38955

Feeds

General

Help/About

Media

  • Accessibility: Improve keyboard accessibility avoiding confusing tab stops in the Media views. [39529] #30599
  • Docs: Add inline documentation for image-edit.js. [39493] #38748
  • Fix regression with display of small images in media library. [39399], [39396] #38965
  • Docs: Document the usage of the global $wpdb in _filter_query_attachment_filenames(). [39390] #38973

Misc

  • Tag 4.7 [39525] #
  • WordPress 4.7 “Vaughan”. [39524] #
  • Post-RC3 bump. [39519] #
  • WordPress 4.7 RC3. [39516] #
  • Post-RC2 bump. [39474] #
  • WordPress 4.7 RC2. [39473] #
  • Twenty Seventeen: Add .has-header-video styles for custom color schemes. [39415]

Options, Meta APIs

  • REST API: Register the admin_email setting in single site only. [39470-39472] #38990
  • REST API: Site URL setting should not be present on multisite installations. [39468] #39005
  • REST API: Correct the admin_email setting description for single site installs. [39406] #38990
  • Multisite: Display different descriptions for multisite or single site installations. [39407] #38990
  • Options: Pass the $passed_default parameter to the 'default_option_{$option} filter in add_option(). [39382] #38176, #38930

Plugins

REST API

  • Comments: Merge similar strings between comments.php and the REST API comments controller. [39490-39491] #39014
  • Merge similar date strings in the revisions and comments controllers. [39488-39489] #39016
  • Treat any falsy value as false in ‘rest_allow_anonymous_comments’. [39487] #39010
  • Docs: Add missing REST API-related args to register_post_type() and register_taxonomy(). [39462-39463] #39023
  • Merge similar strings in a comments endpoint parameter description. [39457] #39036
  • Fix bug where comment author and author email could be an empty string when creating a comment. [39446], [39444] #38971
  • Fix handling of some orderby parameters for the Posts controller. [39440-39441] #38971
  • Disable DELETE requests for users in multisite. [39438-39439] #38962
  • Return a WP_Error if meta property is not an array. [39436-39437] #38989
  • Add test for creating a comment with an invalid post ID. [39408] #38991
  • Fix incorrect uses of rest_sanitize_value_from_schema(). [39400-39401] #38984

Role/Capability

  • Don’t assign the delete_site capability to anyone on single site installs. [39494] #38326
  • Multisite: Replace is_super_admin() with manage_network for admin bar permissions. [39492] #39064, #37616

Taxonomy

  • Docs: Update an @since as there will not be a 4.6.2 before 4.7. [39475-39476] #37291
  • REST API: Capability check for editing a single term should use the singular form. [39464] #35614, #39012
  • REST API: Use the correct error message when editing a single term. [39460-39461] #39017
  • REST API: Fix incorrect capability check on term create. [39402-39403] #35614, #38958
  • Performance: Revert [38677] from the 4.7 branch. This avoids fatal errors caused with recursive calling of term functions within the get_terms filter. [39454] #21760

Themes

  • Reuse existing non-auto-draft posts and existing auto-draft posts in the customized state with matching slugs when applying starter content. [39412] #38114, #38928

TinyMCE

  • Fix the styling of notices generated by the editor UI. [39501] #38917

Users

  • Clarify the return value of get_current_user_id() for non-logged-in users. [39486] #39051
  • REST API: Require the reassign parameter when deleting users. [39426-39427] #39000

Thanks to @andizer, @mor10, @adamsilverstein, @afercia, @azaozz, @boonebgorges, @celloexpressions, @ChopinBach, @clorith, @coffee2code, @davidakennedy, @dd32, @desrosj, @dlh, @flixos90, @georgestephanis, @helen, @helen, @hnle, @iaaxpage, @imnok, @jbpaul17, @jeremyfelt, @jnylen0, @joedolson, @joehoyle, @joemcgill, @johnbillion, @jorbin, @kadamwhite, @karmatosed, @ketuchetan, @laurelfulford, @littlebigthing, @lucasstark, @melchoyce, @michaelarestad, @mikeschroder, @mt8.biz, @nacin, @netweb, @ocean90, @ovenal, @pento, @peterwilsoncc, @presskopp, @rachelbaker, @rahulsprajapati, @ramiabraham, @ramiy, @rensw90, @rianrietveld, @rmccue, @samuelsidler, @sayedwp, @SergeyBiryukov, @sstoqnov, @The PHP tea, @timmydcrawford, @utkarshpatel, and @westonruter for their contributions!

#4-7, #week-in-core

Week in Core, November 23 – 29, 2016

Welcome back the latest issue of Week in Core, covering changes [39341-39379]. Here are the highlights:

  • 39 commits
  • 30 contributors
  • 81 tickets created
  • 3 tickets reopened
  • 31 tickets closed

Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

Code Changes

Build/Test Tools

  • Build: Remove fsevents from npm-shrinkwrap.json [39368] #38657
  • Add an extra WP_Error assertion when testing a valid user activation key. This provides a better failure message if the assertion does fail. [39364] #38716
  • When testing the output of wp_list_pages(), use a known and fixed date for each post so the tests don’t fail when the date changes between the beginning and end of a test. [39363] #38688
  • Git: Prevent untracked files from being ignored by git in bundled themes. [39362] #27207, #38779
  • Add npm-shrinkwrap.json to 4.7. [39358] #38657

Bundled Theme

  • Twenty Seventeen: Add textdomain for starter content attachment titles. [39374-39373] #38981
  • Twenty Seventeen: Ensure edit button label displays properly in other languages [39341] #38876

Customize

  • Fix regression in ability to hide fields for advanced menu properties in nav menu item controls. [39379-39378] #34391, #38952
  • Fix regression in ability to create submenus for nav menus via drag and drop. [39377-39376] #34391, #38948
  • Fix logic for previewing the URL for nav_menu_item settings for terms and post type archives. [39365] #38114, #38945
  • Refactor logic for updating custom_css posts by introducing wp_update_custom_css_post() function and renaming update filter. [39350] #35395, #38672
  • Clean up docs and code style for customize changes in 4.7. [39345] #37770, #38908

Embeds

  • Correctly remove security attribute from iframes in IE 10 and IE 11. [39347] #38694

General

  • Git: Ignore patch related files, so they can’t be accidentally committed. [39361] #38727
  • SVN: Ignore patch related files, so they can’t be accidentally committed. [39360] #38727
  • Docs: Add a missing changelog entry for the point where the $tagnames parameter was added to get_shortcode_regex(). [39351] #38914

Misc

Plugins

  • WP_Hook: Re-initialize any actions added directly to $wp_filter by advanced-cache.php. [39370-39369] #38929

REST API

  • Add test for creating a comment with an invalid post ID. [39375] #38816, #38991
  • Add tests for empty or “no-op” updates. [39371] #38700, #38975
  • Special case the “standard” post format to always be allowed. [39353] #38916
  • Allow unsetting a post’s password. [39352] #38919
  • Add support for comments of password-protected posts. [39349] #38692
  • Always fire the rest_insert_* actions after the related object is updated or inserted. [39348] #38905
  • Make JS Client store schema in session storage. [39344] #38895
  • Allow unsetting of page templates in update requests. [39343] #38877
  • Update “resource” strings to use the appropriate nouns. [39342] #38811

Themes

  • Fix logic for previewing the URL for nav_menu_item settings for terms and post type archives. [39366] #38114, #38945
  • Theme starter content: Add support for featured images and page templates. [39346] #38615

TinyMCE

  • Fix the styling of notices generated by the editor UI. [39367] #38917

Thanks to @mor10, @adamsilverstein, @afercia, @azaozz, @celloexpressions, @danielbachhuber, @davidakennedy, @dd32, @delawski, @DrewAPicture, @flixos90, @georgestephanis, @helen, @iseulde, @jnylen0, @joehoyl, @joehoyle, @johnbillion, @karmatosed, @keesiemeijer, @lucasstark, @nacin, @ocean90, @odysseygate, @pento, @rachelbaker, @ramiy, @swissspidy, @tg29359, @westonruter, and @xrm for their contributions!

#4-7, #week-in-core

Week in Core, September 7 – 20, 2016

Welcome back the latest issue of Week in Core, covering changes [38571-38636]. Here are the highlights:

  • 66 commits
  • 61 contributors
  • 171 tickets created
  • 15 tickets reopened
  • 106 tickets closed

Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

Code Changes

Administration

Bootstrap/Load

  • Docs: Use a third-person singular verb for wp_doing_ajax filter added in [38334]. [38607] #25669
  • Bootstrap: Use dirname() when loading class-wp-hook.php from plugin.php. [38589] #37707

Charset

  • Database: Fall back to utf8 when utf8mb4 isn’t supported. [38580] #37982

Customize

  • Add wp-util as a dependency for customize-controls. [38628] #38107
  • Remove IE8 access to customizer to discontinue support. [38627] #38021
  • Let static_front_page section be contextually active based on whether there are any published pages. [38624] #34923, #38013
  • Ensure nav menu items lacking a label use the title from the original object. [38618] #38015
  • CBetter hover/focus state for section titles and available widgets. [38602] #29158
  • Implement previewing of form submissions which use the GET method. [38587] #20714
  • Prevent widget previewing logic from building invalid jQuery selectors when sidebars are registered without a class name in before_widget. [38577] #37993

Database

  • Normalise index names in dbDelta(). [38591] #34874
  • Increase the size of wp_posts.post_password to 255 characters. [38590] #881

Formatting

  • Docs: Use a third-person singular verb for smilies filter added in [38504]. [38608] #35905
  • Update autop() to match wpautop(). [38594] #4857, #4857
  • Docs: Fix an outdated comment. [38593] #4857
  • Add an extra line break before block elements in wpautop(). [38592] #4857
  • Don’t send an HTTP status code in wp_send_json() by default. This avoids clobbering an HTTP status code that may have been set prior to calling this function. [38576] #35666

General

I18N

  • Correct context for Next/Previous strings in get_the_posts_pagination(). [38611] #37952

Media

Menus

Networks and Sites

  • Multisite: Show always domain and path when deleting a site. [38633] #37309
  • Multisite: Use get_networks() in get_main_network_id(). [38632] #37218
  • Multisite: Provide $join as a possible SQL clause to the sites_clauses filter. [38631] #37922
  • Multisite: Add annotations for extended WP_Site properties. [38630] #37932
  • Docs: Synchronize docblocks for WP_Site_Query::__construct() and get_sites() after the changes in [37735], [38008], [38103], and [38336]. [38596] #38039
  • Docs: Correct description for domain and path arguments in WP_Network_Query::__construct(). [38595] #32504

Options, Meta APIs

  • Options: Build out register_setting like register_meta. [38635] #37885

Permalinks

  • Ensure Pending Review Posts permalink posts link to the draft [38572] #37423

Plugins

  • Style the primary action link in the non-js “Installing Plugin” page. [38617] #36430
  • Tests: Use add_filter() when it’s available. [38582] #17817
  • Docs: Fix minor formatting for inline docs in WP_Hook following its introduction in [38571]. [38573] #17817
  • Hooks: Add the new class WP_Hook, and modify hook handling to make use of it. [38571] #17817

Posts, Post Types

REST API

Shortcodes

Taxonomy

  • Docs: Correct the description of {$taxonomy}_term_new_form_tag hook, making it more consistent with other *_form_tag hooks. [38629] #38104
  • Pass taxonomy name to actions in term-relationship CRUD functions. [38621] #38006
  • Query: Eliminate unnecessary wp_list_filter() call in get_queried_object(). [38586] #37962
  • Query: Avoid PHP notice in get_queried_object() when query contains NOT EXISTS tax query. [38585] #37962

Themes

  • Docs: Correct two references to plugins in the $args parameter description for themes_api(). [38623] #37939
  • Docs: Use a third-person singular verb for {$type}_template_hierarchy filter added in [38385]. [38609] #14310
  • Docs: Use a third-person singular verb in the DocBlock summary for get_theme_file_uri(), get_parent_theme_file_uri(), get_theme_file_path(), and get_parent_theme_file_path(), introduced in [38578]. [38606] #18302
  • Docs: Use a third-person singular verb for theme_file_uri, parent_theme_file_uri, theme_file_path, and parent_theme_file_path filters added in [38578]. [38605] #18302
  • Add the non-encoded form of the queried item slug to the template hierarchy when the slug contains non-ASCII characters. [38583] #37655
  • Taxonomy: Revert accidental changes introduced in [38578]. [38579] #18302
  • Improve child theme file inheritance by introducing functions for locating and fetching the URL or path to files within child and parent themes. [38578] #18302

Toolbar

  • Add a ‘View Posts’ link to the toolbar when on the post listing screen. [38634] #34113

Upgrade/Install

  • Docs: Correct a comment and @return entry in WP_Upgrader::create_lock(). [38622] #38089
  • Automatically log users in after installation. [38619] #34084

XML-RPC

  • Avoid a PHP notice in ::pingback_ping() if page title was not found. [38620] #36727
  • Check the minimum number of arguments in ::wp_getUsersBlogs() and ::blogger_getUsersBlogs(). [38600] #29750

Thanks to @aaroncampbell, @adamsilverstein, @afercia, @akibjorklund, @DMing, @BjornW, @boonebgorges, @celloexpressions, @curdin, @danielpietrasik, @dd32, @DrewAPicture, @eliorivero, @enshrined, @ericlewis, @FlorianBrinkmann, @folletto, @georgestephanis, @gma992, @helen, @hideokamoto, @hugobaeta, @ian.edington, @iandunn, @jbrinley, @jeremyfelt, @joehoyle, @joemcgill, @johnbillion, @johnjamesjacoby, @jorbin, @karmatosed, @kitchin, @knutsp, @markshep, @MaximeCulea, @melchoyce, @monikarao, @nacin, @nazgul, @obenland, @ocean90, @paulwilde, @pento, @peterwilsoncc, @RedSand, @rmccue, @rnoakes3rd, @rommelxcastro, @ryankienstra, @ryanplas, @SergeyBiryukov, @skippy, @spacedmonkey, @swissspidy, @Takahashi_Fumiki, @websupporter, @welcher, @westonrute, @westonruter, and @wonderboymusic for their contributions!

#4-7, #week-in-core

Week in Core, August 2 – 9, 2016

Welcome back the latest issue of Week in Core, covering changes [38181-38238]. Here are the highlights:

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

Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

Code Changes

Help/ About

Boostrap/ Load

Customize

Dashboard

Docs

Embeds

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

Emoji

Formatting

I18N

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

Media

Multisite

Plugins

Requests

Taxononmy

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

Themes

Upgrade/ Install

Props

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

#4-6, #week-in-core

Dev Chat Notes: June 29, 2016

Feature Freeze and WordPress 4.6 Beta 1

As of today, trunk is closed to all new features and enhancements for the 4.6 release cycle.

During the meeting, attendees talked over the 4 remaining tickets and got them committed/punted/closed as needed.

Dev notes

Currently, only one dev note has been written. If you helped contribute to a significant feature or bugfix (or if you are great at writing articles), please write a dev note. If you don’t have the proper permissions on Make/Core, please work with someone who does.

You can find a list of improvements that need dev notes here.
You can find a guide to writing posts here: https://make.wordpress.org/core/handbook/best-practices/post-comment-guidelines/

Feature project updates

Font Natively

The only remaining items is that a dev-note needs to be written and a coding standards commit needs to take place before release.

Shiny Updates

There are a few remaining tickets that need to be fixed during the next couple weeks.

Component announcements/updates & Open discussion

The XML-RPC endpoint on Trac now accepts attachments from all users, which means grunt upload_patch:XXX where XXX is a ticket number should work for everyone. Props @jorbin, @nacin.

 

The full chat logs can be found here: https://wordpress.slack.com/archives/core/p1467230418002461

#4-6, #dev-chat, #summary

Week In Core, June 21 – June 28 2016

Welcome back the latest issue of Week in Core, covering changes [37801-37902]. Here are the highlights:

  • 102 commits
  • 41 contributors
  • 86 tickets created
  • 10 tickets reopened
  • 84 tickets closed

Ticket numbers based on trac timeline for the period above. The following is a summary of commits, organized by component.

Code Changes

Administration

Bootstrap

  • Explicitly globalize $wpdb in wp-settings.php in case WordPress isn’t loaded in global scope. [37864] #37123

Comments

  • Improve author and content of the default comment. [37888] #36702, #14268
  • Remove the assignment of an undocumented $comment_count property in WP_Comment_Query::get_comments(), which appears to be accidentally introduced in [34544]. [37873] #37187

Customize

  • Improve flow from menu locations to editing a menu. [37901] #36795
  • Link “widget areas” to widgets panel in menu locations section description. [37900] #36796
  • Always define functions reflowPaneContents, findControlsForSettings, and _handleSettingValidities on wp.customize. See #36944. See #29071. [37867] #34893, #36944, #29071

Docs

  • Fix typo in wp-includes/shortcodes.php file description. [37865] #37175
  • Add two simple usage examples to the DocBlock for wp_redirect(). [37863] #32246
  • Improve the syntax and tensing within the DocBlock for is_home(). [37862] #32246
  • Improve formatting and syntax of the defaullt label docs in the DocBlock for get_post_type_labels(). [37886] #32246
  • Add a more complete $labels parameter description to the DocBlock for register_post_type(). [37885] #32246
  • Improve the $post_type parameter description in the DocBlock for register_post_type(). [37884] #32246
  • Add more complete documentation for the $supports argument in register_post_type(). [37883] #32246
  • Improve the usefulness, accuracy, and syntax of the register_post_type() DocBlock summary and description. [37882] #32246
  • Add missing variable reference for wp_edit_form_attachment_display. [37880] #
  • Further improve the note of caution within the DocBlock description for query_posts(). [37878] #32246
  • Add a note to the DocBlock for query_posts() to caution against general usage, including a pointer to the pre_get_posts action. [37877] #32246
  • Make the DocBlock summary for get_option() more explicit and convert to using a third-person singular verb. [37876] #32246
  • Improve the formatting and usefulness of information in the DocBlock for sanitize_text_field(). [37852] #32246
  • Add some missing changelog entries to the DocBlock for add_theme_support(). [37849] #32246
  • Correct the $request parameter datatype in the hook doc for the posts_request filter. [37848] #37142

Embeds

External Libraries

General

  • Update wp.template to match parameter changes to _.template in Underscore 1.8.3. [37851] #36695

I18N

  • Make “That’s all, stop editing! Happy blogging.” translatable. [37902] #36945
  • Move the WP_Locale class to its own file. [37889] #26511, #37209
  • Remove HTML tags from translatable string in wp-admin/maint/repair.php. [37858] #37147
  • Enable unloading of text domains that have been loaded just in time. [37855] #37113, #34114
  • Add support for the Catalan flown dot in remove_accents(). [37853] #37086

Media

Menus

Multisite

  • Add a ms_sites_list_table_query_args filter to WP_MS_Sites_List_Table. [37899] #26580
  • Replace wp_get_network() internals with get_network().  [37896] #32504
  • Introduce get_networks(). [37895] #32504
  • Introduce WP_Network_Query. [37894] #32504
  • Introduce get_network(). [37893] #32504
  • Remove unused site_count property from WP_Site_Query. [37875] #35791
  • Clear incomplete objects from cache in get_blog_details() when found. [37874] #36717
  • Set WP_Network blog_id property default to string as expected. [37871] #36717
  • Change WP_Network id property to an integer. [37870] #37050
  • Cache found_sites and max_num_pages in WP_Site_Query. [37868] #35791
  • Move call of get_blog_details() inside ms_site_check(). [37850] #37118

Plugins

Posts, Post Types

  • Introduce WP_Post_Type and use it in register_post_type() and unregister_post_type(). [37890] #36217
  • Fix back-compat for filters in get the modified time and date functions after [37738]. [37866] #37059
  • Add hooks for post sticky status changes. [37857] #35600
  • Add a filter to disable the categories dropdown. [37856] #36152

Revisions

Security

  • Add list-style-type to the list of allowed CSS attributes. [37898] #35877
  • Adjust the list of safecss attributes for readability. [37897] #35877

Taxonomy

Themes

  • Wrap unusually long theme names on the Theme Details screen. [37872] #37033

 

 

Thanks to @adamsilverstein, @anilbasnet, @azaozz, @boonebgorges, @celloexpressions, @coffee2code, @danielbachhuber, @davidmosterd, @DrewAPicture, @Ego, @flixos90, @georgestephanis, @grapplerulrich, @Ipstenu, @ixkaito, @jeremyfelt, @jnylen0, @joemcgill, @jorbin, @julesaus, @kovshenin, @littlerchicken, @nacin, @nbachiyski, @Ninos, @ocean90, @ojrask, @pento, @peterwilsoncc, @rachelbaker, @ruudjoyo, @SergeyBiryukov, @sirjonathan, @solarissmoke, @southp, @spacedmonkey, @swissspidy, @westonruter, @xavivars, and @xavortm for their contributions!

#4-6, #week-in-core

Week in Core, Feb. 9-16 2016

Welcome back the latest issue of Week in Core, covering changes [36505-36540]. Here are the highlights:

  • 35 commits
  • 37 contributors
  • 67 tickets created
  • 3 tickets reopened
  • 52 tickets closed

Ticket numbers based on trac timeline for the period above.

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

Code Changes

Accessibility

  • Reduce the WordPress shades of grey, first part. [36537] #35783
  • Improve the color contrast ratio for the TinyMCE button icons. Also, tries to use the new grays from the Design Handbook wherever applicable. [36528] #35604

Build/Test Tools

  • Make sure fixtures have empty post_content in search test. Introduced in [36278]. [36520] #3102
  • Improve Automated Feed Tests [36519] #35160
  • Unit test for wp_get_comment_fields_max_lengths(). This adds tests for the comment form field lengths returned by wp_get_comment_fields_max_lengths(). Replaces unit test removed in r36514. [36515] #10377

Comments

  • In the comments list table, only link rows inside the “Submitted On” column to the comment if it is publicly viewable. [36521] #35279
  • Change wp_get_comment_column_max_length() function to wp_get_comment_fields_max_lengths() for consolidation and better fallbacks. [36514] #10377
  • Set the $comment global in comment_form_title(). [36512] #35624

Customizer

  • Add a user-friendly way to preview site responsiveness for desktop, tablet, and mobile. [36532] #31195
  • Ensure that nav menu items can be shift-clicked to edit in secondary instances of the same nav menu. Amends [36383]. [36523] #32681
  • Hide widgets re-order button when no re-ordering is possible. [36522] #35533
  • Reduce the spinner re-painted area to the smallest possible one. [36518] #35649

Editor

  • Introduce {$taxonomy}_term_edit_form_top action to edit-tag-form.php. This new action gives developers a place to output content at the beginning of the form element on edit-tags.php. [36526] #35252

i18n

  • Prevent is_textdomain_loaded() from returning true even if there are no translations for the domain. [36538] #21319
  • Allow larger menus to be created in the Edit Menu screen. This was attempted previously in [36506] which was reverted in [36507]. Some form fields were not being slurped into the form’s JSON representation, and it did not scale for a site with many posts. This approach [36510] #14134

Meta

  • In delete_metadata(), only invalidate cache for affected objects. [36511] #35797
  • Don’t double-unslash meta key when update_metadata() falls back on add_metadata(). [36509] #35795

Query

REST API

  • Apply rest_post_dispatch to embedded responses. [36536] #35628
  • Allow explicit HEAD callbacks. HEAD callbacks can now be registered independently, with the GET callback still used as a fallback. [36535] #34841
  • Add routing args to rest_dispatch_request filter. This allows requests to be hijacked via the filter more easily. [36534] #35507
  • Add support for CURIEs. [36533] #34729
  • Don’t display errors during REST API requests. [36530] #34915
  • Add helper function to get server instance. This allows using rest_do_request() outside of the API itself easily. [36529]

Taxonomy

  • Introduce publicly_queryable taxonomy argument. If not provided explicitly, the value of publicly_queryable is inherited from public. [36525] #34491
  • Bail from get_term() if a filter returns an object that is not a WP_Term. This prevents fatal errors in certain cases. [36516] #35808
  • Remove unused variable from get_terms(). Unused since [31284]. [36508] #35784

Themes

  • Use the attachment ID as the key in get_uploaded_header_images(). Prevents missing header images when an image has the same name as another header image. [36539] #31786

TinyMCE

  • Fix removing a space before inline tags when applying formatting shortcuts. [36513] #35798

Props

Thanks to @danielbachhuber, @adamsilverstein, @afercia, @azaozz, @boonebgorges, @celloexpressions, @Chouby, @d4z_c0nf, @danielbachhuber, @DrewAPicture, @ericlewis, @Fab1en, @flixos90, @folletto, @jdgrimes, @joehoyle, @joelerr, @jorbin, @jrf, @michaelarestad, @nacin, @neoxx, @ocean90, @rabmalin, @rachelbaker, @rahalaboulfeth, @rmccue, @rockwell15, @sirbrillig, @stevenkword, @swissspidy, @TimothyBlynJacobs, @tmuikku, @valendesigns, @welcher, @westonruter, and @WisdmLabs for their contributions!

#4-5, #week-in-core

WordPress 4.5: What’s on your Wishlist?

A few weeks ago, I put out an initial call for volunteers for 4.5.

In the spirit of the much-commented @wonderboymusic 4.4 Wishlist post, I’d like to extend the call a bit more.

  • What are you most interested in seeing in WordPress 4.5 — big, or small?
  • What are your or your users’ biggest pain points?
  • What do you see as the most important UX or performance low-hanging fruit to be solved?

Look forward to hearing from you in the comments!

The WordPress 4.5 kickoff chat will be next Wednesday, January 6, 2016 16:00 UTC-5.

#4-5, #wishlists

Week in Core: Sept. 28 – Oct. 11, 2015

Welcome back to the latest issue of Week in Core, covering changes from Sept. 28 – Oct. 11, 2015, changesets [34659][35029]. Here are the highlights:

https://make.wordpress.org/core/2015/10/07/%F0%9F%8E%89-one-more-committer-for-4-4/

See that ↑ right there? That’s an oEmbed. And it’s loaded from inside this site.

Feature Plugins Merged

The Responsive Images, oEmbed Provider, and the “baby” REST API feature plugins have been merged into core. Grab the latest version of trunk and test them out.

WordPress logo with wordmark below

Responsive images in your posts. Just upload and insert!

Potent Notables

These changes were big enough to merit their own blog posts:

Deeper Reading

Some commits pack in a lot of info, from detailed background to best practices in using hooks. Here are a few worth reading the entire commit message:

  • WP_Term class introduced [34997] #14162
  • Fix scalability performance problem for previewing multidimensional settings in the Customizer. [35007] #32103
  • Ensure that wp.customize.Widgets.savedWidgetIds is defined up front. [34883] #33901
  • The history and implementation of oEmbeds. [34903] #32522
  • Improve role-related arguments in WP_User_Query. [34875] #22212
  • Use wp_installing() instead of WP_INSTALLING constant. [34828] #31130
  • Introduce *_network_option functions for Multisite installs. [34777] #28290
  • Ensure that comment permalinks reflect pagination. [34735] #34068, #34073

Continue reading

#4-4, #week-in-core

Outlining a possible roadmap for the Customizer

Planning for the future is a necessary and important part of the WordPress development process. As we consider the future of WordPress – both as a whole and individual features – we publish proposed roadmaps to encourage greater discussion and give insight into the core team’s thought process.

The process of creating a roadmap is just as important as the vision behind it and the final roadmap itself. This process gives the entire community an opportunity to research and document history, define what specific items can be accomplished to bring us closer to the vision, and outlines how those tasks fit together within a possible timeframe.

What follows is a potential roadmap for the Customize component. If you’re interested in the future of live preview in WordPress, now is the perfect time to get involved and leave your feedback.


A couple of months ago, the WordPress lead developers met with the maintainers of the Customize component to discuss the future of live preview in WordPress. The goal of the chat was to come up with a potential roadmap for both the component and for how live preview can improve the user experience of WordPress for all users.

The ultimate goal of live preview in WordPress is to create user trust and remove the “save and surprise” inherent in some of the backend features.

After a lot of discussion, the group decided to target the following goals over the next two years:

  • Considerably improve performance.
  • Continue iterating on current live preview features to ensure they are solid and as easy-to-use as possible, including theme browsing and installation, menus, and widgets.
  • Experiment with new and different user interfaces. If we were creating live preview today, what would it look like? In what ways can we ease the feeling that you’re looking through a “porthole”?
  • Removal of the ambiguous mode. Currently, the Customizer is contained in a sidebar without the admin toolbar, but ideally there is the admin and the theme, and no in-between. One direction this may go is enabling “Customize” on the front end to immediately load the Customizer controls.
  • Experiment with a guided new user experience (NUX). Live preview lends itself to site setup. How can we improve the live preview experience and combine it with the NUX? Consider a “setup wizard” use case and ensure the flow has no dead ends, i.e. users can customize everything in one.

Those overall goals for live preview in WordPress can be rewritten into some specific features that are in development or planned for the future of the Customize component. These include:

  • Transactions. This re-architecture of some of the Customizer internals improves compatibility with themes by loading the preview using a natural URL, and allows Ajax requests or even REST API requests to be previewed. It also allows the preview to be viewed independently of the Customizer, so changes can be shared for others to review. See #30937.
  • Selective refresh. Only a piece of the page will need to be refreshed when this backend feature is implemented. (Formerly known as “Partial Refresh”.) Currently, this is available for menus in the Customizer. This eliminates duplication of display between PHP and JS, keeping it DRY. See #27355.
  • Concurrency. Allows for “locking” settings using the Heartbeat API, improving the overall user experience by preventing users from overwriting each other’s changes. See #31436.
  • Revisions. Enables plugin developers to add features like draft, roll back, and scheduled changes (e.g. “change my background on January 1”). This builds upon transactions, as the setting changes are staged in a transaction, and this facilitates settings to be revisioned and for settings to be scheduled. See #28721, #31089.
  • Theme installation. Iterates on and completes the theme browsing experience.
  • Responsive preview. Iterates on the concept of live preview by giving users a better idea of what their site will look like on other devices. See #31195.
  • Bootstrapped Customizer. Lazy-load the Customizer into the current frontend view without having to leave the page. With selective refresh implemented, inline controls and frontend bootstrapping would be possible since full-page refreshes would no longer be required.
  • Improvements for both touch and small devices.

Beyond those features, the group identified some specific changes that should be prioritized, in conjunction with the features planned:

  • The sliding animation between panels should feel more like “moving panels” (see: iOS).
  • Keyboard navigation should be consistent and clear.
  • Identify “dead ends” in the interface and remove them, when possible. For example, prior to menus in the Customizer, it was not possible to customize that aspect of your site’s design with the Customizer.

The concepts surrounding live preview and the Customizer have been in development for a long time. Many of the concepts from Elastic Theme and the Visual CSS Editor have been incorporated over time. Over the next few years, experimentation with these concepts will likely take place in feature plugins. For example, this team may experiment with inline content editing, where it makes sense in the context of customizing a site. Another path for exploration is simple theme customization – e.g. change the header font, change the sidebar color, or change the width of the sidebar.

As with all components and new features, we shouldn’t be afraid to experiment and fail and should continually push for new experiments and ideas, especially in the context of feature plugins. Further, some of the above experiments may not make it into core, but are meant as a general direction that live preview should take in WordPress.

Taking these features together, below is a sequence outlining a possible roadmap for live preview and the Customize component in general, along with estimated targets. Please note that this is a proposed roadmap and is entirely dependent on contributor involvement. Additionally, many of these things will take place in a feature plugin prior to core inclusion.

  • Partial refresh. Performance Improvements. (Target: 4.4)
  • Responsive Preview. Transactions. (Target: 4.5)
  • Concurrency. Revisions. Theme Install. Beginning of NUX wizard. (Target: 4.6)
  • Focus on touch screen / small device improvements. (Target: 4.7)
  • Developer API improvements based on feedback from plugin developers. (Target: 4.8)
  • Improved UI after experiments in 2016. NUX “wizard mode.” (Target: 4.9)

Live preview is one of the most critical features in WordPress as we continually combat “save and surprise.” The Customizer in its current form provides an improved user experience to WordPress users when customizing their site’s design. Each feature mentioned above is a continuation of the live preview concept, building and improving upon the Customizer.

Everything above is just a proposal and we need your feedback to ensure it is the right direction. If you’re interested in any of the above, comment here with your feedback, or join the team in #core-customize.

This post was a collaboration between @helen, @nacin, @mark, @celloexpressions, @samuelsidler, and yours truly.

#customize, #roadmap, #roadmaps