A Week in Core – July 17, 2023

Welcome back to a new issue of Week in CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. Let’s take a look at what changed on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. between July 10 and July 17, 2023.

  • 78 commits
  • 135 contributors
  • 61 tickets created
  • 12 tickets reopened
  • 70 tickets closed

Ticketticket Created for both bug reports and feature development on the bug tracker. numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Administration

  • Add a missing closing `span> tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) for column sorting indicators – #32170, #57839

Bootstrap/Load

  • Require wp-includes/compat.php in src/index.php#58206

Build/Test Tools

  • Remove outmoded jsvalidate task from Gruntfil – #58645, #26615
  • Prevent 404 errors in the E2E tests – #58777
  • Reset main query object after each test – #58776
  • Suppress E2E test suite SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. notifications – #58779
  • Add tests to ensure the contribute Toolbar node is added when appropriate
  • Use assertSame() in Tests_Comment – #57855

Bundled Theme

  • fix height of featured images in Twenty Twenty Three – #58766
  • Twenty Seventeen: Use wp_register_script() to register HTML5 Shiv script – #56699
  • Twenty Twenty-Three: Add a border to Quote blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.#57506
  • Twenty Twenty-Three: Remove the perPage attribute where the query inherits from the global query. The global attribute should be used instead – #58581
  • Twenty Twenty-Three: Revert [55898]#58485

Code Modernization

  • Use str_contains() in a few more places – #58206

Coding Standards

  • Use single quotes for a string in Tests_Comment#57855
  • Use strict comparison for static strings in wp-admin/includes/class-wp-list-table.php#32170, #57839
  • Use strict comparison in wp-includes/class-wp-network.php#57839
  • Use strict comparison in wp-includes/class-wp-rewrite.php#57839
  • Use strict comparison in wp-includes/load.php#57839
  • Use strict comparison in wp-includes/rewrite.php#57839

Docs

  • Clarify where the wp_get_development_mode() value is retrieved from – #57487, #57840
  • Fix incorrect type for $crop param is various WP_Image_Editor classes and methods – #58271, #57840
  • Fix various incorrect @since mentions – #58834, #57840
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line comments – #58459
  • Replace multiple single line comments with multi-line commentsProps costdev, audrasjb – #58459
  • Use consistent wording for development mode – #57487, #57840
  • Various docblocks corrections – #57840

Editor

  • Add test for context setting in Comment Template block – #58839
  • Fix a PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher notice appearing when adding a new template part – #57851
  • Fix bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. where it was not possible to style custom block elements in theme.json#57868
  • Fix layout of no-js state in site editor – #56228
  • Fix open_basedir warnings on the classic Edit Post screen when additional TinyMCE plugins are use – #54354
  • Lazily load Duotone settings only when needed – #58673
  • fix duotone filters in classic themes – #58734#46132
  • fix since annotation in rest blocks controller class – #58677
  • opt out of Navigation fallback – #58750
  • remove one preloaded navigation endpoint – #58749
  • trim footnote anchors from post excerpts – #58805
  • update npm packages with bug fixes and blessed tasks – #58745
  • update npm packages with first round of bug fixes for 6.3 RC1 – #58804
  • update npm packages with second round of bug fixes for 6.3 RC1 – #58804
  • update string incorrectly marked for translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. in Chrome – #58716

External Libraries

  • Update deprecated jQuery code in Farbtastic lib – #57946

Filesystem APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.

  • Ensure wp_tempnam() does not produce file names longer than 255 characters as this is the limit on most filesystems – #35755

General

  • Escape nonce used for block theme activation – #58712
  • Introduce all development mode – #57487
  • Rename wp_in_development_mode() to wp_is_development_mode()#57487
  • add nonce for block theme preview activation – #58712
  • fix botched file move in r56199#58712

Help/About

  • Add a “Get Involved” tab to the About page – #23348
  • Adjust horizontal padding on the tabs under 960 pixels width – #23348
  • Fix closing contextual help when scrolled – #55342
  • Fix typo in [56171]: support forumSupport Forum WordPress Support Forums is a place to go for help and conversations around using WordPress. Also the place to go to report issues that are caused by errors with the WordPress code and implementations. “topic”, not “ticket”
  • String changes in the Contribute screen – #23348
  • Update the About page for 6.3 – #58067
  • Update “Get Involved” tab content with the latest edits – #23348

I18ni18n Internationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.

  • Improve the use of dashicons-external icon for external links – #47303
  • Move translator comments inside sprintf for tagline field description – #57675

Media

  • Fix adminadmin (and super admin) image editor layout at intermediary widths – #58692
  • Fix responsive views in image editor – #58692
  • Improve layout of image rotation options panel – #58756
  • Optimize images created in shortcodes – #58681
  • Set default state for image rotation button – #58800
  • Stop using and deprecate set_imagick_time_limit(). Seems it causes more problems than it solves – #58202

Menus

  • Fix critical errors when the page_on_front and/or page_for_posts options contain references to non-existing posts – #58345

Script Loader

  • Improve test coverage for wp_print_scripts()#58648

Toolbar

  • Make the ‘Edit site’ link open the editor with the current template – #58746

Upgrade/Install

  • Add correct parameters to add_option in upgrade_630 – #58821

Props

Thanks to the 135 (!) people who contributed to WordPress Core on Trac last week:

@costdev (24), @mukesh27 (13), @audrasjb (13), @sergeybiryukov (12), @ramonopoly (9), @poena (9), @sabernhardt (8), @spacedmonkey (8), @flixos90 (8), @swissspidy (8), @joemcgill (7), @peterwilsoncc (7), @oglekler (7), @afercia (6), @joedolson (6), @azaozz (5), @mrinal013 (4), @aristath (4), @desrosj (3), @wildworks (3), @westonruter (3), @mikinc860 (3), @davidbaumwald (3), @richtabor (3), @eidolonnight (3), @andrewserong (3), @jpantani (2), @nithi22 (2), @annezazu (2), @priethor (2), @tobifjellner (2), @marybaum (2), @dunhakdis (2), @vivekawsm (2), @robinwpdeveloper (2), @meher (2), @mikeschroder (2), @get_dave (2), @SeReedMedia (2), @antpb (2), @Presskopp (2), @ryelle (2), @nithins53 (2), @jameskoster (2), @alexstine (2), @ajlende (2), @scruffian (2), @isabel_brison (2), @jorbin (2), @mikachan (2), @nacin (1), @jeffmora (1), @bridgetwillard (1), @jenmylo (1), @boemedia (1), @davidmusnik (1), @lukecavanagh (1), @mehdi01 (1), @hugobaeta (1), @TacoVerdo (1), @joostdevalk (1), @johnbillion (1), @markoheijnen (1), @helen (1), @bacoords (1), @fierevere (1), @skorasaurus (1), @andraganescu (1), @dhrumilk (1), @zoonini (1), @akrocks (1), @nidhidhandhukiya (1), @syamraj24 (1), @jomonthomaslobo1 (1), @Toro_Unit (1), @eric.7186 (1), @thunderdw (1), @paaljoachim (1), @courane01 (1), @clubkert (1), @Shelob9 (1), @beckej (1), @abitofmind (1), @Mamaduka (1), @thekt12 (1), @antonvlasenko (1), @mohiuddinomran (1), @estelaris (1), @webcommsat (1), @cathibosco1 (1), @deepakvijayan (1), @mt_suzette (1), @Malae (1), @soulseekah (1), @matt_fw (1), @ekazda (1), @densityapps (1), @mtxz (1), @hberberoglu (1), @dsar (1), @onemaggie (1), @TobiasBg (1), @Rahmohn (1), @oandregal (1), @glendaviesnz (1), @gudmdharalds (1), @saxonafletcher (1), @joen (1), @markoserb (1), @cbringmann (1), @clarkeemily (1), @peterwilson (1), @youknowriad (1), @karmatosed (1), @MadtownLems (1), @brasofilo (1), @jeryj (1), @nazmul111 (1), @Chouby (1), @suzettefranck (1), @ugyensupport (1), @ibrahimmonir (1), @njsamsatli (1), @rembem (1), @mcsf (1), @josklever (1), @wplindavantol (1), @hbhalodia (1), @dansoschin (1), @Heiko_Mamerow (1), @piotrek (1), @mai21 (1), @studionashvegas (1), @mikecho (1), and @doems (1).

Congrats and welcome to our 23 (!!) new contributors of the week: @jeffmora, @davidmusnik, @mehdi01, @beckej, @mohiuddinomran, @mt_suzette, @matt_fw, @ekazda, @densityapps, @mtxz, @hberberoglu, @dsar, @gudmdharalds, @saxonafletcher, @nazmul111, @suzettefranck, @ibrahimmonir, @njsamsatli, @rembem, @wplindavantol, @Heiko_Mamerow, @mikecho ♥️

Core committers: @audrasjb (17), @sergeybiryukov (17), @isabel_brison (13), @joedolson (7), @azaozz (6), @joemcgill (5), @peterwilsoncc (5), @davidbaumwald (2), @spacedmonkey (2), @ryelle (1), @bernhard-reiter (1), @flixos90 (1), @kadamwhite (1), @jorbin (1), and @mikeschroder (1).

#6-3, #core, #week-in-core

Open Academy Mentorship Progam

Hi all. It was suggested by a community member that we participate in the upcoming Facebook Open Academy mentorship program round the way we participate in GSoC. Since I’m on my way out, I wouldn’t be the organization contact for this, and someone would need to step up from the team to take point if y’all want to be a mentoring organization. Here’s some info:

  • This is a Facebook program, run in conjunction with a dozen or so universities around the world and a handful of OS projects.
  • It sounds like they are looking for the mentor to work with the students using Agile sprints.
  • No set time for specific projects, could last anywhere from 8 weeks to 5 months.
  • You set the specific projects in advance students can apply for, no “send us your ideas” like GSoC.
  • Their application asks how many students we can take, must be a minimum of four, but doesn’t have a way to list out all potential mentors up front unless so am not sure if they want each one to fill in the whole application (we’d probably want to have everyone use the same boilerplate for the ‘about the project’ bits), or if they want only one official mentor and everyone else would be unofficial.
  • Mentors must be available to fly to the opening weekend sprint Jan 30-Feb 1 (Facebook pays travel).
  • Students get college credit toward their CS degrees, not money.

General Information
FAQ
Application

If you want to participate, it would be good to have one person be the program administrator to keep track of applications etc. If you decide to do it and want any help from the community team, let me know.

#mentorship, #open-academy

Last Week in WordPress Core

Hi there! Welcome to Last Week in WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. for the week of March 3–9. By now, you’ve heard that WordPress 3.9 Beta 1 is available! Thank you for your hard work this last week. Now we’re done adding new enhancements, and on to bugs. Your help is appreciated as we continue to test and squash bugs on the way to a stable RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta)..

There are a couple important things that landed on Monday that are not covered in this post, but shipped in betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.. Namely, please test the Theme Install screen refresh and the ability to crop headers from within the Customizer.

Adminadmin (and super admin):

  • Widgets: Add widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. management to the customizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.. This brings in the Widget Customizer plugin. [27419] #27112
  • Admin Menu: Introduce a .dashicons-before CSSCSS Cascading Style Sheets. class and use it in the admin menu. Lets you use a Dashicon before an element without copying the entire .dashicons styling to your :before styling. [27418] [27425] [27444] [27482] #26630
  • Editor: Show “View Post” for any post the author can read. This expands it to private posts and matches the logic in the toolbar. [27483] #27059

Media:

  • First pass at bringing the Image Editor into the media modal. Please test me! [27445] #21811
  • First pass adding a loading indicator to the Media Library. [27438] #24859
  • Allow $crop in add_image_size() and set_post_thumbnail_size() to receive crop anchors (top, left, right, bottom, center). [27472] #19393.
  • Add subtitle support to Video editing in the Media Modal. [27481] #27016
  • Do not output default gallery styles if the theme has opted into HTML5 galleries. [27396] #27045; see #26697
  • Add a class attribute to the caption shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. to allow additional classes to be specified. [27404] #25295
  • Add playlist_styles and wp_playlist_scripts filters to allow users to roll their own playlist themes. [27486] #26631 & [27488] #26631

TinyMCE:

  • Update TinyMCE to 4.0.18. [27387] #24067
  • Add TinyMCE placeholders for audio and video shortcodes and provide a UIUI User interface to both edit shortcode attributes and replace the src media file in an audio or video shortcode. Also, a flurry of improvements and fixes to them, visible in the full changelog. [27411] #27016
  • Add a Ctrl+K shortcut to open the linking dialog, which is the “de-facto standard”. [27449] #27305
  • Add the <hr> pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and button to the toolbar. [27428] #27159
  • With drag-and-drop uploading, support multiple editor instances, limit to IE10+, and other small fixes. [27378] [27372] [27464] #19845
  • When parsing a caption shortcode, recreate missing width attributes using the image tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.)’s width. [27426] #23103
  • Restore the “link” button state to disabled by default and enabled when text or image is selected. Remove the (recently added) default link plugin; not needed. [27447] #27309

Templates:

  • Add has-post-thumbnail as a post class. [27429] #18804
  • Rename the new page_templates filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. to theme_page_templates, and pass it a post object for proper context. [27470] [27471] #13265
  • Introduce get_the_permalink() as an alias for get_permalink(). This better aligns it with other the_* and get_the_* function pairs. [27409] #24164
  • Let get_the_date() accept a post object. [27380] #13771
  • Add the ability to short-circuit wp_nav_menu() via the pre_wp_nav_menu hook. [27386] #23627
  • Better plural handling for labels in wp_generate_tag_cloud() / wp_tag_cloud(). [27376] #27262, see #7989, #14424

Multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site:

  • Incremental improvements and bugbug A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes with the multisite load process. Please test your networks! [27406] [27439] [27407] #27003
  • Fix bulk activation of networknetwork (versus site, blog)-only plugins. [27413] #26487

Query:

  • Add has_password and post_password query variables to WP_Query. has_password true means posts with passwords, false means posts without. post_password can query for posts with a particular password. [27395] #20308
  • Allow a posts_per_rss query variable to be set to override the posts_per_rss option. [27456] [27455] #25380
  • Allow get_page_by_path() and get_page_by_title() to accept an array of post types. [27423] #24763

Internals:

  • Allow for custom authentication handlers for all requests. Turn the logic used by wp_get_current_user() into a determine_current_user filter. [27484] #26706
  • Allow the role attribute in kses for all elements. [27388] #24098
  • Add a pre_set_theme_mod_$name filter to set_theme_mod(), modeled after pre_update_option_$option in update_option(). [27393] [27402] #14721.
  • Improve HHVM compatibility by eliminating some of our last remaining create_function() calls and making OBJECT a case sensitive constant. [27373] [27374] [27465] #14424 [27377] #27231
  • Pass $reassign parameter to delete_user and deleted_user actions. [27462] [27466] #23057
  • Bail early from shortcode functions if no delimiter is present. It’s the little things; performance results on-ticketticket Created for both bug reports and feature development on the bug tracker.. [27394] #23855
  • Update PHPMailer to 5.2.7 from 5.2.4. Includes two trivial modifications for WordPress (no impact to plugin developers); see the commit message. [27385] #25560
  • Use SSLSSL Secure Sockets Layer. Provides a secure means of sending data over the internet. Used for authenticated and private actions. when linking to WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/. [27469] #27115

For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac. Interested in joining in? Write or test a patch for 3.9.

Thanks to @adamsilverstein, @akeda, @avryl, @bassgang, @bigdawggi, @bobbravo2, @bpetty, @bradt, @celloexpressions, @coffee2code, @danielbachhuber, @dd32, @DJPaul, @DrewAPicture, @empireoflight, @ericlewis, @ericmann, @frank-klein, @gcorne, @genkisan, @gradyetc, @hakre, @Hanni, @Jayjdk, @jenmylo, @johnregan3, @jorbin, @JoshuaAbenazer, @kadamwhite, @kasparsd, @Kopepasah, @kovshenin, @kpdesign, @lpointet, @markjaquith, @mcadwell, @melchoyce, @michael-arestad, @mikecorkum, @mordauk, @nacin, @obenland, @Otto42, @pavelevap, @Rarst, @rhyswynne, @ricardocorreia, @rmccue, @robmiller, @seanchayes, @SergeyBiryukov, @shaunandrews, @simonwheatley, @sirzooro, @tanner-m, @TobiasBg, @tomauger, @topher1kenobe, @topquarky, @toszcze, @westonruter, @wokamoto, @wonderboymusic, @zbtirrell, and @zodiac1978 for their efforts this week!

#3-9, #week-in-core

Last Week in WordPress Core

Howdy, everyone! It’s time for Last Week In WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., for the week of February 3–February 9. Let’s start out with a couple of discussion points, then commit highlights, and close with housekeeping.

CSSCSS Cascading Style Sheets. autoprefixer?

@ocean90 has a proposal up on trac to use Autoprefixer to handle vendor prefixing. This is an neat idea, but has potential complications as to when we should run the Grunt task, since it’d be optimal for core.svn and develop.svn to continue to be as usable for development as possible. Have an opinion? Please join the discussion on #27078.

MySQLi

There is fresh discussion on how to handle the MySQLi transition. The current consensus seems to be that everyone would like a driver-style WPDB in the future. However, exactly what that will look like, and when it will happen is not yet agreed upon. Since there is an apparent need to move on this, in order to ease this in for pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party authors, for 3.9 @nacin suggests we start to use use mysqli but only when PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher 5.5+. Details on the ticketticket Created for both bug reports and feature development on the bug tracker..

TinyMCE and Autosave

  • Incorporate the TinyMCE tests into our JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. tests, #27014.
  • In TinyMCE, don’t replace <i> and <b> with <em> and <strong>, and don’t remove them when empty. Helpful when using an icon font. #24067, #23037.
  • @azaozz is weighing whether we need backcompat for plugins that had overridden or blocked autosaves (such as by overriding window.autosave). Feedback welcome on #25272.
  • Make it easy when using wp_editor() which editor (visual or text) is loaded first. #20822
  • Don’t scroll the main window when trying to scroll the editor content with a mouse wheel or trackpad. [27095], [27110]. This is still being tweaked, #27013.

Media and Embeds

  • Add imgur and meetup.com oEmbed support. #21632, #23171.
  • Introduce maybe_regenerate_attachment_metadata(), which generates metadata if an attachment is lacking it entirely. #26825
  • Introduce has_image_size() and remove_image_size(), [27128], [27129], #26951, #26768.
  • When a video shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. has content in its body, append it as inner HTMLHTML HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. in the resulting <video>. This aids with including content such as subtitles. #26628

Administration related

  • Merge colors.css into wp-admin.css, resulting in 1,065 fewer lines. #18380. The next step in the wp-admin.css cleanup project is #26669.
  • In the revisionsRevisions The WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. browser, the back button now returns you to the post you were editing, #26997.
  • Properly run wp_auth_check on every Heartbeat tick, #27081.
  • Properly remove post/page items from nav menus when the post/page is deleted, #26795. Fixes a regressionregression A software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. that first appeared in 3.7.

Twenty Fourteen

  • Fix gap from appearing above static pages, #26694.
  • Delete the featured_content_ids transient on theme switch to make sure child themes can override the Featured Content quantity value. Also remove quantity parameter so child themes can change the amount of featured posts with $max_posts, #26660.
  • Fix unreachable links when the content area is shorter than the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. in smaller viewpoints, #26782.
  • Make sure featured tagtag A directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) is hidden on front-end views as expected, #26732.
  • Translate the featured tag slug used to link to specific tags in Posts editor, #26526.
  • Avoid showing full post in Ephemera widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. when displayed in single post or page, #26961.
  • Use the display filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. for get_bloginfo('name') attached to the wp_title filter, #26811. Also applies to Twenty Twelve and Twenty Thirteen.

TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. and Caching

  • Regenerate the term hierarchy caches and object term caches when we can detect are stale. Work in #14485 and #22526 is ongoing; possibly with an alternative approach.
  • In  top-level term without first including its children, and recurse through entire depth in hierarchy. #26903.
  • In get_terms(), don’t automatically set hierarchical to false when parent => 0 is passed. The default value for parent is an empty string, #26903. Also required a fix in _get_term_children(), see [27108].
  • Other caching changes: #27000, #25545.

Housekeeping

In make/core land, @nacin posted notes from last week’s team meeting that I’d suggest checking out if you weren’t able to make it. In other housekeeping notes, fine-grained ticket notifications and settings are now live, and if you haven’t yet signed up to be a Google Summer of Code mentor (and would like to), check out this post from @jenmylo.

For the complete list of commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac. There were a bunch of great inline docsinline docs (phpdoc, docblock, xref) updates not covered here.

Almost forty contributors helped out last week! Awesome! Want to help out this week? Write or test a patch for 3.9.

Thanks for efforts from _jameslee, adamsilverstein, Ajay, andykeith, antorome, avryl, azaozz, bradparbs, celloexpressions, DrewAPicture, drozdz, frank-klein, gcorne, helen, jdgrimes, jorbin, kitchin, kovshenin, kpdesign, lancewillett, markoheijnen, michelwppi, mor10, mordauk, nacin, NikV, nprasath002, obenland, philiparthurmoore, ruudjoyo, sennza, SergeyBiryukov, ShinichiN, TobiasBg, UmeshSingla, VarunAgw, and wonderboymusic.

#3-9, #week-in-core

Here’s a quick summary of yesterday’s meeting as…

Here’s a quick summary of yesterday’s meeting (IRC log), as a status report on WordPress 3.9:

BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 will now be the week of March 3, a week later. The rest of the schedule is unchanged. I felt the extra week of alpha would be helpful given all of forward momentum right now, and others seemed to agree.

It was decided to green-light the widget customizer plugin for merge. If all goes well, it’ll be in 3.9 final. There’s still a lot to do: some UIUI User interface polishing, deeper code review, etc. — and surely it will get a lot of testing.

Quick hits raised in the meeting:

  • Settings review is in the ideas/sketch/wireframe stage. They have a meeting today. (@jenmylo, @melchoyce)
  • Lots of audio/video changes landed. Needs review on #27026 and UI feedback on #26631. (@wonderboymusic)
  • Work continues bringing the image editor into the media manager. #21811. (@gcorne, @tomauger)
  • TinyMCE/editor: modals are getting redesigned. #26952. (@melchoyce, @avryl) QUnit tests are being added. #27014. (@azaozz) @gcorne also sunk some time into MCE views, for gallery rendering.
  • THX pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party is being revived to take a crack at the theme install screen. If it works out, these patches could land in 3.9. (@matveb)
  • A Grunt patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. tool needs testing. #27023. (@jorbin)
  • Some refactoring of the multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site bootstrap will begin this week. #27003. (@jeremyfelt)
  • Volunteer(s) wanted: If anyone wants to work on expanding autocomplete in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., there is some work in that area to be done. @helen will help shepherd.

We have a few more weeks of alpha, so it’s a great time to help with writing or testing a patch for WordPress 3.9. We’ll be keeping the tempo quick. Expect lots of changes.

#3-9

Last week in WordPress core

Welcome back to Last Week In WordPress CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., for the week of January 27-February 2. Big list this time! First, a summary of the major changes; then a roundup from the various 3.9 teams:

Enhancements and hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.

  • The first run for a refreshed “Edit Image” modal inside TinyMCE landed, which includes a “replace image” function. Work continues on #24409, if you’d like to help out!
  • Previews of different posts now open in different windows/tabs! #20233
  • Allow chromeless embedding of YouTube videos with video shortcodeShortcode A shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site.. #24764
  • Autocomplete for the “new site” adminadmin (and super admin) e-mail address in multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site. #25348
  • Arguments are now included when filtering wp_dropdown_categories() with wp_dropdown_cats. #24103
  • New Hook, resetpass_form, in wp-login.php #21044
  • Add wp_install and wp_upgrade hooks to the respective functions. #25762

Database changes

  • Initial patch to reconnect when the MySQLMySQL MySQL is a relational database management system. A database is a structured collection of data where content, configuration and other options are stored. https://www.mysql.com/. server “goes away” has landed, with a request for feedback on how to make the solution more fool-proof on #5932.
  • Improved Compatibility with MySQL 5.6, which has stricter default SQL modes.
    Disables NO_ZERO_DATE, ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, STRICT_ALL_TABLES, TRADITIONAL. Introduces filterable wpdb::set_sql_mode(), with incompatible_sql_modes filterFilter Filters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. for plugins. #26847
  • We now throw a notice when wpdb::prepare() is called without a placeholder. #25604
  • In wpdb::db_connect(), allow the loading of a translatable custom database error template. #25703

Miscellaneous, including library updates

  • Properly invalidate the cache for wp_count_posts() on insert, trashTrash Trash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days., or when transitioning post_status. #21879
  • $force argument removed from WP_Object_Cache::delete(), which was internal-only. #22478
  • TinyMCE updated to 4.0.16. #24067
  • Dashicons updated to latest. Adds line break, paragraph, code, and bbPressbbPress Free, open source software built on top of WordPress for easily creating forums on sites. https://bbpress.org.. #26936
  • MediaElement.js updated to 2.13.2. #26954
  • Update the versions of several devDependencies in package.json. Run npm install to receive updates for node_modules in the project root. #26073

3.9 status reports

Here are roughly where each of the 3.9 teams/tasks stood as of last week’s meeting:

Media/editor related:

  • Media Modal: “Initial version of the single image editor landed, which includes the ability to replace the image and update the main set of attributes (e.g. caption, alt, alignment, link).” (@gcorne) (#21811)
  • Image Editor: “have a proof-of-concept pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party ready awaiting input on how to modularize the Editor and make it extensibleExtensible This is the ability to add additional functionality to the code. Plugins extend the WordPress core software. and flexible. Working on a patchpatch A special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. that introduces a few well-placed hooks.” (@tomauger) (#21811)
  • Rendering in the editor: “Going to dig into rendering galleries in the visual editor using a wpview and building on some of the work that i did in https://github.com/gcorne/gallery-editor.” (@gcorne) (#26628, #26959)
  • TinyMCE: All looks good on this front, #24067. “We’ve also started looking at restyling TinyMCE modals to match the admin, #26952“(@azaozz, @melchoyce)
  • Audio/Video: There’s an update post by @wonderboymusic.

Other UIUI User interface work:

  • WidgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings.: “We’re running more users tests; Working on keyboard accessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) features; Trying to figure out support for wide widgets; Asked for some code review/notes; And digesting feedback from our recent p2 post.” (@shaunandrews)
  • Settings screens: “We had a meeting yesterday to divvy up the redux. I’m looking at reordering of information across screens, @melchoyce is experimenting with UI approaches, and @Ipstenu is looking at cleaning up the multisite ‘edit site/settings’ view. We hope to be posting sketches/wireframes [this] week.” Also, they’re again looking at lifting post by email from core. (@jenmylo)
  • Accessibility: we are testing 3.8.1 admin screens for keyboard accessibility. (@joedolson)
  • Autocomplete: After the new site email address autocomplete landed (#25348), now looking into other areas — users (#19867) and pages (#9864). (@helen)
  • CSSCSS Cascading Style Sheets.: Work continues on the colors.css merge to prep for splitting up wp-admin.css. (@helen, #18380, #26669).

Fun with internals:

  • Multisite: “Our tickets are focused. [As in, reorganized into the ‘multisite’ focus.] I’ve been digging through ms-load.php, ms-settings.php, etc in prep for some fun domain routing work. Would like to compare thoughts on approach soon and get moving on that.” (@jeremyfelt)
  • New Grunt-based Patching Tool: “I’ve been using it locally and haven’t run into any issues. Will be opening a ticketticket Created for both bug reports and feature development on the bug tracker. on TracTrac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. with a patch and instructions in the next few days.” (@jorbin)
  • TaxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies.: Hope to start with the first few tickets on the roadmap this week. (@nacin)

Housekeeping items last week included a call for GSoC participation from @jenmylo, and trac component reorganization proposal from @nacin. The reorganization was approved during the chat on Wednesday and is well under way. Additionally, there’s now a new Trac reports overlay and Trac’s navigation got overhauled.

For the complete changelog commits to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., check out the log on Trac.

More than three dozen contributors had a hand in last week’s efforts. Want to help out this week? Write or test a patch for 3.9.

Thanks for contributions this week from atimmer, aubreypwd, azaozz, c3mdigital, cmmarslender, coffee2code, Denis-de-Bernardy, DrewAPicture, empireoflight, gcornehelen, ippetkov, jeremyfelt, joehoyle, johnjamesjacoby, JoshuaAbenazer, kovshenin, kpdesign, kraftbj, mark8barnes, markjaquith, MattyRob, mdbitz, melchoyce, nacin, neoxx, nofearinc, ocean90, olivM, oso96_2000, ounziw, pento, romaimperator, sbruner, SergeyBiryukov, soulseekah, TobiasBg, toszcze, wonderboymusic, and yoavf!

#3-9, #week-in-core

GSoC 2014

It’s that time of year again, when all good* coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. developers start thinking about whether or not they’re up for mentoring a GSoC student this year. Many in this group know the drill, but there quite a few involved core contribs active this cycle who haven’t been involved with GSoC before, so here’s the deal:

  • Google pays for a program that gives college students summer jobs creating open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. code under the mentorship of an organization (like WordPress).
  • We apply to be a mentoring organization and put up a list with a bunch of potential summer project ideas and identify who the mentors might be.
  • If we’re chosen to participate, we get a certain number of slots to fill, and students submit applications to work with us.
  • All the potential mentors rate/rank the proposals, and decide if there’s someone they’d like to mentor.
  • In game of chance-meets-requests dizzy enough to rival medical school matches, we put together our wish list for mentor-student matchups. 2 mentors per student, to provide coverage and make things more collaborative.
  • We hope that none of our top picks also applied to other orgs who accepted them, and wind up with our student roster.
  • We provide volunteer mentors to work one-on-one with the kids on projects that they applied to do over a 3-month period.
  • Open source code is released into the wild.

I’ll be putting together our application to be a mentoring organization this week, so it’s time to start thinking of project ideas we could suggest on the Ideas page that we need for the application (the more ideas the better) and who wants to be a mentor. The application deadline is February 14, so I’d like to get the Ideas list in solid shape (along with mentor bios) by Feb 10 (a week from Monday).

If you have an idea or are interested in being a mentor, please leave a comment on this post. At the end of the dev chat after 3.9 business is out of the way, we can discuss some of the ideas and I can answer any questions people have about mentoring.

Related: I’m also going to be posting soon about starting up a regular mentorship program, as outlined here. But that can wait for another day.

*Where good means both skilled and kind and generous with their time.

#gsoc, #mentorship

Possible tasks for WP 3.9

During last week’s dev chat, we decided on a schedule. We also chatted about a major focus in 3.9 on improving workflow for new and current contributors alike. If there are further suggestions on changes we can make to workflow to make coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. easier to contribute to, let us know.

Below is a rundown of what features/enhancements/ideas were discussed as possible for 3.9, including potential volunteers to take point on different tasks. This is all tentative. Thanks @DH-Shredder for compiling this.

In today’s chat, let’s continue to build this out. If you have something you’d love to work on during the release, join us!

Widgets

There are two widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.-related feature plugins to review: Better Widgets and Widget Customizer. Decisions on what we’re merging should come by next week, per the schedule. Expect a post from @shaunandrews soon explaining both and requesting help reviewing them.

TinyMCE improvements (@azaozz, @gcorne, @lgladdy)

  • TinyMCE 4 inclusion and troubleshooting
  • Improving editing/positioning images after insertion into the editor

Editor-related media improvements

  • Bringing the image editor into the media manager (@melchoyce, @johnbillion)
  • Allow a user to drop an item for upload on the post screen. This would then open the media modal (as an initial first step).

A better themes experience, part 2 (@matveb)

  • Taking our new experience to the theme installer (this may be started as a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party)
  • Supporting multiple screenshots, left out of 3.8
  • Backbone routing and subview backend improvements

Improved audio/video support (@wonderboymusic) (see this post)

  • Playlists, subtitles, metadata generation
  • Media manager documentation

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. and CSSCSS Cascading Style Sheets.

  • wp-admin.css split (@jorbin, @helen) (see this post)
  • Merging colors.css into other CSS files (@helen)
  • Grunt tool for patches (@jorbin)
  • Inline JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. documentation using JSDoc (@jorbin)

Miscellaneous

  • Adminadmin (and super admin) settings audit (@jenmylo, @melchoyce)
  • Various multisitemultisite Used to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site improvements TBD (@jeremyfelt)
  • Start the taxonomyTaxonomy A taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. roadmap (@nacin, @wonderboymusic) (see this post)

#3-9

Present your 3.8 feature idea at tomorrow’s meeting

Tomorrow’s WordPress 3.8 meeting at Thursday 18:00 UTC is a great time to present your feature idea to the community. Many groups have already started forming around different ideas.

Comment on this post with a group name to add your group to the list of projects presenting tomorrow. Make sure you bring the following things with you:

  • What problem(s) are you trying to solve?
  • What proposal solution(s) are you interested in exploring?
  • When and where is your group communicating?
  • Who has joined your group so far?
  • If you’ve selected someone to lead your group, who is your lead?
  • If you’ve already started work on your pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, bring a link to your plugin page.

See you tomorrow!

#3-8, #agenda, #core-plugins

Post Formats UI Update, 3/14

As noted in The Road to 3.6 Beta 1, we’ve got quite a bit going on for post formats. Many of the tickets are in need of testing (including unit tests) and then a commit. As always, there are a few different fronts: UIUI User interface/administration, data, and parsing. Here’s where we are with each, and what needs to get done. There’s a large variety of tasks here, and we are seeking contributors to help 🙂

Continue reading

#3-6, #post-formats