WordPress 4.9.8 is now available. This maintenance release fixes 46 bugs.
Download WordPress 4.9.8 or visit Dashboard → Updates and click “Update Now”. Sites that support automatic background updates are already beginning to update automatically.
Thank you to everyone who contributed to WordPress 4.9.8:
1naveengiri, Aaron D. Campbell, Aaron Jorbin, Abdullah Ramzan, alejandroxlopez, Allen Snook, Andrea Fercia, Andrew Ozz, Andrew Taylor, Arun, Ayesh Karunaratne, Birgir Erlendsson (birgire), Birgit Pauli-Haack, BjornW, Boone Gorges, Brandon Kraft, Burhan Nasir, Chetan Prajapati, Chris Lema, Corey McKrill, Daniel Bachhuber, Daniel James, David Herrera, Dion Hulse, Dominik Schilling (ocean90), dontstealmyfish, dyrer, Felipe Elia, Felix Arntz, Fernando Claussen, Gareth, Garrett Hyder, Gary Pendergast, Gennady Kovshenin, GM_Alex, Heather Burns, Ian Dunn, ibelanger, imath, Jb Audras, Jeremy Pry, JJJ, Joe McGill, Joen Asmussen, John Blackbourn, Jonathan Desrosiers, Jonny Harris, Josepha, JoshuaWold, Joy, jrf, K. Adam White, khaihong, kjellr, Konstantinos Xenos, laurelfulford, lbenicio, Leander Iversen, leemon, macbookandrew, Marius L. J., Matias Ventura, Mel Choyce, mensmaximus, mermel, metalandcoffee, michelleweber, Milan Dinić, Muhammad Kashif, Naoko Takano, Nathan Johnson, Ov3rfly, palmiak, Paul Biron, Prashant Baldha, PressTigers, programmin, Rafsun Chowdhury, redcastor, Robin Cornett, Sergey Biryukov, Simon Prosser, skoldin, spyderbytes, Subrata Sarkar, Sébastien SERRE, Tammie Lister, tharsheblows, Thomas Patrick Levy, timbowesohft, Timothy Jacobs, Tobias Zimpel, Tor-Bjorn Fjellner, Towhidul Islam, Usman Khalid, warmlaundry, William Earnhardt, Yui, and YuriV.
Primary Focuses
The primary focuses of 4.9.8 are:
- Introduce “Try Gutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/” callout
- Privacy fixes/enhancements
Introduce “Try Gutenberg” callout
Most users will now be presented with a notice in their WordPress dashboard. This “Try Gutenberg” is an opportunity for users to use the Gutenberg block 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. editor before it is released in WordPress 5.0.
You can learn more by reading the “Try Gutenberg” Callout in WordPress 4.9.8 post. It contains information about the callout, including which users will, by default, be shown the callout and the hooks 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. it provides for site administrators to modify that default behavior.
Privacy fixes/enhancements
This release includes 18 Privacy fixes focused on ensuring consistency and flexibility in the new personal data tools that were added in 4.9.6, including:
- The type of request being confirmed is now included in the subject line for all privacy confirmation emails.
- Improved consistency with site name being used for privacy emails in multisite 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.
- Pagination for Privacy request admin (and super admin) screens can now be adjusted.
- Increased the test coverage for several core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. privacy functions.
In addition to the primary focuses another notable change in 4.9.8 is that developers can now register meta keys for object subtypes:
With WordPress 4.9.8, the register_meta()
function supports registration of metadata not only for an entire object type (posts, terms, comments, users), but also for a specific object subtype (such as a specific post type or taxonomy 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.).
4.9.8 Changes
See the full list of closed tickets in Trac An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress..
Administration
- #44611 – try Gutenberg header The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. wraps over text below on narrow screens
- #44627 – minor tweaks to Try Gutenberg callout formatting
Bundled Theme
- #44109 – TwentySeventeen backend editor: level 2 bulleted lists nested under numbered lists show numbers instead of bullets
- #44646 – Bundled Themes: Bump version number and update changelog in Twenty Seventeen for 4.9.8 release
Comments
- #44126 – Adding fields to comments_form args prevents checkbox displaying
- #44141 – Privacy: Don’t replace comment author URL A specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org and email with anything
- #44342 – Commenter cookie consent message should not be displayed if the cookie action isn’t hooked
Customize
- #44627 – minor tweaks to Try Gutenberg callout formatting
Editor
- #41316 – Introduce “Try Gutenberg” callout
- #44341 – Replace _deprecated_function( ‘add_filter’ ) with apply_filters_deprecated()
- #44680 – Restrict the Try Gutenberg callout audience
Emoji
- #44339 – minor tweaks to Try Gutenberg callout formatting
Filesystem API 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.
- #43054 – wp_is_stream fails with stream definition containing nonascii chars
I18N 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.
- #44139 – i18n: “About” disambiguation
- #44574 – Saratov and other cities missing from translations
Login and Registration
- #44052 – Missing parameter type for `login_header()`
Media
- #44532 – Extreme memory leak related to wp_is_stream in wp-includes/functions.php in WordPress 4.9.7
- #43751 – REST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.: Attachments controller should respect “Max upload file size” and “Site upload space” in multisite
Options, Meta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. APIs
- #38323 – Reconsider $object_subtype handling in `register_meta()`
Posts, Post Types
- #36085 – Add action hook to get_inline_data()
Privacy
- #44006 – Privacy Policy page should have suffix like other special pages
- #44025 – Privacy: Pagination screen options for the requests list tables
- #44099 – Add Request Type into Admin Email Subject for GDPR
- #44100 – GDPR Privacy Page setting allows for Draft Pages
- #44130 – Mixed Case of Privacy Policy on Privacy Settings page
- #44131 – If draft page selected for Privacy Policy page should verbiage change from view to preview
- #44181 – The input field id username_or_email_to_export should be something else on remove_personal_data page
- #44192 – Title of Privacy Policy Page not used on login page
- #44195 – “Silence is golden” index.html HyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. generates output
- #44265 – Add filter 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 email subject for erasure complete notification
- #44353 – Replace `site_url( ‘wp-login.php’ )` in `wp_send_user_request()`
- #44373 – Add a privacy setting to disable comment cookie consent
- #44379 – GDPR filters should provide either $request or $request_id
- #44382 – Filter the subject within _wp_privacy_send_request_confirmation_notification
- #44396 – Inconsistent use of blogname and sitename in Privacy emails
- #44612 – Grammar – Missing ‘a’ in ‘select new Privacy Policy page’
- #43967 – Admin emails after email confirmation don’t work for data privacy requests
- #44590 – Remove “// WPCS A public benefit corporation and a subsidiary of the WordPress Foundation, established in 2016.:” comments
REST API
- #40861 – REST API saves attachments with absolute path for `_wp_attached_file` on Windows platforms
- #43874 – REST API: Only render fields specific to request when _fields= is used
- #44321 – REST API: Expose revision count and last revision ID on Post response
Role/Capability
- #44287 – REST API: Declare user capability to perform actions using JSON JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. Hyper Schema `targetSchema`
Taxonomy
- #42691 – WP_Term_Query get_terms generates invalid A resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. sql queries
- #44096 – REST API: Taxonomy and term endpoints should use correct permission checks
TinyMCE
- #44134 – Update to TinyMCE 4.7.13
- See the TinyMCE changelog. WordPress 4.9.6 included TinyMCE 4.7.11, WordPress 4.9.8 updated to TinyMCE 4.8.0, despite the title of this ticket Created for both bug reports and feature development on the bug tracker..
- #44330 – TinyMCE: do not force-load external TinyMCE plugins
Change Log
Introduced
Functions
_wp_privacy_requests_screen_options()
source file: wp-admin/includes/user.php
_wp_privacy_settings_filter_draft_page_titles()
source file: wp-admin/includes/misc.php
get_object_subtype()
source file: wp-includes/meta.php
register_post_meta()
source file: wp-includes/post.php
register_term_meta()
source file: wp-includes/taxonomy.php
unregister_post_meta()
source file: wp-includes/post.php
unregister_term_meta()
source file: wp-includes/taxonomy.php
wp_ajax_update_try_gutenberg_panel()
source file: wp-admin/includes/ajax-actions.php
wp_try_gutenberg_panel()
source file: wp-admin/includes/dashboard.php
Hooks
add_inline_data
source file: wp-admin/includes/template.php
auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype}
source file: wp-includes/capabilities.php
get_object_subtype_{$object_type}
source file: wp-includes/meta.php
sanitize_{$object_type}_meta_{$meta_key}_for_{$object_subtype}
source file: wp-includes/meta.php
try_gutenberg_learn_more_link
source file: wp-admin/includes/dashboard.php
try_gutenberg_panel
source file: wp-admin/index.php
user_erasure_complete_email_subject
source file: wp-includes/user.php
user_request_confirmed_email_subject
source file: wp-includes/user.php
Methods
WP_REST_Attachments_Controller::check_upload_size()
source file: wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php
WP_REST_Comment_Meta_Fields::get_meta_subtype()
source file: wp-includes/rest-api/fields/class-wp-rest-comment-meta-fields.php
WP_REST_Meta_Fields::get_meta_subtype()
source file: wp-includes/rest-api/fields/class-wp-rest-meta-fields.php
WP_REST_Post_Meta_Fields::get_meta_subtype()
source file: wp-includes/rest-api/fields/class-wp-rest-post-meta-fields.php
WP_REST_Posts_Controller::get_available_actions()
source file: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
WP_REST_Posts_Controller::get_schema_links()
source file: wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
WP_REST_Term_Meta_Fields::get_meta_subtype()
source file: wp-includes/rest-api/fields/class-wp-rest-term-meta-fields.php
WP_REST_User_Meta_Fields::get_meta_subtype()
source file: wp-includes/rest-api/fields/class-wp-rest-user-meta-fields.php
WP_Term_Query::populate_terms()
source file: wp-includes/class-wp-term-query.php
Modified
Functions
get_registered_meta_keys()
modification: The $object_subtype
parameter was added.
source file: wp-includes/meta.php
register_meta()
modification: The $object_subtype
argument was added to the arguments array.
source file: wp-includes/meta.php
registered_meta_key_exists()
modification: The $object_subtype
parameter was added.
source file: wp-includes/meta.php
sanitize_meta()
modification: The $object_subtype
parameter was added.
source file: wp-includes/meta.php
unregister_meta_key()
modification: The $object_subtype
parameter was added.
source file: wp-includes/meta.php
Deprecated
Hooks
auth_{$object_type}_{$object_subtype}_meta_{$meta_key}unregister_meta_key()
alternative: Use auth_{$object_type}_meta_{$meta_key}_for_{$object_subtype} instead.
source file: wp-includes/capabilities.php
#4-9-8, #release