WordPress.org

Ready to get started?Download WordPress

Make WordPress Core

Updates from March, 2015 Toggle Comment Threads | Keyboard Shortcuts

  • Drew Jaynes 12:09 pm on March 4, 2015 Permalink |
    Tags: ,   

    Dev Chat Agenda, March 4, 2015 

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

    » Beta 1 is one week away, along with the enhancements deadline.

    Time/Date: March 4 2015 21:00 UTC:

    1. Feature Updates
      1. Customizer Theme Switcher – @ocean90 / @celloexpressions
      2. Press This – @michael-arestad / @stephdau / @azaozz
      3. Shiny Updates – @pento
      4. Emoji – @pento
    2. Component Updates
      1. Accessibility – @afercia
      2. Mobile – @ryan
    3. Release Schedule Recap
    4. Daylight Saving Time reminder
    5. Open Floor – Looking for dev feedback on a ticket? Use this part of the meeting to let us know!
     
  • Pascal Birchler 7:37 pm on February 25, 2015 Permalink |
    Tags: ,   

    WordPress Core Weekly 

    Hello everyone, let’s have a look at what’s going on in WordPress core! This edition covers February 19th, 2015 [31479] through February 25th, 2015 [31544].

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

    Customize

    • Make sure WP_Customize_Manager::theme() never returns null. [31536] #31445
    • Add theme browsing and theme switching to the Customizer. Brings into core the Customizer Theme Switcher feature plugin. You can now browse, preview, and activate themes right from the Customizer [31533] #31303

    Accessibility

    • Provide proper label associations and descriptions throughout the network admin [31517] #38406
    • Add missing labels to Archives and Categories dropdown widgets. [31520] #18650

    Press This

    • JSON encode the URL before appending it to the bookmarklet. See #31373. [31537] #31373
    • Hard-code the minified bookmarklet js. Adding the non-minified bookmarklet to the browser bookmarks bar may have unexpected effect. #31373
    • PressThis v2, first run. [31534] #31373

    Taxonomy

    • Add orderby=description support to get_terms(). This appears as a sortable column header. [31532] #31364
    • Pass taxonomy name, not object, to edit_term_taxonomy and edited_term_taxonomy actions. [31525] #30999

    Media

    • Better image-type support checks in image unit tests. PHP can be compiled without support for certain image types. Our unit tests should be sensitive to these configurations. [31510] [31512] #31124
    • Specify globals in media JS files – it is important to denote where we are diverging from dependency injection. [31489] [31491] [31492] [31493] [31494] #28510

    Upgrade/Install,Upgrade/Install

    Script Loader

    Menus

    • Menus: Remove fixed height from .description-thin fields. [31524] #31426
    • Menus: Prevent checkboxes and radio buttons from being stretched to full width on mobile. [31523] #31425

    Themes

    • Use a darker color for “No themes found” message to increase contrast. [31519] #26600
    • Add feedback for screen readers when search results are changed. [31497] #26600
    • Update the theme count when searching for installed themes, like we do on Add Themes screen. [31495] #26600

    Comments

    • Add comment-author-is-site-member class to comment output for site members. [31518] #24054
    • Delegate focusin and focusout events for row actions to make sure the actions are always revealed on focus. [31509] #29765

    Users

    • Multisite: Pass a response code of 200 to wp_die() when a user is successfully added to an individual site after using the /newbloguser/ URL from an invite email. This is a user facing success message. [31514] #31224
    • Multisite: Avoid clearing stored capabilities for a user when removing their built in role in multisite. [31516] #18934
    • When creating a new user, pasting a password should update the password strength indicator. [31483] #31226

    Administration

    • Improve table footer tab sequence by moving <tfoot> after <tbody>. [31513] #30914
    • Dashboard: Add a filter for the query arguments used for the Recent Posts widget. [31508] #29374
    • Quick Edit: Make date fields a bit wider. [31507] #27912
    • Use correct closing tag for “Under the Hood” header on About screen. [31503] #31402

    Plugins

    • Do not activate plugins on initial installation in multisite. Check is_multisite() before activating a plugin that has been installed via AJAX. Without this check, the plugin would be automatically activated on the main site of the network. [31511] #31327

    TinyMCE

    • TinyMCE wpView: don’t insert nested paragraphs when inserting embeddable URLs. [31485] #29526

    Bundled Themes

    Thanks to @afercia, @ AramZS @atimmer, @azaozz, @boonebgorges, @celloexpressions, @cfoellmann, @danielbachhuber, @dd32, @designsimpl, @dipesh.kakadiya, @DrewAPicture, @folletto, @ianmjones, @ipm-frommen, @iseulde, @janhenckens, @jeremyfelt, @jlevandowski, @joedolson, @joostdevalk, @kraftbj, @lancewillett, @mako09, @marcelomazza, @markjaquith,@michael-arestad @MikeHansenMe, @neil_pie, @NikV, @obenland, @ocean90, @PeteMall, @ravindra-pal-singh, @rachelbaker, @rianrietveld, @SergeyBiryukov, @stephdau, @stevegrunwell, @swissspidy @tyxla, @Viper007Bond, @westonruter, and @wonderboymusic for their contributions!

     
  • Morgan Estes 9:50 pm on February 19, 2015 Permalink |
    Tags: ,   

    WordPress Core Weekly 

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

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

    WordPress 4.1.1

    • Tag 4.1.1 [31478]
    • Bump $tinymce_version in the 4.1 branch. [31477]
    • Remove errant string. [31475]
    • About: Add changelog for 4.1.1. [31474]
    • Add SVN eol-style = native where missing. [31471]
    • Add eol-style property and normalize EOLs. [31470]
    • Bump 4.1.1 version numbers & dates. [31431]

    Media

    • Revert [31198] from the 4.1 branch, as it is an incomplete fix that introduces more problems than the tiny issue it was attempting to solve. [31468] #30725
    • Don’t try to read a non-existent Exif:Title tag in wp_read_image_metadata(), as it’s not a part of the Exif standard. [31462] #31043
    • Fix the display of Audio and Video in the Media Library when using IE8 and below. [31444] #31058
    • Prevent IE9 and lower displaying the download file dialogue when attempting to upload using the html4 Plupload handler. [31429] [31430] #31037

    TinyMCE

    • Fire nodeChanged when an embedded iframe is resized so we can adjust the editor height and other UI components. Props iseulde, [31466] #30646
    • Ensure the image toolbar stays visible when the image is much wider than the editor. Merges [31362] to the 4.1 branch. [31437] #30696
    • Select the iframe element by id. Needed as some browser extensions insert extra elements in the page. Merges [31180] to the 4.1 branch. [31436] #30785

    Bundled Themes

    Internals

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

    Customize

    • Remove margin for hidden controls. [31460] #31330
    • Don’t focus new widgets if they are added programmatically. [31428] #31295
    • Escape Customizer links in the admin menu. Fix usage of add_query_arg(). [31427] #30952
    • Restore showing a login form inside the previewer if an user is logged out. Broken since [31370]. [31421] #31294
    • Widgets: Add return param for widgets admin page to the “Manage in Customizer” link. [31420] #30888
    • Improve [31252] to show the move-widget buttons only if there is more than one rendered sidebar. [31419] #30690

    Query

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

    Toolbar

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

    General

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

    Taxonomy

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

    Networks and Sites

    • Use get_admin_url() to get the correct My Sites URL without calling switch_to_blog() directly. [31448] #31314
    • Create the My Sites URL in the context of a user’s primary site.
      Switch to the user’s primary (or active) site before creating the My Sites URL. This previously linked to the current site’s dashboard, even if a user was not a member of that site. [31445] #31314

    Administration

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

    Embeds

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

    Dev Chat Notes

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

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

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

    With 4.3 starting development in less than 3 months, now would be the time to throw your hat into the ring. I think, ideally, there is an announcement before 4.2 hits beta. This wouldn’t be about doing nothing for the next 3 months, but already getting started in terms of laying the groundwork.

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

    Tickets needing a look

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

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

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

     
  • Michael Arestad 7:42 pm on February 18, 2015 Permalink |
    Tags: ,   

    Press This Revamp Merge Proposal 

    What is it?

    Press This is a redesign of an existing feature with a focus on automation, speed, and mobile usability.

    Download the plugin and check it out for yourself!

    Features

    One of the requirements of core is at least feature parity with the old version of Press This. Here’s a comparison chart of where the new Press This is.

    Feature Old New
    Drag & drop install on desktop Yes Yes
    Editor, including: title, image/gallery addition Yes Yes
    TinyMCE buttons (minus kitchen sink) Yes Mostly [1]
    Ability to publish or save as draft Yes Yes
    Post formats Yes Yes
    Categories Yes IYes
    Tags Yes Yes
    Content Scraping Yes Improved [2]
    Media Discovery Yes Improved [3]
    Alert before closing/navigating away Yes Yes
    Can add to bookmarks Yes Yes
    Responsive, clean design, updated icons No Yes
    Fast loading (speedy!) No Yes
    Mobile installation No Yes

    [1] A number of TinyMCE buttons are removed intentionally. Only necessary WYSIWYG buttons are shown now.
    [2] Not only is it included, but it’s quite a bit smarter than the previous one.
    [3] Now is actually quite exposed in the UI.

    More generally

    • Trimmed down UI for extra-speedy reposting of your favorite left shark gif
    • Core architecture of the plugin/tools is an as-pure-JavaScript-app as possible
    • Currently AJAX-driven, but ready to be switched to using the WP-API endpoints as they become available in the future
    • Backward compatible with the current version of the Press This bookmarklet as bundled in WP, but also bring its own, more powerful one with it
    • Can blog content from any web page found online
      • highlighted text gets pulled in as a blockquote
        • if nothing is highlighted, it makes a good guess as to what should be quoted
      • in-page images get pulled in to choose from
        • Said images are augmented with meta data to sort them in the order the site advertises to be best
      • audio, video, and and twitter embeds are also listed in the suggested media to insert at your whim
    • Saving draft sends you into the full editor (and saves) so you can do your fancier WYSIWYG-y things
    • Publishing is awesome and quick
    • Image side-loading
    • Ultimate (the best ever probably) WYSIWYG toolbar that’s trimmed down to just B, I, Blockquote, Link/unlink, undo, redo (and lists on wider screens)
    • 2 modes
      • Direct access: Like quick post, but awesome and totally usable on a fancy phone
      • Bookmarklet
        • Similar to the older Press This in use. Save as bookmarklet > Press a site for quick reposting of things
        • If no content detected (new tab), you can use it like a quick post application

    So which problems are we solving?

    • Outdated UI –> Updated
    • No responsive styles –> ultra responsive
    • Decent automation –> better automation (suggested media, blockquote, etc)
    • Pretty dang near impossible to add as a bookmark and use on a tablet/phone –> Added our own tool page (temporary) to add improved markup (still could use a bit of finessing)
    • Suggested media was hard to find –> Now is hard to miss
    • A bit rough and slow to use and compose with –> Pretty dang streamlined

    What brought us to this solution and what other potential solutions did we explore?

    When we were initially exploring designs and ideas, a few people suggested just improving Post New. The main reason we opted not to was speed. Post New comes with all of wp-admin and its files. It’s a bit of a beast. We wanted an extremely light, extremely fast (both in performance and in usability) way to post and keeping Press This was a good way to go. We can also pull the ideas and techniques we like back into Post New if successful and useful.

    We experimented with SVG icons (one less http request, but ultimately removed as Dashicons are required for the editor). We planned to use the upcoming API. We have trimmed down stylesheets and JS (only the styles necessary for a PT view). There is no extra UI that could get in the way of going from 0 to published post. Press This also has the luxury of being able to fall back to the full editor (via Save Draft) for those that have plugins and other features the need to set before posting.

    Usability testing (not user testing y’all)

    We did a couple rounds of usability tests. One for a11y and another with some new users.

    Both had tremendous difficulty in even adding the bookmarklet. @marcelomazza did a pretty solid job fixing up the add bookmarklet screen.

    We ran into a number of a11y issues and addressed as many as we could. Could still use another round of a11y testing.

    Once the new users figured out how to install it, they didn’t have many issues creating a post. I’d like to do more with ultra Space Jam pro users like yourselves.

     Mega thanks to everyone involved so far:

    @stephdau @azaozz @marcelomazza @ryan @kraftbj @afercia @iseulde @melchoyce @folletto @georgestephanis @helen @drewapicture @danielbachhuber @dd32 (for epic Github > SVN sync)

    And thanks to all the testers so far!

     
    • Jeremy Felt 8:00 pm on February 18, 2015 Permalink | Log in to Reply

      This has really turned out excellent. There’s been a ton of progress over the last couple weeks and as an “every once and a while, but hoping to use it more” user of Press This, the new UI is looking great.

    • Ansel Taft 9:51 pm on February 18, 2015 Permalink | Log in to Reply

      “Trimmed down UI for extra-speedy reposting of your favorite left shark gif”

      Nice reference. I actually spit coffee in a pop of laughter you awesome jerk.

      “Jerk” not meant seriously.

    • Ionel Roiban 10:42 pm on February 18, 2015 Permalink | Log in to Reply

      Will test and see if it can actually work as a bookmarking service, something like Pocket (or its Open Source version Wallabag), or for content curation, similar to what Scoop.it does.

      • Michael Arestad 10:58 pm on February 18, 2015 Permalink | Log in to Reply

        I’ve actually been testing it as a bookmarking service, but it’s a little tricky the way I was using it. (actual bookmarks).

        • Ionel Roiban 11:26 pm on February 18, 2015 Permalink | Log in to Reply

          How about a Chrome extension. “bookmarklet” to me sounds like a quick hack, although it really works, pulling the image and highlighted text.

          I would also take it further, to content curation, the hot 2015 trend for SEO.

          Congratulations for bringing this feature back to life!

    • Stagger Lee 11:47 pm on February 18, 2015 Permalink | Log in to Reply

      Do you guys (mis)use Amphetamines ? :)

      I have never seen so much activity in any CSM community. You really deserve No. 1 place in the world of CMSs.

    • Shaped Pixels 6:11 pm on February 24, 2015 Permalink | Log in to Reply

      A suggestion…. if Press This detects a Copyright meta tag, that it doesn’t allow any content from that source to be scraped.

  • Gary Pendergast 12:26 am on February 13, 2015 Permalink |
    Tags: ,   

    Emoji Chat Meeting Notes, February 12, 2015 

    The full meeting archive is available here.

    1. Why we’re doing this

    So, here’s a bit of back story.

    As of r31349, WordPress partially supports emoji. ~60% of WordPress sites are running MySQL 5.5 or later (so can be upgraded to store emoji), and ~40% of browsers natively support emoji. Emoji are a wildly popular method of communication, so we can expect them to be heavily used as soon an they’re available. The problem is, 60%/40% means a really bad experience for a huge number of our users, who’ll try to use emoji, and fail.

    This is where the emoji feature plugin comes in to play. In order to help the 40% of WordPress sites that can’t be upgraded to store emoji natively, the wp_encode_emoji() function will turn them into HTML entities. Due to the unimaginable joy that character sets brings me, this will only be applied to sites using the utf8 character set, which accounts for the vast majority of WordPress sites – utf8 has been the default character set since r4860.

    To help the 60% of browsers that don’t display emoji natively, we’re using the Twemoji image set as a fallback. This lets us show emoji everywhere, without causing extra load where emoji are already supported, mobile browsers being the important example here.

    Now, there have been some concerns brought up previously that I’d like to address.

    “Is this really appropriate for core?”

    Yes. (Obviously that’s my answer, or we wouldn’t be here.) WordPress is is the business of making communication simple and accessible for all. Tech users everywhere have clearly chosen emoji as a means of communication, so it’s up to us to make sure they can do that within WordPress as easily as possible, or risk being left behind.

    “Should we be concerned about changing the images in the future? Wouldn’t we be altering users’ content?”

    No. By using Twemoji only when we can’t provide native support for emoji, it’s a pretty clear message that while the general appearance of emoji stays the same, the actual sprite used can differ significantly between platforms. (For example, every emoji set except Android uses a left hand for :thumbsup:.) As more browsers add native support for emoji, Twemoji usage will drop, reducing even further any impact we can have on users.

    And so, that brings us to today.

    2. The current state of the plugin

    The plugin is very close to done. The editor plugin needs some attention, which @azaozz will be providing soon. There are a few bugs to discuss, which are mostly around fallback behaviour in browsers that don’t support emoji natively. Apart from that, the basic functionality is pretty much how I would expect it to appear in core. It’s had a brief review from the accessibility team, with only some minor alterations needed. The Twemoji images won’t be included in wordpress.zip, as it’s a total of 3.4MB of images. They’re currently hosted on WP.com’s CDN, but we’re investigating other options for where to host them, probably the W.org CDN. Given that the wp-admin Dashboard also loads things from Google, I have no problem with hosting them on an external CDN. There will naturally be a filter on the URL, to allow local hosting for sites that don’t want to use the CDN.

    One of the major concerns at the moment is that we’re going to be splitting data formats, depending on if the site uses the utf8mb4 or the utf8 character set. utf8mb4 stores emoji natively, while utf8 requires us to HTML encode the emoji characters. In the futures, we’ll look at upgrading sites to utf8mb4 if they’ve upgraded their MySQL since WordPress 4.2, but that leaves the potential for mixed encoding – old posts having HTML encoding, new posts having the native characters. A post will be automatically updated to native upon saving, but do we need to consider upgrade routines, to go through all old posts and convert them?

    Export/import also needs thorough testing, particularly when importing and exporting between sites having different character sets.

    3. Unicode 8.0: the future of emoji

    To talk about the future of emoji, you need to know a little bit of history. At the basic level, emoji are all single characters defined within the Unicode standard. However, they also support modifiers. Modifiers are a second character following the first, which usually causes the two characters to be merged into a single character when rendered. A good example of this is flag emoji.

    The character G is U+1F1EC. The character B is U+1F1E7 (these characters are different to their ASCII equivalent). When used individually, they’ll display as that letter. When combined next to each other, they’ll display as the British flag.

    So, Unicode 8.0 will two interesting things: a set of 37 new emoji, and skin tone modifiers. When a skin tone modifier character is placed after any face or person emoji, the emoji will show with that skin tone. Unicode 8.0 is due to be finalised in August 2015, so we and (Twemoji) will be looking at adding support for these then.

    From a technical perspective, it just means we need to be aware that emoji are not always one character, and the methods for detecting multi-character emoji are about to get more complex.

    We’ll also be able to detect if a browser is able to render the new emoji and skin tones, and fall back to Twemoji if they can’t. I don’t have a timeline for when browsers will support the new emoji, so I think it’d be good for us to get ahead of the curve then.

    utf8mb4 stores anything in the Unicode address space, including unallocated characters, so I don’t expect any problems with storage of new emoji.

     
    • Ryan Hellyer 8:45 am on February 18, 2015 Permalink | Log in to Reply

      I’m not seeing any reason to host them externally. Why not just bundle an extra 3.4 MB into the zip?

      Even better, perhaps this should just stay as a plugin? Maybe I’m wrong, but this seems a very niche thing to me.

      • John James Jacoby 1:17 pm on February 18, 2015 Permalink | Log in to Reply

        Particularly in the US, I can anecdotally tell you that Emoji has had slow adoption for several years, but it’s becoming less-so with the native inclusion of it in iOS. See my comment below about smilies, which also very easily could have been a plugin (and may have originally been at one point?) but they’re so simple and commonplace now, it’s weird not seeing them rendered as images. :)

      • Gary Pendergast 8:26 pm on February 18, 2015 Permalink | Log in to Reply

        Why not just bundle an extra 3.4 MB into the zip?

        They’re compressed PNGs, so they won’t compress much further. They’d be doubling the size of the zip.

        Maybe I’m wrong, but this seems a very niche thing to me.

        Not so much. Emoji are a very popular method of communication by large groups of the the population. If anything, I’d say it’s an oversight that it’s taken us so long to get to supporting emoji.

    • John James Jacoby 1:15 pm on February 18, 2015 Permalink | Log in to Reply

      Something I don’t see mentioned is the current iteration of smilies.

      • Does Emoji support secretly allow us to nix old-school smilies and cut out an option?
      • Can/should Emoji support be tacked on-top-of smilies and work similarly to Slack and use a bunch of string-replacements?

      Understanding the approach and code behind each is different, they are identical to a typical end-user because – rather conveniently for us – smilies in core have no UI (though there are plugins that implement one.)

      I’m imagining either a new UI option for Emoji similar to smilies in writing settings, or having it use that same one, which led me to wondering how dissimilar the underlying functionality needs to be, or if this is an opportunity to update an old API.

      • Gary Pendergast 8:33 pm on February 18, 2015 Permalink | Log in to Reply

        Does Emoji support secretly allow us to nix old-school smilies and cut out an option?

        If I told you, it wouldn’t be a secret anymore, would it? ;-)

        Can/should Emoji support be tacked on-top-of smilies and work similarly to Slack and use a bunch of string-replacements?

        Nope. That’s a pretty niche usage, with native OS and browser support for emoji increasing, I’d prefer to keep that kind of hack out of core. It’d also be a super expensive search/replace to have happen at render time.

        Currently, there’s no plan to change/remove the existing smiley option – emoji will just work if you happen to use them, smilies will continue to be optional (but will be replaced by nicer images if you do use them).

        I would like to deprecate the smiley option at some point, but I haven’t given it enough thought to say when that could/should happen.

    • Paal Joachim Romdahl 11:54 pm on February 18, 2015 Permalink | Log in to Reply

      It seems adding emoji to core will cause some perhaps a lot of frustrations for people:
      http://wptavern.com/wordpress-4-2-on-track-to-expand-core-support-for-emoji

      As the comment seems to be they can add that feature to core but what about…..-insert feature-

      • Paal Joachim Romdahl 1:24 am on February 20, 2015 Permalink | Log in to Reply

        Another thought….. Call it a Easter Egg. Like in games that have hidden features. Press a combination of keys or go and do something special in a game and it unlocks something cool.
        I think each release of WordPress could include a Easter Egg (“just” for fun and unique use). Emoji is the first Easter Egg and fits perfectly as Easter is around the time of the 4.2 release.

        So when people ask why it was included in WordPress 4.2 one can say it is an easter egg. Meaning it was included “just” for fun (of course it has it purpose for being included).

  • Pascal Birchler 3:31 pm on February 11, 2015 Permalink |
    Tags: ,   

    WordPress Core Weekly 

    Hi Everyone!

    It’s time for another run-down of what’s going on in WordPress core. This edition covers February 3rd, 2015 [31332] through February 11th, 2015 [31410].

    Quick info: If you’re interested in helping out with these updates, comment below, or ping @mike on Slack! There’s a dedicated #core-weekly-update channel and you can even use a super cool script to parse the logs.

    Without further ado:

    Customizer

    • Improve the Customize experience on mobile. [31384] #28784
    • Introduce an API to create WP_Customize_Settings for dynamically-created settings. [31370] #30936

    Updates

    • Replace $.post() calls with wp.ajax.post(), and clean up a bunch of the now unnecessary code. [31409] #29820
    • Use a positive wording for translations update notice. [31368] #28199
    • If the current user is not allowed to install/update plugins, we should return a JSON error, so it can be used by the JS handlers. [31335] #29820
    • Add capability checks to the ajax callbacks, to ensure the current user is allowed to install/update plugins. [31334] #29820
    • Add ajax-y updates to the plugin list page, and ajax-y updates and installs to the plugin card page. [31333] #29820
    • Updates: Display plugin update rows even for plugins which are not hosted by WordPress.org or the HTTP request times out on. [31382] #29583, #30767

    Embeds

    • oEmbed discovery fails on XHTML head links, adjust the regex to not match /. [31407] #31212

    Media

    General

    • Replace generic “Dear user” greeting in email notifications with a more personalized one. [31403] #31217
    • Update body class when switching between admin color schemes. [31400] #30488
    • Avoid inadvertent stomping of the original $args parameter passed to plugins_api_result and themes_api_result filters in plugins_api() andthemes_api(), respectively. [31363] #29079

    Comments

    • Switch to a string placeholder, as number_format_i18n() returns a string. [31402] #26553
    • Use _n() in comments_popup_link() when setting the default string to display if there are more than one comment. [31401] #26553
    • Use screen reader text instead of a title attribute in comments_popup_link. [31388] #26553

    Taxonomy

    • Don’t parse empty tax_input keys in edit_post(). [31392] #30615
    • Remove unnecessary array_shift() usage in get_terms() for better performance. [31365] #31182
    • Parse non-hierarchical tag input into term IDs before sending to wp_insert_post(). [31359] #30615
    • Update the DocBlock for wp_dropdown_categories() to reflect that the entire $args parameter array is optional instead of individual arguments. [31357] #30306
    • Use field-specific sanitization in WP_Tax_Query::transform_query(). [31346] #27810

    Database

    • WPDB: If a site is using the utf8 charset, and their version of MySQL supports utf8mb4, auto-upgrade them to utf8mb4. [31349] [31351] [31354] [31358] [31391] #21212
    • WPDB: The mysqli_query() call in wpdb::set_charset() had the parameters the wrong way around. [31374]

    Users

    • Add orderby=meta_value_num support to WP_User_Query. [31369] #27887
    • Remove leading space from the definition of a global cache group. This only applied in a rare situation during the switch_to_blog() process where no global groups were currently defined. [31348] #31243
    • Add useremail and userslugs as global cache groups. [31347] #31243

    Editor

    • Editor: prevent errors in editor-expand when the Text editor is not used. [31361] #31163
    • Fix displaying long tag names in the Tags postbox. [31332] #18946
    • MCE views: Always refresh the view after updating a gallery. This allows things like caption changes to be synced, as they are tied to the attachment and not the shortcode. [31343] #31239
    • TinyMCE: ensure the image toolbar stays visible when the image is much wider than the editor. [31362] #20696

    Build/Test Tools

    • Update Travis-ci Slack notification token [31352] #30755
    • Temporarily (I hope) remove PHP 5.2 from tests being run on Travis-ci. Travis-ci has disabled PHP 5.2. This has happened before when 5.2 didn’t compile and then was restored when that was fixed. #31244

    Posts & Pages

    • Introduce 'value_field' parameter to wp_dropdown_pages(). This parameter allows developers to choose the post field that will be used to fill in the ‘option’ attribute of the generated dropdown markup. [31338] #30306, #12494
    • Always pass back the custom classes get_post_class() was called with, even if the post was not found. [31408] #22271

    Thanks to @adamsilverstein, @afercia, @ArminBraun, @azaozz, @boonebgorges, @bswatson, @Bueltge, @celloexpressions, @ChriCo, @Corphi, @cweiske, @dd32, @dlh, @DrewAPictur, @DrewAPicture, @ericlewis, @F J Kaiser, @Funkatronic, @genkisan, @helen, @hissy, @ipm-frommen, @Ipstenu, @iseulde, @jfarthing84, @joedolso, @johnbillion, @jorbin, @lgladdy, @lgladdy for the initial patch, @nacin, @netweb, @obenland, @ocean90, @pento, @SergeyBiryukov, @siobhan, @tyxla, @valendesigns, @Veritaserum, @VolodymyrC, @vortfu, @westonruter, and @wonderboymusic for their contributions!

     
  • Ryan Boren 10:24 pm on February 4, 2015 Permalink |  

    Dev Chat Summary, February 4th 

    Agenda

    https://make.wordpress.org/core/2015/02/04/dev-chat-agenda-february-4-2015/

    Chat Archive

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

    Decisions, Announcements

    • @drew will lead a NUX working group during the 4.2 cycle. The first chat will be held in #core-flow next Tuesday at 19:00UTC / 2:00 pm EST.
    • @ryan (hey, that’s me) will attempt to be UX lead for 2015. :-)

    Assignments

    Links Mentioned

    https://make.wordpress.org/core/2015/02/03/new-lead-developers-helen-and-dion/

    Screen Shot

    https://github.com/MichaelArestad/Press-This/issues

    https://core.trac.wordpress.org/ticket/29820

    https://core.trac.wordpress.org/ticket/12696

    https://core.trac.wordpress.org/ticket/29820#comment:43

    https://make.wordpress.org/core/2015/01/26/customizer-transactions-proposal/

    https://github.com/xwp/wordpress-develop/pull/61

    https://core.trac.wordpress.org/ticket/30988

    https://core.trac.wordpress.org/ticket/30936

    https://core.trac.wordpress.org/ticket/30937

    https://core.trac.wordpress.org/ticket/28599

    https://core.trac.wordpress.org/ticket/26504

    https://core.trac.wordpress.org/ticket/29079

    https://core.trac.wordpress.org/ticket/30589

    https://core.trac.wordpress.org/ticket/21616

    https://core.trac.wordpress.org/ticket/18946

    https://make.wordpress.org/core/2015/02/04/new-chapters-for-ryan-and-westi/

    https://www.openhub.net/p/wordpress/contributors?query=&sort=commits

    (More …)

     
  • Andrew Nacin 8:57 pm on February 4, 2015 Permalink |  

    New chapters for Ryan and Westi 

    WordPress lead developers Ryan Boren (@ryan) and Peter Westwood (@westi) started contributing to WordPress more than a decade ago. Ryan and Peter, along with Mark and Matt, served as the foundation for much of the early years.

    For some time now, Ryan and Peter have avoided weighing in on technical matters. Very simply, when you aren’t able to be active in development, you know you’re not up to speed, and you realize your words shouldn’t carry the weight that they do. Being able to make this judgment is one of the things that makes both of them such great leaders.

    We’ve all been there, at least for particular features or releases. It’s worth noting, for example, that my own time on core has been cyclical for years, as sometimes I end up working full time on the security team, maintenance releases, the WordPress.org site, or related projects.

    The great thing is, there are a lot of fantastic developers who have stepped up over the last few years to seamlessly fill in the huge holes they’ve left. Some of that culminated in promoting Helen and Dion to lead developer yesterday, and my own promotion three years ago.

    When I started contributing, I received a lot of advice and learned a lot from both of them. Peter reviewed a lot of my code and was the guy who would revert my code when I broke something. :) Ryan became my mentor and pushed me to become the engineer I am today.

    And so, it is with mixed emotion I share that Ryan and Peter have stepped down as lead developers.

    Peter will be moving into a dormant/inactive/emeritus status. We hope to have him back when his life and work allows. In the meantime, you may see him committing a bug fix here and there, as he is wont to do.

    Ryan has been focusing all of his energy on improving UX for more than a year, especially for mobile and touch devices, and especially for workflows like media management. So I’m pleased to say he’ll continue to do that: Ryan will be spearheading UX for WordPress in 2015. It’s been a while since we’ve had someone truly focusing on just UX, so this is really exciting.

    Along with yesterday’s announcement, the active lead developers are @markjaquith, me, @azaozz, @helen, and @dd32.

    Please join me in congratulating Ryan and Peter on an epic run. :)

     
  • Pascal Birchler 10:41 am on February 4, 2015 Permalink |
    Tags: ,   

    WordPress Core Weekly 

    Hi Everyone!

    It’s time for another run-down of what’s going on in WordPress core. This edition covers January 25th, 2015 [31282] through February 3rd, 2015 [31331]. If you’re interested in helping out with these updates, comment below, or ping @mike on Slack! There’s a dedicated #core-weekly-update channel and you can even use a super cool script to parse the logs. Without further ado:

    Themes

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

    Customizer

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

    Script Loader

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

    Upgrade / Install

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

    Internals

    • Plugins: Remove an unused parameter on install_plugins_upload(). [31326] #28964
    • Widgets: Add widget_nav_menu_args filter for Custom Menu widget arguments. [31325] #29463
    • Menus: Don’t display “Move” text without direction if there is only one menu item. [31320] #30765
    • HTTP API: Fix an issue where the limit_response_size parameter wasn’t working properly with large documents and the cURL transport. [31290] #31172
    • i18n: Exclude wp-includes/class-pop3.php in wp_frontend() to prevent having 25 unused translations. [31315] #31179
    • i18n: Tabs, not spaces for indentation. [31314]
    • Switch to a 403 response code in places where it is more appropriate than a 500 due to permissions errors. [31300] #30927
    • Update readme recommendations. [31291] #31173

    WP_Query

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

    Posts

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

    Taxonomy

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

    Media

    • Rename $instances to $instance in wp_audio_shortcode() and wp_video_shortcode() for consistency with gallery_shortcode() and wp_playlist_shortcode(). [31305] #31151
    • Pass the current shortcode instance ID to post_gallery and post_playlist filters. [31304] [31309] #31151

    Build / Test Tools

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

    Admin

    • Accessibility: remove remaining instances of accesskey. [31331] #29715
    • Help/About: Don’t display the Help tab reference in Page Attributes meta box if Help tab was removed. [31303] #31164
    • Add New User: Remove trailing whitespace from button labels. [31298] #31175
    • Login: Reduce the size of the WordPress logo tap target on log in screen on mobile, to avoid unexpected redirect away from the form. [31318] #31185

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

     
  • Michael Arestad 2:06 am on January 30, 2015 Permalink |
    Tags: ,   

    Press This 1/29 Notes 

    Discussed

    • TinyMCE status
      • will be added in the next day or so by @azaozz
    • Media embeds
    • UX for adding PT to home screen
    • Extensions (pushed to a future release)
    • PT fallback icon (if site doesn’t have an icon)
    • Usability testing
      • on current PT and other similar extensions/bookmarklets
    • Nightly updates to the repo (DONE! props to @dd32)

    To do

    We now have nightly updates to the repo. If you’re feeling particularly brave and want to test our nightlies, install away! https://wordpress.org/plugins/press-this/

     
c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel