{"id":11254303,"date":"2019-05-19T07:49:36","date_gmt":"2019-05-19T07:49:36","guid":{"rendered":"https:\/\/wordpress.org\/support\/?post_type=helphub_version&amp;p=11254303"},"modified":"2019-05-19T07:49:36","modified_gmt":"2019-05-19T07:49:36","slug":"version-2-9","status":"publish","type":"helphub_version","link":"https:\/\/wordpress.org\/documentation\/wordpress-version\/version-2-9\/","title":{"rendered":"Version 2.9"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">On December 18th, 2009, WordPress&nbsp;<strong>Version 2.9<\/strong>, named for Carmen McRae, was released to the public. For more information on this enhancement and bug-fix release, read the&nbsp;<a href=\"https:\/\/wordpress.org\/news\/2009\/12\/wordpress-2-9\/\">Development Blog<\/a>&nbsp;and see the&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Changelog\/2.9\">Changelog for 2.9<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For&nbsp;<strong>Version 2.9<\/strong>, the database version (<strong>db_version<\/strong>&nbsp;in&nbsp;<strong>wp_options<\/strong>) changed to 12329, and the&nbsp;<a href=\"https:\/\/core.trac.wordpress.org\/\">Trac<\/a>&nbsp;revision was&nbsp;<a href=\"https:\/\/core.trac.wordpress.org\/changeset\/12455\">12455<\/a>.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/trac.wordpress.org\/query?status=new&amp;status=assigned&amp;status=reopened&amp;milestone=2.9\">View Open Tickets<\/a><\/li><li><a href=\"https:\/\/trac.wordpress.org\/query?status=closed&amp;milestone=2.9\">View Closed Tickets<\/a><\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Highlights<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Requires&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Glossary#MySQL\">MySQL<\/a>&nbsp;4.1.2 or greater (old requirement was MySQL 4.0 or greater).<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">New Features<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">User Features<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/codex.wordpress.org\/Trash_status\">Trash status<\/a>&nbsp;for posts, pages, and comments (includes restore and permanent delete)<\/li><li>Add support for &#8216;include&#8217; and &#8216;exclude&#8217; to  (<a href=\"https:\/\/codex.wordpress.org\/Gallery_Shortcode\">Gallery Shortcode<\/a>)<\/li><li>Allow user registration to be enabled by an&nbsp;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=XMLRPC&amp;action=edit&amp;redlink=1\">XMLRPC<\/a>&nbsp;client<\/li><li>Add support for sticky posts to the WXR&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Tools_Export_SubPanel\">exporter<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Tools_Import_SubPanel\">importer<\/a><\/li><li>&#8216;rel=canonical&#8217; for singular pages<\/li><li>Scroll back to the same location after saving a file in the Plugin and Theme editors<\/li><li>Correct comments and remove unnecessary echos from the default themes sidebar template file<\/li><li>Enable the APP (Atom) attachment file download to work correctly<\/li><li>Support location of&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Hierarchy#Category_display\">category templates<\/a>&nbsp;based on &#8216;category-slug&#8217; as well as &#8216;category-id&#8217; (<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/10614\">Ticket 10614<\/a>)<\/li><li>Support location of&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Hierarchy#Tag_display\">tag templates<\/a>&nbsp;based on &#8216;tag-id&#8217; as well as &#8216;tag-slug&#8217; (<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/10868\">Ticket 10868<\/a>)<\/li><li>Support location of&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Hierarchy#Page_display\">page templates<\/a>&nbsp;based on &#8216;page-slug&#8217; and &#8216;page-id&#8217;<\/li><li>Set &#8220;Allow my blog to appear in search engines&#8221; to checked in installation<\/li><li>Don&#8217;t offer to make a category its own parent<\/li><li>Remove Sphere from search list<\/li><li>Minify admin CSS<\/li><li>Show correct max upload filesize error message<\/li><li>Add &#8216;rel&#8217; attribute to&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Next_and_Previous_Links\">next\/previous post links<\/a><\/li><li>Make the default and classic themes comment textareas valid XHTML<\/li><li>Clean up &#8216;.button&#8217; and &#8216;.button[disabled]&#8217; CSS classes, add &#8216;spinner&#8217; and &#8216;gray-out&#8217; buttons after clicking Publish or Update post<\/li><li>Fix race condition with autosave when clicking Publish immediately after entering post title<\/li><li>Add Comments for Pages in the WordPress Default theme<\/li><li>Define &#8216;$content_width&#8217; for Kubrick<\/li><li>Better feedback on publishing of future posts and pages<\/li><li>Display comments in descending date order, consistently<\/li><li>Add means of automatically repairing tables<\/li><li><a href=\"https:\/\/codex.wordpress.org\/Press_This\">Press This<\/a>&nbsp;bookmarklet fixes<\/li><li>Give plugins and themes simple control over the text displayed at the end of an autogenerated&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Excerpt\">Excerpt<\/a><\/li><li>Don&#8217;t show &#8220;Change Permalinks&#8221; button when editing the page set as &#8220;Front page&#8221;<\/li><li>Image editing<\/li><li>Retire BunnyTags importer<\/li><li>Retire Jerome&#8217;s keywords importer<\/li><li>Explain that the permalink is temporary for autosave generated permalinks<\/li><li>Update SimplePie to 1.2<\/li><li>Eliminate the redundant and confusing comment threading depth of 1<\/li><li>Easier&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Embeds\">Embeds<\/a>&nbsp;with oEmbed support (see&nbsp;<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/10337\">Ticket #10337<\/a>) (oEmbed discovery disabled by default, use&nbsp;<a href=\"https:\/\/wordpress.org\/extend\/plugins\/enable-oembed-discovery\/\">plugin<\/a>&nbsp;to enable it)<\/li><li>TinyMCE 3.2.7<\/li><li>Remove rel=&#8217;tag&#8217; on links in Tag Clouds<\/li><li>Add a title to the Home link output by&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/wp_page_menu\">wp_page_menu()<\/a><\/li><li>Adjust comment moderation&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Keyboard_Shortcuts\">keyboard shortcut keys<\/a>&nbsp;&#8216;d = trash&#8217; or delete depending on the screen<\/li><li>Show &#8220;Draft updated&#8221; instead of &#8220;Post updated&#8221; when saving draft<\/li><li>Show the login form in a popup when autosave hits the login grace period<\/li><li>Open View\/Preview post in a new window from the link in the Saved\/Updated message<\/li><li>Separate fields for &#8216;image alt&#8217; and &#8216;image caption&#8217; in&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Media_Add_New_SubPanel\">Media uploader<\/a><\/li><li>Display better information about broken themes when there is no stylesheet<\/li><li>Improve situation when tables such as&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Database_Description#Table:_wp_options\">wp_options<\/a>&nbsp;table were &#8216;corrupt&#8217; new installation message was offered. Add means of automatically repairing tables<\/li><li>Export and import custom taxonomies<\/li><li>Admin copy improvements<\/li><li>Don&#8217;t show page templates in the drop down if they are in a subdirectory<\/li><li>Make codex link open in a new window<\/li><li>Change &#8216;Remove&#8217; link on widgets to &#8216;Delete&#8217; because it doesn&#8217;t just remove it, it deletes the settings for that widget instance.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Development, Themes, Plugins<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>Added &#8216;<a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/excerpt_more\">excerpt_more<\/a>&#8216; filter to&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_trim_excerpt\">wp_trim_excerpt()<\/a>&nbsp;function, which allow developers to change excerpt &#8216;[&#8230;]&#8217; more string (<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/10395\">Ticket 10395<\/a>)<\/li><li>Add &#8216;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Plugin_API\/Filter_Reference\/smilies_src&amp;action=edit&amp;redlink=1\">smilies_src<\/a>&#8216; filter so plugins can better add smilies<\/li><li>Canonical redirects for post name queries<\/li><li>Allow&nbsp;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Function_Reference\/_wp_get_comment_list&amp;action=edit&amp;redlink=1\">_wp_get_comment_list()<\/a>&nbsp;to handle custom comment types<\/li><li>Return an empty array instead of false for&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_children\">get_children()<\/a>&nbsp;when no children found<\/li><li>Add some filters so that HTTP requests can be filtered<\/li><li>Move plugin update notice output to the plugin specific hook<\/li><li>Limit wp-mail &#8216;blog by email&#8217; checks to every 5 minutes<\/li><li>Make it much easier to filter contact methods from user profiles<\/li><li>Allow filtering of get_edit_post_link for custom post_type<\/li><li>&#8216;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Plugin_API\/Filter_Reference\/get_sample_permalink_html&amp;action=edit&amp;redlink=1\">get_sample_permalink_html<\/a>&#8216; filter<\/li><li>Enforce activation key to be a string, reject activation keys that are arrays<\/li><li>Support for new post types<\/li><li>Respect custom post_type in queries<\/li><li>Send Retry-After header when in maintenance mode<\/li><li>Various WP Filesystem related fixes and documentation<\/li><li>Add constants for ftp connections timeouts<\/li><li>Increase timeout on cron-based requests when checking for upgrades<\/li><li>Don&#8217;t use&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/has_action\">has_action()<\/a>&nbsp;before&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/do_action\">do_action()<\/a>&nbsp;in http.php<\/li><li>Speed up jQuery based scripts<\/li><li>Use the current user as author for autosave<\/li><li>Show My Posts as default view on the Edit Posts screen for users without &#8216;edit_others_posts&#8217; cap<\/li><li>Ensure that drafts viewed over XMLRPC have a correct gmt date set<\/li><li>Pass user id to &#8216;get_&#8217; the_author_meta filters<\/li><li>Move&nbsp;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Function_Reference\/_wp_get_user_contactmethods&amp;action=edit&amp;redlink=1\">_wp_get_user_contactmethods()<\/a>&nbsp;into the registrations functions file<\/li><li>Machine parseable db error codes<\/li><li>Add global JS vars and actions to the media uploader iframe<\/li><li>Add JSON compat for PHP &lt; 5.2<\/li><li>Make option_name the primary key for the&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Database_Description#Table:_wp_options\">options table<\/a><\/li><li>Allow a plugin to do a complete takeover of Post by Email<\/li><li>Logarithmic scale for&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/wp_tag_cloud\">tag cloud<\/a><\/li><li>Pass Post ID to the &#8216;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Plugin_API\/Filter_Reference\/get_comments_number&amp;action=edit&amp;redlink=1\">get_comments_number<\/a>&#8216; filter<\/li><li>Always filter the url in the media upload form<\/li><li>Add a &#8216;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Plugin_API\/Filter_Reference\/the_terms&amp;action=edit&amp;redlink=1\">the_terms<\/a>&#8216; filter<\/li><li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/is_blog_installed\">is_blog_installed()<\/a>&nbsp;improvements<\/li><li>Allow force_<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Function_Reference\/ssl_admin&amp;action=edit&amp;redlink=1\">ssl_admin()<\/a>&nbsp;to properly accept false as a value<\/li><li>Pass logged_in cookie to async-upload and filter the cookie scheme in auth_redirect()<\/li><li>Add more actions around database add\/delete\/update operations<\/li><li>phpDoc for wp_&#8221;check|set&#8221;_post_lock functions<\/li><li>Use the old strings which are more translator friendly and add a generic default string to aid re-use by plugins adding post_types<\/li><li>Filter fields through kses upon display and introduce&nbsp;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Function_Reference\/sanitize_user_object&amp;action=edit&amp;redlink=1\">sanitize_user_object()<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Function_Reference\/sanitize_user_field&amp;action=edit&amp;redlink=1\">sanitize_user_field()<\/a><\/li><li>Use null instead of 0 when setting content length<\/li><li>Include &#8216;hidden&#8217; directories in filesystem dirlist by default<\/li><li>Pass args array to &#8216;<a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/wp_list_pages\">wp_list_pages<\/a>&#8216; filter<\/li><li>Actions for taxonomy updates<\/li><li>Key should be &#8216;comment_id&#8217; not &#8216;post_id&#8217; in&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Database_Description#Table:_wp_comments\">comments table<\/a><\/li><li>Add&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_delete_post_link\">get_delete_post_link ()<\/a>&nbsp;to retrieve delete posts link for post<\/li><li>Add &#8216;separator&#8217; parameter to&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/wp_tag_cloud\">wp_tag_cloud()<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/wp_generate_tag_cloud\">wp_generate_tag_cloud()<\/a>&nbsp;functions (<a href=\"https:\/\/core.trac.wordpress.org\/ticket\/10315\">Ticket 10315<\/a>)<\/li><li>Added&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/add_comment_meta\">add_comment_meta()<\/a>&nbsp;family of functions<\/li><li>Use a post_parent of 0 instead of -1 to indicate unattached posts<\/li><li>Improve&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_page_hierarchy\">get_page_hierarchy()<\/a>&nbsp;function<\/li><li>Deprecate&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_content_rss\">the_content_rss()<\/a>, add&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_content_feed\">the_content_feed()<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/get_the_content_feed\">get_the_content_feed()<\/a>. Convert places that called&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_content_rss\">the_content_rss()<\/a>with an excerpt length to&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_excerpt_rss\">the_excerpt_rss()<\/a>. Remove the rss_excerpt_length option. Use&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/the_content_feed\">the_content_feed()<\/a>&nbsp;where&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/the_content\">the_content()<\/a>was previously used in feeds.<\/li><li>Add &#8216;pad_counts&#8217; argument to&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/wp_dropdown_categories\">wp_dropdown_categories()<\/a><\/li><li>Remove codepress<\/li><li>Remove the php-gettext library<\/li><li>Canonical post thumbanils<\/li><li>Add a filter to&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/the_author_posts_link\">the_author_posts_link()<\/a><\/li><li>Merge post.js with page.js and slug.js, optimize categories and tags JS, standardize postboxes IDs and JS<\/li><li>Introduce&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/register_theme_directory\">register_theme_directory()<\/a>&nbsp;which takes a wp-content-relative path and will additionally scan it for themes. Plugins can use this to add themes without requiring copying by the user<\/li><li>Add set_user_role action hook<\/li><li>Allow theme devs to change attrs (like CSS class) of thumbnail images<\/li><li>Add wp-post-image CSS class to post images<\/li><li>Allow for plugins to enhance the number of metadata fields captured from plugin and theme headers<\/li><li>Merge updated pomo code<\/li><li>Switch to using NOOP_Translations for untranslated sites<\/li><li>Improve wptexturize performance<\/li><li>Provide context to the strings in the Plugin and Theme installers to allow for different grammatical gender<\/li><li>Fixes for theme subdir support<\/li><li>Introduce&nbsp;<a href=\"\nhttps:\/\/codex.wordpress.org\/Function_Reference\/wp_kses_post\">wp_kses_post()<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_kses_data\">wp_kses_data()<\/a>&nbsp;for filtering unescaped data<\/li><li>Add &#8216;orderby=comment_count&#8217; argument to&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Template_Tags\/query_posts\">query_posts()<\/a><\/li><li>Honor Post Type for Sticky Posts<\/li><li>Allow querying multiple post types<\/li><li>Introduce add_theme_support(feature) and current_theme_supports(feature) for announcing and checking theme support for various features<\/li><li>Introduce&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/require_if_theme_supports\">require_if_theme_supports()<\/a><\/li><li>Add number of&nbsp;<a href=\"https:\/\/codex.wordpress.org\/index.php?title=Embed&amp;action=edit&amp;redlink=1\">Embed<\/a>&nbsp;related filters<\/li><li>Add &#8216;IMAGE_EDIT_OVERWRITE&#8217; constant to control edited image save or replace, most useful for setups that have dynamic image resizing<\/li><li>Add&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/load_child_theme_textdomain\">load_child_theme_textdomain()<\/a>&nbsp;to allow child themes to have their own translation files<\/li><li>Add sidebar descriptions to sidebar settings and widget admin screen<\/li><li>Make option_id primary. Add uniques for option_name and autoload<\/li><li>Allow plugins to override the behaviour of&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/load_textdomain\">load_textdomain()<\/a>&nbsp;in a variety of flexible ways<\/li><li>Mark&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/_c\">_c()<\/a>&nbsp;as deprecated. The new&nbsp;<a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/_x\">_x()<\/a>&nbsp;function should be used instead.<\/li><li>Allow plugins to change the redirect on post\/page publishing\/submitting<\/li><li>Standardize on &#8216;user_id&#8217; instead of &#8216;user_ID&#8217; when passing comment data. Accept either &#8216;user_id&#8217; or &#8216;user_ID&#8217;. Remove &#8216;user_id&#8217; global.<\/li><li>Filter imported comments<\/li><li>Introducing set_post_image_size(w, h, crop) so themes can register their special size\/crop for canonical post images<\/li><li>Standardize around &#8220;post image&#8221; instead of &#8220;post thumbnail&#8221;<\/li><li>Allow registering post image support per post type<\/li><li>Return false from is_paged() if on the first page.<\/li><li>Check MySQL and PHP versions when auto upgrading<\/li><li>Add required php and mysql versions to version.php<\/li><li>Hard code required version in update-core.php<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>On December 18th, 2009, WordPress&nbsp;Version 2.9, named for Carmen McRae, was released to the public. For more information on this enhancement and bug-fix release, read the&nbsp;Development Blog&nbsp;and see the&nbsp;Changelog for 2.9. For&nbsp;Version 2.9, the database version (db_version&nbsp;in&nbsp;wp_options) changed to 12329, and the&nbsp;Trac&nbsp;revision was&nbsp;12455. View Open Tickets View Closed Tickets Highlights Requires&nbsp;MySQL&nbsp;4.1.2 or greater (old requirement [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"menu_order":0,"template":"","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false},"helphub_major_release":[],"class_list":["post-11254303","helphub_version","type-helphub_version","status-publish","hentry"],"revision_note":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/documentation\/wp-json\/wp\/v2\/wordpress-versions\/11254303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/documentation\/wp-json\/wp\/v2\/wordpress-versions"}],"about":[{"href":"https:\/\/wordpress.org\/documentation\/wp-json\/wp\/v2\/types\/helphub_version"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.org\/documentation\/wp-json\/wp\/v2\/wordpress-versions\/11254303\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/documentation\/wp-json\/wp\/v2\/media?parent=11254303"}],"wp:term":[{"taxonomy":"helphub_major_release","embeddable":true,"href":"https:\/\/wordpress.org\/documentation\/wp-json\/wp\/v2\/helphub_major_release?post=11254303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}