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:


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

Component Page Updates for 4.4

Now that 4.4 is underway, let’s update the component pages to reflect 4.4 activity. The Customize, Editor, and Press This pages serve as good templates, though they all need 4.4 updates. The component pages are targeted at beta testers. They should describe the component, list milestones (roadmap), and explain what needs testing and how to test it. Good component pages assist triage. For details, see the previous round of component page updates.

Also, if your component has a corresponding Slack chat, link to the component page from the chat’s channel topic. This assists using Slack in beta testing flows.

Component maintainers, here are your component pages…

Continue reading

#components, #maintainership

UI Chat Agenda, May 21

Quick check ins on:

Specific assignments for:

  • Screen-by-screen sweep
  • Trac gardening

We’ll finish off with open floor / impromptu Trac scrub and see what, if anything, can get committed now.

#agenda, #meeting, #ui

Dev Chat Summary, May 13

Agenda, Slack log.

Editor (#)
@azaozz has been looking at the “WordPress integration” parts the last couple of days, a lot of things that can be improved there. It removes some of the oddities, like running the post content through wpautop() before outputting it in the textarea, but only when TinyMCE is expected to be loaded, etc. @iseulde is working on the mobile toolbar and is hopeful she can get a patch ready this week. By next week’s meeting they want to have the mobile toolbar working (except in iOS), as well as #31655, #30949, and maybe #31441 in.

Admin UI (#)
@helen has largely been working on prepping things (tickets, examples, links, etc.) for Thursday’s UI meeting. More about the meeting (including agenda) can be found here: https://make.wordpress.org/core/2015/05/11/weekly-core-ui-meetings-for-4-3/

Network Admin UI (#)
Recap of Multisite office hours: https://make.wordpress.org/core/2015/05/12/multisite-office-hours-recap-may-12-2015/
Things they want to have done by next week:

  • Mockups for the Edit Site / Add New Site improvements by @hugobaeta.
  • Having more flows posted to Make Flow for the network admin, via @sofiarose @kraft, and @ubernaut.
  • Get some decent progress on `WP_Site` and `WP_Network` with @jjj.

Partial Refresh (#)
Weston hopes to add initial integration between Menu Customizer and Partial Refresh this weekend. Due to client projects he’ll have to work on Concurrency _concurrently_ with Partial Refresh so he doesn’t hold up Menu Customizer. By next week Partial Refresh should be abstracted enough for the Menu Customizer to work with.

Menu Customizer (#)
@voldemortensen, @celloexpressions
Now that it’s object-oriented they’re ready to start ramping up work. They’ll be going through github issues and come up with the next milestone for possibly the end of the week. By next week they’re planning on getting lazy-loading of both all menu item controls and the add-menu-item panel done, as well as better error handling for duplicate menu names and the like.

Better Passwords (#)
By next week, Mark wants a HTML, CSS, JS working demo of the password setting UI, and tickets for that and all other items on their hitlist. If there’s time beyond that, they could knock off one of the easier ones like notifying users of their password/e-mail changes.

Accessibility component update (#)
There’s been a ton of work done on the List Table class and associated areas. Joe has a set of 10 tickets with patches that he’d like to see committed by next week: #32150, #32254, #32255, #32028, #32152, #32147, #32189, #31654, #32253, #32170.

Build tools component update (#)
QUnit update seems to have gone off without a hitch. There are 7 npm dependencies that need to be updated. 6 are ready to go. grunt-sass needs a bit more digging in. This week, @jorbin is going to update the build tools roadmap he wrote up after WCSF and then pester a lead (likely @helen) to give it a read so that it can finally be published.
Not exactly build related, but test related: Bug scrub identified that we don’t have any tests for nav menus, especially around the classes we add. @johnbillion has agreed to write some tests there so that we can fix all the bugs around that.

Favicons (#)
Support for managing favicons seems like a rudimentary thing, and its absence in core does seem odd to some. We still need plugins to handle favicon and other media icons in the admin, there is currently no good way for users to do that. We’ve been talking about adding support for a favicon manager for a long time ( #16434 ), let’s make 4.3 the release that finally adds it. @johnbillion volunteered to lead the feature for 4.3, with help from @brandondove, @kraftbj, @sofiarose, and possibly @dh-shredder.

Next chat will be on May 20, 2000 UTC

#4-3, #meeting

Dev Chat Agenda, January 28, 2015

Here’s the agenda for Wednesday’s Dev Chat in the #core channel on Slack.

Time/Date: January 28 2015 21:00 UTC:

  • Kickoff Part II – Let’s talk a little bit about how we’re going to structure this release from week to week:
    • Monday Jumpstart posts
    • Bug scrubs
    • Ticket management
    • Mentoring
  • #5809 – Term splitting update (@boonebgorges)
  • Feature Plugins – Status updates from the three feature plugin leads:
    1. Customizer Theme Switcher – @celloexpressions
    2. Press This revamp – @michael-arestad
    3. Shiny Updates – @pento
  • WordPress Core Weekly@dh-shredder is looking for help with compiling the weekly activity roundup
  • Accessibility – Introduce the weekly hitlist and talk about accessibility priorities for 4.2
  • Mobilemake-flow tickets from @boren:
    • #29906 – Submenus can’t be dismissed on mobile.
    • #29989 – Hide Media Buttons on small screens
  • Open Floor – If you have something you’d like to bring to the table to discuss, leave a note in the comments

#4-2, #agenda

Dev Chat Summary, January 21st




  • @drewapicture is the 4.2 release lead.
  • @wonderboymusic will be feature lead for a lot of media/image stuff.
  • 4.1.1 will drop within a week.
  • All 4.1 guest committers are renewed for 4.2.
  • The tentative target release date for 4.2 is April 8th.
  • Wednesday meetings will continue as usual.
  • Weekly Friday bug scrubs start next week.
  • This Week in Core posts will resume.
  • The 4.2 feature plugins are, tentatively: Press This, Customizer Theme Switcher, and Shiny Updates. Customizer Menus is a possible long shot.
  • The general focus of 4.2 will be polishing existing UIs in terms of mobile and accessibility.


  • @nacin will post about guest commit renewal on make/core.
  • @drewapicture will post weekly bug scrub times on make/core.
  • @dh-shredder will start This Week in Core posts while permanent contributors are located.
  • @johnbillion will add a page to the core handbook on development processes for mobile.
  • @pento will post about contributing to Shiny Updates on make/core.
  • All feature plugins will post an update to make/core.
  • Component maintainers will make a list of the main issues affecting their components.
  • @johnbillion will post a call for component maintainers on make/core.

Links Mentioned


Continue reading

#4-2, #meeting, #release-lead

WordPress Core Weekly

Hi everyone!

It’s this time of the week again: WordPress Core Weekly is here. This updates covers all commits since last week up to to today, October 29th.

In case you missed it, the new default theme, Twenty Fifteen, is coming along very well, the feature plugins planned for 4.1 are being tested extensively and the Customizer JavaScript API is getting more and more complete.

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


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


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


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


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

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

Revisions covered: [29995] to [30093]. For the complete list of commits to trunk, check out the log on Trac.

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

#4-1, #week-in-core

Last Week in WordPress Core

Hi Everyone! It’s finally time for another update. This is the first Last Week in WordPress Core for WordPress 4.1! I know there hasn’t been one for ages, but after talking with @dh-shredder at WordCamp Europe I’m confident that we’re able to change that.

Let’s have a look at the changes between September 23 and today:


  • If the current user does not have the delete_posts cap on the current post type, don’t list delete or trash as bulk actions for the relevant context of Post list table. [29757] #20175
  • TinyMCE: when pasting/inserting content before a view, add new paragraph above it and insert the content there.
  • TinyMCE: Use Tahoma for RTL in general and Arial for Hebrew in editor styles. [29773] #29553
  • 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. All switch cases (except edit) now use break instead of exit. [29782] #16162
  • Show the number of approved comments instead of all comments on the dashboard in the “At a glance” section. [29785] #26738

Bundled Themes

  • Prevent the arrow in “Continue reading” links from wrapping to a second line. [29771] #27908
  • Twenty Fourteen: Include Latin Extended font subset for Lato. [29772] #29690


  • Add two properties to media.model.Attachments.propmap: include and exclude, which are aliases for post__in and post__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
  • Disable multi-file uploading in iOS 7.x Safari as it prevents uploading of videos. [29776] #29602
  • When the modal is open, don’t respond to arrow keys when <textarea> has focus. [29777] #29725
  • Add size to the UI for Gallery Settings in the media modal. Ensure that the TinyMCE view is refreshed when size changes. [29779] #18143


  • 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 the compact() 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.
    In WP_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(): [29781] #29557
    • 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=”<”].
  • Use SSL for all references to WordPress.org [29787] [29788] [29789] #27115
  • Change the default orderby value in wp_get_nav_menus() to 'name'. [29792] [29796] #29460

Thanks to @hauvong, @dlh, @mvd7793, @nerrad, @pavelevap, @loushou, @avryl, @TobiasBg, @DustinHartzler, @dominik.schwind, @afercia, @ryelle, @richardmtl, @noplanman, @wonderboymusic, @obenland, @miqrogroove, @ixkaito, @benjmay, @mantismamita, @nikolov.tmw, @shooper, @shooper, @voldemortensen, @igmoweb, @curtjen, @simonwheatley for their core contributions!

Revisions covered: [29756] to [29799]. For the complete list of commits to trunk, check out the log on Trac. Interested in joining in? Write or test a patch for 4.1. Also don’t miss the weekly meeting today 20:00 UTC

#4-0, #week-in-core

Feature Plugin Chat on September 23

Last week we mentioned holding a feature plugin chat today, but that didn’t happen. Let’s have it next week on September 23 2014 20:00 UTC.

We’ve done this before, but just to recap…

If you have an idea for a new feature, this will be a great opportunity to bring it up and find others interested in helping out.

Please leave one comment per feature idea with the following information:

  • A brief (one paragraph) overview of your feature plugin proposal.
  • Current plugin status (idea stage, planning stage, under development, existing feature plugin, prior work, etc).
  • A list of those involved or already interested in your feature plugin (including you!)
  • What you’d like help with (scoping, planning, wireframing, development, design, etc).

This post and the accompanying chat are for posting ideas that you’d be interested in working on. It is not for posting every feature idea you have for WordPress.

Current feature plugin leads: Please post an update for your plugin here, along with the information above.

See you all at the chat!

#core-plugins, #feature-plugins

Team rep nomination/vote

As discussed in the weekly developer meeting, core contributors need to select a representative for the WordPress “team reps.”

There should ideally be two reps: a primary and a secondary/backup.

Primary duties are to post an update weekly on make/updates mentioning what we’re up to (you know, building core), and to meet monthly in IRC with the representatives from other teams (only one of the two reps need to attend). I would look through that blog to get an idea of expectations, and also the minutes from last month’s meeting.

Sometimes other teams will be working on something that affects core (or core should know about it), at which point you are in a perfect position to make sure communication lines are open. Thus, anything that comes up in updates or meetings that other core developers need to know about or act on should be communicated back to the rest of the contributors. This would occur ostensibly during the weekly core dev IRC meeting, or potentially posting to make/core (this blog) for feedback as necessary.

Qualities needed: knowledge of core and core development processes; dedication to following Trac, commit activity, IRC meetings, and make/core; strong communication skills; and an excess of patience.

A rep will serve for three months. After three months, they should be in a position to help pick someone to succeed them, probably in the form of nominating a few people to the group. We should be able to keep this pretty chill; this isn’t meant to be something that requires a board of election supervisors.

The current reps are me and Mike Schroder (@DH-Shredder). Mike and I would not mind continuing our duties, if only because we like to test our own patience/sanity. But we are also happy to step back if someone else wants to step up.

So, to nominate yourself or someone else, please fill out this very simple survey by the end of day Friday (today).