Welcome to the official home of the WordPress documentation team.
This team is responsible for coordinating all documentation initiatives around WordPress, including the Codex (moving to HelpHub and DevHub), handbooks, parts of developer.wordpress.orgWordPress.orgThe 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/, admin help, inline docs, and other general wordsmithing across the WordPress project.
Want to get involved?
There are many ways in which you can help the Docs team. Every small contribution counts and helps! You can report an issue or typo you found in the docs, or even help us write new documentation for parts that are still missing. These are some helpful links to find out more about what we do and how to collaborate:
Block Editor Handbook: An overview of documentation contributions of BlockBlockBlock 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 / GutenbergGutenbergThe 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/
Changesets included in CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Weekly posts #Changesets included in Core Weekly posts
Changes between September 23 and November 9, taken from Core Weekly posts. RevisionsRevisionsThe 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. covered: [29756] to [30292]. For this list of commits, check the log on Trac.
Anything checked off has already been added to the version page in some form, or skipped.
If the current user does not have the delete_posts cap on the current post type, don’t list delete or trashTrashTrash 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. as bulk actions for the relevant context of Post list table. [29757]#20175 (@kpdesign)
TinyMCE: when pasting/inserting content before a view, add new paragraph above it and insert the content there. (@kpdesign)
TinyMCE: Use Tahoma for RTL in general and Arial for Hebrew in editor styles. [29773]#29553 (@kpdesign)
Fix tapping on the menu in iOSiOSThe operating system used on iPhones and iPads. and Android [29770]#29365
Don’t display an empty comment author IP link on Comments screen. [29774]#29766
In the form handler logic for edit-tags.php, don’t redirect until $_REQUEST['paged']has been checked. All switch cases (except edit) now use break instead of exit. [29782]#16162
Show the number of approved comments instead of all comments on the dashboard in the “At a glance” section. [29785]#26738 (@kpdesign)
First pass at pinning the admin menu on scrolling similarly to how the side metaboxes are pinned on the Edit Post screen. [29835]#29806 (@kpdesign)
Add default z-index to the admin menu, see [29841]#29806
Use correct context for “Name” and “Parent” strings on taxonomy screens. Remove unnecessary context for “Slug” and “Description” strings. [29821]#29824
When switching to the Text editor, make the textarea visible to screen readers. [29815]#29815 (@kpdesign)
Add a default filterFilterFilters 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 title_save_pre to avoid extra whitespace. [29801]#19904 (@kpdesign)
Add missing labels to categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. filter dropdowns. [29870][29871]#29921
Differentiate between invalid and missing admin emails when adding a new site [29877]#17890
Admin menu: Fix pinning after resizing the window. Merge the two DOM ready callbacks in common.js. Fix the submenus position adjustment on focus. [29898]#29806
Themes: Make “Live Preview” the primary action and “Activate” secondary. [29957]#26899 (@kpdesign)
Live-update site title in toolbar when changing the corresponding field in General Settings. [29963]#28682
Allow apostrophes in email addresses when adding users via the Dashboard. [29966]#18039
Admin menu changes: Fix scrolling the pinned menu with a mouse wheel. Fix pinning when the menu is only slightly taller than the viewport. Disable pinning on IE8, updating CSSCSSCSS is an acronym for cascading style sheets. This is what controls the design or look and feel of a site. top makes it jump when scrolling with a mouse wheel. [29978]#29806
Add labels to the Personal Options input fields on the user profile editing screen. [30027]#30101
Delete admin_created_user_subject() rather than deprecate. As it was never used as anything more than a callback to a filter before the MU merge, and is only available in user-new.php in multisiteMultisiteMultisite is a WordPress feature which allows users to create a network of sites on a single WordPress installation. Available since WordPress version 3.0, Multisite is a continuation of WPMU or WordPress Multiuser project. WordPress MultiUser project was discontinued and its features were included into WordPress core.https://codex.wordpress.org/Create_A_Network., it is safe to remove this function entirely. [30176]#29915 (@kpdesign)
TinyMCE: fix the ‘wpgallery’ pluginPluginA 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 to use a placeholder for galleries when either the ‘wpview’ plugin or wp.mce is not loaded. [29883]#28756 (@kpdesign)
Quicktags: move focusing the editor after inserting content to the end of the code blocks. [29884]#29944 (@kpdesign)
Editor-expand: reset the editor height after the window is resized. [29886]#29952 (@kpdesign)
Editor-expand: Better calculation for the caret position when auto-scrolling while typing. Fix auto-scrolling for non-WebKit browsers when the caret is above the top of the editor. [29929]#29954 (@kpdesign)
TinyMCE: update the default styles: make the font size larger and make it the same size in tables. [29986]#30038 (@kpdesign)
TinyMCE: update to 4.1.6+. Adds support for cache-busting when auto-loading JS and CSS. [29994]#30079 (@kpdesign)
Use <button> instead of <a> for the Visual/Text buttons, make them focusable. [30002]#27553 (@kpdesign)
Add an alt attribute with the site title for headerHeaderThe 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. images linked to the home page. [29842]#15926 (@kpdesign)
Introduce a new means of outputting a <title> tag in the theme head. Requires a theme to add support by calling add_theme_support( 'title-tag' ). [30074]#18548 (@kpdesign)
Introduce some new template functions for navigation: get_the_post_navigation() and the_post_navigation() for navigation to the next and previous post. get_the_posts_navigation() and the_posts_navigation() for navigation to the next and previous page of posts. get_the_pagination() and the_pagination() for paginated navigation between pages of posts. Uses paginate_links(). This reduces the need for themes to define their own sets of navigation functions. [30065]#29808 (@kpdesign)
Make font-size/line-height in editor-style.css the same as in style.css. Remove margins from the editor body, interferes with autoresize in some browsers, and is overridden in the default styles. [29909]#29799 (@kpdesign)
If the sidebarSidebarA 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. is taller than the viewport scroll it with the content, if it’s shorter keep it fixed. [30025]#29979 (@kpdesign)
Improve support for customizerCustomizerTool 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.. [30274][30275]#29988; [30230]#30164#29980; [30272]#30165 (@kpdesign)
Improve accessibilityAccessibilityAccessibility (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) by clarifying link context #30108[30208], adding accessible alt text for post thumbnail links. [30231]#30076, and using continue reading links for auto-generated excerpts [30237]#30135. (@kpdesign)
Don’t print an empty HTMLHTMLHTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. markup when comment_reply_link() returns no link. [29908]#29895 (@kpdesign)
Use the comment APIAPIAn 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. rather than direct SQL queries in comments_template(). [29965]#19623 (@kpdesign)
Don’t trigger a change event if two unchanged object values are equal, second pass. [29907]#26061 (@eliorivero)
Introduce customize_preview_$setting->type action to handle multiple settings of the same type. [29948]#29165 (@eliorivero)
Extract content markup for panels to its own method,WP_Customize_Panel::render_content(). This allows to override the behavior of a panel and its contents. [29950]#29324 (@eliorivero)
Add the ability for a customizer control to render its controls via a JavaScriptJavaScriptJavaScript 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/. template. Switches the default color picker control to a JavaScript template. [30014]#29572 (@eliorivero)
Improve ColorControl‘s wpColorPicker to update UIUIUI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. based on setting changes. Update Twenty Fifteen’s colorScheme control to properly interact with the API, using wp.customize.control(). [30126]#30031 (@eliorivero)
Add stable sorting for panels, sections and controls in JS. Improve sorting in PHPPHPPHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. http://php.net/manual/en/intro-whatis.php.. [30214]#30225 (@eliorivero)
Update jQuery UI to 1.11.1. Rename all files, remove the jquery.ui. prefix. Add old files to $_old_files. Add and use non-minified files in /src. Add grunt task to minify jQuery UI files. (Non-minified files will not be shipped.) [29847]#29833 (@kpdesign)
wp_extract_urls() needs to also grab URLs with query strings and hashes. [29756]#29314
In wp_ajax_replyto_comment(), if $_POST['comment_type'] is set, use it for the value of $comment_type, which the compact() call has assumed is set since [8720]. It never was. [29758]#29704
Ordering by RAND(): The shortcodeShortcodeA 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. callbacks for gallery and playlist check for 'RAND' == $atts['order'], which isn’t a valid value for order. Remove those checks and update the docs. In WP_Query, if the value of orderby is rand, order is irrelevant and should be unset. [29760]#29629
Improve and clarify inline commenting inside the check_comment() function. [29763][29762]#29734
Create correct permalinks for child posts of hierarchical post types when default permalinks are used. [29765]#29615
Allow bookmarks to be ordered by link_description in get_bookmarks(). [29778]#29763
In paginate_links(), ensure that query string args are propagated to the resulting paginated links. [29780]#29636
The joys of wptexturize(): Revert parts of [28773] and [28727] and [29748]. Do not ignore unclosed HTML comments. Do not break unregistered shortcodes, e.g. [hello attr=”value”], or when there is extra whitespace, e.g. [ hello ]. Do not break HTML in shortcode attributes, e.g. [hello attr=”<”]. [29781]#29557
Use SSLSSLSecure Socket Layer - Encryption from the server to the browser and back. Prevents prying eyes from seeing what you are sending between your browser and the server. for all references to WordPress.orgWordPress.orgThe 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/[29787][29788][29789]#27115 (@kpdesign)
Handle deficiencies in PHP’s parse_url in older versions of PHP (<5.4.7) in WP_HTTP::make_absolute_url(). Correctly handle url’s containing url’s in WP_HTTP::make_absolute_url(). Correctly support Schemeless URLs in WP_HTTP::make_absolute_url() by respecting the ‘host’ field if present in the relative url. [29851][29850][29861]#28001, #29886
New remove() method and some unit tests for the WP_Error class. @29854#28092 (@kpdesign)
Return an error when adding a term to a non-existent parent. [29867]#29614
Add a 6th (!) attribute to wp_get_attachment_link() to allow aria-describedby to be added to gallery output. [29914]#27402
Cache get_term_by() calls: Add a helper function, wp_get_last_changed(), to retrieve a last-modified timestamp by cache group. Original term cache entries maintain BC. [29915]#21760 (@kpdesign)
wp_schedule_single_event() should not prevent scheduling a future duplicate event. It should only reject an event as a duplicate if there is already a similar event scheduled within 10 minutes of the given timestamp. [29939]#28213
Add ID attribute to style element from wp_add_inline_style(). [29956][29958]#30032
Move password hint text to a function. Add password_hint filter. [29962]#21243 (@kpdesign)
HTTPHTTPHTTP is an acronym for Hyper Text Transfer Protocol. HTTP is the underlying protocol used by the World Wide Web and this protocol defines how messages are formatted and transmitted, and what actions Web servers and browsers should take in response to various commands. API: Support both the limit_response_size and stream parameters at the same time, allowing a partial file download. [29968]#26726
Introduce an edit_form_before_permalink action which gets fired after the title field but before the permalink fields. [30028]#29691 (@kpdesign)
In wp_link_pages(), only output link separators between actual pagination links. [30030]#24940
Rename _wp_password_hint() to _wp_get_password_hint() to bring it inline with core terminology. [30033]#21243 (@kpdesign)
Don’t add sticky class in get_post_class() if ignore_sticky_posts query var is set. [30036]#18035 (@kpdesign)
Don’t display Standard post format twice in the metaMetaMeta 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. box if the theme unnecessarily mentions it in the add_theme_support() call. [30038]#16555
Add comment_reply_link_args filter for get_comment_reply_link() arguments. [30039]#10569 (@kpdesign)
Allow slug param of get_terms() to accept an array. [30042]#23636
Introduce orderby=include support for get_terms(). [30052]#23261
Remove UNIQUE key from slug column of terms table. [30056]#22023
Add wp_json_encode(), a wrapper for json_encode() that ensures everything is converted to UTF-8. Change all core calls from json_encode() to wp_json_encode(). [30055]#28786
Introduce wp_is_trusted_network(). A first step to establish concepts around trusted and untrusted networks. [30071]#30145 (@kpdesign)
Don’t hardcode height for videos – this was a workaround for MediaElement internals causing problems. Responsive videos now work properly and don’t cause extra whitespace. [30082]#30078 (@kpdesign)
Introduce some actions and filters which aid plugins in revisioning post meta. [30091]#20564 (@kpdesign)
Support EXISTS and NOT EXISTS in WP_Tax_Query. [29896]#29181
Support nested tax query syntax in redirect_canonical(). [29901]#29738
Avoid redundant table joins in WP_Tax_Query. [29902]#18105
Check that search value is scalar before parsing. Prevents PHP notices when non-scalar values are passed. [29912]#29736
Introduce nested query support to WP_Date_Query. [29923]#29822
Throw notices _doing_it_wrong() notices are now generated when passing out-of-range values (month=13) or invalid dates (2014-02-29) to WP_Date_Query. [29925]#25834
Support date_query by user_registered in WP_User_Query. [29934]#27283
Comment/post author in/not_in for WP_Comment_Query. [29935]#29885
Better “inclusive” support for string values in WP_Date_Query. [29936]#29908
Allow ORDER BY in WP_Comment_Query::query() to be disabled. [30004]#29902 DisableORDER BY by passing boolean false, an empty array, or the string none to the orderbyparameter. This mirrors the behavior of WP_Query.
Accept orderby=include in WP_User_Query. [30016]#30064 This lets the results of a user query be sorted manually by the value of the include param.
Fix count in WP_Comment_Query when using meta_query. [30026]#23369
Allow revision Backbone classes to be used on pages other than revision.php. [30128]#30221 (@kpdesign)
Add a single responsibility function for outputting Revisions JS templates: wp_print_revision_templates(). Use it in wp-admin/revision.php. [30129]#30220 (@kpdesign)
Revisions modules should not rely on global settings; only pass in global settings on init, this allows the classes to be used agnostically elsewhere. [30131]#30219 (@kpdesign)
Don’t force child_of=0 for non-hierarchical taxonomies in get_terms(). [30265]#30275
In get_adjacent_post(), $excluded_terms should check term_id rather than term_taxonom_id. [30263]#29663, #22112.
Allow resource_type to be specified in get_ancestors(). Being explicit about resource type (taxonomy vs post_type) allows for the proper resolution of conflicts when a taxonomy and post_type share a slug. [30141]#15029
In wp_insert_term(), clean up accidental duplicate terms after insert. [30238] See #22023, #5809.
Add some unit tests for is_object_in_term(). These tests check a number of the ways that different kinds of values for $terms (integers that match term_id, strings that match term_id or name or slug) are handled. [30204]#29467
In in_object_in_term(), only check numeric string values against term_id. [30205]#29467
Introduce term_template param to get_the_taxonomies() to allow theme and plugin authors to specify the formatting on term links as they are parsed into the taxonomy list. [30209] See #27238.
Allow duplicate slugs across different post types. [30158]#18962
In get_terms(), do not override hierarchical and pad_count when parent is present. The previous behavior resulted in descendant terms being improperly excluded from the results when passing a parent, even when hierarchical had been set to true. [30107]#29815
Clean up get_term_by() caching, fix cache key/group modification that was missed in [30073], and update unit tests. [30108]#21760 (@kpdesign)
Add two properties to media.model.Attachments.propmap: include and exclude, which are aliases for post__in and post__not_in. This allows you to instantiate a library that includes and/or excludes specific attachments by passing a single ID or an array of IDs. [29759]#26587 (@kpdesign)
Disable multi-file uploading in iOS 7.x Safari as it prevents uploading of videos. [29776]#29602 (@kpdesign)
When the modal is open, don’t respond to arrow keys when <textarea> has focus. [29777]#29725 (@kpdesign)
Add size to the UI for Gallery Settings in the media modal. Ensure that the TinyMCE view is refreshed when size changes. [29779]#18143 (@kpdesign)
Add a namespace to the click handler registration for .insert-media in media-editor.js: click.add-media-button to allow devs to override the default behavior. [29802]#23096 (@kpdesign)
In wp_delete_attachment(): account for orphan sizes by looping over the sizes stored in metadata, instead of relying on the current sizes stored in $_wp_additional_image_sizes. [29816]#24518 (@kpdesign)
For attachment-compat fields, show a spinner while wp.media.model.Attachment.saveCompat() is firing. #27028[29831]
In the admin, give media list table icons auto for width and height. In the post thumbnail metaboxMetaboxA post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way., apply width: auto. If someone turns on support SVG files, this will allow them to show up. [29832]#26256
Introduce new template functions for archive titles and descriptions: get_the_archive_title() and the_archive_title() for returning/displaying the title of the current term, date, post type, post format, or author archive. get_the_archive_description() and the_archive_description() for returning/displaying the description associated with the current term archive.[30223]#21995 (@kpdesign)
In get_page_children(), only check $page->ancestors once to avoid duplicates when the function recurses. Adds an argument, $ancestors. [30246]#18962 (@kpdesign)
Allow get_pages(), with child_of passed to it, to work with interrupted hierarchies. [30159]#18962 (@kpdesign)