Make WordPress Core

Updates from October, 2015 Toggle Comment Threads | Keyboard Shortcuts

  • Morgan Estes 1:45 am on October 13, 2015 Permalink |
    Tags: ,   

    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:

    (More …)

  • Morgan Estes 7:37 pm on September 29, 2015 Permalink |
    Tags: ,   

    Week in Core: Sept. 21-27, 2015 

    Oh Snap!, it’s time to usher in a new edition of Week in Core! If you have the time, throw a house party with some friends and read the full force of changes on Trac; if not, don’t sweat it — take simple pleasure in these highlights.

    This post covers changesets [34362][34658], committed during Sept. 21–27, 2015. Let’s give a hi-five and some TLC to the 102 contributors for a combined 296 updates! Together, we’re making WordPress nice & smooth.

    (More …)

  • Boone Gorges 6:30 pm on September 22, 2015 Permalink |
    Tags: , ,   

    Preparing your plugins and your client sites for termmeta 

    The biggest hurdle in the introduction of metadata for taxonomy terms (#10142) is compatibility with existing plugins and customizations. In this post, I’ll outline the most significant concerns, along with recommendations for next steps.

    This post has two audiences: authors of publicly available plugins and developers of client sites.

    I’ve just completed a scan of all the plugins on wordpress.org that mention ‘termmeta’ or ‘term_meta’ (and boy, are my arms tired!). The numbers there are promising – it’s a fairly small number of plugins that will be affected, and many of them have just a few active installations. I’ll share the results of my scan at the end of this post.

    Of greater concern are customizations that developers have built for clients. I know that many larger dev agencies, and many individual developers, have custom, in-house libraries that they use for client sites, and many of these libraries implement termmeta in one way or another. The best of these libraries will be unaffected by termmeta in core: they use prefixed functions, they store data in wp_options rather than a custom table, they use function_exists() where appropriate, and so on. However, I’m certain that there are many libraries – in use on many, many WordPress sites – that do not adhere to these best practices. Sites using these libraries will react in unexpected ways – some of which involve fatal errors – if preventative steps are not taken by the developers before termmeta is rolled into core. Developers should update their libraries and client deployments as necessary to avoid lost data or site downtime.

    The primary reasons for concern, listed in order of severity, are as follows:

    1. Function name clashes. The proposed core implementation introduces a number of new functions likely to be used in third-party termmeta implementations: add_term_meta(), delete_term_meta(), get_term_meta(), update_term_meta(), and update_termmeta_cache(). (See the latest patches on the Trac ticket for details.) Plugin should either use a prefix (eg myplugin_add_term_meta()), wrap the definitions in function_exists() checks, or disable the termmeta portion of the plugin based on a WP version check.
    2. Termmeta table deletion. A number of plugins have been found that DROP $wpdb->termmeta on plugin deactivation. Aside from being bad general practice, this could be extremely bad in the case that $wpdb->termmeta becomes a core table. Plugins should not drop {$wpdb->prefix}termmeta under any circumstances.
    3. Non-matching function signatures. I haven’t found any specific examples of this, but plugins that define their own versions of unprefixed functions (using function_exists(), as described above, should be sure that the signatures match. For example, if your plugin defines get_term_meta( $term_id, $taxonomy, $key = '', $single = false ), it will break when moving to the core implementation, which has the signature get_term_meta( $term_id, $key = '', $single = false ). Plugin authors should double-check that their use of unprefixed _term_meta() functions matches the parameter order and default values described in the proposed core implementation.
    4. Non-matching table schemas. A number of plugins create tables called {$wpdb->prefix}termmeta. Most custom tables that I’ve seen are very close to the proposed core implementation, aside from a shortened index length on the meta_key column, introduced throughout core in 4.2. In fact, all implementations I’ve seen are close enough that it’s likely that core will be able to continue to use the tables, leaving data intact. However, if there are significant mismatches – for example, different field names – it will cause serious problems. Plugin author should verify that tables called {$wpdb->prefix}termmeta have a compatible schema with the core implementation.

    Here’s a list of the plugins I identified from wordpress.org that will be affected by core termmeta (sorted most popular first). All of these plugins violate at least one of the maxims above. A few of them are OK except for a mismatched meta_key index the termmeta table; the current plan is for core to take care of this index automatically on upgrade. Most of the remaining violations have to do with unprefixed function names. If your plugin is listed below, you are strongly urged to put out an update as soon as possible that addresses the concerns described above. (Some of the plugins are very old, and may be inactive and/or unmaintained. In most cases, they should still be updated, in case of legacy sites.) Don’t hesitate to contact me, in the comments or privately, if you need more details about how a specific plugin in the list below will be affected.

    It’s looking likely that termmeta will be introduced in WordPress 4.4 (or perhaps 4.5). The time to act is now. Be a good Citizen of the Internet, and fix your plugins sur-le-champ.

  • Morgan Estes 9:08 pm on September 21, 2015 Permalink |
    Tags: ,   

    Week in Core: Sept. 13-21, 2015 

    Welcome to the Week in Core — Week Four, with super-exciting news from around WordPress-land, and Core changes and updates for Sept. 13–21, 2015 (commits [34093][34361]). This week’s core contributors number 106! I’m especially jazzed about the number of new names on the list, and want to thank everyone for your effort this week.

    News you can use

    The WP REST API team submitted a proposal to merge the plugin into core, with a two-phase integration plan. The merge proposal blog post also does a nice job of presenting the history of the plugin and some use cases.

    Do you use my-hacks.php in your site? Don’t. (A quick search through the plugin and theme repos shows only 10 plugins and 3 themes that mention the file.)

    Multisite is making some pretty big changes, including the addition of the  WP_Network class. Check out this blog post, which outlines some of the changes and a roadmap for future updates for 4.4.

    Interested in the user-focused part of WordPress? Of course you are! Join in the conversation about “Potential UI/UX projects in core.”

    Code changes

    Here are some highlights from the 268 change sets published to Trac; the complete report is available online in plain-text format for a bit more in-depth coverage.

    (More …)

  • Jeremy Felt 4:47 pm on June 24, 2015 Permalink

    Multisite Office Hours Recap (June 23, 2015) 

    Multisite office hours are held every Tuesday at 20:00 UTC in #core-multisite.

    Today’s chat log
    Overall 4.3 Release Objectives

    Last week’s (and this week’s) objectives:

    • More flow, more tickets, more observations to aid with Network Admin UI improvement.
    • Get a good patch up for #31240, possible commit.
    • Ongoing iterations, progress, discussion on `WP_Network` and `WP_Site` (and friends).
    • Write post, generate discussion around HTTPS in multisite for real (lower priority).

    It was a super light weight week for multisite, so not much progress. There was some traffic on existing tickets, but not much new activity. Summer lull… 🌞

    @hugobaeta gathered a few UI/UX tickets for WCEU contributor day – #32525, #32645, and #32647. We also have the general Admin UI screen sweep spreadsheet. Another ticket in that vein via @johnjamesjacoby is #32754, which is a string change but goes along with UX.

    If anyone has other UI/UX tickets, please make note. I’ll be poking around on Saturday. For anyone attending WCEU contributor day, a server with multisite is available for you to test on. I’ll hook some others up with super admin access beforehand.

  • Jeremy Felt 10:07 pm on June 9, 2015 Permalink

    Multisite Office Hours Recap (June 9, 2015) 

    Multisite office hours are held every Tuesday at 20:00 UTC in #core-multisite.

    Today’s chat log
    Overall 4.3 Release Objectives

    Last week’s objectives:

    • Have all 3 of these tickets closed and committed. #22383, #32434, #32503
    • Additional iterations on `WP_Network` and `WP_Network_Query`.
    • Generate discussion around HTTPS on #14172. @jeremyfelt will gather a list of HTTPS related tickets.
    • Nexus and iPad flows. Tickets created for bugs found in existing flows. Volunteers needed! :)

    Today’s meeting agenda:

    • Status on additional flows/visual records and next steps toward ticket creation.
    • New thoughts/discussion on `WP_Network`, `WP_Site` and friends?
    • Status of #22383, #32434, and #32503
    • Open floor for tickets, thoughts, etc…

    Topic Details:

    Status on additional flows/visual records. Next steps toward ticket creation.

    chat log

    We have new flows captured. @kraftbj posted the Nexus 6 results and @earnjam will be posting iPad shots within the next couple days. @topdown volunteered to capture screens for Samsung Note 8 and possibly other devices as well.

    To date, our device list includes: Nexus 6, iPhone 5s, iPhone 6, and Desktop, with additional screens specific to network upgrade.

    We posted some info late last week on how someone could help test and capture the network admin UI. Test installations of multisite are available for anyone to use if you have a device but just have no way of accessing a multisite installation. Please leave a comment on the post or in #core-multisite if you’d like to get started.

    As we create tickets and find bugs, we need to populate this spreadsheet as part of the overall screen sweep effort.

    Objective for next week: New tickets to address found issues. These issues logged in the screen sweep spreadsheet.

    New thoughts/discussion on `WP_Network`, `WP_Site`, and friends?

    Tickets: #31985, #32450, #32504, #31148
    chat log

    Not much discussion here. @johnjamesjacoby is going to have iterations of `WP_Site` and `WP_Network` this week. We should have a chat in #core-multisite soon after.

    Objective for next week: Iterations on `WP_Site` and `WP_Network`. Discussion around iterations.

    Status of #22383, #32434, and #32503

    Tickets: #22383, #32434, #32503
    chat log

    Objective for next week: Let’s cross our fingers that these are closed by tomorrow.

    Other items:

    Tickets: #14172, #32602
    chat log

    • @jeremyfelt still needs to generate discussion around HTTPS for #14172
    • @ipstenu found an issue with the plugin details modal when viewing plugin details on a sub site that has a different domain/scheme from the network admin. The switch to `network_admin_url()` that causes this came in #17902. A new ticket #32602 is open.

    Thanks everyone!

  • Jeremy Felt 6:08 am on June 3, 2015 Permalink

    Multisite Office Hours Recap (June 2, 2015) 

    Multisite office hours are held every Tuesday at 20:00 UTC in #core-multisite.

    Today’s chat log

    Overall 4.3 Release Objectives

    Last week’s objectives for dev chat:

    • Wrap-up #22383, #32434, and #32503 and then take a look at the add site flow and validation in `update_blog_details()`.
    • Continued progress on `WP_Network`, `WP_Site`, `WP_Network_Query`, and `WP_Site_Query`.
    • More thoughts on tracking scheme in `wp_blogs` for sites. #14172
    • More flows and network admin UI tickets from those flows.

    Today’s meeting agenda:

    • Status of #22383, #32434, and #32503
    • Status of `WP_Network` #31985, `WP_Site` #32450, `WP_Network_Query` #32504, and `WP_Site_Query` (likely #31148)
    • Tracking scheme for a site in `wp_blogs` is still looking for feedback, owner, etc.. #14172
    • More flows and network admin UI tickets from those flows.

    Topic Details:

    Arbitrary domain/path combinations in edit site:

    Tickets: #22383, #32434, #32503
    chat log

    • #32503, removing the home/siteurl mirror checkbox, is either ready to go in or very close. @jeremyfelt will take a closer look for commit.
    • #22383 is close, though the latest patch tracks scheme, domain, and path. We can leave scheme out for another ticket in the future. @earnjam is going to take another look, @jeremyfelt will also take a look for commit.
    • We talked through #32434 and decided to try using a URL (combined domain/path) column and converting the users column to a total count rather than a list of the first 5 users. @ocean90 is working on this.

    Objective for next week: Have all 3 of these tickets closed and committed.

    Progress on `WP_Network`, `WP_Site`, `WP_Network_Query`, and `WP_Site_Query`:

    Tickets: #31985, #32450, #32504, #31148
    chat log

    We chatted through the approach we’re using with `WP_Network` and `WP_Network_Query`. @johnjamesjacoby built the first patch by pulling most current network related code into the `WP_Network` class with the intent to break pieces out into `WP_Network_Query` once we have more of a handle on things. @jacobsantos had some good feedback on possible design approaches as he’s seen some common looking patterns/properties in `WP_Widget` and `WP_Customizer`.

    Objective for next week: Additional iterations on `WP_Network` and `WP_Network_Query`.

    Tracking scheme for a site in `wp_blogs`:

    Tickets: #14172
    chat log

    @johnjamesjacoby had some good concerns about possible approaches with tracking scheme. We’d like to generate a larger conversation around this topic. A few specific questions are:

    • Things that the current code prevents or prohibits. Or what does/doesn’t work in core now.
    • Exactly how capable do we want this to be.
    • Does the oncoming “TLS everywhere” of HTTP/2 change this discussion?
    • What concerns are there around introducing a new field on `wp_blogs`. How are large networks affected?

    Please leave any thoughts in the comments here or directly on the ticket.

    Objective for next week: Generate discussion. @jeremyfelt will gather a list of HTTPS related tickets.

    Network Admin UI flows for Make/Flow:

    chat log

    @ubernaut added many iPhone 5s flows, so we’re up to a handful now. @kraftbj is going to do Nexus flows and @earnjam is going to handle iPad.

    Objective for next week: Nexus and iPad flows. Tickets created for bugs found in existing flows. Volunteers needed! :)

    Thanks everyone!

  • Jeremy Felt 3:33 am on May 27, 2015 Permalink

    Multisite Office Hours Recap (May 26, 2015) 

    Multisite office hours are held every Tuesday at 20:00 UTC in #core-multisite.

    Today’s chat log

    Overall 4.3 Release Objectives

    Last week’s objectives for dev chat:

    • Continued work on mock-ups, discussion around edit site and add site flows.
    • Android and iPad flows posted to Make/Flow.
    • Conversation around and updated `WP_Network` patch and a first attempt at `WP_Site`.

    Today’s meeting agenda:

    • Arbitrary domain/path combinations. #22383 (and now #32434)
    • `WP_Network` #31985 and `WP_Site` #32450
    • Thoughts on how to track scheme for a site. #14172
    • More flows (and tickets) needed. :)

    Topic Details:

    Arbitrary domain/path combinations in edit site:

    • Tickets: #22383, #32434, #32503
    • chat log
    • @hugubaeta explored things some more and left some good feedback on #22383. We agreed to push ahead with the single entry for scheme, domain, and path in #22383.
    • During that discussion, we started to address the question of the checkbox for updating home and siturl. This resulted in #32503. After some further discussion there, we’re going to try removing that checkbox entirely and using some logic to determine when to update home and siturl. @earnjam is working on the patch for this.
    • @ocean90 is working on updating a patch for #32434 after discussion there and in #22383.

    Progress on `WP_Network` and `WP_Site`:

    • Tickets: #31985, #32450
    • chat log
    • second chat log
    • Initial brief conversation. @earnjam is going to take a closer look at the existing patches. We need to start brainstorming where `WP_Network_Query` starts.
    • Continued this conversation with @johnjamesjacoby later in the day. He’ll be working on the patches a bit more this weekend as well.
    • #25293 was brought up to consider so that the correct network ID is available after `switch_to_blog`. Also #14867 to ensure the correct scheme is attached to the site object.

    Thoughts on how to track scheme for a site:

    • Tickets: #14172
    • chat log
    • @johnbillion agreed that `wp_blogs` seemed like the right place to track scheme. We’ll need to worry some about the upgrade process, though larger networks should be able to handle something like this.
    • Some more discussion on the ticket would be great. We should get a patch going sooner than later. This is up for grabs, claim it in the comments! :)

    More flows for Make/Flow:

    • chat log
    • @ubernaut is almost done with iPhone 5s videos.
    • @johnbillion mentioned trying some recordings with Android.
    • @jeremyfelt is still claiming that he’ll do an iPad capture one night.
    • We need to get more of these up on Make/Flow to capture a good visual record. As they go up, please create tickets for things that look off. Even if you haven’t posted a flow of your own, please browse through the existing ones and look for issues.

    Thanks to everyone in office hours today! Chime in with any comments, tickets, etc… or join us in #core-multisite. :)

  • Jeremy Felt 9:28 pm on May 19, 2015 Permalink

    Multisite Office Hours Recap (May 19, 2015) 

    Multisite office hours are held every Tuesday at 20:00 UTC in #core-multisite.

    Overall 4.3 Release Objectives

    Last week’s objectives:

    • Mockups for the Edit Site / Add New Site improvements. [log] @hugobaeta has started working with this and we had a good conversation today to help fill in some of the blanks and give more to chew on. See the summary below of the issue.
    • Have more flows posted to Make Flow for the network admin. [log]
    • Get some decent progress on `WP_Site` and `WP_Network` #31985. [log] – I poked at @johnjamesjacoby‘s patch for `WP_Network()` and reduced it down to the bare essentials. We can start building this up and figuring out what pieces belong in `WP_Network_Query()`. Hoping to start work on `WP_Site()` shortly as well.

    Summing up the Edit Site / Add Site UI/UX issue:

    We’ve always had two configurations for a network in multisite: subdomain or subdirectory.

    Subdirectory is the easiest to handle as the domain will always be the same, inherited from the network. Only the path can change from site to site. Not only is this a UI decision in the Edit Site and Add Site screens, it is how ms-settings.php parses the requested URL when a subdirectory configuration is used.

    In the changes we make to the Edit Site #22383 and Add Site #31240 screens, we’ll still want to account for subdirectory configurations and make it as easy as possible for somebody to choose a path without worrying about scheme or domain.

    Subdomain seems similar, but ends up being very different. At first glance, only the domain can change from site to site, with the path always set to “/”. This is the case in the current Add Site screen. In the current Edit Site screen, you can change the full domain and the path to anything you’d like. Super admins have been able to use this to get around the strict UI requirements for subdomain configuration in Add Site. In ms-settings.php, the code cares less. We search the database for a matching domain and path, which effectively allows for arbitrary domains and paths—a good replacement for domain mapping.

    In the changes we make to the Edit Site and Add Site screens, we should make this as flexible as possible. The name of the configuration “Subdomain” will be weird, but it should be possible to enter any combination. Ideally we can confirm that this combination works before completing a save.

    Thanks to everyone in office hours today! Chime in with any comments, tickets, etc… or join us in #core-multisite. :)

  • Jeremy Felt 11:22 pm on May 12, 2015 Permalink

    Multisite Office Hours Recap (May 12, 2015) 

    Multisite office hours are held every Tuesday at 20:00 UTC in #core-multisite.

    4.3 Release Objectives

    Our objectives for 4.3 can be split between UI/UX and back-end core. Here’s what we’re working on along with who is assigned or expressed interest in the past.

    Network Admin UI:

    1. Capture mobile flows and find areas to improve. @sofiarose, @kraftbj, @ubernaut
      • See last week’s office hours recap for a list of flows we’d like to capture
      • @hugobaeta has posted some desktop flow
      • This objective will likely mirror some of what the Admin UI group is doing. We’ll know more about individual opportunities as we dive in deeper.
    2. Combine scheme/domain/path in Add New Site and Edit Site workflows. @hugobaeta
      • When adding a new site, you should be able to just type the site’s new address without worrying about where to put each of the individual parts. https://wordpress.org should split into a scheme of https, domain of wordpress.org, and path of /
      • If an admin email is added that does not belong to an existing user, a user will be created with the site’s name and the user’s email address. There should be an opportunity to provide the user’s username and email in this scenario.
      • Related tickets: #22383, #31240, #14172, #14215
      • @hugobaeta will be working on some mock-ups
    3. Improvement of network upgrade workflow (ajaxify)
      • The current network upgrade process cycles through sites 5 at a time and processes the database upgrades. After each set of 5, the page refreshes and the next 5 are loaded. If one encounters an error, the entire process is stopped to await manual interaction. This should be something handled nicely via ajax.
      • Related tickets: #11869, #18292, #22589, #24922, #26056, #31405
      • @boren has posted a Mac/Chrome network upgrade flow

    Multisite core:

    1. Provide validation for domains, paths, emails. @boonebgorges, @johnbillion, @jeremyfelt
      • The combined scheme/domain/path objective above relies on the validation of domains, paths, and emails. There are several quirky restrictions in multisite that would be nice to clear up. The first step is to establish validation functions so that we can write tests and then change the results as needed.
      • Related tickets: #17397, #18777, #20019, #19724, #21994, #15936, #16126, #17904, #26784
    2. Introduce WP_Site, WP_Network, WP_Site_Query, WP_Network_Query. @johnjamesjacoby, @earnjam, @rmccue, @jeremyfelt

    If you’re interested in your name being attached to one of these objectives, please leave a comment here or a ping in #core-multisite.

    There may be room for more, or reason to swap one of these with something else once we start progressing. Let’s keep the list about this size for now so that we have something consumable. We’ll continue to revisit these objectives weekly throughout the cycle.

    • Dave Navarro, Jr. 2:31 pm on May 13, 2015 Permalink | Log in to Reply

      This is probably outside the scope of what you want to accomplish this cycle, but the ability to export a single site from a multisite install so that it can be imported as a stand-alone site is critical to me. The process for this right now is extremely painful.

    • geturwealth 8:55 am on May 27, 2015 Permalink | Log in to Reply

      I really wish I understood this stuff better. I guess I should make use of the tutorial section. Until I do understand this, I’ll not make any changes as I have had too many glitches from doing them without proper understanding. Does anyone out there feel my concern?

compose new post
next post/next comment
previous post/previous comment
show/hide comments
go to top
go to login
show/hide help
shift + esc
Skip to toolbar