﻿__group__,ticket,summary,owner,component,_version,priority,severity,milestone,type,_status,workflow,_created,modified,_description,_reporter
Next Release,23697,Check and refresh post locks with heartbeat,,Administration,,normal,normal,3.6,task (blessed),new,has-patch,2013-03-05T18:57:10Z,2013-05-16T20:51:58Z,This will change the frequency we check post locks: 15 sec. when the user is active and 2 min. when inactive and add prominent warnings when somebody else is editing or when another user takes over.,azaozz
Next Release,23295,Improved login expiration warning,,Autosave,,normal,normal,3.6,task (blessed),new,has-patch,2013-01-25T22:49:45Z,2013-05-16T03:47:09Z,"The goal here is to improve the user experience when your login has / will expire, as discussed in [http://make.wordpress.org/core/2013/01/07/wordpress-3-6-autosave-and-post-locking/ WordPress 3.6: Autosave and Post Locking] and the [http://make.wordpress.org/core/2013/01/25/agenda-for-todays-autosave-and-post-locking-team/ autosave and post locking team meeting in IRC].

The suggested tactic is to integrate the [https://github.com/Penske-Media-Corp/pmc-post-savior/ PMC Post Savior] plugin into core.  That part should be pretty straightforward.

I think 3 valuable enhancements that are on the plugin's roadmap, but not yet complete would be:
* Alert properly on failed requests and lost connectivity.  If my internet connection has gone down and I'm still working, I should be alerted that I'm ""Working offline"" and my changes aren't being automatically saved.  I don't think this should be a blocking UI, but it should be obvious.
* Block publish/save until login has been verified.  Polling duration can be decreased (or maybe even done away with entirely) if we block the Publish/Save/etc actions until we've verified the user's cookie.
* Pre-emptive notification.  When approaching the user's login cookie expiration time, say 1 hour before, display a message and allow the user to extend their login.  For example, how banking sites notify you when you've been inactive too long and they're about to log you out.",mintindeed
Next Release,23312,Post Lock Interface for Post List Screen,,Autosave,,normal,normal,3.6,task (blessed),new,has-patch,2013-01-29T03:17:36Z,2013-05-16T15:04:13Z,"For 3.6, we'd like to improve the experience for users with post locks!

For the Post List screen, we'd like to:
- Make it easy for users to tell which posts are locked directly from the post list screen.
- Realtime lock update using Heartbeat API (#23216)

Maybe:
- Make it visible which user holds the lock
- Meta editing allowed while post is locked

",dh-shredder
Next Release,23450,Refactor menu item meta boxes as accordion,markjaquith,Menus,trunk,normal,normal,3.6,task (blessed),reopened,has-patch,2013-02-11T14:27:58Z,2013-05-14T18:56:41Z,"Once #23449 is complete, we are going to refactor the menu items meta boxes on nav-menus.php to reflect the same design as the accordion in the customizer.  We've already [http://core.trac.wordpress.org/ticket/23119#comment:181 prototyped] & [http://make.wordpress.org/ui/2013/02/07/heres-round-7-of-our-menus-usability-tests/ tested] this design on users, and it seems to provide a better UI.",lessbloat
Next Release,24011,"Consider hiding post title for ""Status"" and ""Aside"" formats and autogenerating",,Post Formats,trunk,high,normal,3.6,task (blessed),new,has-patch,2013-04-09T18:51:36Z,2013-05-19T02:30:01Z,"The status and asides post formats shouldn't have a title. The only reason for having a title is to generate a slug. We should consider hiding the post title for these formats, and auto-generating a title based on the first X chars of the post, P2 style.",markjaquith
Next Release,24291,Tweaks to Image post format UI,,Post Formats,trunk,high,major,3.6,task (blessed),new,has-patch,2013-05-08T22:12:31Z,2013-05-13T04:19:11Z,"The image post format UI is not friendly enough. There is too much emphasis on providing a URL or HTML, and not enough emphasis on using the !WordPress media library.

We should hide the HTML behind a click, kind of like !WordPress.com's toolbar-poster does.",markjaquith
Future Releases,13820,AJAX update the comment bubbles on edit-comments.php,,Comments,3.0,normal,normal,Future Release,task (blessed),assigned,has-patch,2010-06-10T13:45:27Z,2012-03-08T01:58:35Z,"We update the bubble in the Comments admin menu item. We should also update the counts in the ""In Response To"" bubbles, as well as the bubble color.",matt
Future Releases,9824,make better use of stubs when verbose rules should apply,,Rewrite Rules,,normal,normal,Future Release,task (blessed),reopened,has-patch,2009-05-15T01:03:56Z,2011-11-02T16:08:26Z,"Related to:

http://core.trac.wordpress.org/ticket/6603#comment:27

Problem fixed is:

> posts show up as www.apexprd.org/page/2 and not /news-and-events/page/2 as it should.

with permalinks set to /something/$postname%/

we arguably don't necessarily need verbose rules here, since there is a stub.",Denis-de-Bernardy
Future Releases,18289,Direct link to plugin installation should have admin chrome,nacin,Upgrade/Install,,normal,normal,Future Release,task (blessed),reviewing,has-patch,2011-07-29T06:02:19Z,2011-11-10T19:05:23Z,"We should be able to provide a direct link to the page to install a plugin, based on the plugin's slug. This does it: wp-admin/plugin-install.php?tab=plugin-information&plugin=log-deprecated-notices. However, there's no admin chrome, no real indication which site you're on, and no name of the plugin.

If we're not loading that page inside an iframe request, it needs the admin around it, as well as a heading. Probably new styling too.

This would serve as a replacement for [http://coveredwebservices.com/wp-plugin-install/ Jaquith's bookmarklet], which broke in 3.2 (frame busting), as well as allow us to integrate a link on extend/plugins for plugin installation. Related, #16923, which is now closed.",nacin
Future Releases,18200,Language Packs,nacin*,Upgrade/Install,,normal,normal,Future Release,task (blessed),accepted,has-patch,2011-07-21T21:09:28Z,2013-04-04T21:10:54Z,"Implement language packs for core, plugins, and themes.

Inspiration and code can hopefully be derived from the corresponding GSoC project.

This will require quite a bit of work in GlotPress, on api.wordpress.org, and in core. I will take point, but assistance will be needed. A number of decisions will need to be made. I will begin designing a document for what exactly needs to be done over the next week.",nacin
Future Releases,15645,Refactor widgets.dev.css,,Widgets,3.1,normal,normal,Future Release,task (blessed),new,has-patch,2010-12-02T12:21:33Z,2012-12-24T07:05:58Z,Standard refactor of widgets.dev.css to be much more awesome. See #14770,JohnONolan
Future Releases,24324,Placeholder support to login form,,Accessibility,,normal,minor,Awaiting Review,feature request,new,has-patch,2013-05-12T09:59:13Z,2013-05-14T14:44:34Z,wp_login_form isn't support placeholder attribute yet. It would be good. Isn't it?,m_uysl
Future Releases,19239,Combine WordPress News and Other WordPress News dashboard widgets,,Administration,3.3,normal,normal,Future Release,feature request,new,has-patch,2011-11-12T19:01:42Z,2013-05-14T19:49:51Z,"We could lighten the dashboard by making this one widget with configuration instead of two separate ones. Anything from WordPress.org official blog would get a highlight to designate it as such. Configure would allow to choose display of both feeds or jus one, and how many items to show.",jane
Future Releases,16434,"Give site admin ability to upload favicon in Settings, General",,Administration,3.1,normal,normal,Future Release,feature request,new,has-patch,2011-02-01T16:57:34Z,2013-02-14T18:13:55Z,"WordPress has come a long way in terms of making it possible for someone completely non-technical to create a professional web site for a person or business. One of the little things that is still annoyingly technical is adding a favicon. WordPress.com does this via the Blavatar feature, a name I wouldn't really want us to adopt b/c this is more CMS-oriented, but the ease of uploading an image, scaling and cropping it, then having it become the favicon is something I do want to adopt. Keeping it a theme-based thing means the non-technical can't control it for their sites, which is lame.

",jane
Future Releases,18179,WP_Meta_Box,,Administration,,normal,normal,Future Release,feature request,new,has-patch,2011-07-20T01:05:50Z,2013-03-08T16:31:47Z,"Ryan, Nacin, and I would like to see a Meta Box class in 3.3. Let's make it happen.

Attached is a first pass (in plugin form, for ease). It provides a basic API and supports multiple instances. Instances are stored in a static meta box registry, which should require minimal interaction.

Keep in mind that meta boxes are not just registered on CPT pages — they are also used on the dashboard, in menus, and in custom UIs. The parent class should be suitable for each of these cases.

I think we should move caps to the main Meta Box class (and allow subclasses/instances to specify/override the cap through $args), and also provide $args to enable/disable any checks we perform before saving (e.g. autosave, etc).

It would also be interesting to integrate this with the proposed metadata API improvements.

See #15066 for prior discussion.",koopersmith
Future Releases,16252,Allow comment reparenting to fix poor threading,,Comments,,normal,normal,Awaiting Review,feature request,new,has-patch,2011-01-15T23:12:25Z,2012-04-29T10:48:16Z,"For the OCD among us, it would be super nice to be able to edit the comment_parent, to properly thread comments made in the wrong place/threading order.

Choose your own UI, but even just a numeric editor in the Quick Edit area would be a huge enhancement.",Otto42
Future Releases,12986,Enhancement to comments_popup_link(),,Comments,,normal,normal,Future Release,feature request,new,has-patch,2010-04-13T06:25:13Z,2010-04-18T05:53:20Z,"Currently ""Comments Off"" is wrap with <span> tag, but not ""Enter your password to view comments."" if post requires password. 

The idea is to wrap ""Enter your password to view comments."" with span tag, have its own css class e.g enter-password. Also adds $css_class if set. This way, theme author can easily style it based on post / comment status condition.

And add another paramater $password so that theme author can customize the text to display if post is password protected.

Need 2nd opinion with the attached patch.

",zeo
Future Releases,10660,Time zone suggester based on nascent WordPress.org API call,rmccue,Date/Time,2.8.4,normal,normal,Future Release,feature request,assigned,has-patch,2009-08-20T05:59:42Z,2013-02-19T19:00:38Z,"The attached patch uses a new API call to http://api.wordpress.org/core/ip-to-zoneinfo/1.0/ to retrieve a suggested time zone based on client (not server) IP address.

A button is added next to the existing dropdown list of time zones providing the option to ""Suggest a time zone"". This calls the API using an AJAX/JSONP request which then auto-selects a time zone for the user from the dropdown.

Visual feedback is via a spinner when fetching and then a text response.

Additionally the Date and Time settings have been split out to a new settings page.

Related ticket: #10324",sambauers
Future Releases,22346,Add Videojug.com to internal whitelist,,Embeds,3.4.2,normal,normal,Awaiting Review,feature request,new,has-patch,2012-11-02T15:30:50Z,2012-11-05T10:48:00Z,"Dear Wordpress,

I am writing on behalf of Videojug. We create and distribute hiqh quality ""How-To"" online content, and have been producing professional, instructional, short-form video content since 2006. We receive many requests monthly from our Contributors and Users asking for assistance in embedding our videos in their Wordpress sites. Currently it is a convoluted process involving plugins adding complexities.  

Other video providers in our sector are already whitelisted. We would like to be added please to your internal whitelist, allowing any Wordpress blogger to embed our videos by copying the URL just like they would when embedding a Youtube video. Our own embed code has been stable for a long time.

We have our oembeds working in the following wordpress account:
[http://chloeluper.co.uk/index.php/embed-test-page/]

This is the add oembed provider code:

{{{
wp_oembed_add_provider( '#http://(www\.)?videojug.com/(film|interview)/.*#i', 'http://www.videojug.com/oembed.{format}', true );
}}}

I have attached the modified default theme.

Thank you
Imad Salhi
 ",Videojug
Future Releases,23431,[embed] shortcode doesn't work with do_shortcode(),,Embeds,3.5,normal,normal,Awaiting Review,feature request,new,has-patch,2013-02-09T15:05:02Z,2013-02-10T15:35:37Z,"It would be preferable to use the [embed] shortcode through do_shortcode rather than apply_filters( 'the_content',... in order to avoid sharing plugins, related posts plugins etc appending content to something that could simple be post meta, i.e. looking to convert a youtube url to a video.",jtsternberg
Future Releases,17379,Filtered exports drop attachments and featured images,,Export,3.0,normal,normal,Awaiting Review,feature request,new,has-patch,2011-05-11T18:37:31Z,2013-01-29T06:46:59Z,"When using Tools>Export, targeting a specific author, the resulting XML file does not contain a reference/link to any Featured Image (thumbnail) associated with these posts.

On the other hand, Tools>Export ""all content"" (including all authors) produces an XML file that does contain reference/link to Featured Image.

Request: Have Tools>Export ""specific author"" generate the same metadata as the ""all content"" export, so that Export ""specific author"" will also include metadata reference to the Featured Image.

Many people (including myself) use ""specific author"" as a way to export some, but not all, posts. Full metadata would really help. Thanks.",billseymour
Future Releases,11725,Add start and count attributes to gallery shortcode,,Gallery,2.9.1,normal,normal,Future Release,feature request,new,has-patch,2010-01-05T15:00:27Z,2012-08-05T22:58:23Z,"Add shotcodes COUNT for views full gallery after click on MORE. Home

Modify files ./wp-includes/media.php
Lines 699 (add COUNT => '-1')
Lines 767-798 (add ForEach ... )

Use in WP:

[gallery] ... show standard gallery

OR

[gallery count=3] ... show images 1-3
- more -
[gallery count=3+] ... show images 4-n",frymi
Future Releases,12799,Allow gallery shortcode to accept a maximum number of items,,Gallery,2.9.2,normal,normal,Future Release,feature request,new,has-patch,2010-04-01T17:55:55Z,2012-08-27T21:59:51Z,"A ""would be nice"" feature of the gallery would be to allow for a maximum number of items to be displayed.

The main use of this feature would be to allow a page to show a ""preview"" of some of the images contained within one or more subpages, eg:

* Some event
[gallery link=""file"" columns=""4"" orderby=""rand"" maximum=""4"" id=""164""]
* Some other event
[gallery link=""file"" columns=""4"" orderby=""rand"" maximum=""4"" id=""200""]

",dtorbert
Future Releases,23912,Add Composer package description,,General,3.5,normal,trivial,Awaiting Review,feature request,new,has-patch,2013-03-30T20:44:16Z,2013-05-18T18:51:47Z,"WordPress, as software download, lacks machine-readable source of meta information about it. For PHP projects de-facto standard for such is Composer via `composer.json` file in project root.

While WP currently doesn't use or need Composer dependency functionality, it will help provide information to developers and improve WP usage ''as'' dependency in projects that make use of Composer.

Suggested `composer.json` draft:
{{{
{
	""name""        : ""wordpress/wordpress"",
	""description"" : ""WordPress is web software you can use to create a beautiful website or blog."",
	""keywords""    : [""blog"", ""cms""],
	""homepage""    : ""http://wordpress.org/"",
	""license""     : ""GPL-2.0+"",
	""authors""     : [
		{
			""name""    : ""WordPress Community"",
			""homepage"": ""http://wordpress.org/about/""
		}
	],
	""support""     : {
		""issues"": ""http://core.trac.wordpress.org/"",
		""forum"" : ""http://wordpress.org/support/"",
		""wiki""  : ""http://codex.wordpress.org/"",
		""irc""   : ""irc://irc.freenode.net/wordpress"",
		""source"": ""http://core.trac.wordpress.org/browser""
	},
	""require""     : {
		""php"": "">=5.2.4""
	}
}
}}}
",Rarst
Future Releases,12955,Add get_post filter,,General,,normal,normal,Future Release,feature request,new,has-patch,2010-04-10T13:50:07Z,2011-12-01T19:18:07Z,This patch filters the return value of the get_post() function. I would find this very helpful for a plugin I'm developing.,JohnLamansky
Future Releases,17398,Logout with ays should still respect redirect_to,mitchoyoshitaka,General,2.8.4,normal,minor,Awaiting Review,feature request,new,has-patch,2011-05-12T14:46:24Z,2011-11-18T17:19:57Z,"When logging out with a bad nonce, you're taken to the ""Are you sure?"" page, but even if you were sent there with a redirect_to parameter, this parameter is later ignored when you do choose to log out.",mitchoyoshitaka
Future Releases,18729,No HTML Classes/IDs Associated With get_the_password_form() Output,,General,3.2.1,normal,normal,Awaiting Review,feature request,new,has-patch,2011-09-21T10:11:35Z,2011-09-28T06:08:31Z,"Currently get_the_password_form() outputs a password form that offers no HTML classes or IDs for proper styling:

{{{
/**
 * Retrieve protected post password form content.
 *
 * @since 1.0.0
 * @uses apply_filters() Calls 'the_password_form' filter on output.
 *
 * @return string HTML content for password form for password protected post.
 */
function get_the_password_form() {
	global $post;
	$label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID);
	$output = '<form action=""' . get_option('siteurl') . '/wp-pass.php"" method=""post"">
	<p>' . __(""This post is password protected. To view it please enter your password below:"") . '</p>
	<p><label for=""' . $label . '"">' . __(""Password:"") . ' <input name=""post_password"" id=""' . $label . '"" type=""password"" size=""20"" /></label> <input type=""submit"" name=""Submit"" value=""' . esc_attr__(""Submit"") . '"" /></p>
	</form>
	';
	return apply_filters('the_password_form', $output);
}
}}}

It would be quite useful to add classes to the form and input elements in this output so that we can properly style the password form without having to filter the output in, for example, a theme's functions.php file.
",philiparthurmoore
Future Releases,21195,get_avatar_url,,General,2.5,normal,normal,Awaiting Review,feature request,new,has-patch,2012-07-08T18:51:40Z,2013-03-13T00:01:16Z,"There should be a separate function to just get an avatar URL, versus getting the image wrapped in an <img> tag. This function should pass the avatar URL through a filter before returning it.
'''get_avatar''' would then call this function, rather than generating a Gravatar URL on its own.


This way, a plugin can grab a user's avatar image without relying on regex to extract the image from the <img> tag, and in a way that is compatible with plugins that replace Gravatar.",pathawks
Future Releases,20241,make it possible for plugins to activate other plugins,,General,,normal,normal,Awaiting Review,feature request,new,has-patch,2012-03-15T12:48:59Z,2012-06-30T11:36:05Z,"When creating a plugin that depends on other plugins, i would like to enable those plugins during activation of the main plugin.

This is currently not possible, as updates to active_plugins done by the other plugins get overwritten.

Please apply the attached patch to fix this.",magnus78
Future Releases,16460,Category/tag converter should support all public taxonomies,,Import,3.0,normal,normal,WordPress.org,feature request,new,has-patch,2011-02-05T04:56:39Z,2013-01-17T17:09:40Z,"The category to tag converter should let you convert terms to custom taxonomies, if any are defined. I'm attaching a rewrite of the plugin based on 1.5.2, which included support for post formats.",sillybean
Future Releases,11895,Allow more specific image size editing,,Media,,normal,normal,Future Release,feature request,new,has-patch,2010-01-14T15:12:28Z,2013-05-07T11:54:00Z,"Instead of allowing only some combinations of 'thumbnail', 'medium', 'large', 'full' I would like to have the ability to select which of these I would like to crop. So for example, only 'thumbnail' and 'medium'. With the current trunk this is not possible. I created a patch that adds this ability by changing the radio boxes of ""apply changes to"" in the image-edit page to checkboxes for each of the 4 possible sizes.",frankgroeneveld
Future Releases,14687,"Add ""collapsible"" class to menu items that have children",,Menus,3.0.1,normal,normal,Future Release,feature request,new,has-patch,2010-08-24T21:50:25Z,2012-03-07T15:49:30Z,"Items from custom menus in WP 3 have classes like:

{{{
menu-item
menu-item-type-TYPE
menu-item-ID
}}}


and if the current menu item is active, also:

{{{
current-menu-item
}}}

or

{{{
current-menu-ancestor
}}}

It would useful for theme developers if you also added another class on menu items that have children, like ""collapsible"", or ""menu-with-children"" :)

this will allow designers to add things like arrows in menus easier, without having to resort to javascript hacks to check if the list element has children...",digitalnature
Future Releases,14414,Add an action hook to add fields to nav_menu items form,Gecka*,Menus,3.1,normal,normal,Future Release,feature request,accepted,has-patch,2010-07-25T07:25:37Z,2012-03-28T20:45:05Z,"Hello,

In order to add a custom field to a nav menu item form, I have to setup a custom walker whereas a simple action hook could do the trick. Everything else is ok to handle and save the custom field. (http://loxdev.knc.nc/blog/wordpress/auto-populate-nav-menu-with-sub-pages/)

Here is how the asked action hook could be added:
http://github.com/loxK/Wordpress_Gecka_Submenu/blob/master/models/NavMenuHacks.php#L310-312",DreadLox
Future Releases,21674,"Please add ""plugins"" link under ""my sites > network admin"" in toolbar",,Multisite,3.4.1,normal,normal,Awaiting Review,feature request,new,has-patch,2012-08-23T19:13:46Z,2012-08-24T15:43:16Z,This would remove a click and I think a lot of people would enjoy the addition. I know I go to the plugins page more than users or sites combined.,archonic
Future Releases,18079,WP has dropped support of the path field in the site table,,Multisite,3.0,normal,normal,Awaiting Review,feature request,new,has-patch,2011-07-12T05:06:31Z,2012-11-03T14:25:50Z,"I've had inquiries about sites that used to work in WordPress Mu that no longer work in WordPress 3.1.  

The idea is to have a path based network for each state/province and sites for each city under that, all networks hosted under the same domain. 

Like so
{{{
Network 1:
Network domain: example.com Network path: /ohio/
    site domain: example.com path: /ohio/akron
    site domain: example.com path: /ohio/canton
    site domain: example.com path: /ohio/uniontown

Network 2:
Network domain: example.com Network path: /pa/
    site domain: example.com path: /pa/pittsburgh
    site domain: example.com path: /pa/greensburg
    site domain: example.com path: /pa/erie

Network 3:
Network domain: example.com Network path: /indiana/
    site domain: example.com path: /indiana/indianapolis
}}}
There are two things that are preventing this. First, in new_site, instead of including the path from the sites table for the current network, it uses the global $base variable which is always / in this scenario. Using $current_site->path resolves that. 

The second issue is that the .htaccess code is too restrictive. It will the paths on two levels. /network/site/wp-admin/ doesn't work but /site/wp-admin/ does.

Adjusting lines similar to 
{{{
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1
}}}
over to 
{{{
RewriteRule  ^[_0-9a-zA-Z/-]+/(wp-(content|admin|includes).*) $1
}}}
resolves that.

The attached patch addresses both of these requirements.
",brianlayman
Future Releases,15691,Network admin should have its own settings API,,Network Admin,,normal,normal,Future Release,feature request,new,has-patch,2010-12-05T19:31:17Z,2013-01-21T04:47:16Z,"preferably using options.php and the same API as normal admin, this way making a plugin multisite compatible (ie. adding a Network admin screen to it) would be much easier.",joostdevalk
Future Releases,21044,Add action hook to end of resetpassform reset_pass_form,romaimperator,Plugins,3.4,normal,normal,Awaiting Review,feature request,new,has-patch,2012-06-21T20:59:55Z,2012-06-21T20:59:55Z,"'''Description'''

This hook will allow plugin developers to add content to the form users see when they are setting a new password for their account.

'''Why do I want this feature?'''

My plugin found [http://wordpress.org/extend/plugins/trustauth/ Here] replaces the need for passwords. I added a feature to allow users to completely disable password logins for their account to prevent bruteforcing. This hook will allow me to add a feature which will let them assign a new TrustAuth key (just a public key) to their account rather than forcing them to reenable password logins and set a new password.

'''Current Behavior'''

Currently plugins cannot add anything to the form.

'''Implementation Strategy'''

I have created a patch which simply runs the action hooks before outputting the submit tag.

'''Work Estimate'''

However long it takes to review this ticket and apply my patch.

'''Commitments'''

me, romaimperator, implementing the one line of code",romaimperator
Future Releases,12738,Notice Helper,john316media*,Plugins,,lowest,minor,Future Release,feature request,accepted,has-patch,2010-03-28T00:07:58Z,2011-09-09T16:40:52Z,"It would be useful if the next WP release will contain notice helper function in plugins API or somewhere in WP utils.

All plugin developers are often using standard WP admin notices which is simply a line of HTML: 


{{{
<div class=""updated fade""><p>Some message.</p></div>
}}}


I didn't find any function to produce this HTML code so I'm using my own but it's boring to move same function from one plugin to another.

My notice helper code:

{{{
    function html_notice_helper($message, $type = 'updated', $echo = true) {

        $text = '<div class=""' . $type . ' fade""><p>' . $message . '</p></div>';

        if($echo) echo $text;

        return $text;
    }
}}}

",andddd
Future Releases,10141,"URL Functions for: login, logout, lostpasword and the new register",ramiy,Plugins,2.8,normal,normal,Future Release,feature request,reviewing,has-patch,2009-06-13T16:41:28Z,2010-10-10T00:01:18Z,"I want to finish the work i started on #9932.

First i complited the set of ""wp_*_url()"" functions:

'''wp_login_url($redirect)''' - exists

'''wp_logout_url($redirect)''' - exists

'''wp_lostpassword_url($redirect)''' - exists

'''wp_registration_url($redirect)''' - NEW !!!

Then i examind the '''wp_loginout($redirect)''' function and the '''wp_register( $before = '<li>', $after = '</li>' )''' function.

The old '''wp_register( $before = '<li>', $after = '</li>' )''' was depricated in favor of the new '''wp_registration($redirect)''', and moved to <wp-includes/deprecated.php>.

The new '''wp_registration()''' function uses '''wp_registration_url()''', and like all the functions in this set it accepts only the $redirect parameter.

At the end i fixed <wp-includes/default-widgets.php> and <wp-content/themes/default/sidebar.php> to use the new '''wp_registration()''' function.

(Sorry for the bad english)",ramiy
Future Releases,16264,Add function get_pages_by_template(),,Post Types,3.1,normal,normal,Awaiting Review,feature request,new,has-patch,2011-01-16T19:38:15Z,2011-10-22T03:14:18Z,"This patch adds a function `get_pages_by_template()` to `/wp-includes/post.php`. It accepts a page template string and returns an array of post objects keyed by the pages that use the template:

{{{
$pages = get_pages_by_template( 'page-about.php' );
}}}

Using WordPress for CMS I've been finding a need to provide links to specific pages in a more robust way than hardcoding their `post_id` or even referencing their `post_name`/`URL slug` and the way I've identified that works well is to locate a page by it's page template. Here a function that a theme might write that would use the function I'm proposing be added:

{{{
function get_about_page_link() {
  $pages = get_pages_by_template( 'page-about.php' );
  if ( count( $pages ) )
    return get_page_link( get_post( $pages[0] )->ID);
  return false;
}  
}}}

Unfortunately WordPress does not have efficient functionality  in core that would allow a themer to lookup a page or a list of pages by their templates thus requiring the theme developer to resort to SQL which is ideally avoided. 

Thus I'm providing this patch to enable a themer to do this lookup without having to resort to SQL.
The patch also fixes a typo that affects phpdoc in the same file: @parem => @param.
",mikeschinkel
Future Releases,9860,additional query filters for postbypost archive type,,Template,2.9,normal,normal,Future Release,feature request,new,has-patch,2009-05-18T15:26:31Z,2009-11-20T20:23:29Z,"Add getarchives_distinct, getarchives_fields filters for postbypost archive type in function wp_get_archives.

These are a necessary supplement to the existing getarchives_join and getarchives_where filters because joining on categories (a likely usage) causes duplicate post names if a post is in more than one joined category.

For more explanation, see #8022",kevinb
Future Releases,18951,A function to add default images for themes,,Themes,3.2.1,normal,normal,Future Release,feature request,new,has-patch,2011-10-14T17:19:27Z,2011-10-18T17:44:36Z,"Adding default images to themes is not an easy task. They have to play nicely with different image sizes that are built-in and/or added via {{{add_image_size();}}}. If they don't, then they will simply break the layout or won't change with user changes. Sadly we can't simply use most of the core media/image functions as those functions check if the image is an attachment image and - if not - abort.

So I want to introduce {{{wp_default_img();}}}. It works with an input array of attributes and offers two filters (wp_default_img_attr & wp_default_img). So setting up default images is as easy as using a filter (if the theme developer isn't satisfied with the functions default args) and finally just adding

{{{
// functions.php during init:
add_image_size( 'default_img', 80, 80, true );

// Inside some template
$placeholder = get_site_url( null, 'your_path' ).'/some_img.jpg';
echo wp_default_img( array( 'url' => $placeholder, 'size' => 'default_img' ) );
}}}

The function also cares about cropping images if 4th argument set to {{{true}}} when registering the size using {{{add_image_size();}}}.

Related ticket that pops the whole image size data into [http://core.trac.wordpress.org/browser/branches/3.2/wp-includes/media.php#L580 get_intermediate_image_sizes();], can be found here #18947.",F J Kaiser
Future Releases,18118,Append page slug to body_class function,,Themes,,normal,normal,Awaiting Review,feature request,new,has-patch,2011-07-14T21:52:03Z,2011-07-26T20:26:54Z,"I actually do this already on all of my sites, and thought this would be an obvious, amazing thing to add to the body_class function. Pretty much what you'd expect; the page-slug gets appended to the body_class, allowing for page-specific styling.

'''<?php body_class($post->post_name . ' '); ?>'''",andrewsvg
Future Releases,12877,Modular themes: Apply template hierarchy to folders within a theme,,Themes,,normal,normal,Future Release,feature request,new,has-patch,2010-04-06T16:26:15Z,2013-04-11T03:34:53Z,"Applying template heirarchy to folders within a theme will allow themes to be broken into modules, allowing theme developers to substantially reduce repeated code. This is an automated, complete version of the use of get_template_part() in Twenty Ten.

I've written posts on the [http://wp.me/pS0xt-1f justification for modular themes] and [http://wp.me/pS0xt-30 their potential to transform theme organization].

Based on [http://wp.me/pS0xt-3O my tests], these functions should cause no noticeable difference in performance.

The patch has the added benefit of creating an accurate global $wp_template_hierarchy object (and a getter method), so any plugin/theme can access the template hierarchy for $wp_query.

The patch introduces several new functions: get_template_module($folder), get_template_hierarchy(), update_template_hierarchy(), and 2 private functions.

Finally, the patch also add a 'locate_template' filter on $template_names at the beginning of locate_template(), and turns the large conditional in template-loader.php into a function: template_loader().",koopersmith
Future Releases,9568,Allow users to log in using their email address,,Users,2.8,high,major,Future Release,feature request,assigned,has-patch,2009-04-17T17:11:28Z,2013-04-11T03:50:35Z,"I've been looking into a few tickets and adding patches to things that were potentially problematic when implementing a membership plugin (#1626, #4170, #9563, #9564). The general idea being twofold: to avoid duplicate users at all costs -- because it's a bloody mess to merge users in a billing system.

I'm about to embark on a mid-sized patch that renders the WP username field optional. This is a natural next step from #9563 and #9564.

Users could then be allowed to specify an email only, when registering. And they could use their email to login -- in addition to their username if they specified one.",Denis-de-Bernardy
Future Releases,14460,New Permission for no_user_edit so users with edit_users can't edit it,,Users,3.0,normal,major,Future Release,feature request,new,has-patch,2010-07-29T23:28:18Z,2011-12-24T20:23:31Z,"I recently experienced a problem where I have an administrator role with full access and a site administrator role with most access including the ability add, edit, and delete users. However, I don't want the Site Administrator to be able to delete users of the role Administrator.

The change I'm proposing is a new permission or marker which states that if enabled, this user can't be changed by another user who isn't the same role. If possible, I might try to add the patch myself.

This is a fairly important issue which would is interfering with WordPress' use as a content management system, and the only work around I've found is to edit core file.",brandon.wamboldt
Future Releases,13835,XLM-RPC API should return commentmeta values,josephscott,XML-RPC,2.9,low,minor,Future Release,feature request,reopened,has-patch,2010-06-10T23:28:58Z,2011-03-25T06:55:24Z,"This ticket is a follow up on my Twitter and subsequently email conversation with Joseph Scott (josephscott) about the new commentmeta table in WordPress 2.9 and the XML-RPC API. We use the plugin Feature Comments (http://wpprogrammer.com/feature-comments-wordpress-plugin/) for hiding or featuring certain comments. The plugin stores either a value of 'Buried' or 'Featured' in the commentmeta table and uses these values to append a css class to comment_class.

I'd love to retrieve these commentmeta values (buried/features) through the XML-RPC API (which we use) with wp.GetComment or wp.GetComments, so we're able to programmatically hide or feature these comments in our own iPhone app.

Please note this is a specific example, but my request should I no way be seen as a private request. I think the commentmeta in 2.9 was a great addition for stuff like Twitter usernames, mood, gender, and so forth. I hope we're able to retrieve these values programmaticaly through the API as well.",djr
Next Release,20839,"""Visit plugin site"" should open in a new window",helen,Administration,3.4,normal,minor,3.6,enhancement,reopened,close,2012-06-04T20:13:05Z,2013-05-05T05:56:44Z,It's weird to take users off the site when they click on this link in the plugins section. Just a little thing to make the experience that much better :),empireoflight
Next Release,22965,"Change Recent Comments Number Input to type=""number""",helen,Administration,3.5,normal,normal,3.6,enhancement,assigned,has-patch,2012-12-16T19:52:30Z,2013-03-01T16:31:20Z,"In order to be consistent with the rest of the dashboard, the ""Number of comments to show:"" input field in the Recent Comments widget should be changed to type=""number"" in order to add the up/down arrows. ",mordauk
Next Release,17028,"Move the ""last edited at"" text and saved/updated/published notices in post/page editor",,Administration,3.1,low,normal,3.6,enhancement,new,has-patch,2011-04-02T21:56:59Z,2013-02-20T10:18:21Z,"1. The timestamp of the last save is currently displayed at the bottom right of the editor box. It would make more sense for this information to be tied to the Publish box instead. 

2. The yellow alert boxes that appear at the top of the page are weird. a) They should appear closer to the button that caused the action (general usability/accessibility best practice), so probably by the Publish box. b) Once you edit anything on the screen, the ""post updated"" (or saved, etc) text should go away, because it is no longer current. 

Am thinking we could combine these two things into one flexible status message that's located in or adjacent to the Publish box. ",jane
Next Release,22476,Standardize single and double quotes in CSS url()s,,Administration,,low,trivial,3.6,enhancement,new,has-patch,2012-11-16T17:26:05Z,2013-04-10T19:48:14Z,"As per http://www.w3.org/TR/CSS2/syndata.html#value-def-uri (and other locations), single quotes {{{'}}} and double quotes {{{""}}} in {{{url()}}} values in CSS like
{{{
body { background: url(""../img/image,gif"");
}}}
are optional. Most of core's CSS is already written without such quotes. The patch 22476-remove-quotes-in-url.diff removes the remaining ones, for consistency and to save us some bytes again, even in the minified CSS.",TobiasBg
Next Release,23890,Add slideUP/slideDown transitions to the menus accordion,,Appearance,trunk,normal,normal,3.6,enhancement,new,has-patch,2013-03-29T07:54:01Z,2013-05-07T22:45:57Z,"We talked about this early in the cycle in #23119 and other places, but it would be nice to not make switching between accordion sections so jarring. 

A slideUP/slideDown transition similar to how we're handling post formats in #19570 would be a nice UX addition.",DrewAPicture
Next Release,24269,Twenty Thirteen: Remove twentythirteen_search_form_format(),,Bundled Theme,trunk,normal,normal,3.6,enhancement,new,has-patch,2013-05-06T11:24:32Z,2013-05-16T17:12:49Z,"Per [comment:ticket:23850:19], we can replace `twentythirteen_search_form_format()` with an `add_theme_support()` call once the latest patch is committed.",SergeyBiryukov
Next Release,20496,Previews should redirect to the permalink if the post has been published,,Canonical,,normal,normal,3.6,enhancement,new,has-patch,2012-04-20T21:55:08Z,2013-01-31T19:50:52Z,"If a post is saved as a draft and you visit the preview URL, even after the post is published, you will stay on the preview view (with preview=true in the URL).  This is confusing since you're not actually previewing anything, you're viewing a public post.",evansolomon
Next Release,14856,Add an $args parameter to comment_text filter,,Comments,,normal,normal,3.6,enhancement,new,has-patch,2010-09-12T12:20:06Z,2013-05-04T23:25:53Z,"When using the {{{comment_text}}} filter, there are times when the context provided by {{{$args}}} would be extremely useful. For example to know the depth of the commen. I propose adding an additional parameter for {{{comment_text}}} to add the {{{$args}}}.

I've incorporated the proposed {{{$comment_ID}}} parameter from #14261, which looks to add a {{{$comment_id}}} parameter to the same filter, in the hope that this is helpful... let me know if not and I'll refactor.

I've included a small plugin to demo the use and prove the new parameters are working, and the diff for a small tweak to Twenty Ten v1.1 which is needed to use this plugin with that theme.",simonwheatley
Next Release,23634,New hook for adding content after each comment,,Comments,,normal,normal,3.6,enhancement,new,has-patch,2013-02-26T19:29:57Z,2013-05-11T17:53:38Z,"Similar to #18561 (which is for a new ""after post"" hook) add a hook that fires after each comment output with {{{wp_list_comments}}}.",lancewillett
Next Release,14601,wp_new_comment method doesn't allow passed in values for IP and user-agent,,Comments,3.0.1,normal,normal,3.6,enhancement,new,has-patch,2010-08-12T14:20:21Z,2013-05-04T12:03:02Z,"In a scenario where you have a client that receives comments from the internet and pre-processes those comments before feeding them into wordpress through xmlrpc the ip and user-agent of the commenting internet user gets lost because there is no way of passing those values into the wp_new_comment function. 

`$_SERVER['REMOTE_ADDR']` and `$_SERVER['HTTP_USER_AGENT']` are hard-coded, which in the above mentioned scenario will always have the IP and user-agent from the client that feeds the comments into wp through xmlrpc.

The attached patch will used passed in values and only fall back to `$_SERVER['REMOTE_ADDR']` and `$_SERVER['HTTP_USER_AGENT']` if not passed in.",mrutz
Next Release,23132,wp_timezone_override_offset() has noticeable performance hit,,Date/Time,3.5,normal,minor,3.6,enhancement,new,has-patch,2013-01-06T22:05:19Z,2013-03-03T05:01:15Z,"While wandering through XHProf generated callgraph of my test stack I came upon `wp_timezone_override_offset()` eating 3.4% of runtime (73 calls). I do not expect noticeable resource consumption from such minor configuration-related function.

The obvious performance aspect is that it creates and discards two objects (`DateTime` and `DateTimeZone` - latter seemingly more heavy) per each call, while calculating same result each run.

The less obvious aspect is that the only use of this function is to pre-filter `gmt_offset` option, and it essentially hijacks option cache for it.

Possible solutions:

 - calculate result once per run and cache in static variable inside function (straightforward, but retains multiple function call)
 - filter `gmt_offset` on set rather than get (more involved)
 - scrap the extra function and/or option altogether? is there still practical need for having two options for timezone information?",Rarst
Next Release,16276,Default value for search field - (#11420 Easy within-site linking from new content),,Editor,3.1,normal,minor,3.6,enhancement,new,has-patch,2011-01-17T20:14:42Z,2013-05-05T00:33:59Z,"The within-site linking available in the current release candidate looks like a great idea, but I'm wondering if it might make sense to pre-popular the search box area with the selected text that is highlighted.

Currently the search box (which is actually more of a filter box) is empty by default, but it seems to me that most of the time if you are linking to internal content, you will be linking to the material you are highlighting which will have a similar title.",jamie.richard
Next Release,18042,Need a way to override wp_link_query(),,Editor,3.2,normal,normal,3.6,enhancement,new,has-patch,2011-07-08T22:24:44Z,2013-05-05T04:18:55Z,"In previous versions of !WordPress, we were able to write a plugin which called add_filter on `tiny_mce_before_init` and then we were able to specify `external_link_list_url` which we gave it a list of all of the URLs on our site (we primarily linked to non-WordPress URLs on our site from this tool). Then when an author created a Link in the post tool the little popup would include a dropdown of all of the URLs/page titles that we specified.

In !WordPress 3.2 you have the new fancy ""link to existing content"" feature in the popup.

The problem is that there is NO hook, filter, or pluggable function whatsoever to allow you to override the functionality of this.

I needed to make the search results box return a list of pages (urls and titles) that I specified from a different database. In order order to do that I had to re-create the entire `wp_link_query()` function from wp-admin/includes/internal-linking.php to make it return search results from my own database. I put that function into a Plugin (to keep it out of Core) but then I had to hack core to rename `wp_link_query()` to `wp_link_query_ORIGINAL()` to get it to use my function and not the existing one.

Either `wp_link_query()` needs to be a pluggable function or there need to be hooks that let you completely replace how it works.",philfreo
Next Release,24353,Accept DailyMotion Short URLs in oEmbeds,,Embeds,,normal,normal,3.6,enhancement,new,has-patch,2013-05-16T15:14:34Z,2013-05-16T15:38:27Z,Accept DailyMotion dai.ly/<id> shorter urls for oEmbed.,georgestephanis
Next Release,18178,"Add ""none"" option to $attr['link'] for [gallery] shortcode",,Gallery,3.2.1,normal,normal,3.6,enhancement,new,has-patch,2011-07-19T20:02:27Z,2013-04-08T08:13:15Z,"Currently, the `[gallery]` shortcode only supports output of linked images. By default, each gallery image links to the attachment page, or directly to the file, if `link=""file""` is passed to the shortcode. Both cases use `wp_get_attachment_image_link()`.

Attached patch adds support for `link=""none""`, enabling the gallery images to be output as flat image files, rather than linked, via `wp_get_attachment_image()`.",chipbennett
Next Release,24225,Improve regular expressions when matching attributes,,General,trunk,normal,normal,3.6,enhancement,new,has-patch,2013-04-29T15:37:56Z,2013-05-13T17:51:54Z,"When working with HTML attributes in various functions we use something like `[\'""](.+?)[\'""]` to match the attribute value. Although not used much in attribute values, such an approach breaks when a single or double quote is intentionally part of the value:

* `attr=""val'ue""`
* `attr='val""ue'`

Some of these are new 3.6 functions, mostly around media.",kovshenin
Next Release,23472,Retrieve the first x bytes of a remote file,,HTTP,,normal,normal,3.6,enhancement,new,has-patch,2013-02-14T01:31:02Z,2013-05-16T12:09:48Z,"A commonly useful functionality in HTTP clients is to only request the first x bytes of a document, this can be useful for example, when you only need to fetch the first few KB of a image so as to determine it's dimensions from the initial metadata in the file.

At present, we have no way to offer this through WP_HTTP, The attached patch is a first-scratch effort at adding it. No proper unit tests so far, just casual testing which confirms it working. 

Patch
* Supports all 3 transports
* Handles streaming-to-file as well
* Doesn't include Headers in the byte count
* Works with Redirects

I'll add some Unit tests for this soon hopefully.",dd32
Next Release,22952,WP_HTTP can cause PHP Warnings during attempted decompression,,HTTP,,normal,normal,3.6,enhancement,new,has-patch,2012-12-15T05:13:55Z,2013-01-17T17:24:19Z,"{{{
WARNING: wp-includes/class-http.php:1656 - gzinflate(): data error
}}}

WP_Http_Encoding can cause PHP Warnings when it attempts to decompress data using gzinflate() which has been encoded in any way.
We currently work around this this in a few ways, but we still take a ""try it and see"" method instead of detecting the compressed contents signature and handling it appropriately.

Attached is a first-run patch at detecting Huffman coding, which is what we currently use `@gzinflate( substr( $gzData, 2 ) )` for (and hey, who doesn't like making magic numbers clearer?)

I have been running a similar patch on !WordPress.com and gathering data on how the myriad of different Web Servers out there respond, and so far this causes it to correctly identify the vast majority of responses.

It appears that we may also be attempting to decompress compressed files retrieved through WP_HTTP on some poorly configured servers, but this is something I haven't yet traced properly.",dd32
Next Release,23380,3gp mime support,,Media,3.5,normal,minor,3.6,enhancement,new,has-patch,2013-02-04T13:15:09Z,2013-02-05T11:58:09Z,Some devices using 3gp format for wp mobile app.,m_uysl
Next Release,23148,Add hook in wp_ajax_save_attachment for additional attachment fields,,Media,3.5,normal,normal,3.6,enhancement,new,has-patch,2013-01-08T19:25:07Z,2013-02-15T21:56:58Z,"As of now, `wp_ajax_save_attachment` only looks for the attachment title, caption, description and alt text fields. Without a hook, there is no way to extend the new media system properly and take advantage of the save functionality. 

There should be a hook provided at the end of this function (before the JSON response is sent back) that allows devs to update any additional attachment fields that have been rendered by extending the `media.view.Attachment.Details` subview.",griffinjt
Next Release,21569,Filter gallery styles with access to $attr,,Media,3.5,normal,normal,3.6,enhancement,new,has-patch,2012-08-13T21:18:25Z,2013-02-15T23:46:07Z,"Currently you can replace the entire output, but that's all or nothing — if you decide to do that, you also need to parse the attributes array, decide on good defaults, etc. You can also filter the styles, but you don't have access to the attributes array.

Use case: In my theme, I'd like to use the number of columns as more of a suggestion. I could set min-width to what `$itemwidth` is currently and it would be more responsive. If the page shrinks too small, it would only load 1 image per line instead of being locked into the right number of columns.",betzster
Next Release,18584,Nav menu UI needs more hooks,,Menus,3.3,low,minor,3.6,enhancement,new,has-patch,2011-09-04T02:38:16Z,2013-04-16T15:29:35Z,"I'm trying to add some additional fields to the nav menu blocks but sadly there are no hooks for doing so. Zero.

We should add some and get in a better habit of just doing so when the code is written.

My specific suggestions are before the Remove/Cancel links (i.e. for adding standard stuff), one above the ""original"" field, and one after those action links (to add more actions).",Viper007Bond
Next Release,23929,Ability to remove post format UI,,Post Formats,trunk,normal,normal,3.6,enhancement,new,has-patch,2013-04-03T18:21:41Z,2013-05-12T16:03:14Z,"As discussed in IRC there should be a filter to completely remove the post format UI from the post editing screen.

Patch coming up.",johnbillion
Next Release,24162,Add filter hook to get_post_format_meta(),markjaquith,Post Formats,trunk,normal,normal,3.6,enhancement,reopened,has-patch,2013-04-23T04:49:02Z,2013-05-10T21:56:36Z,"As per [http://core.trac.wordpress.org/ticket/19570#comment:148 a previous request from Alex King], it would be useful if a filter hook could be added to get_post_format_meta(), particularly for plugin and theme builders looking to reformat the output of post formats for uses like HiDPI image plugins, lazy loading techniques, picture element polyfills, etc. ",stuntbox
Next Release,24350,Post Formats UI should have an 'after_post_format_fields' action,,Post Formats,trunk,normal,normal,3.6,enhancement,new,has-patch,2013-05-15T22:00:07Z,2013-05-15T22:00:07Z,"I already know of several people who would like to extend the new Post Formats UI to include additional fields and info on a per-format basis. It would be nice to have an action hook in place for this right out of the gate in 3.6.

The patch adds a `'after_post_format_fields'` action.",DrewAPicture
Next Release,23401,Pass $metadata to intermediate_image_sizes_advanced filter,,Post Thumbnails,3.5,normal,normal,3.6,enhancement,new,has-patch,2013-02-06T00:16:17Z,2013-02-06T02:37:38Z,"I'm requesting that the following patch be added, which simply passes the $metadata for the image to be used for the new post thumbnail sizes to any filters hooking the '''intermediate_image_sizes_advanced''' filter in the ''wp_generate_attachment_metadata'' function.

The purpose of this is for altering the size of a custom thumbnail size based on the given image's dimensions.  For example, I have a need for an post image size that's a '''minimum''' dimension size of 200px.  The default behavior will allow me to specify a '''maximum''' dimension size, but not a minimum.
So by hooking this filter, I can alter the '''$sizes''' array and correct the size of my custom post thumbnail size based on the current image's dimensions.",amereservant
Next Release,16834,UI problem in Permalinks SubPanel (on RTL sites),ramiy,RTL,3.1,normal,normal,3.6,enhancement,reopened,has-patch,2011-03-11T15:15:12Z,2013-05-18T07:11:57Z,"hi,
i want to report a UI problem in RTL sites, on the Settings->Permalinks SubPanel.

See the  Attached screenshots.",ramiy
Next Release,13239,Filter locate_template template_names variable,,Themes,3.0,normal,normal,3.6,enhancement,reopened,has-patch,2010-05-03T21:43:05Z,2013-05-04T11:09:25Z,"I recently encountered a situation where it would be very helpful to supply alternate template file locations; however, this cannot be accomplished as the locate_template function is being used and that function's arguments are not filterable. So, I created a patch that adds the filter.

This patch adds two filters: locate_template and locate_template-TEMPLATENAME. This allows for both general and specific filtering.

The following example shows how this could be used to modify the location of a BuddyPress template file.

{{{
function filter_member_header_template( $template ) { 
    return dirname( __FILE__ ) . '/buddypress/members/single/member-header.php';
}
add_filter( 'locate_template-members/single/member-header.php', 'filter_member_header_template' );
}}}

While the value of this example is debatable as BuddyPress could be updated to support alternate template locations, the value of the patch itself is high. This opens up a new ability for plugins to modify template file locations, giving plugins a hook into the content rendering process without requiring themes to be modified.",chrisbliss18
Next Release,23362,Fields with HTML5 form validation constraints break post save UI,,Validation,3.5,normal,minor,3.6,enhancement,new,has-patch,2013-02-01T22:12:41Z,2013-02-01T22:26:14Z,"Consider a metabox added to the edit post screen which includes fields that utilize HTML5 form validation constraints (by supplying a specific `type` attribute or the `required` or `pattern` attributes). Normally upon hitting the Publish or Save Draft button, the buttons go disabled and a spinner appears until the page reloads. However, if any of the metabox input fields violate the HTML5 form validation constraints, then upon hitting a submit button the browser will display the native validation error messages, but the Save Draft and Publish buttons will still go into their disable state and the spinner will appear, even though the `submit` event never fired. This unfortunately discourages the use of HTML5 form validation and forces plugin authors to include a `formnovalidate` attribute on such input fields.  Attached is a patch that allows input fields to use HTML5 form validation constraints and which prevents the UI from going into an an indeterminate/broken state. See attached screenshot for a depiction of the issue.",westonruter
Next Release,24356,Admin Nav Menu Walker - Strict Standards compatibility,,Warnings/Notices,3.5.1,normal,minor,3.6,enhancement,new,has-patch,2013-05-17T16:34:31Z,2013-05-18T20:28:23Z,"Admin -> Appearance -> Menus produces some warning for me for some methods overriding abstract definitions do not follow strict standards.

Patch is here:
http://pastebin.com/6a2ugms7",dvarga
Future Releases,18801,Accessibility Enhancements to Settings API,taupecat*,Accessibility,3.2.1,normal,normal,Awaiting Review,enhancement,accepted,has-patch,2011-09-28T14:59:44Z,2013-01-03T19:25:35Z,"I've only started working with the Settings API, but right off the bat I noticed two fairly major, but should be not too difficult to fix, accessibility issues.

1) The label/input field pairs are missing the HTML <label> tags that link the two.

Example: Field One <input id=""field_one"" name=""field_one"" type=""text"">
Should be rendered: <label for=""field_one"">Field One</label> <input id=""field_one"" name=""field_one"" type=""text"">

2) The settings pages themselves are laid out using a table.  Tables should be reserved for tabular data, and not for page layout.  CSS should be used for layout instead.

Thanks for your attention.",taupecat
Future Releases,18900,Add a few more hide-if-no-js classes,,Accessibility,3.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-10-10T23:14:55Z,2013-05-14T21:21:36Z,"There are a few elements to which we could add the `hide-if-no-js` class, as their functionality or setting relies on JavaScript being available.",johnbillion
Future Releases,24148,Add aria-labelledby attributes to comment form,,Accessibility,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-21T03:26:05Z,2013-04-22T14:03:52Z,"The aria-labelledby attribute provides a means for screen readers to get additional context for inputs when there is additional labeling information provided. In the default comment form, information such as the fact that email will not be published or that HTML tags and attributes can be used can only be viewed through a separate pass through the form not in forms mode. Adding these attributes means that a screen reader will read both blocks of text as the label for the field. ",joedolson
Future Releases,16433,Extend function to optionally include commenter name in comment_reply_link,merty*,Accessibility,3.0.4,low,normal,Future Release,enhancement,accepted,has-patch,2011-02-01T16:27:45Z,2011-09-12T12:05:09Z,"Screen readers recognize links and make them searchable. Unique names facilitate that search. Links need to have unique names that are descriptive and make sense when read out of context. WordPress allows users to set the text they want to display on the comment_reply_link but then this text is repeated for every comment on a post. 

WCAG Checkpoint 13.1 says: Clearly identify the target of each link. [Priority 2]

For improved accessibility it is far better to have the comment_reply_link include the commenter name. ""Reply to Tom Thumb"" and ideally, include a title on the link that includes both the commenter name and comment number. Users should have the option to filter for their custom text and to include (or not include) the commenter name. 

At the moment, anyone who wants to present an accessible front-end cannot use threaded comments unless they are prepared to generate masses of the same, generic, unhelpful link. ",Elpie
Future Releases,16865,'post' definition should use menu_position,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-03-16T15:03:00Z,2011-03-17T10:32:11Z,"Since WP 3.1, we don't need to hardcode the Posts $menu array, since register_post_type() is flexible enough to handle it.",scribu
Future Releases,21938,"Add ""no-store"" to Cache-Control header to prevent history caching of admin resources",,Administration,3.4,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-09-20T10:54:27Z,2012-09-28T07:56:36Z,"The current implementation of [http://core.trac.wordpress.org/browser/trunk/wp-includes/functions.php#L891 wp_get_nocache_headers] does not take into account history caching, which results in a browser serving a cached copy of pages from history (by pressing the Back button) even if the user has long logged out.

[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2 RFC 2616 14.9.2 no-store] describes this cache directive.

To repoduce: login to dashboard, logout, press the back button.
Expected: the login screen.
Reality: a copy of the previous page.

By adding the ""no-store"" directive to all non-cachable resources the behavior was mitigated successfully in Chrome 21, Firefox 15. Fails on Opera 12 (they chose to disregard ""no-store"" when applied to history, RFC allows this).",soulseekah
Future Releases,11164,Add Theme Sort Filter,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-11-17T16:03:18Z,2009-12-01T18:16:20Z,"I've run across the need for this in a few plugins. You can't adjust the order of themes in the theme browser as all filters are applied before the sort.

Aaron (for Incsub)",uglyrobot
Future Releases,15355,Add ability to clear search results,garyc40,Administration,,normal,normal,Future Release,enhancement,assigned,has-patch,2010-11-09T08:11:56Z,2012-04-13T11:32:28Z,"Let's put a (X) next to ""Search results for `string`"" that immediately clears the search results. Otherwise there is no way to do it, without clearing the box manually and hitting enter.

We would use the same X we use for bulk edit.",nacin
Future Releases,18357,Add action to do stuff before the admin menu is rendered,,Administration,3.2.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-08-08T22:08:23Z,2011-08-08T23:34:15Z,"Here is a trivial patch to allow users to inject some stuff in the Admin pages HTML body before the menu is rendered. The new action is called 'before_admin_menu_header', feel free to use a better name.",llucax
Future Releases,21636,Add category dropdown to QuickPress in Dashboard,,Administration,3.4.1,lowest,minor,Awaiting Review,enhancement,new,has-patch,2012-08-19T20:14:09Z,2012-08-31T18:28:22Z,"This would make QuickPress more useful to people who use categories instead of tags, have been meaning to do this for years.


",jane
Future Releases,11200,Add count for approved comments filter,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-11-20T15:17:04Z,2011-06-29T17:28:19Z,"On wp-admin/edit-comments.php, Approved is the only filter that doesn't have a count after it.",scribu
Future Releases,15261,Add do_action to form tag in edit-tag-form.php,,Administration,3.1,normal,normal,Future Release,enhancement,reopened,has-patch,2010-10-30T16:07:46Z,2011-01-19T23:50:20Z,"How about adding additional actions to the form tags in admin taxonomy pages like ''edit-tag-form.php''?

An example can be found in ''user-edit.php'' line 183:


{{{
<form id=""your-profile"" ... method=""post""<?php do_action('user_edit_form_tag'); ?>>
}}}
",linguasite
Future Releases,13605,Add filter for admin-ajax get-tagcloud's arguments for wp_generate_tag_cloud,,Administration,3.0,low,minor,Future Release,enhancement,new,has-patch,2010-05-28T20:30:43Z,2010-10-27T10:13:29Z,Patch attached.,mitchoyoshitaka
Future Releases,13227,Add filters above forms in wp-login.php,,Administration,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2010-05-03T13:25:58Z,2013-01-22T02:00:35Z,"Sometimes I need more descriptive text to have above forms on wp-login.php (login, register, lost password).

This patch add filters above those forms.

Example usage:

{{{
function above_login_form_filter() {
	return '<p class=""message"">Tip: If you forgot your password, go to <a href=""wp-login.php?action=lostpassword"">Lost Password</a> page</p>';
}
add_filter('above_login_form','above_login_form_filter');
}}}


",dimadin
Future Releases,16512,Add hook after set_current_screen(),,Administration,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-10T02:24:56Z,2011-02-10T03:00:55Z,"There needs to be a hook after {{{set_current_screen()}}} as it does a lot of work setting up the {{{$current_screen}}} global.. I'd hate to have to repeat it in {{{admin_init}}} as that's the last generic hook before {{{load-$pagenow}}}.

Patch adds new hook {{{admin_loaded}}} after {{{set_current_screen()}}}",ptahdunbar
Future Releases,16204,Add hooks to enable access to pages in the admin when the menu layout has been changed by plugin,westi,Administration,3.1,normal,normal,Awaiting Review,enhancement,reviewing,has-patch,2011-01-12T16:31:33Z,2011-01-15T08:54:45Z,"This patch and ticket is a follow on to tickets #16048 and #16050 and indirectly related to this discussion on hackers: http://lists.automattic.com/pipermail/wp-hackers/2011-January/037129.html

This patch simply adds the following hooks, all within /wp-admin/includes/plugin.php.  

 - menu_page_url
 - admin_page_parent
 - admin_page_title 
 - plugin_page_hookname 
 - user_can_access_admin_page

The patch does not attempt to unravel the many early exits of the various functions instead it simply redundantly adds the hooks at each exit point. As such it's backward compatibility can be reviewed simply by viewing the code.

The use-case for this patch is when the menus are not exactly in the format expected by WordPress (but instead desired by the client) it can sometimes take hours of trial and error to get the permissions to allow users access to the menus they should be allowed access to. 

For example, if the first submenu page for a menu page is removed from the menu, even when it makes logical sense to the user WordPress currently does not allow that menu option to be viewed. These hooks would give plugin developers the ability to modify the menus and still enable users access to the pages they need access to.",mikeschinkel
Future Releases,20007,Add option for new user registration notifications,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-10T06:15:35Z,2012-11-22T03:36:08Z,"This patch adds an single checkbox option to WordPress's Settings > Discussion page, allowing users to quickly toggle new user registration notifications/emails on or off.


While the notification function is currently pluggable, allowing non-technical users to easily toggle this feature themselves is both intuitively simple, and should prove generally advantageous to the community.",Veraxus
Future Releases,13005,Add plugin hook for ajax-tag-search,westi*,Administration,,normal,normal,Future Release,enhancement,accepted,has-patch,2010-04-14T20:21:50Z,2013-05-10T12:44:02Z,I would like to have a new plugin action hook added in the ajax-tag-search section of wp-admin/admin-ajax.php,jimmcq
Future Releases,19247,Add post type and taxonomy to admin body class,,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-15T08:19:35Z,2013-04-14T10:03:13Z,"I often have a need for targetted CSS selectors based on the current screen's post type (eg. to hide unwanted UI elements), so I usually end up adding `post-type-{$post_type}` with the `admin_body_class` filter. It'd be nice if this was in core.",johnbillion
Future Releases,20928,Add regular-text style to textareas,,Administration,,low,normal,Awaiting Review,enhancement,new,has-patch,2012-06-12T20:13:43Z,2012-06-12T20:14:38Z,The `regular-text` class style is only applied to input elements. It would be nice to get this on textareas too so my textareas are the same width as my single line text inputs.,johnbillion
Future Releases,11469,Additional Admin UI hooks / filters,,Administration,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-17T05:54:04Z,2010-12-13T12:43:33Z,"Some might classify this as overkill, others as making Wordpress as completely extendable as people want it.

I'd like to propose the addition of numerou hooks to the Wordpress core Admin UI which would allow the addition of UI elements outside of the current constraints, such as meta boxes. 

If that doesn't make sense, I have an example to illustrate:

Given the ""Subtitle"" example from http://digwp.com/2009/10/ideas-for-plugins/, there would be a new hook named ""edit_post_form_after_title"" (or something along those lines) which would be placed directly after the post title is displayed on the screen and allow a plugin developer to insert a text field for a subtitle directly below the title field. See the attached patch.",johnl1479
Future Releases,10652,Additional arguments required for page_template_dropdown,,Administration,2.8.4,normal,trivial,Future Release,enhancement,new,has-patch,2009-08-19T17:29:05Z,2010-08-13T12:23:56Z,"As a plugin/theme developer, it would be really useful to be able to call the page_template_dropdown function with a parameter string similar to [http://codex.wordpress.org/Template_Tags/wp_dropdown_pages wp_dropdown_pages].

For example, the current '$default' argument should accept a string of arguments where:

- 'selected' is the selected template (replaces the current $default)[[BR]]
- 'echo' can be set to 1 to return instead of output[[BR]]
- 'name' will set a name/id for the menu[[BR]]

This would make it easier to create plugin/theme options where you could select which templates you want to use for different content.

At the moment it is possible to do this by replicating and adapting this function but I think it would make more sense to use the same multi-parameter argument as [http://codex.wordpress.org/Template_Tags/wp_dropdown_pages wp_dropdown_pages] and [http://codex.wordpress.org/Template_Tags/wp_dropdown_categories wp_dropdown_categories] and include it in core?",husobj
Future Releases,19958,"Allow custom post types as ""home"" and get_posts() to return results for more than one post type",,Administration,3.3.1,normal,major,Awaiting Review,enhancement,new,has-patch,2012-02-04T00:59:13Z,2013-03-08T17:32:39Z,"In
{{{
Wordpress admin > Settings > Reading
}}}
there is an option to define what the home page or the front page should be
{{{
Front page displays
}}}
Radio button
{{{
A static page (select below)
}}}
is followed by a dropdown containing a list of all pages.

I would request that custom page types be allowed in this dropdown. This way, I could make my bbPress forums or my All-in-one event calendar, etc my homepage.
",sooskriszta
Future Releases,18504,"Allow filtering of ""Add New [Post Type]"" URL on edit.php",,Administration,3.2.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-08-24T00:54:56Z,2011-08-24T12:01:54Z,"I've recently attempted to use add_filter('admin_url','filter_function'), only to discover that there are many URLs in the admin area that are not passed through the admin_url() function. While there may be a good reason for that to happen, I figured it wouldn't hurt to check the possibility of changing one of them.

The one URL I haven't been able to find a workaround to is the ""Add New [Post Type]"" button on the edit.php screen, on top the post table, which also appears when editing an existing post. From what I gather, it is generated in the following file/line [http://core.trac.wordpress.org/browser/trunk/wp-admin/edit.php#L189] for the first case, and on this one [http://core.trac.wordpress.org/browser/trunk/wp-admin/edit-form-advanced.php#L198] for the second case.

Fixing this, assuming it's possible without compromising a functionality I'm not aware of, would be as simple as replacing this:

{{{
<a href=""<?php echo $post_new_file ?>"" ...
}}}

And this:

{{{
<a href=""<?php echo esc_url( $post_new_file ) ?>"" ...
}}}

With this:

{{{
<a href=""<?php echo admin_url($post_new_file); ?>"" ...
}}}

And this:

{{{
<a href=""<?php echo esc_url( admin_url($post_new_file) ) ?>"" ...
}}}",tbuteler
Future Releases,17704,Automatically enqueue necessary scripts when custom meta boxes are used,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-06T05:53:43Z,2011-11-08T21:30:11Z,"Right now if you add_meta_box() to a custom page, like using add_submenu_page() and then calling do_meta_boxes(), the screen options and post box JS don't work automagically. They should.",mitchoyoshitaka
Future Releases,17360,Change text from Options to Settings,,Administration,3.2,normal,minor,Future Release,enhancement,new,has-patch,2011-05-09T23:31:56Z,2011-12-06T04:47:31Z,"In various admin screens, change test from options to settings.

",michaelh
Future Releases,18860,Chromeless metaboxes,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-05T14:28:14Z,2011-10-06T13:39:07Z,"On the post editing screen, the title and editor portions are just conditionally echoed based on post_type_supports().

Because of this, you can't add anything between them or above them, without using JavaScript.

The proposal:

 - wrap them in callbacks and inject them through add_meta_box()
 - add a $show_handle parameter to add_meta_box()

{{{$show_handle == false}}} would mean that the handle around the box would be invisible. This would mean that you wouldn't be able to drag the title and editor boxes around, which is ok, but you would be able to re-order them in PHP.",scribu
Future Releases,17852,Collapsed menu fly-out headers should be clickable,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-20T03:13:00Z,2012-03-07T20:59:48Z,"When you hover over a collapsed admin menu icon, the extension of the icon is not clickable, only the submenu screens are.

This is the same behavior in 2.7 to 3.1, but I think it should be considered.",nacin
Future Releases,15782,Consolidate header Javascript,,Administration,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-12T05:45:53Z,2011-03-24T08:48:43Z,"As a followon to #15781

Currently there is a block of Javascript required on all admin pages, this is stored directly within admin-header.php, and iframe_header(). Unfortunately, when someone changes/adds code to one, the other is not always updated.

This inline Javascript should be moved to a function and printed on a header action in order to reduce code duplication and prevent future issues.",dd32
Future Releases,18569,Custom header images should deletable from the Custom Header page,danielbachhuber*,Administration,3.3,normal,normal,Awaiting Review,enhancement,accepted,has-patch,2011-09-01T18:30:22Z,2011-12-06T05:11:52Z,"Currently, if a theme supports custom header images and a user uploads one of their own images, they need to go to the Media library in order to delete the image. This is not intuitive, there's no text in the admin explaining this step, and it's a problem if they want to rotate randomly through their custom header images.

It would be nice of the user could delete images they've uploaded from the Custom Header page directly.",danielbachhuber
Future Releases,18641,Date and post status are the wrong way around in post lists,,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-11T20:31:41Z,2011-09-11T20:35:13Z,"On a post listing screen, a draft post that has been modified within the last 24 hours will show the following in the 'Date' column:

{{{
X hours ago
Last Modified
}}}

This doesn't make a lot of sense. Better would be:

{{{
Last Modified
X hours ago
}}}

Ideally the table cell should be treated as a whole to aid l10n and to improve the English presentation.",johnbillion
Future Releases,17703,Decrement update count bubbles when you update things,koopersmith,Administration,,normal,trivial,Awaiting Review,enhancement,reviewing,has-patch,2011-06-06T01:30:31Z,2011-08-16T01:02:13Z,"This can be done via some JavaScript, including for the bulk updater case, and it looks pretty cool. :) Video attached, as well as a first-pass patch.",mitchoyoshitaka
Future Releases,23108,Deprecate add_object_page() and add_utility_page(),,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2013-01-03T02:47:52Z,2013-05-16T11:55:27Z,"`add_object_page()` and `add_utility_page()` are not used in core and are just wrappers which pass `$_wp_last_object_menu++` and `$_wp_last_utility_menu++`, respectively, to `add_menu_page()`.

This can lead to a conflict with other menu items added by plugins, see #23095.",SergeyBiryukov
Future Releases,18030,Die with HTTP status 403 forbidden when capability check fails in wp-admin,,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-07-07T22:42:29Z,2011-07-07T22:42:29Z,"The default HTTP status code of [http://core.trac.wordpress.org/browser/tags/3.2/wp-includes/functions.php#L2740 wp_die()] is a [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1 500 Internal Service Error] communicating !WordPress encountered an ""unexpected condition which prevented it from fulfilling the request."" Multiple pages trigger wp_die() in wp-admin when a minimum user capability is not met (e.g. Cheatin', uh?). In these cases we know why the request failed and could better communicate the failure in the HTTP status code. We want to communicate the same request should not be repeated without a modification to permissions. We also would like to shift the error class from a server error (5xx) to a client error (4xx).

HTTP status [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4 403 Forbidden] communicates the authorization failure in HTTP status form. The server can be reached, we understood your request, but we declined access to the page.

A !WordPress install could catch this unique status code in its wp_die_handler and suggest further the viewer contact the IT department, admin, etc. for additional permissions.

Patch attached for wp-admin/edit.php. If the general idea behind the change is acceptable I can broaden the patch to other occurrences of wp_die() for failed capability checks in wp-admin.",niallkennedy
Future Releases,8420,Disable error redirects when in DOING_AJAX,kapeels*,Administration,2.7,low,minor,Future Release,enhancement,accepted,has-patch,2008-11-29T00:28:10Z,2010-11-28T11:30:25Z,"If a DB/install error occurs in admin during ajax requests (like autosave), the response shouldn't return the whole redirected page, see $ATT (admin-ajax-install-trigger.png). If something goes awry and we're DOING_AJAX, an error message that could fit inline would be better.",janbrasna
Future Releases,17470,Display warning when editing the page_for_posts page,,Administration,3.2,normal,normal,Future Release,enhancement,new,has-patch,2011-05-17T06:27:13Z,2012-11-19T16:33:34Z,"I recently ran into a situation where someone was very confused by the page_for_posts setting and why their page edits were not being respected. It occurred to me that this feature is not terribly well described in the UI for users that don't already understand what it does.

The attached patch will simply add a warning as an admin_notice when you are editing the page that is specified as the page_for_posts page.

I used a class of error for the admin_notice, but updated might be more appropriate.",alexkingorg
Future Releases,20345,Don't show Author column on posts screen for single author sites,,Administration,3.4,low,normal,Future Release,enhancement,new,has-patch,2012-04-02T20:42:56Z,2012-04-18T20:39:05Z,"The 'Author' column on post listing screens is a bit pointless for single-author sites.

To simplify this screen, I think it would make sense to remove this column for sites which only have one user, and possibly also remove it for sites with more than one user but still only one author (ie. `!is_multi_author()`).

I'm not sure how best to handle the column's visibility and a user's column visibility preferences at the point when a site goes from being a single-author site to a multi-author site.",johnbillion
Future Releases,9931,Extra class for the wrap div's in custom-header.php,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-05-24T17:25:40Z,2010-08-13T11:41:15Z,"I'm using custom-header.php to complete the options section for my own themes but for some themes I only need the image section to be visible>

Would it be possible to add an extra class reference to the <div class=""wrap""> sections? This would make it possible for me (and others) to ''not'' display the irrelevant sections (and thus avoid questions from users about why changes aren't reflected).

My suggestions is to go for something like this:

{{{
<div class=""wrap custom-header-text"">
<div class=""wrap custom-header-image"">
<div class=""wrap custom-header-reset"">
}}}

And perhaps that:

{{{
<div class=""wrap custom-header-text"">
<?php screen_icon(); ?>
}}}

needs to be changed into something like:

{{{
<?php screen_icon(); ?>
<div class=""wrap custom-header-text"">
}}}

to keep the icon available when you choose to hide the text section.

Cheers :)",stgoos
Future Releases,22650,Filter the Gravatars on credits.php,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-30T08:39:58Z,2012-11-30T08:51:59Z,"All Gravatars should be generated by get_avatar() or at least run through apply_filters('get_avatar', $avatar) for the sake of extensibility.

Related: #22329",miqrogroove
Future Releases,21856,Hide category selection when no posts are available,,Administration,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-09T14:38:10Z,2012-11-13T20:18:02Z,"Just an idea that popped up while testing #21015. The months dropdown gets hidden when there are no posts available, so why not hide the category dropdown list too?

Might be a bit confusing though, when certain elements are not showing when you first start using the screens that these elements are used. But showing something that does not do what it looks like is even more confusing, I think.",CoenJacobs
Future Releases,22139,Hooks for wp-login customization,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-09T14:18:07Z,2013-01-22T22:18:57Z,"I have an application that leverages wp-login.php as the login page (of course), however, the HTML on the wp-login.php doesn't have a way for my application to insert its navigational elements, branding, etc.

I propose the addition of two new action hooks: ''login_before_container'' and ''login_after_container'' which would come before and after the login div, respectively.  ",borkweb
Future Releases,22183,"Input type=""email""",,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2012-10-13T19:01:18Z,2012-11-07T07:53:37Z,"Text inputs for email addresses were replaced with email inputs in [20168] but reverted in [20196] due to poor client-side validation by Chrome 17 and Firefox 10, however we've had input type=""email"" on the registration form since [18763].

We should:
 1. Test the current state of client-side validation.
 2. Either introduce email inputs in the admin area or revert [18763] depending on the results of point 1.

See http://core.trac.wordpress.org/ticket/17863#comment:25 for the email input validation issue.",johnbillion
Future Releases,24209,Install Themes/Plugins Custom Page Hooks,,Administration,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-28T03:04:05Z,2013-04-28T05:45:40Z,"Upon trying to add a custom page to the '''Plugins > Add New''' section for private plugins, I realized there wasn't a hook that allowed overriding the plugin_api call.

The custom tab on the page could easily be added via the ''install_plugins_tab'' filter, but in the '''class-wp-plugin-install-list-table.php''' class method ''prepare_items()'', there isn't a hook to override the api call.

I checked the functions for the themes and it's the same thing, so I've added the patches containing the proposed filters for both classes in order to help future customization of WordPress by developers.

Here's an example of the custom tab and the desired results via the hooks in a plugin:

[[Image(http://i.imgur.com/iF9gbMf.png)]]

These filters can also be used to prohibit clients from adding 3rd-party plugins for security & performance reasons and even limit them to only using a private Repository API.

Thanks!",amereservant
Future Releases,23432,Links in Setting pages to open in new window,,Administration,3.5.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-02-09T15:26:25Z,2013-02-10T16:02:57Z,"Some links in the Setting Pages (General, Discussion, Permalink) pages open in same window, which sometime can be awful. [[BR]]
While the users can press cmd/ctrl + click and click the link to open it in new tab but If the user does not open the link in new window, options (which are not saved) will be lost and one have to go through them again.[[BR]]
Also links in the Edit Profile page and all the links in the help tab open in new window except a few.(so it is possible that users may just click it thinking them to alike other links which open in new window)[[BR]]
So a consistency will be there and ux can be a little better.",theadityajain
Future Releases,20335,Make Default Post Listing Mode Filterable,,Administration,3.3.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-03-30T15:54:23Z,2013-02-08T07:32:35Z,"Inspired by [http://wordpress.stackexchange.com/q/34956/46 a question] on the WordPress Answers Stack Exchange.

By default, WordPress displays the post list in the admin as a list view.  There's an option to switch to an excerpt view that many people use and some would like to set this as the default mode.

Unfortunately, the default is hard-coded into WordPress and is not filterable.  I propose we add a basic filter to allow developers to override the default ""list"" setting for the view mode.",ericmann
Future Releases,8243,"Make draft pages to appear in ""recent drafts"" dashboard gadget",,Administration,2.7,normal,normal,Future Release,enhancement,new,has-patch,2008-11-16T11:08:50Z,2010-06-25T20:21:01Z,"In 2.7 beta 2, draft Pages do not appear in ""recent drafts"" dashboard gadget. It would be very nice to see draft pages there as well. Another option is to make it optional and allow one to select whether he/she wants to see draft pages in the gadget.
",asandler
Future Releases,15865,Make it easy to disable options / user settings,westi,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2010-12-17T17:52:29Z,2013-01-21T04:12:48Z,"We have a wonderful option white listing system.

The one thing it doesn't support is hiding the ui of core options if you don't want them changed.

We should have a generic way of doing this.",westi
Future Releases,21516,Make the entire .check-column the click target for the checkbox,,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-08T03:34:38Z,2012-10-22T15:27:26Z,"Sometimes checkboxes are quite small. In various list tables, checkboxes are wrapped in a .check-column. Why not make the entire .check-column clickable, in case people (like me) miss?",mitchoyoshitaka
Future Releases,20956,Navigation changes: Posts/Pages,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-14T14:42:25Z,2013-01-22T03:30:06Z,"1. Explaining the difference between Posts and Pages to new users is time consuming and often frustrating. We've all done it, have our best/fastest version of the talk down pat, but it still takes longer than it should to get many new users to the point of understanding the difference.

2. Back in 2.7, when we set up the left navigation we put Pages at the bottom of the content nav section because in testing 2.5/2.6 so many people complained about accidentally clicking Posts/Pages by accident because they were close together in the old UI and both started with P (blame it on capital_p). Because of this, Pages falls below the less-frequently accessed areas of Media and Links, and people don't necessarily see it right away because they expect it to be higher up.

I've been testing out two changes to the left navigation aimed at reducing these two issues on my test blog for some time now, and have been using it during demos with both new and existing users to great success, so I think it's time to propose it for core.

Change 1: Change the Posts label to Blog. All Posts can remain as is, or could be reduced to just Posts, since the reason we added the All in the first place was that Matt thought it looked weird to have the same word shown twice. 

This change reduces the amount of time it takes me to get a new user really understanding the difference between posts and pages by about 75% (very informal testing, have kept track with about 30 new users by just keeping an eye on the computer clock to see how long it is before we move on). The dynamic blog/static site difference is much easier to grasp when they see that familiar word Blog instead of Posts because ""posting"" is an action that applies even to static content, and even posts are displayed in web pages (vs Pages).

Change 2: move Pages up the menu to sit below Blog, so the two most important content types are at the top. Since they wouldn't look similar (ha ha capital_p) there would be much less risk of accidental misclick based on letter shape (poor manual dexterity would not be affected, but in that case those people are already clicking the wrong things, right?)

I've attached a screenshot showing what the navigation would look like with these changes. ",jane
Future Releases,23091,Need to remove deprecated get_bloginfo('url') from _fix_attachment_links() function,,Administration,3.5,normal,normal,Awaiting Review,enhancement,new,close,2012-12-31T01:57:33Z,2013-01-29T21:51:19Z,"get_bloginfo('url'); is deprecated.
Should be home_url();",hexalys
Future Releases,12670,Non-standard htaccess filename breaks mod-rewrite setup,ryan,Administration,2.9.2,normal,normal,Future Release,enhancement,assigned,has-patch,2010-03-22T17:44:41Z,2010-04-17T23:38:54Z,"I use a non-standard .htaccess filename and thus the mod-rewrite for permalinks didn't work for me as the admin script wrote to a file called .htaccess - this also made my wordpress site throw an HTTP 500 error due to the ""missing"" .htaccess file

I think it would be worth adding a check to see what the .htaccess filename is before writing it (the Apache config var is called ""AccessFileName"")

I have worked around the problem by creating a symlink from the filename I use to .htaccess.",thedotproduct
Future Releases,18596,Not possible to filter comment screen by post type,,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-05T16:50:33Z,2011-10-03T20:41:20Z,"The `post_type` query var has no effect on the Comments screen so it's not possible to filter this screen by post type.

I'll work on a patch.",johnbillion
Future Releases,12694,"Orphan themes are listed as broken, but can't be deleted from wp-admin",,Administration,2.9.2,low,minor,Future Release,enhancement,new,has-patch,2010-03-24T21:40:44Z,2013-05-16T01:38:05Z,"I had been giving a set of ""mobile"" themes a tryout on my WordPress blog.  There's a parent theme and three child themes.  Didn't really like them.  

Not realizing they were parent/children(I thought they were 4 independent themes that were identical except for color schemes), I deleted the parent theme first through the WP-Admin's theme screen (/wp-admin/themes).

Now, the parent theme is gone.  But WordPress still lists the child themes as broken themes with the disclaimer: ""The following themes are installed but incomplete. Themes must have a stylesheet and a template.""

However, there's no option to delete them from the WP-Admin.  Being a longtime WordPress user, I know I can FTP into my server and manually remove those directories.  But I'll admit, I love how the newer versions of WordPress have made it possible to install/upgrade/delete themes and plugins right from the Admin system, without the need to open up the ol' FTP client and do it all manually.  I'm sure there are also newer users of WordPress who may or may not be aware they'd need to go through FTP to delete a broken theme.

Just saying it would be nice if we could delete broken themes right from the Admin system... but it's not a major/urgent request.

",pnaw10
Future Releases,21774,Page attributes structure,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-02T14:58:57Z,2012-10-08T17:45:53Z,"Currently, the ""Page Attributes"" module is organized like this:

* Parent
* Template
* Order

Wouldn't it make more sense to put ""Parent"" and ""Order"" together, as both are closely similar and related to the site structure?

We could have:

* Template
* Parent
* Order

or maybe

* Parent
* Order
* Template",Lorangeo
Future Releases,16122,Paging in link-manager,,Administration,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-06T10:11:07Z,2011-08-06T14:42:39Z,"I think it would be a good idea to have paging (""Show on screen"" option) in the link-manager like in pages, sites, media a.s.o.",jezze
Future Releases,17891,Pass $post_type to 'restrict_manage_posts',,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-06-25T11:48:23Z,2012-09-22T01:07:26Z,"It would be nice if the 'restrict_manage_posts' hook received the post type as an argument, rather than having to check the global.",scribu
Future Releases,18833,Pass raw data into save_post/wp_insert_post,rmccue,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-01T09:15:14Z,2011-10-02T02:24:01Z,"Almost all tutorials about custom metaboxes (in addition to post meta) use `$_POST` to get the data that was submitted. Unfortunately, this breaks if a plugin uses anything that calls `wp_insert_post()` in the same request.

The patch attached here includes the `$postarr` array, which is the raw data passed in, and which is `$_POST` from `wp-admin/post.php`. This allows one to use the third parameter to the callback to set meta data instead of having to use `$_POST` directly.",rmccue
Future Releases,9883,Password shows under Settings / Writing,ryan,Administration,2.7.1,low,trivial,Future Release,enhancement,reopened,has-patch,2009-05-19T23:07:29Z,2013-01-22T16:54:52Z,"The password box in the section ""Post via e-mail"" on Settings -> Writing should hide the password, not show it.",mastrup
Future Releases,6286,"Proposed changes to ""E-mail me whenever"" Discussion Options",,Administration,2.5,normal,normal,Future Release,enhancement,new,has-patch,2008-03-18T19:14:55Z,2013-01-13T20:40:03Z,"WRT the ""E-mail me whenever"" options on the Discussion options page:

[[Image(http://img132.imageshack.us/img132/4215/picture1vf1.png)]]

 1. For ""a comment is helf for moderation,"" the ""me"" is ambiguous.  It should specify that it means the blog admin e-mail address.
 1. For ""anyone posts a comment,"" again, ""me"" is ambiguous.  In this case ""me"" means the author of the post.  The comment notification setting is personal, and therefore should be set in the profile options (where it can retain the ""me"").  Some authors may want e-mail notification, others might not.",markjaquith
Future Releases,17906,Refactor submit box code,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-27T13:27:34Z,2011-06-28T16:01:10Z,"The code for the post submit metabox is a mess. It should be cleaned up, so that changes such as #17028 can be done more easily.

Will post a patch shortly.",scribu
Future Releases,17133,Register ctrl + s event for plugin/theme editor,,Administration,3.1,normal,minor,Future Release,enhancement,new,has-patch,2011-04-14T12:20:34Z,2011-12-06T04:07:54Z,Often when modifying code or writing a post using the wordpress editor I instinctively hit ctrl + s to save it. Up pops the save website dialog which I then have to close. In Gmail when I hit ctrl+ s it saves the email to drafts. I think a similar thing would be useful for wordpress.,jcnetsys
Future Releases,16774,Remember list view/excerpt view setting,,Administration,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-06T13:37:18Z,2012-07-03T19:43:23Z,"I love the new excerpt view, except that the next time I go to the Articles page, it shows me the list view again. The selected view should be retained as a setting.",texttheater
Future Releases,10970,Remove 'siteurl' setting from options-general.php,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-10-17T18:52:10Z,2012-11-16T16:26:34Z,"From #10957:

azaozz:
> Better to fix the cause for this: ""WordPress address"" (siteurl) shouldn't be changeable from Settings->General at all as it cannot be set safely there. Most users would just break their blogs if they change it.

> It is set at install and only needs changing when WordPress is moved to another domain or (sub)directory. This happens very rarely and there are other (better?) ways to set siteurl.


Denis-de-Bernardy:
> in this case, we need to make sure the www. pref is passed on to the site_url. else we're bound to get massive bugs (e.g. #9873)
",scribu
Future Releases,22827,"Remove profile page ""Visual Editor"" setting right margin",,Administration,3.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-08T16:31:58Z,2013-03-15T09:09:32Z,"I assume this once has been added to align with the profile page ""Admin Color Scheme"" setting, but for consistency with other settings my request to remove it.

Some screenshots:

http://cl.ly/image/3t3k1w3y2Q1D/8-12-2012%2016-26-26%20ltr%20after.png
[[BR]]
http://cl.ly/image/420C1i1c1f2n/8-12-2012%2016-21-26%20rtl%20before.png
[[BR]]
http://cl.ly/image/3H3R0u080I0Q/8-12-2012%2016-25-14%20ltr%20before.png
[[BR]]
http://cl.ly/image/183U2g3x381I/8-12-2012%2016-21-26%20rtl%20after.png

Please note this is my first patch, and thus I'll probably mess up something somewhere. Terribly sorry about that.",corvannoorloos
Future Releases,17884,Remove redundant checks in settings API functions,,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-06-24T20:20:44Z,2013-01-03T19:25:30Z,"There are several isset() checks in some settings fields functions that are meant to prevent notices, but they're simply unnecessary.

PHP doesn't emit notices in those cases.",scribu
Future Releases,18788,Remove redundant type attributes from script and style tags,,Administration,3.3,normal,normal,Future Release,enhancement,new,has-patch,2011-09-27T06:54:02Z,2013-04-15T10:28:35Z,"Now that the admin is using the HTML5 doctype everywhere, the `type=""text/javascript""` and `type=""text/css""` attributes on script and style tags are unnecessary (if they weren't anyway), and I think they can be safely removed to trim a few hundred bytes from core. Should be a simple search and replace exercise.",solarissmoke
Future Releases,17542,Remove upload file after deleting custom background,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-05-23T08:49:25Z,2011-05-23T14:40:13Z,"I came across a comment on custom-background.php that says 
//@todo: uploaded files are not removed here.

So, I thought I will come up with this codes for the upload file deletion if user remove background.

Attached custom-background.diff

I had tested on my localhost.

Hope this contribution is useful.

Thanks.",denzel_chia
Future Releases,23427,Restore shift-click checkbox range selection,,Administration,3.5,normal,normal,Awaiting Review,enhancement,new,close,2013-02-08T19:35:32Z,2013-02-26T16:48:58Z,"It used to be possible to select a range of checkboxes in the post list by shift-clicking (see #6541). I'm not entirely sure when this feature disappeared, but it's been a while.

Patch restores the functionality using the [http://www.sanisoft.com/blog/2009/07/02/jquery-shiftcheckbox-plugin/ ​jQuery shiftcheckbox plugin].",sillybean
Future Releases,12432,River of comments in the Recent Comments dashboard module,garyc40,Administration,,normal,normal,Future Release,enhancement,assigned,has-patch,2010-03-01T00:23:32Z,2011-03-23T17:24:45Z,"See #11891, the 3.0 effort.

Upgrade the Recent Comments dashboard widget to pull in the 'river of comments' instead of only displaying the configured value (which winds up empty if you delete or spam those 5).",nacin
Future Releases,19609,Show the 'Mine' filter on the manage posts screen for all users,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-19T08:01:36Z,2013-04-04T17:42:04Z,"Authors and Contributors get a handy filter on the manage posts screen called 'Mine' which shows just that user's posts. It's also the default view for those user roles.

Editors and Admins don't see this filter at all. It'd be nice if it was available, even if it's not the default view like it is for Authors and Contributors.

If no-one else wants to then I'll look at doing a patch after the holidays.",johnbillion
Future Releases,7615,Show theme name when selecting page templates,,Administration,2.7,normal,normal,Future Release,enhancement,new,has-patch,2008-08-27T20:12:39Z,2009-11-20T20:33:10Z,"Currently, if a child theme inherits some templates from its parent theme and adds some itself, it's not clear when selecting a page template which templates are from which theme. The attached patch adds the theme name in parentheses after the template name.

This is just something that struck me might be an issue, so feedback on whether there is actually a real benefit to the added complexity would be welcome.",ionfish
Future Releases,16346,Slug field too narrow in Post Edit,,Administration,3.1,normal,minor,Future Release,enhancement,new,has-patch,2011-01-22T18:56:24Z,2011-01-22T19:39:41Z,"When you edit a post, there is a Slug panel at the bottom where you can edit the slug. The field displaying the text of the slug is set inline to 13, which is not nearly wide enough to show more than 15 letters.",ABTOP
Future Releases,20052,Support sprites for admin menu icons in register_post_type and add_menu_page,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2012-02-15T23:14:45Z,2012-12-14T23:49:22Z,"We should encourage developers to maintain a consistent and beautiful admin UI by making it easier to register sprites with black and white and color versions of icons for the admin menu, namely in `register_post_type()` and `add_menu_page()` (and its wrappers).

Related: We should also do an education push and create an external web tool to make it easy to generate a properly sized, colored, and positioned sprite.

Related tickets: #20036, #19886",helen
Future Releases,18590,"Swap out ""return false"" JS calls for preventDefault",,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-05T03:43:16Z,2012-12-10T23:12:00Z,"While trying to hook into someone clicking the expand/collapse arrow in the nav menu UI, I realized that the existing Javascript is using `return false;` to abort the hyperlink click from going through.

[http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/ This is bad and incorrect.]

We should be using `object.preventDefault()` instead so that other bound functions aren't aborted.",Viper007Bond
Future Releases,16369,Tag to category and categories to tag converter links,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-25T10:44:06Z,2011-01-25T13:44:28Z,"In the Post Tags and Categories pages, links are made available to direct the users to the Categories and Tags Converter in Tools.

While it is normal that these links go to the Tools>Import page as long as the Categories and Tags Converter is not installed, once it is, the links should go one step further and bring the user directly inside the Categories and Tags Converter.",paolal
Future Releases,16414,Theme and Plugins options pages need improved tabs,chexee,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-30T22:13:52Z,2013-02-17T21:48:14Z,"We've talked about this in UI group before, this is essentially a continuation of [12412].

The tabs currently look rather big and bulky. We'd like to find a more graceful, subtle way to show multiple screens under one nav item.

Some notes:

 - Tabs should be different sections of one nav item (primarily Themes and Plugins).  They are not children of that nav item.  There shouldn't be any visual hierarchy between the h1 and the tabs.  The tabs, essentially, are the different h1s.

 - I use the word tabs loosely.  They do not necessarily have to look like traditional tabs.  Creative solutions to this would be awesome.

 - We are also open to suggestions to changing the wording on the tabs, especially for themes.  Current they read, ""Manage Themes"" and ""Install Themes"".  ""Install Themes"" is a bit misleading, ""Add New Themes"" would be more descriptive.

Attached are previous proposals.  ",chexee
Future Releases,21826,There should be more filters when displaying a theme in the list table,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-06T22:54:43Z,2012-09-15T22:27:50Z,"In `WP_Themes_List_Table::display_rows()`, there is a filter for the theme actions, but no filters for the theme information itself: screenshot, title, author, version, and description. Why not fix that?

The attached patch introduces `theme_list_*` filters within the `display_rows()` method. Suppressing one of the pieces of information is simply a matter of returning an empty value through the filter.",ethitter
Future Releases,16243,Unhelpful error messages when updating default category,,Administration,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-15T12:23:36Z,2011-12-07T07:15:45Z,"If we try and change the default category slug to one that has already been used we get conflicting error messages between quick edit and full edit.

If you use Full Edit you're simply told ''Item Not Updated'' however, if you use quick edit, you are informed that the slug has already been used.

The full edit error message is, I think, on line 223 of wp-admin/edit-tags.php - I'm unable to find where the error message for the quick edit functionality is, however.

Having correct and useful copy in error messages is vital, especially for relative newcomers to WP.

This oversight was found by Relly Annett-Baker (@RellyAB on twitter) - one of the best copy writers and content strategists out there. Perhaps we could look at overhauling the error messages and ask (someone like) Relly to give them a once-over or offer advice on them.",iamfriendly
Future Releases,12914,Update the Right Now box when publishing via QuickPress,,Administration,3.0,lowest,trivial,Future Release,enhancement,new,has-patch,2010-04-08T08:03:32Z,2013-01-22T15:57:58Z,"When you publish a new post via QuickPress, it'd be cool for the Right Now box to then ++ the number of published posts.

Quick proof of concept patch attached.",nacin
Future Releases,9777,"Usability : add delete button to ""edit category"" menu",,Administration,2.7.1,normal,minor,Future Release,enhancement,new,has-patch,2009-05-09T22:56:39Z,2012-05-22T16:56:47Z,"Add ""delete"" button to ""edit category"" menu so i can delete the category and not only edit it. this is a very useful feature that is missing in this menu.

'''LOCATION:'''

Admin -> Posts -> Categories -> Edit Category

'''URL:'''

http://www.site.org/wp-admin/categories.php?action=edit&cat_ID=302
",ramiy
Future Releases,23601,Use ACE Code Editor for Theme and Plugin editors,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-25T06:56:00Z,2013-03-21T21:33:49Z,"Ace is an embeddable code editor written in JavaScript. It's the code editor used on GitHub and is actively developed by Mozilla. Its license is Modified BSD which is compatible with GPL. 

The plugin and theme editors in their current state are lame. Upgrading the experience with ACE could lead to a more robust file editing solution in the admin. Perhaps, ability to add files?

Here's the link to the project:
http://ace.ajax.org/",wonderboymusic
Future Releases,16856,"When registering custom post type, menu_position isn't honored if it's a number passed as a string",,Administration,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-14T16:52:18Z,2013-03-31T02:52:15Z,"When registering a custom post type, if you use '50' instead of just 50, is_int() will fail and the position will be set to ++$_wp_last_object_menu. Seems safer to use isset() instead, since position doesn't technically need to be an integer. ($menu gets sorted before being output, and '50' is the same as 50 in that case)

This has the added benefit of allowing MANY more spaces in the $menu variable. For instance, if you passed '50.555' as menu_position, there's very little chance that this will conflict with another theme/plugin register a custom menu or custom post type, and will successfully go between 50 and 51 in the $menu array.

There are currently no checks on $position when using add_menu_page() ... but the checks on register_post_type() currently make this an invalid universal solution.

Personally, I don't see a downside to letting menu_position be a string. Anything other than a number (whole or decimal) will just go to the bottom of the $menu array, anyway, after the sort.

I'm submitting two patches ... one is type independent, and the other casts menu_position as (int) after the isset() check.",nathanrice
Future Releases,24252,Windows Phones are ignored by wp_is_mobile,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-02T21:49:13Z,2013-05-07T18:46:30Z,"Reported in the forums by vaibhav3 - http://wordpress.org/support/topic/wp_is_mobile-returning-false-values/

wp_is_mobile() doesn't have an 'If Windows Phone' clause which throws off some phones which apparently don't have a 'mobile' fall back.

Attached is a patch that adds it in.",Ipstenu
Future Releases,17851,Wrapping Sections with add_settings_section,,Administration,3.1.3,normal,normal,Future Release,enhancement,reopened,has-patch,2011-06-20T03:09:34Z,2011-09-28T18:09:53Z,"This is my first time reporting, so excuse my ignorance. I just wanted to see about enhancing the add_settings_section function.

As of now, individual sections are not wrapper in any sort of container, which makes no sense to semantic sense to me. Sections should/need to be styled differently, but as of now, you really don't have much control of that.

I propose something similar to the register_sidebar function, looking like this:

add_settings_section( $id, $title, $callback, $page, $args )

$args would accept 3 parameters: before_section, after_section, and section_class.

This way you can style each individual section with relative ease. Just a thought and enhancement to the Settings API.

Thomas",griffinjt
Future Releases,12506,admin-color-scheme.css already loaded on wp-login.php. why?,,Administration,2.9.2,low,minor,Future Release,enhancement,reviewing,has-patch,2010-03-03T21:55:21Z,2012-07-03T20:55:11Z,"On wp-login.php we are already on admin, because wp is loading the whole color-scheme for a user... which is wrong. It is senseless, because the color-scheme the user selected for admin cannot be loaded without his user-data. And that is not possible as long as he/she didn't enter any login-data.

REQUEST: get the ~30kB color scheme out of the wp-login.php and add the following to wp-admin/css/login.css:


{{{
body.login {
    border-top-color:#464646;
}
body, #wpbody, .form-table .pre {
    color:#333333;
}
a, /* All obsolete on wp-login.php - could here simply be h1 a */
#adminmenu a,
#poststuff #edButtonPreview,
#poststuff #edButtonHTML,
#the-comment-list p.comment-author strong a,
#media-upload a.del-link,
#media-items a.delete,
.plugins a.delete,
.ui-tabs-nav a {
    color:#21759B;
}
.submit {
    border-color:#DFDFDF;
}
textarea, /* All obsolete - could be #login #wp-submit */
input[type=""text""],
input[type=""password""],
input[type=""file""],
input[type=""button""],
input[type=""submit""],
input[type=""reset""],
select {
    background-color:#FFFFFF;
    border-color:#DFDFDF; /* Obsolete due to .submit-class above */
}
input.button-primary, button.button-primary, a.button-primary {
    -moz-background-clip:border;
    -moz-background-inline-policy:continuous;
    -moz-background-origin:padding;
    background:#21759B url(../images/button-grad.png) repeat-x scroll left top;
    border-color:#298CBA;
    color:#FFFFFF;
    font-weight:bold;
    text-shadow:0 -1px 0 rgba(0, 0, 0, 0.3);
}
.submit {
    border-color:#DFDFDF;
}
.login #nav a {
    color:#21759B !important;
}
.login #backtoblog a {
    color:#CCCCCC;
}
}}}
",F J Kaiser
Future Releases,19828,allowing to insert help tab in specific position,,Administration,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-13T21:50:15Z,2012-03-01T17:22:32Z,"this enhancement of add_help_tab() would allow plugin developers to insert help tabs on existing screens at an arbitrary position, e.g. place it on the ""Writing Settings"" screen's help tab between the ""Overview"" and ""Press This"" tabs

the patch attached includes the bugfix from #19827, but this enhancement can be rewritten to work independently",tfnab
Future Releases,21539,category_description filter not applied to Description field on Categories page,,Administration,3.4.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-10T13:53:03Z,2012-08-12T17:31:42Z,"The category_description filter is not applied to the Description field on the Posts > Categories page (wp-admin/edit-tags.php?taxonomy=category).

Need: I use very long category descriptions, which are displayed on the front end of the site. This means that the Posts > Categories page is blown out by the long descriptions. I wrote a plugin to filter the category_description to limit it's length in the admin area. However, I then discovered that the filter is not applied on this page.

I'm wondering if there is some reason this was left out by design, but I can't see any reason why the filter should not be applied at this point. If I've missed something, please let me know.

It is easy to fix - simply apply the category_description filter to the description field in column_description() in wp-admin/includes/class-wp-terms-list-table.php

I have applied this on my local install. Now I just need to work out how to create a patch and submit it for review (this is my first attempt).

Note: It may be sensible to limit the length of the category description displayed on this page, but that's outside the scope of this ticket, which is just about the filter not being applied.",StephenCronin
Future Releases,17520,cite element used incorrectly,,Administration,,low,trivial,Future Release,enhancement,new,has-patch,2011-05-20T17:47:14Z,2011-10-18T21:16:34Z,"Here's what the HTML5 specification says about the cite element:
  The cite element represents the title of a work (e.g. a book, a paper, an essay, a poem, a score, a song, a script, a film, a TV show, a game, a sculpture, a painting, a theatre production, a play, an opera, a musical, an exhibition, a legal case report, etc). […]
  
  A person's name is not the title of a work — even if people call that person a piece of work — and the element must therefore not be used to mark up people's names. (In some cases, the b element might be appropriate for names; e.g. in a gossip article where the names of famous people are keywords rendered with a different style to draw attention to them. In other cases, if an element is really needed, the span element can be used.)

http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-cite-element

The element is used plugins/hello.php correctly to mark up the title ""Hello, Dolly"". But many more places it is used incorrectly to mark up an author's name.

The obvious fix would be to replace all but the one correct instance of the cite element with spans with an appropriate class.",holizz
Future Releases,11705,get_media_item()'s $form_fields do not allow for <select>,,Administration,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-01-03T21:48:51Z,2010-02-18T12:19:45Z,"get_media_item() of wp-admin/includes/media.php does not allow for <select>-style fields. This makes extending the ""Edit Media"" screen via the ""attachment_field_to_edit"" filter difficult for plugin authors to extend.",johnl1479
Future Releases,22590,get_post_class() do not set 'sticky' class in administration posts table,,Administration,3.4.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-11-26T09:31:54Z,2012-12-21T19:30:40Z,"get_post_class() does set a 'sticky' class to sticky post on the frontend but not in the administration. So, there's no way to differentiate a sticky post from another non-sticky post excepted the span element to its right.

Adding something similar to this fix the problem:
{{{
	// sticky for Sticky Posts in administration
	if ( is_sticky($post->ID) && is_admin() )
		$classes[] = 'post-sticky';
}}}",corsonr
Future Releases,7422,"pass $post_id to filters in sanitize_post_field() on post updates - same for users, etc.",,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2008-07-28T21:18:05Z,2010-07-15T12:17:01Z,"the function sanitize_post_field in wp-includes/post.php calls most of the ""database writes"" post filters (e.g. content_save_pre). if a post is updated or created, the function is called in a database context ('db' == $context) and the $post_id argument is not passed to the ""database writes"" filters. while i understand this behavior on post creation ($post_id not yet available) it seems to me that on a post update the $post_id is readily available and could/should be passed to the filters as well.

an example where this would be useful is a case where i want to access a custom field value of a post that is currently being updated from the function hooked into content_save_pre. in its current form without the $post_id argument this doesn't seem to be possible.",whoismanu
Future Releases,18710,post_deleted_messages filter,nacin*,Administration,,normal,normal,Future Release,enhancement,accepted,has-patch,2011-09-19T21:19:21Z,2012-06-11T13:05:21Z,It would be nice to be able to updated post deleted messages like you can through the post_updated_messages filter.,jgadbois
Future Releases,16778,wordpress is leaking user/blog information during wp_version_check(),,Administration,,normal,minor,Awaiting Review,enhancement,reopened,has-patch,2011-03-06T18:57:43Z,2012-09-04T11:06:26Z,"Hi,
we've noticed that wordpress will send how many users and blogs are in a given installation during the GET to api.wordpress.org together with the installation URL in the headers.

Is there any reason why this is done? It seems quite a leak of information. Can it be turned into an option defaulting to off and admins can opt-in if they want to report how many users/blogs are currently there?

thanks.

PS. slightly related, WP will also leak which blog in MU mode is requesting any URL via the user-agent in the WP_Http class (for example while updating the news feed on the dashboard)",investici
Future Releases,18287,wp-login.php - Logo URL should be relative (affects MultiSite),,Administration,3.2.1,normal,normal,Future Release,enhancement,new,has-patch,2011-07-29T00:31:49Z,2013-05-05T04:50:28Z,"If you go to your domain.com/wp-login.php page it has a WP logo that links back to domain.com

If you're using multisite and go to subsite.domain.com/wp-login.php, it links back to domain.com

If you're using multisite and you MAP a domain and go to mappeddomain.com/wp-login.php, it links back to domain.com

I can see why this would have been done.  It points to network_home_url() which is perfectly sensible for MOST situations.  But maybe we should just honor the site on which people are trying to login, so that it's all relative.  Given the link on the bottom (back to...) goes to the relative site, this is a logical change.  I would say to keep the EMAILS for password resets as is, since the network is in charge of it all, but the front end interface should be consistant.

I did a quick test and this works fine on Single and Multi (as expected). So ... here's my first diff!",Ipstenu
Future Releases,22231,Add action to provide additional options to the Custom Background page,,Appearance,3.4,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-10-19T23:27:02Z,2012-10-20T15:12:29Z,"The Custom Header feature of WordPress has an action to allow additional options to be attached to the Custom Header admin page. This patch allows the same functionality to be done for the Custom Background page.

'''Use case:''' I want to provide an option to allow the custom background image set to be responsive. If checked, the background image URL will be localized for use via the anystretch.js.",thelukemcdonald
Future Releases,22182,Make core theme customizer section titles filterable,,Appearance,3.4.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-13T11:45:13Z,2013-04-19T17:11:01Z,"It would be very useful to be able to modify core theme customizer section titles by making them filterable, or by adding a setter class method to modify an existing section title.

At the moment you can't access a section title directly as it is set to protected.

Example user case scenario is if you needed to add sub controls to an existing section, then the title may need updating to reflect this.",dgwyer
Future Releases,19984,Issue with Default Post Format,,Blog by Email,3.3.1,normal,major,Awaiting Review,enhancement,new,has-patch,2012-02-07T20:29:41Z,2012-08-24T01:34:27Z,"I set my Default Post Format as Aside. So I expect all my posts via email will appear as Aside, same as Default Post Category does perfectly while post via email. But it is always posting as Standard whenever I post by email. Kindly fix this. Wordpress is Awesome :)",binarymag
Future Releases,24128,Twenty Eleven: add postMessage support for header_textcolor,,Bundled Theme,,normal,normal,Future Release,enhancement,new,has-patch,2013-04-18T17:43:32Z,2013-04-23T16:53:14Z,"Similar to Twenty Twelve and Twenty Thirteen, this would add immediate visual feedback in the Theme Customizer UI when header text is hidden, or its color value changes.",lancewillett
Future Releases,23662,Twenty Twelve: style.css with Table of Contents,,Bundled Theme,3.5,normal,normal,Future Release,enhancement,reopened,has-patch,2013-03-02T00:44:33Z,2013-03-15T18:08:49Z,"Hello, I really like the 2013 initiative with Table of Contents, because it helps new users understand where goes what, especially developing child themes.

I added Table of Contents to Twenty Twelve theme and renamed CSS comments titles accordingly.",TomasM
Future Releases,19564,Helper function for getting/setting cache data,,Cache,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-15T15:02:09Z,2011-12-15T16:00:55Z,"Most of the time when we want something from the object cache we go through a routine of: wp_cache_get(); checking a result; setting a default; setting the cache with wp_cache_set(); returning. Core should offer a neat way to do this all in one fell-swoop.

Attached patch is a proposed solution.",johnjamesjacoby
Future Releases,20875,Introduce wp_cache_get_multi(),,Cache,,normal,normal,Future Release,enhancement,new,has-patch,2012-06-07T13:56:28Z,2013-04-16T17:12:29Z,"Both options (see #10274) and themes (see #20103) could benefit from a cache backend that implements get_multi(). For options, this means we can use individual keys. For both themes and options, we'd be able to make fast multiple gets.

Both APC and Memcached (but not Memcache) implement multiple-get. A fallback would be looping over get().

Separately, as this would be a new function we use in core, we probably need to start doing some kind of versioning for drop-ins like db.php and object-cache.php.",nacin
Future Releases,21401,Load packaged object cache when advanced-cache.php and object-cache.php don't implement wp_cache_init( ),,Cache,3.0,normal,normal,Future Release,enhancement,new,has-patch,2012-07-28T06:00:11Z,2013-05-14T13:22:25Z,"'''This ticket has 3 purposes:'''

1) introduces {{{wp_using_ext_object_cache()}}} - mimic {{{wp_suspend_cache_invalidation()}}} and disallow direct access to {{{$_wp_using_ext_object_cache}}}, cleans up importing of globals in functions and provides function to modify that global[[BR]][[BR]]
2) load the wp-packaged object cache when {{{object-cache.php}}} doesn't implement {{{wp_cache_init()}}}[[BR]][[BR]]
3) adds file_exists for advanced-cache.php

{{{wp_start_object_cache()}}}, at its core, is on the hunt for {{{wp_cache_init()}}} and then sets the toggle for the external object cache. We only care about the external object cache if it has that function. Rather than throwing a fatal error if their is a missing method, load the default object cache.

If someone installs Memcached properly, then nothing changes - file loads, all is good. If they install a blanks file, the default Object Cache will load. If they install an external object cache without {{{wp_cache_init()}}}, the default cache loads. 

IMO - there is no reason to turn off non-persistent caching or throw a fatal error if the author of a cache plugin sucks or the user made a mistake in moving the files.",wonderboymusic
Future Releases,15565,More context for clean_post_cache(),,Cache,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-11-24T17:41:07Z,2012-10-17T14:21:18Z,"I'd like more context to be available when the clean_post_cache hook is run.

Scenario: I have a plugin caches the post_IDs of most post queries that go through WP_Query.  Invalidating that cache is done via the clean_post_cache hook, but requires a bunch of fragile hacks to prevent cache invalidation for things like comment inserts, which update the post's comment_count (which could, in theory, affect a WP_Query, but that's another story).

Option 1: Add extra actions to provide context.  This is the simpler option.  Patch 1 does this for the above scenario.

Option 2: Add an optional context parameter to clean_post_cache().  This is more general, but I can't think of anyplace else WordPress uses as similar approach.  Patch two.",mdawaffe
Future Releases,21402,"Remove PHP4 methods, format consistently",,Cache,,normal,normal,Future Release,enhancement,new,has-patch,2012-07-28T06:24:33Z,2013-05-14T13:16:42Z,"While I was looking around in cache.php, I noticed the TODO to remove the destructor that does nothing and the constructor that registers it to do nothing

Also, the whitespace was different for almost every function - yet the functions all have similar code, this cleans it up",wonderboymusic
Future Releases,14458,Create rel_canonical filter,,Canonical,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-29T21:48:34Z,2011-05-06T14:18:54Z,"Wouldn't it be nice to be able to set the canonical rel value.
This comes in handy when you create a duplicate page and be able to manipulate the cannonical value.

Usage:
{{{
add_filter( 'rel_canonical', 'childtheme_rel_canonical', 10, 2 );
function childtheme_rel_canonical( $link, $id ) {
  return get_permalink( 55 );
}
}}}
",wjm
Future Releases,23087,Filter wp-register.php canonical redirect in single site too,,Canonical,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-30T16:02:06Z,2012-12-30T21:05:43Z,"in canonical registration location redirecting we have a filter for MS but none for WP Single Site. I'm unsure of how to convert Git patches to svn, so... yeah... Sorry.

patch:
https://github.com/ChrisClayton/WordPress/commit/449ac581ff45bfd68050280cdad6211d907ca12f",chrisclayton
Future Releases,4328,"Redirect Old Slugs feature needs to redirect slugs for pages, not just posts, and redirect old permalink structure",markjaquith,Canonical,2.2,normal,normal,Future Release,enhancement,new,has-patch,2007-05-24T01:52:44Z,2012-05-13T19:42:18Z,"Create a page, browse to it, edit it, change its slug, WP redirects to the old page's slug and serves a 404. Wasn't WP 2.1 or WP 2.2 supposed to make the redirect old slug feature built-in?

Along the same lines, it would be sweet if instead of simply redirect old slugs, WP would redirect old urls. When the date changes, when the page parent changes, or when the permalink structure changes, the url changes but neither of WP, the redirect old slug plugin, the permalink redirect plugin, or anything else catches this.",Denis-de-Bernardy
Future Releases,15950,Tweak canonical redirect name requests,,Canonical,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-22T18:09:54Z,2010-12-22T22:28:38Z,"Scenario: A website has the following two pages:

 * `example.com/foo/amazing-thing/`
 * `example.com/amazing/`

Upon requesting `example.com/amazin` the canonical redirect should favour the top-most level page. This doesn't happen as the relevant SQL query doesn't have an `ORDER BY` clause, making the behaviour unpredictable.",johnbillion
Future Releases,24054,(get_)comment_class() should include a is_user_member_of_blog() class,,Comments,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-11T22:35:04Z,2013-04-11T23:27:06Z,"On multi-site, there's no way to style comments that are members of the site. You can either style the post author or all registered users (who may not have access to the site's admin area). Example use case would be a multi-author site where you want comments from all authors highlighted.

I think it'd also be cool to include what role they are so that you could style say all authors, editors, and administrators but not style contributors or something like that.

I'm not sure if this would an information exposure issue though (does it matter if it is known what role a user is or that they are a member of the site?).",Viper007Bond
Future Releases,11334,Add caching to get_page_of_comment(),,Comments,2.9,high,major,Future Release,enhancement,new,has-patch,2009-12-05T07:33:50Z,2013-02-05T05:10:21Z,"Ack. `get_page_of_comment()` lacks caching which means if you call `get_comment_link()` for the same comment ID on the same page multiple times (and outside of the loop), it will query multiple times. You also can't cache the result between page loads (the big ""uh oh"").

Attached patch introduces a cache that stores comment ID => older comment count (in short, the result of the function's query) on a per-post basis.

When any comment's status is changed, the entire cache for that comment's parent post is deleted as it will likely affect other comments (for example, deleting a comment can change the page of newer comments).

I opted to make a new cache flag (group), but I'm not sure if using an existing one would be better or not.

Oh, and this patch needs through testing and/or a good review.",Viper007Bond
Future Releases,20446,Add comment form submit button class attribute,,Comments,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-15T07:34:55Z,2012-05-03T15:59:12Z,"The comment_form() is packed with filters all over the place to customize the from just the way you need, but one thing i find missing is a class on the submit input tag and if there was a class attribute then it should be filterable.

I know you can set the input ID and simply style based on the ID selector but when designing themes usually you have some kind of class defined for buttons, especially when using any of the html5/responsive theme frameworks and if the comment submit input had a class which was filterable then it would make our lives much easier.

",bainternet
Future Releases,22922,Add filter 'comment_notification_email_to' in wp_notify_postauthor(),,Comments,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-13T17:53:32Z,2013-01-03T17:57:54Z,"Currently, mailto: address is not filterable in pluggable function `wp_notify_postauthor()`. Thus, in order to send replies to email addresses other than the post author, the entire function must be overridden.

Patch makes mailto: filterable for `wp_notify_postauthor()`, moving `$author->user_email` to an array, and applying the `'comment_notification_email_to'` filter.",chipbennett
Future Releases,20353,Add filter for email recipients in wp_notify_moderator(),,Comments,3.3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-04-04T12:35:36Z,2013-01-03T17:57:33Z,"As administrator, I would like more control over email notifications when comments are marked for moderation without having to overwrite the pluggable function wp_notify_moderator. 

The function wp_notify_moderator sends emails to post authors (when they have sufficient roles) and the admin by hard coding the $email_to array. I'd like to see the $email_to array sent to a filter with $comment before wp_mail() is called. That would allow me to write a theme function to manipulate the $email_to array to add or delete recipients. 

My workaround was to write a site specific plugin that overwrote wp_notify_moderator() to manipulate the $email_to array.",lexhair
Future Releases,761,Add hook to conditionally disable comment notifications [w/ patch],matt,Comments,1.2.2,normal,normal,Future Release,enhancement,reopened,has-patch,2005-01-27T07:42:58Z,2012-11-07T07:56:15Z,"E-mail notifications for posted comments are controlled by the  'comments_notify' setting.  E-mail notifications for comments needing modification are controlled by the 'moderation_notify' setting.  Each is an all or nothing setting, i.e. if 'on', ALL post authors will receive notifications when appropriate.  AFAIK, there isn't a  clean way for a plugin to insert itself into the notification process.",coffee2code
Future Releases,16944,Add new 'bynetworkuser' CSS class to output from comment-template.php,,Comments,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-23T06:28:46Z,2011-06-08T05:23:43Z,"Currently, the comment-template.php file checks to see whether a comment author is in the wp_user table.

If they are, then WordPress will emit a 'byuser' class as part of the comment div markup.

However, this behaviour is not ideal from multisite installations. 'byuser' should be restricted on a per-blog basis.

I propose that the current behaviour be assigned to a new CSS class, 'bynetworkuser'.",jacques_chester
Future Releases,16882,Add support for fetching comments posted since a specific date,,Comments,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-17T21:08:51Z,2011-03-22T14:30:12Z,"Adding a ""since"" option to wp.getComments and get_comments() could help reducing bandwidth used by mobile apps.

Probably useful for themes/plugins too",koke
Future Releases,20597,Allow WP_Comment_Query::query to filter by category,,Comments,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-05-02T03:35:35Z,2012-05-02T03:45:58Z,"The attached patch allows WP_Comment_Query::query to accept three additional arguments:

* `cat`
* `category__in`
* `category__not_in`

The resulting comments are then filtered by these category arguments as well as any other arguments.

These arguments work the same way as their `WP_Query` counterparts.

I would appreciate advice on the appropriateness of using `INNER JOIN` (as I have done here) to join in the taxonomy tables to the query.",sambauers
Future Releases,20302,Allow comment_form() to add attributes to <form> tag,,Comments,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-25T15:48:53Z,2012-04-01T18:23:56Z,"The standard method to allow Google Analytics to track comment submissions as a 'goal' is to add a piece of JavaScript code wrapped in an 'onsumbit' attribute:
http://www.optimisationbeacon.com/analytics/track-blog-comments-in-google-analytics/
http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html

We want something like the following:

{{{
<form action=""http://www.example.com/wp-comments-post.php"" method=""post"" id=""commentform"" onsubmit=""_gaq.push(['_trackEvent', 'Comments', 'Submit', 'POST TITLE']);"">
}}}

However the current arguments submitted to comment_form() do not provide for adding attributes to <form>
http://codex.wordpress.org/Function_Reference/comment_form

I was forced to perform a workaround in which the onsubmit code was inserted by JavaScript on the fly at runtime.

So this is request to alter comment_form() such that arguments accepted provide for 'onsubmit' or other custom attributes to be appended on the <form> tag.",psbook
Future Releases,10569,Allow filtering of reply text with comment context,,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2009-08-08T13:55:54Z,2011-02-01T16:30:36Z,"I know you can specify the reply text for comments, but you can't make them specific to each comment such as ""`Reply to comment #1234 by Joe`"".  This will let you do that by adding a filter called `comment_reply_link_text` to `get_comment_reply_link()` that passes along $args, $comment, and $post (just like the existing `comment_reply_link` filter).

I know you COULD do this with some processing on the link, but it would require pulling comment and post IDs from the URL and/or onclick, then replacing the text in the link itself.  This way would be a lot simpler and only adds a single filter.",aaroncampbell
Future Releases,12991,Allow setting default_comment_status specifically for Pages (or for any post type),messenlehner,Comments,3.0,normal,normal,Future Release,enhancement,assigned,has-patch,2010-04-13T22:52:28Z,2012-11-25T01:22:22Z,"Now that the default theme has {{{comments_template}}} in Pages too, I have been thinking that maybe we should offer a way of setting {{{default_comment_status}}} specifically for Pages (as distinguished from Posts).

Why?

Say that I select Twenty Ten as my theme.  I leave the global option for comments ON, because, like most people, I want comments on my Posts.  However, like most people, I do not want comments on Pages, or I want comments only on a few selected Pages.  So, every time I make a new Page, I have to untick the checkbox on the Edit screen, in order to override the global setting.  That’s not convenient!

I think we need to do something about that:

Either we leave Twenty Ten as is and change something at the level of post type registration, or we change something in Twenty Ten.

(I have no idea what would be a satisfactory way to deal with this at the theme level.  Sandbox, for instance, displayed the form on Pages only if there was a certain custom field with a certain value, which may seem very unfriendly at first sight, but I find it is much friendlier than what we have now in Twenty Ten.)",demetris
Future Releases,23851,Can we get some classes on the comment form output?,,Comments,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-22T20:02:00Z,2013-04-04T03:32:41Z,"The `comment_form()` function is quite useful, but styling it pretty much requires that you target the IDs, since the the outermost div and the form itself don't have classes.

If you're trying to stay as low on the specificity scale when writing CSS, not having classes available to target pretty much stops you cold.

I don't really care about the class names, though something descriptive and somewhat semantic would be preferable.

Anybody have thoughts?",nathanrice
Future Releases,21834,Comment History,,Comments,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-07T20:30:47Z,2012-09-08T03:37:40Z,"This ticket provides a simple patch for comment history in core.

''The Problem'':  

In at least a few  places:  ([comment:ticket:9117:10], [comment:ticket:15534:4], [comment:ticket:9495:3]) Nacin has mused about the desirability of introducing comment history to core, citing Akismet’s implementation as a model for how this might be done.

There are good reasons for wanting this, as comment history could serve as a solid underpinning for a variety of other features such as more informative moderation emails, some indication of why a message was marked as spam, and even comment versioning.

The idea is that to implement any of that, we really should have basic comment versioning in core, a la Akisment.


''The Solution'':

Our goal was to expand the API so as to reproduce and streamline the basic history functionality provided by Akismet, port and tweak Akismet’s nice history UI, and keep the change set minimal.

Comment history API:

* added simple functions to /wp-includes/comment.php to get and update comment history.  These in turn use existing comment_meta functions.

UI:  

* there’s now a comment history meta box on the comment edit screen.  It looks just like Akismet’s.  This was implemented as a real meta box.  A sorting function is also included.

History Events:

* this patch supports the following history events, each of which has a nice, plain-english (internationalizable) history message, which always includes the user responsible for the action and a timesince. 
 * edit_comment (“edited by user”)
 * trashed_comment (“trashed by user”)
 * untrashed_comment (“un-trashed by user”)
 * comment_unapproved_to_approved (“user approved this comment”)
* comment_approved_to_unapproved (“user unapproved this comment”)
* spammed_comment (“user marked this comment as spam”)
* unspammed_comment (“user marked this comment as ham”)

''Next steps'':

Here’s what we’d think of doing next if this were to be introduced into core:
* support more history events and provide more detail. In particular, support events where the comment is spammed as a result of a blacklist word or other reason.
* include some of this detail in moderation emails

''Note'':

* the Akismet plugin should be updated to use this new API instead of its own history functions
* meta boxes on edit comment did not work properly until this: http://core.trac.wordpress.org/ticket/21499 (in 3.5)

''Who we are'':

This patch comes from [http://profiles.wordpress.org/bbrooks Ben Brooks], [http://profiles.wordpress.org/mattoperry Matt Perry] and [http://profiles.wordpress.org/natebot Nathan Letsinger].  Enjoy",mattoperry
Future Releases,20487,Comment search isn't customizable,,Comments,3.2.1,normal,normal,Future Release,enhancement,new,has-patch,2012-04-18T23:32:07Z,2012-07-12T16:05:07Z,"*cross-posted to the wp-hackers mailing list last night*


I work on a large news oriented WP site and first off, it actually scales remarkably well. We keep users, comments, and actual posts all in WordPress. However, due to our size, administering comments is causing us issues at the moment.

Our last outage was caused by one of our comment moderators doing a simple comment search in the admin. The query took 16 seconds to execute, the next query locked, and, with our traffic, the DB couldn't handle the resulting queued traffic.

Staying away from discussions of ""you should use Disqus"" or, ""you need more X for your mysql server,"" I think there is significant opportunity to improve the way WP handles comment searching. Every comment search takes the following form:

SELECT * FROM wp_comments  WHERE ( comment_approved = '0' OR comment_approved = '1' ) AND (comment_author LIKE '%TERM%' OR comment_author_email LIKE '%TERM%' OR comment_author_url LIKE '%TERM%' OR comment_author_IP LIKE '%TERM%' OR comment_content LIKE '%TERM%') ORDER BY comment_date_gmt DESC LIMIT #;

As we can all see, this is a beast of a query. Even when the term is clearly an specific term (say an email or IP), or when the intent of the admin is known (e.g. clicking the IP link on a specific comment). Furthermore, there are no hooks activated in this process for plugins to use to say create an advanced comment search plugin. One might expect hooks like those activated in post search to be activated here, like ""parse_request"" and ""get_search_query.""

Waxing philosophical, as posts, comments, and users are the three basic types of data to be stored and displayed in WP, one would expect them to have similar interfaces and functionality. They each have basic functionality of being able to retrieve a single item, a list (in full or in part), search for an element, or edit a single entry. For this reason I don't understand why each of their functionality isn't derived from something like an abstract class or an interface. The architecture here is also difficult in that you are not able to replace or extend a single class to change the functionality.

Back on target. I propose that we add functionality by which we'll be able to search by exact match in addition to the existing full wildcard (left, right, or full wildcard is probably excessive) as well as specifying the field to search. This would allow my earlier use case of searching by IP to look for an exact match in the ""comment_author_IP"" field only, not searching the fulltext of every comment.

This functionality can be created simply by:

1. Adding ""search_type"" and ""search_field"" to the WP_Comment_Query::query_vars data structure in wp_includes/comment.php
2. Replacing WP_Comment_Query::get_search_sql with something more robust, able to understand these new properties and construct the query on their basis
3. Upgrading WP_Comments_List_Table::prepare_items to accept the new queries and add them to the data structure it creates
4. Either modifying WP_List_Table::search_box to have some options of advanced search, or dropping a hook so that a plugin can easily modify it
5. Modifying the WP_Comments_List_Table::column_author to supply the correct query string to indicate an IP search

If I can figure out a way to make this more similar to the signature of posts and users, or at least add some hooks at the right places, I can do that as well.

This will add efficiency for everyone--particularly those who have lots of comments. I modified our core for this functionality today and we will fully QA it tomorrow. I made it on 3.2.1 as that is what we're running right now, and there are minimal changes in the affected files and functions between 3.2.1 and 3.3.1 and even the nightly.

I can submit a patch as long as it passes our QA--how should I do that, off the nightly?

Thanks,
-Kenton Jacobsen",brokentone
Future Releases,7051,Delete blacklisted comments rather than mark them as spam,,Comments,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-05-28T11:37:11Z,2011-02-08T04:10:40Z,Comments that are blacklisted because of the Blacklist keys on options-discussion.php should be deleted immediately instead of being marked as spam. Patch attached.,donncha
Future Releases,21758,Do not require a file in comments_template(),,Comments,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-31T20:22:16Z,2012-09-01T11:23:07Z,"comments_template() is a very useful and reliable way to set up comments for a page, but it has a major downfall: it forces a file to be included when, in reality, one does not need to be.

Numerous times it has been the case that I needed comments to be setup in the wp_query object, but did not want to output anything at that time. The hack I have used is simply to include an empty comments.php file. This method is less than desirable for obvious reasons.

So, I propose that we simply add a parameter I'm calling $require that will control whether or not a file is included at all.",mattonomics
Future Releases,11360,Don't nofollow links within the site,,Comments,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-08T12:24:42Z,2010-04-04T06:48:37Z,"Relative links or links with the site's own domain shouldn't be nofollowed.

This use of nofollow is damaging to the site's search engine rankings.",caesarsgrunt
Future Releases,13363,Edit Comments: Pending > Approving shouldn't make them disappear from screen,garyc40,Comments,3.0,normal,normal,Future Release,enhancement,assigned,has-patch,2010-05-11T23:35:45Z,2012-03-08T01:56:30Z,"Edit Comments: Pending > when clicking Approve the comments shouldn't just disappear from the screen.

They should collapse and have an undo status like when you trash or spam a comment.

ENV: WordPress trunk r14573 (3.0-beta2-14565)

",lloydbudd
Future Releases,13450,Filter Comments Link,,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2010-05-19T01:19:50Z,2010-10-28T12:12:51Z,"This filter allows a developer to modify a post's comments link.

Useful for situations where one needs to add or modify components of the URL such as on-click javascript, or changes to the anchor text, etc...",ikailo
Future Releases,23870,Filter Glyph for Comment Required Fields,,Comments,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-27T16:57:51Z,2013-03-31T15:31:37Z,"Currently the `comment-template.php` file uses an asterisk (*) as the default glyph for required fields used in the `comment_form()` function. This glyph is not easily manipulated without having to essentially over-write the entire `comment_form()` function.

I suggest the glyph be filtered. Therefore if one wants to change it, for example, to a hash (#) symbol then they can simply filter the output; or, if for any other reason one might want to enhance the glyph visibility or utility the filter would then allow for this while minimizing the impact on the default comment form.",cais
Future Releases,7054,Generated avatars should not be shown on moderation pages.,ryan,Comments,,normal,normal,Future Release,enhancement,reopened,has-patch,2008-05-28T15:53:22Z,2011-02-01T04:44:25Z,"When moderating a lot of comments or checking the akismet queue the presence of an avatar can assist when checking for spammers. If generated avatars are shown on those pages it will increase the time to check comments and could lead to spam being inadvertently approved.

These 2 pages should not show generated avatars.

/edit-comments.php?comment_status=moderated

/edit-comments.php?page=akismet-admin

This does mean that avatar-free users who have had a previous comment approved would not have their generated avatar shown. In this case their avatar would need to be shown.",podz
Future Releases,10863,Gravatars without email all end up looking generic,,Comments,,low,minor,Future Release,enhancement,new,has-patch,2009-09-26T19:26:36Z,2011-01-06T14:50:54Z,"When your blog has this option turned on

  ""Comment author must fill out name and e-mail""

and multiple users leave comments, if these users do not provide email addresses it will appear that they are all the same user as the identicon/monsterid/etc icons will be the same.

With two additional lines of code, you can substitute the IP address in place of the email to get a unique hash in order to distinguish one anonymous/non-emailed user from another.

Patch is attached",thecodepro
Future Releases,16219,"If you can edit comments on the post, 'Slow down Cowboy' shouldn't kick in",garyc40,Comments,,normal,normal,Future Release,enhancement,assigned,has-patch,2011-01-13T19:05:44Z,2011-01-14T02:51:10Z,Currently it's for administrators only. That doesn't make much sense for those who can already moderate comments.,nacin
Future Releases,22164,"Move comment ""keyboard shortcuts"" setting to comments -> screen options",,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2012-10-11T14:14:23Z,2012-11-22T03:31:45Z,"Seems like it would make more sense to move the comment ""keyboard shortcuts"" setting from ""Your Profile"" to the screen options pane of edit-comments.php.  Something like:

[[Image(http://f.cl.ly/items/1k210Z2V1o0b350I1n0V/keyboard-shortcuts.jpg)]]",lessbloat
Future Releases,12431,Record comment meta in wp_new_comment,,Comments,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-02-28T21:29:43Z,2010-10-28T09:01:14Z,"Spam filter plugins usually trigger on the preprocess_comment filter, which obviously happens prior to storing the comment (and thus prior to knowing comment_ID).

Comment meta would be ideal for storing spam status information, but since the comment_ID isn't known at that point, doing so involves jumping through some hoops.

This patch provides a simple way for spam filters to include comment metadata from preprocess_comment.  They simply include values in a 'comment_meta' array like this:

{{{
add_action('preprocess_comment', 'my_spam_handler');

function my_spam_handler($comment) {
    $comment['comment_meta']['my_spam_status'] = 'not-spam';
    return $comment;
}
}}}

Each key/value pair in the comment_meta array is stored as comment metadata.
",tellyworth
Future Releases,17159,Return meaningful HTTP response for comment submitted with no POST body,,Comments,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-04-17T19:45:03Z,2011-09-10T03:25:52Z,"A POST request to wp-comments-post.php currently returns a HTTP 200 response with an empty body if the body of the request was empty.

The server should die quickly and instruct the requesting agent not to repeat the request without modifications if minimum necessary key(s) are not present on $_POST.

I believe the possible creation of a comment requires at least a comment_post_ID. It's also the first $_POST key checked in the script. If the POST did not supply a comment_post_ID let's stop processing and provide a meaningful response. HTTP 400 Bad Request communicating the failure. Due to the spammy nature of the requestors we may or may not want to provide variable hints in the response.",niallkennedy
Future Releases,17913,Site-level comment options may override individual post settings. Improve communication.,,Comments,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-06-27T20:46:43Z,2011-06-27T20:46:43Z,"Post comments may be automatically closed for a  site's posts if site option 'close_comments_for_old_posts' is true and the post was published before 'close_comments_days_old' days ago. These two options are set in options-discussion and override the 'comment_status' of an individual post.

The edit posts screen's comment meta box displays comments open/close status, allowing publishers to open or close comments for a single post. It's possible the site-level discussion settings will override the individual post yet we still might display a different post comment status than the site settings allow.

1. Enable site-level option to close comments on articles ( wp-admin/options-discussion.php#close_comments_for_old_posts )
1. Enter a days value of 1 for maximum impact
1. Edit a post published over a day ago
1. View the Discussion meta box ( #commentstatusdiv )
1. Interact with the 'comment_status' field

I would like to better communicate expected failure and let the post author or editor know this particular setting has been overridden at the site options level. If the current user can manage options I might you could link to the override in the options page.

I created a new test blog, set comments to auto-close after a day, and checked allow comments in the post screen. I was wondering why comments_open() was false for the post when I was looking at a checked box on the post screen.",niallkennedy
Future Releases,17020,Some comment queries are not filterable,,Comments,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-04-02T16:56:32Z,2011-05-09T23:21:46Z,"Although WP_Comment_Query::query() is fully filterable, some supplemental comment queries are still unfilterable.  The submitted patch adds the following hooks:

 * function get_approved_comments() - query filter 'get_approved_comments_query'

 * function wp_dashboard_recent_comments() - query filter 'dashboard_recent_comments_query'",kevinB
Future Releases,17862,The second argument for wp_notify_postauthor() is unnecessary,,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-21T17:04:39Z,2011-06-21T17:04:39Z,Only the comment id is needed. See patch.,scribu
Future Releases,17275,UI: Missing comments count in admin screen,,Comments,3.2,normal,normal,Future Release,enhancement,assigned,has-patch,2011-04-29T13:00:48Z,2013-02-23T11:29:14Z,See Attached image.,ramiy
Future Releases,10653,Update comment_author when display_name changes,,Comments,,normal,normal,Future Release,enhancement,reopened,has-patch,2009-08-19T19:43:29Z,2010-12-18T11:08:18Z,One thing that has bothered me recently is the fact that your previous comments doesn't get updated when your display_name is being updated. Which could cause some confusion. I wrote a function (see attached file for further reference) that takes care of this but I would love to see a similiar feature in the WordPress core.,mptre
Future Releases,19623,"Use Comment API in comments_template, rather than hardcoded SQL",,Comments,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-20T18:07:44Z,2012-08-14T08:36:00Z,"Currently the function {{{comments_template}}} uses hard-coded SQL queries, rather than {{{WP_Comment_Query}}} or {{{get_comments}}}. There's a note above the queries saying [http://core.trac.wordpress.org/browser/tags/3.3/wp-includes/comment-template.php#L888 /** @todo Use API instead of SELECTs. */].

To replace the queries using the API, the {{{WP_Comment_Query}}} class will need to be extended to allow querying for comments which are '''either''' approved '''or''' unapproved ({{{hold}}} status) but by a particular comment author email and comment author name ''or'' by a particular {{{user_id}}} to replace these two queries:

* {{{SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND (comment_approved = '1' OR ( user_id = %d AND comment_approved = '0' ) )  ORDER BY comment_date_gmt}}}
* {{{SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND ( comment_approved = '1' OR ( comment_author = %s AND comment_author_email = %s AND comment_approved = '0' ) ) ORDER BY comment_date_gmt}}}

If we change to use the API, there's also an opportunity to add a filter for the args, which would be lovely for plugin developers. :)",simonwheatley
Future Releases,10931,Verify Comment Email Addresses of Registered Users,,Comments,2.8.4,normal,normal,Future Release,enhancement,assigned,has-patch,2009-10-08T14:34:44Z,2013-01-13T21:45:07Z,"When leaving a comment with an email address of a registered user, WordPress should force the visitor to login or change the email address in the comment form.

Anyone can impersonate a blog's user if they know the user's email address.",mtdewvirus
Future Releases,21010,View Post Link on edit-comments.php,mordauk,Comments,3.4,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-06-18T15:10:27Z,2012-12-23T03:47:41Z,"Anytime I approve a comment, I'm always irritated by the fact that there isn't a ""View Post"" link anywhere that links to the live post on the front end. The title of the post, such as ""Hello World"", is shown, but it links to post.php.

A lot of times I want to read back through the original post before I answer the comment, and I'd prefer to do that on the live site, not the admin, so I think there needs to be a ""View Post"" link next to the post title that links to the live site.",mordauk
Future Releases,17928,"When a comment is spammed/trashed, change the parent of it's children",,Comments,3.2,normal,normal,Future Release,enhancement,assigned,has-patch,2011-06-29T06:42:11Z,2012-03-08T02:17:19Z,"When removing (spam/trash) a comment that has children, everything goes to hell in terms of hierarchy and you're left with a bunch of orphaned comments.

See two attached images for what currently happens after removing a comment that has children.

When a comment is removed, all immediate children of the comment to be removed should have their parent changed that of the the parent of the comment being removed (or top level if the comment to be removed is top level). Each comment that has it's parent changed then gets that action logged to it's post meta so that it can be moved back in the case of it's previous comment being restored (on post un-delete/spam, find all matching comment metas).",Viper007Bond
Future Releases,12104,edit-comments.php not available to roles with proper capabilities,,Comments,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-01-31T22:25:24Z,2012-10-12T15:49:22Z,"I tried to create a Comment Moderator role today and realized it wouldn't work. My intention was to create a role for people who can't write or edit posts, but can keep an eye on the comment threads. I created the role like so:

{{{
#!php
add_role('moderator', 'Moderator', array(
            'read' => 1,
            'moderate_comments' => 1,
        ));
}}}

... then created a new user with that role. When I logged in as my test user, I realized that it was for all intents and purposes a Subscriber. I couldn't see any admin panels but the Dashboard, my profile, and the Tools. I went poking around in edit-comments.php and discovered that it's checking for another capability altogether: 

{{{
#!php
if ( !current_user_can('edit_posts') )
	wp_die(__('Cheatin&#8217; uh?'));
}}}

I double-checked wp-admin/includes/menu.php and it agreed that 'edit_posts' was the minimum capability to see this page, so I tried adding 'edit_posts' to my new role, and I still couldn't get there.

Later on in edit-comments.php, when actually trashing a comment, there is a check for 'moderate_comments', but it's a moot point: this screen doesn't even show up in the admin menu, and if you navigate directly to it, you'll get the ""You do not have sufficient permissions to access this page"" message.

I thought it was entirely possible I'd missed some finer point of creating roles, so I redid it with Justin Tadlock's excellent Members plugin, and that didn't work either.

This behavior might be intentional, but if so, I'm not following the logic. I know roles are due for an overhaul in the next version or two.",sillybean
Future Releases,19893,get_comments_link() doesn't link properly if there are no responses,,Comments,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-01-25T03:35:53Z,2012-01-25T13:13:12Z,"Since the current implementation of get_comments_link() simply returns the permalink with `#comments` appended to the end of it, and the HTML element with an ID of `comments` only exists when existing comments are wrapped inside of it, it doesn't lead to anything when there are 0 comments on the post.

I've attached a patch that checks whether there are any comments on the post or not; and, if not, it appends `#respond` to the end of the link; otherwise it appends `#comments`.",cgrymala
Future Releases,14697,wp_list_comments not fully HTML5-friendly,,Comments,3.0.1,normal,minor,Future Release,enhancement,new,has-patch,2010-08-25T16:33:37Z,2012-07-04T09:47:48Z,"Currently, wp_list_comments supports ol, ul, and div as ""styles"" of nesting for threaded comments. While HTML5 is new enough that good markup practices are not entirely settled, the closest thing I've seen to a consensus is nested article elements.

This is currently not possible (except perhaps through a callback). Making it work right would also require inserting the comment classes as part of wp_list_comments' operation, which might require another parameter to turn it on.

I'm sure there are other WP functions that could use expanding to accommodate good HTML5 markup, but this is what jumped out at me.",adamrice
Future Releases,18471,Add action hook after cron processed it's jobs,,Cron,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-18T12:30:19Z,2012-10-15T01:26:35Z,Sometimes it's hard to debug cron jobs or validate the results. A simple action fired after the wp-cron.php did his magic could help improve this experience.,tott
Future Releases,21072,CRON often returns ambiguous values,,Cron,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-26T02:18:27Z,2012-06-26T06:18:34Z,"Many of the cron API functions return ambiguous values.  For example, `wp_cron()` [http://core.trac.wordpress.org/browser/tags/3.4/wp-includes/cron.php#L251 returns] `null` (explicitly) when cron doesn't run, but it also returns `null` (implicitly) every other time.  This can make debugging harder.

Whenever possible, I think it's valuable to return meaningful values.  The attached patch does that.",evansolomon
Future Releases,15148,Cron Storage Abstraction,,Cron,,normal,normal,Future Release,enhancement,new,has-patch,2010-10-19T04:04:00Z,2011-06-02T07:03:36Z,Abstract cron storage to allow pluggable storage schemes.,ryan
Future Releases,18736,Add REGEXP to 'compare' values in meta_query,,Database,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-21T15:39:51Z,2013-01-16T23:18:07Z,"I wish to sort some queries using the alphabet.

My current query:
{{{
#!php
$getPostIds = $wpdb->get_col(""
    SELECT p.ID
    FROM $wpdb->posts p, $wpdb->postmeta pm
    WHERE p.ID = pm.post_id 
    AND pm.meta_key = 'prod-id' 
    AND pm.meta_value
    REGEXP '^"" . $wpdb->escape($alpha) . ""'
    AND p.post_status = 'publish' 
    AND p.post_type = 'review'
    AND p.post_date < NOW()
    ORDER BY pm.meta_value ASC""
);

$posts = new WP_Query(array(
    'post__in' => $getPostIds,
    'post_type' => 'review',
    'post_status' => 'publish',
    'showposts' => 20,
    'paged' => $paged,
    'caller_get_posts' => 1, // do not order sticky posts at the top
    'orderby' => 'title',
    'order' => 'ASC'
));
}}}

It would be much simpler if I could use the equivalent with meta_query:
{{{
#!php
query_posts(array(
    'post_type' => 'review',
    'post_status' => 'publish',
    'showposts' => 20,
    'paged' => $paged,
    'caller_get_posts' => 1, // do not order sticky posts at the top
    'orderby' => 'metal_value',
    'order' => 'ASC',
    'meta_query' => array(
        array(
            'key'   => 'prod-id',
            'value' => '^'.get_query_var('letter'),
            'compare' => 'REGEXP'
        )
    )
));
}}}

I'd love to see it implemented :)
Thanks!",FlashUK
Future Releases,18315,Add an index to the GUID column in the posts table,,Database,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-02T04:31:01Z,2011-08-02T05:09:12Z,"Running queries on the GUID column in the posts table is slow because the column is not indexed. The attached patch adds an index.

Note, this affects ticket #18286 - I will update that ticket with appropriate patches to reflect this request.",alexkingorg
Future Releases,13657,When WP_DEBUG is true show better errors for establishing database connection,ryan,Database,,low,trivial,Future Release,enhancement,new,has-patch,2010-05-31T16:26:04Z,2012-12-30T09:35:09Z,"Right now no matter if WP_DEBUG is enabled or not we always show some generic errors for Error establishing a database connection

We should display the specific error when WP_DEBUG is enabled.",sivel
Future Releases,10404,dbDelta creates duplicate indexes when index definition contains spaces,,Database,2.8.1,normal,normal,Future Release,enhancement,new,has-patch,2009-07-14T10:59:54Z,2013-03-25T12:24:45Z,"I was adding a much needed index in wp_object_term_relationships, and testing revealed it was getting added multiple times.

This works as intended:

{{{
CREATE TABLE $wpdb->term_relationships (
 object_id bigint(20) unsigned NOT NULL default 0,
 term_taxonomy_id bigint(20) unsigned NOT NULL default 0,
 term_order int(11) NOT NULL default 0,
 PRIMARY KEY  (object_id,term_taxonomy_id),
 UNIQUE KEY reverse_pkey (term_taxonomy_id,object_id),
 KEY term_taxonomy_id (term_taxonomy_id)
) $charset_collate;"");
}}}


This doesn't:

{{{
CREATE TABLE $wpdb->term_relationships (
 object_id bigint(20) unsigned NOT NULL default 0,
 term_taxonomy_id bigint(20) unsigned NOT NULL default 0,
 term_order int(11) NOT NULL default 0,
 PRIMARY KEY  (object_id,term_taxonomy_id),
 UNIQUE KEY reverse_pkey (term_taxonomy_id, object_id),
 KEY term_taxonomy_id (term_taxonomy_id)
) $charset_collate;"");
}}}

the only difference between the two is a space in the reverse_pkey column list. we should remove spaces in there to avoid potential bugs.",Denis-de-Bernardy
Future Releases,20634,dbDelta is unforgiving about field declarations,,Database,1.5,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-05-08T03:27:05Z,2012-05-24T07:31:40Z,"the variable type is case sensitive:
int(22) != INT(22)

the mysql type BOOL or BOOLEAN comes back from the db as tinyint(1):
tinyint(1) != BOOLEAN

Not a huge issue, just annoying. Makes dbDelta fire off unnecessary sql.
 ",SidHarrell
Future Releases,14273,maybe_create_table cleanup,pento,Database,3.0,normal,normal,Future Release,enhancement,assigned,has-patch,2010-07-11T13:08:09Z,2012-08-08T07:47:23Z,"Cleaned up maybe_create_table() - no more iterations.
Cheers. Dragoonis aka Dr4g(irc).",dragoonis
Future Releases,20223,simulate mysql_real_escape_string when not yet connected to DB,,Database,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-13T09:16:53Z,2012-05-16T19:49:33Z,"Currently wpdb::_real_escape() falls back to addslashes() when you're not yet connected to the database

Instead, have it fall back to a closer mimic of mysql_real_escape_string():

Use this to make patch:
http://pastebin.com/5vMaBhQe

Reference: 
http://dev.mysql.com/doc/refman/5.0/en/mysql-real-escape-string.html
http://www.php.net/manual/en/function.mysql-real-escape-string.php",scottconnerly
Future Releases,15158,wpdb insert & update with null values,sorich87*,Database,3.0.1,normal,normal,Future Release,enhancement,accepted,has-patch,2010-10-19T20:47:51Z,2013-01-08T13:39:21Z,"From: http://wordpress.org/support/topic/bug-fix-wpdb-insert-amp-update-with-null-values

""Some of you might have noticed but the wpdb's insert & update methods don't work well with null value (if you try to set null on a numeric field you'll end up with 0)""
",westi
Future Releases,5932,"wpdb should reconnect and retry query when ""MySQL server has gone away""",pento,Database,3.0,normal,normal,Future Release,enhancement,assigned,has-patch,2008-02-20T08:17:01Z,2012-11-07T06:15:56Z,"Using 2.3.3, here are the type of errors that crop up in error_log everyday. 


{{{

[25-Jan-2008 08:37:35] WordPress database error MySQL server has gone away for query UPDATE wp_options SET option_value = '0' WHERE option_name = 'doing_cron'
[25-Jan-2008 09:23:19] WordPress database error MySQL server has gone away for query UPDATE wp_options SET option_value = '0' WHERE option_name = 'doing_cron'
[26-Jan-2008 00:03:54] WordPress database error MySQL server has gone away for query UPDATE wp_options SET option_value = '0' WHERE option_name = 'doing_cron'
[26-Jan-2008 00:04:29] WordPress database error MySQL server has gone away for query SELECT * FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_pingme' LIMIT 1
[26-Jan-2008 00:04:29] WordPress database error MySQL server has gone away for query SELECT * FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_encloseme' LIMIT 1
[26-Jan-2008 00:04:29] WordPress database error MySQL server has gone away for query SELECT ID FROM wp_posts WHERE CHAR_LENGTH(TRIM(to_ping)) > 7 AND post_status = 'publish'
[26-Jan-2008 00:05:09] WordPress database error MySQL server has gone away for query SELECT * FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_pingme' LIMIT 1
[26-Jan-2008 00:05:09] WordPress database error MySQL server has gone away for query SELECT * FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_encloseme' LIMIT 1
[26-Jan-2008 00:05:09] WordPress database error MySQL server has gone away for query SELECT ID FROM wp_posts WHERE CHAR_LENGTH(TRIM(to_ping)) > 7 AND post_status = 'publish'
[26-Jan-2008 00:05:47] WordPress database error MySQL server has gone away for query SELECT * FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_pingme' LIMIT 1
[26-Jan-2008 00:05:47] WordPress database error MySQL server has gone away for query SELECT * FROM wp_posts, wp_postmeta WHERE wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = '_encloseme' LIMIT 1
[26-Jan-2008 00:05:47] WordPress database error MySQL server has gone away for query SELECT ID FROM wp_posts WHERE CHAR_LENGTH(TRIM(to_ping)) > 7 AND post_status = 'publish'
.................
}}}
",dtc
Future Releases,9272,Expand human_time_diff()'s abilities,Viper007Bond,Date/Time,2.8,normal,normal,Future Release,enhancement,new,has-patch,2009-03-04T10:42:21Z,2013-03-08T17:21:44Z,"This is partially related to #7250.

Currently `human_time_diff()` can only do days, hours, and minutes. I propose we expand it a bit, to at least weeks and possibly even months and years (although that can be tricky unless PHP has a shortcut).

It should also support the ability to trim to a certain accuracy, i.e. for a 2 year 1 month old post, minutes don't matter.

In short, I propose we integrate Time Since's functionality into the core by expanding the current `human_time_diff()`.",Viper007Bond
Future Releases,21653,Introduce current_date(),,Date/Time,,low,normal,Awaiting Review,enhancement,new,has-patch,2012-08-21T19:33:59Z,2013-01-07T09:25:24Z,"WordPress comes with a function called `current_time()` which returns the current time according to the timezone chosen on the General Settings screen. It's used when populating the post date, among other things.

It would be nice to have a date equivalent of this function for outputting the current date according to the timezone setting. Currently if you want to output the current date you need to do this:
{{{
echo date( 'd/m/Y', current_time( 'timestamp' ) );
}}}
I'd like to be able to use this instead:
{{{
echo current_date( 'd/m/Y' );
}}}

Note that just using `date()` doesn't give the desired effect as WordPress sets the default timezone (as used by `date()`) to UTC, not to the timezone chosen on the settings screen.",johnbillion
Future Releases,14808,Add Editor Documentation Functions URL for theme-defined functions,,Editor,,normal,normal,Future Release,enhancement,new,has-patch,2010-09-08T00:57:20Z,2011-08-25T00:15:44Z,"Currently, functions that are called within template files shown on the editor are included in the list of functions that you can try and lookup documentation for.

(The $ignore_functions array only seems to be for functions defined, not called, in a file.)

As the http://api.wordpress.org/core/handbook/1.0/?function=... seems to be hard-coded in, it's not possible for themes to overwrite it for functions they've defined.

Is it possible to allow themes to define where the documentation lookup should be for their own functions?",GamajoTech
Future Releases,22924,Add filter to theme editor accepted files,,Editor,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-13T21:35:48Z,2013-02-22T20:41:09Z,"Proposing adding a filter to theme-editor.php so theme authors can add to the list of files that are editable. ie html/less/js files.

Hers an example of what could be possible:
{{{
add_filter( 'wp_theme_editor_filetypes', 'add_my_filetype', 10, 2 );
function add_my_filetype( $allowed_types, $theme ) {
	
	$extra = $theme->get_files( 'less', 1 );
	return $allowed_types += $extra;
}
}}}",pross
Future Releases,7665,Add jQuery UI's datepicker() where applicable,chsxf,Editor,2.7,lowest,minor,Future Release,enhancement,assigned,has-patch,2008-09-01T09:32:03Z,2013-05-14T07:48:59Z,"Obviously it'll need some skinning, but it's handy dandy:

http://jqueryui.com/demos/datepicker/

It'd be slick to have that for choosing dates (for example publish dates). We should still allow manual entry though.",Viper007Bond
Future Releases,11268,Allow Image Map in KSES,,Editor,2.9,low,minor,Future Release,enhancement,new,has-patch,2009-11-26T00:12:31Z,2010-03-31T08:50:20Z,Add image maps in allowed post tags.,mtdewvirus
Future Releases,19992,Auto-fill URL field on Insert/edit link popup,,Editor,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-08T22:38:14Z,2012-11-26T00:14:21Z,"I'd like to see the following behavior: When I select a plain URL or email address in the editor and click on ""Insert/edit link"" the URL field is already populated with either the URL or with a ""mailto:<email-address>"". Any thoughts? I'd more than happy to write a patch.",tillkruess
Future Releases,15631,Custom fields auto-focus,,Editor,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-01T19:02:16Z,2013-01-22T15:23:25Z,"When you are on the post editor (page editor, whatever), if you want to create a new custom field and click on Create New, it should auto-focus on the text input field that appears. ",jane
Future Releases,14640,"Feature Requst:  Add Action Hook ""post_submitbox_end""",,Editor,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-08-18T21:09:53Z,2013-01-10T02:55:26Z,"I'd like to add a button UNDER the Publish button on an edit post page.  There is an action for adding a button (or other elements) BEFORE the Publish button (post_submitbox_start), but I'd like one at the end.  I know that I can address this w/ CSS if necessary, but it would be nice to be able to position my button in the HTML as well.",ancawonka
Future Releases,22980,Get Shortlink button should be appended using the get_sample_permalink_html filter,,Editor,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-17T18:39:43Z,2012-12-17T18:49:00Z,"Currently the Get Shortlink button is appended directly to the output of get_sample_permalink_html(), which makes it impossible (without CSS/JS) to append items to the HTML.

The get_sample_permalink_html filter should be used inside of 
[source:/trunk/wp-admin/edit-form-advanced.php?rev=23180#L334 edit-form-advanced.php] so the user has complete control over the generated output.",coreygilmore
Future Releases,18423,Make internal linking's River + Query constructors public,koopersmith,Editor,3.2,normal,normal,Future Release,enhancement,reviewing,has-patch,2011-08-16T02:00:07Z,2011-12-19T00:24:45Z,"...and restructure them so that they're slightly more configurable, i.e. making the AJAX endpoint URL and result rendering overrideable.",mitchoyoshitaka
Future Releases,18306,Make sample permalink clickable,,Editor,3.2,normal,normal,Future Release,enhancement,new,has-patch,2011-07-31T14:41:39Z,2012-11-01T20:02:13Z,"Following the lead from #17282, the ""View Post"" button next to the sample permalink is also just a link to another screen.

I propose we get rid of it and make the sample permalink itself clickable",scribu
Future Releases,23171,Add Meetup.com oEmbed support,,Embeds,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-10T12:21:01Z,2013-04-25T23:19:37Z,"Given the number of meetups people are doing around the world I think it would be nice to add Meetup.com to the list of oEmbed providers.

http://www.meetup.com/meetup_api/docs/oembed/

Currently there is a ''minor issue'' with their oEmbed API as it fails when the Meetup group has a custom domain for the group. I've had to do some ''dodgy'' code for our Aussie custom domains to get around that:

https://github.com/BronsonQuick/wpaustralia/blob/master/plugins/wpoz-meetups/wpoz_meetups.php

Seeing their is a new agreement between http://make.wordpress.org/events/ and Meetup.com hopefully one of the Automatticians can let Meetup.com know that their API needs a patch for custom domains ;)",sennza
Future Releases,23442,Allow wp_remote_get args to be filtered for oEmbed calls,,Embeds,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-10T21:48:10Z,2013-02-15T20:36:04Z,"Currently, the oEmbed code use wp_remote_get() to communicate with the oEmbedded service. However, there's no way to filter the arguments that get used - it simply uses the system wide defaults. 

Filtering the defaults (E.g. http_request_timeout) seems overkill when you know that you only want to change things for something specific like an oEmbed call that you know may take longer than 5 seconds (E.g. 
https://github.com/leewillis77/wp-github-oembed/blob/1.2/github-api.php#L35)

The attached patch adds a new filter oembed_remote_get_args which allows plugins to override the wp_remote_get args for oembed calls (Including discovery)",leewillis77
Future Releases,20206,WXR unnecessarily includes all post authors,,Export,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-09T01:06:58Z,2012-03-09T02:26:14Z,"If you're exporting just one post type (from Tools -> Export), the resulting WXR file still includes all authors from the posts table, regardless if they are the author of a post of the post type being exported. This can be particularly noticable for Pages (which are often only authored by a small number of different users on the site) and for custom post types.

This means when you subsequently import the file you'll be asked to map a complete list of all authors from the exported site, even if they have no posts in the WXR file being imported.",johnbillion
Future Releases,18909,Bundled jQuery UI should have CSS,,External Libraries,3.3,normal,normal,Future Release,enhancement,assigned,has-patch,2011-10-11T18:53:57Z,2013-05-13T16:14:29Z,"Now that all of jQuery UI is in core, matching CSS should also be included for use in the admin in both color schemes.

Related: #17952",helen
Future Releases,19719,PHPMailer allows invalid characters in display-name,westi,External Libraries,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-03T16:06:27Z,2012-01-03T16:06:27Z,"[http://tools.ietf.org/html/rfc5322 RFC5322] defines the display name portion of an email address as follows:

{{{
display-name => phrase
phrase => word / obs-phrase
obs-phrase => word / whitespace / dot
word => atom / quoted strings
atom => whitespace / atext
atext => 

                       ALPHA / DIGIT /    ; Printable US-ASCII
                       ""!"" / ""#"" /        ;  characters not including
                       ""$"" / ""%"" /        ;  specials.  Used for atoms.
                       ""&"" / ""'"" /
                       ""*"" / ""+"" /
                       ""-"" / ""/"" /
                       ""="" / ""?"" /
                       ""^"" / ""_"" /
                       ""`"" / ""{"" /
                       ""|"" / ""}"" /
                       ""~""
}}}

So, the display-name can contain the list of characters defined as atext plus dots plus whitespace plus quoted stringss.

Notable exclusions include things like >, <, ( and ). At present, PHPMailer does no validation of the display-name field. The attached patch adds validation that does the following:

* Make sure we decode any utf8 characters
* Compare the original value against a value with invalid characters stripped out
* Fail validation if the original and the stripped version do not match (ie, we stripped something invalid, so the string must have been invalid)

The patch does not handle assuring proper pairing of quoted strings (it doesn't validate that quotes nest properly or occur only in pairs).

The following code works for testing the patch:

{{{
<?php

require_once 'class-phpmailer.php';
require_once 'class-smtp.php';

$to_address = 'dllh@mailinator.com';
$to_name = 'DLLH';
$from_address = 'dllh@mailinator.com';
$from_name = 'DLLH test';
$subject = 'PHPMailer display-name validation test';
$body = ""To Address: $to_address\nTo Name: $to_name\nFrom Address: $from_address\nFrom Name: $from_name"";

try {
        $phpmailer = new PHPMailer( true );
        $phpmailer->AddAddress( $to_address, $to_name );
        $phpmailer->SetFrom( $from_address, $from_name );
        $phpmailer->Subject = $subject;
        $phpmailer->Body = $body;
        $phpmailer->Send();
} catch ( phpmailerException $e ) {
        print_r( $e->getMessage() );
}
}}}

To provoke an error, add a disallowed character such as > or ) to one of the _name variables. The code will bail with an invalid_display_name exception.",dllh
Future Releases,16668,SWFUpload 2.2.1,,External Libraries,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-02-25T20:38:07Z,2011-09-19T15:24:55Z,"Update SWFUpload to version ""2.2.1 2009-03-30"" from ""2.2.0 2009-03-25.""

Changes how settings are passed to functions, using function scope instead of object scope. Looks like some other code simplification during those five days.

[http://code.google.com/p/swfupload/source/browse/swfupload/trunk/core/ SWFUpload repo]

Updates the SWF as well. Looks like an ExternalInterface change based on project commits.

Files swfupload-all.js and handlers.js left as is since they are not part of the external repo. If swfupload-all.js is a rollup it should obviously be updated.",niallkennedy
Future Releases,16026,Stop using ereg() and eregi(),NorwayFun,External Libraries,,normal,minor,Future Release,enhancement,new,has-patch,2010-12-29T16:48:39Z,2011-04-23T23:59:46Z,"see attached file. ereg(), eregi() and so on deprecated functions was replaced by mb_ suffix ones. also, checker for set_magic_quotes_runtime
disabler for 5.2 and 5.3 series PHP included",NorwayFun
Future Releases,23944,Update to latest jquery.form,,External Libraries,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-04T21:16:51Z,2013-04-04T21:37:17Z,"Any chance of getting the included jquery.form update to the latest version?  We keep running into various script errors (mostly access) within jquery.form with IE.  Updating to the latest jquery.form corrects these errors.

WP using version 2.73 and the latest is 3.32

Thanks for consideration...",usermrpapa
Future Releases,17150,Atom category terms and labels,,Feeds,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-16T22:46:37Z,2011-04-16T22:46:37Z,"An [http://tools.ietf.org/html/rfc4287#section-4.2.2 Atom category] supports both machine-facing and human-facing text through its 'term' and 'label' attributes respectively. WordPress Atom template currently outputs category or tag name as the 'term' attribute. I would like to output the category or tag's slug as 'term' and its name as 'label'

Before:
<category scheme=""!http://wordpress.org/"" term=""Open Source"" />

After:
<category scheme=""!http://wordpress.org/"" term=""open-source"" label=""Open Source"" />

Attached is a patch for get_the_category_rss() inside wp-includes/feed.php. I constructed an associative array with slug as the key and name as the value. The slug column is a unique key on the terms table and can also be used to enforce uniqueness in the array.

A possible downside: it's possible two entry categories or tags might have the same name, which would produce two identical outputted lines in RSS 2.0 and RDF feeds while correcting the previous lossy behavior in the Atom feed.",niallkennedy
Future Releases,19890,Filter auto enclosure links before processing,,Feeds,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-01-24T21:37:48Z,2012-01-24T21:44:05Z,"[http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/functions.php#L1182 The do_enclose() function] looks through post content for enclosure-worthy URLs, requests the URLs it finds, and stores in post meta.

I use sample code and dummy URLs in my posts: e.g. !http://example.com/song.mp3. Right now `do_enclose()` finds the mention of the MP3, adds it to post meta, which later outputs in `rss_enclosure()` or `atom_enclosure()`. If I want to remove the enclosure from final markup I can attach to the `added_postmeta` action to remove a value after it was requested and inserted or act on the markup generated by `rss_enclosure()` or `atom_enclosure()` by emptying the string.

I would like to filter out the auto-discovered enclosure link before it is processed by !WordPress, looked up in the database, and HEAD requested. If a filter existed on the parsed enclosure links I could remove links from dummy domains such as ""example.com.""",niallkennedy
Future Releases,9510,Multiple feed fixes and enhancements,,Feeds,2.7.1,high,major,Future Release,enhancement,new,has-patch,2009-04-11T09:36:47Z,2009-11-17T20:28:06Z,"Currently, the feed always returns the same subtitle, self link, alternate link and replies link no matter what the page type is. I think they should be different for each page type.",peaceablewhale
Future Releases,13867,New filter for comment RSS feed's title,,Feeds,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-12T21:53:07Z,2010-10-28T12:18:31Z,"I'd like to be able to customize comments titles in RSS feed.

Currently it's hardcoded and has no way to be changed, so I added 2 new filters so that plugins can edit them.

I've tested and patch is working for me.",shidouhikari
Future Releases,7092,Should support separate setting for limiting comments feed,,Feeds,2.9,normal,normal,Future Release,enhancement,reopened,has-patch,2008-06-04T15:48:34Z,2010-05-14T13:07:07Z,"Right now the comments feeds are throttled by the same limiting number the user chooses for ""posts feeds"" (posts_per_rss).

It makes sense that a blog owner would want to set a higher threshold for comments than for posts, for these reasons:

- Readers who subscribe to comment feeds are fewer in number and less likely to burden the system in aggregate.

- Comments are typically shorter per entry than posts are.

- Comments are liable to expand much more quickly than posts, making it difficult for readers to ""keep up"" without wrapping past the limit.

For instance in my blog I limit post feeds to 10 entries, but I'd like to offer a much larger limit for comments subscribers.

Establishing a ""comments_per_feed"" variable that is used in place of the ""posts_per_rss"" would accomplish this.

",redsweater
Future Releases,14493,"do_enclose() can ping the same URL many times, can't filter URLs to ping",nacin*,Feeds,3.0.1,normal,normal,Future Release,enhancement,accepted,has-patch,2010-07-31T18:52:01Z,2012-11-07T09:14:47Z,"If the same URL is included in a post several times, do_enclose() can check that URL for inclusion as a possible enclosure several times.

Additionally, there's no way to filter what URLs do_enclose() should ping for possible inclusion as enclosures.

Attached adds an array_unique() call to do_enclose().

Attached adds a {{{do_action_ref_array( 'pre_enclose', array( &$post_links, &$pung ) )}}} hook to allow filtration of URLs to ping.  (Matches the pre_ping hook.)

do_enclose() has several more problems this patch addresses.

 1. Correct non-functional DELETE FROM postmeta query (bad use of wpdb::prepare()).
 2. Use like_escape() in several LIKE queries.
 3. Add an {{{apply_filters( 'enclosure_mime_types', array( 'video', 'audio' ) )}}} hook.
 4. Currently do_enclose() doesn't allow root URLs as enclosures (e.g. http://example.com/), only URLs with a non-trivial path or query.  Move that functionality to the new pre_enclose filter.
 5. Efficiency improvements in conditional logic.
 6. Clean up code by reducing control structure nesting depth.",mdawaffe
Future Releases,21403,"Introduce wp_scandir, remove opendir / closedir code",,Filesystem,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-28T08:57:20Z,2012-07-29T18:29:23Z,"There is {{{@opendir}}} code all over the place that is not standardized. On top of that, there is plenty of code that is duplicated and could be condensed into one handy function. Plus, in all of the places we are using {{{opendir()}}}, we really want to be using {{{scandir()}}}. 

I have created a master function in {{{load.php}}} called {{{wp_scandir()}}} that does the basics:
* scans a directory for files / subdirectories
* filters list by extension(s)
* optionally returns ONLY files

This cleans up code in many places.",wonderboymusic
Future Releases,22267,Make trailingslashit() and untrailingslashit() work with backslashes,,Filesystem,2.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-24T04:09:58Z,2013-02-24T22:19:38Z,"#20778 demonstrates that untrailinhslashit(), hence trailingslashit(), are unable to remove a trailing backslash from file paths on Windows.

As Windows accepts a slash as directory separator, DIRECTORY_SEPARATOR is not needed to make portable code, except when parsing or exploding a path that comes from the system [http://alanhogan.com/tips/php/directory-separator-not-necessary]. We neeed to tell trailingslashit() and untrailingslashit() that we want to remove the trailing slash a file path from system, not a generated one and not a URL path.

My idea is:
{{{
function untrailingslashit( $string, $is_path = false ) {
    if ( $is_path )
        return rtrim( $string, DIRECTORY_SEPARATOR . '/' );
    else
        return rtrim( $string, '/');
}

function trailingslashit( $string, $is_path = false ) {
    if ( $is_path )
        return untrailingslashit( $string, $is_path ) . DIRECTORY_SEPARATOR;
    else
        return untrailingslashit( $string ) . '/';
}
}}}

Expected results that is true:

{{{
  trailingslashit( '/mypath'  ) == '/mypath/'
  trailingslashit( '/mypath/' ) == '/mypath/'
  trailingslashit( '/mypath//') == '/mypath/'
untrailingslashit( '/mypath/' ) == '/mypath'
untrailingslashit( '/mypath//') == '/mypath'
  trailingslashit( '/usr/tmp/', true ) == '/usr/tmp/' // On non-Windows
  trailingslashit( '/usr/tmp',  true ) == '/usr/tmp/' // On non-Windows
  trailingslashit( '/usr/tmp//',true ) == '/usr/tmp/' // On non-Windows
  trailingslashit( 'C:\TEMP',   true ) == 'C:\TEMP\'  // On Windows
  trailingslashit( 'C://TEMP//',true ) == 'C://TEMP\' // On Windows
  trailingslashit( 'C:/TEMP/',  true ) == 'C:/TEMP\'  // On Windows
untrailingslashit( 'C:\TEMP\',  true ) == 'C:\TEMP'   // On Windows
}}}

On Windows, for making a path to $subdir one may use either

{{{
$path = trailingslashit( $path, true ) . $subdir;
$path = untrailingslashit( $path, true ) . '/' . $subdir;
}}}
according to preference in the situation, knowing that '/' is a valid separator in any case.

The added DIRECTORY_SEPARATOR in trailingslashit() code suggestion above could be '/', but it might produce an unexpected result, some someone when deliberately wants to make a true native path for the system.

The second parameter to rtrim() in untrailingslashit() should instruct rtrim() to remove both characters, as we cannot assume a Windows file path is always delimited or trailed with ""\"".

I will make the patch, and will test the all the expected results on Windows and Linux. That is, if I am not convinced this is no way to go (adding optional parameters and ""messing"" with an old formatting function).

== Alternatives ==

We could make untrailingslashpath() and trailingslashpath() which assumes a path string, and no extra argument. This would require, at least softly, a replace all over the code, where a path is to be (un)trailingslashed.

We could make untrailingbackslashit() and trailingbackslashit() instead, but this would force us to check either DIRECTORY_SEPARATOR or $is_win before selecting which function to use, bloating code all over the place. A good helper function should be a real help, especially in edge cases.
",knutsp
Future Releases,14102,Additional CSS class in wp_list_pages when a page has children,,Formatting,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-26T13:28:23Z,2010-12-06T20:35:17Z,"A great addition to the wp_list_pages function would be to add an extra CSS class of 'page_has_children' (or similar) to a list item for when it has child pages.

This would enable theme authors to style the list items with CSS to differentiate between those pages that have child pages, and those that don't at whatever depth you are viewing in really simple CSS.

Here is how it could be implemented in the WP3.0 codebase. I have simply amended the 'start_el' function as shown below.

'''FILE: wp-includes/classes.php - from line 1173'''

{{{

/**
 * @see Walker::start_el()
 * @since 2.1.0
 *
 * @param string $output Passed by reference. Used to append additional content.
 * @param object $page Page data object.
 * @param int $depth Depth of page. Used for padding.
 * @param int $current_page Page ID.
 * @param array $args
 */
function start_el(&$output, $page, $depth, $args, $current_page) {
	if ( $depth )
		$indent = str_repeat(""\t"", $depth);
	else
		$indent = '';

	extract($args, EXTR_SKIP);
	$css_class = array('page_item', 'page-item-'.$page->ID);
	
	//JA ADDITION START 1 of 2 - DETECT IF PAGE HAS CHILDREN START
	$has_children = wp_list_pages('&child_of='.$page->ID.'&echo=0');
	//JA ADDITION END 1 of 2 - DETECT IF PAGE HAS CHILDREN
	
	if ( !empty($current_page) ) {
		$_current_page = get_page( $current_page );
		if ( isset($_current_page->ancestors) && in_array($page->ID, (array) $_current_page->ancestors) )
			$css_class[] = 'current_page_ancestor';
		if ( $page->ID == $current_page )
			$css_class[] = 'current_page_item';

		//JA ADDITION START 2 of 2 - DETECT IF PAGE HAS CHILDREN START
		if ( !empty($has_children) )
			$css_class[] = 'page_has_children';
		//JA ADDITION START 2 of 2 - DETECT IF PAGE HAS CHILDREN END

		elseif ( $_current_page && $page->ID == $_current_page->post_parent )
			$css_class[] = 'current_page_parent';
	} elseif ( $page->ID == get_option('page_for_posts') ) {
		$css_class[] = 'current_page_parent';
	}

	$css_class = implode(' ', apply_filters('page_css_class', $css_class, $page));

	$output .= $indent . '<li class=""' . $css_class . '""><a href=""' . get_page_link($page->ID) . '"" title=""' . esc_attr( wp_strip_all_tags( apply_filters( 'the_title', $page->post_title, $page->ID ) ) ) . '"">' . $link_before . apply_filters( 'the_title', $page->post_title, $page->ID ) . $link_after . '</a>';

	if ( !empty($show_date) ) {
		if ( 'modified' == $show_date )
			$time = $page->post_modified;
		else
			$time = $page->post_date;

		$output .= "" "" . mysql2date($date_format, $time);
	}
}

}}}
",Jonnyauk
Future Releases,20166,Function url_shorten() enhancement,,Formatting,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-03T23:03:47Z,2012-03-04T03:37:59Z,"The function url_open is included in the wp_admin/includes/misc.php and is not usable unless loaded. This is not loaded by default so not available site wide. Also, the function is very static as of right now in its use with no defined options. Options to set length of the shortened url and the ability to turn on off the cutting of the leading ""http://www"" and the trailing slashes are included in this patch.",mulvane
Future Releases,16496,Make $sample_permalink_html human-readable on Edit Post screen,,Formatting,,normal,normal,Future Release,enhancement,new,has-patch,2011-02-08T19:40:23Z,2011-11-06T12:00:31Z,"If the permalink contains words with non-latin characters (for example the permalink structure is /%category%/%postname%/ and the assigned category is non-English) the $sample_permalink_html, which is echoed by [http://core.trac.wordpress.org/browser/branches/3.1/wp-admin/edit-form-advanced.php#L260 edit-form-advanced.php], is not human readable on Edit Post screen (below the title). The editable part of the permalink (the one that comes from the title of the post) ''is'' readable.

$sample_permalink_html should be urldecoded at some stage before echoed.

Screenshot attached.",linuxologos
Future Releases,19550,Please provide option to disable wptexturize entirely,,Formatting,3.3,normal,minor,Awaiting Review,enhancement,reopened,has-patch,2011-12-14T20:42:52Z,2012-01-04T16:53:05Z,"I assume this is controversial, but I want wptexturize to *always* be a no-op.  I know I'm not alone on this.  There exists a 3rd-party ""wpuntexturize"" plugin, but it is insufficient; even using that plugin, I keep running in to places where texturization is happening anyway.

Rather than making us play whack-a-mole with all the places it gets turned back on, can't we please just have a checkbox to disable it globally?

Alternately, if you would make wptexturize be a pluggable function, I could just re-define it.

As it is, with each new release, I am forced to modify the source to add ""return $text"" as the first line of the function.",jwz
Future Releases,10303,Provide better user feedback when content is changed by filters.,tott*,Formatting,,normal,normal,Future Release,enhancement,accepted,has-patch,2009-06-30T10:37:01Z,2013-01-22T01:03:33Z,"When filtering content via kses, adjusting bad nested xhtml or similar no feedback is given to the user. The content is just stripped and the user is not informed about the changes made and why they happened.

Presenting a diff in the admin message should increase the UX. ",tott
Future Releases,24106,Simplify wp_slash(),,Formatting,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-16T19:37:12Z,2013-04-17T03:12:26Z,"[23416] added the function {{{wp_slash()}}} for the slashing sanitization in #21767.

[https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2013-04-16&sort=asc#m595515 According to ryan], it has been modelled after {{{$wpdb->prepare()}}}, and therefore uses a custom {{{foreach}}} loop with an {{{if}}}-check in it.
I suggest to instead model it after {{{stripslashes_deep()}}} and {{{urlencode_deep()}}} to simplify the function and make it better readable.

The attached patch also makes it clearer that this function works in a recursive manner.",TobiasBg
Future Releases,16448,Smilies should not be placed inside of pre or code tags,,Formatting,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-03T04:00:52Z,2011-07-13T09:46:36Z,Smilies should ignore content inside of `<pre>` and `<code>` tags. The author likely is posting code and doesn't need smilies messing it up.,Viper007Bond
Future Releases,15409,Top-Level Domain (TLD) validation function and email validation/sanitization,stephdau*,Formatting,3.1,normal,normal,Future Release,enhancement,accepted,has-patch,2010-11-12T20:40:33Z,2010-11-22T16:57:56Z,"The following patch proposes a new global function, does_value_end_in_valid_tld, to allow for a string value to be tested for as ending in a valid TLD.

TLD list as per http://data.iana.org/TLD/tlds-alpha-by-domain.txt

Regex inspired by http://gitorious.org/statusnet/mainline/blobs/master/lib/util.php#line724

The patch also implements using does_value_end_in_valid_tld() in is_email() and sanitize_email(), to start with.",stephdau
Future Releases,12084,allow preserving HTML in the_excerpt (specify allowed tags for strip_tags in wp_trim_excerpt),,Formatting,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-01-29T22:36:40Z,2012-08-13T12:48:48Z,"Right now, `wp_trim_excerpt` is destructive. You can filter it, but once tags are stripped, you can't get them back without recreating the excerpt from the raw input. It would be nice if theme developers had an option to preserve at least some of the HTML formatting when using excerpts as post teasers (see #9260). ",sillybean
Future Releases,10792,ampersands and slashes stripped out of slugs,,Formatting,,low,trivial,Future Release,enhancement,new,has-patch,2009-09-15T22:56:00Z,2012-01-05T06:42:43Z,"In slugs for taxonomies or post permalinks, slashes (/\) and ampersands (&) are stripped out. More useful URLs would be created by turning slashes into hyphens, and ampersands into the word ""and"".

e.g.:

""songs by Lennon/McCartney""[[BR]]
expected slug: ""songs-by-lennon-mccartney""[[BR]]
actual slug: ""songs-by-lennonmccartney""

""Us & Them""[[BR]]
expected slug: ""us-and-them""[[BR]]
actual slug: ""us-them""",alxndr
Future Releases,5689,smilies should not wrap on line-break,,Formatting,,low,minor,Future Release,enhancement,new,has-patch,2008-01-19T10:49:42Z,2010-07-15T01:44:30Z,When smilies are not converted to images they still should not wrap on line-break.,gpoul
Future Releases,18143,Add size for Gallery Settings,nacin*,Gallery,3.2.1,normal,normal,Future Release,enhancement,accepted,has-patch,2011-07-17T00:02:49Z,2012-05-02T20:25:00Z,Add a size option for gallery settings so it's easy to insert a single column gallery with large or full size images.,designsimply
Future Releases,11101,Gallery column width calculation needs more granularity,,Gallery,,normal,minor,Future Release,enhancement,new,has-patch,2009-11-08T07:36:13Z,2011-02-23T10:12:06Z,"In line 712 of wp-includes/media.php where the column width is calculated for the gallery css snippet:


{{{
$columns = intval($columns);
        $itemwidth = $columns > 0 ? floor(100/$columns) : 100;

        $selector = ""gallery-{$instance}"";

        $output = apply_filters('gallery_style', ""
                <style type='text/css'>
                        #{$selector} {
                                margin: auto;
                        }
                        #{$selector} .gallery-item {
                                float: left;
                                margin-top: 10px;
                                text-align: center;
                                width: {$itemwidth}%;                   }
}}}


itemwidth should be calculated as 

{{{
$itemwidth = $columns > 0 ? round(100/$columns,1) : 100;
}}}

This gives the width better precision. I've read that IE ignores the decimal, but it works on at least Firefox, so there is no reason not to let it have a decimal value. You could even increase the number of decimal points.",akozak
Future Releases,6820,Post image / attachment reparenting,matt,Gallery,,low,minor,Future Release,enhancement,new,has-patch,2008-04-23T01:24:09Z,2012-12-02T00:00:17Z,You should be able to change the parent of an attachment to attach it to a different post.,matt
Future Releases,16686,$user argument of get_edit_profile_url() should be optional,,General,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-02-27T05:40:21Z,2011-02-27T09:54:36Z,It should default to the current user.,nacin
Future Releases,17455,Add $post_type argument to get_lastpostdate/get_lastpostmodified/_get_last_post_time,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-05-16T15:05:59Z,2011-05-16T16:00:05Z,As title says. You can currently use these functions to only get the latest [modification] date of all publicly queryable content types.,duck_
Future Releases,19514,Add Per Page Filter for Nav Menu Post Type Meta Box,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-12T15:40:53Z,2011-12-12T15:40:53Z,"Currently, there is a default (50) for paginating Post Type Entries on the wp_nav_menu_item_post_type_meta_box(). While there are other ways to filter this, it would be great for larger sites or larger number of post objects to be able to increase this for UX reasons.",wpsmith
Future Releases,20357,Add Return Empty String Function,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-04T21:20:39Z,2013-03-07T16:53:39Z,"There's an easy way to return boolean, integer (0), and an empty array. But what about an empty string?
root\wp-includes\functions.php
{{{
/**
 * Returns an empty string.
 *
 * Useful for returning an empty string to filters easily.
 *
 * @since 3.0.0
 * @see __return_empty_string()
 * @return string Empty string
 */
function __return_empty_string() {
	return '';
}
}}}",wpsmith
Future Releases,21089,Add admin url to install notification email,,General,3.4,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-06-27T21:50:40Z,2012-06-29T23:07:34Z,"I've seen a number of individuals inquiring as to the login url of their WordPress site for administration purposes.  Let's give it to them by changing:

Your new WordPress site has been successfully set up at:

http://wordpress.url

You can log in to the administrator account with the following information:

Username: admin
Password: The password you chose during the install.

We hope you enjoy your new site. Thanks!

--The WordPress Team
http://wordpress.org/

to

Your new WordPress site has been successfully set up at:

http://wordpress.url

You can log in to the administrator account with the following information:

Username: admin
Password: The password you chose during the install.
Location: http://wordpress.url/wp-admin

We hope you enjoy your new site. Thanks!

--The WordPress Team
http://wordpress.org/",georgestephanis
Future Releases,18244,Add autoload flag to update_option,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-07-25T16:21:21Z,2011-07-25T16:21:21Z,I think having an autoload flag in update_option would be beneficial in terms of making sure developers aren't unknowingly autoloading every single option. I've created a patch that allows developers to define autoload using update_option and force a change if needed.,wpdavis
Future Releases,14541,Add boolean at remove_meta_box action,,General,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-08-05T09:09:51Z,2010-11-18T10:09:59Z,"Add the possibility of getting the status of the remove_meta_box action by boolean.
Can be useful if you want to add/remove other metaboxes if one other is present or not.",Rahe
Future Releases,11581,Add category description to wp_list_bookmarks(),,General,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-23T20:09:22Z,2010-07-15T09:02:13Z,Add a parameter to display the link category description under the category title in wp_list_bookmarks() in bookmark-template.php. Setting a link category description is an option in the manager panel but there is not a good way to display it without modifying the core function itself a la http://www.brainshitting.com/index.php/archives/241,nedsferatu
Future Releases,23257,Add plural versions of Post Format strings,,General,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-22T00:59:30Z,2013-02-04T08:45:32Z,"To make it easier for theme authors to create meaningful titles for post format archive pages, we could extend `get_post_format_strings()` to also provide a standardized set of plurals.

I'm not entirely sure whether the plurals I used in the diff are the ones we actually want to go with (apparently there is no plural of 'Audio'?), but the change is fairly simple and is backwards compatible.

See [https://github.com/Automattic/_s/pull/137 this discussion] for additional context.",obenland
Future Releases,16945,Add relative URIs containing a query in esc_url(),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-23T06:37:36Z,2011-03-23T08:18:14Z,"I'd like to enhance the esc_url function to accept an url starting with ? (query) to not require a protocol.

That's comparable with the # (fragment) case we already have in.

This is useful to create links to the current page that need a query only. Otherwise the php file must be added and for frontend pages it won't work with pretty permalinks.",hakre
Future Releases,10946,Add set_post_field(),,General,,normal,normal,Future Release,enhancement,new,has-patch,2009-10-12T16:58:43Z,2009-11-17T15:05:33Z,"get_post_field() should have a matching function that updates a certain field.

Very useful both for Core and for plugins.",scribu
Future Releases,23387,Adding priority to individual settings via the settings API.,,General,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-05T00:05:19Z,2013-02-05T11:54:36Z,"Currently there is no way (at least that I could find) to specify the order of settings on a settings page (for example, a theme options page). Use case: a child theme adding a setting to the parent theme's ""Theme Options"" page has no way of specifying the order in which the new setting should be inserted. 

I've modified the add_settings_field() function to allow for a priority to be set (much like when adding settings to the theme customizer). I also added uasort($wp_settings_fields[$page][$section], 'compare_priority'); to the do_settings_fields() function, where 'compare_priority' is a slightly modified version of the compare function used to set the priority of the theme customizer sections.

This patch is loosely related to #22487 which adds priority to settings sections, but not individual settings.",alexmansfield
Future Releases,22487,Adding priority to settings sections.,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-17T09:08:34Z,2013-02-05T10:35:14Z,"Currently there is no way (at least that I could find) to specify the order of settings sections on a settings page (for example, a theme options page). Use case: a child theme adding a settings section to the parent theme's ""Theme Options"" page has no way of specifying where on the page the new section should be placed.

I've modified the add_settings_section() function to allow for a priority to be set (much like when adding sections to the theme customizer). I also added `uasort($wp_settings_sections[$page], 'compare_priority');` to the do_settings_section() function, where 'compare_priority' is a slightly modified version of the compare function used to set the priority of the theme customizer sections. The patch is based on version 3.4.2, but I'd be happy to make another for the development version if that would help.

This is my first patch submitted, so please let me know if I need to do anything differently. Thanks!",alexmansfield
Future Releases,16886,Adding readonly function to wp-includes/general-template.php,,General,3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-03-18T16:00:34Z,2011-03-18T19:40:01Z,"A quite simple improvement, really. 

Just like the ''checked'', ''selected'' and ''disabled'' function, ''readonly'' would be a shortcut to ''__checked_selected_helper''.

I was doing a theme option page and realized that disabling fields removes the data from the data submission.

I have a bunch of fields that gets used (or not) in the theme, depending on a on/off switch. At first, depending on the switch, I was disabling the fields, but all the data is removed on submit if the switch is at off. Meaning that the user would have to reenter every fields if he wants to activate the functionality.

Putting the fields on readonly gives a nice feedback to the user that those fields are not use, depending on the switch, AND the data is kept if the user changes his mind.

So, here's the patch.

{{{
/**
 * Outputs the html readonly attribute.
 *
 * Compares the first two arguments and if identical marks as readonly
 *
 * @since 3.1.#
 *
 * @param mixed $disabled One of the values to compare
 * @param mixed $current (true) The other value to compare if not just true
 * @param bool $echo Whether to echo or just return the string
 * @return string html attribute or empty string
 */
function readonly( $readonly, $current = true, $echo = true ) {
    return __checked_selected_helper( $readonly, $current, $echo, 'readonly' );
}
}}}

",kakidcm
Future Releases,24068,Allow absolute paths to be passed into content_url(),,General,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2013-04-12T20:13:59Z,2013-04-12T20:13:59Z,"It would be very useful if `content_url()` allowed an absolute path to be supplied just like `plugin_dir_url()` does. This would allow a script within a theme subdirectory to easily obtain the URL to that subdirectory, for example via `content_url(__DIR__)`, instead of having to add relative paths after `get_stylesheet_directory_uri()`. This would also allow code living somewhere else under `wp-content/` (not in plugins or themes) to likewise obtain its full URL.

http://codex.wordpress.org/Function_Reference/content_url
http://codex.wordpress.org/Function_Reference/plugin_dir_url
http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri",westonruter
Future Releases,21930,Allow hooks to define avatar before Gravatar processing,,General,3.4,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-09-19T16:30:35Z,2012-09-28T08:13:29Z,"The get_avatar() function allows for developers to override avatar output in two ways. You can replace the function (pluggable) - not a good idea in my view, especially if you still want the ability to fallback and use Gravatar sometimes. You can also filter the output at the very end of the function with the 'get_avatar' hook. This works fine, but in highly common instances where a plug-in might want to override the avatar on a case by case basis, this forces each get_avatar call to needlessly process through the entire default avatar / Gravatar ""construction"".

Admittedly, that processing is mostly trivial string manipulation and conditionals with an md5 in the mix, but it still seems like needless overhead in instances where many avatars might get called in a comments thread or authors list.

Proposing a pretty trivial change that allows an avatar to be defined by a filter hook before proceeding through Gravatar / default avatar processing, skipping over all of that if one is, in fact, defined.

My inspiration for this is an attempt to improve the performance of my fairly popular Simple Local Avatars plug-in, that allows users to upload local avatars: http://wordpress.org/extend/plugins/simple-local-avatars/",jakemgold
Future Releases,21466,Allow post password cookie expiry to be customized,,General,3.4.1,lowest,minor,Future Release,enhancement,new,has-patch,2012-08-04T20:52:35Z,2013-04-16T11:23:29Z,"It'd be nice if you could customize the expiry time for the post password cookie that is set in `wp-login.php?action=postpass`.

The only solution right now is [https://gist.github.com/3259814 pretty ugly].",Viper007Bond
Future Releases,21472,Allow supplying a custom text to status_header(),,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-05T20:19:54Z,2012-08-05T20:19:54Z,"Problem: I'd like to issue a HTTP 500 error, but include a text different from Internal Server Error, so that the client knows what caused the error.

Currently for a known error code the {{{status_header()}}} function always uses the global array {{{$wp_header_to_desc}}} and the only way to have my own text is to set the value in the global array.

The patch adds a second a argument to {{{status_header()}}}.",nbachiyski
Future Releases,14804,Allow the_title_attribute() to accept a post ID,,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-09-07T15:41:38Z,2011-01-14T03:48:09Z,"`the_title_attribute()` does not currently accept being passed a post object/ID and therefore, via its call to `get_the_title()` without an argument, always assumes the current post.  By simply allowing its `$args` array to accept and use a ""post"" value, then the function can be used to generate an attribute-friendly post title for any specified post.

Attached is the patch enabling this.  The `$args` array is amended with a ""post"" element, default of 0 (which maintains current default behavior).  Since `get_post()`, by way of `get_the_title()`, accepts a post ID or post object, either type can be assigned as value for the ""post"" element.
",coffee2code
Future Releases,16185,Bulk Actions Dropdown Box JS Sync Ajax-Tables,,General,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-11T11:15:33Z,2012-07-26T19:25:41Z,"It would be an increase in usability - if JS is enabled - to sync the changes between the bulk-action-drop-down on top of the table with the one below the table.

In my scenario I increased the amount of entries to over 100. So you need to scroll. So to set the bulk action on top and then you might think twice, need to check something, scroll down to the list to check the last entry and you want to press the bulk submit down below.

That combo box is still on the default value right now. To spare additional clicks, it would be nice that it got synched with the one on top.

Related: #14579; #15580",hakre
Future Releases,16792,"CategoryWalker, if cat_name is empty, do not append the empty a tag to the output",,General,3.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-03-07T22:36:29Z,2011-03-07T22:38:46Z,"If the theme is customized to skip some categories by doing something like add_filter('list_cats', 'hideSomeCatgory') and returning a null or an empty string as cat name, the CategoryWalker will append an empty html element to the output",samo9789
Future Releases,18489,Create constants in default-constants.php for the uploads folder to allow better custom uploads location,eddiemoya,General,3.2.1,normal,normal,Awaiting Review,enhancement,reopened,close,2011-08-19T20:11:41Z,2013-03-16T04:24:33Z,"There are cases in which a the uploads directory might need to be divorced WP_CONTENT_DIR, currently the only thing we can use is the UPLOADS constant, which works but is relative to ABSPATH and as such limits where the uploads directory can be moved to.

In default-constants.php we have constants for the wp-content, and plugins folder - the uploads folder is a natural addition to this. Currently there is only a poorly documented UPLOADS override in wp_uploads_dir, which can be overridden in wp-config.php. I also think there should be a similar constant for the themes folder, but I would that would be a bit more complex of a change.

I have create a new function in default-constants.php which introduce WP_UPLOADS_DIR and WP_UPLOADS_URL, which are called after wp_plugins_directory_constants() in wp-settings.php - because that function create WP_CONTENT_URL, which is needed in order to create WP_UPLOADS_URL.

It is important to note that I have not changed any of the precedent in terms of what overrides what - the uploads_path option still overrides the default location (or now, the potentially custom location) defined by the new constant, ''the old UPLOADS constant will still override either of them if it is set''. Thats the way it worked before and that behavior has been preserved.

Additionally, I have patched /wp-includes/function.php wp_uploads_dir to make use of these new constants as well as a little clean up of some related logic.

First patch to core - go easy.",eddiemoya
Future Releases,16982,Deprecate post_permalink(),,General,,normal,minor,Future Release,enhancement,new,has-patch,2011-03-27T20:18:43Z,2011-03-28T06:10:47Z,"post_permalink() does nothing but call get_permalink() and already has a deprecated argument.

Let's deprecate it completely, since it's useless.",scribu
Future Releases,21126,"Different ID on ""Set featured image"" link if there is already an image set",,General,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-30T22:02:55Z,2012-06-30T22:02:55Z,"I ran into a situation where I wanted to target the ""Set featured image"" link text in the featured image metabox. The ""Set featured image"" link displays and has an id of ""set-post-thumbnail"". When you set the thumbnail, the link still has an ID of ""set-post-thumbnail"" though now it is wrapping around the thumbnail image rather than the ""Set featured image"" text. Then a second link is added to remove the featured image with the id of ""remove-post-thumbnail"". 

In my situation I wanted to target the ""Set featured image"" link (with the text) and the ""Remove featured image"" link separately, but this was tricker than it needed to be because the ""Set featured link"" keeps the same id of set-post-thumbnail when it is wrapped around the thumbnail image.

Beyond my specific issue, I think it could be argued that this link deserves a specific id, since the action the link is performing is modifying the featured image more than it is setting it. 

So I've included a patch here that will modify the $set_thumbnail_link variable when the $thumbnail_id is present and change the link's id to modify-post-thumbnail. I'm not sure if it's the most elegant/clever way to achieve what I'm after, but I know it gets the job done.",ryanimel
Future Releases,14305,Display file for localized versions as Drop-in,nacin,General,,normal,normal,Future Release,enhancement,reviewing,has-patch,2010-07-14T09:08:03Z,2011-03-26T08:37:42Z,"Localization teams can use special files (for example cs_CZ.php) to handle special problems. This file should be shown on Plugins page, probably as Drop-in, I guess...",pavelevap
Future Releases,14078,Don't send notifications for comments too early,,General,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-24T19:22:26Z,2010-06-24T19:35:03Z,"Not sure if this classes as a bug or enhancement, will call it an enhancement for now. 

In  wp_set_comment_status the notifications are currently sent out before the work is done, and there is potential for the subsequent work to fail (due to database issue etc.)  

Attached patch (attempts to) move the notification so it is only sent after the work is done. ",mrmist
Future Releases,22405,Easier expression of file sizes and other data amounts,,General,3.5,normal,normal,Future Release,enhancement,new,has-patch,2012-11-10T08:42:05Z,2012-11-18T11:10:49Z,"In the spirit of #20987 writing {{{64 * 1024 * 1024 * 1024 * 1024}}} isn't very readable and cool.

Here is a patch, which adds a couple of constants like {{{KB_IN_BYTES}}}, {{{MB_IN_BYTES}}}, etc.",nbachiyski
Future Releases,21547,Enable 'delocalization' of scripts,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-11T04:04:27Z,2012-08-12T20:19:51Z,"I created a patch to enable developers to 'delocalize' a script they added. Currently if somebody localizes a script with wp_localize_script() there's no going back.

Can someone look at it and offer feedback? I'm not a regular WordPress contributor, so there may be stylistic issues.",gkb6891
Future Releases,18653,Enhancement: Filter Taxonomy Show UI in post editor (edit-form-advanced.php),,General,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-13T16:03:49Z,2011-09-13T17:48:45Z,"I am working on a project that maintains a ""hidden"" taxonomy. I want to expose the taxonomy selectively on various custom post types.

The attached patch filters a taxonomy's show_ui value before deciding to create a meta_box. The filter also passes the taxonomy object as well as the current post type.",transom
Future Releases,20125,Escape output in settings_errors,,General,3.0,normal,normal,Awaiting Review,enhancement,new,close,2012-02-26T17:26:26Z,2012-02-27T06:37:53Z,"'''The Problem'''

The ""settings_errors"" function does not escape data when outputting it from the $settings_errors variable, which either comes from the $wp_settings_errors global variable or the ""settings_errors"" transient. This data is not escaped at any point during retrieval or output. Additionally, the data is not sanitized or validated when adding it via ""add_settings_error"". 

'''Test Case'''

In the validation callback function for a setting, adding a settings error with HTML can badly break output:

{{{
add_settings_error( 'zdt-setting', '1023', 'An error occurred</div>' );
}}}

'''Solution'''

Escape the $type, $code, and $message variables on output.

'''Possible Issues'''

The $message variable is output wrapped in a 'p' and 'strong' tag. My patch tries to allow common, reasonable tags to be output. I use ""wp_kses_data"", which will only allow tags defined in the $allowedtags variable. Should a plugin or theme author need another element printed out, it will be stripped; however, there still is the potential that it could cause issues for plugins that were previously able to place anything in the $message variable. With that said, most other tags would lead to invalid HTML and probably shouldn't be allowed in this context anyway.",tollmanz
Future Releases,16504,Faster maybe_unserialize,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-09T11:11:52Z,2011-05-11T11:46:49Z,"In #14429 many have taken care to optimize the is_serialized speed.

The function is of good general value and most often used to ""maybe"" unserialize.

It was [http://core.trac.wordpress.org/ticket/14429#comment:3 originally smabauers] who reminded that it's only about to check what it's about to check.

''Option values'', if serialized are only serialized Array, Objects or Strings. No exceptions. And they are ''always trimmed'' strings.

As is_serialized() is of general use and might be used by plugin authors, maybe_unserialize can get a new playmate.",hakre
Future Releases,20279,Functions defined in wp-login.php should be moved to a separate file to make them re-usable,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-22T03:26:29Z,2012-10-06T07:35:29Z,"Currently, there are a series of functions defined at the top of wp-login.php:

{{{
login_header()
login_footer()
wp_shake_js()
retrieve_password()
check_password_reset_key()
reset_password()
register_new_user()
}}}

If these functions were moved to a separate file, they would be reusable by folks who are trying to do more advanced things involving the login flow.

As an example, if you want to create a page resembling wp-login right now, there's no easy way to do it without just duplicating everything from this file. Moving these functions means you can use login_header() and login_footer() to recreate the bulk of the page, then handle the ""content block"" yourself. This marginally improves the re-usability of the login system.

Patch attached which does this.",beaulebens
Future Releases,6492,Guids No Longer Have Permalink Format,,General,2.5,normal,trivial,Awaiting Review,enhancement,reopened,has-patch,2008-03-31T06:03:30Z,2013-05-18T21:41:12Z,"When you create a new post using WordPress 2.5 the GUID is created in the http://siteurl/?p=<PostId> format even when permalinks are enabled.  This is because the _transition_post_status function in /wp-includes/post.php now checks if the guid is empty (which it never is) before resetting/creating it with the proper permalink structure.  Line 2841 should be removed.
",brianwhite
Future Releases,22251,Helper function to simplify checking for constants,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-22T00:32:27Z,2012-10-31T21:33:33Z,"Love 'em or hate 'em, WordPress uses lots of constants.  As a result, this pattern is all over core and plugins, and occasionally themes:

`if ( defined( 'CONSTANT_NAME' ) && CONSTANT_NAME )`

Right now on trunk, it's used 57 times (excluding 2 in Akismet).

{{{
~/code/wptrunk $ ack ""defined\( ?('|\"")([^'\""]+)\1 ?\) \&\& \2"" -h --ignore-dir=wp-content/plugins/ | wc -l
      57
}}}

How about a new function to make that verbose logic a little bit less repetitive.

{{{
function wp_constant( $constant ) {
	return defined( $constant ) && constant( $constant );
}
}}}",evansolomon
Future Releases,18694,Improved date arguments for WP_Query,viper007bond,General,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-17T22:00:00Z,2013-02-28T14:40:09Z,"Currently there is no way to get a set of posts that fall within a date range, are older/newer than a certain date, etc.

A new set of arguments should be created for `WP_Query` that work similarly to the relatively new meta and taxonomy arguments.

Argument structure suggestions welcome.",Viper007Bond
Future Releases,16973,Introduce get_multipage_link(),,General,,normal,normal,Future Release,enhancement,new,has-patch,2011-03-26T16:11:43Z,2012-09-15T14:25:39Z,"There currently is no function for retrieving the URL to a multipage part (a page with {{{<!--nextpage-->}}}).

The code is burried in a private helper function.

Let's bring it to light.",scribu
Future Releases,19200,Introduce themes_url() and upload_url(),,General,,normal,normal,Future Release,enhancement,new,has-patch,2011-11-07T21:01:46Z,2012-09-22T14:26:12Z,"WordPress has some very usefull '''url tempalate tags''' in the ''wp-includes/link-template.php'' file, functions like:

{{{
home_url()      =>  ../
site_url()      =>  ../
admin_url()     =>  ../wp-admin/
includes_url()  =>  ../wp-includes/
content_url()   =>  ../wp-content/
plugins_url()   =>  ../wp-content/plugins/
}}}

we need 2 more functions:

{{{
themes_url()    =>  ../wp-content/themes/
upload_url()    =>  ../wp-content/upload/
}}}

they will make developers life easier.",ramiy
Future Releases,21073,Main functions file (/wp-includes/functions.php) could use a coding standards cleanup,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-26T03:04:21Z,2012-06-26T03:04:21Z,"[http://core.trac.wordpress.org/browser/trunk/wp-includes/functions.php?rev=21113 This file] is very inconsistent in its coding standards, and as a result is difficult to read.

I had to find a couple things in here recently; after some frustration in reading the different styles I decided to take a pass at refreshing it.",evansolomon
Future Releases,21119,Make WP_User_Query::prepare_query() public,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-30T07:57:47Z,2012-06-30T07:59:30Z,"WP_User_Query tries to follow the pattern from WP_Query, where if you don't pass any args, it won't run the query.

The problem is that you can't do anything with that instance afterwards; both prepare_query() and query() accept no parameters.",scribu
Future Releases,18746,Make is_tag() accept a term name or term id,,General,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-22T13:05:15Z,2011-09-22T13:52:36Z,"The ''is_category()'' function recieves as a parameter Category ID, Category Name or Category Slug.

So is the ''is_tax()'' function, it recieves as a parameter Term ID, Term Name or Term Slug.

But the ''is_tag()'' function can recieve only Tag Slug.",ramiy
Future Releases,16908,Normalize remove_accents() data,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-20T22:54:24Z,2011-09-10T22:25:30Z,"The remove_accents() functions contains the translitaration data in diverse formats. To normalize the code, a format of arrays containing key=>value replacements where the string value of key transposes into the string value of value.

That's already common for a large part of the function.",hakre
Future Releases,22330,Optimize regexes to remove protocol from URL,,General,3.4.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-10-31T09:30:48Z,2012-10-31T09:30:48Z,"Regexes used to chop off the protocol of a URL should be anchored to the start of the string.

1. The regex fails faster and thus avoid useless work. No need to look further down the URL for strings like `""http://""`.
2. The regex should not alter any URLs that might be contained in the query string.",GeertDD
Future Releases,16903,PHP5-Port - Superfluous code in _deep_replace(),,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-20T16:44:21Z,2011-03-20T21:47:44Z,"Since PHP 5.0.0 the count parameter was added, see [http://www.php.net/manual/en/function.str-replace.php str_replace].

(in earlier PHP 4.x versions, arrays were already supported)",hakre
Future Releases,16756,PHP5-port - Access Violations on wpdb::$prefix,,General,3.1,normal,normal,Awaiting Review,enhancement,reviewing,has-patch,2011-03-05T12:01:09Z,2011-03-08T21:46:30Z,"The to be accessed privately member {{{wpdb::$prefix}}} is accessed publicly in multiple places.

This ''would'' do fatal errors ''if'' the property would be ported to PHP 5 ''with the documented behavior''.

The errorneous usage in the places in question ''might'' reveal that implementation details were missed because the prefix can differ on multi-site setups which is not technically guaranteed when accessing the private member.

The private member was only used ""read-only"" inside the class. Probably this is a documentation issue. It's set {{{set_prefix()}}} and {{{set_blog_id()}}} functions (only) and always to the result of {{{wpdb::get_blog_prefix()}}}.",hakre
Future Releases,16753,PHP5-port - microtime() use,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-05T10:27:41Z,2011-03-08T21:31:20Z,"See [http://www.php.net/manual/en/function.microtime.php microtime()] for details.

In microtime() related code [http://www.php.net/manual/en/function.uniqid.php uniqid()] with more entropy does not need a prefix. And there is no need to seed the random number generator. See [http://www.php.net/manual/en/function.srand.php srand()] for details.",hakre
Future Releases,16758,PHP5-port - move of wpdb::check_database_version(),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-05T14:04:56Z,2011-03-05T14:04:56Z,"The function {{{wpdb::check_database_version()}}} is doing a check of the database version against a needed database version. The database server version is returned from $this->db_version(), the required database version is in a global variable called `$required_mysql_version`.

This keeps the database code coupled to the global variable while the class is made to be replaced, e.g. for other database abstractions (compare #14508 which is made for ''extends wpdb''). Normally the database class is a singleton in a global variable already.

Therefore this mixes global with local space twice. I suggest to de-couple wpdb a bit from that hardencoded global variable name and move the code out of the wpdb class into that alread existing global function called wp_check_mysql_version().

This should make the database interface a bit more lightweight which could be a benefit when porting to PHP5.

",hakre
Future Releases,16754,PHP5-port - srand(),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-05T10:42:18Z,2011-10-19T01:16:20Z,"No need to seed the random number generator.

See [http://www.php.net/manual/en/function.srand.php srand()] for details.

Related: #16753",hakre
Future Releases,13937,Pass named arguments to add_meta_box(),,General,,normal,minor,Future Release,enhancement,new,has-patch,2010-06-17T06:18:33Z,2012-10-04T16:04:18Z,"add_meta_box() currently takes 7 arguments!

It should accept an associative array of arguments instead. Advantages:

 * more readable code
 * easier to deprecate arguments in the future",scribu
Future Releases,21364,Pass post type to count_user_posts(),,General,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-24T08:22:14Z,2012-07-25T12:26:04Z,"Add $post_type argument to count_user_posts(). Defaults to 'post', as it is hard-coded now.",Caspie
Future Releases,18362,Post timestamp creation should use whitelisted post statuses instead of blacklisted,danielbachhuber,General,3.0,normal,normal,Awaiting Review,enhancement,assigned,has-patch,2011-08-09T16:51:55Z,2013-01-18T23:58:43Z,"post_date and post_date_gmt timestamps are created when a post is published. The method should create timestamps based on whitelisted post statuses, instead of ""not in a blacklist"" as it exists currently.

Backstory: We have a plugin that allows users to create custom statuses. It uses the partially completed custom status API and additional code we've written. In the WordPress.org forum, a  [http://wordpress.org/support/topic/plugin-edit-flow-custom-statuses-create-timestamp-problem bug was reported] where if they use a custom status with a post, the post time is set. Currently, they have to manually edit the timestamp of the post before publishing in order for it to be set to the proper publication date (instead of 5 days ago when they originally created it).

The origin of the problem is [http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/post.php#L2506 line #2506 in wp-includes/post.php]. The post statuses to receive timestamps should be whitelisted instead of blacklisted. Because the custom statuses aren't a part of the blacklist, they receive a GMT timesteamp.",danielbachhuber
Future Releases,20513,Refactor $wp_scripts init checking code,,General,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-22T15:15:36Z,2012-04-24T09:56:05Z,"The functions in [http://core.trac.wordpress.org/browser/trunk/wp-includes/functions.wp-scripts.php functions.wp-scripts.php] seem to contain a lot of duplicate code in terms of checking and initializing the global `$wp_scripts` in each function.

Attached is rough first pass at creating a function to do this. I expect aspects of it could be done better.

I've included the first argument, to avoid relying on a global so that the function might be unit tested (pass something in, see what gets returned).",GaryJ
Future Releases,19367,Remove unused _relocate_children(),,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-11-26T23:23:51Z,2012-03-24T14:30:12Z,It's from the days of negative post ids. Some history: #9471,scribu
Future Releases,14657,Resync Boolean Type Case,,General,,normal,trivial,Future Release,enhancement,assigned,has-patch,2010-08-20T15:09:54Z,2012-06-28T13:44:30Z,"TRUE to true and FALSE to false.

It seems patches weren't inline with the lowercase usage of the boolean type. Depends on programmer preference.",jacobsantos
Future Releases,7394,Search: order results by relevance,,General,2.6,normal,normal,Future Release,enhancement,assigned,has-patch,2008-07-24T02:54:18Z,2013-05-14T12:42:59Z,"I have 35 pages in my WordPress install.  My ""About"" page is on '''the second page of results''' when I search for ""about""

We should put hits on the title first in the results list.

I'm open to suggestions for possible technical implementations.",markjaquith
Future Releases,15811,Self-referrent links should be made avoidable in wp_list_pages / wp_page_menu,,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-12-14T14:43:43Z,2011-01-15T04:55:31Z,"Having a page that links to itself is a well-recognized usability and accessibility problem.

Currently, wp_list_pages and wp_page_menu don't offer an option to avoid self-referrent links.

The patch attached to this report adds a ""self_link"" parameter to these two functions (defaulting to the current behaviour); when that parameter is set to false, the markup produced by these functions don't include a link to the current page.

Someone proposed a plugin to that effect:
http://clockinfo.com/posts/168
but it sounds like something that the core Wordpress should support.",lewebmobile
Future Releases,17619,Soft 404 at /wp-content/plugins/,,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-05-30T16:31:30Z,2011-08-17T00:51:19Z,"/wp-content/plugins/index.php would be better written with a proper 404.

{{{
<?php
header('HTTP/1.0 404 Not Found'); // Silence is golden.
?>
}}}",miqrogroove
Future Releases,23505,Some files still have closing PHP tags,,General,3.4,lowest,trivial,Awaiting Review,enhancement,new,has-patch,2013-02-18T23:33:19Z,2013-05-14T15:36:25Z,"[19712] removed EOF `?>` from nearly all the files, including `wp-content/index.php`: [[BR]]
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-content/index.php

In a couple of files, however, it's still there, which doesn't seem intentional: [[BR]]
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-content/plugins/index.php [[BR]]
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-content/themes/index.php

We should probably make the same change there for consistency.",SergeyBiryukov
Future Releases,16471,Support default values for non-existant query vars in get_query_var() et al,,General,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-06T15:48:58Z,2011-03-07T02:43:46Z,"When using {{{get_query_var($var)}}} or {{{$GLOBALS['wp']->get($var)}}} and {{{$var}}} is the name of an unexistant query variable, those functions will return an empty string.

Next to that there is no function that provides information about whether or not a specific query variable has been set.

I therefore suggest to make both functions able to optionally return a chooseable default fallback value then the empty string we have.",hakre
Future Releases,19347,"Ugly alert: false !== strpos( $which_one_was_needle, $this_one )",westi,General,,normal,normal,Future Release,enhancement,reviewing,has-patch,2011-11-23T22:08:02Z,2012-06-28T16:29:40Z,"In WordPress {{{strpos()}}} is used hundreds of times. Very large percentage of those calls are trying to accomplish one of these 3 goals:

 * Check if a string starts with another string
 * Check if a string contains another string
 * Check if a string ends with another string

The code for doing these 3 things is not very readable, ugly, and error-prone:

{{{
0 === strpos( $one_string, $other_string )
false !== strpos( $one_string, $other_string )
strpos( $one_string, $other_string ) == ( strlen( $one_string ) - strlen( $other_string )
}}}

I propose we introduce functions to hide the ugliness and the complexity behind these three common operations:

 * {{{wp_startswith( $haystack, $needle )}}}
 * {{{wp_in( $needle, $haystack )}}}
 * {{{wp_endswith( $haystack, $needle )}}}

The logic of the arguments order is consistent and easy to remember:

''first argument'' '''verb''' ''second argument''.

 * everything starts with a beginning translates to {{{wp_startswith( ""everything"", ""a beginning"" )}}}
 * goat is in  distress translates to {{{wp_in( ""goat"", ""distress"" )}}}
 * movie ends with happy end translates to {{{wp_endswith( ""movie"", ""happy end"" )}}}

These three functions are happily used in GlotPress and WordPress.com.

The implementations are attached.",nbachiyski
Future Releases,16914,Updated List of HTTP status codes for wp_header_to_desc (2),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-21T12:54:46Z,2011-12-18T20:03:45Z,"http://www.iana.org/assignments/http-status-codes

Hypertext Transfer Protocol (HTTP) Status Code Registry 

(last updated 2010-11-05)

Related: #9297",hakre
Future Releases,22234,"Use access modifiers in classes, not the var keyword",,General,1.5,normal,normal,Future Release,enhancement,new,has-patch,2012-10-20T21:23:39Z,2013-05-14T13:48:15Z,"The minimum required PHP version is 5.2.4. The {{{var}}} keyword is a relic of PHP 4. Let us open our hymnals to php.net:

  Note: The PHP 4 method of declaring a variable with the var keyword is still supported for compatibility reasons (as a synonym for the public keyword). In PHP 5 before 5.1.3, its usage would generate an E_STRICT warning.

PHP 5 has much better support for OO features like access modifiers in classes. WP also has a history of including PHPDoc blocks with code and using the {{{@access}}} tag. However, the tag is meaningless if it doesn't match the supplied access modifier.

PHPDoc blocks are present 1) for inline documentation, sure but mainly 2) to allow automatic generation of documentation when used with a command-line tool like phpDocumentor or (IMO, the far superior) ApiGen.

If I specify the following:

{{{
/**
 * @access private
 */
var $prop;
}}}

{{{$prop}}} will appear in the documentation as {{{public}}} because {{{var}}} means {{{public}}}. 

I have modified class properties throughout the codebase to use access modifiers instead of var. 

* If no PHPDoc was present, I made the property public, which it already was. 
* If the {{{@access}}} tag was present, I used its value for the property. 
* I then ran Unit Tests which produced some immediate fatal errors do to existing core code that was trying to access properties in a public way that had {{{@access}}} set to private. 
* I altered those properties to indeed be public and updated the PHPDoc",wonderboymusic
Future Releases,20352,Use str_getcsv() to parse search terms in WP_Query,,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-04-03T23:05:25Z,2012-04-04T01:39:31Z,"We use an [http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/query.php#L2183 ugly regex] to split search terms like these:

{{{
term1 term2 ""exact match""
}}}

We could use str_getcsv() instead, for better readability.",scribu
Future Releases,13941,WP_CONTENT_URL should use site_url() to support HTTPS / SSL,ryan,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-06-17T09:21:15Z,2011-11-11T18:54:44Z,"On HTTPS pages, users sometimes get 'insecure content' warnings from their browser.  This is commonly caused by plugins which use the ''WP_PLUGIN_URL'' constant to get the full plugin directory URL for the sake of loading static content.

The problem is that ''WP_PLUGIN_URL'' will always return the ''siteurl'' (as specified in Settings > General) and thus does not adjust from http:... to https:... when needed.

''WP_PLUGIN_URL'' is dependent on ''WP_CONTENT_URL'', and ''WP_CONTENT_URL'' is derived from ''get_option('siteurl')'', which only returns the ''siteurl'' and does not adjust for HTTPS pages. However, the ''site_url()'' function '''does''' adjust for HTTPS pages.

So, to fully support HTTPS and directives such as ''FORCE_SSL_LOGIN'' and ''FORCE_SSL_ADMIN'', ''WP_CONTENT_URL'' needs to use the ''site_url()'' function as proposed in my riveting one-liner patch.

Related #10198 #9008",micropat
Future Releases,20683,WP_Dependencies' constructor should accept a string/array value for $deps rather than converting a string to an empty array,markjaquith,General,,normal,normal,Awaiting Review,enhancement,reopened,has-patch,2012-05-15T20:12:39Z,2013-04-23T12:42:14Z,"Currently, WP_Dependencies' constructor takes any $deps value that's not an array and converts it to an empty array. I propose bringing the constructor's behavior more in line with standard WP function paramater behavior by accepting a string as a single dependency. Essentially this involves adding an is_string() check on $deps before checking if it's not an array, and creating an array with a single element in the case that it is a string. 


{{{
if ( !is_array($this->deps) )
  $this->deps = array();
}}}

becomes

{{{
if ( is_string( $this->deps ) )
  $this->deps = (array) $this->deps;
elseif ( !is_array( $this->deps ) )
  $this->deps = array();
}}}

See the attached diff for a proposed patch.",vhauri
Future Releases,18817,WP_List_Table nonce output moved to its own method,,General,3.2.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-09-29T17:55:33Z,2012-03-20T19:32:43Z,"A quick little patch to move the nonce field generation and output to its own field.  I ran across a need for this when implementing the class on a postmeta box on the post edit screen.  Both the post edit form and the WP_List_Table class were outputting a nonce field using the name ""_wpnonce"".  Upon submission this was prohibiting the post from saving.

I had to override the entire display_tablenav method whereas if the output of the nonce was its own method, I could override it there and change the name of the field it was outputting.",bigdawggi
Future Releases,22470,WP_Scripts: output script element only if src not empty,,General,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-11-16T00:36:50Z,2012-11-16T00:36:50Z,"I was able to make async JavaScript loading work with existing !WordPress code by acting on the script_loader_src filter before the `<script>` element is output, returning an empty string. This results in an empty src attribute, creating technically invalid HTML while not immediately loading the external script. If the !WordPress code could check if a non-empty `$src` string exists before outputting I could avoid the invalid HTML nag. Attached diff only outputs the `<script src="""">` element if `$src` is not an empty string.

I'd like to be able to asynchronously load an enqueued script without needing to completely rework `WP_Scripts`. I'd like to take advantage of common handles indicating a script is set to be loaded, extra data attached to a handle, and other !WordPress script expectations while swapping out the `<script src="""">` echoed markup.

Why async? A script steps out of the way, offering progressive enhancement of the page or loading non-critical features such as stats or socal network sharing buttons. Async loading also helps prevent single points of failure in webpage loading caused by China blocking Facebook or resources hosted at Amazon Web Services going offline for a few hours.

* [http://www.stevesouders.com/blog/2012/01/13/javascript-performance/ Some info from Steve Souders] showing a 31% increase in load times.
* [https://developers.google.com/analytics/devguides/collection/gajs/ Google Analytics use case]
* [https://developers.facebook.com/docs/reference/javascript/#loading Facebook JavaScript SDK use case]",niallkennedy
Future Releases,14853,WP_Scripts::do_item filter,westi*,General,3.1,normal,normal,Future Release,enhancement,accepted,has-patch,2010-09-12T04:35:59Z,2011-07-28T12:51:43Z,"There should be actions that fire after a script is printed. This would enabled this best-practices usage scenario (from http://github.com/paulirish/html5-boilerplate/blob/master/index.html ):

{{{
<!-- Grab Google CDN's jQuery. fall back to local if necessary -->
  <script src=""http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js""></script>
  <script>!window.jQuery && document.write('<script src=""js/jquery-1.4.2.min.js""><\/script>')</script>
}}}

The before action isn't covered by that use-case, but if we're going to have an after action, we might as well have a before one.

I've attached a patch that would allow for this. Dead simple.",mattwiebe
Future Releases,19742,WP_Styles should pass more info to the filter,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-04T21:49:30Z,2012-12-11T23:44:10Z,"Currently, if your working with wp_enqueue_style(), it's not easy to customize the output of the link element.

The current filter passes the full html along with the style handle. This isn't enough information if you're trying to rebuild the link element.

I'm currently changing rel=""stylesheet"" to rel=""stylesheet/less"" for lesscss suport. I'm currently able to achieve this, but I have to know the style handle.

This patch adds a third param which contains all of the style data available for that style.",ptahdunbar
Future Releases,19211,WordPress should be properly capitalized in the HTML title,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-08T23:49:59Z,2011-11-09T04:59:43Z,"The HTML title element doesn't get properly capitalized P's, only the post title does.

For example: http://gigaom.com/2011/11/08/wordpress-founder-matt-mullenweg-to-speak-at-roadmap/",evansolomon
Future Releases,23454,_deprecated_function Messages,,General,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-12T11:20:39Z,2013-04-01T09:28:58Z,"Unlike ''_deprecated_file'' and ''_deprecated_argument'', the ''_deprecated_function'' function has no option to append a message to the triggered notice.

I propose adding this to make it consistant with the other 2 functions. Patch to follow.",mikejolley
Future Releases,16875,auth_redirect() minor code change,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-17T15:48:26Z,2011-03-17T15:48:26Z,While looking into #16858 I stumbled over some is_ssl() related code in auth_redirect(). Just a minor rewrite of the code to make it easier to read.,hakre
Future Releases,11598,code improvements in wp_:dashboard_plugins_output(),,General,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-24T14:19:54Z,2010-10-28T11:36:02Z,"Smaller code changes to improve the function. Stumbeled over this while digging into #11597 and #11518.

",hakre
Future Releases,19806,do_allowed_shortcodes to allow processing of limited list of shortcodes,beezeee,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-11T16:09:56Z,2012-01-11T22:22:52Z,"We have a front facing content editor and want to enable our users to use a specific set of shortcodes, without exposing all of the sites shortcodes to them.

Here's the function we use for this. It is passed an array of allowed shortcodes, and any other shortcodes are stripped from the content. 

{{{
function do_allowed_shortcodes($content, $shortcodes=array())
{
    //if no allowed shortcodes are provided, strip all shortcodes and return content
	if (empty($shortcodes))
	{
		return(strip_shortcodes($content));
	}
    //foreach allowed shortcode provided, build the necessary regex to temporarily change [shortcode] to {shortcode} and then back
	foreach ($shortcodes as $shortcode)
	{
		$allowed_matches[] = '/\[('.$shortcode.'[^\]]*)\]/';
		$restore_allowed_matches[] = '/\{('.$shortcode.'[^\}]*)\}/';
	}
    //change safe shortcodes from [shortcode] to {shortcode}
	$safe_content = preg_replace($allowed_matches, '{$1}', $content);
    //strip remaining [shortcodes]
	strip_shortcodes($safe_content);
    //change {shortcodes} back to [shortcodes] and return result of do_shortcode() on that content
	$trimmed_content = preg_replace($restore_allowed_matches, '[$1]', $safe_content);
	return do_shortcode($trimmed_content);
}
}}}



Seems like this would be a nice addition to core functionality.",beezeee
Future Releases,16745,doubled replace in setup_postdata,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-04T11:36:53Z,2011-03-23T14:12:14Z,One less to go. Could be array'ed as well. Found in http://wordpress.stackexchange.com/questions/8031/is-it-necessary-to-use-wp-reset-query-in-a-wp-query-call,hakre
Future Releases,22300,enhance urlencode_deep(),,General,3.4,normal,normal,Future Release,enhancement,new,has-patch,2012-10-28T14:53:43Z,2012-11-13T01:13:53Z,It would be handy if urlencode_deep() handled objects as well as arrays. Patch includes corresponding urldecode_deep(),wpmuguru
Future Releases,21596,enhance wp_get_archives to support post types,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-15T18:13:53Z,2013-05-07T19:05:42Z,"I needed to populate an option list of a form with the titles of custom post types. It seemed like wp_get_archives would do the trick, except there was no way to tell it to grab a post_type. So I enhanced wp_get_archives to support and additional parameter.",jjminkle
Future Releases,18613,get_adjacent_post() doesn't find private posts,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-07T15:52:25Z,2011-11-16T00:49:50Z,The status is always 'publish'.,scribu
Future Releases,13771,get_the_date() to accept optional $post argument,,General,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-07T17:24:33Z,2012-10-10T21:14:09Z,Currently the get_the_date() function only utilizes the global $post.  Allowing this function to accept an optional $post object as an argument would be beneficial for getting the formatted date of any post.,bigdawggi
Future Releases,16781,is_wp_error() simplification,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-07T00:20:17Z,2011-03-09T18:18:46Z,"please review. see #2600, [3667], [http://php.net/manual/en/function.is-a.php is_a()], [http://www.php.net/manual/en/function.is-subclass-of.php is_subclass_of()]",hakre
Future Releases,16938,list_files() refactoring,,General,3.1,low,normal,Future Release,enhancement,reviewing,close,2011-03-22T21:08:35Z,2011-03-23T19:34:13Z,I was taking a look into list_files(). I've seen that older code (Related: #16937) that's handling false and then false again and so on which can be just reduced + some clean-ups.,hakre
Future Releases,17856,magic_quotes_gpc future-proof enhancements,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-06-21T01:13:44Z,2012-10-31T03:23:05Z,"As is well documented across the Internet, the magic_quotes_gpc feature is going away in future versions of PHP.  WordPress has historically automatically escaped _GET, _POST, _REQUEST and _COOKIE input from users, even if the server doesn't have magic_quotes_gpc turned on.  Regardless of the reasons for this, having a way to move forward seems absolutely necessary.

Current issues related to this include (among others):

* maintaining backwards compatibility for those plugin developers who depend on WordPress handling this escaping for them
* giving plugin developers a way to help put magic_quotes_gpc in the past
* giving developers access to the original super globals
* making these super global values read-only so that poorly written plugins/themes don't cause conflicts and problems for other plugins/themes

----

Attached is a patch which I believe handles this effectively without causing any backwards compatibility issues.

This patch introduces 5 new getter functions for wordpress:

* wp_input_get()
* wp_input_post()
* wp_input_get_post()
* wp_input_cookie()
* wp_input_server()

When WordPress first loads, these 5 functions grab the original copies of their respective super globals, undo magic_quotes if it's turned on and then makes the values accessible in a read-only way.

Moving forward, plugin developers can be encouraged to use, for example, wp_input_get('name') rather than $_GET['name'] .  In addition to giving developers a migration path away from the forced magic_quotes_gpc behavior, additional security filters could be done on the given values for further protection.",troydavisson
Future Releases,21243,move password hint text to a function,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-12T16:56:24Z,2012-07-16T02:52:21Z,"The password hint text, noted below, is hard coded in four places:

{{{
wp-admin/install.php
wp-admin/user-edit.php
wp-admin/user-new.php
wp-login.php
}}}

{{{
Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! "" ? $ % ^ &amp; ).
}}}

This approach is prone to mistakes when changes are made.  In addition, plugins that want to override the text need to use the resource intensive and clumsy gettext filter.

Per nacin and westi, the attached patch moves the text to a function ({{{wp_password_hint()}}}) in {{{wp-includes/user.php}}} and adds a filter ({{{password_hint}}}).",convissor
Future Releases,13592,script_loader_src and style_loader_tag filters,,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-05-28T09:40:07Z,2013-02-07T21:53:06Z,"i'm trying to build a scripts and styles minifier.
( i don't like the way wp-minify does it ... )

thanks to the style_loader_tag filters, i'm pretty proud of my work for stylesheets.

but why don't we have a script_loader_tag ?

something like this in class.wp-scripts.php : 
{{{
   $src .= apply_filters( 'script_loader_tag', ""<script type='text/javascript' src='$src'></script>\n"", $handle );
}}}


ok i'll try to submit a real patch.
",olivM
Future Releases,18518,suggest.js: don't store the URL in the options object,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-25T20:35:21Z,2011-11-16T00:51:03Z,"...because it prevents re-using the same instance for different URLs:

{{{
var suggest_args = {
	multiple     : true,
	delimiter    : ',',
	resultsClass : 'qc-suggest-results',
	selectClass  : 'qc-suggest-over',
	matchClass   : 'qc-suggest-match',
};

$( '#ticket-assign input' ).suggest( QC_L10N.ajaxurl + '?action=qc-user-search', suggest_args );

$( '#ticket-tags input' ).suggest( QC_L10N.ajaxurl + '?action=ajax-tag-search&tax=post_tag', suggest_args );
}}}

With the above code, both inputs will look for items in the same URL: the second one.

Attached patch fixes this.",scribu
Future Releases,19572,switch_to_post() stack implementation (similar to switch_to_blog()),,General,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-15T21:54:57Z,2012-01-23T20:21:14Z,"One of the challenges themes and plugins have is the balance between utilizing the core APIs that rely on global variables, while leaving things in a ""clean"" state for the next worker in the chain.

For example, I might have a shortcode that pulls content from another post, outputs a title or some other data, then needs to restore the previous post environment. The attached patch provides APIs for doing just this - using the same stack approach that switch_to_blog() takes in a multi-site instance.

To set up a post context, call: switch_to_post($post_id);

This can be called multiple times, diving deeper into the stack. Then each process is responsible for restoring the $post context by calling: restore_post();

This goes back to the stack, bumps out the current post and restores the previous post's context.

There is some test code for demonstration here:

https://gist.github.com/1309915",alexkingorg
Future Releases,19097,use wp_register() in wp-login.php,,General,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-31T17:35:15Z,2012-10-01T00:33:09Z,"wp_register() calls a filter to change the registration link, but wp-login.php still has the link hardcoded to the default link.
",linuxarchitect
Future Releases,21435,wp-includes/comment.php line85 causes slow query due to the non-indexed column,,General,3.4.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-01T00:31:47Z,2012-08-01T00:31:47Z,"Following query is causes slow query if  the wp_comment table is huge.
{{{
$ok_to_comment = $wpdb->get_var(""SELECT comment_approved FROM $wpdb->comments WHERE comment_author = '$author' AND comment_author_email = '$email' and comment_approved = '1' LIMIT 1"");                                                         
}}}

In my case, I have 600 thousand records in the wp_comments table and the query takes over 10 minutes to complete.

http://matsu.teraren.com/blog/wp-content/uploads/2012/08/a40b1291fd99413dc3057fbe0b792a93.png

To fix this issue, I added index on my running wordpress and returns 0.00sec.

I'll attach the patch for create table file.
",matsubobo
Future Releases,14760,wp_get_shortlink not working on pages,,General,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-09-02T11:07:42Z,2011-08-16T18:46:32Z,"wp_get_shortlink doesn't return anything on pages.

reason:


{{{
2196   if ( isset($post->post_type) && 'post' == $post->post_type )
2197         $shortlink = home_url('?p=' . $post->ID);
}}}
",mattsay
Future Releases,20359,wp_list_categories - Diff to make use_desc_for_title parameter more flexible,,General,2.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-04T22:57:44Z,2012-04-05T12:58:17Z,"Right now, the @use_desc_for_title is defined as a boolean parameter which outputs category link title attributes containing either:
- Category descriptions by default (''bool '''1''''');[[BR]]
- 'View all posts filed under [category-name]'.[[BR]]
Now, since the title attribute is not required for '''<a>''' tags in any HTML spec, I made a patch to turn this parameter into a string, with the following supported values:[[BR]]
- 'desc' => (default) Outputs category descriptions;[[BR]]
- 'viewall' => Same output as ''bool '''0''''' (''false'') before: 'View all posts filed under [category-name]';[[BR]]
- 'none' => Does not output any title attributes.[[BR]]

I have tested this thoroughly, but additional testing would not hurt.",Marventus
Future Releases,16895,wp_list_pluck cannot be used with arrays of references,,General,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-19T11:47:37Z,2011-03-22T16:54:44Z,"Example code:

{{{
$one = array('num' => 1);
$two = array('num' => 2);
$input = array( &$one, &$two );

$nums = wp_list_pluck($input, 'num');

var_dump($nums, $input);
}}}

Example output:
{{{
array
  0 => &int 1
  1 => &int 2
array
  0 => &int 1
  1 => &int 2
}}}
Expected output:
{{{
array
  0 => int 1
  1 => int 2
array
  0 => &
    array
      'num' => int 1
  1 => &
    array
      'num' => int 2
}}}

This is caused by wp_list_pluck using the same variable name for the input array, and then overwriting it for the return.

One such real life example, is $wp_query->comments

See patch",dd32
Future Releases,18738,Improving cron spawning and other non-blocking HTTP requests,dd32*,HTTP,,high,normal,Future Release,enhancement,accepted,has-patch,2011-09-21T17:03:50Z,2012-10-20T19:10:59Z,"The order of preference for transport methods in the HTTP API is cURL, streams, fsockopen. However cURL and streams cannot perform non-blocking requests, but fsockopen can. Therefore, fsockopen should be the highest priority transport method for non-blocking HTTP requests.

Here's an example. I have a script at `http://ctftw.com/sleep.php` which sleeps for 5 seconds.
{{{
$start = microtime( true );
wp_remote_get( 'http://ctftw.com/sleep.php', array(
	'blocking' => false
) );
$end = microtime( true );
var_dump( $end - $start );
}}}
When the cURL or streams transports are used, this request blocks the page for 5 seconds (the default request timeout is 5 seconds).

Let's disable the cURL and streams transports (leaving only fsockopen) and try again:
{{{
add_filter( 'use_curl_transport',    '__return_false' );
add_filter( 'use_streams_transport', '__return_false' );

$start = microtime( true );
wp_remote_get( 'http://ctftw.com/sleep.php', array(
	'blocking' => false
) );
$end = microtime( true );
var_dump( $end - $start );
}}}
This request does not block the page because fsockopen returns immediately after sending the request.

== Cron Spawning ==

This is a benefit to core because it improves the cron spawner (and can potentially fix #8923). The cron spawner uses a timeout of 0.01 seconds and a non-blocking request, but actually takes longer than 0.01 seconds.

Example:
{{{
$cron_url = get_option( 'siteurl' ) . '/wp-cron.php?doing_wp_cron';
$start = microtime( true );
wp_remote_post( $cron_url, array(
	'timeout' => 0.01,
	'blocking' => false
) );
$end = microtime( true );
var_dump( $end - $start );
}}}
This request takes around 1.1 seconds on the three servers I've tested it on.

Let's disable cURL and streams again (leaving only fsockopen) and see what we get:
{{{
add_filter( 'use_curl_transport',    '__return_false' );
add_filter( 'use_streams_transport', '__return_false' );

$cron_url = get_option( 'siteurl' ) . '/wp-cron.php?doing_wp_cron';
$start = microtime( true );
wp_remote_post( $cron_url, array(
	'timeout' => 0.01,
	'blocking' => false
) );
$end = microtime( true );
var_dump( $end - $start );
}}}
On each of my three servers I see a time of around 0.001 seconds.

We can therefore improve the cron spawner by setting fsockopen as the preferred transport method for non-blocking HTTP requests.

In an attempt to address #8923, we can change the cron request timeout to 1 second. If fsockopen is used, the request is lightning fast at ~0.001 seconds. If it's not available and the HTTP API falls back to cURL or streams then it takes ~1.1 second, which is the same time it takes currently. (Hopefully that makes sense.)

Patch coming up for those who want to test it.",johnbillion
Future Releases,9072,New Socket HTTP transport to use stream_socket_client,,HTTP,,normal,normal,Future Release,enhancement,assigned,has-patch,2009-02-09T05:45:50Z,2012-06-28T13:43:20Z,"Steams use of stream_socket_client:
 * Support SSL.
 * Better support for non-blocking.
 * Damn sexy.",jacobsantos
Future Releases,23163,3.6 Network Admin Help Text,,Help/About,,low,normal,Future Release,enhancement,new,has-patch,2013-01-09T23:35:35Z,2013-03-09T03:19:18Z,"One of the [http://make.wordpress.org/docs Doc team's] action items for 3.6 is to work on overhauling the Network Admin help tabs, many of which contain outdated and, well, unhelpful information. 

Our goals:
* Focus on writing action vs description-based help text
* Aim for a consistent voice
* Pave the way for future Help UI changes in how we structure the information

Any Network Admin screen is fair game but by no means do we intend to change strings just for the sake of change. It was the consensus of the team to focus on this effort earlier in the release cycle than usual so that translators will have plenty of time to work on new strings and provide feedback.

Following some [https://twitter.com/DrewAPicture/status/295248525699190785 feedback] from @nacin, @markjaquith, and @aaroncampbell, it was decided the best format for concatenating help tabs strings should follow this format going forward:

{{{
$example_string = '<p>' . __( 'This is some help text' ) . '</p>';
$example_string .= '<p>' . __( 'This is some more help text' ) . '</p>';
 
get_current_screen()->add_help_tab( array(
'id'	=> 'example',
'title'	=> __( 'Example' ),
'content'	=> $example_string
) );
}}}",DrewAPicture
Future Releases,21523,Add additional escaping to credit.php,,Help/About,3.4.1,normal,normal,Future Release,enhancement,new,has-patch,2012-08-09T01:13:41Z,2012-11-07T20:16:49Z,"`/wp-admin/credits.php` doesn't fully escape all of the data that it displays. It should be properly escaped like any other third party data.

What if WordPress.org were somehow compromised?",Viper007Bond
Future Releases,20661,Add help text for search usage in Multisite User browsing,,Help/About,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-05-11T18:32:34Z,2012-05-12T04:40:21Z,"Search on the Network Users page defaults to wildcards disabled by default. This may not be expected functionality by a lot of end users, so I think some notes on how to use search should help.

Related: #20135",ericlewis
Future Releases,21273,Automatically open help panel,,Help/About,,normal,trivial,Future Release,enhancement,new,has-patch,2012-07-14T19:04:20Z,2012-10-30T17:32:36Z,"The help screen is highly inaccessible. Developers are not able to link to content in the help panels if you need to point users to specific directions for your plugin.

This patch is a quick stab at it to see if it's worth while.

What it does it allow direct links to the help panel. Upon pageload, it'll automagically open up to the correct panel.

Usage:
1. Install the patch
2. Click http://wordpress.dev/wp-admin/index.php#tab-panel-help-layout

Again, this is a quick stab. The concept could definitely be improve/abstracted and DRYed up.

Let me know your thoughts :-)",ptahdunbar
Future Releases,17146,Don't limit screen meta tab CSS to content within #screen-meta,koopersmith,Help/About,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-04-15T20:36:40Z,2012-11-01T05:52:09Z,"Currently, the styles for screen meta tabs are limited to items within #screen-meta. I think we should use the .screen-meta-toggle class instead, so these styles can be used elsewhere in the admin without duplicating the CSS.

I ran into this problem when working on the fullscreen plugin and adding a help tab, but not inside #screen-meta.",koopersmith
Future Releases,21341,Explain Site and User count update frequency in Network Admin contextual help,,Help/About,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-07-22T01:03:00Z,2012-07-22T01:03:00Z,"While adding a bunch of sites to a multisite install today, I noticed for the first time that the counts (option `blog_count`) for sites and users in the Right Now box don't update immediately. I was confused, but then saw [[ticket:15170]] which moved the count update to a twicedaily cron for scalability reasons.

It may be helpful to include this information in the contextual help for others who will find themselves confused. Attached patch is an attempt at that.",jeremyfelt
Future Releases,23687,Filter Contextual Help Label,,Help/About,3.5,normal,normal,Awaiting Review,enhancement,new,close,2013-03-04T11:54:04Z,2013-03-04T17:40:07Z,"The contextual help feature is a great way to add help to themes and Plugins. However, we often find that our theme/Plugin users do not even notice the generic 'Help' button on the top right of the admin screen.

It would be useful to be able to customise this label to include the theme/Plugin name so users know this is help specific to that theme/Plugin and not just WordPress generated help.

Currently there is no way to filter the help label. It is fixed to 'Help'. I have included a patch that allows you to filter it to display your own custom help label such as 'Plugin Help', 'Theme Help' etc.

Usage is then:

{{{
function custom_label($label, $screen_id){

	global $options_page_id;
	
	if ($screen_id == $options_page_id)
		$label = __( 'Plugin Help' );

	return $label;
}
add_filter('contextual_help_label', 'custom_label', 10, 2);
}}}
",dgwyer
Future Releases,14432,Role-based help text,garyc40,Help/About,3.0,normal,minor,Future Release,enhancement,assigned,has-patch,2010-07-27T18:53:00Z,2012-11-19T18:35:24Z,The text in the Help tab is based on the screen seen by an admin. We should make it so the role of the logged in user determines the text. ,jane
Future Releases,23311,Enable internationalization in PHPMailer,,I18N,3.5,normal,minor,Future Release,enhancement,new,has-patch,2013-01-28T16:37:06Z,2013-05-16T12:12:28Z,"Per the discussion in #23291, we should enable PHPMailer's internationalization feature so that any error messages returned by it and displayed to the user will be translated.",iandunn
Future Releases,7098,Multiple entity codes in POT file for the same character,,I18N,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-06-05T11:33:12Z,2012-01-07T03:27:15Z,"In the wordpress.pot file, two characters are represented by both their numbered and lettered HTML entities.  These are:

'''Em-dash:''' the POT file contains both &#8212; and &mdash;

'''Right angle quote:''' the POT file contains both &#187; and &raquo;

I'm not sure if it matters but it certainly is a little inconsistent.

",leuce
Future Releases,17128,POMO library performance considerations,,I18N,,normal,normal,Future Release,enhancement,new,has-patch,2011-04-13T20:21:18Z,2012-11-10T07:57:38Z,"Profiling a localized WordPress instance with WPLANG defined as 'de_DE' on my testbed shows that loading the .PO files for WP core and TwentyTen increases the frontend runtime by about 45 percent and the backend runtime by about 30 percent.

This is the profiling environment:

* WordPress 3.2-bleeding r17633
* TwentyTen 1.1
* No active Plugins
* Idling webserver on localhost
* Apache 2.2.9
* PHP 5.2.6
* MySQL 5.0.67
* Xdebug 2.1.1
* webgrind 1.1
* Windows 7 SP1

Without WPLANG defined, runtimes for various code paths are as follows:

* Front page with 10 simple posts: 2300 ms
* Admin Dashboard: 3000 ms
* RSS XML feed output: 1130 ms

With the de_DE l10n in effect, runtimes increase as such:

* Front page with 10 simple posts: 4300 ms
* Admin Dashboard: 4280 ms
* RSS XML feed output: 2950 ms

I wonder whether anyone is able to reproduce this grave performance degradation. A sample output from webgrind showing various POMO functions as the top offenders is attached.
",wet
Future Releases,22229,Plurals in JavaScript,nbachiyski*,I18N,,low,normal,Future Release,enhancement,accepted,has-patch,2012-10-19T19:25:40Z,2013-03-16T17:20:14Z,"This is something koopersmith needs in the media modal, and I've seen a few other recent use cases.",nacin
Future Releases,16876,"Separate msgid ""Post"" from wp-includes/post.php:1154 for the administration menu and custom menu creation screen",,I18N,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-17T15:56:51Z,2011-11-15T00:34:32Z,"Hey! It seems that both the custom menu creation screen and the administration menu bar are using the same translation. Could you please separate them? Here's the relevant bit of tags/3.1/wordpress.pot:


{{{
 2700 #: wp-includes/post.php:1154
 2701 msgctxt ""post type singular name""
 2702 msgid ""Post""
 2703 msgstr """"
 2704 
 2705 #: wp-includes/post.php:1154
 2706 msgctxt ""post type singular name""
 2707 msgid ""Page""
 2708 msgstr """"
}}}



Cheers!
WJ",waclawjacek
Future Releases,18218,Too many similar translation string,,I18N,3.2.1,normal,normal,Awaiting Review,enhancement,reopened,has-patch,2011-07-22T17:12:26Z,2012-06-06T18:30:59Z,"WordPress .po/.mo file is too big (3,312 strings). I know that we can't delete strings '''but''' we can reduce the file size by merging simmilar strings. WordPress has too many simmilar string. English developers don't notice this but non-english translators are frustrated by this when they have to translate the same string in 2 or 3 different variations.

I suggest to merge simmilar strings, this way will achive two things:

1. Smaller .po/.mo files.
1. Easier translation process as there will be less string to translate. I belive 200-300 strings less.

(Check out the bbPress ticket #BB1584 for more information and examples)

Few WordPress examples:

----

'''No login ID submitted'''
* wp-includes/class-pop3.php:168

'''no login ID submitted'''
* wp-includes/class-pop3.php:115

(change n->N)
----

'''You are not allowed to post as this user.'''
* wp-admin/includes/post.php:65

'''You are not allowed to post as this user'''
* wp-includes/class-wp-xmlrpc-server.php:2263

(add '.')
----

'''Log out'''
* wp-includes/general-template.php:189

'''Log Out'''
* wp-includes/admin-bar.php:92
* wp-admin/admin-header.php:165

'''Log out &raquo;'''
* wp-includes/theme-compat/comments.php:73

'''Log out of this account'''
* wp-includes/theme-compat/comments.php:73

(change all to ""Log Out"")
----

'''Log In'''
* wp-includes/general-template.php:261
* wp-login.php:627
* wp-login.php:646
* wp-admin/install.php:144
* wp-admin/install.php:238

'''Log in'''
* wp-includes/general-template.php:187
* wp-login.php:419
* wp-login.php:444
* wp-login.php:475
* wp-login.php:531

(change all to ""Log In"")
----

'''E-mail'''
* wp-includes/theme-compat/comments-popup.php:80
* wp-login.php:520
* wp-admin/user-new.php:229
* wp-admin/user-new.php:291
* wp-admin/comment.php:160
* wp-admin/includes/class-wp-users-list-table.php:165
* wp-admin/includes/template.php:356
* wp-admin/user-edit.php:329

'''Email'''
* wp-includes/comment-template.php:1525

'''E-mail address'''
* wp-admin/options-general.php:104
* wp-admin/options-general.php:123

'''Your E-mail'''
* wp-admin/install.php:128
",ramiy
Future Releases,22994,Remove 'blogroll' from the import options,,Import,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-18T17:53:16Z,2012-12-18T20:52:24Z,"Now that we've dropped links (#21307), we shouldn't encourage importing them. It'll just confuse the newbies.

This will require a change to http://api.wordpress.org/core/importers/1.0/, so while we can clean up /wp-admin/includes/import.php (attached) it won't matter till that's scrubbed. Maybe upgrade that to 1.1 so people who are on older WP are left alone?",Ipstenu
Future Releases,19225,WordPress-Importer : Perform less database queries when backfilling attachment urls,duck_,Import,,normal,normal,WordPress.org,enhancement,assigned,has-patch,2011-11-10T12:36:42Z,2011-11-11T08:20:11Z,"The current backfill_attachment_urls() approach causes a REPLACE query for each attachment url. This can cause the invalidation of a lot of data and also cause MySQL replication lag in some cases.

The attached patch will make sure to bundle these requests and perform only maximum of one db update per post.
",tott
Future Releases,12578,import from movable type doesn't import tags or basename,,Import,3.0,normal,normal,WordPress.org,enhancement,assigned,has-patch,2010-03-11T00:58:46Z,2010-10-30T18:44:26Z,"The current movable type import script doesn't import tags from movable type and it doesn't import the basename (movable type's version of the post_name, which is necessary for a seemless transition). Adding support for importing these two important bits is not terribly difficult and I'm working on improving the import script to aid in my own upcoming migration. I'll attach a patch against the trunk.",stevecrozz
Future Releases,23914,Document WP_Dependencies,,Inline Docs,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-31T05:58:42Z,2013-03-31T17:31:49Z,"The code in `wp-includes/class.wp-dependencies.php` needs better documentation. Three confusions in particular:

1. $args has a different meaning in WP_Dependencies and _WP_Dependency. In the first, it is a way to append query strings to the URL's. In the second it is a generic 5th parameter used by the API functions wp_register_*() and wp_enqueue_*(). In class WP_Styles it stands for $media. In class WP_Scripts it stands for $in_footer.

2. `$handle` sometimes means the registered `handle`, and other times means `handle?args`.

3. `$group` stands for page placement in WP_Styles (0=header, 1=footer), and is unused in WP_Scripts (false). But a prominent comment uses the word ""Groups"" to describe something entirely different, a registered item with dependencies but no src. In my proposed documentation I use the word ""Alias"" for this meaning. An example of an alias is in wp-includes/script-loader.php:
{{{
add( 'scriptaculous', false, array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls') );
}}}

Patch attached. No code changes.

An example of contributors not knowing about Confusion 2 is #13078.",kitchin
Future Releases,19203,Fixed a couple of function descriptions in wp-includes/plugin.php,,Inline Docs,1.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-08T05:53:54Z,2012-09-17T21:28:25Z,"There were a couple of errors I found in the function docblocks while tinkering in the plugins.php file as well as a confusing example, so here's what I fixed:

'''add_filter()''':
It mentioned filters were for modifying ""strings"", which isn't correct since you can also use filters to modify arrays, etc., so I changed the docblock to reflect this.
I also changed the example code to {{{ var_dump($example); }}} instead of {{{ echo $example; }}} since echoing arrays/objects etc. will cause an error.

'''apply_filters()''':
The example code block was confusing since it specified a filter function, but didn't show it being added and then just called apply_filters(), which I didn't notice the relation at first.
I added the {{{add_filter()}}} function in the code example for a clearer example so the reader will better understand the usage of this function.

'''_wp_call_all_hook()''':
A mysterious '''$hook''' parameter was defined in the docblock, however the parameter simply doesn't exist.  Not sure if this was a passing thought or someone falling asleep while writing it, but I've removed it from the docblock.

Thanks!",amereservant
Future Releases,16750,Improve inline docs for l10n functions,,Inline Docs,3.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-03-04T19:22:29Z,2011-07-15T21:43:09Z,"Changes to the inline documentation in WordPress 3.1.

These are documentation changes only.",CharlesClarkson
Future Releases,9927,deprecate category_description() in favor of get_category_description(),westi*,Inline Docs,2.8,normal,minor,Future Release,enhancement,accepted,has-patch,2009-05-24T14:30:03Z,2010-10-28T10:35:19Z,,ramiy
Future Releases,23122,inline doc improvements in WP_Filesystem_Direct and WP_List_Table,,Inline Docs,3.5,normal,trivial,Future Release,enhancement,new,has-patch,2013-01-04T17:49:42Z,2013-05-16T12:07:16Z,A pass over `WP_Filesystem_Direct` and `WP_List_Table` classes to improve inline docs. Any suggestions/improvements/critiques are welcomed.,bananastalktome
Future Releases,12009,"Add support for HTML 5 ""async"" and ""defer"" attributes",azaozz,JavaScript,,normal,normal,Future Release,enhancement,new,has-patch,2010-01-25T16:40:29Z,2012-10-24T18:55:25Z,"HTML5 supports async and defer attributes on script tags: http://www.w3.org/TR/html5/semantics.html#attr-script-async

Basic usage of these:

- ""async"" scripts get executed asyncronously, as soon as they're loaded. This lets them run without slowing down the page parsing (normally, all page processing stops while the javascript code is executing).

- ""defer"" scripts get deferred from running until page processing is complete. Sorta like jQuery(document).ready() does, except without pre-definitions. Faster, in other words, since it's built into the browser.

Correct usage would dictate that ""libraries"" like jQuery and such would get the async attribute, while bits of code that use the current DOM would get deferred. The defer bit is basically optional though, since most all code that exists uses something like jQuery(document).ready() already, when it's necessary, and so there's not a lot of benefit there.

The just released Firefox 3.6 supports the async attributes, so you can do testing with these immediately. I've noticed a speedup on the wp-admin side of things by using it, but I have not measured this and cannot be sure I'm not imagining it. Still, it does seem like it makes the page appear faster.
",Otto42
Future Releases,10832,Allow  different query paramter on suggest.js,azizur,JavaScript,,normal,normal,Future Release,enhancement,reviewing,has-patch,2009-09-23T16:45:34Z,2011-04-04T09:27:21Z,"The current suggest.js defaults to the ""q"" parameter for the query string.

This patch allows the user to define another parameter. If no parameter is defined, the script will default to ""q"".",yoavf
Future Releases,15534,Add more info to moderation emails,,Mail,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-11-21T23:43:41Z,2011-01-09T07:07:35Z,"When comments have been approved, include who approved it in the email that gets sent to admin saying there's a new comment. I.e.:

""Ryan approved this comment:
[current comment info in email]""",jane
Future Releases,18926,Provide with the ability to monitor emailing failures,,Mail,3.2.1,normal,minor,Future Release,enhancement,new,has-patch,2011-10-12T21:11:28Z,2012-02-27T16:18:09Z,"Add an action hook in 'wp-mail' function on catching 'phpmailerException' and before returning 'false'.


This way, a plugin may track all email sending failures.",npetetin
Future Releases,23291,wp_mail should handle phpmailer exceptions instead of ignoring them,,Mail,3.5,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-01-25T07:04:37Z,2013-03-04T07:12:02Z,"Right now code in wp_mail that call phpmailer looks like

{{{
	try {
		$phpmailer->Send();
	} catch ( phpmailerException $e ) {
		return false;
	}
}}}

or worse (not failing at all).

Yesterday had to hack core files to find out that an email address did not have a valid email format. Exceptions should either propagate in some way, or be reported to an error log.
",mark-k
Future Releases,15448,wp_mail() sets Content-Type header twice for multipart emails,nacin,Mail,,normal,normal,Future Release,enhancement,reviewing,has-patch,2010-11-17T12:15:04Z,2013-05-16T12:09:18Z,"When trying to send emails via `wp_mail()` with a Content-Type of multipart/alternative, the Content-Type header will be set with `$phpmailer->ContentType`, and again with `$phpmailer->AddCustomHeader()`, which causes two Content-Type headers in the email:
{{{
Content-Type: multipart/alternative;
	 boundary=""example_boundary""
Content-Type: multipart/alternative; charset=""""
}}}

This appears to cause errors in Outlook, as there is no boundary on the latter.

The cause of this is `PHPMailer::GetMailMIME()`, as it does not know that the email is a multipart email. The easiest way to achieve this appears to be to simply allow the user to set the AltBody via `wp_mail()`. In order to achieve backwards compatibility, `wp_mail()` should work out which part is the text/plain one and which is the text/html one based on the boundary.

I'll be working on a patch for this.",rmccue
Future Releases,12855,Add 2 filters on get_media_item(s) functions,,Media,,low,normal,Future Release,enhancement,new,has-patch,2010-04-05T11:04:08Z,2010-04-05T14:17:37Z,Allow plugin to add some content on media functions.,momo360modena
Future Releases,18835,Add filter to image_resize_dimensions( ) return values,,Media,3.2.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-10-01T16:14:39Z,2012-10-03T01:00:57Z,"Requesting a filter on the values about to be returned, including access to the function's original arguments.

Use case:
Currently, any cropping happens to images always crops to the top-left corner (0,0). Want to be able to write a plugin that will allow cropping with more options (say, crop out at the middle of the image, etc).",scottconnerly
Future Releases,20151,Add parameter for wp_embed_defaults(),,Media,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-01T20:08:17Z,2012-03-02T06:07:04Z,"If we can add a parameter (like $url) to wp_embed_defaults(), then people can filter more intelligently as WordPress extends to allow more and more oEmbed.

",wpsmith
Future Releases,24019,"Allow user to specify image size when selecting ""Media File"" as ""Link To"" target for image attachments.",,Media,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-10T00:39:26Z,2013-04-15T15:43:33Z,"Currently selecting ""Media File"" as the ""Link To"" target causes an embedded image to link to the originally uploaded file.  These files can be very large and there is no way to non-destructively resize them on upload while retaining this ""Link To"" functionality.

This enhancement patch adds a drop down list of available image sizes to the form (defaulting to Full Size - the existing behaviour) when ""Media File"" is selected, allowing the user to link to custom image sizes as specified in their themes or plugins if desired.

[[Image(http://dfcowell.net/wp-content/uploads/2013/04/attachdisplay.png)]]


[[Image(http://dfcowell.net/wp-content/uploads/2013/04/attachdisplay2.png)]]

This is a significant improvement over default functionality, especially when used in conjunction with a lightbox plugin.  It allows the user to retain the full-size image on the server while being able to specify a link to a smaller size if desired.",dfcowell
Future Releases,21329,Consolidate filters and functions in wp-admin/includes/media.php,,Media,,normal,normal,Awaiting Review,enhancement,new,close,2012-07-20T20:28:59Z,2013-01-28T23:50:11Z,"in wp-admin/media.php, there are several functions that do similar things and could be combined, simplifying how they get used.",martythornley
Future Releases,17866,Copy adjustment in wp-admin/includes/media.php,,Media,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-06-22T02:54:50Z,2011-08-10T15:49:33Z,"""Link Image To:"" seems preferable to ""Link URL"" in wp-admin/includes/media.php (and it is more consistent as it is already used on the ""From URL"" tab when inserting an image).",hew
Future Releases,22679,Ensure that unattached images inserted from media library get pretty url directly,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-02T11:24:19Z,2012-12-02T22:13:17Z,"When inserting an unattached image (with no parent) from the media library and setting the ""Link To"" option to ""Attachment page"", the URL at first gets the default query string format (with a '?'). Though after updating the post it gets the final ""pretty"" format (which seems to happen in the function _fix_attachment_links() in wp-admin/includes/post.php).
The provided patch, gives the URL the final pretty format directly.
See also #22085.",jond3r
Future Releases,12120,Force Media Image Generation (for thumbnails),,Media,,normal,normal,Future Release,enhancement,new,has-patch,2010-02-03T17:53:32Z,2010-03-07T08:19:33Z,"It would be very useful to force the generation of a thumbnail images for uploaded files. With content being syndicated to feeds, e-readers, and mobile devices, the ability to have a working thumbnail is more important.

For example, if the original image has dimensions of 250x50, and the default thumbnail size in WP is 150x150, a thumbnail will not be generated because the 50 height is smaller than the 150 pixel minimum.

The fix would be to include an additional parameter to the image_resize_dimensions to allow the function the dimensions. A filter could be applied to allow the user to set which images should force the generation of a resized image (i.e. to exclude a medium and large image from being generated for a 250x50 image) by passing in the original width/height and max width/height.

in wp-includes/media.php

========

function image_resize( $file, $max_w, $max_h, $crop = false, $suffix = null, $dest_path = null, $jpeg_quality = 90 ) {

...

$force = apply_filters('image_resize_dimensions_force', $orig_w, $orig_h, $max_w, $max_h);
$dims = image_resize_dimensions($orig_w, $orig_h, $max_w, $max_h, $crop, $force);

========

function image_resize_dimensions($orig_w, $orig_h, $dest_w, $dest_h, $crop = false, $force = false) {
...

// if the resulting image would be the same size or larger we don't want to resize it
	if ( $new_w >= $orig_w && $new_h >= $orig_h && !$force )
		return false;
",atow
Future Releases,23331,Gmagick support,,Media,,normal,normal,Future Release,enhancement,new,has-patch,2013-01-30T22:33:53Z,2013-04-25T20:50:14Z,In 3.5 we added Imagick support. It would be great to also include Gmagick. Since Graphicmagick is just more awesome then ImageMagick.,markoheijnen
Future Releases,16635,Handle grouped MIME-Types,,Media,3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-02-24T13:41:14Z,2011-02-24T13:41:14Z,"I'm trying to add a filter in the Media Library for common archive file types. The problem is that there are a lot of MIME-Types for archive files and none have a common prefix. Wildcards are not a solution here.

POC:
{{{
add_filter('post_mime_types', 'modify_post_mime_types');

function modify_post_mime_types($post_mime_types) {
	$type = 'application/zip,application/x-tar';
	$labels = array(
		__('Archive'), 
		__('Manage Archives'), 
		__ngettext_noop('Archive <span class=""count"">(%s)</span>', 'Archives <span class=""count"">(%s)</span>')
	);

	$post_mime_types[$type] = $labels;

	return $post_mime_types;
}
}}}

I've tried using ""|"" (regexp) as a separator:
{{{
$type = 'application/zip|application/x-tar';
}}}
This works ok in wp_match_mime_types but fails in wp_post_mime_type_where.

I've found two possible solutions:

1) Change 
{{{
$post_mime_types = array_map('trim', explode(',', $post_mime_types));
}}}
to 
{{{
$post_mime_types = array_map('trim', preg_split('/,|\|/', $post_mime_types));
}}}
in wp_post_mime_type_where and use ""|"" as a separator;

2) Handle this in wp_match_mime_type (see code in attached file) and use "","" as a separator.

I'm aware that this is not a widely used filter but in my case this enhancement makes a lot of sense. If it works for images why shouldn't it work for archives? Also, why is wp_post_mime_type_where designed for comma-separated lists of MIME-Types if it's never used that way?",sergiu.paraschiv
Future Releases,21221,Image title and alt attribute content should be texturized.,,Media,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-11T19:49:18Z,2012-07-11T22:11:44Z,"
gallery_shortcode() texturizes the caption shown underneath images in galleries.

For consistency, alt and title tags content should also be texturized.
This is also valuable for developers extending the gallery shortcode or output, such as with the WordPress.com (and Jetpack) [http://en.blog.wordpress.com/2011/11/08/new-photo-carousel/ Gallery Carousel feature], as it provides i18n'd texturization, for EG.

See attached patch, which:
 * uses wptexturize() in wp_get_attachment_image() directly (/wp-includes/media.php), which makes it work with gallries, attachment pages, etc.
 * also uses wptexturize() in get_image_tag() (/wp-includes/media.php), for consistency.
 * uses wptexturize() in wp_get_attachment_link() (/wp-includespost-template.php), for consistency",stephdau
Future Releases,19181,Make image_link_input_fields filterable to add buttons,,Media,2.7,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-06T20:27:53Z,2012-07-07T10:31:15Z,"This patch makes the image_link_input_fields function filterable, so that additional buttons could be added to the Link URL section when inserting an image into a post.

In my case, I want to be able to link an image to the post it belongs to. It's a weird/tiny use case, but this filter will let me use a plugin to add it myself.",ryanimel
Future Releases,23172,"Media Library - Rename the default ""Images"" in dropdown to something more clear",,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-10T17:05:32Z,2013-02-01T21:40:13Z,"I have a group of about 6 people on my team and after the upgrade to 3.5 not one of them could figure out how to filter down to only the images attached to a post. I'm assuming that other people out there are having similar trouble..
The label ""Images"" makes it seem like that is where you could switch to other media types like ""Audio"" instead of filtering search results. I think ""All Images"" would be much more clear as to what the dropdown changes..",jacopo.vip
Future Releases,22949,More Accurate and Extensible MIME Type Handling,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-14T22:08:16Z,2012-12-17T21:42:22Z,"In the general case, a file extension may represent more than one MIME type. Currently, file extensions are married to a single MIME.

Specifically, let's look at the case of the ""ico"" file extension. Officially, the MIME type for this file should be ""image/vnd.microsoft.icon"". Unofficially, ""image/x-icon"" along with many others are usable.

The solution to this problem is extremely simple.

First, allow key => value pairs in the exhaustive MIME list located in wp_get_mime_types to be arrays so we can account for cases such as ico.

Second, add the proper handling for this change in wp_check_filetype. The way I have written it should not interfere with existing uses of this function (as they were all passing strings and now can pass a string or array).",mattonomics
Future Releases,22822,New media: 'Create a new gallery' button should indicate that it's the first of two steps,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-08T00:35:34Z,2013-01-22T01:57:11Z,"When creating a gallery, the primary action button at the bottom of the screen says 'Create a new gallery'. This button is actually the first of two steps, but this button doesn't make that clear.

It should either have an ellipsis appended, which is a standard UI convention for a non-immediate action, or it should say something like 'Next »'",johnbillion
Future Releases,15490,Preview oEmbed results when using the media modal to insert from URL,filosofo,Media,,normal,normal,Future Release,enhancement,new,has-patch,2010-11-19T15:22:45Z,2013-05-16T12:12:55Z,"If you insert a video URL via the ""Add media file from URL"" popup, it should do the following:

 * Determine whether the URL is oEmbed-able, and if so, insert the appropriate shortcode into the post.
 * Create a corresponding attachment with something indicating that it's a video in the `post_mime_type` field (even though we're not really dealing with true MIME types). That way, we can query video attachments, agnostic of where the actual video file exists.",filosofo
Future Releases,19990,Separate ID and display name for add_image_size,,Media,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-08T17:19:01Z,2012-12-31T02:05:50Z,"Currently, the first argument in `add_image_size()` is used as both the id (and key in the global array `_wp_additional_image_sizes`, and as the displayed name, since nothing else is available.

As such, the `$name`, when it is displayed, is not translatable, since some other code might be hard-coded to use a specific image size.

Instead of adding a 5th argument to the function, one solution might be to allow the first argument to be a string or array, and if it is an array, passing that as a new item in the array that is set. Theme or plugin authors could then check for the existence of this array value item, before falling back to using the key as per now.

Current Usage:
{{{
add_image_size( 'primary-sidebar', 150, 100 );
}}}

New Optional Usage:
{{{
add_image_size( array( 'primary-sidebar' => __( 'Primary Sidebar', 'my-textdomain' ) ), 150, 100 );
}}}",GaryJ
Future Releases,22100,Treat built-in image sizes the same as custom image sizes,,Media,,normal,normal,Future Release,enhancement,new,has-patch,2012-10-04T15:39:44Z,2013-05-14T13:50:34Z,"Goals:

0. Have a solid API for working with intermediate image size definitions.

1. Don't hardcode default image sizes; register them like any other.

2. ~~Introduce a 'pregenerate' arg, which will allow defining an image size that will not be automatically generated right after upload.~~

Related tickets: #15311, #21810",scribu
Future Releases,20046,Unnecessary default category code remains in wp_insert_attachment,,Media,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-02-15T00:13:30Z,2012-02-16T06:46:13Z,"After the default arguments are set, post_type is forced to 'attachment', negating any requirement for default categories to be added.

Quick patch removes:

(1) The test performed for 'post' post_type in order to assign default categories to an array. Result was always an empty array.

(2) The call to wp_set_post_categories with this empty array, which sends the post_ID through a bunch of taxonomy related code that passes over it. This does cause the action 'set_object_terms' to be skipped, which should be okay as attachments don't have terms.",jeremyfelt
Future Releases,15309,Updating Attachments will always set post_modified[_gmt] to the post_date[_gmt],,Media,,normal,normal,Future Release,enhancement,new,has-patch,2010-11-03T17:40:31Z,2012-04-20T05:31:51Z,"When updating an attachment the post_modified and post_modified_gmt are always set to post_date and post_date_gmt respectively. 

Is there a specific reason for this or can we allow attachments to properly set a modified time?

Attached is a proposed patch (which just copies code directly from `wp_insert_post`).",shawnparker
Future Releases,17857,WP_Embed - Split shortcode() function into two for increased flexibility,,Media,2.9,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-06-21T01:52:41Z,2011-06-21T03:33:55Z,"Currently, the WP_Embed class is restricted to posts; it takes a post ID as a parameter and checks the post meta table.

What I'd like to propose is to apply a filter to the post ID and split WP_Embed::shortcode() into two functions (at http://core.trac.wordpress.org/browser/trunk/wp-includes/media.php#L1177).

In a nutshell, let the link parsing be one function and if the link is oEmbed-worthy send it to the second function for parsing.  The second function could then be easily extended for usage in 3rd-party plugins not using WP posts (like BuddyPress).

Also, the patch checks the URL against each registered WP oEmbed provider's URL scheme if oEmbed discovery is false.  This is designed to prevent unnecessary external pinging of an oEmbed provider and avertible meta caching for failed attempts.  Andy Peatling primarily wrote this part of the code, which he sent to me awhile ago.

Attached patch is against r18324.",r-a-y
Future Releases,21668,WordPress still does not save jpeg as progressive jpeg,,Media,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-23T16:44:06Z,2013-04-08T12:52:45Z,"Every time WordPress does `imagejpeg` it should be doing `imageinterlace` beforehand to set progressive mode, but it's not.

http://php.net/manual/en/function.imageinterlace.php

Progressive jpeg has been supported by ALL browsers since 2001 or so.

progressive demo: http://bbshowcase.org/progressive/

Note that even if an ancient browser is listed somewhere as not rendering progressive, progressive jpeg still will be displayed, simply showing it all at once rather than gradual. 

IE6 for example WILL load progressive jpeg, it will just not render it progressively, instead it will load the entire image and then render all at once at the end.

Progressive algorithm will also make slightly smaller jpeg as a side effect in most cases.

ie. in `media.php`  
`
imageinterlace($newimage,1);
imagejpeg( $newimage, ...
`

This update is years overdue.

It might be possible to futureproof this by adding a filter to `$newimage` before the final `imagejpeg`. I am uncertain if that would work since filters would not pass `$newimage` by reference and instead make a copy - while newimage is only a pointer to php/gd memory. Can apply_filters be forced to work somehow by reference instead of a copy? Maybe that should be another feature idea.
",_ck_
Future Releases,17023,add hook for media_upload_library_form(),,Media,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T17:19:35Z,2011-04-02T18:24:05Z,"The ""Media Library"" tab of the Upload Media dialog includes a date filtering dropdown.  The query which populates it returns only month/year combinations in which attachments were uploaded.  However, that query is not filterable.

Plugins which filter backend access to attachments via standard WP_Query hooks need a way to make the month/year dropdown match those filtered results.

The corresponding patch adds query filter 'media_upload_year_month_query'
",kevinB
Future Releases,15149,image_get_intermediate_size partly ignores 'path' and 'url' fields and has inconsistent return values,,Media,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2010-10-19T13:13:32Z,2013-04-08T14:44:35Z,"the current implementations of image_get_intermediate_size and image_downsize in wp-includes/media.php have several inconsistencies.

image_get_intermediate_size() returns the following information about an attachment for registered sizes: file, width, height, path, url. for ad-hoc sizes (if the size argument is an array) it returns: file, width, height.

in the second case, path and url information that may have been set by a plugin is lost.

further, the calling function, image_downsize(), in any case regenerates the url like this


{{{
$img_url = str_replace(basename($img_url), $intermediate['file'], $img_url);
}}}

this means that now also for the registered sizes, the 'url' information is discarded. further, this means that for registered sizes, the url is computed twice, once inside image_downsize as detailed above, once in image_get_intermediate_size() like this


{{{
$data['url'] = path_join( dirname($file_url), $data['file'] );
}}}


to me, a cleaner approach would be to return the full information (file, width, height, path, url) independent of whether an image size is registered or not. all these fields can then also be directly calculated inside image_get_intermediate_size() and the caller does not have to bother with, e.g., generating paths and urls. further, this would allow to accept path and url information that is already present in the db, also in the case of ad-hoc image sizes.

i put together a patch that provides a potential solution. 

 ",whoismanu
Future Releases,19629,return option for media_sideload_image,,Media,3.3,normal,minor,Future Release,enhancement,new,has-patch,2011-12-21T09:14:50Z,2012-11-12T21:10:09Z,"An optional parameter to return the attachment id opposed to the html would be beneficial to those attempting to make use of this functionality outside of press this.

Ticket: #11993 has an enhancement suggestion to allow adding thumbnails from URL.  I have written a solution for this enhancement, and the result duplicates the functionality of media_sideload_image() setting the post thumbnail opposed to returning the image html markup.",slbmeh
Future Releases,17071,wp_count_attachments() is not filterable,,Media,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-07T05:05:10Z,2011-04-07T05:12:06Z,"The Media Library attachments listing and edit links can be filtered via existing WP_Query and has_cap hooks. However, corresponding attachment counts are not cleanly filterable.",kevinB
Future Releases,19272,Add Filter to Nav Menu Support Themes Text,,Menus,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-11-16T22:47:52Z,2011-11-16T22:47:52Z,"Frameworks could use a filter here to customize the message: _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ). For example, it may be the child theme that doesn't support the menus. Also, if none are supported (say via add_theme_support), then when it's zero, it says: ""Your theme supports 0 menus. Select which menu appears in each location."" (which doesn't make much sense). So adding a filter can enable theme developers to further customize.

An example use case:
add_filter( 'nav_menu_theme_support_text' , 'wps_nav_menu_theme_support_text' );
function wps_nav_menu_theme_support_text ( $num_locations ) {
	if ( $num_locations == 0 )
		$text = 'Your child theme does not support custom menus.';
	else
		$text = _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations );
	return $text;
}",wpsmith
Future Releases,16075,Add Post Type Archives support in Nav Menus,,Menus,3.1,normal,normal,Awaiting Review,enhancement,assigned,has-patch,2011-01-02T17:25:58Z,2013-03-29T13:32:54Z,"The setup: Take a post type (be it default or custom, in my case custom)

I wish to be able to add the archive page to the menu without adding the menu entry as hardcoded link (in my case /artists/) 

The problem: Adding it as hardcoded link does not bring the page up as current page in the menu when visiting the link. 

Example: 
http://www.blowmeup.ro/artists/ vs http://www.blowmeup.ro/crews/ ",matzipan
Future Releases,15214,Add class for menu items containing a sub-menu,,Menus,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-10-25T20:51:40Z,2013-04-23T02:12:41Z,"I wanted to add a class to the menu item LI elements for navigation menus that have sub menus. This would allow me to do some specific styling such as using a background that shows that a sub menu is available on hover.

I found that adding this support for both the wp_nav_menu and wp_list_pages functions was quite simple. So, I put together a patch in case it might be a good candidate for core.

The new classes are menu-item-with-sub-menu and page_item_with_children for wp_nav_menu and wp_list_pages, respectively. These class names were chosen to closely match the existing navigation classes of menu-item, sub-menu, page_item, and children.

I should note that while making this modification I found that the display_element method of the Walker class doesn't set has_children when $args is an object, just when it is an array. The patch also handles fixing this shortcoming of the Walker API.",chrisbliss18
Future Releases,19264,Add get_nav_menu_item_children(),,Menus,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-16T19:09:23Z,2011-11-16T19:09:23Z,"Just as get_page_children() exists, it would be good to have get_nav_menu_item_children(). Since the object is different the code get_page_children() needs to be slightly modified.",wpsmith
Future Releases,17221,Adopt a selected page hierarchy to a custom menu,,Menus,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-04-23T11:14:12Z,2011-05-26T15:40:33Z,"I don't know if this is a bug or a FR but I think it would be handy to have a option that when you make a costum menu that the parent and child pages stay in order. In other words: when you made a game page as parent and WoW as childpage that when you add those two pages at the costum menu editior that is automatic orderend as the parent child page

ps: sorry for bad english",JonezJeA
Future Releases,23627,"Allow plugins to short-circuit wp_nav_menu, good for performance",,Menus,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-26T12:49:28Z,2013-02-26T14:44:22Z,"We already have short-circuit filters for [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/widgets.php#L180 widgets], [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/option.php#L40 options], [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/link-template.php#L115 links] that all can be used for retrieving items from non-persistent data store. It would make a lot of sense if this feature was also available to `wp_nav_menu` which is particularly DB heavy. 

My suggestion is to add `pre_wp_nav_menu` right after `wp_nav_menu_args`, like so:

{{{
	$args = wp_parse_args( $args, $defaults );
	$args = apply_filters( 'wp_nav_menu_args', $args );
	$args = (object) $args;

	// Allow plugins to short-circuit menu output
	$nav_menu = apply_filters( 'pre_wp_nav_menu', '', $args );

	if ( ! empty( $nav_menu ) && $args->echo )
		echo $nav_menu;
	elseif ( ! empty( $nav_menu ) )
		return $nav_menu;

	// Get the nav menu based on the requested menu
	$menu = wp_get_nav_menu_object( $args->menu );
}}}",kasparsd
Future Releases,24101,Argument for separating wp_nav_menu items,,Menus,trunk,normal,normal,Awaiting Review,enhancement,new,close,2013-04-16T09:50:37Z,2013-04-17T06:59:01Z,"There is no proper way to add separators between menu items without generating custom walkers for menus.

The use of menu elements with separators are great for page styling where one doesn't need a menu container like in common primary navigation areas, but rather just want a quick list for example in a page footer.

I feel having to use a custom walker for this purpose is more work then need be, for a feature that would make sense to include with core, the below patch introduces the `separator` argument to the mix to address this.

{{{wp_nav_menu( array( 'separator' => ' | ' ) );}}}

The above would output a menu as `Menu item | Menu item 2 | Menu item 3`",Clorith
Future Releases,18527,Duplicate Menu Option or Add a Hook for Plugins,,Menus,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-26T21:09:21Z,2011-09-04T10:25:22Z,"It would be great to add a hook for plugins to be able to add options, etc, to Appearance > Menus. One thing would be to have the option to duplicate a menu.

I have worked up a patch that accomplishes this, which would serve as a good starting point for adding duplication functionality.",wpsmith
Future Releases,17698,"Nav menu ""Add to menu"" buttons should be disabled if they're actually non-functional",koopersmith,Menus,3.0,normal,trivial,Awaiting Review,enhancement,reviewing,has-patch,2011-06-05T23:10:27Z,2011-06-22T17:15:41Z,"Nav menu ""add to menu"" buttons currently stay enabled, or enabled-looking, even if no .categorychecklist are checked or if no custom link URL is entered. We should dynamically specify whether that button is enabled or not, based on the options in that postbox.",mitchoyoshitaka
Future Releases,23832,Nav menu screen text tweaks,,Menus,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-20T22:38:08Z,2013-03-21T17:23:57Z,,johnbillion
Future Releases,19365,Pages listed under Most Recent and Search tabs of Page meta box in Appearance -> Menus should be filterable,,Menus,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-26T09:10:41Z,2013-03-04T17:30:09Z,"On the '''''Appearance''''' -> '''''Menus''''' administration page, pages listed under the '''''Most Recent''''' and '''''Search''''' tabs of the '''''Page''''' meta box on the left are not filterable. Since the pages listed under the '''''View Al'''l'' tab of the said metabox are already filterable via the '''''nav_menu_items_page''''' hook, why not do the same for these 2 tabs?

I have a plugin that generates a number of pages that are accessible by registered users only, and I do not want administrators to be able to put these pages on the menu in any way.",onokazu
Future Releases,19064,Pass $depth argument to nav_menu_css_class filter,cyclometh,Menus,3.2.1,normal,minor,Awaiting Review,enhancement,reopened,has-patch,2011-10-26T22:31:15Z,2012-04-12T07:36:34Z,"function start_el() in nav-menu-template.php receives a $depth argument, representing the nesting level of the current menu item, but does not pass it to the nav_menu_css_class filter.

Passing the $depth argument allows one to create classes on a menu item such as menu-item-depth-1, menu-item-depth-2, etc by hooking the nav_menu_css_class filter.
",cyclometh
Future Releases,16594,inconsistency in wp_nav_menu_items,,Menus,3.0,normal,normal,Future Release,enhancement,new,has-patch,2011-02-19T10:43:12Z,2012-06-28T04:29:51Z,"Not sure if it is a bug: when I create a menu, e.g.
wp_nav_menu(array( 'theme_location' => 'footer' ));
and put there a menu (E.g. named ""My menu"") using nav-menu.php editor and then try to call wp_nav_menu_items filter to see all arguments, e.g.
{{{
add_filter('wp_nav_menu_items','my_test', 10, 2);
function my_test($items, $args) {
print_r ($args);
}
}}}
the resulting object is

{{{
(
    [menu] => 
    [container] => div
    [container_class] => 
    [container_id] => 
    [menu_class] => menu
    [menu_id] => 
    [echo] => 1
    [fallback_cb] => 
    [before] => 
    [after] => 
    [link_before] => 
    [link_after] => 
    [items_wrap] => <ul id=""%1$s"" class=""%2$s"">%3$s</ul> 
    [depth] => 0
    [walker] => 
    [theme_location] => menu
)
}}}

But if I put the same ""My menu"" to the same place using widget, I got object with extended 'menu'

{{{
    [menu] => stdClass Object
        (
            [term_id] => 4
            [name] => My menu
            [slug] => my-menu
            [term_group] => 0
            [term_taxonomy_id] => 4
            [taxonomy] => nav_menu
            [description] => 
            [parent] => 0
            [count] => 3
        )
 
    [container] => div
    [container_class] => 
    [container_id] => 
    [menu_class] => menu
    [menu_id] => 
    [echo] => 1
    [fallback_cb] => 
    [before] => 
    [after] => 
    [link_before] => 
    [link_after] => 
    [items_wrap] => <ul id=""%1$s"" class=""%2$s"">%3$s</ul> 
    [depth] => 0
    [walker] => 
    [theme_location] =>
}}}

I guess that they should be the same (except 'theme_location') - the problem is, that using the first scenario, i got no way to find ""My menu"" details - id, name, slug ... of the menu, so i even cannot filter by them in my functions (e.g. apply filter just for a specific menu).",thomask
Future Releases,21143,Add a hook for when no blog is found (in addition to NOBLOGREDIRECT),,Multisite,,normal,normal,Future Release,enhancement,new,has-patch,2012-07-03T01:20:45Z,2012-11-07T22:18:40Z,"(Related to #21142)

'''Background'''

On a multisite install, we allow users to change their subdomain name (or domain name).

We keep a list of their previously used subdomains/domains, and if there is a HTTP request for one of their old domains, we automatically perform a 301 redirect to the new domain name.

'''Problem'''

In order to perform a 301 redirect from and old domain to the new domain, we currently have to use wp-content/sunrise.php.

However we would like to take advantage of the logic at the top of wp-includes/ms-settings.php, rather than re-inventing that logic in our sunrise.php file.

The NOBLOGREDIRECT constant can be used for this, but it does not allow us to perform a 301 redirect.

'''Solution'''

Adding a simple hook to ms-settings.php would allow a sunrise.php file to determine what should happen if a HTTP request on a Multisite install does not correspond to one of the existing sites/blogs.
See attached patch.",jamescollins
Future Releases,15828,Alphabetized My Sites,jakub.tyrcha*,Multisite,,normal,minor,Future Release,enhancement,accepted,has-patch,2010-12-15T15:52:48Z,2013-02-08T13:42:00Z,"For installs that have lots of sites it would be easier to browse if the sites are alphabetized. I add the following code to our install after each update. It would be nice if this was the default. 

after line 72: reset( $blogs );
{{{
	function cmp($a, $b){
		if ($a->blogname == $b->blogname)return 0;
		else return ($a->blogname < $b->blogname) ? -1 : 1;
	}
	uasort($blogs, 'cmp');

}}}",scep
Future Releases,19451,Cannot distinguish which WordPress Signup stage I am,,Multisite,3.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-12-05T23:35:02Z,2011-12-06T20:30:15Z,"As a plug-in developer under WordPress MS I would like to recognize at which stage I am of the signup:
1. first page because of some errors
2. blog confirmation page in case of no errors

Unluckily as today we have:
<input type=""hidden"" name=""stage"" value=""validate-blog-signup"" />

that is the same for the whole process instead would be nice to have a different value there.

Plus we have:
<?php do_action( 'signup_hidden_fields' ); ?>

But even this action is called in both stages.

So how about start naming the stages differently and also call different actions?
For example I want to include some hidden fields only when I am sure all errors are gone and I am already on confirmation of blog name stage.
I don't see this possible right now.",Cimmo
Future Releases,22383,Combine Domain and Path UI,,Multisite,,normal,normal,Future Release,enhancement,new,has-patch,2012-11-07T22:30:08Z,2012-11-08T01:03:40Z,"When editing a site in /network/site-info.php?id=123 you get two fields: one for the site's domain and another for the path.

It would make more sense from a UX perspective to have a single URL field, which would be intelligently parsed on save.",scribu
Future Releases,24061,Introduce blog-archived.php and blog-spam.php,,Multisite,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-12T16:54:46Z,2013-04-13T08:54:29Z,"When Multisite is active and an archived or spammed site is loaded, WordPress first looks for a file in the content directory called `blog-suspended.php` and loads it if it's found.

Two problems:

 1. The file name is counter-intuitive because 'suspended' isn't the name of a status that a site can have.
 2. It's not possible to serve a different file for spammed and archived sites.

The upcoming patch introduces support for `blog-spam.php` and `blog-archived.php` for sites with the respective status. It will fall back to `blog-suspended.php` for backwards compatibility.",johnbillion
Future Releases,19753,Network admin pages don't show network name in page title,,Multisite,3.0,normal,trivial,Future Release,enhancement,new,has-patch,2012-01-05T22:24:18Z,2012-04-27T18:47:27Z,"When you're on network admin screens, the page `<title>` doesn't contain the network name, unlike site admin screens which contain the site name.",johnbillion
Future Releases,19996,New function get_blog_metadata for ms-functions.php,,Multisite,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-02-09T10:20:20Z,2012-02-09T10:20:20Z,"Hi!

I think that the ms-functions are very useful for WP multisite developers, for example: get_blog_post where you can select the blog_id and post_id to return the post info of a blog.

But I'm missing an important one: get_blog_post_metadata. With the function that I'm proposing, you can select the blog_id, the post_id and the meta_key and the function will return the metadata for those values.

I have attached in the file get_blog_metadata.txt the function that I have made and I think it would be very useful to have it in the core.

Cheers! :)",_DorsVenabili
Future Releases,18292,"Not interrupting the network update, even if errors are detected",,Multisite,3.2.1,normal,normal,Future Release,enhancement,new,has-patch,2011-07-29T10:24:41Z,2012-04-18T21:00:28Z,"'''My installation'''[[BR]]
3.2.1 multi-site installation with almost 8000 sites.

'''The issue'''[[BR]]
During the network update, I kept getting this error message :[[BR]]
''Warning! Problem updating http://username.example.com. Your server may not be able to connect to sites running on it. Error message: 0: Empty reply from server.''[[BR]]
The problem is that the network update script (/wp-admin/network/upgrade.php) dies every time an error is detected, so I had to reload the page every time. With nearly 8000 sites to update, it was impossible, so I modified that script.

'''Suggested enhancement'''[[BR]]
Enhance the network update script so that it doesn't die at each error, logs the error and continues. A second run on the unsuccessful upgrades would also be nice.",luuzan@…
Future Releases,17630,Redirect wp-signup.php to wp_signup_location,,Multisite,3.1.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-05-31T23:03:15Z,2012-11-17T15:43:47Z,"I noticed that if wp-signup.php is accessed directly and wp_signup_location is not the default ""site_url( 'wp-signup.php' )"", it does not redirect to the signup location.

I've attached a potential patch. It works for me.",dwieeb
Future Releases,23709,Relax wildcard restrictions for populate_network() when installing in subdomain mode,,Multisite,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-06T20:03:49Z,2013-04-01T09:25:14Z,"I ran into the issue while trying to use wp-cli install-network command with --subdomains support.

Underlying core issue is that populate_network is trying to check if wildcard subdomain is accessible. This makes sense for large networks, but might not work with certain setups, or not needed for small sites.

Proposed solution is to add extra arg for populate_network() $wildcard_check with default to true. See attached patch",rinatkhaziev
Future Releases,21546,Site Settings page is a hot mess,,Multisite,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-10T21:44:07Z,2012-08-20T16:50:59Z,"I found out just how bad this page is when debugging an issue related to {{{WPLANG}}}. {{{WPLANG}}} is an option for a blog in your network (overrides {{{WPLANG}}} in {{{wp-config.php}}}), but if you delete the option on purpose or accidentally, there is no way of restoring it in the admin.

Site Settings just loads your options table and POSTs back to itself. The only reference to the original options map (the defaults) is in schema, which WP has zero access to outside of upgrade.

I have abstracted the default options and the default ""fat"" options into functions in {{{ms.php}}}. Also, when loading your Site Settings options - if a default option is missing, I display it in the admin so you can save it (it is populated with its default value).

I have also streamlined and condensed some code that was happening in and around {{{populate_options()}}}",wonderboymusic
Future Releases,18910,get_blog_details query alteration for root-relative url plugin support...,,Multisite,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-11T23:39:05Z,2011-10-28T22:28:13Z,"After reading through this ticket http://core.trac.wordpress.org/ticket/17048 and all of its referenced links / discussions I decided to write my own plugin to do root-relative urls.

However there is a core issue that prevents such a plugin from working when using path-based MU installs (versus subdomain installations where as it stands cannot support root relative urls... yet.)

Looks like the logic for path-based site detection was copied wholesale from the subdomain-based detection logic in the if-block just below it.  

I don't see a need to query both the path and the domain if the domain isn't going to change for a MU path-based install.  This fix proposes checking explicitly for is_subdomain_install == false and then only querying the database on the path column.  

If this patch doesn't account for some scenario in which path-based installs could actually have multiple domain addresses in the database then please add a filter to the $fields variable so that a plugin can handle the variance there.

I'm not here to start a root-relative vs absolute uri debate (I'm saving that for another day ;)  But basically the recommendation from the WP Core team is to do this in a plugin, yet we can't until this is fixed.

Thanks!
-Marcus

(ps - if you'd like to have the absolute uri / relative root debate I'm totally game! just email me :D)",MarcusPope
Future Releases,23650,make get_space_allowed() filterable,,Multisite,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-01T00:38:34Z,2013-03-01T00:57:30Z,"When the `blog_upload_space` option is set to `0`, instead of returning `0`,  `get_space_allowed()` returns the default value which is currently hardcoded to `50` in core.

As discussed in #18119 and committed in [19314], the function should return `0` if the option is set to `0`. However this was reverted in [19654] (see #19538). So I am not sure which is the desired behaviour.

The attached patch adds filters for the default value and for the returned value. This is useful for scenarios where you don't want it to fallback to `50` if the option is accidentally set to `0`, and you want to set your own default.

I can adjust the patch if the consensus is that an option of `0` should in fact return `0`.",jkudish
Future Releases,14511,new function - wp_get_sites($args),,Multisite,,normal,normal,Future Release,enhancement,new,has-patch,2010-08-02T22:02:54Z,2012-09-18T17:24:15Z,"With the deprication of get_blog_list (and the dire warnings), we had a need for a function to retrieve a list of blogs. At first blush, it appears that one could use get_blogs_of_user. It seems to assume that the same admin (userid 1) is going to create all sites. If you have multiple network_admins, then a search for a single user's sites won't return a full list.

So I have adapted the code from wp-admin/ms-sites.php and with a nod to wp_list_pages - am submitting wp_get_sites for a future release.

This function accepts an argument list to filter the results, modify the order, and limit the range of results. I wrote it with an eye to provide an interface consistent with other wp functions, as well as potentially replacing the sql query in wp-admin/ms-sites.php.

The initial set of arguments include:
{{{
			'include_id' 		,				// includes only these sites in the results, comma-delimited
			'exclude_id' 		,				// excludes these sites from the results, comma-delimted
			'blogname_like' 	,				// domain or path is like this value
			'ip_like'			,				// Match IP address
			'reg_date_since'	,				// sites registered since (accepts pretty much any valid date like tomorrow, today, 5/12/2009, etc.)
			'reg_date_before'	,				// sites registered before
			'include_user_id'	,				// only sites owned by these users, comma-delimited
			'exclude_user_id'	,				// don't include sites owned by these users, comma-delimited
			'include_spam'		=> false,		// Include sites marked as ""spam""
			'include_deleted'	=> false,		// Include deleted sites
			'include_archived'	=> false,		// Include archived sites
			'include_mature'	=> false,		// Included blogs marked as mature
			'public_only'		=> true,		// Include only blogs marked as public
			'sort_column'		=> 'registered',// or registered, last_updated, blogname, site_id
			'order'				=> 'asc',		// or desc
			'limit_results'		,				// return this many results
			'start'				,				// return results starting with this item
}}}
The usual warning are provided. It works for me but I haven't tested it completely yet. But I am assuming this could be helpful to others and I have no doubt about getting comments back <grin>",transom
Future Releases,20019,wpmu_validate_blog_signup(): Allow '.' and '-' in blog names,,Multisite,3.3.1,normal,normal,Future Release,enhancement,new,has-patch,2012-02-10T23:04:29Z,2012-04-26T12:33:25Z,"Canonical uses Wordpress 3.x multisite as part of voices.canonical.com, for employees who do not have or wish to list their personal blog.  The code is stock, except for one patch we maintain, which allows blog names (currently in WP as lowercase alphanumeric only) to also include '.' and '-'.  This matches our global username format.

Attached is a patch extending wpmu_validate_blog_signup() to allow '.' and '-', with a tweak for the error text.  We have been running the patch for awhile, and have not run across any problems with the rest of the code accepting this.",fo0bar
Future Releases,19862,"""My Sites"" menu should include ""Create a new site"" if enabled in Network settings",,Network Admin,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-20T16:58:14Z,2012-02-13T04:22:49Z,"The ""My Sites"" menu should include ""Create a new site"" if blog registration is enabled in Network settings.",ebellempire
Future Releases,18777,Add new site valid domain filter,,Network Admin,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-26T11:41:32Z,2011-09-26T12:02:50Z,"I've a client who wanted to add subdirectory sites in a multisite install e.g.:

example.com/department1/johnjoe

example.com/department2/fredbloggs

etc. But to do this, they had to add the site without the slash, then go back, and edit the sites URL.

So to allow support for this, ( coupled with the obligatory custom sunrise.php ) and to allow error checking ( e.g. not allowing depoortment1, and only allowing a preset number of subfolders ), I added a filter.

You'll find attached a small patch to site-new.php adding this filter",TJNowell
Future Releases,23462,Add top Save Settings button for MU Site settings,,Network Admin,3.0,normal,trivial,Awaiting Review,enhancement,new,has-patch,2013-02-13T05:21:47Z,2013-02-13T23:03:47Z,"It's quite a long list, and it'd be awesome to have a button at the top to use, as well as at the bottom, so that one doesn't have to scroll all the way down just to save.",tw2113
Future Releases,18661,Include IDs for users and sites on their respective views in the network admin,danielbachhuber*,Network Admin,,normal,normal,Awaiting Review,enhancement,accepted,has-patch,2011-09-14T16:03:45Z,2011-09-15T18:58:20Z,It would be nice if the IDs for Users and Sites were displayed in columns on their respective views in the network admin (with the option to hide in screen options of course),danielbachhuber
Future Releases,15389,Make New Site & New User Network form pluggable.,,Network Admin,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-11-11T16:43:32Z,2011-01-13T05:31:13Z,"'''Problem:''' Currently the only way to add additional fields to the new site & new user network form is by dynamically injecting them using javascript.

'''Solution:''' They should either have action hooks or use the settings API. I'll provide patches for both methods.

In addition, I've added semantic ids to the current form fields so they can be selectively hidden.
",ptahdunbar
Future Releases,21994,Subdomains may not exceed 63 characters in length,,Network Admin,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-25T22:31:44Z,2012-09-28T07:57:15Z,"According to section 3.1 ""Name space specifications and terminology"" of  [http://www.faqs.org/rfcs/rfc1034.html RFC1034], domain names are nodes in a tree structure and ""Each node has a label, which is zero to 63 octets in length.""

WP should help to correctly enforce this requirement, so I've attached a patch that adds a maxlength=""63"" attribute on the input field on line 126 of wp-admin/network/site-new.php. This should help sites and network admins prevent the creation of blogs hosted on subdomain installs that will not resolve properly, and at the same time allow for maximum length subdomains.",humanshell
Future Releases,20459,Super admin should be able to bypass banned/limited domains when creating users,,Network Admin,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-04-16T16:12:25Z,2012-04-16T16:12:25Z,"The function `wpmu_validate_user_signup()` is run whenever a new user is created, either through self-registration (wp-signup.php) or through manual user creation by an admin. `wpmu_validate_user_signup()` does two different kinds of validation: 
(1) validation that is more or less technically required by WP, like spaces in usernames, email/login uniqueness, etc.
(2) checks against some admin-set membership restrictions, namely, email domain whitelist (limited_email_domains) and blacklist (`is_email_address_unsafe()` and banned_email_domains).

The second kind of validation is problematic in the following use case: An MS install might restrict open membership based on email domains, but the admin might occasionally want to make exceptions to the rule and manually create an account. Currently, there are two ways to bypass the built-in checks: to temporarily remove the domain restrictions at Network Admin > Settings, or to filter `'wpmu_validate_user_signup'` and remove the error messages. 

Having to manually change settings for this purpose is pretty hackish. The filter method works, but my experience (from consulting with a fairly large number of MS network admins) is that this is a pretty common use case, so it seems like it should be supported by default. 

So I'm proposing that the domain checks be skipped when `is_super_admin()`. Patch attached.",boonebgorges
Future Releases,16383,Width of Site Address input box in network/site-new.php,,Network Admin,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-27T02:47:20Z,2012-11-01T05:32:42Z,See screenshots,garyc40
Future Releases,13237,Absense of alots lowers community morale,Alot,Optimization,,normal,normal,Future Release,enhancement,reviewing,has-patch,2010-05-03T19:27:26Z,2012-09-01T10:53:21Z,We all like WordPress alot.,johnjamesjacoby
Future Releases,12996,"Clean up some redundant options from new blog setup, and remove legacy wp-hacks support",,Optimization,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-04-14T11:45:31Z,2013-05-14T12:35:41Z,"In the process of updating some plugins for WP 3.0 I came across a few things that look like remnants of old WP versions that don't need to be there any more:

The following options are created during installation, but are  redundant:

- gzipcompression (see [http://core.trac.wordpress.org/ticket/10365 #10365])

- advanced_edit (no idea what this was for)

- hack_file

With regard to hack_file - it's been deprecated since 1.5 and there is no longer an admin option for it - isn't it about time to remove it completely? See also [http://core.trac.wordpress.org/ticket/9551 #9551]

Proposed patch to follow.",solarissmoke
Future Releases,14424,"Eliminate dynamic function definitions, ie create_function",westi*,Optimization,3.0,normal,normal,Future Release,enhancement,accepted,has-patch,2010-07-26T23:05:09Z,2011-09-29T17:20:35Z,"create_function() calls are essentially a form of eval() where the body of the functions is defined at runtime rather than compile time. This patch removes all but one of the calls within the translation code.

There are a few reasons for doing this, one is apc can't cache the results of the function definition and secondly HipHop doesn't support complex create_function definitions.

Most of the references were array_filter / array_map and replaced with a simple foreach.

Others were sorting and a callback function was added.",ScottMac
Future Releases,6860,Make clean_post_cache child cleaning optional,,Optimization,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-04-27T22:13:40Z,2010-07-15T02:17:42Z,"clean_post_cache() makes a MySQL query in every call to clean the cache for child posts. This should be optional if the caller knows that there are no child posts or they're not cached.

Background: I need to query all posts have to clean the post cache to stay within the memory limits. Before 2.5 this was fine with clean_post_cache, but since the update the php execution time increased extremely because of this additional db query.",arnee
Future Releases,10683,White space cleanup in atomlib.php,,Optimization,2.9,low,minor,Future Release,enhancement,new,has-patch,2009-08-25T13:53:51Z,2009-11-17T15:20:20Z,White space cleanup and unnecessary braces deleted in atomlib.php,Simek
Future Releases,12491,"add a pre_template_include filter, so as to allow caching of the template file",,Optimization,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-03-03T00:29:22Z,2010-10-28T11:38:14Z,"rather than running file exists all over the place in the template loader, we should offer the possibility for a plugin to cache the information for use in subsequent pages.",Denis-de-Bernardy
Future Releases,24044,Add index to wp_options to aid/improve performance,,Performance,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-11T11:26:54Z,2013-05-07T21:34:09Z,"I work for a hosting company and we manage many '000s of WP sites for people. In order to improve the performance of all of these instances I find myself adding an index onto wp_options autoload many times daily.

I'm aware this is a small gain, but any gain is good.

This index will be hit on every single page load.",DanBUK
Future Releases,13580,Ajax Tag Search crashes browsers on databases with large tag lists or slow connections,,Performance,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-05-27T16:54:01Z,2013-05-10T12:44:04Z,"In short, many conditions can cause the ajax-tag-search to take a long time. This is not just limited to database size or speed but is also dependent upon the speed of the author's connection. When a browser JS call times out, the user can hit stop script, however the script is usually triggered again almost immediately. The end result currently seems to be the browser session crashing. At best, when these delays happen, getting suggestions for tags can take 30+ seconds be a very tedious process.

This simple backwards compatible patch addresses the issue by allowing site by site customization of the variables involved.

This patch references two new option values:[[BR]]

ats_min_chars - Allows you to specify how many letters must be typed before the search is done. Currently, this number is hard coded at ""2"". That is the default for the patch..[[BR]]

ats_min_count - Allows you to eliminate tags that are used infrequently. This uses the count column on the already included term_taxonomy table; so it does not expand the query at all. It defaults to ""0""

The code in this patch has been running live at b5media for a while now with the defaults of 3 for min chars and either 10 or 20 for the post count dependent upon which site is involved.",brianlayman
Future Releases,19372,Don't call wp_count_comments() when we don't need to,,Performance,3.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-11-27T16:37:27Z,2012-09-03T16:20:09Z,"Comments get counted on every admin screen with `wp_count_comments()`. We can skip a database call by not counting them if the user doesn't have the `edit_posts` capability.
----
''Side note:'' With a persistent object cache it's possible to have admin screens with zero database queries with this patch applied. As an exercise you could write a database class that lazy loads MySQL and you'll get an admin screen that doesn't load MySQL. Almost completely pointless, but interesting nonetheless.",johnbillion
Future Releases,19949,Make update_post_thumbnail_cache() work for any instance,,Performance,,normal,normal,Future Release,enhancement,new,has-patch,2012-02-02T22:40:03Z,2012-11-27T00:32:47Z,"It would be useful if update_post_thumbnail_cache() [17883] would accept an optional $wp_query parameter, so that users aren't forced to use query_posts() in order to benefit from it.",scribu
Future Releases,12641,Move comment-reply to the bottom of the page,,Performance,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-03-18T23:46:25Z,2013-03-15T20:17:30Z,"The general rule for browser performance is to load JavaScript as late in the page as possible.  The TwentyTen theme makes use of the comment-reply JavaScript code that comes with WordPress, and includes in the header.  From what I can tell there's no need to include it in the header, since it deals with the comment reply form, generally at the bottom of the page.

So I did some tests.  I removed the

{{{ <?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?> }}}

in header.php and replaced it with 

{{{ <?php if ( is_singular() ) wp_print_scripts( 'comment-reply' ); ?> }}}

at the very bottom of footer.php, just after the wp_footer() call and before the closing BODY and HTML tags.  The idea being to allow browsers to load the comment-reply JS as late as possible.

I then used webpagetest.org to run load tests (IE8).  Here's the waterfall chart before my changes - http://www.webpagetest.org/result/100318_63M1/1/details/ - and after my changes - http://www.webpagetest.org/result/100318_63M3/1/details/

You'll notice that the after chart has more parallel downloads of page resources.  Specifically in the before chart all other downloads are blocking until it finished getting comment-reply.js.

I also looked at the charts in Chrome (resource inspector) and Firefox (firebug), both show similar results, with more parallel downloads happening with comment-reply JS moved to footer.php.

I haven't seen any downsides to this move so far.  If this breaks something or causes other problems let's see what we can do to deal with them.  In the mean time I'm including a simple patch to make this change.
",josephscott
Future Releases,23473,Performance Improvement in three JavaScript Source Codes,,Performance,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-14T02:44:14Z,2013-02-15T17:19:29Z,"By performance profiling in Internet Explorer 10, Firefox 17 and Chrome 25, I found performance improvement in wp-admin/js/post.js, wp-includes/js/media-views.js and wp-includes/js/utils.js. Function clean() at line number 17 in post.js, function set() at line number 98 in util.js and function visibility() at line number 2767 in media-views.js can be improved with same functionality.

I measured inclusive execution times of original code and improved code. The image is the result. The machine I used to measure execution times has Intel Core i5 1.6GHz CPU and 4GB RAM. 

I also attached a patch file.",yongbae
Future Releases,16706,"Queries using ""category__and"" are slow on large databases",,Performance,3.1,normal,normal,Future Release,enhancement,assigned,has-patch,2011-02-28T22:20:52Z,2012-11-12T16:22:40Z,"Summary: Using ""category!__and"" in query_posts() generates a dependent subquery in MySQL with extremely poor performance (""Using temporary, Using filesort"") when one of the categories has a large number of posts. The result is so slow that WordPress appears to completely hang. Changing the query structure avoids the filesort and solves it.

Details:

We have a customer doing this as part of a theme in WordPress 3.1:

{{{
query_posts(array(
  ""category__and"" => array(1, 461),
  ""posts_per_page"" => 6
));
}}}

The database is fairly large. There are 45,610 posts in category 1, and 167 posts in category 461. The resulting database query runs for so long that it effectively hangs (it doesn't finish within 30 minutes).

The generated MySQL query looks like:

{{{
SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  WHERE 1=1  AND ( wp_posts.ID IN (
  SELECT object_id
  FROM wp_term_relationships
  WHERE term_taxonomy_id IN (1,461)
  GROUP BY object_id HAVING COUNT(object_id) = 2
) ) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 6;
}}}

An ""explain"" on this query shows that it generates a dependent subquery that devolves to a filesort:

{{{
+----+--------------------+-----------------------+-------+------------------+------------------+---------+-------------+-------+-----------------------------------------------------------+
| id | select_type        | table                 | type  | possible_keys    | key              | key_len | ref         | rows  | Extra                                                     |
+----+--------------------+-----------------------+-------+------------------+------------------+---------+-------------+-------+-----------------------------------------------------------+
|  1 | PRIMARY            | wp_posts              | ref   | type_status_date | type_status_date | 44      | const,const |  8177 | Using where; Using index                                  |
|  2 | DEPENDENT SUBQUERY | wp_term_relationships | range | term_taxonomy_id | term_taxonomy_id | 8       | NULL        | 25665 | Using where; Using index; Using temporary; Using filesort |
+----+--------------------+-----------------------+-------+------------------+------------------+---------+-------------+-------+-----------------------------------------------------------+
}}}

I've tried adding indexes, optimizing, and so on to get the filesort to go away, but I can't get it to do so, at least not with MySQL 5.0.x.

The filesort comes from the ""GROUP BY ... HAVING"". Changing the query to avoid those fixes this. For example, this appears to produce the same results:

{{{
SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  WHERE 1=1  AND
(
  SELECT COUNT(1)
  FROM wp_term_relationships
  WHERE term_taxonomy_id IN (1,461)
  AND object_id = wp_posts.ID
) = 2
AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 6;
}}}

But it finishes in a fraction of a second and generates cleaner ""explain"" output with no filesort:

{{{
+----+--------------------+-----------------------+------+--------------------------+------------------+---------+----------------------+------+--------------------------+
| id | select_type        | table                 | type | possible_keys            | key              | key_len | ref                  | rows | Extra                    |
+----+--------------------+-----------------------+------+--------------------------+------------------+---------+----------------------+------+--------------------------+
|  1 | PRIMARY            | wp_posts              | ref  | type_status_date         | type_status_date | 44      | const,const          | 8177 | Using where              |
|  2 | DEPENDENT SUBQUERY | wp_term_relationships | ref  | PRIMARY,term_taxonomy_id | PRIMARY          | 8       | database.wp_posts.ID |    1 | Using where; Using index |
+----+--------------------+-----------------------+------+--------------------------+------------------+---------+----------------------+------+--------------------------+
}}}

So my suggestion is that the ""category!__and"" query be changed to something like this that avoids filesorts. (I could provide a patch if people agree that this change is a reasonable approach.)",tigertech
Future Releases,22828,Remove Duplicate Array Check,,Performance,3.4.2,normal,normal,Future Release,enhancement,new,has-patch,2012-12-08T18:33:52Z,2012-12-08T21:22:49Z,"I just stumbled across this silly bit of code in function get_core_updates()

{{{
if ( !isset( $from_api->updates ) || !is_array( $from_api->updates ) ) return false;
$updates = $from_api->updates;
if ( !is_array( $updates ) ) return false;
}}}
",miqrogroove
Future Releases,18968,Remove some term cache misses,,Performance,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-17T01:44:42Z,2011-10-17T15:47:43Z,"On post listing screens a database query is performed for each taxonomy on each post. We can hit the term cache instead by using `get_the_terms()` in place of `wp_get_object_terms()` and `wp_get_post_terms()`.

By default, this change won't impact performance because the term cache isn't primed at this point, but on a site using a persistent object cache it'll hit the term cache each time instead of performing a database query. This saves `{numberofposts} × {numberoftaxonomies}` queries which can be quite a few on custom post type screens which display several taxonomy columns.",johnbillion
Future Releases,14642,Support Facebook's HipHop,nacin*,Performance,,normal,normal,Future Release,enhancement,accepted,has-patch,2010-08-19T03:33:20Z,2012-04-09T05:45:18Z,"Various changes to make WordPress compatible with HipHop, Facebook's
PHP-to-C++ transformer. With this patch, WordPress' codebase can be
tranformed to C++ and then compiled to binary that runs much faster
than the current PHP version.

Summary:

* sanity checks for environmentals

* string in HipHop doesn't have 'error' property

* array_merge takes only array arguments since PHP 5
  http://php.net/manual/en/function.array-merge.php

* $user needs instantiation first before being used

* always replace existing variables in registering new users
  ie. use EXTR_OVERWRITE in extract() by default",ChenHui
Future Releases,17268,Use native gettext library when available,,Performance,,normal,normal,Future Release,enhancement,new,has-patch,2011-04-28T11:32:30Z,2012-11-10T07:57:24Z,"[http://codex.wordpress.org/Translating_WordPress Here] you say that the GNU gettext-Framework is used. Exactly, ""pomo"" (file: wp-includes/l10n.php) is a complete own php-implementation of the gettext-program.

I've added a patch to solve this problem. Maybe it is not very good, but it works. On my wordpress-sites, the used php-memory returns from about 65% to about 12% and the site is running much faster when patching wp-includes/l10n.php.

I know that gettext is not available on every wordpress-installation, but when it's available, it should be used.

Sorry for my bad english, I'm german.",linushoppe
Future Releases,15805,get_page_by_title() lacks caching,,Performance,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-13T21:25:18Z,2011-01-13T07:25:17Z,`get_page_by_title()` always does a database query. It should use the object cache.,Viper007Bond
Future Releases,21112,Add pre_wp_unique_post_slug to override post slug handling,,Permalinks,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-29T14:38:32Z,2012-11-08T02:00:49Z,"As originally [http://core.trac.wordpress.org/ticket/20480#comment:4 proposed] in the comments of #20480 (and in fact further back in a [http://core.trac.wordpress.org/ticket/14111#comment:4 comment] for #14111), a `pre_wp_unique_post_slug` filter early in `wp_unique_post_slug()`could be useful and justified for some use cases rather than relying on the existing and late-firing `wp_unique_post_slug` filter for a couple reasons:

* `wp_unique_post_slug()` (and thus this new filter) is not high use, so won't impact performance
* `wp_unique_post_slug()` performs database queries (perhaps repeatedly until a unique slug is found), fires other filters, etc, all of which may be rendered moot if a hooking function's intent is to fully implement its own slug generation/handling logic. The pre slug could short-circuit that unnecessary effort.

The attached patch introduces the new filter in addition to adding related phpDocs.",coffee2code
Future Releases,20905,Allow rewrite endpoints to specify a different query variable name,,Permalinks,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-11T13:53:40Z,2012-08-24T07:02:34Z,"Using `add_rewrite_endpoint()` we can add an endpoint such as `/foo/bar/` which maps to `foo=bar`. I'd like to be able to map an endpoint to a query variable of a different name. Currently the query variable name always matches the endpoint name.

Example: I'd like to use `/p/{number}` as a nice short endpoint for some custom functionality, but the 'p' query variable is used by core. I'd like to be able to map `/p/3/` to `my_query_var=3`.",johnbillion
Future Releases,21266,Enhancements for page numbers links API,,Permalinks,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-13T20:59:17Z,2012-07-14T21:47:23Z,"Currently WordPress provides few functions to create links with page numbers embedded. Unfortunately they have some limitations:[[BR]]
- `get_pagenum_link()` - works on `$_SERVER['REQUEST_URI']` only;[[BR]]
- `get_comments_pagenum_link()` - works on current post only;[[BR]]
- `_wp_link_page()` - works on current post only, returns HTML code and is private.

Because of these limitations in the past I have reimplemented these functions in my SEO plugin. Now I decided that it will be better if WP core will provide needed functionality.

Attached path introduces following changes for functions:[[BR]]
- `get_pagenum_link()` - added new `$url` param, which can be used to pass any URL to function;[[BR]]
- `get_comments_pagenum_link()` - added two new params: `$post` and `$add_anchor`. The former one allows to pass any post object to function, the latter one tells function if it should append `#comments` at the end of URL;
- `get_post_page_link()` - new function. I moved code from `_wp_link_page()` here and modified it so it can work on any post. Additionally it calls new filter `get_post_page_link` before returning value.[[BR]]

Additionally these functions passes new argument(s) to filter at the end, so it will be easier for plugins to generate different pagination URLs.

I also modified `_wp_link_page()` function (now it calls `get_post_page_link()`) and removed `@access private` from `wp_link_pages()` (as I checked, it is called from themes code only).",sirzooro
Future Releases,12405,Query String based Permalinks,ryan,Permalinks,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-02-27T05:57:54Z,2011-11-15T21:33:21Z,"Here's a 80% working patch to implement query string based permalinks ({{{/?%year%/%monthnum%/%postname%/}}}) mentioned in #12404.

Try
 1. http://example.com/ (home URL)
 2. http://example.com/?nothing (query string with args that don't have anything to do with the permalink structure)
 3. http://example.com/?2010/02/hello-world/ (a post)

I'm not sure if this is the best implementation.  It's also hacked together (fixing the {{{$match}}}es on the fly instead of generating the real rewrite rules, for example).  Call it a proof of concept.

Canonical redirects don't work correctly when using query string permalinks with this patch (?p=1 doesn't redirect).",mdawaffe
Future Releases,23882,"get_the_permalink() accepts an ID, the_permalink() does not",,Permalinks,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-28T17:12:06Z,2013-04-07T02:48:26Z,"I always found it odd that the_permalink() doesn't accept a post ID passed into it, when get_the_permalink() does, and the_permalink() just calls get_the_permalink().

After scouring trac for a duplicate (and not finding one) I've attached a patch to improve this.

Related: #1271",johnjamesjacoby
Future Releases,16399,Add a hook to the plugin editor page when the write is successful,,Plugins,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T20:06:30Z,2011-02-01T09:34:54Z,"Add an action or filter to the end of plugin-editor.php's processing when the write is successful. 

The use case is for managing a Wordpress install on an SVN-controlled server. Whenever the CMS changes a file's contents (particularly in the wp-content folder) I need to be able to trigger an svn commit. 

See also: Ticket # 16396",scottconnerly
Future Releases,16400,Add hook to delete_plugins() on successful delete,,Plugins,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T20:16:18Z,2011-02-01T09:09:25Z,"Add an action or filter to the end of /wp-admin/includes/plugin.php delete_plugins()'s processing when the write is successful.

The use case is for managing a Wordpress install on an SVN-controlled server. Whenever the CMS changes a file's contents (particularly in the wp-content folder) I need to be able to trigger an svn commit.

See also Ticket # 16399 ",scottconnerly
Future Releases,14671,"Deprecate the ""accepted args"" argument in add_filter() and add_action()",,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-08-22T20:00:17Z,2013-05-18T16:04:04Z,"There is no harm in passing additional arguments to action/hook callbacks. Why do we force developers to explicitly ask for additional arguments to be passed? It is a maximum, and it doesn't matter if the maximum is exceeded. We can just pass all the arguments, all the time. Callbacks can use them, or ignore them. {{{add_action()}}} and {{{add_filter()}}} can lose their 4th argument.

Ran this by koopersmith and beaulebens, they couldn't find any reasons this would be a problem.",markjaquith
Future Releases,14994,Introduce a way to identify a hook in progress,,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-09-30T11:22:32Z,2012-08-29T23:36:06Z,"We have did_action() and current_filter() but I've come across a use case for a hybrid of sorts, doing_action().

Problem is, did_action() returns true the moment the hook is fired. Thus if you need to wait until after the hook is done executing, you need to also check current_filter(). The problem arises when there was another hook called since thne, because current_filter() does not traverse back up the stack.

I considered adding an argument to either of the two other functions mentioned, but I think a new function makes the most sense. did_action() only works for actions. While current_filter() works for all hooks, it does one thing and that is to return the current hook. A new function makes the most sense here.

doing_action() might not be the best name because did_action() only works for actions, but this would work for filters as well. At that point, I might recommend doing_hook().

{{{
function doing_action( $action ) {
   global $wp_current_filter;
   return in_array( $action, $'wp_current_filter );
}
}}}

The use case was that a plugin was applying the_content on wp_head. That was messing with my footnotes plugin. So I needed to make sure I had completely processed wp_head first, but there was no way to do that. Now I would be able to check `if ( did_action('wp_head') && ! doing_action('wp_head') )`.",nacin
Future Releases,10046,"Show ""Go to"" link when update or install plugin.",,Plugins,2.8,normal,minor,Future Release,enhancement,new,has-patch,2009-06-06T09:22:05Z,2013-01-22T01:23:22Z,"Show additional ""go to"" link to plugins page/installer depends on actual situation. Also minor style fix for URL when plugin directory already exist.",Simek
Future Releases,17902,"You guys should add a ""Plugin Details"" pop-up link to installed plugins.",chsxf,Plugins,3.1.3,normal,normal,Awaiting Review,enhancement,assigned,has-patch,2011-06-27T02:44:54Z,2012-06-21T22:33:15Z,"The link would make a pop-up appear with the plugin details as if you are viewing the plugin details when you search for plugins.

CUrrently, plugins that have available updates have a link to view details...

It'd be SUPER convenient to have a link to view details at all times. Sometimes you have to recall these details when you haven't been to your blog in a while, and its a hassle just to search for it in the ""Add New Plugin"" page or on wordpress.org (a waste of time compared to having a ""plugin details"" link)",trusktr
Future Releases,15515,content_save_pre et al don't supply context,,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-11-20T06:19:48Z,2010-11-21T03:17:29Z,"All of the `{field}_save_pre` filters don't provide any additional parameters with context. The `{field}_edit_pre` (when editing) and `post_{field}` (when displaying) filters pass the $post_id variable as a second parameter. The `{field}_save_pre` filter is the odd one out.

Currently if a plugin uses (for example) the `content_save_pre` filter and needs to know anything about the post (eg. the post type) then it has to use the global $post object directly. It works, but it's not ideal.

Can we add some context to these hooks? All they need is a second parameter containing the $post_id variable to bring them in line with the other field filters.",johnbillion
Future Releases,15929,plugin_action_links filter does not include page & search context,,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-12-21T03:31:34Z,2010-12-21T15:16:59Z,"The default links in the plugin list tables return the user to the same context (search, page, etc.) that they clicked a link on. A plugin adding links via either of the plugin_action_links filter doesn't have access to either the page or search context.

Patch is attached.",wpmuguru
Future Releases,19388,plugin_basename returns full directory in URL,,Plugins,3.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-11-29T00:36:36Z,2011-11-29T01:25:50Z,"If a trailing slash is specified on either then WP_PLUGIN_DIR or WPMU_PLUGIN_DIR settings, the plugin_basename function returns the whole directory path in the URL.

The documentation does state not to use a trailing slash, however I think this function could be improved.

By removing the explicit / in the preg_replace the correct plugin name will be returned even if a trailing slash is specified on the WP_PLUGIN_DIR or WPMU_PLUGIN_DIR constants.

This should not affect the relative path as the trim before the return takes care of stripping off the first slash if it exists (effectively duplicating the remove in this case).

While this is a very trivial change that won't affect most people (who read the docs properly) it was quite annoying to track down.

Please see the attached diff.",damianzaremba
Future Releases,19306,"remove_all_filters() should set to array(), not unset",,Plugins,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-20T19:11:49Z,2011-11-21T10:01:56Z,"Consider this use case: You want to hook into priority 0 of an action and run remove_all_actions() for all other callbacks.

Since we use current() and next() to iterate, rather than making a copy of $wp_filter to loop through it, this should work.

Unfortunately, current() and next() expect an array, and only stop when next() returns === false. remove_all_filters() does an unset() on $wp_filter[$tag], which means next() returns A) a warning, and B) null. The null causes an indefinite loop.

Test code:
{{{
add_filter( 'test_filter', function() { remove_all_filters( 'test_filter' ); return 0; }, 0 );
add_filter( 'test_filter', function() { return 1; }, 1 );
add_filter( 'test_filter', function() { return 2; }, 2 );
var_dump( apply_filters( 'test_filter', -1 ) );
}}}",nacin
Future Releases,11571,Provide easy way to return url of thumbnail image,,Post Thumbnails,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-23T06:01:07Z,2012-03-28T20:56:27Z,"I'm sure that there is probably a hack for doing this, but for those who aren't interested in custom functions, etc., I would like a simple built-in function for referencing the thumbnail image url (or a size version of it) without bringing in the predefined image tag. I tried applying a workaround, but it collided with a plug-in I was trying to use, and hacking a pre-2.9 plug-in to use the post plugin has not gone so well because of the image tag that the get_post_thumbnail function returns. ",braindrain
Future Releases,22080,add_theme_support should merge post-thumbnail post types by default (currently stomps),,Post Thumbnails,2.9,normal,normal,Future Release,enhancement,new,has-patch,2012-10-02T19:44:59Z,2013-04-09T20:02:23Z,"As documented in the Codex:

http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails

you can pass a second param to `add_theme_support( 'post-thumbnails' )` to specify the post types you want support enabled for. I expected any post types I passed in to be added to the currently specified post types, instead the passed value stomps the existing value. This means that if you create plugin that registers a post type and enables post-thumbnails for it, you need to write code like this:

https://gist.github.com/3822786

instead of a simple:

`add_theme_support( 'post-thumbnails', array( 'my-new-post-type' ) );`

The latter makes more sense to me, and I think it's likely other devs might make the same mistake and accidentally stomp on the previous value for post-thumbnails.

The attached patch enables a merge or stomp behavior for post-thumbnails. It defaults to ""merge"". Passing a `bool true` as a 3rd param will cause the second param to replace the existing value (current behavior).",alexkingorg
Future Releases,18067,update_post_thumbnail_cache - accept WP_Query instance,,Post Thumbnails,3.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-07-11T15:03:21Z,2011-07-11T15:03:21Z,"Following what [http://core.trac.wordpress.org/ticket/15447#comment:26 scribu said in another ticket];
> ...What would be nice would be to allow update_thumbnail_cache() to be used for custom loops too. 
> 
> I'm thinking of adding an optional $_wp_query parameter. Then, knowledgeable developers could call it before rolling their custom loop.

I agree - it would be dead handy to be able to just call {{{update_post_thumbnail_cache( $my_query )}}} - see revision.",TheDeadMedic
Future Releases,23399,Add filter wp_insert_attachment_data mirroring wp_insert_post_data,,Post Types,3.5,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-02-05T21:36:26Z,2013-02-05T21:56:44Z,"In commercial applications it's handy to use the wp_insert_post_data filter in wp_insert_post() to control attributes of a post being inserted based on the user's role and other variables.  We're using this to force content to go through a complex approval process which runs off of the post status.

wp_insert_attachment() does not have a similar filter, which makes content approval processes difficult to implement.

This patch adds a filter named wp_insert_attachment_data filter to wp_insert_attachment() which mirrors the form and functionality in wp_insert_post().",israelshirk
Future Releases,12726,Add get_post_by_*() functions,sorich87*,Post Types,3.0,normal,normal,Future Release,enhancement,accepted,has-patch,2010-03-27T05:57:13Z,2012-11-28T23:52:48Z,"Current there are get_page_by_path() and get_page_by_title() function but they hardcode the post_type of 'page'.  With support for new custom post types I'm finding a need for functionality to look up posts of custom post types:
{{{
$args = array('post_type','my_custom_post_type');
$path = 'foo-bar';
$post = get_post_by_path($path,$args);
$title = 'Foo Bar'
$post = get_post_by_title($title,$args);
}}}
Another option would be a simple get_post_by():
{{{
$args = array('post_type','my_custom_post_type');
$path = 'foo-bar';
$post = get_post_by('path',$path,$args);
$title = 'Foo Bar'
$post = get_post_by('title',$title,$args);
}}}
This code is not hard to write but looking at the functions in post.php there's not one consistent style so I'm not sure what the best approach would be to write it.  Further, I don't completely understand the significance of all the code in get_page_by_path() so wouldn't want to start with it (although I could see it being modified to use the more generic functions that I propose.)

I can make these updates if I get enough direction from the core team, or I'd happily just see them get done. :)
",mikeschinkel
Future Releases,17584,Add post_type_supports filter,mitchoyoshitaka,Post Types,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-05-27T06:16:28Z,2013-04-03T21:59:41Z,"The post_type_supports return value should be filter-able, and there's even a @todo in the code to that effect.",mitchoyoshitaka
Future Releases,14077,Add support for removal of multiple features from a post type in remove_post_type_support,,Post Types,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-06-24T18:10:59Z,2012-07-12T00:52:41Z,"From [http://groups.google.com/group/wp-hackers/browse_thread/thread/1843101eba1f29fc this thread]

add_post_type_support allows an array to be passed as the 2nd parameter, but remove_post_type_support doesn't.

The patch attached adds the functionality.",Utkarsh
Future Releases,19257,"Allow post types to override the phrase ""Featured image""",,Post Types,3.0,normal,normal,Future Release,enhancement,new,has-patch,2011-11-16T04:59:02Z,2012-08-30T15:44:50Z,"It would be nice if the phrase ""Featured image"" could be filtered so it could be tailored to fit its post type. For example:

 * A post type of 'person' could set it to 'Mugshot'
 * A post type of 'album' could set it to 'Cover art'
 * A post type of 'company' could set it to 'Company Logo'

Patch upcoming.",johnbillion
Future Releases,23458,"Implement filters on post_status, check get_post_status() instead of the object's post_status in get_post_permalink()",,Post Types,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-12T17:16:35Z,2013-02-12T17:20:50Z,"We have some custom post types that we wanted to implement the `inherit` post_status on, using the pattern created by attachments that allows child posts to inherit their status from the parent. In our case we have a top-level custom post that has a number of children of a different post type, and we wanted to make it easy to publish the entire set simply by publishing the parent.

In implementing this, however, we discovered some hard coded assumptions in `get_post_permalink()` and `get_post_status()` that got in our way. Examples:

`get_post_status()` has specific support for `inherit` as a post status, but only for `attachment` post types. Everything else can pound sand. To work around this we added a filter to the return value, which seemed to be both the most compatible and lowest-cost way to implement such a change. It looks like this: `return apply_filters( 'get_post_status', $post->post_status, $post );`.

And in `get_post_permalink()` we found that it's checking `$post->post_status`, making it impossible to ascend the hierarchy and get the status of the parent. The change there was also pretty straightforward: `$draft_or_pending = get_post_status( $id ) && in_array( get_post_status( $id ), array( 'draft', 'pending', 'auto-draft' ) );`.

I believe this is compatible with #23169 and #23168, which seek to improve support for custom `post_status`es. The only other recent ticket/changeset I found mentioning post_status was r22963, which changed from `get_post_status( $id )` to `$post->post_status` for compatible, but opposite reasons.",misterbisson
Future Releases,12821,Merge get_posts() and get_pages(),garyc40,Post Types,3.0,normal,normal,Future Release,enhancement,assigned,has-patch,2010-04-02T21:10:54Z,2012-07-10T01:32:11Z,"get_pages() should wrap get_posts() the same way get_page() wraps get_post(). Arguments of different names need to be retained for back compat.

Reasoning for this includes #14823. Querying a nonhierarchical post type should still be allowed with child_of for example, to allow for cross-type relationships.",mikeschinkel
Future Releases,14302,Object Property getters and setters,filosofo*,Post Types,3.0,normal,normal,Future Release,enhancement,accepted,has-patch,2010-07-13T23:19:07Z,2011-01-31T15:47:34Z,"Currently, if you want to get or set a post object's property:
 * You have to know which database table it's located in
 * If that property is in the posts table, you have to set all properties to set any, via `wp_update_post` or `wp_insert_post`.
 * If that property is in the postmeta table, you have to specify that it be returned as a singular value (instead of an array of values)

My patch lets WP figure out where a particular value is stored, so you don't have to, with two new functions:

mixed '''get_post_property''' ( int ''$object_id'', string ''$prop_name'' [, bool ''$force_single'' ] )

bool '''set_post_property''' ( int ''$object_id'', string ''$prop_name'', mixed ''$prop_value'' )",filosofo
Future Releases,23759,Pass $update to save_post and wp_insert_post actions,,Post Types,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-13T15:14:35Z,2013-04-04T04:23:44Z,For now it's hard to check if the post is updated or publish for the first time when using save_post and wp_insert_post hooks,alex-ye
Future Releases,21253,Replaces deprecated get_delete_post_link in class-wp-posts-list-table.php,,Post Types,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-13T04:41:31Z,2012-07-13T04:41:31Z,Changing the ajax nonce actions from post-post_type_ to post_ in #21194 allows us to change deprecated get_delete_post_link() to wp_nonce_url() in class-wp-posts-list-table.php.  Patch requires #21194 to work on custom post types.,c3mdigital
Future Releases,19012,get_ID and the_ID should accept $id as a parameter,ryan,Post Types,3.3,normal,normal,Future Release,enhancement,reviewing,has-patch,2011-10-20T04:56:28Z,2011-10-20T15:11:49Z,"I see throughout the WordPress code as well as throughout many plugins and themes that {{{get_ID()}}} is often accompanied by a test to see if an ID had been passed. It would be a harmless but extremely useful update to simply allow {{{get_ID()}}} and {{{the_ID()}}} to accept an optional $id and pass it through if it's numerical.

I've already gone ahead and created the patch (attached)",peterchester
Future Releases,16176,save_{$post_type},westi,Post Types,3.0.4,low,normal,Future Release,enhancement,assigned,has-patch,2011-01-10T11:46:22Z,2013-05-16T19:52:35Z,a `save_{$post_type}` hook would be convenient.,bmb
Future Releases,7824,Add referral link in Press It,,Press This,,low,minor,Future Release,enhancement,new,has-patch,2008-10-02T05:27:08Z,2010-07-15T02:01:24Z,"I'm the developer of a feed aggregator and a feature we'd love is to have something like ""(via feed reader) after the normal ""via"" section in the Press This panel.

I'm willing to make the patch myself if it would be accepted.",rmccue
Future Releases,18843,Add unique admin_head action to Press This,,Press This,3.3,normal,normal,Future Release,enhancement,new,has-patch,2011-10-02T15:42:11Z,2011-11-15T03:25:06Z,The Press This page should have its own admin_head-foo action.,sillybean
Future Releases,21551,Press This Structural Rewrite,,Press This,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-11T19:59:54Z,2013-01-24T12:25:37Z,"This is a ticket to tidy up and abstract some of the Press This code into wp-admin/includes/press-this.php to make it simpler to work with and use functionality in plugins and such.

Once this structural change is done, I've got a couple enhancements coming down the pipes including reading OG/Twitter/Meta tags from the source page, simpler upgrades to the JS (jorbin's suggestion) better image pulling, etc.

This patch below, however, is merely structural, not adding in any new functionality, merely tidying up what we've got so far.",georgestephanis
Future Releases,14164,do_meta_boxes on press-this.php,,Press This,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-01T02:16:51Z,2010-10-28T06:10:16Z,"Right now, there is no way of add meta boxes to the Press This bookmarklet. A simple call of `do_meta_boxes()` allows plugin/theme authors to easily hook into the bookmarklet. 

{{{
do_meta_boxes( 'press-this', 'normal', '' );
}}}

That seems to work like a charm.",SpencerFinnell
Future Releases,9383,Allow get_pages to exclude by slug in addition to id,garyc40,Query,2.7.1,normal,normal,Future Release,enhancement,assigned,has-patch,2009-03-24T03:20:45Z,2011-01-15T04:51:43Z,"Currently, get_pages() allows template authors to exclude certain pages from the result, by their ID. It's more useful to exclude by slug when the IDs aren't immediately known.

For example, on a WordPress site I recently made, I coded an automatically-generated menu listing the site's pages and their subpages. There are certain classes of pages I want to exclude, and hard-coding the page IDs into my menu code just isn't a good way to do it. Excluding by page slug works beautifully.

'''Patch:''' I've included a patch to add this functionality. It is a very short addition to wp-includes/post.php (one new line and two altered lines), has been well used on my (now live) site, and adds a very useful feature.

'''Syntax:''' The syntax is identical to the old use, except that where the ""exclude"" parameter only accepted numbers, it now can take strings. If the value given is not a number, it's treated as a slug. If it is a number, it's treated as an ID like before. For example:

	$subPages = get_pages('hierarchical=0&exclude=sidebar&parent='.$page->ID);

will get subpages of $page that don't have the ""sidebar"" slug. (Numerical values are still treated as IDs, and lists can contain any number of IDs and slugs to exclude.)",richcon
Future Releases,23329,Deprecate is_main_query(),,Query,,normal,normal,Future Release,enhancement,new,has-patch,2013-01-30T21:04:29Z,2013-05-14T13:48:58Z,"The function `is_main_query()` is misleading, and rather useless. In practical situations, it is necessary to reference the method in the current query object, such as when used at the `pre_get_posts` action. 

The example in the Codex is even wrong:
{{{
  add_action( 'pre_get_posts', 'foo_modify_query_exclude_category' );

  function foo_modify_query_exclude_category( $query ) {
      if ( ! is_admin() && is_main_query() && ! $query->get( 'cat' ) )
          $query->set( 'cat', '-5' );
  }
}}}
I propose deprecating the function as an encouragement for users to refer to the query object method instead.",ethitter
Future Releases,20044,Enable search for pages by slug,,Query,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-02-14T22:17:58Z,2012-10-31T22:56:13Z,"Would be nice to be able to search a page by its slug. Might need to be a bit different depending on the permalink-strategy. 

Steps to reproduce(with Post name-permalinks enabled):
1. Create a new page with a specific slug
2. Save page
3. Search for the exact slug-name
",ekitomat
Future Releases,18748,Generalize 'tag_id',,Query,3.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-22T15:29:19Z,2011-09-22T15:56:38Z,"Currently, there's special handling for the 'tag_id' query var.

It would be nice to be able to define an equivalent query var for custom taxonomies. Example use case: #18747",scribu
Future Releases,21986,Roll sticky posts into MySQL query,,Query,3.4.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-24T19:10:09Z,2012-12-19T19:53:55Z,"The way that WP currently queries for sticky posts is quite long winded and prone to error. Sticky posts output behaviour is erratic when using pagination or ordering. I suggest that the sticky posts feature would be better served by being rolled into the MySQL query rather than trying to reconstruct the result set after the main query has run.

I have tested the attached patch against 3.4.2 and it works as expected. The query additions are performed on every page of home, rather than just the first, so that page boundaries behave as expected and that the sticky posts don't appear on subsequent pages. ignore-sticky-posts is honoured.",martinshopland
Future Releases,22209,Simplify logic to generate home path when parsing request,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-17T03:37:24Z,2012-10-17T04:25:45Z,"In `WP::parse_request()` we go through a few steps to generate the `$home_path` variable.  Since we now require PHP 5.2, we can use `parse_url()`'s second argument to get the path directly.",evansolomon
Future Releases,17093,Validation and context parameter for query filter application,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-09T13:54:45Z,2011-04-09T19:47:21Z,"One improperly implemented query filter can easily crash a site, and this risk only increases with use of filterable get_posts() calls throughout wp-admin.

In the most common scenario, a posts_where or posts_request filter fails to return a value. Even if the filter was intended for wp-admin but was not added selectively based on is_admin(), the site front end is crashed.  It's the plugin's fault, but leaves the end user wondering why WP can't be more robust.

The associated patch eliminates that scenario by checking is_null() before accepting a filtered value.  If null, the filter is ignored, with a warning triggered if WP_DEBUG is defined.  Since this validation is performed in apply_query_filters() rather than the heavily-used apply_filters(), new overhead is minimal.

Another benefit of a dedicated apply_query_filters() function is the ability to apply filters selectively based on a query_context specified by supplemental get_posts() calls.  This will also tend to mitigate the scope of query filtering errors if use of the context parameter becomes standard practice for get_posts() execution and filtering.",kevinB
Future Releases,17019,add hooks for Media Library attachment counts,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T16:48:24Z,2011-04-09T06:00:38Z,"The Media Library attachments listing and edit links can be filtered via existing WP_Query and has_cap hooks.  However, corresponding attachment counts are not cleanly filterable.

The submitted ticket adds the following filters:

 * function wp_count_attachments() - result filter 'count_attachments'

 * WP_Media_List_Table::get_views() - query filter 'attachment_orphans_query'

 * function update_gallery_tab() - query filter 'gallery_attachment_count_query'",kevinB
Future Releases,15033,ajax find_posts should use get_posts(),,Query,,normal,normal,Future Release,enhancement,new,has-patch,2010-10-04T22:12:08Z,2012-02-13T04:56:01Z,"Currently, the find_posts action uses a direct SQL query instead of using the available API.",scribu
Future Releases,19705,better taxonomy query URL syntax,,Query,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-01T00:30:36Z,2012-01-04T00:45:56Z,"Problem: WP's native taxonomy URL syntax supports logical OR/IN and AND operations, but not NOT IN. Blog post with more rambling: http://maisonbisson.com/blog/post/16074/better-taxonomy-query-syntax/ .

Solution: the attached patch extends the URL syntax to support these logical operators.

- Taxonomy terms are separated by commas (it preserves support for the old +separated syntax).

- Terms prepended with a + are required (AND)

- Terms prepended with a - are excluded (NOT IN)

- All other terms are simply IN

Examples:

- http://site.org/tag/term-one,term-two/ : posts containing one or more of the named terms

- http://site.org/tag/+term-one,+term-two/ : posts containing both of the named terms

- http://site.org/tag/term-one,-term-two/ : posts containing term-one, but excluding term-two

Working examples (at least until I revert my site):

- http://maisonbisson.com/blog/post/tag/wordpress,+mysql/ : IN and AND syntax (it's an accident of how the query is handled internally that it doesn't require a + to be AND'd in this case)

- http://maisonbisson.com/blog/post/tag/wordpress+mysql/ : old-style AND syntax

- http://maisonbisson.com/blog/post/tag/wordpress,mysql/ : IN syntax

- http://maisonbisson.com/blog/post/tag/wordpress,-mysql/ : NOT IN syntax for the second term

- http://maisonbisson.com/blog/post/tag/-wordpress,+mysql/ : NOT IN the first term, AND the second term

About the patch:

The patch disables the special handling of tags. This is just to narrow the scope of work necessary to demonstrate a working patch.",misterbisson
Future Releases,9256,clean up the global variables when moving out of the loop,,Query,2.7.1,normal,normal,Future Release,enhancement,reopened,has-patch,2009-03-01T19:07:38Z,2010-07-23T11:47:00Z,"On a theme, that I am developing, the sidebar has a new WP_Query to get only one post from a specific category. All works well (index, single, archive, pages) displaying correctly the result of the_content() of the main column (the main query) and the result of the_content() of my custom query in the sidebar.

The problem is that only on pages and articles that have pagination (using the <!--nextpage--> construct), the function ""the_content()"" of the sidebar displays the same content of the main column on pages 2, 3, 4 (and so on) of those pages/articles, while on page 1 the various contents are displayed properly.

Is it a bug?

[http://wordpress.org/support/topic/248632 As MichaelH reported], using ""echo $post->post_content;"" fixes the issue temporarily.",aldolat
Future Releases,24257,is_attachment() should accept $attachment parameter,,Query,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-03T16:23:32Z,2013-05-03T17:11:45Z,"Like is_single(),is_page(),is_author() ... etc I can't see any reason why we is_attachment() function accept $attachment parameter to make easy checks.",alex-ye
Future Releases,14368,"make the 'orderby' argument in get_posts() accept all ""post"" fields",,Query,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-20T23:58:41Z,2012-08-28T19:12:46Z,"Right now, some post's fields were not accepted when retrieving posts (even though they were documented in codex . for example ""name"" (slug)  was missing).

this patch sorts the elements in the $allow_keys array (in the same order as the db' s columns) and adds the missing ones, I added every field except the ones that were long text fields (content, excerpt, etc)
",wjm
Future Releases,17022,months_dropdown() is not filterable,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T17:11:08Z,2011-04-02T18:22:20Z,"The months_dropdown() function used on the Edit Posts and Media Library listing forms is not filterable.  This causes invalid month items when a plugin uses the WP_Query API to filter editable posts.

The corresponding patch adds the query filter 'months_dropdown_query'",kevinB
Future Releases,17026,parent_dropdown() is not filterable,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T17:35:40Z,2011-04-07T15:37:16Z,"The parent_dropdown() function is no longer used by the WP core, but is not deprecated and remains in use by some plugins.  Since other plugins may modify page editing access via existing WP_Query hooks, the query executed by parent_dropdown() also need to be filterable.

The corresponding patch adds query filter 'parent_dropdown_query'",kevinB
Future Releases,21621,setting meta_type doesn't CAST orderby value,,Query,3.2,normal,normal,Future Release,enhancement,new,has-patch,2012-08-17T20:01:20Z,2013-05-16T11:54:37Z,"Setting {{{meta_type}}} in {{{WP_Query}}} will cast the {{{meta_value}}} in WHERE clauses to whatever {{{Meta_Query}}} internally resolves it as, however it does not create an alias and does not order by that alias. It orders by an un-CAST'd {{{meta_value}}} which doesn't work for numbers. I realize that {{{orderby}}} set to {{{meta_value_num}}} will fix this, but that doesn't change the fact that {{{meta_type}}} is being ignored.

To test:

{{{
update_post_meta( 1, 'num_as_longtext', 123 );
update_post_meta( 2, 'num_as_longtext', 99 );

add_filter( 'query', function ( $sql ) { error_log( $sql ); return $sql; } );
$stuff = new WP_Query( array( 
	'fields' => 'ids', 
	'post_type' => 'any', 
	'meta_key' => 'num_as_longtext', 
	'meta_value' => '0',
	'meta_compare' => '>',
	'meta_type' => 'UNSIGNED', 
	'orderby' => 'meta_value', 
	'order' => 'ASC' 
) );

print_r( $stuff->posts );

exit();
}}}

That should return 2 then 1, it returns 1 then 2. It generates this SQL:

{{{
SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  
INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) 
WHERE 1=1  AND wp_posts.post_type IN ('post', 'page', 'attachment') AND (wp_posts.post_status = 'publish') AND ( (wp_postmeta.meta_key = 'num_as_longtext' AND CAST(wp_postmeta.meta_value AS UNSIGNED) > '0') ) 
GROUP BY wp_posts.ID ORDER BY wp_postmeta.meta_value ASC LIMIT 0, 10
}}}

My patch returns:

{{{
SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  
INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) 
WHERE 1=1  AND wp_posts.post_type IN ('post', 'page', 'attachment') AND (wp_posts.post_status = 'publish') AND ( (wp_postmeta.meta_key = 'num_as_longtext' AND CAST(wp_postmeta.meta_value AS UNSIGNED) > '0') ) 
GROUP BY wp_posts.ID ORDER BY CAST(wp_postmeta.meta_value AS UNSIGNED) ASC LIMIT 0, 10
}}}
",wonderboymusic
Future Releases,14115,sticky posts - query.php optimization,,Query,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-06-27T16:35:09Z,2010-06-27T17:34:31Z,"Making improvements in plugin xili-language [http://wordpress.org/extend/plugins/xili-language/], I use filter for get_option('sticky_posts')... and to find the right translation of sticky posts for each home language (demo shown here [http://multilingual.wpmu.xilione.com/] ).
The call is at line 2473 of query.php. and done '''every time but only used if is_home is true'''. 
To optimize I propose that this call of get_option can be encapsulated inside if condition as suggested below

{{{
if ($this->is_home) { 
get_option('sticky_posts');
if ( $page <= 1 && is_array($sticky_posts) && !empty($sticky_posts) && !$q['caller_get_posts'] ) { ///// 
}
}
}}}

It is microseconds for server but useful for hooking functions etc, etc...",michelwppi
Future Releases,17025,wp_list_authors() is not filterable,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T17:30:10Z,2011-04-02T18:22:33Z,"The template function wp_list_authors() is not filterable.  Plugins may use existing WP_Query hooks to filter some authors' posts out of the result set, making the unfiltered authors list invalid.

The corresponding patch adds query filter 'list_authors_query'",kevinB
Future Releases,16854,wp_query does not handle multiple exclude author properly,,Query,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-14T11:35:11Z,2013-04-25T17:07:03Z,"when making a query with $args containing 

{{{
'author' => '-2,-3,-4'
}}}

line 2008 of wp-includes/query.php only uses 1 element of the array that is created from the 
{{{
$q['author'] string
}}}

{{{
 $q['author'] = explode('-', $q['author']);
 $q['author'] = (string)absint($q['author'][1]);
}}}

I have attached a patch that works with 1 or more excluded authors

essentially it, implodes the array back into a string of author ID's rather than selecting only element [1] of the exploded array

{{{
$q['author'] = explode('-', $q['author']);
$q['author'] = implode('',$q['author']);
}}}
",commentluv
Future Releases,16392,Quick Edit API should allow to pick up custom field values automatically,,Quick/Bulk Edit,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-27T22:22:10Z,2012-03-28T18:29:35Z,"Attached are two screenshots of the same plugin in 3.0 and 3.1. The plugin code is unchanged between the two. Only WP gets an svn switch.

I'm investigating where it's coming from, but as you can note from the screenshots 3.0 lists nada for that plugin on the one hand side, while 3.1 lists actual fields and leaves them blank. The latter causes data loss when Quick-Editing a row.

Cross-referencing ticket references:

http://code.google.com/p/wp-e-commerce/issues/detail?id=327

Plugin SVN:

http://svn.wp-plugins.org/wp-e-commerce/branches/3.8-development
",Denis-de-Bernardy
Future Releases,16502,Quick Edit contents should only be rendered if quick edit button in actions after filtering,,Quick/Bulk Edit,3.0.4,normal,minor,Future Release,enhancement,new,has-patch,2011-02-09T08:48:22Z,2011-02-09T15:29:11Z,"_the_post() has a static call to get_inline_data() to generate the quick_edit content. This happens even if after running the (undocumented) 'post_row_actions' filters the Quick-Edit link ($actions['inline hide-if-no-js']) is not amongst the actions anymore.

Prefixing the get_inline_data() call with 
{{{
if (isset($actions['inline hide-if-no-js'])
}}}
would be a simple solution, enabling people to cancel the performance-impacting quick-edit form generation alltogether.",wyrfel
Future Releases,23973,Add filter to _wp_post_revision_meta_keys() so developers can store custom meta data revisions,,Revisions,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-07T08:14:04Z,2013-04-07T17:29:53Z,"In r23928 we added functionality to:

* Store the post format as meta on revisions (including autosaves).
* Add post formats data (post meta) when autosaving.

'''There is still no way to autosave and revision custom post meta.'''[[BR]]
Adding a filter to _wp_post_revision_meta_keys() will allow developers and plugin authors to effectively save post_meta revisions. 

Related #20564, ",c3mdigital
Future Releases,18084,Comments Page Rewrite Customization,,Rewrite Rules,3.2,normal,normal,Awaiting Review,enhancement,reopened,has-patch,2011-07-12T16:36:14Z,2012-04-06T01:58:46Z,"So I was doing some stuff on translation of the rewrite URLs, to pt-BR I've run into a problem, that the Comments Page Rules cannot be changed using a base variable, like all the other bases.

So Im attaching a file to this ticket with the modified File, but I didn't test if its a good solution, thats the one I can think of.

I really would like to see this enchancement.

Thanks,",webord
Future Releases,18877,DRY up rewrite rule matching,,Rewrite Rules,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-06T22:24:34Z,2011-10-24T13:42:44Z,"Currently, the whole rewrite matching loop is duplicated: once in WP::parse_request() and once in url_to_postid().

Re-posting the patch from #16687 for consideration.",scribu
Future Releases,18852,Nginx rewrite rules,johnbillion*,Rewrite Rules,3.3,normal,normal,Future Release,enhancement,accepted,has-patch,2011-10-03T21:50:19Z,2013-05-10T13:16:29Z,"On the Permalinks screen we show rewrite rules for IIS and for mod_rewrite on Apache. Nginx is [http://news.netcraft.com/archives/2011/09/06/september-2011-web-server-survey.html getting pretty popular now], so we should think about showing Nginx rewrite rules on this screen.

Unfortunately WordPress can't write directly to Nginx's rewrite configuration, but we can show the required rules for convenience and we can allow plugins to filter them if necessary (in the samw way IIS and mod_rewrite rules can be filtered).
[[BR]]
",johnbillion
Future Releases,17185,Optimize verbose attachment rules,,Rewrite Rules,,normal,normal,Awaiting Review,enhancement,reopened,has-patch,2011-04-20T00:18:21Z,2012-04-30T17:55:03Z,"Looking at the rules created for verbose pages it seems that there are a large number of redundant rules created specifically for attachments.

For example:

{{{
page-slug/attachment-slug/attachment/([^/]+)/?$ => index.php?attachment=$matches[1]
another-page/another-attachment/attachment/([^/]+)/?$ => index.php?attachment=$matches[1]
page-slug/attachment/([^/]+)/?$ => index.php?attachment=$matches[1]
another-page/attachment/([^/]+)/?$ => index.php?attachment=$matches[1]
...
}}}

As well as the associated trackback, feed and comment page rules for each.

I think we could get rid of specific attachment rewrite rules for pages and their attachments and replace them with a catch-all rewrite for page attachments:

{{{
.+?/attachment/([^/]+)/?$ => index.php?attachment=$matches[1]
}}}

I also set the flag to include paged requests (slug/page/xx/) to false for pages and page attachments for verbose rules. I think think this could also be applied to post rewrite rules and non-verbose page rules since neither are paged, though they have pages (slug/xx/), but I will open another ticket for that. This is the part I am less sure about since myself and others have been confused by the paged rules before (page/xx/), so correct me if I'm wrong here (or anywhere else!).

For the /%postname%/ structure the attached patch cuts the number of rewrites rules for 1297 pages from 14361 to 6562. This translated to a drop from 0.42s to 0.31s average response time in testing (tested using siege with one concurrent user for 30 seconds) on a single post permalink so near the bottom of the rewrite stack for verbose page rules in trunk.

I have run this patch against the current tests for WP_Query and WP_Rewrite (test_query.php in the unit-tests SVN) using several different verbose rewrite structures, including /%postname%/ and /%category%/%postname%/. The only 'fail' was for the test of paged rewrites for pages which I mentioned above (there were a couple of other tests that showed up as fails initially but further investigation proved to be problems with conflicting page and post slugs). This gives me confidence in the patch but even more rigorous testing is definitely required.

I also wrote a patch which utilised a new parameter for generate_rewrite_rules() to disable adding the attachment rules, but this didn't seem so clean.

Related: #16687 which is for %postname% in particular rather than all verbose structures",duck_
Future Releases,16840,add_rewrite_rule() should accept an array for the $redirect parameter,,Rewrite Rules,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-12T23:33:26Z,2012-06-04T16:27:23Z,"The most common usage of {{{add_rewrite_rule()}}} looks something like this:

{{{
add_rewrite_rule( 'some/path/([^/]+)/?$', 'index.php?some_var=$matches[1]&maybe_some_flag=1' );
}}}

That's not very pretty.

Here's what it could look like instead:

{{{
add_rewrite_rule( 'some/path/([^/]+)/?$', array(
  'some_var' => '$matches[1]', 
  'maybe_some_flag' => 1
) );
}}}

In the rare case when you want to use something other than 'index.php' in the front (i.e. an external rule), you can either fall back to the old form or just use add_external_rule().
",scribu
Future Releases,14479,Add filter hook to 'is_super_admin()' function,benward,Role/Capability,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-30T20:51:38Z,2010-11-18T10:06:55Z,"This patch adds a new filter, named 'is_super_admin' to the end of the capabilities.php:is_super_admin() function, allowing plugins to override the result of this capabilities check.

Use cases:

    * Applying/restricting Super Admin privilege based on an external user authentication/permissions system.
   * Restricting Super Admin privilege based on a user's network location.",benward
Future Releases,15819,Create user_can_for_blog function,,Role/Capability,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-14T19:18:45Z,2012-12-13T21:38:50Z,"To compliment #14602, a user_can_for_blog function is needed.

Currently we have no function to pass a user ID, blog, and a capability/role which will return whether the user can perform that role or has that capability for a particular blog.

See attached patch please.

Thanks,
Mike",mweichert
Future Releases,17924,Make Integrating Multiple Roles Per User Easier for Plugin Authors,,Role/Capability,3.2,normal,normal,Future Release,enhancement,new,has-patch,2011-06-28T23:40:48Z,2013-05-16T11:55:48Z,"WordPress supports multiple role per user, however to use this feature is very difficult for plugin authors to integrate well, and often requires adding plugin admin pages instead of integrating with the pre-existing user-edit.php. Due to the difficulty of this, and the fact that most plugins that allow this aren't very user-friendly, I believe users are staying away from multiple roles.

This ticket aims to change how easy it is to work with the current role management system, as well as to add a couple role-based filters and actions, while still keeping the front-end of the administrative interface single-role only. (Because it seems to be the prevailing opinion the multiple roles per user is plugin territory.) In addition, I completely agree that the vast majority of sites can best function with one role per user, however in some cases (such as the site I'm working on now) you simply need to be able to choose multiple roles.

= Changes =

== First Patch File ==
attachment:Replace_Admin_Role_Dropdown.patch
The first patch file moves the code for the role dropdown off of /wp-admin/user-edit.php, /wp-admin/includesclass-wp-users-list-table.php, /wp-admin/users-new.php, /wp-admin/options-general.php and into /wp-admin/includes/template.php where two new functions are created:

=== {{{wp_get_dropdown_roles()}}} ===
This function does what {{{wp_dropdown_roles}}} used to do, but it returns the value instead of echoing it. (Note that {{{wp_dropdown_roles()}}} now acts as a wrapper for {{{wp_get_dropdown_roles()}}}. (The old function is still in place for backwards compatibility.)

=== {{{wp_user_role_selector()}}} ===
This function creates the full dropdown and applies a new {{{'user_role_selector'}}} filter to the markup before echoing it out. This way the default dropdown can be overridden by something else (perhaps checkboxes). 

== Second Patch File == 
attachment:Create_Role_Update_Actions_Filters.patch 
The second patch file changes the functions that handle user creation and updating so they can be hooked into and a developer could make this work with multiple roles. This file affects /wp-admin/includes/users.php and /wp-includes/user.php.

=== {{{wp_sanitize_user_role()}}} ===
A new {{{sanitize_user_role}}} filter was created and sanitation of {{{$_POST['role']}}} in /wp-admin/includes/user.php when user-edit.php is submitted was moved there. The new function is called {{{wp_sanitize_user_role()}}}. (This is so that if user-edit.php is submitted and {{{$_POST['role']}}} were to contain a value other than a string (perhaps an array of roles) it can be sanitized and worked with accordingly.

=== {{{pre_user_role}}} ===
A new {{{pre_user_role}}} filter was added to {{{wp_insert_user()}}} in /wp-includes/user.php. This was mainly done because almost every other field that this function processes has a matching filter like this, and I thought maybe {{{$roles}}} felt left out as it did not. :(

I supposed somebody could also use it for something useful as well.

=== {{{apply_user_role}}} ===
A new {{{apply_user_role}}} action was added to {{{wp_insert_user()}}}. The function itself no longer uses {{{$user->set_role()}}}, instead saving user role changes is now handled by this new action. A matching function {{{wp_apply_user_role()}}} was added to set the user role like {{{wp_insert_user()}}} used to do. This way however, a plugin author could simply hook into {{{apply_user_role}}} to apply multiple roles to a user.

= Conclusion =
All in all, this patch was designed so that the average user would never even notice that a change has been made to user management, however a plugin author looking to add an easy way for people to select multiple roles for a user can quickly hook into this and have a nice, easy, well integrated and WordPress-like plugin.

I have done a few tests adding users and changing roles around with these patches applied on a fresh installation with no plugins and the only changes to WordPress being those that are in the attached patches, and everything seems to work seamlessly.

By the way, I am quite new to WordPress, so I added the needs-testing tag, because it does, but I also want to make sure I've done everything the 'WordPress' way and I want to make sure I havn't missed anything that is broken because of these small changes.",mobius5150
Future Releases,22959,Show all roles in user list table,,Role/Capability,,normal,normal,Future Release,enhancement,new,has-patch,2012-12-16T03:20:33Z,2013-05-14T13:45:46Z,"From [22686]:

> we should show a comma-separated list of all roles, editable or otherwise, and this list should be filterable, either by user, or by the roles which can appear. Probably both.

Previously: #22361",scribu
Future Releases,14803,Admins should be warned if authentication keys and salts have the default phrase,,Security,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-09-07T15:20:17Z,2012-08-06T00:50:33Z,"WordPress already warns admin users if any of the eight authentication keys/salts are not present in the wp-config.php.  (See `secret_salt_warning()` in wp-admin/includes/ms.php)  While performing that check, WP should also see if any of the keys/salts are using the default string of ""put your unique phrase here"".

The default string is pre-set for all eight keys/salts that ship in wp-config-sample.php.  While the inline documentation indicates that those values should be changed, there is no notice or prompting to alert/remind the admin if the default string is left intact.

Bear in mind that `wp_salt()` (in wp-includes/pluggable.php) ignores the keys/salts that use the default phrase or are blank strings, so security isn't compromised.  However, if we want the admins to define secure phrases in wp-config.php, we should make them aware when that's not the case.

The attached patch modifies `secret_salt_warning()` to also check that the keys/salts aren't using the default phrase and aren't blank strings (same check as done in `wp_salt()`).  If any are, the warning message provides a link to the wordpress.org secret key service.

See the attached image to see an example where I've removed LOGGED_IN_SALT from wp-config.php (the error message for that is already what WP generates) and where I've left the default phrase in place for AUTH_KEY and AUTH_SALT and set NONCE_SALT to '' (triggering the error message added by the attached patch).
",coffee2code
Future Releases,10151,HTML5 <video> elements stripped in kses.php,ryan,Security,2.8,normal,normal,Future Release,enhancement,new,has-patch,2009-06-14T01:04:30Z,2012-01-05T20:03:08Z,"WordPress currently strips the [http://www.whatwg.org/specs/web-apps/current-work/#video new HTML5 <video> element] as it is unrecognized.  The attached patch allows <video> passthrough in postings and comments.

Hopefully this patch (or a derivative) could be incorporated into WordPress proper.",GChriss
Future Releases,10741,Include user's IP address in the lost password message,ryan,Security,2.9,normal,minor,Future Release,enhancement,new,has-patch,2009-09-07T08:46:17Z,2009-11-20T20:49:58Z,"Add the line ""User's IP: "" in the password recovery message.

In my opinion, this can be useful for administrative tasks.",mr.slay
Future Releases,24063,Introduce some more _doing_it_wrong() calls in nonce functions,,Security,3.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-12T17:15:25Z,2013-04-12T17:17:09Z,"`check_admin_referer()` will tell you that you're `_doing_it_wrong()` if you don't specify the `$action` parameter. The corresponding `wp_nonce_field()` and `wp_nonce_url()` functions should behave the same way.

`check_ajax_referer()` should also behave the same as `check_admin_referer()` but I'm not sure if potentially raising notices in AJAX calls is a good idea. I've included it in the patch anyway.
",johnbillion
Future Releases,20779,Recommend a user updates keys/salts in maint/repair.php,,Security,,normal,normal,Future Release,enhancement,new,has-patch,2012-05-29T18:03:19Z,2012-06-27T20:29:33Z,"In maint/repair.php, we tell a user they need to add WP_ALLOW_REPAIR.

Since they are already going into wp-config.php, we should also encourage them to update their unique phrases for keys and salts, assuming they do not have a complete set of 8 unique ones already.",nacin
Future Releases,15434,Allow escaped quotes in shortcode atts,,Shortcodes,,normal,normal,Future Release,enhancement,new,has-patch,2010-11-15T14:56:56Z,2011-04-06T16:56:41Z,"It would be really helpful for plugin that I'm developing now, if you allowed shortcodes similar to this one:

[my_shortcode param=""param with \""escaped\"" quotes""]",mtymek
Future Releases,18558,Handling of dormant shortcodes is inelegant,,Shortcodes,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-31T20:25:06Z,2011-09-10T02:43:21Z,"Our handling of dormant shortcodes is inelegant. They spit out the raw shortcode. Better, would be for use to keep track of a historical record of which shortcodes have been registered, and if it's one of those ""dormant"" shortcodes (used to be registered, but no longer is), have it gracefully degrade, not show the shortcode, and return its contents if it's a wrapper shortcode.

This would require an option to track the shortcodes that have been used. Whenever a new one comes around, we add it to the array.

Eventually, we could deprecate the use of non-registered shortcodes, get rid of this solution, and simplify our regex to be generic (which would scale better).",markjaquith
Future Releases,23855,"Leave Shortcode functions early, if there's no Shortcode delimiter",,Shortcodes,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-24T15:15:03Z,2013-04-04T11:59:36Z,"The main Shortcode processing functions (like {{{do_shortcode()}}}) all make several function calls to build the Shortcode RegEx, with a lot of array handling and string concatenation, before finally using a comparably expensive {{{preg_replace()}}} - and that's for every post that is shown on a page, even if there's no Shortcode in the post.

With a quick check for the opening bracket {{{[}}}, that is required for every Shortcode, we can skip that extra work and leave those functions early to save some processing time.

The attached patch adds that to {{{do_shortcode()}}}, {{{strip_shortcodes()}}}, and {{{has_shortcode()}}}.

(Hat tip to bobbingwhite, who suggested this in [http://core.trac.wordpress.org/ticket/17657#comment:18 this comment] before, but it didn't gain traction as the ticket dealt with a different aspect of Shortcodes.)",TobiasBg
Future Releases,10702,Support for complex nested shorttags,,Shortcodes,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-08-30T11:47:41Z,2012-11-06T05:59:48Z,"The documentations is misleading on this point.
It is said that you can have nested shorttags by calling do_shorttag on the content.

However the shorttag parser isn't really a parser, it's just a non-greedy regex of some sort. It does work for simple tags without content, but when we define a [div] tag, look at the following code:

{{{
[div]
    [div]
        test1
    [/div]
    [div]
        test2
    [/div]
[/div]
}}}

Results is:

{{{
<div>
    <div>(tag without content)
    test1
</div>
<div>
    test2
    [/div](not parsed at all)
</div>
}}}

I think that if you want to stop people from writing their own parsers you should include some decent parser with Wordpress, not a regex I could do myself.

Workaround: Assign div2 and probably div3 and 4 to the same function, and use these for the nested tags. <--- very ugly!",pepijndevos
Future Releases,14501,Add $taxonomy as 2nd parameter to 'edit_tag_form_fields' hook,,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-08-01T19:56:58Z,2011-01-06T20:00:22Z,"Suggestion: Add $taxonomy as a 2nd parameter for the 'edit_tag_form_fields' hook in /wp-admin/edit-tag-form.php, line 67 in v3.0.1: 

Currently:
{{{
do_action('edit_tag_form_fields', $tag);
}}}

Change to:
{{{
do_action('edit_tag_form_fields', $tag, $taxonomy);
}}}

Ironically the taxonomy specific call (line 68) has the $taxonomy as a parameter:

{{{
do_action($taxonomy . '_edit_form_fields', $tag, $taxonomy);
}}}

And the ""add"" equivalents on lines 423+424 for /wp-admin/edit-tags.php have it too:

{{{
	do_action('add_tag_form_fields', $taxonomy);
do_action($taxonomy . '_add_form_fields', $taxonomy);
}}}
",mikeschinkel
Future Releases,15675,"Add a ""parent"" criteria to wp_get_object_terms()",,Taxonomy,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-04T04:18:02Z,2011-01-15T02:08:32Z,"Currently the core function `wp_get_object_terms()` does not allow the developer to filter by the `parent` field in the `wp_term_taxonomy` table. 

I found this limitation while doing a code review on a client's code. I wanted to recommend elimination of direct SQL queries to minimize kittens crying but found that currently it's not possible to limit the results returned by the SQL query to only those taxonomy items with a given parent. 

This patch adds a `parent` option for the `$args` parameter to `wp_get_object_terms()`.  While I was in there I noticed several other things which I added to the patch:

1.) It updates the header documentation to be easier to scan and to fix some of the errors which appear have resulted in code updates without documentation updates.

2.) It adds DISTINCT for all but `'all_with_object_id'==$fields` as per @scribu's suggestion on ticket #11003.

3.) It changes the code so that only one (1) SQL query is run when `'tt_ids'==$fields` instead of running the standard query and then throwing away its results to run the query a second time. '''However, please check my logic to make sure I didn't introduce an unintentional error here.'''

4.) I added an options for `'fields'` of both `'id=>name' and `'id=>term' because I've needed both of those use-cases several times in the past.

FYI, this patch should be considered a superset of #11003.",mikeschinkel
Future Releases,23261,Add include to orderby options for get_terms(),,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-22T05:10:43Z,2013-01-22T05:10:43Z,"In light of WordPress 3.5 allowing WP_Query to orderby `post__in` (#21776, #13729), it would be awesome to have the same functionality for `get_terms()` and the `include` argument. 

Likewise (#13729), term queries can specify the posts to retrieve by passing an array of term IDs to the `include` parameter. There is no built in method for sorting those posts by the order specified. ",wpsmith
Future Releases,18754,Add taxonomy argument to get_terms_orderby filter,,Taxonomy,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-23T12:04:05Z,2011-09-23T12:04:46Z,"The `get_terms_orderby` filter in `get_terms()` doesn't get passed the taxonomies parameter.

If a plugin wants to use the taxonomies parameter when filtering the terms order, it must also filter `get_terms_args` and add the taxonomies argument to the $args array, so it can subsequently use it in the `get_terms_orderby` filter.",johnbillion
Future Releases,11058,Add unregister_taxonomy(),,Taxonomy,,normal,normal,Future Release,enhancement,assigned,has-patch,2009-11-01T10:39:26Z,2013-01-11T04:11:16Z,There should be a function that unregisters a certain taxonomy after it has been registered.,scribu
Future Releases,23636,Allow multiple slugs in get_terms,,Taxonomy,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-27T00:22:26Z,2013-04-01T09:37:17Z,"Just as the title says, sometimes I need to retrieve multiple term IDs from slugs. Rather than calling get_term_by over and over, it'd be better to be able to specify an array of slugs for get_terms.",jfarthing84
Future Releases,18166,Be able to amend the parent dropdown on the edit taxonomy term page,,Taxonomy,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-07-18T22:15:56Z,2012-01-02T22:23:23Z,"It would be useful to filter the parent dropdown on the edit taxonomy term page (/wp-admin/edit-tags.php?taxonomy=foo&post_type=bar).

See attached patch (The filter probably needs a better name, but you get the point).",leewillis77
Future Releases,21734,Completely remove global terms,,Taxonomy,,normal,normal,Future Release,enhancement,new,has-patch,2012-08-29T21:38:55Z,2013-01-03T01:21:56Z,"It's an obscure WPMU feature that 1) hasn't been maintained 2) hardly anyone uses and 3) slows down development on the regular taxonomy code:

#5809 #18609 #18617

There isn't much code to remove, but the idea is to not have to worry about ""global terms"" anymore at all.",scribu
Future Releases,14206,Custom taxonomy meta box callback,garyc40,Taxonomy,3.0,normal,trivial,Future Release,enhancement,reviewing,has-patch,2010-07-06T02:39:02Z,2013-01-30T12:38:10Z,"I'd like to be able to specify my own meta box function for my custom taxonomies.

Currently if I want to specify my own meta box for my custom taxonomy, I must set the `public` parameter to false and then add my own meta box using `add_meta_box()`. It would be nice to just do this with a callback function parameter in `register_taxonomy()`.

Example:

{{{
register_taxonomy( 'foo', 'bar', array(
    'meta_box_callback' => 'my_meta_box'
) );
}}}

I'll write up a patch if there's a chance of it going in.",johnbillion
Future Releases,11823,Improve SQL query used by get_terms(),filosofo,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-01-08T13:07:19Z,2010-07-03T12:37:46Z,"#11076 / [12658] changes `get_terms()` so it uses SQL query with multiple conditions in WHERE clause - one for each included / excluded term. It will be better to change generated SQL from:
{{{
AND (t.term_id = 1 OR t.term_id = 2 OR ...)
AND (t.term_id <> 1 AND t.term_id <> 2 AND ...)
}}}
to:
{{{
AND t.term_id IN (1, 2, ...)
AND t.term_id NOT IN (1, 2, ...)
}}}",sirzooro
Future Releases,19780,Named category functions/docs need cleaning up,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-08T22:22:20Z,2012-12-12T16:54:09Z,"Spawning from a small discussion in #19776, I think it's about time something is done to deal with the older named category functions such as `wp_category_dropdown` and `wp_list_categories` in category-template.php

These functions aren't technically category-only as they accept a set $taxonomy. And because they are actually taxonomy-agnostic, I think we have a few different routes we can take to clean up after ourselves a bit:

A) Lock down these functions to 'categories'-only in favor of new, taxonomy-agnostic ones.

B) Leave the functions alone but let the inline-docs and hard-coded strings such as 'No Categories' reflect their versatility. e.g. 'No Terms' vs 'No Categories'.

C) Deprecate these older functions in deference to newer, taxonomy-agnostic ones.",DrewAPicture
Future Releases,14156,"Option to use name, in additon to slug and id in get_term_link() function",,Taxonomy,3.0,low,normal,Future Release,enhancement,new,has-patch,2010-06-30T14:35:54Z,2010-11-24T20:16:15Z,"Right now the get_term_link() function (in wp-includes/taxonomy.php) can be used only with either term id or term slug.

It would be useful to provide an option to add name in addition to term id and slug. 

This function inturn uses get_term_by() function and it has the option to provide term name, but the get_term_link() function doesn't have a way to do this.",sudar
Future Releases,16022,Search does not look for tags,,Taxonomy,3.0,normal,normal,Future Release,enhancement,reopened,has-patch,2010-12-29T15:28:51Z,2011-03-23T17:07:08Z,"While 3.1 Beta Testing I ran over this:

Ajax search is to search the (paginated) table. The table has tags in it's display. Search is not looking for those.

----


'''How to reproduce?'''

 1. Edit a Post.
 2. Add a new Tag that doesn't exist so far. 
 3. Update the Post.
 4. Go to Posts.
 5. Search for the just created Tag.
 6. You get an empty search result.

----

See #14579 and #15580
",hakre
Future Releases,13661,Support id=>name in fields arg of get_terms(),,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-05-31T18:46:52Z,2010-10-27T12:30:23Z,"In trying to use `get_terms()` I found it didn't support what seemed a common use case; an array where keys were `$term->term_id` and the values where `$term->name`. 

This patch adds functionailty for a ""`id=>name`"" in `fields` arg of `get_terms()`. It returns array of term names keyed by the term id.

This path is similar to changeset:12729 by ryan on 2010-Jan-15.

I searched for a similar ticket but didn't find anything recently related.
",mikeschinkel
Future Releases,13992,get_terms() has 'search' and 'name__like',,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-19T08:45:55Z,2010-11-13T10:06:04Z,"Both do similar things:

{{{
	if ( !empty($name__like) )
		$where .= "" AND t.name LIKE '{$name__like}%'"";
...

	if ( !empty($search) ) {
		$search = like_escape($search);
		$where .= "" AND (t.name LIKE '%$search%')"";
	}
}}}

name__like should be removed in favour of search IMO, unless that functionality is intended, and in that case, name__like should get like_escape() applied",dd32
Future Releases,14448,"get_terms(): Add ""slugs"" option for $fields",,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-28T23:21:47Z,2011-11-29T19:59:58Z,"This patch allows get_terms to return an array of term slugs (same as for ""names"" but with slugs).

Usage:

{{{
print_r( get_terms( 'event', array( 'fields'=>'slugs', 'hide_empty'=>0, ) ) );
}}}

will return

{{{
Array
(
    [0] => concerts
    [1] => talks
    [2] => training
    [3] => workshops
)
}}}

",wjm
Future Releases,17069,missing get_term_parents() function,,Taxonomy,3.1,normal,normal,Future Release,enhancement,reopened,has-patch,2011-04-06T23:58:19Z,2011-09-21T14:42:39Z,"we got get_category_parents (http://core.trac.wordpress.org/browser/tags/3.1/wp-includes/category-template.php#L30)
which use $parent = &get_category( $id ); limited to 'category' taxonomy, but there is nothing similar to other taxonomies. IMO we should rewrite this function to be generic and use it as get_term_parents function, the existing get_category_parents would use that get_term_parents, so something like (sorry, i do not know how to use diff) this:


{{{
42	function get_term_parents( $id, $taxonomy, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
43	        $chain = '';
44	        $parent = &get_term( $id, $taxonomy );
45	        if ( is_wp_error( $parent ) )
46	                return $parent;
47	
48	        if ( $nicename )
49	                $name = $parent->slug;
50	        else
51	                $name = $parent->name;
52	
53	        if ( $parent->parent && ( $parent->parent != $parent->term_id ) && !in_array( $parent->parent, $visited ) ) {
54	                $visited[] = $parent->parent;
55	                $chain .= get_term_parents( $parent->parent, $link, $separator, $nicename, $visited );
56	        }
57	
58	        if ( $link )
59	                $chain .= '<a href=""' . get_term_link( $parent->term_id ) . '"" title=""' . esc_attr( sprintf( __( ""View all posts in %s"" ), $parent->name ) ) . '"">'.$name.'</a>' . $separator;
60	        else
61	                $chain .= $name.$separator;
62	        return $chain;
63	}
}}}
and
{{{
function get_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
   return get_term_parents ($id,'category',$separator,$nicename,$visited);
}
}}}














",thomask
Future Releases,20930,register_taxonomy show_in_menu option,,Taxonomy,,normal,normal,Future Release,enhancement,new,has-patch,2012-06-12T23:07:30Z,2012-11-23T19:55:35Z,"Shouldn't taxonomies have a show_in_menu option for taxonomies as well. Of course, this would be the same as custom post types affecting the registration and the $parent_file.

The original attachment has the parent file logic via the filter, 'parent_file'.",wpsmith
Future Releases,18714,terms_updated_messages filter,nacin*,Taxonomy,,normal,normal,Future Release,enhancement,accepted,has-patch,2011-09-20T07:57:18Z,2011-09-27T05:11:23Z,"In the same vein as #18710 we should add a `terms_updated_messages` filter for the term management screen. Messages are currently hardcoded as 'Item added', 'Items deleted', etc.",johnbillion
Future Releases,23378,wp_(insert|update)_term() should accept term slug as 'parent' argument,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-04T02:54:38Z,2013-02-10T06:56:17Z,"For those programmatically using `wp_insert_term()` and `wp_update_term()`, it would be great if the 'parent' argument could be a term_id or term slug.",danielbachhuber
Future Releases,16677,wp_dropdown_categories() shows the wrong name/id when $taxonomy argument is set,,Taxonomy,3.1,normal,normal,Future Release,enhancement,reopened,has-patch,2011-02-26T12:52:29Z,2011-02-26T15:05:04Z,"when using '''wp_dropdown_categories()''' the code result is:

{{{
<select name='cat' id='cat' class='postform' >
<option class=""level-0"" value=""1"">item 1</option>
<option class=""level-0"" value=""2"">item 2</option>
<option class=""level-0"" value=""3"">item 3</option>
</select>
}}}

The '''name='cat' id='cat''''.

----

When using '''wp_dropdown_categories( array( 'taxonomy' => 'channel'  )  )''' the code result is:

{{{
<select name='cat' id='cat' class='postform' >
<option class=""level-0"" value=""1"">term item 1</option>
<option class=""level-0"" value=""2"">term item 2</option>
<option class=""level-0"" value=""3"">term item 3</option>
</select>
}}}

The '''name''' and the '''id''' did not changed to '''channel'''.
",ramiy
Future Releases,19373,wp_insert_post() should not contain current_user_can() checks,,Taxonomy,3.0,normal,major,Future Release,enhancement,new,has-patch,2011-11-27T17:02:31Z,2013-05-16T11:57:33Z,"wp_insert_post() is a utility function, it should not have a reliance on user capabilities. There are only two places in this function where there is a current_user_can() check - for updating custom taxonomies and for setting post slugs. All other checks (can user publish posts, etc.) are properly handled outside of the utility function.

wp_insert_post() should be safe to use in code that is run without a user context, for example via CRON. With the current code, this is the case *except* for the custom taxonomy feature. This inconsistency can cause a BrilliantDeveloperTM to lose a good deal of time debugging why the same data being passed in is coming back with different results.

For 3.4 (please!), perhaps we can figure out a way to move the checks for user capabilities on taxonomies out of the utility function and into the controller/procedural code. I'm happy to author and submit a patch once an approach has been determined.

For other developers who run into this and need to work around it, either of these 2 options work:

1. call wp_set_post_terms() to add your taxonomies after calling wp_insert_post()
2. set up a ""current user"" in your script before calling wp_insert_post()",alexkingorg
Future Releases,16550,wp_set_post_categories should take an integer,,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,has-patch,2011-02-13T11:47:44Z,2011-02-20T17:14:58Z,"{{{wp_set_post_categories();}}} can only be passed an array of cat ids. If you pass it an integer, it resets the value to the default category even though the category exists.

This happens as the if statement runs an OR check to see if the second parameter is not an array or empty. If one is true, it just goes on ahead and resets the parameter to be the default category regardless if the value was empty or a string.

Patch fixes this by strict typing the second parameter to an array. It also strict types the default category id as it was being returned as a string.",ptahdunbar
Future Releases,13979,Add a new arg for custom ID attributes with wp_page_menu(),,Template,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-18T15:53:41Z,2010-11-24T21:05:49Z,"The attached patch adds a new arg to wp_page_menu() for setting custom ID attributes (right now you can only set a Class--incorrectly noted as the ID in the docs).

Since wp_page_menu() is the default fallback for wp_nav_menu() this would be potentially super-helpful for marrying up with wp_nav_menu()'s container_ID.",iandstewart
Future Releases,17877,Add a new wp_title_array filter to wp_title,,Template,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-06-23T23:10:00Z,2013-05-14T13:34:04Z,It would be awesome to have a filter in `wp_title()` that would let you filter the array.  Right now if any part of the title contains the title separator you can't tell what is a separator and what isn't using the wp_title filter.  Additionally if we make the array filterable you could add additional parts to it without worrying about rtl vs ltr.,aaroncampbell
Future Releases,6109,Add class attribute for next_posts_link and previous_posts_link,sorich87*,Template,,normal,minor,Future Release,enhancement,accepted,has-patch,2008-03-06T04:00:55Z,2010-07-20T13:50:25Z,Usually i see myself adding divs or spans around links generated with next_posts_link and previous_posts_link to style them. They should have a parameter where one could add the class attribute for the link.,charlieman
Future Releases,10968,Add container_element arg to wp_page_menu(),,Template,,normal,normal,Future Release,enhancement,new,has-patch,2009-10-17T10:34:58Z,2009-11-20T20:50:58Z,"I have added a new argument to the wp_page_menu template tag so it replaces the container div with another HTML element.

This is useful when migrating to HTML 5 and you want to use the <nav> element.",stebbiv
Future Releases,4601,Add extra formatting parameters to wp_list_categories,,Template,2.2.1,low,normal,Future Release,enhancement,new,has-patch,2007-07-09T16:24:42Z,2010-08-12T20:31:42Z,"The wp_list_categories() function should have the following parameters added to it:
before, after, between, show_description. These would behave much the same as they do in the wp_list_bookmarks() function.

Request for this sort of functionality was made here: http://wordpress.org/support/topic/124374

I think it's a good idea as it further standardizes the wp_list_* functions. 

Implementing this would require changes to the wp_list_categories() function, as well as changes to the Walker_Category class to actually perform the output.
",Otto42
Future Releases,17302,"Add get_previous_post_link(), get_next_post_link(), and get_adjacent_post_link()",westi,Template,3.2,normal,normal,Future Release,enhancement,reviewing,has-patch,2011-05-02T07:36:12Z,2013-02-19T12:26:13Z,"Unlike many other template tags, he functions adjacent_post_link(), next_post_link(), and previous_post_link() are missing their get_ counterparts.
Included patch adds those.",yoavf
Future Releases,10180,"Add rel=""prev"" to previous_posts_link() and rel=""next"" to next_posts_link()",,Template,,normal,normal,Future Release,enhancement,reopened,has-patch,2009-06-15T18:00:14Z,2010-10-20T15:38:01Z,"Putting proper rel values on archive next/previous links is actually not even properly possible with a plugin, so I had to use a patch

http://gist.github.com/120586

Really this should (IMHO) all go into core

http://singpolyma.net/2009/05/rel-prev-next-wordpress/",singpolyma
Future Releases,22314,Add singular.php to template hierarchy,,Template,3.4.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-30T15:04:24Z,2012-11-10T07:33:20Z,"Currently, the template hierarchy includes a fallback template (archive.php) for all archive-index type pages (date, tag, category, taxonomy, author, blog posts index, custom post type index), but does not include an analogous fallback template for single-post type pages (blog post, page, attachment, custom post type). This patch adds `singular.php` to act as such fallback.

This change also ensures that all template context conditionals have associated template files. AFAIK, `is_singular()` is currently the only template context conditional that does not have such a corresponding template file.",chipbennett
Future Releases,20167,Add wp_pages_checklist for creating checklist of pages on site,,Template,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-04T04:57:00Z,2012-03-06T01:56:51Z,"Per conclusion of [http://core.trac.wordpress.org/ticket/20156#comment:15 ticket #20156]

""If someone does write a patch that implements wp_posts_checklist() and
uses it in nav-menus.php, please open a new ticket.""

The attached patch:
- extends Walker with Walker_Page_Checklist
- adds wp_pages_checklist() and wp_pages_checklist() functions

functionality structure was modeled after wp_category_checklist and wp_dropdown_pages to keep with WP standards. 

If this patch is accepted my intention is to finish the request and implement it into nav-menus.php.",jackreichert
Future Releases,9902,"Adding an ""exclude"" parameter to ""wp_list_authors()""",ericmann*,Template,2.7.1,normal,normal,Future Release,enhancement,accepted,has-patch,2009-05-22T00:23:12Z,2010-08-13T11:19:28Z,"'''wp_list_categories()''' has an ""exclude"" parameter.

'''wp_list_pages()''' has an ""exclude"" and ""exclude_tree"" parameters.

'''wp_list_bookmarks()''' has an ""exclude"" and ""exclude_category"" parameters.

And only '''wp_list_authors()''' has no ""exclude"" parameter. Although it allows template developers to ""exclude_admin"", but this is a Boolean parameter, so we can't use it to exclude other authors.

This enhancement is not a critical one, but adding this feature will give theme developers more tools to control over the presented content.",ramiy
Future Releases,24064,Allow comment_form() to display the comment field first,,Template,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-12T17:44:36Z,2013-04-13T08:57:03Z,"Many sites and many third-party comment system providers display the comment field before the name/email/URL fields in comment forms these days.

It would be nice to have any easy option to do this with the `comment_form()` function. Currently if you want to display the comment field first you'll have to avoid using `comment_form()` or you'll have to do some crazy CSS or jQuery trickery to move things around. Neither are optimal.",johnbillion
Future Releases,23669,Allow front page template to fall back to home template when site displays blog posts index on front page,,Template,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-02T21:15:25Z,2013-03-03T06:00:01Z,"The `front-page.php` template file is intended to define custom, static front page content. However, this template file takes precedence, regardless of whether `get_option( 'show_on_front' )` is set to `'posts'` or `'page'`.

If the user sets the front page to display the blog posts index, this choice is effectively superseded by `front-page.php`, and the blog posts index is not displayed unless the Theme specifically accounts for this setting in the template file, using something like so:

{{{
 if ( 'posts' == get_option( 'show_on_front' ) ) {
     get_template_part( 'home' );
 } else {
     // front page markup goes here
 }
 }}}

But requiring all Themes to include such a conditional in `front-page.php` essentially defeats the purpose of the the `front-page.php` file in the template hierarchy.

Instead, WordPress should consider `get_option( 'show_on_front' )`, and should return ''either'' `front-page.php` (for `'page'`) ''or'' `home.php` (for `'posts'`) on the site front page.

Attached patch modifies `get_front_page_template()` accordingly.

Impact to current Themes is almost certainly minimal to none, for Themes that already properly use `front-page.php` and `home.php`.",chipbennett
Future Releases,16024,Conditional Comments for JS,,Template,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-29T16:06:22Z,2013-04-26T01:28:24Z,"Currently, we can add IE conditional comments for CSS but not JS.  That seems unnecessarily inconsistent.

Patch would allow us to do something like the following:

{{{
wp_enqueue_script( 'pngfix-handle' );
$wp_scripts->add_data( 'pngfix-handle', 'conditional', 'IE 6' );
}}}",filosofo
Future Releases,24164,Deprecate `get_permalink()`,,Template,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-23T05:35:17Z,2013-04-25T21:56:52Z,"With the exception of `get_permalink()`, all in-loop template tags follow a simple pattern:

- the_author -> get_the_author
- the_content -> get_the_content
- the_title -> get_the_title

It's easy for developers to keep remember that `the_{something}` will echo a value while `get_the_{something}` will return it.

For the sake of consistency, `get_permalink()` should be deprecated and replaced with `get_the_permalink()`.",ericmann
Future Releases,23281,Enhancement for comment_form(); allow styling the submit button,,Template,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-24T01:08:14Z,2013-01-26T23:43:17Z,"Hi there,

I'm looking at adding a feature where we can define the class for the submit button. I'm happy to create a patch for this if required. The reason for this is because right now we can change say the email field so much but we get little to no concrol over the submit button.

I'm looking at 

A: Convert the entire submit button into somehing like how the text areas are done (author and email) then we get full control over the styling and other things related or;

B Add something like class_submit so that we can set the style of the submit button.

Kind regards,

Daniel Fenn",Danielx64
Future Releases,14041,Ensure a 'has_children' parameter is given to start_el,,Template,3.0,normal,minor,Future Release,enhancement,reopened,has-patch,2010-06-22T08:50:49Z,2010-10-28T12:27:25Z,"In the current display_element function of the Walker class, a 'has_children' argument is only added if args[0] is an array.

I'm not quite sure why this is the case. Wouldn't it be easier if a has_children argument is always added and passed on on to the callback functions like start_el?

i've currently modified a custom walker to do it like this:

{{{
		//display this element
		if ( is_array( $args[0] ) )
			$args[0]['has_children'] = ! empty( $children_elements[$element->$id_field] );
		$cb_args = array_merge( array(&$output, $element, $depth), $args);
		$cb_args['has_children'] = ! empty( $children_elements[$element->$id_field] );
}}}

But recon it can be done in a cleaner way.


",jaapjanfrans
Future Releases,21713,Extend login body class to support custom background,,Template,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-28T14:46:00Z,2012-09-01T07:19:36Z,"It would be useful to have a class `custom-background` on the `body` element for `wp-login.php`. Then we could just write:

{{{
add_action( 'login_head', '_custom_background_cb' );
}}}

Currently we have to copy the whole function with a very tiny difference: replace `body.custom-background` with `body.login`. Not very elegant.",toscho
Future Releases,20717,Filter For Requiring Post Password,,Template,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-05-21T03:37:43Z,2012-07-26T17:24:39Z,"I've had the need to conditionally disable the password on a post based on criteria that I define in a plugin. In order to do this, I added a filter in the post_password_required() function in wp-includes/post-template.php. This is helpful to allow search engines to crawl password protected pages or allow certain users to view the page without typing in the password.

It would be great if this could get included in the core.

Thanks for your time.",BrandonGodwin
Future Releases,16497,Filter css class for wp_list_category elements,,Template,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-02-08T23:13:52Z,2011-02-09T17:55:56Z,Add a filter 'category_css_class' so that we have the equivalent in the Category_Walker class for what we have for pages (page_css_class).,sivel
Future Releases,9571,Filter to exclude categories from adjacent post links,,Template,,normal,normal,Future Release,enhancement,new,has-patch,2009-04-18T03:09:41Z,2012-10-30T19:51:09Z,"I'm currently attempting to exclude a certain category from everywhere possible. While there are filters to exclude it from everywhere else (as far as I can see, anyway), there is not a filter to exclude it from next/previous post links.

The following patch adds a hook called 'get_{$adjacent}_post_excluded' to filter the excluded categories string.",rmccue
Future Releases,20037,Introduce 'noindex' filter for robots meta tag,,Template,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-14T05:01:38Z,2012-03-08T07:56:07Z,"As things are right now, themes and plugins add robots meta tag lines by just adding an action to wp_head, with no way of knowing who has added what. Because it is not done as a filter, there is no way to prioritize or alter things.

As far as I can see there are two functions that are hooked to wp_head to add the meta tag for robots, the noindex() and wp_no_robots() function in '/wp-includes/general-template.php'. All noindex() does is look to see if a blog is marked private, then calls wp_no_robots(). In other places, like the signup and login pages, wp_no_robots is manually added.

To help clear up the confusion, we could just call wp_no_robots whenever we need to add a robots meta tag, use wp_no_robots to do some default logic, then allow plugins to filter it depending on where we are.

Working on a quick patch now and will add.",MartyThornley
Future Releases,20287,Load header and footer template files using hooks,,Template,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-23T09:15:08Z,2012-03-23T09:34:48Z,"The theme header and footer files are loaded from inside the `get_header()` and `get_footer()` functions.

If these files were instead loaded from helper functions that were hooked into actions inside `get_header` and `get_footer` then we'd get two nice benefits:

 1. Theme frameworks that call a function or fire an action immediately after the header would be able to use the hooks instead of placing the calls directly in each file. For example, Thematic calls `thematic_abovecontainer()` in each template file immediately after `get_header()`. It could instead add this via a hook.
 2. Fancy schmancy themes or plugins that add partial-page AJAX loading (using a system such as PJAX) could unhook the header and footer when they're unneeded in AJAX requests.

Patch coming up.",johnbillion
Future Releases,19579,Make get_search_form() more filterable/extensible,,Template,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-16T15:16:17Z,2013-03-22T18:36:39Z,"I notice that a lot of the time when Themes include custom search form markup via `searchform.php`, they are making very minor changes to the default markup. (A common on is adding onfocus/onblur attributes to the input.) Unfortunately, I've also noticed that custom search form markup tends to be... forgotten, and ends up becoming more insecure over time. 

So, in the interest of encouraging/facilitating use of the core markup, I propose making `get_search_form()` more extensible, similar to the extensibility of `comment_form()`.

This patch replaces `$echo = true` with `$args = array()` as the parameter passed to `get_search_form()`, while retaining backward compatibility with `$echo = true`. Also, a (self-explanatory) `search_form_defaults` filter is added.

Also addresses #16538

Does '''not''' address #16541, which is potentially related.

Probably '''conflicts''' with #14851

Also related: #19321",chipbennett
Future Releases,4969,Make wp_list_* functions all behave similarly...,ryan,Template,2.3,normal,normal,Future Release,enhancement,new,has-patch,2007-09-13T14:18:22Z,2012-08-27T21:46:32Z,"The sidebar template typically uses lists of lists to prettily display lists of pages, categories and bookmarks. Lists of pages, categories and bookmarks are forced to be items of lists themselves as the functions wp_list_pages(),wp_list_categories() and wp_list_bookmarks() wrap the output of functions in <li>..</li> tags by default.

Lists are intended to indicate something about the structure of the document where as these forced <li> tags appear to be intended to provide pretty indentation. Nested-lists can also provide confusion for non-visual readers.

wp_list_bookmarks() provides the ability to override this with category_before and category_after options. wp_list_pages() and wp_list_categories() should offer similar options. Ideally the accessible approach would be the default for these options but I don't believe this is possible without breaking existing themes.",pishmishy
Future Releases,7993,Missing tabindex argument for wp_dropdown generated inputs,,Template,2.7,normal,minor,Future Release,enhancement,new,has-patch,2008-10-28T15:44:59Z,2010-07-09T13:33:00Z,"http://codex.wordpress.org/Template_Tags/wp_dropdown_categories allows to create a select for categories.

There is no tabindex option in common arguments, which is a loss for usability.

There could be other functions affected.",Malaiac
Future Releases,23263,Move Media's backbone template regexes,,Template,3.5,normal,normal,Future Release,enhancement,new,has-patch,2013-01-22T08:09:54Z,2013-05-16T12:13:49Z,"Media has custom Backbone templating (because PHP is stupid and sometimes parses `<% %>` as PHP code — I know, I know). That templating should be available elsewhere instead of being specific to media.

{{{
		template: _.memoize( function( id ) {
			var compiled,
				options = {
					evaluate:    /<#([\s\S]+?)#>/g,
					interpolate: /\{\{\{([\s\S]+?)\}\}\}/g,
					escape:      /\{\{([^\}]+?)\}\}(?!\})/g,
					variable:    'data'
				};

			return function( data ) {
				compiled = compiled || _.template( $( '#tmpl-' + id ).html(), null, options );
				return compiled( data );
			};
		})
}}}",markjaquith
Future Releases,21891,Need ability to filter page templates,,Template,3.4.2,normal,normal,Awaiting Review,enhancement,new,close,2012-09-14T17:38:50Z,2013-01-13T18:33:14Z,"The old way of removing a parent theme's templates (as documented [http://wordpress.org/support/topic/removing-page-template-from-child-theme?replies=3 here], [http://wordpress.stackexchange.com/questions/54054/how-to-remove-a-parent-theme-template-from-quick-edit here], and [http://stackoverflow.com/questions/9411612/wordpress-hiding-or-removing-parent-themes-templates here]) broke with the big theme-handling rewrite in 3.4.

The primary use case of a new filter would be to allow a child theme to remove or rename a parent theme page template in the Dashboard. It's possible that part of the `get_page_templates()` function might have to be tweaked to allow for the scenario where one or more pages is using a template that no longer ""exists,"" but I'm not sure.

Hopefully this is as simple as adding `apply_filters( 'page_templates', $page_templates );` somewhere in [http://core.trac.wordpress.org/browser/trunk/wp-includes/class-wp-theme.php#L920 class-wp-theme.php].",mrwweb
Future Releases,23724,Pass $post into 'protected_title_format' and 'private_title_format' filters,,Template,3.5,low,minor,Awaiting Review,enhancement,new,has-patch,2013-03-08T22:53:57Z,2013-03-09T05:22:43Z,"Currently it's only possible to change these prefixes globally.

Being able to change these prefixes based on specific $post data would be helpful for narrowing down the scope, say to specific custom post types.

I noticed also that we don't pass $post into the 'the_title' filter, which could cut down on an additional get_post() call later if we pass it here. Obviously not essential, but wouldn't hurt.",johnjamesjacoby
Future Releases,21676,Pass a variable to get_template_part(),,Template,3.4.1,normal,normal,Awaiting Review,enhancement,new,close,2012-08-23T20:15:37Z,2013-04-03T13:05:31Z,"Having the ability to pass a variable into get_template_part would be invaluable, it would really clean up the issues with using globals and to further cement it's use rather than the alternative of a normal PHP include/require.

It would be the third variable passed into get_template_part, which I could pass it a string, array, object, or whatever I want really. Here's an example of passing all the current scope's variables:

{{{
<?php get_template_part( 'twitter', 'feed', compact( array_keys( get_defined_vars() ) ) ); ?>
}}}

and then catching them in my feed-twitter.php file:

{{{
if ( !empty( $_data ) && is_array( $_data ) )
	extract( $_data, EXTR_SKIP );
}}}

I can pass other things in, but that's a really valuable example in my uses for this new variable.",sc0ttkclark
Future Releases,23734,Pass more information to wp_dropdown_pages filter,,Template,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-09T23:26:08Z,2013-04-17T02:28:20Z,We need to pass more information to the 'wp_dropdown_pages' filter for others to make decisions with.  Here's a small & quick patch for passing more args to the filter.,bigdawggi
Future Releases,20253,SSL login in custom port,,Template,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-18T09:08:12Z,2012-04-19T03:21:13Z,"From my blog article, http://blog.1407.org/2012/03/18/log-into-wordpress-with-ssl-on-custom-port-if-needed/

In order to login into WordPress with SSL you just need to add the following to wp-config.php:

{{{
    define(‘FORCE_SSL_LOGIN’, true);
    define(‘FORCE_SSL_ADMIN’, true);
}}}

But that redirects you to https://www.yourDomain.org/. What if you need to redirect into https://www.yourDomain.org:8443/ ? What then?

Well, the following patch will allow you to add a property called CUSTOM_PORT which you will define as your desired port. In case of my small example, 8443 like this:

{{{
    define(‘CUSTOM_PORT’, 8443);
}}}",rseabra
Future Releases,6956,Title for Feed Links: post_comments_feed_link,,Template,2.5.1,lowest,trivial,Future Release,enhancement,new,has-patch,2008-05-11T05:43:33Z,2011-02-04T07:18:13Z,"Should not all functions that create URLs not include a title?

Sure is more user friendly.

link-template.php line 319 (wp 2.5.1)

Change From:

echo ""<a href='$url'>$link_text</a>"";

Change To:

echo ""<a href='$url' title='Permanent Feed Link'>$link_text</a>"";",war59312
Future Releases,17763,comments_popup_link() need a get_* version,,Template,3.2,normal,normal,Future Release,enhancement,new,has-patch,2011-06-11T06:20:09Z,2012-06-08T18:43:23Z,"Currently `comments_popup_link($zero = false, $one = false, $more = false, $css_class = '', $none = false)` has no get_*() version.

Usage situation: Where the link needs to be used within a larger string being concatenated.",dd32
Future Releases,7402,get_calendar() -- add class to current is_single() post,,Template,,normal,normal,Future Release,enhancement,new,has-patch,2008-07-25T01:07:11Z,2010-07-15T09:59:38Z,"When I look at the markup for the wp_calender widget for a 'single' page, I expect the day of the current article to have it's <td> cell to have a class on it.  Like the class ""today"" for the current day.",docwhat
Future Releases,15202,get_calendar() lacks filters on it's database queries,,Template,,normal,normal,Future Release,enhancement,new,has-patch,2010-10-24T10:16:12Z,2012-01-14T15:32:26Z,There's no way to limit the calendar to a specific taxonomy or taxonomy value. Most everything else in WordPress has filters on the WHERE and JOIN parts of the database query (`wp_get_archives()` for example). `get_calendar()` does not. It should. :),Viper007Bond
Future Releases,7030,get_category_parents needs improvement,,Template,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-05-23T15:25:32Z,2011-09-21T14:42:31Z,"get_category_parents is fine for internal use and generating URLs etc. but it also has a template tag version which could use some enhancements.

Problems 1: It displays the separator at the end of the list as well as in between categories.

Problem 2: There is no way to override the title attribute when generating links.

Problem 3: This is more of a documentation and code readability issue than anything else, the ""nicename"" parameter is named back-to-front (i.e. FALSE means you get nice names and TRUE means you get slugs).

The following replacement function fixes all three issues (issue 3 fixed in the parameter name, still needs fixing in the docs):


{{{
function get_category_parents($id, $link = FALSE, $separator = '/', $useslug = FALSE, $trailingseparator = TRUE, $usedescfortitle = FALSE)
{
	$output = """";

	// Get the category from the id
	$category = &get_category($id);
	if(is_wp_error($category))
	{
		return $category;
	}

	// Use the slug or the category name
	if($useslug)
	{
		$name = $category->slug;
	}
	else
	{
		$name = $category->cat_name;
	}

	// If this is not a top-level parent, first get the parent of this category.
	if($category->parent && ($category->parent != $category->term_id))
	{
		$output = get_category_parents($category->parent, $link, $separator, $useslug, $trailingseparator, $usedescfortitle);

		// If the parent output did NOT contain a trailing separator
		// we need to add the separator between category names/links
		if(!$trailingseparator)
		{
			$output .= $separator;
		}
	}

	// Output a link or plain text
	if($link)
	{
		$title = """";

		// Use the category description or the default text for the link title
		if($usedescfortitle)
		{
			$title = $category->description;
		}

		if($title == """")
		{
			$title = ""View all posts in "" . $name;
		}

		// Add this category link onto the end of the string which already contains all of its parent links
		$output .= '<a href=""' . get_category_link($category->term_id) . '"" title=""' . $title . '"">' . $name . '</a>';
	}
	else
	{
		// Add this category name onto the end of the string which already contains all of its parent names
		$output .= $name;
	}

	// Add the trailing separator
	if($trailingseparator)
	{
		$output .= $separator;
	}

	return $output;
}
}}}


This updated function is backwards compatible with the old one, there should not be any behavioural differences. If someone could integrate and test it in the core for the next release it'd be much appreciated. Also change the docs so that nice name is called use slugs instead.

Ta,
-Jay",jayabb
Future Releases,22271,get_post_class() does not always apply filter to output,,Template,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-24T12:52:51Z,2012-11-05T21:07:31Z,"Currently the post class function/template tag simply returns an empty array for 404 requests. The reason is simple: The output gets generated based on the return values of {{{get_post()}}}.

This avoids using it to style parts of the 404 template using the {{{post_class}}} filter.

Use case: In one theme I'm currently developing, I use the {{{post_class}}} filter to override the parent themes classes with some grid classes from a CSS framework. This avoids duplicating the templates and handle the positions, etc. of the template parts with a simple callback for the {{{post_class}}} filter. The attached patch makes sure that classes get added, instead of just returning an empty array if no {{{$post->ID}}} is present. It doesn't harm any other callback (or interfere with it).

The attached patch is tested in current 3.4.2 and 3.5 Beta. It is built against the v3.5 nightly build - revision 606806.

Sidenote: The somehow wired phpDocBlock comment was also ""fixed"".",F J Kaiser
Future Releases,8050,is_child(),westi*,Template,,normal,normal,Future Release,enhancement,accepted,has-patch,2008-11-03T18:58:48Z,2011-10-08T00:11:04Z,"Is there any reason why there is no native is_child(direct,in_tree) function for hierarchical structures in WP (like pages, categories, custom hierarchical taxonomies)? There's a (partly) working plugin available at

http://2pt3.com/post/wordpress-plugins/

but I think this amounts to a core functionality, particularly for people using WP as a hierarchical CMS.",youngmicroserf
Future Releases,14900,link-template string builder cleanup,,Template,,normal,normal,Future Release,enhancement,new,has-patch,2010-09-19T18:40:48Z,2011-01-13T06:05:16Z,"Convert dynamic strings to static strings where quick wins are available.

Wrap output such as translated strings in an esc_attr or esc_html just in case HTML can better handle what a parent page's character encoding can't.",niallkennedy
Future Releases,16223,post_class for public custom taxonomies,,Template,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-13T22:37:24Z,2012-09-14T00:52:00Z,post_class() should include styles for custom taxonomies.,sillybean
Future Releases,24103,the wp_dropdown_cats filter should pass the args as a second parameter,,Template,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-16T14:45:18Z,2013-04-17T02:28:37Z,"effectively filtering the output of the wp_dropdown_categories function is only possible knowing their args



{{{
Index: wp-includes/category-template.php
===================================================================
--- wp-includes/category-template.php	(revision 24000)
+++ wp-includes/category-template.php	(working copy)
@@ -370,7 +370,7 @@
 	if ( ! $r['hide_if_empty'] || ! empty($categories) )
 		$output .= ""</select>\n"";

-	$output = apply_filters( 'wp_dropdown_cats', $output );
+	$output = apply_filters( 'wp_dropdown_cats', $output, $r );

 	if ( $echo )
 		echo $output;
}}}",olivM
Future Releases,16625,wp_dropdown_categories reqs (consistent) option_none_value,,Template,3.0.4,normal,minor,Awaiting Review,enhancement,reviewing,has-patch,2011-02-23T23:58:22Z,2011-03-25T13:15:40Z,"wp_dropdown_categories sets option_none value=""-1"" without any means to override, whereas other similar funcs (eg:wp_dropdown_pages) use options_none value='' and also provide method to override default (option_none_value).

please could we have a consistent set of values (and options interface) to all thee dropdown funcs and save us some unnecessary and messy extra coding. thanks.",rcain
Future Releases,19851,wp_dropdown_categories should add category slug as class to each option.,,Template,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-01-18T15:17:57Z,2012-01-18T19:48:20Z,"Portability is important for theme developers. With more and more developers using JS for enhanced functionality of their themes it's important to offer portable selectors for their use. Category ID's tend to change in the migration process, category names do not. 

While it's important to keep the class clutter low, I believe adding the slug of a category as a class to each option in wp_dropdown_categories would be very helpful for developers. 

I found this modification useful for a theme I was developing and offer this patch with hope that my solution may benefit other developers.",jackreichert
Future Releases,10558,wp_link_pages could allow for both page numbers and next/prev links,,Template,,normal,normal,Future Release,enhancement,new,has-patch,2009-08-06T16:26:59Z,2009-11-20T17:41:11Z,The attached patch does exactly that.,simonwheatley
Future Releases,7231,wp_link_pages: option  next_and_number,sorich87*,Template,,normal,normal,Future Release,enhancement,accepted,has-patch,2008-07-03T09:25:43Z,2010-08-03T14:15:48Z,"with the next_or_number option of the wp_link_pages() function, it would be nice to have the option to use both.

it gives the user the opportunity to easily go to the next/previous page, without loosing the other option of going immediately to a certain page

example:
__next__ __1__ 2 __3__ __4__ __5__ __6__ __previous__

",jan831
Future Releases,8733,wp_list_bookmarks to optionally display feed/rss_link,,Template,2.7,normal,normal,Future Release,enhancement,new,has-patch,2008-12-27T16:19:53Z,2010-08-11T20:51:56Z,"wp_listbookmarks has options to show optional fields such as the rating, but not the rss_link, useful when a template is listing a blogroll of blog HTML and feed links.",pdowney
Future Releases,9025,wp_list_categories lacks the vital options of wp_get_archives,,Template,2.7,normal,normal,Future Release,enhancement,new,has-patch,2009-02-03T04:51:44Z,2010-08-15T22:44:46Z,"To achieve
{{{
Archives: 2004 (2); 2003 (1); Categories: Elections (1); Iraq (1);
}}}
One needs
{{{
<p>Archives:<?php wp_get_archives('format=custom&show_post_count=1&type=yearly&after=;'); ?>
Categories:<?php echo str_replace('<br />',';', wp_list_categories('style=&show_count=1&echo=0'));?></p>
}}}
As you see, wp_list_categories lacks the vital options of
wp_get_archives, forcing us to resort to str_replace.

Note: I am talking about HTML and do not wish to talk about CSS.",jidanni
Future Releases,19581,wp_list_comments_args hook,,Template,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-16T21:11:12Z,2011-12-17T06:15:12Z,"`wp_list_comments` needs a hook on its arguments.  This will make it easier to change with child themes as opposed to overwriting the entire `comments.php` template.

Attached patch adds a new hook: `wp_list_comments_args`.",greenshady
Future Releases,6939,wp_list_pages() should also lists private pages if the user has capability 'read_private_pages',,Template,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-05-08T18:19:29Z,2011-02-24T17:15:57Z,"If the user has the capability ""read_private_pages"" wp_list_pages() don't lists private pages in no way. I've noticed this problem by some comments on my ""Role Manager"" Plugin page.

Two patches are attached to this ticket.

wp_list_pages() gets a new option ""include_private_pages"". The default value is 1 for lists private pages too if the user has the capability ""read_private_pages"".
If private pages should not be listed also if the user has the cap ""read_private_pages"" the syntax is as an example:
wp_list_pages('title_li=<h2>Pages</h2>&include_private_pages=0');

The second patch is for get_pages() - with the same option and default value.

And of course: if a user don't has the cap ""read_private_pages"" private pages are listed in no case :)",imwebgefunden
Future Releases,18552,"""Just another WordPress site"" might be seen as dimissive to users",,Text Changes,3.2.1,low,trivial,Awaiting Review,enhancement,new,has-patch,2011-08-31T10:16:00Z,2013-01-14T12:49:39Z,"The default tagline on all new WordPress sites is ""Just another WordPress site"".

This is obviously written in good spirit, and meant to encourage users to change their tagline. But not all users appreciate the humor. Some might feel it dismisses them and their sites, and even if it does get them to change the title, it leaves a bad taste.

I suggest we change this to ""Another great WordPress site"", ""Another fine WordPress site"", etc.",RanYanivHartstein
Future Releases,22474,Change case in Hello world!,,Text Changes,3.4.2,low,trivial,Awaiting Review,enhancement,new,has-patch,2012-11-16T14:08:21Z,2013-05-10T20:01:57Z,"Currently, the ""Hello world!"" headline on the default post is in sentence case rather than title case, which would be ""Hello World!""

Title case and sentence case are both grammatically correct, you just need to pick a standard and stick to it. But let's face it, headlines usually use title case. I propose that we change the default post title to use title case instead of sentence case.",jane
Future Releases,18418,"Clarifying what ""Private"" means in post visibility",danielbachhuber,Text Changes,,normal,minor,Future Release,enhancement,new,has-patch,2011-08-15T19:05:51Z,2013-01-22T00:13:00Z,"When choosing visibility for a single post, “Private” doesn’t make much sense as a label and requires extra explanation as to whom the post will be private to.

Context: At the Newbie Workshop during WCSF 2011, we had to talk brand new users through the myriad of features offered in WordPress. ""Private"" as a post visibility required extra explanation and even I realized I didn't know what it did.

""Private"" should be replaced with text like ""Private to blog editors and administrators""",danielbachhuber
Future Releases,22119,Rename 'QuickPress' to 'Quick Post' or something similar.,,Text Changes,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-07T04:11:02Z,2013-01-22T03:21:21Z,"I think 'QuickPress' should be renamed to 'Quick Post' to be a little more user friendly. As it stands, Quick press gives no indication whether it will be a post or page, or what QuickPress even does. I think renaming it Quick Press gives more direction, and is a little easier to understand.",bradparbs
Future Releases,13433,"Replace ""admin"" with ""administrator"" or ""administration""",,Text Changes,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-05-18T12:54:25Z,2012-11-19T16:44:19Z,"Since ""administrator"" is right name for user who administrates site, we should replace occurences of ""admin"" because of consistency and because it adds confusion since ""admin"" is also used instead of ""administration"".

You can easily see current 17 occurences by searching on GlotPress (eg. [http://tinyurl.com/39m7xeh])",dimadin
Future Releases,18400,"Suggested label change for ""Stick this post to the front page""",,Text Changes,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-08-14T01:19:53Z,2012-11-19T16:46:13Z,"In the Publish meta box, it would be more clear to say ""Stick this post to the top of the front page"" compared to saying ""Stick this post to the front page"".",designsimply
Future Releases,18885,Use 'View Comment' instead of '#',,Text Changes,3.3,normal,normal,Future Release,enhancement,new,has-patch,2011-10-08T04:21:55Z,2013-01-22T00:28:59Z,"Similar to #18846 but for Dashboard Recent Comments.

Feel free to refresh/tweak the patch if accepted.

",zeo
Future Releases,15583,wp-admin/options-discussion: make text consistent,,Text Changes,3.1,normal,trivial,Future Release,enhancement,new,has-patch,2010-11-25T19:41:58Z,2012-11-19T16:44:25Z,"In wp-admin/options-discussion almost all lines have no period at the end of the line, except two. Remove periods.",latz
Future Releases,16395,Add 'Template Version' for use with 'Template' in Child-Themes,,Themes,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T16:36:15Z,2012-07-09T14:55:27Z,"From the discussions on the http://make.wordpress.org/themes/ site I am suggesting the addition of 'Template Version' for inclusion into the get_theme_data() function to be used as a reference for a Child-Theme's compatibility with its Parent-Theme ('Template').

PS: This is my first ""patch"" submission, any constructive feedback would be greatly appreciated. EAC",cais
Future Releases,16868,Add WordPress Required Version and Tested Up To Version for themes,,Themes,3.1,normal,normal,WordPress.org,enhancement,new,has-patch,2011-03-16T20:04:27Z,2012-07-09T15:47:25Z,"The premise of this idea is for Theme authors to be able to add a reference to the version of WordPress their Theme requires to work correctly; and, the version of WordPress the Theme has been tested up to. This idea comes from the the plugin readme.txt file and some of the data that is expected to be found there.

Once implemented, further enhancements to the Appearance tab in the Administration Panels can be added to better inform end-users on the compatibility of the Theme with their current WordPress installation.",cais
Future Releases,16396,Add a hook to the theme editor page when the write is successful,,Themes,3.1.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T17:29:35Z,2011-06-20T18:39:59Z,Add a filter to the end of theme-editor.php's processing when the write is successful.,scottconnerly
Future Releases,16428,Add child-theme as a theme tag,,Themes,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-31T21:32:49Z,2011-02-01T00:20:39Z,With child themes getting very close to becoming a reality on the WordPress Themes Database we need a tag added for them in the theme headers.,pross
Future Releases,19736,Add default body_class classes for Theme Names,,Themes,3.3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-01-04T16:58:07Z,2012-01-04T20:03:22Z,"Although this may be more pure enhancement and quite possibly Mallory-Everest in nature, the idea of having a default `body_class` output for the Theme name seems to be a reasonable one.

IF this is implemented it should also include a default class for a Child-Theme name as well as the Parent-Theme name.

To that end, I am suggesting the following patch to the `body_class` function.",cais
Future Releases,16401,Add hook to delete_theme() on successful delete,,Themes,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T20:24:37Z,2011-02-01T07:45:32Z,"Add an action or filter to the end of /wp-admin/includes/theme.php delete_theme()'s processing when the write is successful.

The use case is for managing a Wordpress install on an SVN-controlled server. Whenever the CMS changes a file or folder (particularly in the wp-content folder) I need to be able to trigger an svn commit.

See also Ticket # 16396",scottconnerly
Future Releases,21912,Add return filter to current_theme_supports(),,Themes,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-17T18:39:29Z,2012-09-28T08:06:29Z,"current_theme_supports() makes it hard for plugins to affect whether a theme supports a certain feature. 

The use case I have is that I am building a plugin that utilises bbPress (and soon, BuddyPress)-style template compatibility parts. In those template parts, I display something very, very similar to a post thumbnail or custom header. I want to use the ""Featured Image"" metabox on the Post screen to set that image.

If I use the plugin on a theme that doesn't support post thumbnails, the metabox correctly doesn't appear, and so users have no way of choosing a featured image. While there are ways around this -- manual conditional registering of the Featured Image metabox, creating my own metabox, or calling add_theme_support/remove_theme_support like a toggle -- none of them are particularly elegant.

While current_theme_supports has a return filter, it's not reached by all code execution paths. The attached patch reworks the function so that the return value is always passed through the filter.",DJPaul
Future Releases,22602,Additional error handling when installing child and parent theme from WordPress.org,,Themes,,normal,normal,Future Release,enhancement,new,has-patch,2012-11-27T04:35:17Z,2012-11-27T04:35:17Z,See #22515 and ticket:22515#comment:6.,nacin
Future Releases,10086,Better warning (JS confirm dialog) when upgrading themes,,Themes,2.8,normal,normal,Future Release,enhancement,new,has-patch,2009-06-10T11:25:42Z,2009-12-08T00:10:52Z,"I see three problems in the current warning:

1.  It’s not good UI English:  “Upgrading this theme will lose...”

2.  It does not follow the layout of similar JS confirm dialogs in WP, which put the OK/Cancel phrase in a second line.

3.  It’s not accurate and may frighten people for no reason.

I attach a tentative patch for consideration.",demetris
Future Releases,19270,"Current theme's ""OPTIONS:"" links should be filter-able",,Themes,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-16T21:52:45Z,2012-06-22T19:32:37Z,"On the ""Manage Themes"" tab of ""themes.php"", the links shown after the label ""OPTIONS:"" which link to widgets, menus, and optionally any sub-menu's registered by the theme should be filterable by themes.

See attached screenshot if you're unclear what I'm talking about.

Reasons why it should be filter-able:
* themes that don't register any menus still contain links to menus screen
* links to top-level menus with their own sub-menus registered by theme (not themes.php sub-menus) don't get shown here currently
* this would be a perfect place for theme authors to add a link to a support page or forum",jaredh123
Future Releases,21627,Filter for custom-background CSS selector,Horttcore,Themes,3.4.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-08-18T11:46:55Z,2013-01-10T20:34:50Z,"There should be an easier way for changing the css selector from body to html or any other then making your own callback.

",Horttcore
Future Releases,13265,Filter results of get_page_templates(),nathanrice,Themes,3.0,normal,normal,Future Release,enhancement,reopened,has-patch,2010-05-05T19:56:16Z,2013-05-14T13:41:33Z,"It doesn't make sense to not have a filter on the returned value of this function. I can think of several instances where this would be useful.

I also inserted a ""pre_"" filter at the beginning of the function so plugins/themes can short-circuit the function as well.

I'm hoping this is small enough to get in for 3.0.",nathanrice
Future Releases,20157,"Gallery: define a ""Cover image"" that will appear in archive pages or a blog home page",,Themes,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-02T18:04:09Z,2012-08-06T00:00:27Z,"Today, if you create a gallery with X images, you cannot define one specific image to appear as cover image for the whole gallery.

Couldn't we use {{{the_post_thumbnail}}}, and say that the cover of the album is the Featured image when there is one defined?

That's something that can be defined in the theme (see file attached), but I think it would be nice to have an option in core to define a cover image for each gallery.

What do you think?",hd-J
Future Releases,14408,Get author information in author template file without having to query the first post,garyc40,Themes,3.0,normal,normal,Future Release,enhancement,assigned,has-patch,2010-07-24T13:51:46Z,2011-01-17T02:26:25Z,"In the template file author.php, Twenty Ten queries the first post of the author to get the author's profile information. This introduces a bug when the author has no blog posts yet, then the global $authordata is not set, as a result, no author information is displayed. Also, having to rewind the query later in the template is counter-intuitive.

One may argue that there's no need to display author information if that author doesn't have any blog posts yet. But I disagree. Theme developers might want to list custom posts on the author template file as well. For some sites, the author page is served as a member profile page for subscribers. Therefore having to query the first post in order to get the requested author information is a flawed approach.

One better way to fetch author information in the author template is by getting the query var 'author' for the author ID. Then use get_author_meta() with the second parameter to get the desired information.


{{{
$author_id = get_query_var( 'author' );
$author_description = get_the_author_meta( 'description', $author_id );
}}}


I attached a patch that addresses this issue.

In this patch, get_author_meta() is also modified to handle the ""display_name"" field correctly by applying the filter ""the_author"" whenever this field is fetched.

Another approach, which I haven't tested yet, is to set the $authordata global variable whenever the author query var is set. If that's possible, then we no longer need to supply $author_id to get_the_author_meta(). If anyone is interested in testing this approach, go ahead and create a patch.",garyc40
Future Releases,22972,Improve parameter name for wp_get_theme(),,Themes,3.4,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-12-17T12:33:15Z,2012-12-17T14:25:51Z,"The name of the first parameter for `wp_get_theme()` is misleading. It's called `$stylesheet` when in fact you're passing in the name of the theme's template directory, not the stylesheet.

The function is a wrapper for the `WP_Theme` class which gets its parameter names correct.",johnbillion
Future Releases,22355,Template stack - Beyond parent/child theme relationships,,Themes,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-03T21:45:25Z,2013-05-15T14:02:52Z,"'''Problem'''

Robust plugins (!BuddyPress, bbPress, et all) are unable to break out of the parent/child restrictions that !WordPress imposes on template output. For these plugins to include their own template parts, elaborate code must be written to hook into several different execution points, requiring an intimate knowledge of the inner workings of !WordPress's template loading system.

----

'''Solution'''

Create a stack of template locations, and allow !WordPress to transverse this array following the same STYLESHEETPATH/TEMPLATEPATH order it always has, while also enabling additional paths to be added with a priority (similar to the filters API.)

----

'''Details'''

The attached patch includes two new functions in wp-includes/template.php:

* register_template_stack()
* get_template_stack()

Register template stack is a wrapper for the 'template_stack' filter. get_template_stack() is a variation of apply_filters() that returns the array of filtered template locations.

A modification to wp-settings.php calls register_template_stack() two times, passing get_stylesheet_directory() and get_template_directory() as callbacks, to initialize the core parent/child relationship, ensuring complete backwards compatibility.

----

'''Result'''

This allows for plugins to register additional paths in the template loader hierarchy, and enables plugins that may come with their own default template parts the option of registering a fallback template location.

This works with both locate_template() and get_template_part(), and has the added benefit removing duplicate items inside of get_template_stack(), resulting in avoiding an additional file system check should the parent and child themes be the same.",johnjamesjacoby
Future Releases,14955,Themes should support uninstall.php or uninstall hook,,Themes,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-09-23T22:59:57Z,2012-10-09T16:13:14Z,"Related tickets on extending Themes to have Plugin features: #7795 and #14849 but those deal primarily with activation and deactivation centering around 'switch_themes' action.

From looking at /wp-admin/includes/plugin.php, adding support for uninstall is a separate concern (and it doesn't have the issue blocking activation/deactivation).

Should is_uninstallable_plugin, register_uninstall_hook and uninstall_plugin be extended to check theme directory or should versions (is_uninstallable_theme, register_uninstall_theme_hook and uninstall_theme) be added to theme.php?

Advantage of the first method is that the register_uninstall_hook could be reused for Themes where in the second, a new, less attractive name would be needed (register_uninstall_theme_hook?) Also, there's no theme_basename as it was reverted/removed.",WraithKenny
Future Releases,21442,Themes: change allowed term taxonomy from Width to Layout and add responsive-layout term,,Themes,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-01T17:48:53Z,2012-08-06T00:18:10Z,"See #21065 and discussion with WPTRT on http://make.wordpress.org/themes/2012/07/18/id-love-your-thoughts-on-adding-two-new/.

""Width"" is not accurate since themes can have fluid, fixed, or responsive height as well as width.

""Layout"" makes this more abstract.",lancewillett
Future Releases,20027,Use get_(template|stylesheet) instead of get_option( '(template|stylesheet)' ),,Themes,,normal,normal,Future Release,enhancement,new,has-patch,2012-02-12T19:56:23Z,2013-01-09T21:29:03Z,"While working on Gandalf we noticed, that it's not enough to filter the current theme with
{{{
add_filter( 'template', array( $this, 'get_template' ) );
add_filter( 'stylesheet', array( $this, 'get_stylesheet' ) );
}}}

The reason are some uses of `get_option( 'template' )` or `get_option( 'stylesheet' )`.

Means we need additional filters:
{{{
add_filter( 'pre_option_stylesheet', array( $this, 'get_stylesheet' ) );
add_filter( 'pre_option_template', array( $this, 'get_template' ) );
}}}

It would be handy if `get_option( '(template|stylesheet)' )` could be replaced with `get_(template|stylesheet)`.",ocean90
Future Releases,14664,"add <link rel=""profile"" ... /> to wp_head()",,Themes,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-08-21T06:22:56Z,2010-11-19T08:26:44Z,"Old themes use rel=""profile"" in <head>, twentyten use it in <link>.

Both ways are ok (http://microformats.org/wiki/rel-profile), and i think <link> is better (like in twentyten).

Currently, theme authors add the profile rel manually. They usualy use XFN 1.1 profile (http://gmpg.org/xfn/11). To change the profile users need to change the template files. This is problematic.

I think we need to add a profile_rel_link function to wp core and add it to wp_head(). This way, when we want to change the profile, we will use filters.

See the attacment.",ramiy
Future Releases,20816,custom-background $args enhancement,,Themes,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-02T04:56:46Z,2013-03-27T15:04:09Z,"Looking to have added the rest of the arguments to pass through the $args to include the rest of the appearance -> background parameters including but not limited to position(x/y), repeat and attachment.

`add_theme_support('custom-background', $args);`

Example:

{{{
array(
	'default-color' => '000000', 
	'default-image' => get_stylesheet_directory_uri() . '/images/background-wolfbw.jpg',
	'repeat' => 'no-repeat',
	'position-x' => 'center',
	'attachment' => 'fixed'
);
}}}

ie. the repeat position(x/y) and attachment parameters


Main themes even child themes have looks which sometimes need to incorporate fixed or positioning that cannot be set with the current $arguments and it would benefit theme designers to allow those arguments to be passed 


",frumph
Future Releases,18298,deprecate TEMPLATEPATH and STYLESHEETPATH,,Themes,3.0,normal,normal,Future Release,enhancement,new,has-patch,2011-07-29T18:43:02Z,2013-03-14T01:15:09Z,"As part of #15086 we wanted to add unit tests, but we came across a problem in #UT22.  Basically `locate_template()` uses these constants instead of `get_template_directory()` and `get_stylesheet_directory()` which makes it impossible to use `switch_theme()`.  It looks like the constants are only used in about 20 places through core, so I recommend we fix those places and deprecate the constants.",aaroncampbell
Future Releases,10154,"floatting {{feed_image}} in ""wp_list_categories()""",,Themes,2.8,normal,minor,Future Release,enhancement,new,has-patch,2009-06-14T08:43:09Z,2010-09-27T19:06:28Z,"Using {{{wp_list_categories('feed_image=rss.gif')}}}  or {{{wp_list_categories('feed=RSS')}}} displayes a list of categories with links to feed.

The problem is, that we can't define who will come first ""cat feed"" or ""feed cat""?

Adding ""feed_location"" parameter may solve this problem.
",ramiy
Future Releases,14721,set_theme_mod() needs a filter,,Themes,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-08-28T17:56:12Z,2013-01-16T20:59:49Z,"'''`set_theme_mod()`''' '''needs a filter'''!!!

'''Background:''' I was answering [http://wordpress.stackexchange.com/questions/972/ this question on WordPress Answers] about how to create a second background option in the admin.  I was able to do so relatively easily except for the fact that the only hook available for swapping the value to save for `set_theme_mod()` is within `get_option()` and `get_option()` has no context for the name of the theme mod so I had to resort to the highly brittle technique of determining what was being saved based on the order it was called. One small change to `/wp-admin/custom-background.php` and it all breaks.

'''Prospective Update:'''
Here's what the filters might look like:

{{{
function set_theme_mod($name, $value) {
	$theme = get_current_theme();

	$mods = get_option(""mods_$theme"");

	$value = apply_filters( ""set_theme_mod"", $value, $name );
	$value = apply_filters( ""set_theme_mod_$name"", $value );
	$mods[$name] = $value;

	update_option(""mods_$theme"", $mods);
	wp_cache_delete(""mods_$theme"", 'options');
}

}}}


I would submit a patch but I always struggle with that. I even asked others to [http://wordpress.stackexchange.com/questions/990/ help me streamline and understand the patching process a bit better].",mikeschinkel
Future Releases,15588,GoogleSpell.php preg_replace eval removed,,TinyMCE,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-11-27T01:27:10Z,2013-01-10T20:33:30Z,"Hello,

I have found and fixed one more of the preg_replace /e eval constructs, that aren't allowed in WordPress according to the coding standards.

-- Frank | [http://underground-stockholm.com/ Underground Stockholm]",underground-stockholm
Future Releases,21976,"Remove the ""standard"" fullscreen mode from the default configuration of TinyMCE",,TinyMCE,,normal,normal,Future Release,enhancement,new,has-patch,2012-09-23T18:07:56Z,2012-11-07T22:16:57Z,"The ""standard"" TinyMCE fullscreen is incompatible with the DFW fullscreen. Currently we are loading both plugins and trying to give access to the standard fullscreen by shortcut only. This is left over from when DFW was working only for the Edit Post screen.

Best would be to remove the standard fullscreen completely. It can be added by a simple WordPress plugin for users that prefer it.",azaozz
Future Releases,7810,TinyMCE Spell check doesn't recognise 'WordPress',,TinyMCE,,normal,normal,Future Release,enhancement,new,has-patch,2008-09-30T09:04:34Z,2013-05-17T22:43:54Z,"I realise that its not WordPress itself which is responsible for the Spell Checking, However, I feel that if WordPress includes a spellcheck functionality, It would be good for it to actually recognise ""WordPress"" instead of ""Word-Press"" or ""Word Press"" (It even goes on to suggest ""WarDress"" and ""Depress""

Does anyone have a contact (Or know who to contact) in order to get ""WordPress into the dictionary used, Or maybe how to ignore the WordPress corrections on the result?",DD32
Future Releases,9841,TinyMCE's kitchen sink button should also hide lines 3 and 4 when present,azaozz,TinyMCE,2.8,normal,minor,Future Release,enhancement,new,has-patch,2009-05-16T17:02:55Z,2011-11-14T13:11:17Z,"Currently, adding a button to line 3 or 4 of TinyMCE results in their always being present.

Would it be possible/desirable to make the hide as well?",Denis-de-Bernardy
Future Releases,19443,We can't use WordPress' editor inside a Thickbox,erayalakese,TinyMCE,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-04T16:45:36Z,2011-12-05T00:09:24Z,"At my plugin's admin page, a have a EDIT link like this :


{{{
<a class=""button-secondary thickbox button"" title=""EDIT"" href=""<?php echo WP_PLUGIN_URL.'/plugin-name/'; ?>edit.php?id=<?php echo $ID;?>"">EDIT</a>
}}}


When user click it, it'll open href in a thickbox . Thickbox should contain '''/plugin-name/edit.php?id=1''''s content, for example.

It's working very well. But i want to add WordPress' rich text editor to edit.php . I'll explain my problem with a short video.

http://screenr.com/eoEs
",erayalakese
Future Releases,22059,Making the admin bar responsive,,Toolbar,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-30T16:58:12Z,2013-02-28T18:32:30Z,"Hi,

This patch is made to add responsive layout to the admin bar. It comes from the ""Responsive adminbar"" plugin (http://wordpress.org/support/plugin/responsive-adminbar, thanks to skodnik).

Basically, I added some html tags to some menu items in the admin bar (using the ab-icon / ab-label combo) in order to handle the new icons I added to the ""admin-bar-sprite.png"".

I took the images straight from the plugin but some states are missing or some images should be changed as they are not appropriate (a ""heart"" for the network seems weird). I'm also missing the ""View post"" icon which now defaults to the ""Edit post"" one.

the CSS could be refactored I guess in order to avoid using ids.
I have not tested RTL!

Cheers from Hackday Lisbon :)

Jonathan",JoN1oP
Future Releases,21354,"Prefix toolbar site menu title with ""Visit "" when in the admin.",,Toolbar,,normal,normal,Future Release,enhancement,new,has-patch,2012-07-23T18:32:12Z,2012-11-22T03:30:28Z,"2 out of the 3 users we tested had a hard time finding a link to view their site from the admin.

What if we simply added the word “Visit” in front of the site title in the toolbar when you are in the admin, and to delete the single drop down option when you’re not using multi-site.

The view of the menu from the site would stay the same.  Something like this:

[[Image(http://f.cl.ly/items/322O2i1s1z1909012e19/visit-site-link.png)]]

Props to @sabreuse for the idea.",lessbloat
Future Releases,12826,AJAX trash posts,,Trash,2.9,normal,normal,Future Release,enhancement,new,has-patch,2010-04-03T02:57:06Z,2012-12-20T23:57:15Z,"Add AJAX to trash posts, like comment moderation.

From GSoC ideas list:
>Add AJAX Paging to Admin Screens. Something we've never gotten around to is adding AJAX paging to the list-type screens (edit.php, etc). Currently, getting to the next page of items means a screen refresh. For this project, add ajax paging to all the list-type screens in the WordPress admin. We have all the underlying PHP, but it needs some JavaScript love.",meheranandk
Future Releases,22378,Add ability to hijack plugin install/upgrade downloads,,Upgrade/Install,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-07T13:00:18Z,2012-11-13T01:09:22Z,"'''Problem'''

Many plugins have their own updating system. For paid plugins, this can involve
sending authentication/authorization headers. At the moment, to implement this,
certain parts of the plugin upgrader system have to be duplicated to replace
parts of the system, such as the downloading method. In addition, the package
download URL has to be a valid URL. Some systems may wish to use alternate URLs
apart from HTTP/FTP-based URLs.

The code for this is shared between the single plugin upgrader and the bulk
plugin upgrader. While the upgrader class can be replaced fairly easily with
existing filters for single plugins, it's not possible to do this for the bulk
upgrader (especially when multiple systems want to do this), requiring falling
back to a low-level filter like `http_request_args`, ensuring that one only
hooks in after the `admin_action_update-selected` action has failed.


'''Solution'''

Add a filter to hijack the download system before it can act at all. This allows
replacing the entire downloading system, with the only requirement being to
return a valid package filename. This filter will work across both the single
and bulk upgraders, ensuring consistency in the approach.

Patch attached. Related: #22377, #22129",rmccue
Future Releases,22377,Add filter to wp_update_plugins(),,Upgrade/Install,3.4,low,minor,Awaiting Review,enhancement,new,has-patch,2012-11-07T12:01:26Z,2012-12-10T21:04:41Z,"'''Background'''

Certain plugins (paid plugins, etc) may not wish to use WordPress' built-in
upgrading functionality. As such, they may implement their own update checking
code. WordPress' code runs every 12 hours via wp-cron, so hooking into the
native system for checking would be the best way to avoid duplicating tonnes of
code.


'''Problem'''

Currently, filtering this result is somewhat unintuitive. There are no filters
in `wp_update_plugins()` to filter the result of the API call, so you have to
fall back to `pre_set_site_transient_update_plugins`. WordPress, however, sets
this transient twice,
[https://core.trac.wordpress.org/browser/trunk/wp-includes/update.php?rev=21996#L193 once before updating] ""to prevent multiple blocking requests if request hangs""
and then once afterwards with the actual result.

This is only a minor inconvenience, but it appears to be somewhat fragile.
Ensuring that a plugin's custom code doesn't run on the first `set_transient()`
requires setting a flag, and this is prone to breaking if `wp_update_plugins()`
changes internally.


'''Solution'''

Introduce a new filter to change the API result before saving. This filter
should only run once, with the actual result of the API call.

Patch attached.",rmccue
Future Releases,13922,Add links to GUU from plugins and themes screens,,Upgrade/Install,,normal,normal,Future Release,enhancement,new,has-patch,2010-06-16T16:39:07Z,2012-12-24T04:34:33Z,"[[BR]]
Let's pimp the GUU (Dashboard > Updates) by having links to it from the plugins and themes screens so people who've missed it can see there's a single place to update everything. Woo!",jane
Future Releases,16398,Add new updated_core hook upon successfully updating WordPress core,,Upgrade/Install,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T19:52:50Z,2011-02-01T09:17:16Z,"wp-admin/includes/update-core.php
requesting the addition of a hook of some type (filter or action) for post-upgrade actions.",scottconnerly
Future Releases,7965,Database upgrade complete message should be an admin notice,,Upgrade/Install,,normal,normal,Future Release,enhancement,new,has-patch,2008-10-25T18:53:28Z,2012-07-26T09:02:37Z,When a database upgrade is complete we should just take you to the page you wanted to see and should an upgrade_complete admin notice instead of requiring another button click,westi
Future Releases,16216,Hide core updater if running an svn checkout,,Upgrade/Install,,normal,normal,Future Release,enhancement,new,has-patch,2011-01-13T07:26:33Z,2011-05-12T03:39:48Z,"The logic with this patch is if you are running an svn checkout, do not display the core updater code and instead display a reminder.",johnjamesjacoby
Future Releases,14028,Maintenance mode nag persists after successful upgrade,,Upgrade/Install,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-21T18:27:55Z,2011-01-16T00:05:29Z,"A number of forum users are reporting that the maintenance nag 

""An automated WordPress update has failed to complete"" etc.. persists after failed auto-updates even if they then successfully perform manual updates.

Looks like something is leaving $upgrading set.",mrmist
Future Releases,22205,Plugin updater - Optimize API Request,,Upgrade/Install,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-16T15:45:27Z,2012-11-13T01:24:42Z,"When checking for plugin updates, the POST to api.wordpress.org includes ALL information about each plugin (e.g. Description, Name, Title, Author, etc). This is unnecessary.

This patch strips out non-essential data from the array returned by get_plugins().

wp-includes/update.php:146",logikal16
Future Releases,21874,Remove unused functions in wp-admin/includes/update.php,,Upgrade/Install,2.8,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-09-12T05:13:06Z,2012-09-12T10:22:52Z,"Just noticed these two functions, `wp_update_plugin()` and `wp_update_theme()`, which aren't used anywhere in core, and haven't been for a very long time far as I can tell. Looks like redundant code.",solarissmoke
Future Releases,11093,allow instalation customisation - code included and tested,sorich87*,Upgrade/Install,2.9.1,normal,minor,Future Release,enhancement,accepted,has-patch,2009-11-07T14:34:40Z,2010-07-28T08:20:56Z,"Current Wordpress can have own instalation using instal.php file in /wp-content folder. The problem is, that this file can ovewrite only wp_install a wp_install_default functions, which are run AFTER both whole setup-config.php and install.php files were run. So e.g. it is not possible to add own logo to the instalation script, own input for e.g. predefining blog description ...

I have made very small changes to the install.php file
a) add if ( !function_exists( ... ) )  before all (2) functions in this file
b) create 'check_blog_installed' function as enclosure for part with blog checking with !function_exist check again, so it can be also owerwritten
c) create step_0, step_1, step_2 functions, and adding content of code parts run when $step = 0 or 1 or 2, again with !function_exist, so every step can be simply ovewritten
d) create display_footer with !function_exist check and move footer to it, so even footer can be overwritten.

I have made no other functions to install.php (even i think it should be revised because of not so nice code as other wordpress) because i think it should be next step

the functions i have created should not be a problem, as they are only in scope of instal.php file",thomask
Future Releases,16518,Add Media/File description improvements for multi-selections feature,,Upload,,normal,normal,Future Release,enhancement,new,has-patch,2011-02-10T17:24:13Z,2011-11-10T18:33:28Z,"This was suggested to us for WordPress.com by a coworker at Automattic and we realized this could actually be a worthy core improvement.

{{{
Would it be possible to add some wording to the Add Media screen in WP.com
blogs to tip users off that they can upload multiple images at once by holding
down CTRL in Windows or CMD on a Mac? Stumbled upon this nifty feature
myself today under the category of “here goes nothing, let’s see if this works.”
}}}

Opening the ticket until I can add a patch (or someone else does).",stephdau
Future Releases,19121,Add filter to wp_unique_filename,,Upload,3.3,normal,major,Awaiting Review,enhancement,new,has-patch,2011-11-02T23:02:15Z,2012-08-02T13:19:10Z,"Add a filter to wp_unique_filename so it can be modified if necessary.

Currently in wp_handle_upload I am trying to use FTP to put the file elsewhere. Since I can can't use an FTP protocol with move_uploaded_file, I can't just use the upload_dir filter to change the upload directory.

I need to be able to change the unique name directly (so I can look on my FTP server) and then later on I'll handle the move.

There is no way to access this (you can't just affect overrides or anything like that) without completely rebuilding large portions of the uploader. With this one minor hook added, the flexibility becomes much greater.",xazure
Future Releases,9257,EXIF GPS data,,Upload,2.7,normal,normal,Future Release,enhancement,new,has-patch,2009-03-01T19:30:17Z,2009-11-20T20:33:48Z,"Attached patch adds GPS longitude and latitude to image meta data.
Changed: wp_read_image_metadata function (file: wp-admin/includes/image.php).

It complies with exif standard:
[http://www.exif.org/Exif2-2.PDF] (page 46)

Commented on wp-hackers list:
[http://comox.textdrive.com/pipermail/wp-hackers/2009-March/025093.html]",B-Scan
Future Releases,14137,EXIF tag DateTimeDigitized not always present,,Upload,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-06-29T00:47:59Z,2011-01-16T03:48:07Z,"Shooting images with my Nokia N900 will only fill in EXIF data for ""DateTimeOriginal"", not the tag ""DateTimeDigitized"" which Wordpress solely uses.

Grabbing data from DateTime and/or DateTimeOriginal would increase the amounts of correct EXIF date data collected when uploading images.

Attaching sample original image from my camera. CLI tool 'exif' when grep:ed with 'Date' outputs the following for the attached image:
{{{
Date and Time       |2010:06:25 15:47:14
Date and Time (origi|2010:06:25 15:47:14
}}}
'exif --list-tags *jpg|grep Date' results in the following (* meaning data exists):
{{{
  0x0132 Date and Time                   *      -      -      -      -   
  0x9003 Date and Time (original)        -      -      *      -      -   
  0x9004 Date and Time (digitized)       -      -      -      -      -  
}}}
wp-admin/includes/image.php has the function which retrieves this metadata.",MMN-o
Future Releases,20437,WP Upgrader filter to allow plugins to upload to existing directory,,Upload,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-13T16:52:30Z,2012-06-01T01:24:12Z,"Our plugin for WP uses various elements of the WP upgrader class to manage plugins for our plugin. ;)  This has worked great except when we went to extend it further and allow uploading of plugins through the WP Upgrader class much like you can with WP plugins.

The issue is that currently, the WP Upgrader class is coded to expect the upload destination to be empty - EXCEPT if the upload destination (the base directory) is one of these hard coded locations:

in_array( $destination, array(ABSPATH, WP_CONTENT_DIR, WP_PLUGIN_DIR, WP_CONTENT_DIR . '/themes') )

So since our plugin storage location is not one of those, it fails since there may already be some plugins there.

Sure would be nice if that array of locations that does not have to be empty (the important base dirs which allow dropping down a directory level)...  a simple filter would accomplish this...

Hope its not too late in 4.3 for a simple filter...",usermrpapa
Future Releases,21314,Add password reset key expiration,,Users,3.4.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-07-19T11:30:19Z,2012-07-20T09:59:31Z,"Password reset using correct user_activation_key is currently possible forever.

Attached is a patch which clears newly created user_activation_key after one week.",skithund
Future Releases,22921,Allow get_users() to return array of values via 'fields' parameter,,Users,3.5,normal,normal,Future Release,enhancement,new,has-patch,2012-12-13T17:39:24Z,2013-05-16T11:54:18Z,"Currently, the `'fields'` parameter in the arguments array for `get_users()` only accepts either an array of user data fields, or the string `'all'`. Both of these options cause `get_users()` to return an array of object comprised of the specified user data. Passing any other string value to `'fields'` causes `get_users()` to return an array of user IDs.

Per the Codex:

> Array of objects, '''except when fields specifies a single field to be returned, then an array of values is returned'''. If fields is set to all_with_meta, it will return an array of WP_User objects.

This statement appears to be untrue, but would be incredibly useful if it were true.

Patch adds this functionality to `get_users()`.

Potentially related: #18581",chipbennett
Future Releases,5918,Allow non-ASCII usernames,,Users,2.3.3,normal,normal,Future Release,enhancement,new,has-patch,2008-02-19T11:35:20Z,2013-01-19T08:05:21Z,"Hello ...
I can't make New username with arabic characters ...

who i can apply an arabic characters in usernams ?

Thank you ...",marshosh
Future Releases,19615,Deprecate get_currentuserinfo(),,Users,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-19T20:23:28Z,2011-12-20T18:49:45Z,"{{{get_currentuserinfo()}}} is a pluggable function that encourages an ugly pattern in theme files:

{{{
global $userdata;
get_currentuserinfo();
}}}

It can easily be replaced with this:

{{{
$current_user = wp_get_current_user();
}}}",scribu
Future Releases,23373,Limiting get_users() results by meta value with LIKE wildcards,,Users,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-03T03:07:03Z,2013-02-03T06:56:27Z,"I want to limit the results returned by get_users() to a subset of the users based on some criteria that will be stored in the User Meta table (e.g. all users whose first name begins with M).

Here arr the args I am passing to get_users():
{{{
(
    [include] =>
    [exclude] =>
    [fields] => all_with_meta
    [meta_key] => last_name
    [meta_value] => M%
    [meta_compare] => LIKE
)
}}}
This is the query the WordPress constructs for me:
{{{
[01-Feb-2013 16:01:08 UTC] WP_User_Query Object
(
    [query_vars] => Array
        (
            [blog_id] => 1
            [role] =>
            [meta_key] => last_name
            [meta_value] => M%
            [meta_compare] => LIKE
            [include] =>
            [exclude] =>
            [search] =>
            [search_columns] => Array
                (
                )

            [orderby] => login
            [order] => ASC
            [offset] =>
            [number] =>
            [count_total] =>
            [fields] => all_with_meta
            [who] =>
        )

    [results] => Array
        (
        )

    [total_users] => 0
    [query_fields] => wp_users.ID
    [query_from] => FROM wp_users INNER JOIN wp_usermeta ON (wp_users.ID = wp_usermeta.user_id)
    [query_where] => WHERE 1=1 AND ( (wp_usermeta.meta_key = 'last_name' AND CAST(wp_usermeta.meta_value AS CHAR) LIKE '%M\\%%') )
    [query_orderby] => ORDER BY user_login ASC
    [query_limit] =>

}}}
----

As you can see, the LIKE clause is escaped and wrapped with SQL wildcard operators.  I can't figure out how to prevent this from happening as what I want is ""LIKE 'M%'"" to be my actually query.

 Andrew Nacin wp@andrewnacin.com via lists.automattic.com 
 11:24 am (1 day ago) to wp-hackers 

 Currently, ""LIKE"" prepends and appends wildcards, as in %term%. We could add ""%LIKE"" and ""LIKE%"", though that would not help with the situation where you want LIKE taken literally, potentially without % wildcards at all. (Such as using _ as a single-character wildcard, or looking for case insensitive matching.) Probably the best way to add to this API would be to allow for a 'like_escape' => false; that would accept your value as provided. If you'd like to submit a ticket (and patch), this can definitely find its way into 3.6.

 Nacin


----

I have prepared a patch to meta.php which allows escaped LIKE and NOT LIKE meta compares to work properly.
",mpwalsh8
Future Releases,19821,Make wp_validate_auth_cookie() filterable,,Users,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-13T09:30:35Z,2012-06-19T16:26:18Z,"When WordPress loads, it does not call the same functions as when login form is submitted - instead it uses different ones to validate that authentication cookie is present and valid. Call stack is as follows:
{{{
settings.php
WP::init()
wp_get_current_user()
get_currentuserinfo()
wp_validate_auth_cookie()
}}}
When plugin wants to validate some extra things (e.g. decide if user can login by checking user meta), the only way is to replace one of functions defined in pluggable.php -  `wp_validate_auth_cookie()` seems to be a good candidate for this. Unfortunately this can be done only once, so now it is impossible to use few plugins which wants to do some extra checks at the same time. Therefore I propose to extend the `wp_validate_auth_cookie()` function by adding `validate_auth_cookie` filter to it - see attached patch. It will allow to hook into the cookie validation process, without the need to replace pluggable function.",sirzooro
Future Releases,18132,Misleading message when deleting a user with no sites,,Users,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-07-15T17:53:14Z,2011-07-15T18:41:43Z,"In multisite, when deleting a user with no sites, the following message appears:

  Transfer or delete posts and links before deleting users.

This is a confusing message because there are no posts or links to transfer/delete. The message should be changed to something else.",danielbachhuber
Future Releases,12960,Number of posts on the Users page should include drafts and pending review,,Users,2.9.2,normal,normal,Future Release,enhancement,new,has-patch,2010-04-11T02:35:03Z,2010-10-27T11:26:31Z,"The numbers of posts on the Users page currently only include published posts, which I think is not good enough. For example, I have a contributor who has only written a few drafts and submitted a few articles for review.

If I decide to delete him and base my decision on what I see on the Users page, I would probably just go with the ""Delete the user and all his posts"" option, which would delete more than I would expect.",archon810
Future Releases,23057,Pass $reassign in the delete_user hook,,Users,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-26T05:42:00Z,2012-12-26T06:21:14Z,"File: wp-admin\includes\user.php

In the wp_delete_user function, there are 2 do_action hooks
- do_action('delete_user', $id);
- do_action('deleted_user', $id);

The $reassign variable should also be passed along. We can then decide what to do when the admin delete a user by ""Delete all posts"" or ""Attribute all posts to: XYZ"".",genkisan
Future Releases,22328,Pass reset password URI to retrieve_password_message filter,,Users,2.8,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-30T23:34:17Z,2012-10-31T11:24:10Z,"The arguments for the <code>retrieve_password_message</code> filter are the message itself and the reset key. However the URI requires the user login as well in order to be valid, thus we cannot regenerate the password reset link without it.

Proposed solution - pass the reset URI instead of just the key.",ejdanderson
Future Releases,18399,Password Strength Meter should usually mark passwords that contain password as weak,,Users,,normal,normal,Awaiting Review,enhancement,new,close,2011-08-13T23:41:11Z,2012-08-15T23:22:51Z,"Password (in human and l337 form) is a horrible password.  Unless a password is really long, we should mark passwords that contain 'password' as weak.  

Test Case :  password123 returns Strong",jorbin
Future Releases,24273,Provide a way for Theme/Plugin developers to get a list of user contact methods,,Users,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-06T16:15:54Z,2013-05-07T16:02:40Z,"When templating an author page it is useful to be able to provide a list of social media links. There's great support for adding custom links using the user_contactmethods filter, but there's no public way to get a list of those contact methods without the user's other info mixed in.

There is a private function _wp_get_user_contactmethods(), that does this. Why not make it public?

",johnnyb
Future Releases,23413,Provide query result data to custom user columns,,Users,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-07T15:22:53Z,2013-02-16T19:25:01Z,"When the filter manage_users_custom_column is triggered, it sends an empty string for the value field.

Since it's easy enough to extend the WP_User_Query with extra fields, it would be good to have those fields passed through if they exist to save having to requery the database with the user_id parameter to get the data.

I have attached a patch to show what I mean.",JohnC28
Future Releases,16235,Site Welcome Email sent without regard to noconfirmation flag,,Users,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-14T19:18:34Z,2011-09-15T23:31:22Z,"In multisite and the super_admin adds a new user to a site, 
if the user is new to the network, WP sends out the welcome email (but not the confirmation of being added to the site)

In my client's use case, they were looking for the SBD (silent but deadly) mode, as in no email at all should go out.

The language implies there is ""no"" notification but the welcome email belies that language.

if even the welcome email should be disabled, then 
in wp-admin/user-new.php (around line 108)
adding
`add_filter('wpmu_welcome_user_notification', ''__return_false');`
would kill the new user notification from wpmu_activate_signup() (a few lines later)
",transom
Future Releases,17179,Sort user by metadata value,,Users,3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-04-19T16:11:57Z,2011-04-19T16:11:57Z,"It would be nice to sort users by metadata value, the way it works for posts. For instance: 

{{{
#!php
$users = get_users(array(
  'orderby'  => 'meta_value_num', 
  'order'    => 'DESC', 
  'meta_key' => 'score', 
));
}}}

Therefore it needs to add the lines below at line 436 of file wp-includes/user.php:


{{{
#!php
} elseif( (!empty($qv['meta_key'])) && ( 'meta_value' == $qv['orderby']) ) {
  $orderby = ""$wpdb->usermeta.meta_value"";
} elseif( (!empty($qv['meta_key'])) && ( 'meta_value_num' == $qv['orderby']) ) {
  $orderby = ""$wpdb->usermeta.meta_value+0"";
}}}",ziofix
Future Releases,21744,WP_User_Query does not support post type,,Users,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-31T00:13:59Z,2012-12-22T07:46:03Z,"unfortunately WP_User_Query only support 'post' right now.
i've attached my modified user.php",AliMH
Future Releases,6405,"When deleting users without any links/posts, don't ask to whom they should be reattributed",rajnikmit*,Users,2.7,normal,normal,Future Release,enhancement,accepted,has-patch,2008-03-27T01:01:15Z,2013-03-09T12:34:39Z,"When deleting a user, it asks to whom their links/posts should be reattributed (or if they should be deleted).  We can skip this screen if they don't have any links or posts.",markjaquith
Future Releases,21982,check wp_authenticate_cookie,,Users,3.4.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-24T06:45:56Z,2012-09-24T06:45:56Z,"I am analyzing the authentication system wordpress, caught my atension the function logic `wp_authenticate_cookie` in (`wp-includes/user.php`) and decided to make a very small change.


>I made a file of changes:
> https://gist.github.com/3774628",fitorec
Future Releases,23430,sanitize_user() disallows + in usernames causes problem for email as username,,Users,3.5.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-02-09T08:48:31Z,2013-02-10T15:39:20Z,"I want to use email addresses as usernames which seems to work fine, except sanitize_user() doesn't allow a + in the username and my email addresses have + in them.  

Google/gmail allows one to use a + modifier on emails like so:
user+admin@gmail.com, user+editor@gmail.com, user+author@gmail.com, etc...

I often use this to get around WordPress's requirement for unique email addresses but it's also intended for and useful in filtering: user+blog1@gmail.com, user+blog2@gmail.com, etc...

Is there a reason we can't allow +'s in usernames or could it be moved to the strict case only?  

See formatting.php:892

",jb510
Future Releases,23165,Admin validation errors on form nonce element IDs (_wpnonce),,Validation,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-10T02:25:17Z,2013-04-03T03:21:53Z,"The `wp_nonce_field()` method has a design flaw in that the `name` parameter is optional, but its default value (""_wpnonce"") is used for the field element `id`. This wouldn't be bad if only one form is used on each page, but that is rarely the case in the admin panel. Currently, this only results in harmless HTML validation errors in admin, and in very rare situations (depending on plugins installed), can result in javascript scope-related issues breaking forms. This is an issue that keeps being reported and fixed several times (see #5962, #6564, r14737 from #13383, and the latest [http://core.trac.wordpress.org/ticket/22712#comment:11 #22712]) by simply specifying the name in all locations that don't at the time in core. There's at least three different approaches that I can see where we could prevent this from popping back up in the future and encourage better coding habits.

== A: Require the Name Parameter ==

The most obvious approach is to simply adds a `_doing_it_wrong()` call (though it could just be `_deprecated_argument()` instead) for any calls to `wp_nonce_field()` that don't specify the `name` parameter, forcing everyone to give nonce fields unique IDs (and names). A side-effect of this change is that it will also warn developers they are doing it wrong if they use `wp_nonce_field()` without the (also currently optional) `action` parameter, which is actually a good thing since the docs already warn that this is a security hole.

There are 46 locations in core that would need updated with this change that make this mistake, and the fix for each of them with this change is exactly the same as what every other commit to fix this problem has always done: just specify the `name` to give a unique ID.

The downside to this approach is that this pushes for an immediate change not only to all calls to `wp_nonce_field()`, but also their corresponding `check_admin_referer()` calls (to update the changed field name) in a single WP release, and considering how frequently it's called this way in core, I don't even have to look at plugins to see how often it happens there (it's going to be too many to count).

This approach still results in an explicitly named ID that really doesn't need to be on the field in the first place in most locations.

I gave this approach a shot anyway, and started on a patch just to see how much work it would be at least in core, but I started to find a few locations that could benefit from unique IDs, but similar field names. I also found myself already spending hours updating and testing just 9 of the 46 locations (unit tests don't cover this stuff) where I was forced to make changes to IDs that would be best left alone for now. I have attached this unfinished patch anyway if anyone is curious to see how it works, what it does, and to see what kinds of changes it ends up requiring.

It's still possible to just pass ""_wpnonce"" as the `name` with this change, so the rest of the locations could simply use that to progressively work towards unique IDs, but I just don't see this as a good solution overall, and it seems like a lot of work for very little gain on a minor issue.

== B: Use Action for ID or Remove ID Entirely ==

Another option might be to remove ID entirely, or use (and require) the action parameter as the ID. This would improve results with unique IDs fixing most locations where `wp_nonce_field()` is used without requiring a change to each one individually for most uses (except for nonces used with ajax calls). All locations in core at least use `action` already, so the case for using `action` as ID instead seems better than using `name`.

Unfortunately, either removing or using the action parameter for ID (changing the ID) would obviously break a few plugins that made the mistake of relying on the default `_wpnonce` (or the current `name` value) value for `id` from within JavaScript code for existing form endpoints. In the WP.org plugin repo, this appears to happen in the following plugins (searching up through plugins starting with 'r') for forms using the default value:

{{{
automatic-youtube-video-posts
buddypress
buddypress-backwards-compatibility
canalblog-importer
community-submitted-news
eyes-only-plus
facepress-ii
globalfeed
lazyest-gallery
lazyest-maps
maven-member
pagely-reseller-management
pluginbuddy-yourls
post-event2
qtranslate-separate-comments
repostus
...
}}}

There's likely way more plugins that post to core forms using a non-default `name` that would break though as well, and even though I think ID should have never been added to the nonce field attributes and was never necessary in the first place, compatibility rules would need to be broken if this approach was used. This of course means this option is most likely not really an option at all.

== C: Use an Option Array Parameter in Place of Name ==

To keep this concise, this last approach basically involves changing `wp_nonce_field()` to:

{{{
function wp_nonce_field( $options = array() ) { ... }
}}}

The `options` parameter is a standard arguments array used with `wp_parse_args()`. This accomplishes not just one, but two different goals. First, if `$options` is not an array or the method was called with anything other than 1 parameter, we know this is an older call that needs to use the `name` parameter for both `name` and `id`, using `func_get_args()` for the original arguments, and can do so for full 100% backwards compatibility. Second, unrelated to this issue, the function has been refactored to adhere to coding standards in regards to [http://codex.wordpress.org/WordPress_Coding_Standards#Self-Explanatory_Flag_Values_for_Function_Arguments self-explanatory flag values] as far as the `referrer` and `echo` options are concerned.

The `options` array can then be made to accept the following settings:

- action: The same unique name included in the nonce hash as is the case now.
- name: The field name (and *only* used for the name attribute). (Default: ""_wpnonce"")
- id: The field ID if this really is still desired, and can even be different than the name, but by default, the field won't have an ID at all.
- referrer: Whether to set the referer field for validation. (Default: true)
- echo: Whether to display or return hidden form field. (Default: true)

The only downside here is that each `wp_nonce_field()` call will be more verbose in most cases, especially if they do need to use an ID. For example, this:

{{{
wp_nonce_field('add-tag', '_wpnonce_add-tag');
}}}

Will now become this:

{{{
wp_nonce_field( array( 'action' => 'add-tag', 'name' => '_wpnonce_add-tag' ) );
}}}

I see plenty of benefits to this last solution though, and it requires very few changes up front, so I think it comes down to this approach ultimately. Please see attached patch.",bpetty
Future Releases,13874,"Add package argument to ""_deprecated_function"" function",westi*,Warnings/Notices,,normal,normal,Future Release,enhancement,accepted,has-patch,2010-06-13T23:48:37Z,2013-05-14T13:27:25Z,"Got to thinking it would be nice if plugins could use the _deprecated_ API by passing a ""$package"" argument to separate themselves from WP core, and so this patch was born.

",johnjamesjacoby
Future Releases,23767,remove_menu_page: Check for existing menu items,,Warnings/Notices,3.5,normal,normal,Awaiting Review,enhancement,new,close,2013-03-14T13:32:47Z,2013-03-16T17:56:37Z,"This error appears in my error log:

''PHP Warning:  Invalid argument supplied for foreach() in /www/htdocs/wp-admin/includes/plugin.php on line 1290''

The if-empty patch is attached. ",sergej.mueller
Future Releases,5770,Add extra options for default tag-cloud widget,,Widgets,2.5,low,minor,Future Release,enhancement,reopened,has-patch,2008-02-05T12:03:18Z,2009-10-13T21:59:19Z,"The default tag cloud widget only allows changing the title that appears above the tag cloud in the sidebar.

This patch allows use of more configurable options in wp_tag_cloud(), ie smallest, largest, unit, number, format, orderby, order.",AndrewFrazier
Future Releases,20127,Add filter in dynamic_sidebar() to modify sidebar index,andrewryno,Widgets,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-27T00:06:06Z,2012-02-27T00:06:06Z,"Use case: changing sidebars depending on the page/post/etc loaded through a plugin. Nothing too complex, just no way to do it. There is a filter dynamic_sidebar_params but that isn't called until later on in the function after the widgets have been collected for that sidebar.",andrewryno
Future Releases,13019,Allow multiple category widget dropdowns,azaozz,Widgets,3.0,low,minor,Future Release,enhancement,new,has-patch,2010-04-15T18:13:31Z,2010-10-30T19:30:13Z,"Although this may be a somewhat trivial and silly use of category widgets, currently placing two category widgets onto the same page with the dropdown option set results in having duplicate javascript and duplicative identified select boxes.

Whilst the instance of each widget is unique, the select boxes displayed at not given unique IDs or Names, resulting in valid markup, and resulting in only the secondary select box operating correctly. The JS var gets redeclared by the duplicative script, which gives precedence to the second dropdown.

One use case would be a page that lists long archives and shows a jump menu at both the top and bottom of the page. This would have to be done directly in the template due to the widget restrictions at present.

I am attaching a patch that adds a static counter into the category widget function, and gives each dropdown a unique identifier ID/Name, allowing simultaneous use of several category dropdowns, the JS function is updated appropriately to.

Code tested on IE7 and FF3, functionality remains the same as the original code, minus the limitation mentioned above.

Feedback is appreciated, and please do re-tag if necessary.",t31os_
Future Releases,12219,Comments on attachments don't appear in Recent Comments Widget,azaozz,Widgets,2.9.1,normal,normal,Future Release,enhancement,new,has-patch,2010-02-13T12:41:39Z,2010-05-04T15:58:26Z,"Comments on attachments don't appear in Recent Comments Widget.

This is the same in 2.9.1 (and probably many other previous versions) and the patch will work with the older version as well.",tfnab
Future Releases,19838,Don't display before_title and after_title if title is empty in widgets,,Widgets,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-01-15T19:56:56Z,2012-01-15T23:34:30Z,"Hi

it's not necessary displaying before/after_title if $title is empty

Example:
wp-calendar don't have a title, so don't display $before_title and $after_title

Solution suggestion:
return false if filter widget_title notices that $title is empty

Thank you",Xarem
Future Releases,21485,Exclude current post from Recent Posts widget,,Widgets,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-05T23:16:56Z,2012-08-11T21:13:08Z,"Checking demo site - http://twentytwelvedemo.wordpress.com/

If you visit any recent post like this one - http://twentytwelvedemo.wordpress.com/2012/03/28/road-trips/

The recent post widget on right sidebar include this post in recent 5 post. We could just exclude present post from the loop using code like this



{{{
<?php
				global $post;
				$args=array(
					""numberposts""=>5,
					""orderby""=>""post_date"",
					""post__not_in""=>array($post->ID)
				);
				
				$posts = get_posts($args);
	
				foreach($posts as $post) {
					setup_postdata($post);
?>
}}}

Most theme has it. If you are already in a post which is among recent 5, no point of showing it in the loop.
",Asif2BD
Future Releases,14132,Login widget using wp_login_form(); function,azizur,Widgets,3.1,normal,normal,Future Release,enhancement,assigned,has-patch,2010-06-28T18:51:07Z,2011-01-08T22:52:03Z,"In wordpress 3.0 we added the [http://codex.wordpress.org/Function_Reference/wp_login_form wp_login_form();] function.

But if a blog owners don't know PHP he can't  add a login form to his blog.

Adding a widget (that uses this function) will make it easyer for users to do this.
",ramiy
Future Releases,21165,Make categories widget work with custom taxonomies,,Widgets,,normal,normal,Future Release,enhancement,new,has-patch,2012-07-05T14:15:13Z,2013-05-02T14:17:27Z,"The tag cloud widget already has a taxonomy dropdown.

We should add one for the categories widget as well.",scribu
Future Releases,13524,Open closed widget areas when dragging onto them,,Widgets,3.0,low,minor,Future Release,enhancement,new,has-patch,2010-05-24T18:48:17Z,2012-01-06T01:34:18Z,"Right now if you start dragging a widget in the widget admin and drag it over a closed widget area, you have to let go once, open up the widget area, then drag again. Make it so closed widget areas open up when you drag things onto them, perhaps after a slight (500ms?) delay.",mitchoyoshitaka
Future Releases,23083,Tag balancing for text widgets,,Widgets,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-30T09:11:18Z,2013-01-29T20:58:48Z,"Based on inspecting the code it looks like tag balancing is not applied to th content of the text widget. 

IMO people are more likely to produce broken HTML when adding HTML in a text widget then when writing post, but tag balancing is done only for posts and comments (in which HTML is rarely used).",mark-k
Future Releases,23120,There should be indication that widget settings have been saved,,Widgets,3.5,normal,normal,Future Release,enhancement,new,has-patch,2013-01-04T16:28:05Z,2013-05-14T12:45:51Z,"There's currently no confirmation that adding a widget or changes to a widget have been saved. In some cases(fast hosting and a solid internet connection) the changes are saved so quickly the spinner is barely on the screen at all. I think a best course of action would be to have the word ""Saved"" appear briefly after the spinner goes away. Or perhaps a check mark as that doesn't need to be translated.
Related post on make.wordpress.org: http://make.wordpress.org/ui/2013/01/02/this-morning-i-ran-2-users-through-some/",jacopo.vip
Future Releases,10364,Usability problem on the Widgets admin interface,azaozz,Widgets,,high,minor,Awaiting Review,enhancement,reopened,has-patch,2009-07-09T04:48:56Z,2012-12-30T16:03:45Z,"On the widgets page, when I have lots of widgets available it's a nightmare to drag and drop one by one on the intended sidebar.
I have to scroll down and up the page while keeping the mouse button pressed. 
When someone is using a Notebook and no mouse it's really a pain.
And with all that netbooks today it's even worse.

What I think could be done: just put a toggle button (like the dashboard widgets) on each widget and when someone press this toggle button it opens a menu with some links like: add to sidebar 1, add to sidebar 2,...

This would really be a usability improvement since it's not usable the way it is now. 
And off course the drag and drop doesn't need to be replaced. People should be able to use it either way.
If you have a big monitor, go for drag and drop since you should be able to view all your available widgets on multiple columns without the need to scroll down the page.
Otherwise just click the toggle and Add to sidebar.",vteixeira
Future Releases,19159,When Inactive Widgets list gets long it is hard to clear,cdog*,Widgets,3.3,normal,minor,Future Release,enhancement,accepted,has-patch,2011-11-05T09:48:59Z,2012-12-30T12:03:38Z,"If you have a lot of inactive widgets it can be really hard manual labour to remove them all.

It would be much nicer if there was a delete all button like this plugin adds http://wordpress.org/extend/plugins/remove-inactive-widgets/",westi
Future Releases,22436,escape recent posts widget post titles,,Widgets,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-14T02:45:27Z,2012-11-14T09:08:13Z,"The recent posts widget escapes the title attribute but does not escape element text. Add an esc_html wrapper to post title values to escape before output.

Example post title: Post about < stuff >",niallkennedy
Future Releases,10514,Allow plugins to advertise its XML APIs in RSD,josephscott,XML-RPC,,normal,normal,Future Release,enhancement,new,has-patch,2009-07-29T17:02:39Z,2012-06-21T20:53:14Z,It will be nice if plugins could advertise its APIs in RSD.,sirzooro
Future Releases,5725,Auto-convert Contributor's new post to draft,josephscott,XML-RPC,2.3.2,normal,minor,Future Release,enhancement,new,has-patch,2008-01-27T05:04:01Z,2009-11-17T15:17:16Z,"Currently, wp-app.php implementation honors client-supplied app:draft element. If a contributor submits a new Atom entry without app:draft element set to 'yes', it rejects the request.

[Current Response][[BR]]
401 Unauthorized[[BR]]
""Sorry, you do not have the right to edit/publish new posts.""

Imagine when a contributor forgets to set app:draft to 'yes' and submits a new post. By reading the error message, the contributor may mistakenly think that he is not allowed to submit posts at all. A proposed workaround has been submitted as ticket #5723.

There is an alternate proposal:[[BR]]
rather than rejecting the request, server may ignore client-supplied app:draft element and always treats a contributor's new post as draft. Based on [http://tools.ietf.org/html//rfc5023#section-13.1.1 RFC5023 Section 13.1.1], server may ignore client-supplied app:draft element.",toydi
Future Releases,23446,Expose 'login_url' and 'admin_url' via XML-RPC,,XML-RPC,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-11T10:41:14Z,2013-04-01T09:28:14Z,"To show the preview of  'private'/'draft'/'pending review' posts we need to authenticate to WordPress by using the login form, and the redirect_to parameter. 
Sometime the URL of the login form cannot be guessed by replacing xmlrpc.php with wp-login.php :)

We have the same issue for the URL of the admin dashboard. ",daniloercoli
Future Releases,12493,Filter $bits in wp_upload_bits(),josephscott,XML-RPC,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-03-03T05:25:51Z,2012-10-18T07:42:35Z,"It'd be nice if there was a filter on `$bits` in `wp_upload_bits()` to allow plugins to modify uploads coming in from XML-RPC. Resizing, watermarking, etc. are all example uses for this filter.

Since it's a simple filter, perhaps it could be slipped into 3.0.",Viper007Bond
Future Releases,21497,Make uploads on XML-RPC resumable,,XML-RPC,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-06T02:48:56Z,2012-08-06T20:06:06Z,"In order to play nicely with unreliable internet connections (ie, mobile, conference wifi) it would be nice to be able to resume uploads over the XML-RPC API.",pento
Future Releases,22497,Post type should be able to show on mobile apps,,XML-RPC,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-18T18:48:58Z,2012-11-20T11:40:24Z,"Currently the mobile apps only show Post and Pages. Part of the reason is that the apps can't know if the post type is worth showing in the apps since it's heavily based on several meta-boxes. I think this is a nice add-on for developers to make that decision.

The patch is really simple and is just adding a extra parameter to register post type.",markoheijnen
Future Releases,18731,The XML-RPC Endpoint filename is hardcoded in the code (aka: my Host Blocks XML-RPC Access!),,XML-RPC,3.2,high,major,Future Release,enhancement,new,has-patch,2011-09-21T10:56:26Z,2012-12-29T20:48:32Z,"It's impossible to rename the file 'xmlrpc.php' to something different (for eg when your hosting provider blocks the access to the xmlrpc.php file) since the prefix ""xmlrpc.php"" is hardcoded within the src code. You can rename the file but the XML-RPC call wp.getUsersBlog always returns the hardcoded URL.

Same issue for the pingback link and the EditURI link.

We pubblished a plugin that should help users for the time being:
http://wordpress.org/extend/plugins/rename-xml-rpc/",daniloercoli
Future Releases,18684,XMLRPC metaWeblog.newMediaObject doesn't have possibility for setting excerpt/content,,XML-RPC,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-16T12:10:20Z,2012-09-23T19:30:22Z,XMLRPC metaWeblog.newMediaObject method only sets empty content for attachment and doesn't have possibility for setting excerpt and/or content for attachments.,skithund
Next Release,21334,Accessibility of Quick Edit panel in Posts/Pages/etc,,Accessibility,3.4.1,normal,normal,3.6,defect (bug),new,has-patch,2012-07-21T06:46:51Z,2013-05-09T14:36:57Z,"Two issues here:

1) When someone using mouse hovers over a page/post row in main Pages/Posts screen - the 'quick links' appear. However these links will never appear when a user is tabbing around the screens - perhaps a blind user with screen reader or someone who is unable to use a mouse.

Please can the 'quick links' panel be opened when someone tabs to the page/post title and stay open so that they can then tab into the links provided.

2) Using Quick Edit. 

When the Quick Edit panel is open the input fields in there are all nicely accessible except for the date and time grouping. These input fields have a tabindex value set (unlike the surrounding input fields) which removes them far from the natural sensible tab order within this panel. Suggest the tabindex values are removed.

Also, none of the date and time input fields have labels so their meaning is unclear - certainly to blind users but also potentially to people with cognitive impairments too. Please can this be rectified.

Thanks",grahamarmfield
Next Release,23560,Keyboard Accessibility of Add Media Panel,,Accessibility,3.5.1,normal,normal,3.6,defect (bug),new,has-patch,2013-02-20T14:26:56Z,2013-04-09T23:28:25Z,"Trying to keep this trac specific I'm talking here about keyboard-only interaction with the new Add Media panel once you have opened it by actioning the Add Media link whilst editing a page or a post.

Accessibility Issues:
* The most serious problem with accessibility in the Add Media functionality is that it is not possible to select any of the pre-uploaded media without using a mouse. This will effectively preclude any keyboard only or screen reader users from using this functionality.
* When the Add Media panel first opens it is unclear where keyboard focus sits. This could be disconcerting for some users.
* Reverse tabbing from the panel transfers focus back into the main page whilst leaving the panel open. Recommend that focus is kept cycling within the panel until the user either explicitly closes the Add Media panel or inserts some images.
* It is possible to tab through the text links on the panel(s), but the Upload Files link does not show focus as obviously as other links as there is no outline.
* When tabbing forwards from the Upload Files link there is a tab stop that is not at all visible. Believe this to be Media Library but it's not clear.
* The Insert into Page link can receive focus even when inactive.

Separate trac tickets will be raised to cover the full screen reader and speech recognition software experience.",grahamarmfield
Next Release,20294,User profile edit: no label on second password field,,Accessibility,,normal,normal,3.6,defect (bug),new,has-patch,2012-03-24T13:08:23Z,2013-05-05T05:35:32Z,"When editing a User profile in admin, there are 2 fields for password, the second one asking to ""Type your new password again"".

This second field has neither a {{{label}}} element nor a {{{title}}} attribute associated to it.[[BR]]
The first field has a label, the one in the {{{th}}} element: ""New Password"", correctly associated to the input via its for attribute (e.g. {{{for=""pass1""}}} when the input field has an {{{id=""pass1""}}}).

Any form field should have an associated label (or at least a title) per WCAG 2.0, see the Technique ''[http://www.w3.org/TR/WCAG-TECHS/H44.html H44: Using label elements to associate text labels with form controls]''. This helps screenreader and other assistive technologies users to understand without a doubt what is the role of each form field, improving the accessibility of the admin and thus ATAG and WCAG compliance of WordPress).

A simple solution would be to use the existing hint ""Type your new password again."" (right after the second password field) as its associated label.[[BR]]
{{{span.description}}} thus becomes:

{{{
<label class=""description""><?php _e(""Type your new password again.""); ?></label>
}}}

This new label isn't styled in italic anymore (because the applied selector is ''span.description'') so, in {{{wp-admin/css/wp-admin.dev.css}}}, one should also add {{{label.description}}} to the existing selector rule and to the one at the end of the same CSS file that removes italic for zh_CN localization.

Related ticket: [http://core.trac.wordpress.org/ticket/9445 #9445] ''(All Input Tags are not Section 508 Compliance)''",PhilippeVay
Next Release,23817,Collapse menu button not working if browser size is 911px width,,Administration,,normal,normal,3.6,defect (bug),new,has-patch,2013-03-19T14:18:37Z,2013-03-29T17:53:22Z,"After I added a metabox to the edit page of the post, from here:

http://codex.wordpress.org/Function_Reference/add_meta_box

the collapse but does not work if the browser size is 911px, need to refresh the page after resize to see the bug.

My browser is Firefox (latest), Windows 7


I use this for browser size check - http://whatsmy.browsersize.com/",alexvorn2
Next Release,23397,Taxonomy Parent Dropdown Concealed,,Administration,,normal,normal,3.6,defect (bug),new,has-patch,2013-02-05T18:21:58Z,2013-02-05T19:11:15Z,"When a taxonomy has a really long term, the parent select drop down in the Add New form can be concealed behind the list table.

Normal
[https://dl.dropbox.com/u/2200339/WordPress%20Tickets/TaxSelects/normal.png]

Really Long Taxonomy Item
[https://dl.dropbox.com/u/2200339/WordPress%20Tickets/TaxSelects/really-long-title.png]

Fix
[https://dl.dropbox.com/u/2200339/WordPress%20Tickets/TaxSelects/fixed.png]",desrosj
Next Release,22839,Toggle spinners by adding/removing a class instead of show()/hide(),,Administration,3.4.2,normal,normal,3.6,defect (bug),new,has-patch,2012-12-09T18:17:02Z,2013-01-24T22:13:37Z,"I've noticed a bug with the spinner while updating a previous submission (ticket:19159). It worked in 3.4 when .ajax-feedback was used instead of .spinner.

Elements with class .spinner don't show up in any .sidebar-name (e.g. Main Sidebar, Inactive Widgets etc.) when an action is in progress (e.g. clearing inactive widgets).",cdog
Next Release,24345,preview link for published posts does not apply the preview_post_link filter,,Administration,3.5.1,normal,normal,3.6,defect (bug),new,has-patch,2013-05-15T15:59:25Z,2013-05-15T16:09:01Z,"The ""Preview Changes"" button in the admin section (as created in wp-admin/includes/meta-boxes.php lines 40-49) does not apply the preview_post_link filter if the post has already been published (line 41).

The patch from #19378 ensures that the javascript that is called to open the preview link in a new tab/window DOES apply the preview_post_link filter, so if you click the link normally it will use the correct URL. However, hovering over the ""Preview Changes"" button shows the incorrect URL, and right-clicking the button and opening in a new tab/window opens the incorrect URL as well.

I have attached a patch that applies the preview_post_link filter to the link created for published posts.",joeybvi
Next Release,23684,wp-admin CSS style conflicts with jQuery-UI breaking form elements in Firefox,,Administration,3.5,normal,normal,3.6,defect (bug),new,has-patch,2013-03-04T07:10:22Z,2013-05-10T02:09:17Z,"A default CSS style in the wordpress admin interface, which is loaded through load-styles.php either under the name wp-admin or buttons (both of which are inaccessible for removal as they are not listed in the WP_Styles object) interferes with jQuery-ui in such a way that any radio buttons (and possibly other form elements) that are styled with jQuery-ui in the admin interface (such as with a plugin) cause the browser window to jump to the top of the page when clicked. This behavious occurs with the current Wordpress version 3.5.1 using the latest Firefox 19.0 on linux (haven't tested in windows yet). After spending a few hours tracking down the offending code I narrowed it down to this statement in the admin CSS:
{{{
.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible {
position:absolute;
left:-1000em;
top:-1000em;
height:1px;
width:1px;
overflow:hidden;
}
}}}

The .ui-helper-hidden-accessible class is what is causing the conflict, specifically the ""top:-1000em;"" statement; due to the negative positioning values when a button is clicked the browser tries to focus on something styled with the ui-helper-hidden-accessible class, which is of course way outside the limits of the browser window. In order to correct the error I had to override it with the following in another stylesheet declared after load-styles.php:
{{{
.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible {
position:fixed;
left:1em;
top:1em;
height:1px;
width:1px;
overflow:hidden;
display:none;
}
}}}

We should not have to override default styles like this when making plugins, especially when we are using a js library (jQuery-ui) that is included with wordpress. Either the ui-helper-hidden-accessible class needs to be renamed or the negative values removed and replaced with a display:none; statement to fix this bug.",Colin84
Next Release,21241,Default value for background_image_thumb fails when background_image URL includes a percent sign,,Appearance,3.4.1,normal,minor,3.6,defect (bug),reopened,has-patch,2012-07-12T16:49:14Z,2013-01-17T04:14:38Z,"If the background_image theme mod is set to a URL that includes a percent sign, and if background_image_thumb is not set, the code that uses background_image as the default setting for background_image_thumb fails due to get_theme_mod interpreting the percent signs in the background_image URL as sprintf conversion specifications.

I don't think that this situation can occur in a vanilla WordPress install (but that might be host-specific), but it's entirely possible that a plugin would set background_image to a URL including a percent sign.",cfinke
Next Release,23449,Refactor customizer accordion to work anywhere in admin,markjaquith,Appearance,,normal,normal,3.6,defect (bug),reopened,has-patch,2013-02-11T14:23:41Z,2013-04-02T01:39:54Z,"We'll plan to use the default styles/structure from the customizer accordion for menu item selection options on nav-menus.php.  Currently the code is very customizer specific.  

- The class names should be made more generic.  
- The CSS should be extracted and placed in wp-admin.css
- The JS, should be moved so that you don't have to include the customizer JS elsewhere in the admin to re-use the accordion code.",lessbloat
Next Release,7392,Don't create new autosave revision if nothing has changed yet,westi,Autosave,2.6,normal,minor,3.6,defect (bug),reopened,has-patch,2008-07-23T22:03:39Z,2013-05-09T15:22:06Z,"I noticed that simply loading and saving a post creates a new revision. This seems rather dumb to me. Could we not load the post up, compare it with the revision, and not create a whole new revision if nothing changed (ignoring post save time, of course)?

Discuss.",Otto42
Next Release,24308,Twenty Thirteen: Add Editor Styles for Post Formats,,Bundled Theme,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-10T21:14:36Z,2013-05-19T16:02:39Z,"Since the post formats UI is adding/changing the current post format to the tinyMCE iframe body class, we might as well include the post format styling in the editor. This has several advantages, including additional visual distinction between post formats for Twenty Thirteen users. It also makes it clearer what sort of content is expected in the editor, because you can compare directly to where it appears on the site. For example, the editor expects the quote itself, with or without blockquote tags. By making the editor display just like the output, it becomes obvious that the quote itself is expected here, and that quotation marks are provided.

The average first-time user won’t necessarily know that the different post formats are treated with an array of bold colors in Twenty Thirteen; they may not try publishing or previewing the different post formats, but instead just play with the PF admin UI. By reflecting the theme styling in the editor, they immediately know that the different formats feature different colors (and other minor layout changes), and are therefore more likely to start publishing with the different formats right away.

And, of course, by doing this we’re showing the thousands of default-theme-dissectors how easy it is to do separate styling per-format and encouraging them to as well. For me, it really completes the post formats UI. After all, the point of editor-style.css is to make editing a visually similar experience to the end result.",celloexpressions
Next Release,24329,Twenty Thirteen: Comment Name to length stretches into comment,,Bundled Theme,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-13T16:58:36Z,2013-05-17T19:34:58Z,"I finally moved twenty thirteen to my actual website (yeah!) and I found an issue in a comment author area. 

His nickname is CambridgeBayWeather which is 20 characters long and all one word. This make his nickname stretch into the actual comment field.
See Screenshot: http://cl.ly/image/1C313Z0Q1N1O

And Direct Link:  http://robertdall.com/2013/04/29/expo-86-lies-and-wikipedia/#comment-18 
",rdall
Next Release,24363,Twenty Thirteen: Phpdoc param descriptions in back-compat.php,,Bundled Theme,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-18T17:23:58Z,2013-05-19T14:54:11Z,Patch adds param descriptions for `twentythirteen_switch_theme()` in /inc/back-compat.php,DrewAPicture
Next Release,24298,Twenty Thirteen: RTL for editor styles,,Bundled Theme,,normal,normal,3.6,defect (bug),new,has-patch,2013-05-09T20:11:15Z,2013-05-19T16:11:23Z,TODO,lancewillett
Next Release,24307,Twenty Thirteen: display issues if gallery images are smaller than 300x300,,Bundled Theme,trunk,high,normal,3.6,defect (bug),new,has-patch,2013-05-10T18:02:53Z,2013-05-17T19:22:40Z,"WordPress 3.6-beta2-24227

Browser: Only tested on Firefox 20
 
Gallery excerpts on the home page are magnified.

Also missing captions on both excerpt and gallery page.
This may be addressed by  #23584 ""closed defect (bug) (fixed)
Twenty Thirteen: Gallery captions are hidden"" but I'm not sure if captions were still meant to be hidden or displayed.

On the gallery page the centered images look out of place. Much better to displayed them from the left side as done for 2012.

See attached files for screenshots.

Also attached 2012 gallery screenshot for comparison which is the same on both the excerpt and the gallery page.

Andy Bruin",professor99
Next Release,23290,"When using switch_to_blog() with a persistent object cache that lacks wp_cache_switch_to_blog() support, non-persistent groups are not maintained",,Cache,3.0,normal,normal,3.6,defect (bug),new,has-patch,2013-01-25T05:28:44Z,2013-03-02T22:00:54Z,"If you're using a persistent object cache that lacks the new `wp_cache_switch_to_blog()` support, WordPress core `else`s into a complete cache clobbering branch. It is smart about grabbing the global groups and re-adding those after `wp_cache_init()` is called, but it doesn't do the same for non-persistent groups. Those are a hardcoded array. So if you call `switch_to_blog()`, you would lose any custom-added non-persistent groups.",markjaquith
Next Release,23381,update_option() stores unserialized value in object cache,,Cache,3.0,normal,normal,3.6,defect (bug),new,has-patch,2013-02-04T15:03:53Z,2013-02-22T12:11:37Z,"`update_option()` and `add_option()` have inconsistent behaviour when storing items in the cache. `add_option()` stores the serialized version, whereas `update_option()` stores the raw data. When using APC for object caching, this can result in objects being loaded in `wp_load_alloptions()` before the class for it is defined in a plugin.

In `update_option()` (storing raw data):
{{{
	$_newvalue = $newvalue;
	$newvalue = maybe_serialize( $newvalue );

	// ...
			$alloptions[$option] = $_newvalue;
			wp_cache_set( 'alloptions', $alloptions, 'options' );
	}
}}}

Whereas in `add_option()` (storing serialized data):
{{{
	$_value = $value;
	$value = maybe_serialize( $value );

	// ...
			$alloptions[$option] = $value;
			wp_cache_set( 'alloptions', $alloptions, 'options' );
}}}

Example plugin included, breaks horribly when using the APC cache, as that doesn't enforce serialization internally. This only occurs when using `update_option()` on an existing option.

Looks like this was introduced in r13673.

= Steps to reproduce =
  1. Install markjaquith's APC object caching plugin
  2. Activate my plugin. Each refresh will append an object to the array
  3. Note output is:
{{{
array(0) {
}
}}}
  4. Refresh. Note new output is:
{{{
array(1) {
  [0]=>
  object(rmccue_Test_Object)#275 (0) {
  }
}
}}}
  5. Refresh again. Output should be:
{{{
array(2) {
  [0]=>
  object(__PHP_Incomplete_Class)#5 (1) {
    [""__PHP_Incomplete_Class_Name""]=>
    string(18) ""rmccue_Test_Object""
  }
  [1]=>
  object(__PHP_Incomplete_Class)#6 (1) {
    [""__PHP_Incomplete_Class_Name""]=>
    string(18) ""rmccue_Test_Object""
  }
}
}}}",rmccue
Next Release,14773,Error in slug parsing leads to unlimited URLs for the same article = duplicate content,,Canonical,,normal,normal,3.6,defect (bug),assigned,has-patch,2010-09-03T14:20:45Z,2013-04-11T03:30:30Z,"an example says more than 1000 words:

right url:

http://ahmongwoman.wordpress.com/2010/09/02/i-am-not-hmong-and-i-dont-speak-spanish/

wrong urls:

http://ahmongwoman.wordpress.com/2010/09/02/i-am-not------hmong-and-i-dont-speak-spanish/

http://ahmongwoman.wordpress.com/2010/09/02/i----am-not-hmong-and-i-dont-speak-spanish/

http://ahmongwoman.wordpress.com/2010/09/02/i-am-not-----hmong-and-i-------dont-speak---------spanish/

Problem:

Wordpress returns the article with HTTP status code 200 for the wrong URLs.

This is a serious issue for people regarding search engine optimization (duplicate content).

Expected results:

Wordpress returns HTTP Status code 301 with Location-Header and right URL to the client.",thermoman
Next Release,23469,Comment meta query is parsed before the pre_get_comments filter,,Comments,3.5,normal,normal,3.6,defect (bug),new,has-patch,2013-02-13T12:21:26Z,2013-04-08T06:54:07Z,"Currently it is impossible to use the `pre_get_comments` filter to adjust the meta_query, because `parse_query_vars( $this->query_vars )` is run before the filter is applied http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/comment.php#L243:

{{{
// Parse meta query
$this->meta_query = new WP_Meta_Query();
$this->meta_query->parse_query_vars( $this->query_vars );

do_action_ref_array( 'pre_get_comments', array( &$this ) );
}}}

Comment meta query should be parsed '''after''' the `pre_get_comments` filter has been applied.",kasparsd
Next Release,10948,wp_list_comments() always assumes walker will echo.,,Comments,2.8.6,normal,normal,3.6,defect (bug),new,has-patch,2009-10-13T12:21:33Z,2013-05-04T10:33:03Z,"wp_list_comments() always assumes the walker called will echo it's constructed content (the default Walker does this).

However, if you want to use your own walker which doesn't echo, or you want to post process the output of the default walker in some way, you cannot.

The changes required are to wp_list_comments() which should check for an 'echo' arg and respond appropriately (like wp_list_pages does). The built in comment walker class Walker_Comment needs to write it's output to the passed $output reference. Finally the function edit_comment_link() needs to take an echo parameter.

The attached patch allows this functionality whilst preserving the status quo by adding a default echo => 1 argument to wp_list_comments and edit_comment_link.

",MikeLittle
Next Release,24160,ALTERNATE_WP_CRON runs wp_cron() too early,,Cron,3.4,normal,normal,3.6,defect (bug),new,has-patch,2013-04-22T17:48:44Z,2013-05-08T18:47:13Z,"See #19818 for full details.

Then, [https://core.trac.wordpress.org/ticket/19818#comment:8 read my comment in that ticket].

Was advised to create a new ticket.",r-a-y
Next Release,22134,"Update Network causes ""WordPress database error Table 'wp_signups' already exists for query""",,Database,,normal,normal,3.6,defect (bug),new,has-patch,2012-10-08T20:58:37Z,2013-04-19T10:54:17Z,The CREATE TABLE statements in wp-admin/includes/schema.php don't use IF NOT EXISTS so they create lots of SQL errors every time you update the network.,tomdxw
Next Release,21272,reporting typo in dbDelta,,Database,3.4.1,normal,minor,3.6,defect (bug),new,has-patch,2012-07-14T14:45:25Z,2013-01-08T07:05:05Z,"In dbDelta, there is the section:


{{{
                // For every remaining index specified for the table
                foreach ( (array) $indices as $index ) {
                        // Push a query line into $cqueries that adds the index to that table
                        $cqueries[] = ""ALTER TABLE {$table} ADD $index"";
                        $for_update[$table.'.'.$fieldname] = 'Added index '.$table.' '.$index;
                }
}}}

Note that $for_update is updated with the wrong array index.  This causes some updates not to be returned in $for_update.  Better would be:

{{{
                        $for_update[$table.'.'.$index] = 'Added index '.$table.' '.$index;
}}}

Even this is not really right, since indexes and columns may have the same names.  Given that the users of dbDelta don't even seem to care about the keys, it might be simpler just to change all the $for_update lines to

{{{
                        $for_update[] = ...
}}}

except for the first one that must be keyed on table name.",apimlott
Next Release,23299,Definition List in Editor,,Editor,2.2,low,minor,3.6,defect (bug),new,has-patch,2013-01-26T18:38:12Z,2013-01-27T19:13:36Z,After switch from Text to Visual and then from Visual to Text the formatting of the definition list is lost.,gputignano
Next Release,21787,"While editing post, View Post link disappears if post status gets set to anything other than 'publish'",,Editor,,normal,normal,3.6,defect (bug),new,has-patch,2012-09-04T10:00:54Z,2013-01-14T11:11:27Z,"To reproduce, edit a post and change the Visibility to private. You'll notice the 'View Post' link next to the slug editor disappear. 

I would suggest that we match the interface here with the way the 'View Post' link works in the admin bar: check read_post cap for the user against the post, and display accordingly. ",ericlewis
Next Release,17767,Anonymous comments can break comments RSS feed,westi*,Feeds,3.2,normal,normal,3.6,defect (bug),accepted,has-patch,2011-06-11T11:30:34Z,2013-01-13T23:54:50Z,"dc:creator and description elements should not be parsed.

Author field that can break RSS:
{{{
&#1040;&#1079; &#1089;&#1077; &#1082;&#1072;&#1079;&#1074;&#1072;&#1084; &#1042;&#1077;&#1089;&#1077;&#1083;&#1080;&#1085; &#1053;&#1080;&#1082;&#1086;&#1083;&#1086;&#1074;, &#1090;&#1086;&#1074;&#1072; &#1077; &#1077;&#1076;&#1085;&#1086; &#1084;&#1085;&#1086;&#1075;&#1086; &#1076;&#1098;&#1083;&#1075;&#1086; &#1080;&#1084;&#1077;
}}}

Comment text that can break RSS:
{{{
&amp;ndash;
}}} 

(and most of the $allowedentitynames)",dzver
Next Release,24277,chgrp and chown don't work for Filesystem over SSH2,dd32,Filesystem,,normal,normal,3.6,defect (bug),assigned,has-patch,2013-05-07T16:04:11Z,2013-05-08T00:41:29Z,"As found using a static analyzer in #24210 (from rlerdorf).

Looks to be copy-pasted from the chmod method. Attaching a patch that I think does the trick.",nacin
Next Release,21974,esc_url() doesn't allow protocol-relative URLs with colons,,Formatting,,normal,normal,3.6,defect (bug),new,has-patch,2012-09-23T00:58:25Z,2013-04-10T18:15:42Z,"This doesn't work:
{{{
wp_enqueue_style( 'twentytwelve-fonts', ""//fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700"", array(), null );
}}}
The colon is the culprit. `wp_kses_bad_protocol()` reduces the URL to:
{{{
400italic,700italic,400,700
}}}
So `esc_url()` returns an empty string: [[BR]]
http://core.trac.wordpress.org/browser/tags/3.4.2/wp-includes/formatting.php#L2572",SergeyBiryukov
Next Release,24309,Add filters for get_post_galleries() and get_post_gallery(),,Gallery,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-10T21:47:26Z,2013-05-10T21:48:23Z,"As post format implementations were not tightly defined in the past, there are a variety of gallery implementations in the wild. For example, not all implementations included the use of the [gallery] shortcode.

Adding in a couple of hooks will likely allow for backward compatibility to those implementations.",alexkingorg
Next Release,8177,Comments disabled in post but not in media gallery,,Gallery,2.7,normal,normal,3.6,defect (bug),new,has-patch,2008-11-12T16:08:33Z,2013-04-22T12:46:10Z,"The options to ""allow comments on this post"" and ""allow trackbacks and pingbacks on this post"" have been deselected.  The post will then return the expected message ""Both comments and pings are currently closed"".  (ie. http://localhost/wordpress/?p=42)  However, when selecting an image from an embedded native Gallery of that post, the image redirects to an attachment_id (ie. http://localhost/wordpress/?attachment_id=38)and still has a comments field.  There is no decipherable means to disable comments on attachments through the native gallery.  

If this is the expected behavior, I would believe that if a post may disable comments, then all of its content should be disabled.

Related: #9839 Enable/Disable comments on a per item bases (some attachments don't have parents)",canon2k5
Next Release,23787,Gallery displayed even when the gallery shortcode is inside an HTML comment,,Gallery,3.4,normal,normal,3.6,defect (bug),new,has-patch,2013-03-15T14:05:12Z,2013-03-21T13:41:54Z,"The gallery shortcode emits HTML comment which cause HTML to break when the shortcode is inside a comment as HTML doesn't support nested comments

Adding the following in the text editor

<!-- [gallery ids=""423,424,202,155,148,150""]  --> 

generates the following HTML


{{{
<!-- 
		<style type='text/css'>
			#gallery-1 {
				margin: auto;
			}
			#gallery-1 .gallery-item {
				float: right;
				margin-top: 10px;
				text-align: center;
				width: 33%;
			}
			#gallery-1 img {
				border: 2px solid #cfcfcf;
			}
			#gallery-1 .gallery-caption {
				margin-left: 0;
			}
		</style>
		<!-- see gallery_shortcode() in wp-includes/media.php -->
...
-->
}}}

related #23786",mark-k
Next Release,23041,Images Don't Become Attached When Inserting a Gallery,,Gallery,3.5,normal,normal,3.6,defect (bug),new,has-patch,2012-12-21T20:15:21Z,2013-04-02T13:32:45Z,"Steps to Reproduce:

1. Go to the ""Upload New Media"" page (wp-admin/media-new.php)
1. Upload an image.
1. Create a new post.
1. Create an image gallery that includes the newly-uploaded image.
1. Insert the gallery into the post.
1. Publish the post.

Expected result:  Any ""(Unattached)"" image(s) should get attached.

Actual result:  Images remain ""(Unattached)"".",miqrogroove
Next Release,23862,Clean up old WP->public_query_vars and WP->private_query_vars,,General,,normal,trivial,3.6,defect (bug),new,has-patch,2013-03-25T19:20:07Z,2013-03-30T15:54:18Z,"There are some old non-working public_query_vars still in the WP class that should be cleaned up.

* posts - broken 10 years ago http://core.trac.wordpress.org/changeset/182/trunk/blog.header.php
* search - hasn’t done anything since wp_query was created
* calendar - don’t see support since ‘b2’
* pb - don’t see support since ‘b2’
* static - only used in determining if is_page, though it no longer works correctly, added http://core.trac.wordpress.org/changeset/1527/trunk, but functionality was partially changed the next commit

Also, since 'post_type' is now a public_query_var, it can be removed from the private_query_vars.
",prettyboymp
Next Release,17375,Serialzed option values broken for classes and strings on unserialize for C and S,markjaquith,General,3.1,normal,normal,3.6,defect (bug),reviewing,has-patch,2011-05-11T11:42:09Z,2013-01-14T01:06:27Z,"Wordpress has a feature build in to store arrays and objects into option values.

This is done by transparently serializing on storing and unserialize on retrieving.

The implementation is broken.

Wordpress is unable to unserialize serialized option values if they contain a serialized representation of classes implementing the [http://www.php.net/manual/en/class.serializable.php PHP serializeable interface] (C instead of O).

This is because the is_serialized() does not recorgnize that type of value.",hakre
Next Release,23251,WordPress tries to unnecessarily set the memory limit,,General,2.5,normal,normal,3.6,defect (bug),new,has-patch,2013-01-21T15:25:01Z,2013-04-11T17:10:33Z,"Fixed bug where !WordPress tries to unnecessarily set the memory limit when a value like '2G' is used instead of '2048M'.

See bad code & good code over at Github, which is what you should be using for stuff like this; https://github.com/WordPress/WordPress/pull/26

Discovered by @willem_o and @PeterJaap",peterjaap
Next Release,23284,Wrong parameter order for stripos in wp-includes/functions.php,,General,3.5,normal,normal,3.5.2,defect (bug),new,has-patch,2013-01-24T14:07:22Z,2013-03-03T20:18:42Z,"In wp-includes/functions.php lines 658 and 661 stripos is used two times with parameters in the wrong order.

This would be correct:
{{{
if ( 0 === stripos( $uri, 'http://' ) ) {
}}}


{{{
} elseif ( 0 === stripos( $uri, 'http://' ) ) {
}}}",Kalindor
Next Release,19856,wp_get_referer() doesn't return false when the referer URL is the same as the current URL,,General,3.3.1,normal,normal,3.6,defect (bug),new,has-patch,2012-01-19T08:08:53Z,2013-05-10T03:59:27Z,"Inside wp_get_referer(), there's this conditional statement:

`if ( $ref && $ref !== $_SERVER['REQUEST_URI'] )`

It is there to ensure that wp_get_referer() doesn't return the same page I'm on. This is useful when redirecting because I can detect and avoid infinite redirection.

According to PHP documentation, `$_SERVER['REQUEST_URI']` is only the URI on the host. As a result, the conditional statement above fails in this case:

Let's say I was redirected from http://example.com/sample-uri to itself (either by clicking a link or a form submission). Then:

{{{
$ref = 'http://example.com/sample-uri';
$_SERVER['REQUEST_URI'] = '/sample-uri';
}}}

So technically, the referrer is the same page, but wp_get_referer() doesn't return false as expected, because `$ref !== $_SERVER['REQUEST_URI']`.

A better conditional statement would be:

`if ( $ref && parse_url( $ref, PHP_URL_PATH ) !== $_SERVER['REQUEST_URI']  )`

Patch attached.

I'm using PHP 5.3.6, Apache 2.2.20.",garyc40
Next Release,17588,fsockopen performs a POST request to a redirected location,,HTTP,3.2,normal,normal,3.6,defect (bug),new,has-patch,2011-05-27T08:56:34Z,2013-03-21T12:16:35Z,"Continuing off #17490.

Some background first: When you make a POST request, If you recieve a 3xx w/ Location in response, The correct thing to do next, is to perform a GET request to the new url, which is not what most people expect (Expecting the class to follow the Location with a new POST).

fsockopen doesn't follow this spec, cURL and Streams do, Upon receiving the redirection, fsockopen performs the exact same request against the new location, whereas, it should disregard the post fields (and the Content-length header) and perform a GET instead.",dd32
Next Release,23433,Custom background select needs a contextualized label,,I18N,3.5,normal,minor,3.6,defect (bug),new,has-patch,2013-02-09T16:55:23Z,2013-02-20T01:11:46Z,"In /themes.php?page=custom-background, the fixed/scroll selector uses the 'Attachment' label.

Problem is, that label name is also used for another type of attachment: files.

Ergo, translators might find themselves with an incorrect wording. In effect, the French translation displays ""Fichier attaché"" (attached file) instead of a more appropriate term.

I suggest turning the string into a contextualized one.

Another solution would be to change the wording altogether, for instance: ""Behaviour when scrolling"", with ""Scroll along"" and ""Keep in place"" as its options.

Hence, I submit both (hopefully correct) patches -- built against trunk for now, but the issue obviously exists in 3.5.",xibe
Next Release,24183,MediaElement.js i18n issues,,I18N,trunk,high,normal,3.6,defect (bug),new,has-patch,2013-04-24T22:54:17Z,2013-04-25T03:18:34Z,"As reported by dimadin in #23282:

> MedaElement.js has very poor i18n support that isn't compatible with one we use in !WordPress since it relies on browser's language to determine locale, and strings are hardcoded in it (see [https://github.com/johndyer/mediaelement/pull/627 pull] that introduced this).
> 
> I looked how to improve this and have it backward compatible and attached patch contains my proposal. Note that this shouldn't go straight to !WordPress since it contains changes to MedaElement.js too. I wanted to hear thoughts from others before submitting pull to MedaElement.js. When they add compatible support, we can patch !WordPress.",SergeyBiryukov
Next Release,23503,Post Formats: i18n issues,,I18N,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-02-18T21:09:13Z,2013-05-19T15:34:02Z,"1. Most of the time, we refer to the ""Standard"" post format with the appropriate context: [[BR]]
 http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/includes/class-wp-posts-list-table.php#L1013 [[BR]]
 http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/press-this.php#L480 [[BR]]
 http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/post.php#L5325

 In a couple of places, however, the context is missing: [[BR]]
 http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/includes/meta-boxes.php#L318 [[BR]]
 http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/options-writing.php#L90

2. ~~[23449] introduced Edit screen UI for post formats. There's now a ""Standard"" tab above the post title. In Russian, ""post"" is feminine and ""format"" is masculine, so seeing ""Standard"" adjective without the ""format"" word next to it is confusing. I guess the tab needs a separate context.~~ Fixed in [23843].

3. [23843] introduced a couple of issues:
 1. `ucfirst( sprintf( __( '%s Post' ), $slug ) )`: [[BR]]
  http://core.trac.wordpress.org/browser/trunk/wp-admin/edit-form-advanced.php?rev=23868#L186
  1. `'%s Post'` is not localizable, see [comment:ticket:17609:3 dd32's comment] in #17609.
  2. `ucfirst()` doesn't always work correctly for UTF-8 characters, it depends on PHP locale.
 We should use actual labels instead of just putting post format slugs into a generic string.
 1. i18n is missing in line 397: [[BR]]
 http://core.trac.wordpress.org/browser/trunk/wp-admin/edit-form-advanced.php?rev=23868#L397",SergeyBiryukov
Next Release,23907,Scandinavian ligatures transcribed wrong in remove_accents(),,I18N,trunk,normal,minor,3.6,defect (bug),new,has-patch,2013-03-30T08:52:56Z,2013-03-30T16:32:08Z,"remove_accents() is transcribing old scandinavian ligatures wrong: ÆØÅøå should be transcribed as 'Ae', 'Oe', 'Aa', 'oe' and 'aa' respectively.

Transcribation rules are the same in swedish, danish and norwegian. In trunk they are transcribed as 'AE', 'O', 'A', 'o', 'a'.

See #4739, #9591 for history.",dnusim
Next Release,22812,Tweak the media modal styles for longer strings in ru_RU,,I18N,3.5,normal,normal,3.6,defect (bug),new,has-patch,2012-12-07T15:38:16Z,2012-12-29T06:53:57Z,"1. In Attachment Display Settings, the Alignment dropdown is a bit off.
2. In Gallery settings, the Random checkbox is misaligned.

See the screenshots.",SergeyBiryukov
Next Release,23567,Duplicate entries in IIS tbex.xml,,IIS,3.4,normal,normal,3.6,defect (bug),new,has-patch,2013-02-20T17:39:15Z,2013-02-22T02:40:16Z,There are duplicate entries in the CodeComplete section of the IIS tbex.xml file. This duplicate code causes an assertion error in WebMatrix when new files are opened.,msopentech
Next Release,23533,WordPress doesn't recognize IIS 8.0 (Windows Server 2012) properly,,IIS,3.4,normal,major,3.6,defect (bug),new,has-patch,2013-02-19T16:24:46Z,2013-03-02T20:40:50Z,"WordPress 3.5.1 doesn't recognize IIS 8.0 due to an invalid check in wp-includes/vars.php.

line 99:

{{{
$is_iis7 = $is_IIS && (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7.') !== false);
}}}


Now WordPress, hosted on IIS 8.0, can't write a web.config for rewrites.

The check should be extended to include IIS 8.0, and preferably future verions. One more extended check to include IIS 8.0 only, and to patch this bug is:


{{{
$is_iis7 = $is_IIS && (strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/7.') || strpos($_SERVER['SERVER_SOFTWARE'], 'Microsoft-IIS/8.') !== false);
}}}
 
Kind regards,
Jan",JanR
Next Release,23642,wp_mail() returns true if sending failed,,Mail,3.2,normal,minor,3.6,defect (bug),reopened,has-patch,2013-02-28T15:54:38Z,2013-03-04T03:44:50Z,"Here: source:/trunk/wp-includes/pluggable.php@23507#L449

The code is:
{{{
	try {
		$phpmailer->Send();
	} catch ( phpmailerException $e ) {
		return false;
	}
	
		return true;
}}}
However, $phpmailer->Send() may return false without throwing an exception. A simple change fixes this like so:
{{{
	try {
		return $phpmailer->Send();
	} catch ( phpmailerException $e ) {
		return false;
	}
}}}",chmac
Next Release,23779,Can't insert large image if it's smaller than media setting but larger than theme setting,,Media,3.0,normal,normal,3.6,defect (bug),new,has-patch,2013-03-15T00:47:08Z,2013-04-10T14:06:27Z,"If you upload an image that is larger than $content_width but not larger than the ""large"" setting in settings->media, the option to insert a ""large"" image into the post isn't available even though the image is large enough.

It looks like it must use $content_width as the actual width of the large image that's inserted, and the large_size_w setting to decide whether to show that option or not.",aaroncampbell
Next Release,22985,Edit thumbnail image only - loses all sub sizes in attachment meta,markoheijnen,Media,3.5,high,critical,3.5.1,defect (bug),assigned,has-patch,2012-12-18T00:52:47Z,2013-02-14T20:04:58Z,"I have several additional image sizes in my theme. When I crop an image and save over only the thumbnail, all references to the various sub-sizes are lost and only the new thumbnail is referenced in _wp_attachment_metadata.

1. Add an image to the media library.
2. Output _wp_attachment_metadata.
3. Edit the image (crop).
4. Save only the thumbnail.
5. Output the relevant _wp_attachment_metadata.

This may be an issue with wp_save_image() not re-genarating subsizes from the original.
I believe this to be different from Ticket #19889  as it appears to remove references to default sizes from media settings screen.",lewismcarey
Next Release,23267,Encoding problem with displaying filenames,,Media,3.5,normal,normal,3.6,defect (bug),new,has-patch,2013-01-22T20:35:10Z,2013-01-23T10:01:02Z,"Reported here: #21217 (first point).

It was repaired, but probably only for older media stuff (pre 3.5). Tested with latest version and there are still problems with displaying filenames. Testing media filename: ""Žluťoučký kůň.png""

- File successfully uploaded as ""Žluťoučký-kůň.png"" (space replaced).

- But filename is displayed as ""luťoučký-kůň.png"".

- URL is ​http://domain/wp-content/uploads/2012/07/Žluťoučký-kůň.png (and file is also accessible on this URL without problem).

Filename is saved right in database, but wrong filename can be seen in Save metabox or in Media modal window.",pavelevap
Next Release,19889,Image Editor doesn't apply changes to custom image sizes,,Media,3.3.1,normal,normal,3.6,defect (bug),reopened,has-patch,2012-01-24T19:48:53Z,2013-04-11T00:31:55Z,"The built in image editor doesn't apply changes like cropping, rotation, etc. to image sizes added using add_image_size or similar methods.

This is because the code in image-edit.php is directly looking for the image sizes in the options table, which only valid for the built-in sizes, not for custom image sizes.

Specifically, in the wp_save_image function in image-edit.php, this code is incorrect:

{{{
$crop = $nocrop ? false : get_option(""{$size}_crop"");
$resized = image_make_intermediate_size($new_path, get_option(""{$size}_size_w""), get_option(""{$size}_size_h""), $crop );
}}}

The fix to this is to make the wp_save_image function aware of custom sizes in the $_wp_additional_image_sizes global, and to use the options data as a fallback (for the built in sizes).

Patch for trunk attached. Tested on trunk install with no obvious side effects. Patched version correctly creates the custom image sizes with the applied editing changes, and deletes them properly when the image is deleted in the admin. Meta data thus created looks correct as well.
",Otto42
Next Release,24134,Video Shortcode ignores sizes and aspect ratio,,Media,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-04-19T05:12:23Z,2013-04-24T20:40:12Z,"I think this may be related to #23955

Uploaded video and resized it:


{{{
[video width=""300"" height=""400"" mp4=""http://elfshot.org/wp-content/uploads/sites/3/2013/04/IMG_0328.mp4""][/video]
}}}

Looks fine in the post editor, it's got the right aspects yay.

Then on the live post, the placeholder HTML5 shows sideways (landscape) but when I click play, it shows as full sized to the content.

http://test.ipstenu.org/video-test.2013/ has the example on TwentyThirteen but it happens on all videos on all themes that I've tested. When I viewed source the video tag has the size of the content area, as do media elements.

At revision 24036.

",Ipstenu
Next Release,17262,wp_get_attachment_thumb_file is always false,,Media,3.0,normal,normal,3.6,defect (bug),new,has-patch,2011-04-27T18:36:19Z,2013-05-05T03:33:40Z,The issue is that on line 3863 we always search for `$imagedata['thumb']` and it never exists. Instead we have `$imagedata['thumbnail']`. This always exists.,lonnylot
Next Release,13822,Menu items that get unpublished still appear,nacin,Menus,3.0,normal,normal,3.6,defect (bug),reopened,has-patch,2010-06-10T16:30:12Z,2013-03-21T14:53:47Z,"We need to properly account for menu items linked to unpublished/pending post type objects.

My thought is they should probably be hidden from the frontend with an indication on the backend (like ""(Pending)"") that they are are unpublished/pending.

We need to properly handle private posts too.",nacin
Next Release,23681,jQuery 1.9 doesn't like leading whitespace from wp_ajax_add_menu_item,,Menus,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-03-04T03:27:30Z,2013-03-04T03:51:57Z,"jquery-migrate logs this message to the console when adding a new menu item:

{{{
JQMIGRATE: $(html) HTML strings must start with '<' character
}}}

Walker_Nav_Menu_Edit returns a <li> indented with two tabs because there's inline HTML in that class and it's indented. jQuery 1.9 rejects HTML strings with leading whitespace [http://blog.jquery.com/2013/01/31/jquery-migrate-1-1-0-released/ for security reasons].

(Note: this is probably why jquery-migrate is calling parseHTML instead of using a regex in #23055)

This patch uses $.parseHTML on the HTML fragment instead of passing it directly to $(). As it's written, $.parseHTML will strip out any scripts in the fragment for security reasons. If you think a plugin might include a script for some reason, the call should be changed to $.parseHTML(menuMarkup, document, true).",csixty4
Next Release,18186,Default registration assumptions in WP Multisite,,Multisite,3.2.1,normal,normal,3.6,defect (bug),new,has-patch,2011-07-20T18:43:06Z,2012-12-29T16:25:07Z,"By default, when you create a new site, it does not set the ""registration"" site meta key.  However, in wp-signup.php by default it assumes it to ""all"" and allows users and sites to be created (line 381): 

{{{
// Main
$active_signup = get_site_option( 'registration' );
if ( !$active_signup )
        $active_signup = 'all';
}}}

However, in the network settings page, by default it sets it to none (line 75):

{{{
if ( !get_site_option( 'registration' ) )
        update_site_option( 'registration', 'none' );
}}}

With the new simple flow from a standalone to multi-site installation, new blogs should likely have it set to none by default or it should be an option during set up.

Props to leenewton for discovery.",terryjsmith
Next Release,22160,Etags served by ms-files.php not specific enough,,Multisite,3.3.2,normal,normal,3.6,defect (bug),new,has-patch,2012-10-10T23:15:01Z,2012-12-29T22:23:12Z,"Today I was tracking an Etag issue we had where different versions of images uploaded to wordpress had the same etags. I first looked at apache and reconfigured it to serve filesize mtime etags. To no avail.
When investigating further i discovered that uploaded files get an etag from ms-files.php (line 57)

{{{
$etag = '""' . md5( $last_modified ) . '""';
}}}

which to my humble opinion should be something like:

{{{
$etag = '""' . md5( $last_modified . filesize($file)) . '""';
}}}

that way, images of different formats, created at upload time, which share the same mtime on a fast machine still get different etags.",xiffy
Next Release,23555,Fatal error when sunrise added,,Multisite,3.5.1,low,normal,3.5.2,defect (bug),new,has-patch,2013-02-20T09:18:07Z,2013-03-18T13:46:48Z,"Hi,

I have installed a WordPress multisite subdomains on a server. I have added a sunrise.php file on the wp-content folder.

In this file there is a $wpdb->prepare without the needed argument at the end. WordPress throw a _doing_it_wrong() but this launch a Fatal error : 

{{{
Fatal error: Call to undefined function __() in /home/site/public_html/wp-includes/functions.php
}}}


{{{

Call Stack:
    0.0001     335660   1. {main}() /home/site/public_html/wp-admin/network/settings.php:0
    0.0001     335964   2. require_once('/home/site/public_html/wp-admin/network/admin.php') /home/site/public_html/wp-admin/network/settings.php:11
    0.0001     336260   3. require_once('/home/site/public_html/wp-admin/admin.php') /home/site/public_html/wp-admin/network/admin.php:13
    0.0002     336564   4. require_once('/home/site/public_html/wp-load.php') /home/site/public_html/wp-admin/admin.php:30
    0.0002     337136   5. require_once('/home/site/public_html/wp-config.php') /home/site/public_html/wp-load.php:29
    0.0002     337500   6. require('/home/site/public_html/wp-config-dev.php') /home/site/public_html/wp-config.php:6
    0.0003     339004   7. require_once('/home/site/public_html/wp-settings.php') /home/site/public_html/wp-config-dev.php:109
    0.0037     791980   8. require('/home/site/public_html/wp-includes/ms-settings.php') /home/site/public_html/wp-settings.php:87
    0.0038     793784   9. include_once('/home/site/public_html/wp-content/sunrise.php') /home/site/public_html/wp-includes/ms-settings.php:18
    0.0039     795552  10. wpdb->prepare() /home/site/public_html/wp-content/sunrise.php:41
    0.0039     795872  11. _doing_it_wrong() /home/site/public_html/wp-includes/wp-db.php:995
}}}

Is this normal that the translations function are not available ?",Rahe
Next Release,14913,MS Requires Client Information to Load Files,filosofo,Multisite,3.1,normal,normal,3.6,defect (bug),new,has-patch,2010-09-20T20:55:36Z,2013-01-10T05:42:36Z,"When installed as multi-site, WP in `ms-settings.php` tries to parse the Host header request to determine which domain is requested.  If none, it prints a redirecting Location header and exits.

This is problematic if you are loading WP but not using a client that sends headers to the server; for example, if you have another app on the same server that tries to include `wp-load.php` directly.

Example:

{{{
<?php

include '/path/to/wp/wp-load.php';

// let's do some stuff with WP programatically...
}}}

The above aborts in MS as it tries to redirect the nonexistent requesting client to the main blog's front page.

The problems I see with this:
 * `wp-load.php` is supposed to provide a means of circumventing the template printing, so it shouldn't assume a typical browser client is making the request
 * `wp-load.php` ''can'' be used this way on non-MS setups
 * In general, it's a bad jumble of MVC.

Currently I'm not sure what the best route is to fix this, but I will try to come back later with a solution.",filosofo
Next Release,23418,banned names / illegal_names not being banned,,Multisite,3.5.1,normal,normal,3.5.2,defect (bug),new,has-patch,2013-02-08T04:41:52Z,2013-05-10T16:59:56Z,"new site registrations are ignoring the banned names i add to the list in network options.

out of the gate the default banned names function works and the system does not let me register any of those default names. the illegal_names value in the wp_sitemeta table is populated with: '''''a:7:{i:0;s:3:""www"";i:1;s:3:""web"";i:2;s:4:""root"";i:3;s:5:""admin"";i:4;s:4:""main"";i:5;s:6:""invite"";i:6;s:13:""administrator"";}'''''

when i add '''''seven eight nine''''' to the banned names field of the network setting page and save the page, the banned names field is populated with '''''www web root admin main invite administrator seven eight nine''''', just how you would expect. but now the illegal_names value in the db is '''''a:1:{i:0;s:61:""www web root admin main invite administrator seven eight nine"";}'''''

notice how the serialized array only has one string now instead of the original multiple strings. once it is saved like this users can register any site name including defaults like admin and root plus the new names i added to the list.

my setup: two fresh multisite 3.5.1 installs. one is on a vps and the other on a local xampp install. no plugins activated nor installed. using twenty twelve theme. these are test installs.",dohman
Next Release,4463,Strange paging links,ryan,Permalinks,2.3,normal,normal,3.6,defect (bug),new,has-patch,2007-06-14T03:00:49Z,2013-04-12T23:22:37Z,"Ryan:

{{{
In trunk, with cruft free links, I get stuff like this:

http://foo.blog/page/3/?s=test

That's not right. Maybe we should revert back to pre [5454] to fix the trunk problems.
}}}

[5454] was the commit for #3930

If at all possible, I'd like to work with the new code.",markjaquith
Next Release,10840,Plugin upgrade sometimes shows a scrollbar,,Plugins,2.8.4,low,normal,3.6,defect (bug),new,has-patch,2009-09-24T10:34:05Z,2013-04-10T07:58:54Z,"Please see attached screenshot, made in Safari 4.0.3 on OS X.

The iframe only contains the ""Plugin reactivated successfully"" line.

Increasing the window's height or width does not make it disappear, or even evolve.",xibe
Next Release,18857,get_plugin_page_hookname uses menu_title to construct subpage load-hooks,,Plugins,3.1.4,normal,normal,3.6,defect (bug),new,has-patch,2011-10-04T15:16:33Z,2013-05-07T22:29:47Z,"The load-hook for PluginSubPages isn't working anymore if the PluginPage is translated.

The reason seems to be that the get_plugin_page_hookname function uses the menu_title instead of the menu_slug to create the hookname.

I attached a possible fix.",apocalip
Next Release,15907,inconsistent handling of plugin_folder in get_plugins(),,Plugins,,normal,normal,3.6,defect (bug),new,has-patch,2010-12-20T03:35:16Z,2013-05-05T00:25:18Z,"If you pass the name of a folder to get_plugins, it needs to have a leading slash which then stores the plugin list from that folder in {{{$wp_plugins['/folder-name']}}}. 

Secondly, the plugin file/path does not include folder-name passed to get_plugins, so the returned data has to have the {{{'folder-name/'}}} added to the key of each plugin's information before it can be used throughout WP. The code I'm currently using to work around the issue is

{{{
			$my_plugins = get_plugins( '/extra' );
			$extra = array();
			if( !empty( $my_plugins ) ) {
				foreach( $my_plugins as $k => $v )
					$extra['extra/' . $k] = $v;
			}
}}}

related #15906",wpmuguru
Next Release,24062,Force gallery state for gallery post format,markjaquith,Post Formats,,normal,normal,3.6,defect (bug),reopened,has-patch,2013-04-12T17:10:57Z,2013-05-19T00:06:51Z,"One of the items uncovered with the [http://make.wordpress.org/ui/2013/04/09/post-formats-usability-test-round-4/ last round of usability tests] was that users don't know that they are not adding a gallery.

When the gallery post format is selected, and the user clicks the ""Add Media"" button, we should take them to the gallery section of the media modal.",lessbloat
Next Release,24316,Post Format Selector Icons Display One-per-line in IE7,,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-11T03:42:00Z,2013-05-14T20:41:17Z,"IE 7 doesn't like max-width or min-width. By explicitly specifying the {{{width}}} property, the icons will display as intended instead of... horrifically. ",celloexpressions
Next Release,24235,Post Formats: Externally linked audio files don't show in Audio Posts,,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-01T01:45:03Z,2013-05-15T20:53:59Z,"I'm not 100% sure this is Twenty Thirteen, but it works on Twenty Twelve.

On Twenty Thirteen, instead of embedding the audio, it shows the shortcode ''only'' if the audio is external. If it's loaded from inside the media library, it's fine.

See here: http://test.ipstenu.org/audio-test.2013/
",ipstenu
Next Release,24355,"Post Formats: any allowed file type can be uploaded to an audio, video or image post",,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-17T16:09:34Z,2013-05-18T03:31:47Z,"To reproduce:

1. Create a new post, select the video post format
1. Hit Select Video from Media Library
1. Choose Upload Files and upload an image
1. Hit Select Video

An image is inserted instead of a video, plus after saving, the dimensions constraints are not applied to the image because it's a video post format.",kovshenin
Next Release,24270,Post Formats: get_post_gallery() can return an array when asked for a string,,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-06T15:02:54Z,2013-05-06T15:12:36Z,"If the requested post is not found or does not contain a gallery shortcode, `get_post_gallery` returns an empty array, regardless of what the `$html` argument is set to.",kovshenin
Next Release,23967,Post formats: move color styling to color-*.css,,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-04-06T21:59:54Z,2013-05-13T18:48:35Z,"As the title, there are colors and backgrounds currently in wp-admin.css that should be in the colors css.",azaozz
Next Release,24288,Timestamps in chat formats should have IDs,,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-08T20:32:35Z,2013-05-17T21:59:58Z,"If we add IDs to the time elements in the chat post format, and possibly wrap them in <a> tags.  This would let you link to a specific line in the chat, like our IRC logs.",aaroncampbell
Next Release,24360,Unable to use supports=>post-formats without support for thumbnail,,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-18T13:44:52Z,2013-05-19T15:09:52Z,in custom post type you cant choose post-formats capability whithout using thumbnail. Post formats UI shows but after changing format it redirects me to normal posts not the custom one.,zabatonni
Next Release,24301,Unescaped user input in image preview,,Post Formats,trunk,high,major,3.6,defect (bug),new,has-patch,2013-05-09T23:45:53Z,2013-05-15T20:15:39Z,"On line 36 of `wp-admin/includes/post-formats.php` as of r24227, user inputted data is printed to the screen without being escaped. The data is the fourth fallback for the image data.

To recreate the issue:

1. Go to Posts > Add New.
2. Click the Image post format icon.
3. Click ""use an image URL or HTML"".
4. Enter `<img src=""http://placehold.it/200x200 />`, being sure to omit the last `""`.
5. Enter a title.
6. Save the post.
7. Things are messed up.

The problem is that on line 36 of `wp-admin/includes/post-formats.php` a value is printed directly to the screen without being escaped. I am not sure how this should be fixed as not all mangled HTML can be repaired; however, I do not think that unescaped user input should be printed to the screen like this. My example is annoying, but harmless. This seems like something that is exploitable.",tollmanz
Next Release,24341,the_post_format_audio() and the_post_format_video() don't work with [embed],,Post Formats,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-15T01:14:47Z,2013-05-15T22:13:10Z,"This embed code in a video post content isn't picked up by `the_post_format_video()`.

{{{
[embed]http://wordpress.tv/2009/03/16/anatomy-of-a-wordpress-theme-exploring-the-files-behind-your-theme/[/embed]
}}}

This embed code in an audio post content isn't picked up by `the_post_format_audio()`.

{{{
[embed]http://soundcloud.com/dubstep/on-my-way-by-party-ghost[/embed]
}}}

However, both of these will work without the `[embed]` shortcode.",greenshady
Next Release,16956,Comments Being Pulled from Non-Existent Post Types,,Post Types,3.1,normal,normal,3.6,defect (bug),new,has-patch,2011-03-24T01:30:32Z,2013-05-10T17:25:46Z,"Originally on: #10461

I'm running standard LAMP on the latest trunk.

Just viewing the dashboard with no plugins activated:
{{{
Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 918 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 918 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 918 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 918 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 918 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 918 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 919 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 Notice: Trying to get property of non-object in /Users/grok/Projects/Local Development/wordpress/trunk/wp-includes/capabilities.php on line 922 
}}}

It's not recognizing ""$post_type->cap"" as valid.

And...here's why - I added this (/wp-includes/capabilities.php):
{{{
 918 echo ""POST TYPE: Y U NO OBJECT?\n"";
 919 var_dump($post_type);
}}}

And got:
{{{
POST TYPE: Y U NO OBJECT?
NULL
}}}

So in this context...the post type is null and the code was not expecting that.

Opening the actual $post object:
{{{
stdClass Object
(
    [ID] => 60
    [post_author] => 1
    [post_date] => 2011-01-28 19:46:23
    [post_date_gmt] => 2011-01-28 19:46:23
    [post_content] => CONTENT!
    [post_title] => I have it all!
    [post_excerpt] => 
    [post_status] => publish
    [comment_status] => open
    [ping_status] => open
    [post_password] => 
    [post_name] => i-have-it-all
    [to_ping] => 
    [pinged] => 
    [post_modified] => 2011-01-28 19:46:28
    [post_modified_gmt] => 2011-01-28 19:46:28
    [post_content_filtered] => 
    [post_parent] => 0
    [guid] => http://dev.wordpress.local/?post_type=staff_listing&p=60
    [menu_order] => 0
    [post_type] => staff_listing
    [post_mime_type] => 
    [comment_count] => 6
    [ancestors] => Array
        (
        )

    [filter] => raw
)
}}}

I think the problem might be custom post types or custom taxonomies...

So my custom post type in another plugin is creating: ""?post_type=staff_listing"".
And this post does show ""[post_type] => staff_listing"". BUT the plugin that had created these comments...is de-activated.

Activating the plugin resolves this issue.

So, whats a viable solution? Telling a developer to clean up after the plugin (removing content just because of deactivation), OR having WordPress not pull data (e.g. comments) that are assigned to other data (e.g. post types) that don't exist?

Old Code: Give me all comments.

New Code: Give me all comments that are tied to existing objects.",sterlo
Next Release,20462,Shouldn't have to pass 'post_category' to wp_update_post(),,Post Types,,low,minor,3.6,defect (bug),new,has-patch,2012-04-16T23:35:53Z,2013-01-08T07:00:21Z,"Custom post types don't usually have the 'post_category' field set, which means that wp_update_post() throws an Undefined Index notice when we don't pass it explicitly.",scribu
Next Release,16843,wp_unique_post_slug() doesn't check pagination base when CPT has archive,,Post Types,3.1,normal,minor,3.6,defect (bug),new,has-patch,2011-03-13T06:22:22Z,2013-01-14T00:12:14Z,Title says it all.,scribu
Next Release,19744,Custom post types doesn't receive pingbacks - url_to_postid() doesn't recognize CPT,wonderboymusic*,Query,3.3.1,normal,normal,3.6,defect (bug),accepted,has-patch,2012-01-05T00:22:45Z,2013-05-12T02:45:25Z,"It seams like custom post type doesn't receive pingbacks. The XML-RPC server doesn't recognize the URL. The url_to_postid() function in rewrite.php finds a match, but the query is all wrong.

Example, if I set up custom post type with no ""rewrite"" in the arguments. 
The URL to a custom post type would be: mydomain.com/custom_post_type_name/post-slug/

The function url_to_postid() finds a match on: 
{{{
custom_post_type_name/([^/]+)(/[0-9]+)?/?$
}}}
The query is: 
{{{
custom_post_type_name=$matches[1]&page=$matches[2]
}}}

But the query string (after WP_MatchesMapRegexp::apply()) looks like this:
{{{
custom_post_type_name=post-slug&page=
}}}

And the array that is sent into WP_Query looks like this:
{{{
Array
(
    [tips_and_trix] => finns-sjukt-manga-tips-har
    [page] => 
)
}}}

Which makes url_to_postid() return 0; And XML-RCP server returns IXR_Error(33, ...)",feedmeastraycat
Next Release,22096,IN meta_query with empty array as meta_value results in invalid database query,wonderboymusic*,Query,3.1.3,normal,normal,3.6,defect (bug),accepted,has-patch,2012-10-04T13:56:54Z,2013-04-29T09:06:36Z,"If you do an {{{IN}}} meta_query and pass in an empty array to the {{{value}}}, the {{{INNER JOIN}}} clause for the postmeta table isn't added, which results in an invalid query:

{{{
new WP_Query( array(
       'meta_query' => array( array( 'key' => 'abc', 'value' => array(), 'compare' => 'IN' ) )
) );
}}}

This results in an error like so:

{{{
WordPress database error: [Unknown column 'wp_postmeta.meta_key' in 'where clause']
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') AND (wp_postmeta.meta_key = 'abc' ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 5
}}}",batmoo
Next Release,23268,NOT EXISTS meta query with OR relation,,Query,3.5,normal,normal,3.6,defect (bug),new,has-patch,2013-01-22T21:14:14Z,2013-05-10T02:10:22Z,"
With this meta query ( which is trying to exclude posts that have the  app_exclude checkbox checked, without excluding posts that don't have it set at all )

{{{
                 $query['meta_query'] = array(
                    'relation' => 'OR',
                    array(
                        'key' => 'app_exclude',
                        'compare' => 'NOT EXISTS'
                    ),
                    array(
                        'key' => 'app_exclude',
                        'compare' => '!=',
                        'value' => '1'
                    ),
                );
}}}

I'd expect / hope to get this sql. 

{{{
SELECT SQL_CALC_FOUND_ROWS
    wp_posts.ID
FROM
    wp_posts
        LEFT JOIN
    wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = 'app_exclude')
        INNER JOIN
    wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id)
WHERE
    1 = 1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') AND (wp_postmeta.post_id IS NULL 
    OR (mt1.meta_key = 'app_exclude' AND CAST(mt1.meta_value AS CHAR) != '1'))
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 0 , 6

}}}

but I get this SQL 

{{{
SELECT SQL_CALC_FOUND_ROWS
    wp_posts.ID
FROM
    wp_posts
        LEFT JOIN
    wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id AND wp_postmeta.meta_key = 'app_exclude')
        INNER JOIN
    wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id)
WHERE
    1 = 1 AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') 
    AND (wp_postmeta.post_id IS NULL AND (mt1.meta_key = 'app_exclude' AND CAST(mt1.meta_value AS CHAR) != '1'))
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT 0 , 6

}}}


Note the... (wp_postmeta.post_id IS NULL '''AND''' (mt1.meta_key = 'app_exclude' AND CAST(mt1.meta_value AS CHAR) != '1'))",timfield
Next Release,23336,"Sticky Posts lack sanity bounding. If used too much, can severely degrade performance.",,Query,,normal,normal,3.6,defect (bug),new,has-patch,2013-01-31T05:09:37Z,2013-04-16T15:06:24Z,"Came across an issue where a site was using sticky posts for a slider on the front page. The rest of the front page used custom taxonomy queries. As such, they'd mark items as sticky, have the slider grab the first three. Over years, they accumulated thousands of sticky posts, which, as you can imagine, made the front page of their site absurdly slow, as it was querying those thousands of posts every time.

Should we establish some sort of sanity limit here, to keep people from shooting themselves in the foot? I found this a REALLY hard issue to diagnose. Even with debug bar, there is no indication that sticky posts are being queried. There's just a giant WP_Query call that does a giant `IN()` query.

Something like a limit of 100 with FIFO would keep things from getting too crazy, without restricting people too much. If you have a need for more than that, you need to be using a taxonomy query.",markjaquith
Next Release,16746,post paginating <!--nextpage--> does not work,nacin,Query,,normal,normal,3.6,defect (bug),reopened,has-patch,2011-03-04T12:01:31Z,2013-03-13T08:55:57Z,"When <!--nextpage--> is placed at the very beginning of the post content (first page contains zero-length content) then pagination does not work at all.

Example post content for reproduction:

{{{
<!--nextpage-->
page2
<!--nextpage-->
page3
}}}

This will result in a single page, not in a three or two page setup.

It's related to strpos returning 0 which is casted into false when if'ed.

Related: #16745",hakre
Next Release,24326,Admin RTL bugs,,RTL,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-12T18:22:37Z,2013-05-17T16:30:45Z,"Hi, This a list of some RTL style bugs I found it today in the beta 3 update.",alex-ye
Next Release,22935,Horizontal scrollbar in RTL media modal,,RTL,3.5,normal,normal,3.6,defect (bug),new,has-patch,2012-12-14T11:31:22Z,2013-05-11T16:30:59Z,"The new media tab needs a few RTL adjustments on the UI, check out the screenshot.",ramiy
Next Release,22897,RTL on plugin information tab,,RTL,3.5,normal,normal,3.6,defect (bug),new,has-patch,2012-12-12T20:26:28Z,2012-12-15T11:51:32Z,"The plugin information tab needs a few adjustments RTL adjustments, check out the screenshot.",ramiy
Next Release,16215,Post Revision history displays the incorrect author,westi,Revisions,2.6,normal,normal,3.6,defect (bug),reopened,has-patch,2011-01-13T06:52:06Z,2013-05-09T10:14:13Z,"Steps to reproduce:

1. Create and Publish a new post as user admin.
2. Edit that post and Update as user mdawaffe.
3. View revision history for that post.  Note that the revisions are attributed to the wrong authors.

The revision's post_author is currently being set to whoever edited the post away from the state represented by that revision row. It should be set to the person who edited the post *to* the state represented by that row.

This bug has been around since the introduction of post revisions.

To fix for future posts, I can think of two options.

1. We should be able to pull the correct author for a new revision row from the _edit_lock/_edit_last post meta of the post (as long as we grab that before we update the post row).

2. Currently, when a post is updated, revisions first grabs a copy of the current state of the post, stores it as a revision, then updates the post row.  To fix this bug, we could instead update the post row first then store a copy of that new state as a revision.  That would mean the most recent revision for all posts would be a duplicate of the actual post.

Option 2 would be cleaner code, option 1 would be cleaner data.

To fix for existing posts, we need to go through each post and fix each revision.  That's incredibly expensive to do on upgrade, so I suggest doing it per post on the fly when the post edit screen or post revisions screen is loaded.

If we fix on the fly, we have to be able to keep track of which posts/revisions have been fixed and which haven't.  We could track that with:

1. An option that is set on upgrade with a timestamp.  Compare post_modified to that timestamp.  This seems fragile to me since I bet there are plugins that override post_modifed.
2. Post meta.  Easy, but adds one post meta per post just to fix a lame bug.
3. Bump the menu_order of each fixed revision row from 0 -> 1.  (A version number for the revisioning system :)).  Hacky.

I like 3: menu_order.

We could also leave everything as is, allow the data to be wrong, and ""fix"" it on display or even in get_post().

Aside: While we're in there, we may want to ""fix"" revisions' post_modified columns.  Currently, post_modified is identical to post_date, which is the time the post was put into the state represented by the revision.  We could make post_modified the time the post was edited away from the state represented by the revision.",mdawaffe
Next Release,20299,"Preview changes on a published post makes all post meta ""live""",,Revisions,3.3.1,normal,major,3.6,defect (bug),new,has-patch,2012-03-25T02:02:16Z,2013-04-09T22:06:08Z,"Here's the use case. Client wants to preview an update to a published post (as the Preview Changes button correctly implies they can). This post has some important post meta that impacts that preview.

Here's the problem - because post meta is not saved to a revision (it looks for the ""real"" post), when the preview button is pressed, save_post runs, and saves the meta data to the real, published post, even though the user only intends to preview the change.

Without realizing it, the user has updated the published version. That can be prevented by not saving post meta to revisions (when using custom save_post hooks), but then there's no non-hacky way to actually preview the full changes.

I believe this bug has been present for a while, we just rarely use the Preview function on published posts, and when we do, probably never tested it with critical post meta.",jakemgold
Next Release,24346,Revisions reloading all comparisons in two handle mode instead of just available comparisons,,Revisions,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-15T19:41:23Z,2013-05-16T22:09:05Z,"as  ahoereth pointed out, see [http://www.screenr.com/vAI7 screencast], all comparisons were reloading after moving one handle; instead, only possible positions for the opposite handle need to be reloaded. 
",adamsilverstein
Next Release,23587,url_to_postid() needs to use # or @ for preg_match start/end character,,Rewrite Rules,1.5.2,normal,normal,3.6,defect (bug),new,has-patch,2013-02-22T19:10:21Z,2013-03-02T21:54:16Z,"[source:/tags/3.5.1/wp-includes/rewrite.php@23479#L344 url_to_postid()] uses ! for the start/end characters of regular expressions, which doesn't allow you to use expressions containing `!`, like `(?!negativelookahead)`.

The solution is to use `preg_match(""#^$match#"", $request_match, $matches)` or `preg_match(""@^$match@"", $request_match, $matches)`


See also: #7486 and [source:/tags/3.5.1/wp-includes/class-wp.php#L204 WP::parse_request()]",coreygilmore
Next Release,23226,Always use meta caps directly instead of going through the post_type_object->caps array,nacin,Role/Capability,,normal,normal,3.6,defect (bug),assigned,has-patch,2013-01-17T17:14:42Z,2013-02-19T02:53:36Z,"When using post-related meta caps in core, we should use their meta cap name instead of manually digging into the post object looking for the cap.

e.g.

Do this:

{{{
if ( ! current_user_can( 'edit_post', $post_id ) ) {
  // ...
}
}}}

Instead of this:

{{{
$post_type = get_post_type_object( get_post_type( $post_id ) );
if ( ! current_user_can( $post_type->cap->edit_post, $post_id ) ) {
  // ...
}
}}}

Our meta caps resolve custom caps for the meta caps (if someone has been foolish enough to use them), and we should be consistent about doing it that way so people know that's the right way to do it.",markjaquith
Next Release,14578,"Default User Role isn't checked against defined roles, causing unexpected resets to Administrator",garyc40,Role/Capability,3.0.1,normal,major,3.6,defect (bug),assigned,has-patch,2010-08-10T10:00:29Z,2013-01-13T23:00:20Z,"Take these steps:

1. Activate a plugin that creates role on activation. For example, it calls ""add_role( 'photo_uploader', 'Photo Uploader', array( 'read') );""[[BR]]
2. In General Settings, set the Default User Role to this new role, 'Photo Uploader'.[[BR]]
3. Deactivate the plugin, removing the roles: ""remove_role( 'photo_uploader');""[[BR]]
4. In General Settings, the Default User Role now displays 'Administrator'. (In the database, it still says 'photo_uploader'.)[[BR]]
5. When creating a new user (as admin), the role dropdown-box now displays 'Administrator' as role for this new user. This new user _will_ have role 'Administrator' if an unsuspecting admin does not explicitly alter the role in the dropdown-box.[[BR]]

This way, an unsuspecting adminstrator might accidentally create new admins for his blog.

I have also tested this for new users registering themselves. Fortunately, they are assigned the role 'None', not 'Administrator'.

Greetings,

Ivo van der Linden[[BR]]
(employee of LaQuSo @ Eindhoven University of Technology)",Ivolution
Next Release,23798,Audio Shortcode: Fallback link gets cropped by fixed-height container.,,Shortcodes,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-03-16T23:26:37Z,2013-04-15T11:39:50Z,"The ""Download File"" fallback for the audio shortcode is hard to read in all of my tests. Here are some screenshots:
 
 * [http://download.mfields.org/screenshot/2013-03-16_1615.png Twenty Ten]
 * [http://download.mfields.org/screenshot/2013-03-16_1614.png Twenty Eleven]
 * [http://download.mfields.org/screenshot/2013-03-16_1601.png Blog Simple]
 * [http://download.mfields.org/screenshot/2013-03-16_1612.png Adventure Journal]

I tested with a WMA file. It appears that the {{{.me-cannotplay}}} element is given a height greater than {{{.wp-audio-shortcode}}}. I've observed this in Both Chrome and Firefox.

A possible solution is to display a simple text link in a paragraph that would inherit style already provided by the theme. This would also ensure that the text is always readable in cases where the user's fontsize is bumped to a large value which would be cut-off by the hardcoded 30px height of {{{.wp-audio-shortcode}}}.",mfields
Next Release,15264,Deleting a term shared across taxonomies deletes all associated nav menus.,garyc40,Taxonomy,3.0.1,normal,major,3.6,defect (bug),assigned,has-patch,2010-10-31T08:01:32Z,2013-01-12T05:44:21Z,"Using other taxonomies since WP 2.3 in [http://wordpress.org/extend/plugins/xili-dictionary/ plugin xili-dictionary] , I just discover that now (since WP. 3.0) when deleting a term of his taxonomy, ''a menu item can disappear''.

'''In which conditions ?''' 

When the term (i.e. news) is shared by taxonomy category and the plugin taxonomy named dictionary ?

After deep tests (thanks to the night when time changes from summer to winter time), I can also reproduce it in current conditions : when a term is shared between taxonomies category and post_tag : If you delete the tag (i.e my test), if a category 'my test' exists and was active inside a navigation menu : the nav menu item disappear (unpleasant).

The cause of this unexpected erasing, was the action hook ''delete_term'' at end of '''wp_delete_term''' function and precisely the default filter ''_wp_delete_tax_menu_item''.
The add_action in default-filter.php (line 233) don't pass the 3 parameters and the function (menu-nav.php line 700) don't verify if it is possible to delete the menu item (as well done for term in other taxonomies in wp_delete_term itself) by testing the params and the taxonomy of the menu item content.

Today workaround in plugins using new taxonomies : remove filter before deleting a term on concerned taxonomies and add it after. 
Hope that explanations were explicit.

Best regards
",michelwppi
Next Release,15919,wp_count_terms() hide_empty not working,markjaquith*,Taxonomy,,high,major,3.6,defect (bug),accepted,has-patch,2010-12-20T17:13:46Z,2013-04-14T01:43:06Z,"For tax category, `wp_count_terms( 'category', array( 'hide_empty' => true ) )` returns all category and doesn't hide category with post count 0. Instead need to use `wp_count_terms( 'category', array( 'hide_empty' => true, 'hierarchical' => false ) )`.

Since hide_empty=false is the default args, `wp_count_terms()` should set hierarchical=false by default too.",zeo
Next Release,21213,Underscores get stripped out in $type ( get_query_template() ),,Template,2.5,normal,normal,3.6,defect (bug),new,has-patch,2012-07-11T05:29:37Z,2013-05-10T13:21:59Z,"What happens is:

{{{
$type = preg_replace( '|[^a-z0-9-]+|', '', $type );
}}}

strips underscore. Effectively, incoming ""front_page"" becomes frontpage, which leads to not working (but documented) hook front_page_template.

I tested this on: nginx 1.2.1/php-fpm 5.4.3 (homebrew macos) and nginx 1.0/php-fpm 5.3.3 with the latest revision ATM

The fix is as simple as 
{{{
$type = preg_replace( '|[^a-z0-9-_]+|', '', $type );
}}}

Patch is attached.",rinatkhaziev
Next Release,18614,post_type_archive_title doesn't work when tax_query is added to wp_query,,Template,3.2,normal,normal,3.6,defect (bug),reopened,has-patch,2011-09-07T17:52:04Z,2013-03-30T21:55:25Z,"post_type_archive_title( ) gets called by wp_title( ) on Custom Post Type archive pages

To get the data for the post type object,  post_type_archive_title( ) calls get_queried_object( ). This is problematic. If the query has been altered in any way (such as adding a tax_query in pre_get_posts filter), get_queried_object( ) will probably return a term, not a post type object.

Hence, accessing $post_type_obj->labels will fail and their will be no title returned

{{{
//old potentially broken way
$post_type_obj = get_queried_object();

// new doesn't break way
$post_type_obj = get_post_type_object( get_post_type() );
}}}",wonderboymusic
Next Release,23447,"Explanation for ""parent"" dropdown missing for hierarchical custom taxonomies on edit tags admin screen",,Text Changes,3.0,normal,normal,3.6,defect (bug),new,has-patch,2013-02-11T11:49:16Z,2013-02-19T13:48:01Z,"The ""parent"" dropdown/select field only gets displayed for hierarchical taxonomies. The explanation still only gets displayed for the ""category"" taxonomy.",F J Kaiser
Next Release,15801,Network Admin: Deactivated / Deleted inconsistency,PeteMall,Text Changes,3.1,normal,normal,3.6,defect (bug),assigned,has-patch,2010-12-13T18:12:54Z,2013-05-05T00:18:03Z,"Under the Sites screen, there are distinct inline links for Deactivate and Delete. However, when a site is deactivated, it is referred to as deleted in:

* Sites screen inline status

* Edit Site screen attributes section

* Error page for non-admins visiting the site",kawauso
Next Release,23025,Review and update readme.html,,Text Changes,,normal,normal,3.6,defect (bug),new,has-patch,2012-12-20T18:20:40Z,2013-04-16T02:45:00Z,"While this should likely be done more toward the middle or end of the cycle, let's not forget to take a good look at readme.html and its contents.",helen
Next Release,21670,ERROR: The themes directory is either empty or doesn’t exist. Please check your installation.,nacin*,Themes,,normal,minor,3.6,defect (bug),accepted,has-patch,2012-08-23T17:14:38Z,2012-12-23T05:58:53Z,"In multi-site mode, if there are no themes enabled for a particular site and no network enabled themes, that site's dashboard will report the error

'''ERROR: The themes directory is either empty or doesn’t exist. Please check your installation.'''

Ov course, this isn't entirely accurate. The themes directory may not be empty, but the problem is that no themes are enabled. The wording should probably be updated to reflect this.",pathawks
Next Release,24223,Error message when updating theme refers to 'plugin'.,,Themes,3.3,normal,normal,3.6,defect (bug),new,has-patch,2013-04-29T12:48:46Z,2013-04-30T15:56:25Z,"When updating a theme, the error message given when the theme package is broken refers to 'plugin' rather than 'theme':
   An error occurred while updating Web Minimalist 200901: The package could not be installed. The plugin contains no files..

There's also an extra full stop at the end of the message.",araucaria
Next Release,23984,Thickbox top margin,,Themes,2.8,normal,minor,3.6,defect (bug),new,has-patch,2013-04-08T07:54:55Z,2013-05-08T00:45:01Z,"The ""theme update details"" popup looks funky, the thickbox titlebar is hidden behind WP's adminbar: http://cl.ly/image/2m27131t3508",tillkruess
Next Release,24169,WP_Customize_Manager loads the current user too early,,Themes,3.4,normal,major,3.6,defect (bug),new,has-patch,2013-04-23T21:21:03Z,2013-04-24T17:55:17Z,"When previewing a theme, neither the locale nor the functions.php of either parent/child themes have had the opportunity to load ahead of the current user. This causes theme previews to load without translations in multisite setups where the user chooses their own language, and also means any theme that modifies the current user via actions or filters never has the chance to hook in in time.

The problem is introduced when WP_Customize_Manager prematurely calls is_user_logged_in() and current_user_can() before $wp->init() has fired, on the 'setup_theme' action.

From what I can tell, these specific checks can be moved into a new method, hooked to init, without any consequence. They are only responsible for maybe calling wp_die() where appropriate, meaning any past or subsequent actions or execution are irrelevant anyways.

Patch attached fixes this issue by adding an init() method to the WP_Customize_Manager class, and moves the user checks into this method.",johnjamesjacoby
Next Release,22799,Erase Formatting Doesn't erase,,TinyMCE,3.4,normal,normal,3.6,defect (bug),new,has-patch,2012-12-06T23:45:08Z,2013-02-01T16:33:30Z,"In the Content area of a page under the visual test manager of a page if you highlight text click the bold button add italics and cross out. When I I highlight the text and then click the erase format button it only removes the italics and leaves the cross out. 

On two other builds I have tested this problem with it turns the text red? 

Have tested on two local installs. (one clean to test this issue) and one external install. All using Trunk all the same issue. See screenshot for visual reference.

http://cl.ly/image/1Y1I1H2u471E  ",RDall
Next Release,17154,TinyMCE inserts spans with font-styles atributes,,TinyMCE,3.1,normal,normal,3.6,defect (bug),reopened,has-patch,2011-04-17T12:04:38Z,2013-05-15T21:38:38Z,"This is continuation of #14218 which seems to be not fixed in 3.1 and still exist even in current 3.2. Reproducing steps
1. Open WP in latest Chrome (any version) - and probably also in other webkit browsers
2. Create new post
3. create UL with clicking on bullet icon
4. type some Li elements
5. close ul with <- icon (in advanced tinymce line)
6. type some text
7. switch to html view or publish article and see the code, you will see something like

{{{
asdfasdfh
<ul>
	<li>asfasdfa</li>
	<li>asdfa</li>
	<li>asfd</li>
</ul>
<span style=""font-size: small;""><span class=""Apple-style-span"" style=""line-height: 24px;"">adfasdfasd</span></span>

<span style=""font-size: small;""><span class=""Apple-style-span"" style=""line-height: 24px;"">asfasd</span></span>

<span style=""font-size: small;""><span class=""Apple-style-span"" style=""line-height: 24px;"">
</span></span>
}}}

P.S.: i can't select Version 3.2 in the bug report properties
",thomask
Next Release,23178,"Screen reader shortcut links generated by _render() from WP_Admin_Bar class should use rel=""nofolow""",,Toolbar,,normal,normal,3.5.2,defect (bug),new,has-patch,2013-01-11T13:07:29Z,2013-04-02T12:45:12Z,"Screen reader related links generated by _render() from WP_Admin_Bar class assume toolbar is being shown only to logged in users. When toolbar is being shown to visitors using

{{{
function my_set_current_user() {
    if(!is_user_logged_in()){
        add_filter('show_admin_bar', '__return_true');
    }
}
add_action('set_current_user', 'my_set_current_user');
}}}

search engines report 403 error code on every page of the website when trying to follow wp_logout_url() from one of these links (Logout link). Including rel=""nofollow"" into _render() should avoid this.
",Marko-M
Next Release,22501,class-wp-upgrader.php is using the wrong theme directory,,Upgrade/Install,2.9,normal,normal,3.6,defect (bug),new,has-patch,2012-11-19T04:15:57Z,2013-01-04T10:29:36Z,"There are multiple places in `class-wp-upgrader.php` with a hard coded path to `WP_CONTENT_DIR . '/themes'`. Upgrades will fail if the theme directory is actually in another place.

If there is still a `wp-content/themes` directory, the theme will be installed into that, but the old theme is used and the upgrade nag doesn’t go away.

If there is no such directory the upgrader dies with an error.

In both cases the user is stuck with an outdated theme and no ability to the new one.

Test plugin to reproduce this bug:


{{{
<?php
/* Plugin Name: Local Theme Roots */

add_filter( 'theme_root_uri', 't5_switch_theme_root' );
add_filter( 'theme_root',     't5_switch_theme_root' );

/**
 * Create a custom theme directory.
 *
 * @wp-hook theme_root
 * @wp-hook theme_root_uri
 * @author  Thomas Scholz, http://toscho.de
 * @param   string $in URL or path
 * @return  string
 */
function t5_switch_theme_root( $in )
{
	if ( 'theme_root_uri' === current_filter() )
		return 'http://trunk-themes.wp';

	// If we made it so far we are in the 'theme_root' filter.
	$new_root = 'F:\wp.trunk.themes';
	register_theme_directory( $new_root );
	return $new_root;
}
}}}


The solution is to use `get_theme_root()` instead of a fixed path.

The attached patch does exactly that. Tested on latest Trunk.",toscho
Next Release,16057,download_url() error checking fails to notice that the file wasnt correctly witten to disk,,Upgrade/Install,3.0,normal,normal,3.6,defect (bug),new,has-patch,2011-01-01T01:36:51Z,2013-01-21T23:45:37Z,"When upgrading/installing plugins, themes and WordPress download_url() is called to download the package to a temporary file.

At present, the return value of fwrite() is not checked, the result can be that the file is not written to disk correctly and subsequently, the Zip extraction fails.

This appears as if it can be caused by the user running out of disk space, as seen here: http://erisds.co.uk/wordpress/wordpress-automatic-upgrades-one-of-the-pitfalls

I'm attaching a patch which appears to fix it for me, however, As I do not have a setup where I can enforce a quota I cannot test the saving of the file without fudging the return value of fwrite() to something lower than expected.",dd32
Next Release,22363,Accents in attachment filenames should be sanitized,,Upload,3.4,normal,normal,3.6,defect (bug),new,has-patch,2012-11-05T15:51:12Z,2013-01-25T21:03:39Z,"There is an inconsistency in the way WP is sanitizing post slugs and attachment filenames.

Sanitizing the post slugs is a Good Thing(tm) for non-english users who use diacritics in their post titles. 

Example: If I write a post with the title ""Moiré patterns"", the actual page slug will be: ""moire-patterns"". The space is replaced with a hyphen, the ""é"" becomes ""e"". Even if I try to change the slug manually into ""moiré"", WP won't let me (for my own good, since that URL would break in lesser capable browsers).

For some reason, WP doesn't apply that error-correction to attachment filenames. 

Example: If I attach a file named ""moiré pattern.png"", it gets renamed into ""moiré-pattern.png"".

We can see that the space (and some other forbidden characters) are corrected by `sanitize_file_name()`, but diacritics such as ""é"" or ""ä"" are left as they are.

Currently, most modern browsers are capable of displaying files with diacritics, but some of them still fail (most prominently, Safari).

For the sake of cross-browser compatibility, attachment filenames should benefit from the same safety measures that we apply for the post slugs (I guess that's the `remove_accents()` function).",tar.gz
Next Release,23480,Do Not Allow Negative IDs in wp_set_auth_cookie(),,Users,2.5,normal,major,3.6,defect (bug),new,has-patch,2013-02-15T15:36:54Z,2013-02-27T18:49:37Z,"After discovering a flaw in a plugin that made it possible for users to bypass the plugin's login form /  user validation, I've found an issue with wp_set_auth_cookie() that I believe to be critical.

Since all user validation is (and should be) done prior to calling `wp_set_auth_cookie`, the function allows any user ID to be passed to it and the cookie will be set.

The user ID passed to `wp_set_auth_cookie` gets passed to `wp_generate_auth_cookie`, which then retrieves the user data from the ID with `get_userdata`, which goes through `get_user_by` and `WP_User::get_data_by`. The `WP_User::get_data_by` method runs `absint` on the original user ID passed to `wp_set_auth_cookie`.

`absint` will translate any negative number to its positive counter part.

The problem with this is that `wp_set_auth_cookie` will happily generate a valid cookie even when given an invalid user ID, such as -1.

While it is the responsibility of plugins to ensure `wp_set_auth_cookie` never gets called except when all user data has been fully validated, it seems crazy to me that the function will still successfully generate the auth cookies when given a negative user ID.

In the case of the flaw discovered in the plugin mentioned above, -1 was being used to indicate invalid user data (which seems fine), but then the -1 was getting passed (when it shouldn't have been) to `wp_set_auth_cookie`, which simply translated the user ID to 1 (almost always the admin account) and logged the invalid user in as an admin. While it is obviously a bug on the plugin's part that -1 ever  reached `wp_set_auth_cookie`, it still should have died gracefully.

I'm proposing we for `wp_set_auth_cookie` to stop short if the user ID isn't an INT or if it is negative.",mordauk
Next Release,16731,Unchecked array_merge() returns NULL in wp_update_user();,,Users,3.1,normal,normal,3.6,defect (bug),new,has-patch,2011-03-02T20:58:40Z,2013-02-01T19:08:27Z,"I am running PHP version 5.3.3-1ubuntu9.3 and encountered a bug in a simple plug-in I wrote that worked up to Wordpress v3.0.5 but not in 3.1. It uses wp_update_user(), which is causing the issue. I traced the bug to line 1563 of wp-includes/user.php:

$userdata = array_merge($user, $userdata);

If $user is NULL, then array_merge returns NULL, making $userdata useless to other functions that follow like wp_insert_user().",milan.chotai
Next Release,23182,Offset error if the first item in an admin menu is a separator,,Warnings/Notices,2.7,normal,normal,3.6,defect (bug),new,has-patch,2013-01-11T18:03:03Z,2013-04-17T02:37:22Z,"There are a few ways you can get to this error, but the easiest way with the default install is:

{{{
add_action( 'admin_menu', create_function( '', 'unset( $GLOBALS[\'menu\'][2] );' ) );
}}}

I originally came across the error assigning the ''manage_sites'' capability to a non super admin role. If you do the same and visit /wp-admin/network/sites.php - you'll see the same error.

If this fix is approved, it raises another minor issue with the network page. There's now an unnecessary separator at the top of the menu. The second patch (network-menu) assigns the same capability requirement to the separator as the dashboard.",phill_brown
Next Release,16465,Querying taxonomies can trigger notices,,Warnings/Notices,3.1,normal,normal,3.6,defect (bug),new,has-patch,2011-02-05T14:07:34Z,2013-05-05T00:40:56Z,"Taxonomy queries variables related to backwards-compatbile taxonomy queries like {{{$cat_query}}} ({{{category}}}) or {{{$tag_query}}} ({{{post_tag}}}) do notices because they expect to have a term available.

But that's not the case if those taxonomies are getting queried ""advanced"" regardless of a concrete term.

Related: #15007 / [15685]

The related feature is: Advanced multi-taxonomy WP_Query()s (#12891, #15752)",hakre
Next Release,22413,get_the_excerpt() missing a check on $post->post_excerpt,,Warnings/Notices,,low,minor,3.6,defect (bug),new,has-patch,2012-11-11T18:26:48Z,2013-02-04T15:12:13Z,"Functions like get_the_title() include isset() or !empty() checks on post object variables, but get_the_excerpt() is missing any such check. This missing check triggers PHP warnings if post_excerpt is not set.

has_excerpt() addresses this for template usage, but nothing addresses this inside get_the_excerpt() itself.

Attached patch adds an isset() check, and correctly passes an empty string if it doesn't.

(Possibly of note: other convenience functions have this same issue -- get_the_guid(), get_the_ID(), etc...)",johnjamesjacoby
Next Release,21394,query.php: get_queried_object() result cannot be assumed to be non-NULL,wonderboymusic*,Warnings/Notices,3.3.2,normal,normal,3.6,defect (bug),accepted,has-patch,2012-07-26T21:37:03Z,2013-01-31T22:41:51Z,"I'm dealing with a WPMUdev plugin called MarketPress. Its /store/products/ page is a special CPT catalog thing that seems to have wp_title() issues, so I dug into it.

Turns out that:

is_front_page() -> is_page() -> $page_obj = $this->get_queried_object() -> $page_obj == NULL

But is_page() (and other is_...()) go harrassing $page_obj assuming there's always something useful there. This creates a flood of ""non-object access"" notices.

I would expect something like this to make sense in these is_...() functions:

{{{
if (!is_null($page_obj)) return false;
}}}

Since WP_Query::get_queried_object() first sets its result as null and returning a value is actually conditional, I don't see a way around these checks. Enlighten me please if I'm wrong.

I've looked at #19035, #18614, #17662. All of them are situations where there's at least something there in $page_obj. None of them seem to discuss or patch NULL values.

I discovered this on 3.3.2, but todays trunk [source:trunk/wp-includes/query.php@21248#L3340] has the same code.",lkraav
Next Release,22116,bug in dynamic_sidebar function,,Widgets,3.4.2,normal,normal,3.6,defect (bug),new,has-patch,2012-10-06T12:19:48Z,2012-12-13T13:46:29Z,"In the dynamic_sidebar function is for displaying the right sidebar, by id, but in the code it is searched by name:


{{{
function dynamic_sidebar($index = 1) {
	global $wp_registered_sidebars, $wp_registered_widgets;

	if ( is_int($index) ) {
		$index = ""sidebar-$index"";
	} else {
		$index = sanitize_title($index);
		foreach ( (array) $wp_registered_sidebars as $key => $value ) {
			if ( sanitize_title($value['name']) == $index ) {
				$index = $key;
				break;
			}
		}
	}


}}}

must be changed to :

{{{

function dynamic_sidebar($index = 1) {
	global $wp_registered_sidebars, $wp_registered_widgets;

	if ( is_int($index) ) {
		$index = ""sidebar-$index"";
	} else {
		$index = sanitize_title($index);
		foreach ( (array) $wp_registered_sidebars as $key => $value ) {
			if ( sanitize_title($value['id']) == $index ) {
				$index = $key;
				break;
			}
		}
	}
}}}

",alexvorn2
Next Release,23811,XML-RPC shouldn't display errors,,XML-RPC,3.5.1,normal,normal,3.6,defect (bug),new,has-patch,2013-03-18T17:35:59Z,2013-05-07T14:15:04Z,"I've got some user reports of XML-RPC returning this:

{{{
<b>Warning</b>
<a href='function.strpos'>function.strpos</a>
<b>
/home/www/simplythreemusic.com/wp-includes/class-wp-xmlrpc-server.php</b>
}}}

In this case, it seems to be #18310, but XML-RPC shouldn't be throwing any warnings, since that makes the client think the request failed when it actually succeeded",koke
Future Releases,16103,Blue Admin theme doesn't have enough contrast,,Accessibility,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-05T03:51:32Z,2013-05-14T13:21:17Z,"The beautiful blue theme has a few parts that lack sufficient contrast to be useable by someone with color deficiencies.   Specific parts to follow.


See attached screen shots to get a better idea.  Highlighted areas lack contrast.  ",jorbin
Future Releases,15926,Give header and background images alt tags,,Accessibility,3.0,normal,minor,Awaiting Review,defect (bug),assigned,has-patch,2010-12-20T22:16:12Z,2013-01-11T11:42:52Z,"''Section 1194.22 Web-based Internet information and applications: (a) A text equivalent for every non-text element shall be provided (e.g., via ""alt"", ""longdesc"", or in element content).''

To meet accessibility guidelines, the header images and backgrounds (when supported by a theme) need to be given user-editable alt tags.",jane
Future Releases,22254,"""Do you really want to log out"" message after already logged out",,Administration,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-10-22T16:21:06Z,2013-02-28T16:03:33Z,"1. Log into admin area
2. Open some page within admin area in a new tab (middle click or ""Open link in new tab"" or similar)
3. Select ""Log Out"" in menu in one tab
4. Normal ""You are now logged out."" screen appears
5. Select ""Log Out"" in menu in other tab
6. The following message appears:
{{{
You are attempting to log out of Blogname

Do you really want to log out?
}}}
The content of this message is wrong as the user is already logged out at this point.",Ov3rfly
Future Releases,15827,AJAX paging breaks badly when json_encode can't encode,,Administration,3.1,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-12-15T14:27:33Z,2011-02-11T07:20:32Z,"If json_encode can't encode a response for some reason you get no feedback at all except for a blank list.

This seems most likely to trigger with invalid UTF8 sequences in spam comments.

With non-ajax paging you at least get all the comments displayed even if you do get a lot of ??? for the bad chars

Example Error seen:

{{{
[15-Dec-2010 14:18:38] Warning: json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /home/wpdev/public_html/wp-admin/includes/class-wp-list-table.php on line 839 [
}}}",westi
Future Releases,13972,Add new category link - capability check needed,,Administration,3.0,normal,minor,Future Release,defect (bug),new,has-patch,2010-06-18T09:01:43Z,2012-06-29T18:18:58Z,"/wp-admin/link-add.php

If user doesn´t have ""manage_categories"" capability, add new link page, will show ""add new category"" link and form, 
it should be hidden.
",wjm
Future Releases,24367,Admin login with correct password fails,,Administration,trunk,normal,critical,Awaiting Review,defect (bug),new,has-patch,2013-05-19T15:36:15Z,2013-05-19T15:36:15Z,"1. Clean blog with current WP 3.6 Beta3

2. Blog install page: Set the admin password to 
{{{
Tea7""Kou>9Bia7@Cio(4
}}}

3. After blog setup: The login with same password fails - every time.

'''Fix'''
Test for ''magic_quotes_gpc'' helps us.

{{{
Tea7\""Kou>9Bia7@Cio(4 !== Tea7""Kou>9Bia7@Cio(4
}}}


See also the Openwall notice: ''The ""Magic Quotes"" issue''
http://www.openwall.com/articles/PHP-Users-Passwords",sergej.mueller
Future Releases,19069,Admin menu generation doesn't check whether default post types have 'show_ui' as true,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-10-27T19:47:06Z,2011-11-16T05:00:27Z,"While patching #19055, I found wp-admin/menu.php doesn't check whether default post types have 'show_ui' set to true. The Comments menu is also displayed regardless of whether available post types support comments or not.",kawauso
Future Releases,14565,After Category Quick Edit Update Parent Category Dropdown,,Administration,3.0.1,normal,trivial,Future Release,defect (bug),new,has-patch,2010-08-08T22:07:45Z,2010-12-26T23:09:36Z,"On a clean install I went to Posts -> Categories and used Quick Edit to rename 'Uncategorized' to 'Rename-Test' I then went to create a new Category using the form on the left and the Parent drop down still lists 'Uncategorized'.

Should this be updated without have to reload the page?",Dempsey
Future Releases,10422,Answering to comment from Dashboard does not update Dashboard statistics,,Administration,2.8.1,normal,normal,Future Release,defect (bug),new,has-patch,2009-07-16T05:18:48Z,2012-09-17T19:50:52Z,"Hi there,

there is a short statistics ""Right now/At a Glance"" box in Dashboard, containing number of posts, pages, comments etc.

There is also a box with list of most recent comments in the Dashboard.

If a user answers to a comment in this ""Recent comments"" box in Dashboard, which uses AJAX, so it does not reload the whole page, it creates a new comment, but the number of comments in the ""Right now"" box is not updated.

I know this is not a critical bug, but it would be really nice if it works.

Take care, Honza

P.S.: As there is no ""Dashboard"" component in the Trac, I did not know whether to assign it to Administration or Comments component. I put it into Administration, if you think it better suits to Comments or any other component, please feel free to change it.",honza.skypala
Future Releases,16793,Bulk inline post edit doesn't show categories or tags if the CPT doesn't support titles,,Administration,,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-03-07T23:24:56Z,2011-05-22T17:04:59Z,"1. Register a CPT that doesn't support titles:

{{{
add_action( 'init', function() {
	register_post_type( 'foo', array(
		'show_ui' => true,
		'label' => 'Foo',
		'supports' => array( 'editor' ),
		'taxonomies' => array( 'category', 'post_tag' )
	) );
} );
}}}

2. Create a 'foo' post.

3. Go to wp-admin/edit.php?post_type=foo and choose the 'Edit' bulk action.

Expected behaviour: shows the category checkbox list and the tag textarea.

Actual behaviour: only the status dropdown is shown.
",scribu
Future Releases,18048,Ctrl+S draft save causes prompt on exit,,Administration,,normal,normal,Awaiting Review,defect (bug),new,close,2011-07-09T12:25:25Z,2011-11-15T03:45:49Z,"When you use the ""save draft"" button and leave the edit page, the ""unsaved changes"" prompt doesn't show up. However, when you save using Ctrl+S and leave - the prompt appears.",jakub.tyrcha
Future Releases,16475,Displaying submenus in custom taxonomy of active parent,,Administration,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-07T02:26:20Z,2011-07-22T09:27:13Z,"In a hierarchical taxonomy, if a top level item in the hierarchy is selected when editing a post, after save that item's orphaned children and grandchildren will also show as top level items. It flattens the hierarchy.",nick4fake
Future Releases,15659,Entity escaping needed for comments list table,,Administration,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-03T07:05:52Z,2011-02-14T06:32:02Z,"Perhaps only as a result of the fact that the URL will be truncated for display, it is possible that URLs will have entities in URLs such as &amp; truncated, thereby creating a non-well-formed entity for application/xhtml+xml . The following patch fixes it (quotation escaping is not needed since this is element content).

This is an easy fix which I hope can be applied given that its lack breaks reviewing the important comments editing page. Thanks.",brettz95
Future Releases,21947,Fix 3-column dashboard display,,Administration,3.4,low,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-20T20:06:46Z,2013-04-14T06:02:52Z,"Issue #20015 'enhanced' the dashboard with a pure-CSS based multi-column dashboard. Excellent.

The CSS used makes gross assumptions about how many columns are appropriate for different-sized displays. Double plus ungood.
Users should be left to decide how many columns they wish to use.

There was [http://wordpress.org/support/topic/three-column-dashboard/ considerable discussion] of this when 3.4 was released, but no remedy yet, other than to hack away at the CSS of one's install, precluding upgrades; I've changed {{{@media only screen and (min-width:800px) and (max-width:1200px){}}} to {{{@media only screen and (min-width:800px) and (max-width900px){}}} in wp-admin.css to get a usable interface.",belg4mit
Future Releases,17607,Google blog search API shutdown,westi,Administration,3.2,normal,normal,Future Release,defect (bug),assigned,has-patch,2011-05-29T11:21:19Z,2012-10-11T23:13:54Z,"I have done a search and can't see that this has already been reported.

On the wordpresss dashboard the 'incoming link search' uses google blog search API. Google has announced that this api is being shutdown as of effect 26 May 2011 (http://code.google.com/apis/blogsearch/). It will continue to work but with limited functionality (due to their deprecation policy). I therefore suggest that this be removed or use a different API.",jcnetsys
Future Releases,20848,Header images are cropped and resized with improper permissions.,,Administration,3.3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-05T17:41:45Z,2012-06-05T17:41:45Z,"On some systems the cropped and resized header images become unreadable by the web server.  

The attached patch makes the files inherit the permissions from the parent folder.


",gtenney99
Future Releases,19206,Improve internal admin menu code,,Administration,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2011-11-08T17:53:44Z,2011-11-09T16:27:02Z,"The internal admin menu code is both hard to read and filled with several unnecessary branches. This makes maintaining the code quite difficult.

A few uses of list and smarter branching can considerably improve _wp_menu_output. Patch attached. Let's revisit this when we branch for 3.4.",koopersmith
Future Releases,16972,Input type radio losts its checked focus when metabox is dragged,azaozz,Administration,3.0,normal,normal,Future Release,defect (bug),reviewing,has-patch,2011-03-26T14:16:05Z,2012-11-07T21:31:46Z,"This happens when I use a radio button in a metabox. Once I try to drag it to different position or just drag and let it go the checked focus is lost. (in code it of course still remain checked, but visually not)

Bug not happens with other fields I tested (checkboxes, inputs, textareas)",depi
Future Releases,14949,Login gives false assurance of having logged out,filosofo,Administration,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-23T10:39:34Z,2012-09-20T22:02:19Z,"If you visit `wp-login.php?loggedout=true` while logged in, WordPress falsely tells you that ""You are now logged out.""

This is a problem because it could lead you to think, e.g., that a public computer is no longer authenticated with access to your WP admin.

Patch redirects a still-authenticated user back to the admin from the login page if she requests the above page without actually having logged out.",filosofo
Future Releases,13655,Login/Install/User Edit should stripslashes() $_POST data,,Administration,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-31T11:33:17Z,2010-11-13T08:05:36Z,"Following on from #13654 All Login/Registration/Install/User Edit functionality should stripslash $_POST data.

At present, it seems that we do not stripslash at all.

For existing user passwords, we should migrate passwords to their non-stripslashed versions:

 [5/31/10 6:34:11 AM] Mark Jaquith: We could migrate people.[[BR]]

 [5/31/10 6:34:13 AM] Dion (dd32): Perhaps oughta just add proper stripslashing in 3.1, and add back-compat to change password from non-stripslashed to stripslashed.. similar to the md5->phpass implementation..[[BR]]

 [5/31/10 6:35:13 AM] Mark Jaquith: Yep. If the PW doesn't match, addslashes() and compare again. If that matches, set the new PW hash. Right?[[BR]]

 [5/31/10 6:35:19 AM] Dion (dd32): yep

",dd32
Future Releases,21015,Months dropdown should not show if only posts are 'auto-draft' status,,Administration,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-18T19:16:54Z,2012-09-28T14:42:09Z,"The months dropdown at the top of edit.php should only show if there are actually posts in the list.

Right now, if you click 'Add new' an auto draft post will be saved. Leave the post edit screen without saving the post (so no draft will be created) and go back to the edit.php screen. There is no post in the list, but the month drop down will be shown because the auto draft is counted.",CoenJacobs
Future Releases,16696,"No synchronisation between ""most used"" and ""all categories"" in link edit",,Administration,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-02-28T07:14:37Z,2011-03-04T14:02:26Z,"There are issues with the ""all categories"" and ""most used"" tabs when editing links:

- Go to edit a link

- Click on ""Most used"" in the category section. All the listed categories are unchecked - including the ones that are checked in the ""All Categories"" tab. There is no sync between the two.

- Now check a category in the ""most used"" tab. Go to the ""all categories"" tab and you will find that the same category is now checked (as expected). Now uncheck it from the ""all categories"" tab. Go to ""most used"" and it is still checked there. The sync only works one way ( ""most used"" -> ""all categories"" ).

The first issue is because `wp_popular_terms_checklist()` assumes that you're using it in the context of a particular post, and sets checkedness based on whether the `$post` global has that term. If the `$post` global is empty (as when editing links), nothing is checked. I don't think we should be using `wp_popular_terms_checklist()` as it's context is for individual posts.

The second issue is because the IDs on the most used elements are wrong compared to what the Javascript is looking for.

Patch to follow. 

",solarissmoke
Future Releases,22509,No-JS fallback for default color in color picker,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-19T19:42:19Z,2012-12-19T20:48:22Z,"The no-JS fallback for the color picker is just a plain input. Since the color picker implementation now includes the ability to reset to a specified default, it seems to make sense to include a no-JS fallback for the default, even just as a little bit of hidden descriptive text.

See #22461 for discussion stemming from the custom header screen.",helen
Future Releases,18724,Non functioning 'paged' input on theme/plugin search,,Administration,3.1,normal,minor,Future Release,defect (bug),new,has-patch,2011-09-20T13:09:04Z,2011-11-08T20:56:31Z,"In the WordPress Admin -> Install Themes -> Search ... The page number input is not functional.

Same for plugin search.",kurtpayne
Future Releases,16683,"Nonce failure error message causes a warning, and also ugly error.",,Administration,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-27T04:05:15Z,2011-02-27T07:25:36Z,"{{{
( ! ) Notice: Undefined offset: 4 in C:\www\wordpress-commit\wp-includes\functions.php on line 2624
Call Stack
#	Time	Memory	Function	Location
1	0.1991	455408	{main}( )	..\options-permalink.php:0
2	15.8632	23506944	check_admin_referer( )	..\options-permalink.php:69
3	15.8637	23507168	wp_nonce_ays( )	..\pluggable.php:839
4	15.8638	23507240	wp_explain_nonce( )	..\functions.php:2657


Your attempt to change your permalink structure to: has failed.
}}}

I left the permalink page open for a few hours, and just went to update it. Upon clicking update, I was given the above error (see attached jpeg). It feels pretty clunky and average to have a simple text like that.

The warning looks to be caused by the nonce error not being set possibly..",dd32
Future Releases,15981,Quick edit (and other actions) need to cancel AJAX actions,garyc40,Administration,3.1,low,normal,Future Release,defect (bug),assigned,has-patch,2010-12-26T05:17:36Z,2010-12-26T21:03:24Z,"Right after you click to paginate, sort or try to search something, you may be inclined to click another link on the page. This happens often when I'm browsing, and on a server with a relatively slow AJAX round trip, it can happen quite commonly.

Problem: If you open Quick Edit, then the ajax results should noop. There might be other actions, but this one in particular does not lead to another page (which obviously would kill the ajax).

The reverse is also an issue. You can search, paginate, or sort when Quick Edit is open, and you lose your edit. This might be bad when quick editing a comment, as you could be losing actual content. Searching and paginating might be explicit actions, but it's not difficult to accidentally click a th and trigger a sort, especially if the first row's quick edit (or bulk edit) is open.

I'm not sure what to do here, other than a JS popup for any time a Quick/Bulk Edit is open, asking you if you want to lose your changes.

So again, two things:

 - Kill the AJAX action if Quick Edit is opened. I would consider this lower priority.

 - 'Lose your changes' confirmation for quick edit and bulk edit before an AJAX action. (We can probably fire the AJAX action and trigger the alert simultaneously, but delay processing the results until the confirm() is true.)",nacin
Future Releases,24104,Remove duplicated separators in admin menu,,Administration,2.7,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-16T17:26:37Z,2013-04-17T02:37:08Z,"I'm working on WordPress admin menu, and I found that the code to remove duplicated separators in admin menu in `wp-admin/includes/menu.php` doesn't work correctly.

Assuming we have these items in the `$menu`:


{{{
$menu = array(
	100 => array(
		0 => 'Admin Style',
		2 => 'wp-admin-style.php',
		1 => 'read',
		4 => 'menu-top menu-icon-generic toplevel_page_wp-admin-style menu-top-first menu-top-last',
		6 => 'none',
	),
	110 => array(
		0 => '',
		1 => 'read',
		2 => 'separator1',
		3 => '',
		4 => 'wp-menu-separator',
	),
	130 => array(
		0 => '',
		1 => 'read',
		2 => 'separator2',
		3 => '',
		4 => 'wp-menu-separator',
	),
	140 => array(
		0 => '',
		1 => 'read',
		2 => 'separator-last',
		3 => '',
		4 => 'wp-menu-separator',
	),
	150 => array(
		0 => 'Hide Menu',
		1 => 'manage_options',
		2 => 'hide-admin-menu',
		3 => 'Hide Admin Menu',
		4 => 'menu-top toplevel_page_hide-admin-menu',
		5 => 'toplevel_page_hide-admin-menu',
		6 => 'http://localhost:8080/wp/wp-content/plugins/hide-admin-menu/img/icon.png',
	),
);
}}}

WordPress will remove only the 1st duplicated separator (130) and still keeps the 2nd one (140).

Another problem with current code is if separator menu item has classes like `'wp-menu-separator woocommerce'` (WooCommerce does this), it won't be recognized as a separator, because the function to check separator uses `strcmp`.

",rilwis
Future Releases,22200,Require users to set a site title,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-10-15T18:52:14Z,2013-01-26T20:43:26Z,"Currently, users can get away with setting a blank site title under Settings -> General.

As a consequence, meta and title tags in both the front-end site and wp-admin may be empty, or contain extraneous spaces and separators. 

A common reason why users leave site titles blank is due to the misperception that the site title is necessarily displayed in the header on the front-end site. 

I suggest that we display an alert when users attempt to set a blank site title, and possibly suggest that if they don't want it to appear in their header, they can edit their CSS or hide header text under Appearance -> Header.",chrisrudzki
Future Releases,17636,Search subtitles are handled inconsistently across admin,,Administration,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-01T12:15:48Z,2011-07-09T11:44:29Z,"Try the following strings in the Comments admin screen and any other:

`\'""\fs""\\\""` 

`imareallylongstringlookatmegoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgo`

The Comments screen uses `strip_slashes()` and `wp_html_excerpt()` to limit search strings to 50 characters, while other screens do not.",kawauso
Future Releases,9296,Settings API & Permalink Settings Page Bug,jfarthing84,Administration,2.7.1,normal,major,Future Release,defect (bug),reopened,has-patch,2009-03-07T05:33:55Z,2013-04-22T20:58:19Z,"Although there is a hook in the options-permalink.php to insert custom settings, it does not actually save any custom setting which is added to that page.  Instead of posting to options.php like all the other options pages, it posts to itself and only handles the form data which is built into the wordpress core.  It should be implemented on that page to also store custom settings that may be hooked onto that page.",jfarthing84
Future Releases,16345,Some submit buttons shouldn't have names,,Administration,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-01-22T18:24:30Z,2011-02-13T14:38:59Z,"Technically a regression due to the submit_button implementation. What happens instead is the URL gets polluted.

Noticed especially after we moved back to GET on a bunch of screens.

In these cases, we just need the form to be sent. Don't need the context info.",nacin
Future Releases,23886,Use set_url_scheme for draft Preview links in post table,,Administration,trunk,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-29T01:20:52Z,2013-03-29T01:23:03Z,"When using FORCE_SSL_ADMIN and this filter to prevent non-SSL preview of posts:

{{{
add_filter('secure_logged_in_cookie', '__return_true');
}}}

Preview links for unpublished drafts on `wp-admin/edit.php` do not use SSL and will 404.

This can be fixed by using `set_url_scheme` for the unpublished preview link. A similar unpublished preview link in `meta-boxes.php` was changed to use `set_url_scheme` in [21664]. For context, see #20759, #13328.",reidburke
Future Releases,17959,WP-Tab css,WraithKenny,Administration,3.2,normal,minor,Awaiting Review,defect (bug),reopened,has-patch,2011-07-01T17:03:44Z,2013-01-21T23:20:35Z,"The classes wp-tab-panel, wp-tab-bar, and wp-tab-active should adjust to side tabs in the post column (to match the behavior of categories for example)

Also, there are several unneeded duplicate css classes that can be cleaned up.",WraithKenny
Future Releases,21249,WP_List_Table::single_row_columns() needs to do an exact comparison,,Administration,,lowest,trivial,Future Release,defect (bug),new,has-patch,2012-07-13T01:20:28Z,2012-11-07T22:05:29Z,"If for whatever reason you pass a column ID of `0` when dealing with a list table, !WordPress thinks it's a checkbox column because of the loose comparison, i.e. `==` instead of `===`.

Since I don't see why passing a number instead of a string shouldn'r be allowed, attached is a patch.",Viper007Bond
Future Releases,16864,WP_Terms_List_Table doesn't call sanitize_term() on display,,Administration,2.9,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-03-16T12:54:07Z,2011-06-22T17:05:26Z,"Steps to reproduce:

Add this filter:

{{{
add_filter( 'category_slug', function() {
  return 'filtered';
} );
}}}

and go to {{{edit-tags.php?taxonomy=category}}}",scribu
Future Releases,11207,WordPress may display incorrect message when post is saved/published/etc,bsamrajni*,Administration,2.9,normal,normal,Future Release,defect (bug),accepted,has-patch,2009-11-20T20:23:23Z,2011-06-25T20:35:42Z,"When post is saved, WP calls `wp_insert_post_data` filter. Plugin can use it to change post status. But even post status has been changed via plugin, WP still displays message basing on action originally executed by user. Need to change this and take into account final post status too.",sirzooro
Future Releases,24328,blogname and blogdescription strip content between angle brackets,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-05-13T09:12:06Z,2013-05-15T13:18:35Z,"I was trying to set my Site Title to '''<?= test ?>'''. On saving the settings, the field returned empty. The same problem occurred with the Tagline.

After looking into `wp-admin/options.php`, I noticed that there was no provision made for escaping the fields.",aniketpant
Future Releases,13416,media for install.css missing (patch),,Administration,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-05-16T18:48:17Z,2013-01-22T07:40:13Z,In /core-root/wp-includes/general_template.php the function wp_admin_css is missing the @media definition. See patch.,F J Kaiser
Future Releases,17557,"AtomPub service sends duplicate status headers, breaking FastCGI",,AtomPub,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-05-25T20:33:33Z,2011-08-08T01:00:38Z,"The AtomPub service (wp-app.php) sends duplicate Status headers when authorization is not provided, which breaks on FastCGI setups. This is seen when you attempt to connect to the service using e.g. [https://github.com/calavera/Ape Ape], resulting in the following error message in the Apache logs:

{{{
[Wed May 25 16:09:21 2011] [error] [client 10.5.62.176] FastCGI: comm with server ""/tmp/webadmin_test"" aborted: error parsing headers: duplicate header 'Status'
}}}

This results in a 500 Internal Server Error from Apache:

{{{
HTTP/1.1 500 Internal Server Error 
Date: Wed, 25 May 2011 20:09:21 GMT 
Server: Apache 
X-Powered-By: PHP/5.2.6RC4-pl0-gentoo 
Expires: Wed, 11 Jan 1984 05:00:00 GMT 
Last-Modified: Wed, 25 May 2011 20:09:21 GMT 
Cache-Control: no-cache, must-revalidate, max-age=0 
Pragma: no-cache 
WWW-Authenticate: Basic realm=""WordPress Atom Protocol"" 
Content-Length: 735 
Connection: close 
Content-Type: text/html; charset=iso-8859-1 

<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML 2.0//EN""> 
<html><head> 
<title>401 Credentials required.</title> 
</head><body> 
<h1>Credentials required.</h1> 
<p>The server encountered an internal error or 
misconfiguration and was unable to complete 
your request.</p> 
<p>Please contact the server administrator, 
webmaster@ufl.edu and inform them of the time the error occurred, 
and anything you might have done that may have 
caused the error.</p> 
<p>More information about this error may be available 
in the server error log.</p> 
<p>Additionally, a 500 Internal Server Error 
error was encountered while trying to use an ErrorDocument to handle the request.</p> 
<hr> 
<address>Apache Server at test.news.ufl.edu Port 80</address> 
</body></html>
}}}

Patch attached to refactor Status headers in wp-app.php to use the {{{status_header}}} function like most of the code uses.  There's also a function that handles which I have refactored to use {{{wp_redirect}}}. Affects all versions back to 2.9.2, including trunk.

Examples of this issue (and corresponding fixes) include:
* #2628
* http://trac.symfony-project.org/ticket/3191",dwc
Future Releases,18060,image upload handling between atompub and xmlrpc different,,AtomPub,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-07-10T12:33:27Z,2012-06-17T12:58:30Z,"Uploading images via XMLRPC generates different image sizes in addition to the original image. Uploading the same image through AtomPub will only create a single original file in the uploads/year/month/ directory, the thumbnail and different formats normally generated on upload are missing. It is probably because wp_handle_upload is missing from the wp-app.php create_attachment definiition - it only uploads the bits and creates an attachment, but neither handles metadata updates nor image thumbnail generation.",rfc1437
Future Releases,5915,Same problem as in #252: apop broken if zero occurs in banner in 2.3.3 class-pop3.php,westi*,Blog by Email,2.3.3,normal,normal,Future Release,defect (bug),accepted,has-patch,2008-02-19T05:21:02Z,2009-10-11T21:08:22Z,"While extracting the banner (function parse_banner) in preparation for apop, the empty method is called on $digit which when zero returns false and hence doesn't get put into the resultant $banner.

Example parse_banner reply with <14649.123343777@code-werk.net> but the string was ""+OK ready <14649.1203343777@code-werk.net>""
or another example
""+OK ready <14649.1203343777@code-werk.net>"" and $pop3->parse_banner give back <14419.12334323@code-werk.net>

then a md5($AuthString) must fail, because the 0 is significant by apop.

I put a workaround at http://www.babsi.de/silentapop/, that does it for me, but this touch also wp-main.php

",ASonno
Future Releases,16993,wp-mail.php doesn't account for half-hour and quarter-hour timezones.,,Blog by Email,3.1,normal,trivial,Future Release,defect (bug),new,has-patch,2011-03-29T06:55:06Z,2012-11-07T22:14:58Z,"To reproduce the problem, install Wordpress and set it to post by email. Send a post from an email address which is configured to use a half-hour or quarter-hour timezone (like Afghanistan, +0430).

wp-mail.php calculates the timezone by multiplying the timezone offset by 36. This works fine for whole-hour timezones (Pacific Time -0800, -800 * 36 = -28800 seconds). For half-hour and quarter-hour time zones this does not work (Afghanistan +0430, 430 * 36 = 15480, should be 16200). The reason this happens is because an hour has 60 minutes as opposed to 100  minutes. 430 / 100 = 4.3 hours, not 4.5 hours. 450 * 36 result in 16200 minutes, but timezones are represented as hours and minutes, not fractional hours.

This results in posts that are posted via email from a half-hour or quarter-hour timezone to be posted in the future or in the past from when it was actually posted.",neoscrib
Future Releases,24244,Clean post cache when post was moved to trash,,Cache,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-05-02T00:36:22Z,2013-05-02T00:36:22Z,Clean post cache when post was moved to trash,m_uysl
Future Releases,22683,Don't load advanced-cache.php when running via CLI,,Cache,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-02T18:46:48Z,2012-12-03T20:05:29Z,"When you're loading WP via a command-line program, it doesn't make much sense for a plugin like WP Super Cache to take over. It's not like you have thousands of CLI users hammering the install.

Example issue in wp-cli: https://github.com/wp-cli/wp-cli/issues/164",scribu
Future Releases,21267,Kill the serialization of $wp_filter in get_terms(),,Cache,,normal,normal,Future Release,defect (bug),new,has-patch,2012-07-13T21:35:11Z,2013-01-22T19:35:23Z,"We use this as part of a persistent cache key:

{{{
serialize($GLOBALS['wp_filter']['list_terms_exclusions'])
}}}

See [8225].

This is not good for two reasons. First, well, it's a not fun to reach into our internal API like that. But worse, it's broken whenever an object method is used, because spl_object_hash() will be unique to that object, thus rendering the cache invalidated on the next pageload.

As an aside, we should probably have _wp_filter_build_unique_id() create a delimiter when dealing with a static class method — `$function[0].$function[1]` can conflict with a legitimate function name.

I'm not sure how this should be fixed.",nacin
Future Releases,21650,replace serialize() with print_r() in stats() function in wp-includes/cache.php,,Cache,3.4.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-08-21T13:42:29Z,2012-09-10T15:17:49Z,"In PHP 5.3 it is no longer possible to serialize data that contains a SimpleXMLElement object. It produces a fatal error. See https://bugs.php.net/bug.php?id=49800

The stats() function attempts to determine the allocated space for objects in the cache by using strlen() of the serialized object.

This can fail for the reason above.

Given that the figure returned is simply an estimation of the space 
I propose that the code is changed to use 
print_r( $cache, true ) instead of serialize( $cache )

ie. to become
`echo ""<li><strong>Group:</strong> $group - ( "" . number_format( strlen( print_r( $cache, true ) ) / 1024, 2 ) . 'k )</li>';`



This TRAC was raised after a longish chain of events starting with #18488 and the final response (today) which led to another chance discovery of a similar problem in the debug-bar plugin.

http://wordpress.org/support/topic/plugin-debug-bar-fatal-error-uncaught-exception-serialization-of-simplexmlelement-is-not-allowed



",bobbingwide
Future Releases,21879,wp_count_posts() cache is not destroyed after post inserts and deletions,,Cache,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-13T01:23:38Z,2012-09-13T02:11:19Z,"`wp_count_posts()` caches its results, but that cache is not destroyed when posts are inserted, deleted, or transitioned. This can lead to incorrect counts.

The attached patch fixes that (although it doesn't destroy the cache set when `$perm='readable'` in `wp_count_posts()`, which would be more complex as we wouldn't know the name of the key(s), though it could be done with `preg_match`).

",mark8barnes
Future Releases,17661,Appending date & author based query vars to a permalink overrides the permalink,,Canonical,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-02T11:05:05Z,2012-09-09T20:14:26Z,"Some canonical code branches are not properly accounting for extra query variables being specified via the url.

For example, these url's are not handled properly:
{{{
/2008/?author=1 redirects to /author/admin/
/author/admin/?year=2008 redirects to /year/2008/
/category/uncategorized/?year=2008 redirects to /2008/
}}}

This happens with most date based branches, as once a higher priority canonical rule is hit, the permalink component is ignored.

The canonical code includes a branch to add any ""forgotten"" `$_GET` variables back onto the url, however this doesn't help when it's the rewritten variables are being lost.",dd32
Future Releases,13041,Canonical redirection will redirect a non-exitant page to a post.,markjaquith,Canonical,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-04-18T06:14:20Z,2010-11-13T07:53:23Z,"Following on from #12601

Canonical redirection will kick in for http://localhost/wordpress-commit/apage/something and redirect it to http://localhost/wordpress-commit/2010/02/13/something-else/

#12601 limited redirect_guess_404_permalink() to only searching in the same post_type if one was provided, for posts and pages however, which are builtin, these vars are not set. 

I'm attaching a patch which will prevent a Page -> Post redirection, but not the other way around. - this patch was originally added to the other ticket.",dd32
Future Releases,17718,Don't redirect if user is already on port 80,,Canonical,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-07T11:31:40Z,2012-10-16T16:36:46Z,"If user is already using port 80 but {{{$original['port']}}} is set to 80 anyway, do not send a needless redirect.

wp-includes/canonical.php line 324

change from

{{{        if ( !empty( $original['port'] ) )}}}

change to

{{{        if ( !empty( $original['port'] ) && $original['port'] != 80 )}}}

Fixes, for example, Nagios's check_http getting sent a redirect rather than the page content.

-davidc",davidcx
Future Releases,8593,HTTP_HOST being manipulated improperly for redirects,markjaquith,Canonical,,normal,normal,Future Release,defect (bug),new,has-patch,2008-12-12T16:37:23Z,2011-03-22T14:49:41Z,"When redirecting a hit to the proper URL, WordPress makes some bad assumptions. Specifically, during redirects, any port information provided by the client is dropped. If I go to http://example.com:80/, I get redirected to http://example.com/. If I go to https://example.com:443/, I get redirected to https://example.com/.

Thus far, no problem has occurred because we are on on server that uses default ports. However, lets say my web server is running http on 8080 and https on 8443. Now when I go to http://example.com:8080/ and get redirected to http://example.com/, it fails. As a workaround, you can change the following settings:
WordPress address: http://example.com:8080/
Blog address: http://example.com:8080/

While this clears up the problem for http requests, you will not be able to use https becuse and attempt to go to https://example.com:8443/ now redirects to https://example.com:8080/ and it fails because the server does not speak ssl on 8080.

Additionally, when you have an https proxy in front of your web server such as pound (with http on port 80 and https on port 8443), you run into another problem caused by this same bug. In this situation if you attempt to go to https://example.com/, the proxy server accepts the request and then on the back end makes a none ssl connection to apache. Good so far, but in order to not make any assumptions, the proxy server tells apache that the request was for 'https://example.com:443/' and apache sets HTTP_HOST (very appropriately) to example.com:443. WordPress sees this request and redirects it to 'https://example.com/' by responding to the web browser with a 'Location:' header. Thus the browser sends another request for 'https://example.com/' and starts the whole process over again resulting in an infinite redirect.

As specifying a port is completely valid, this is a clear case of WordPress not handling things appropriately.",revmj
Future Releases,16133,"Pagination issue with tag ""rss""",,Canonical,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-07T09:39:10Z,2012-09-04T21:50:34Z,"When posts use ""RSS"" as a tag, and the /tag/rss/ page has more posts than it is set to display on one single page, the link to page 2:

/tag/rss/page/2/

is redirected to:

/category/page/2/

Tested on Paolo Belcastro test WordPress.org :

http://test.belcastro.com/tag/rss/

Running 3.1-RC2-17229 with only Debug Bar plugin activated

This is not theme related, same behaviour with TwentyTen or Thematic on this install.",paolal
Future Releases,18007,is_serialized trouble for multibytes encoding,,Charset,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-07-06T16:51:52Z,2013-04-10T12:47:42Z,"Possible bug in the ''is_serialized'' function, in a multibytes environment :

== Context ==

* ''utf-8'' encoded database fields
* auto overlaoding singlebyte functions from conf (see http://www.php.net/manual/en/mbstring.overload.php)

Retrieving an option from the database, the ''get_option'' function try to deserialize it.

== Bug scenario ==
 * the ''strlen'' call is actually a ''mb_strlen'' one
 * the ''$length'' var is the number of characters (not bytes)
 * using {{{ $data[$length-1] }}} don't retrieve the last char but one before, it's actual position is undefined, depending on the other content of the string
 * this ''$lastc'' is not '';'' or ''}'' 
 * the string is understood has not serialized

== Patch proposal ==

here is a fix i made to make it work with multibytes string :
Not tested it for single bytes, but there is no reason for it to not work.
{{{
--- a/wp-includes/functions.php
+++ b/wp-includes/functions.php
@@ -256,7 +256,7 @@ function is_serialized( $data ) {
                return false;
        if ( ':' !== $data[1] )
                return false;
-       $lastc = $data[$length-1];
+       $lastc = substr($data, -1);
        if ( ';' !== $lastc && '}' !== $lastc )
                return false;
        $token = $data[0];
}}}

",challet
Future Releases,20319,$page value not being defaulted to 1 in the absence of cpage query var in get_next_comments_link()/get_previous_comments_link(),,Comments,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-29T09:23:19Z,2012-05-24T07:27:29Z,"get_next_comments_link() generates incorrect comment pagination links on the first page when used alongside a user-made call to wp_list_comments().

Currently, get_next_comments_link() doesn't take into account instances where there is no 'cpage' query var (which is the case when a user-made call to wp_list_comments() is performed). The intval() of the empty $page variable returns 0, and at this point should then be defaulted to 1 in order for the correct link to page 2 to be generated. Instead, it's left as 0, and the resulting link is self-referencing to page 1.

In wp-includes/link-template.php:

{{{
function get_next_comments_link( $label = '', $max_page = 0 ) {
    global $wp_query;

    if ( !is_singular() || !get_option('page_comments') )
        return;

    $page = get_query_var('cpage'); //RETURNS EMPTY IN ABSENCE OF A cpage VALUE ON PAGE 1 OF A USER-MADE CALL TO wp_list_comments()

    $nextpage = intval($page) + 1; //intval() RETURNS 0, 0+1=1, RESULTING IN THE ""Newer Comments"" LINK SELF-REFERENCING PAGE 1, INSTEAD OF POINTING TO PAGE 2

    ...
}}}

Coincidentally, in paginate_comments_links() (wp-includes/link-template.php) this situation is handled correctly, and $page does get correctly defaulted to 1. The same conditional used in paginate_comments_links() can be applied to both get_next_comments_link() and get_previous_comments_link(). The code to properly account for it is:

{{{
function get_next_comments_link( $label = '', $max_page = 0 ) {
    global $wp_query;

    if ( !is_singular() || !get_option('page_comments') )
        return;

    $page = get_query_var('cpage');
    if ( !$page ) //******** ADDED
        $page = 1; //******** ADDED

    $nextpage = intval($page) + 1; //intval() RETURNS 0, 0+1=1, RESULTING IN THE ""Newer Comments"" LINK NOT POINTING TO PAGE 2

    ...
}}}

The same addition should be made to get_previous_comments_link() as well, although it's obviously unnoticeable on the first page.",MomDad
Future Releases,16134,Check capabilities/role before adding comment links to email,,Comments,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-07T10:23:06Z,2011-02-19T20:35:22Z,"Currently the Trash it, Delete it, Spam it are added to comment notifcation emails, which are sent to the author.

However, the author may have had their role changed down to a lower-role (or had capability removed) since they wrote the post, and no longer would have permissions to use the links added to the email. 

It may also be the case that a subscriber user was assigned as the Post Author (perhaps as a sort of Guest Author) for a post, and never had the permissions to use those links.

Can some sort of check be added, before these links be added to the email?",GaryJ
Future Releases,16430,"Comment 'Reply' button still present when comment max depth has been reached, just without text.",,Comments,3.0.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-01-31T22:12:56Z,2013-01-15T23:41:09Z,"With comment max depth set, in my case, to 5 on the admin panel, the div for the reply link would still appear even though the text that says 'Reply' would not. Basically, it was an empty div with class=""reply"". The fix is quite easy, which I implemented in test on one of my WP sites.

Around line 1372 of wp-includes/comment-template.php, there is the following is code:
{{{
<div class=""reply"">
<?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
}}}

This can simply be enhanced to this:
{{{
<?php if ( $depth < $args['max_depth'] ) : ?>
<div class=""reply"">
<?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
<?php endif; ?>
}}}

I just added a quick check to make sure our current comment depth did not meet (or somehow exceed?) our set max depth.",TheGremlyn
Future Releases,22380,Consolidate the API hooks comment,,Comments,3.4,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-11-07T17:00:16Z,2012-11-13T01:09:24Z,"Many functions of API comments have hooks unusable because they do not provide parameters that provides the function. 

In general, these functions provides a $comment_ID argument, but it's not present in the hook...

Sample 
{{{
function comment_author( $comment_ID = 0 ) {
	$author = apply_filters('comment_author', get_comment_author( $comment_ID ) );
	echo $author;
}
}}}

Fixed sample :

{{{
function comment_author( $comment_ID = 0 ) {
	$author = apply_filters('comment_author', get_comment_author( $comment_ID ), $comment_ID  );
	echo $author;
}
}}}
",momo360modena
Future Releases,12480,Moderated comments don't show blank links,,Comments,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-03-02T18:29:09Z,2010-11-13T07:48:54Z,"Comments caught in moderation won't show the blank links inserted into them unless you edit them.

A comment with html code like <a href='http://example.com/'></a> will not show that link on the moderation page.",donncha
Future Releases,11248,Paged wp_list_comments() should always output something,,Comments,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2009-11-24T06:00:23Z,2010-03-13T22:04:21Z,"Enable comment paging on your blog and visit `http://yourblog.com/a/single/post/comment-page-999999/`. Note no comments will be displayed.

There's situations where the comment form will redirect you back to the wrong page (for example if you mess with the type parameter and exclude pings). The Walker should detect if there's no comments to be displayed on the requested page and if that's the case, then display the latest page that actually has comments.",Viper007Bond
Future Releases,18762,Pagination does not work correctly on walker in reverse order.,,Comments,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-23T21:08:42Z,2012-05-02T17:26:33Z,"Steps to reproduce:
1. Go to Discussion and change Comments should be displayed with the  comments at the top of each page to ""newer"" (that is, set comment_order='desc'). 
2. Make sure your theme is paginating comments. Make sure you have more than the page limit of comments.
3. Note that the first page does not actually contain the newest comments (they're off by a page, or perhaps they're just sorted in one way for the pagination and a different way for the inner page sort).

If you check out the $start, $oldstart and $end variables, the way it was written before the patch, $start gets set to 11 (page limit + 1) on page = 1, the way it is written after the patch, start is 0, as it should be. 

All I've done is swapped the order of $start and $end being updated. This fixes the starting point. This needs to be tested in more detail before actually deploying it, but there is definitely a pretty serious bug here.",gburtini
Future Releases,20050,Proper Cap check in edit_comments.php,,Comments,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-15T17:36:51Z,2012-02-15T17:56:25Z,"See #20025.
As in edit.php?post_type=custom_post_type
and edit-tags.php?taxonomy=custom_taxonomy

When filtering comments for a specific post type
The fix in cap is more appropriate",nprasath002
Future Releases,23939,Wrong capability check in wp_ajax_replyto_comment,,Comments,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-04T18:39:21Z,2013-04-05T01:06:32Z,"The wp_ajax_replyto_comment function in the wp-admin/includes/ajax-actions.php checks the ""edit-post"" capability instead of the ""edit-comment"" capability.

Attached a tested patch. ",fgauthier
Future Releases,11566,clean_comment_cache() does not clean $GLOBALS['comment'],,Comments,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2009-12-22T21:18:23Z,2011-04-28T22:55:15Z,"I am trying to add links to comment list, which will allow to delete comments directly without need to move them to trash first (and with trash enabled). For posts/pages I found working workaround: hook `trashed_post` and `call wp_delete_post()` again from. 

Unfortunately similar approach for comments does work. As I checked, `wp_trash_comment()` calls `get_comment()`. The latter function implements simple comments cache using `$GLOBALS['comment']`. When you change comment status to `trash`, `wp_set_comment_status()` clears cache by calling `clean_comment_cache()`, but it leaves that global set. As a result my workaround does not work. 

I think that `clean_comment_cache()` should clear that global too.",sirzooro
Future Releases,17778,get_comment_pages_count() returns > 1 when pagination is disabled,,Comments,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-13T05:01:58Z,2011-07-09T11:10:47Z,"If pagination is disabled, get_comment_pages_count() will still return the number of pages possible if pagination was enabled.

As a workaround, themes & TwentyEleven are having to get to see if pagination is enabled first:
{{{
<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?>
}}}

I'd suggest that if comment pagination is not enabled, this function should return 0 or 1 (0 = no comments, 1 = 1 page).

The addition of an extra block after the [http://core.trac.wordpress.org/browser/trunk/wp-includes/comment.php#L740 empty comments check] would be:
{{{
if ( ! get_option('page_comments') )
	return 1;
}}}",dd32
Future Releases,20006,get_comments (and WP_Comment_Query) does not accept multiple post_type,,Comments,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-10T05:46:52Z,2012-08-14T08:34:53Z,"Although get_comments was recently improved to support post_types, it does not seem to properly handle MULTIPLE post_types.

Suppose you need to get the most recent comments for posts, pages, and attachments (attachments don't seem to be included by default).  The following doesn't work, as it only returns comments on attachments (or whichever status is listed first):
 {{{
get_comments(array('number'=>20, 'status'=>'approve', 'post_type'=>array('attachment','post','page')));
}}}

The following doesn't work either, only returning the default post/page comments (taken from the example for multiple category handling at http://codex.wordpress.org/Class_Reference/WP_Query):
 {{{
get_comments(array('number'=>20, 'status'=>'approve', 'post_type__in'=>array('attachment','post','page')));
}}}

A quick look at wp-includes/comment.php, line 327 (WP v3.3.1) shows that the 2nd option will be array_filter'ed away.  Immediately below, all of the WHERE clauses are hardcoded as ""="", which is why there's no way to specify more than one.  As a result, it seems like the only way to get recent comments on posts,pages,and attachments (or any other subset of >1 post_type) is to do multiple calls to get_comments (i.e. one with default params and one for attachments) then merge the results together...effectively requiring twice the work.",Justin_K
Future Releases,13939,get_page_of_comment returns wrong page number when changing threading level,,Comments,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-17T07:58:01Z,2010-11-13T10:04:51Z,"Initial discussion settings:
 * Enable threaded comments 2 levels deep
 * 5 top-level comments per page, first page by default
 * Older comments at top of each page

If I have comments on a post like:

'''cpage 1'''
 * comment-1
 * comment-2
 * comment-3
 * comment-4
 * comment-5
  * comment-6

{{{
$page = get_page_of_comment(6); // returns 1 which is the correct page
}}}

If I modify the initial discussion settings by disabling threading (e.g. changing the threading level to 1), the comments change to:

'''cpage 1'''
 * comment-1
 * comment-2
 * comment-3
 * comment-4
 * comment-5
'''cpage 2'''
 * comment-6

{{{
$page = get_page_of_comment(6); // returns 1 which is incorrect
}}}

This function doesn't follow the same algorithm as what is used to display the comments

This can potentially happen whenever you decrease the threading level from x to x-n",laceous
Future Releases,21448,unfiltered HTML comments from a frame js fix breaks js in windowed comments,,Comments,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-01T21:58:53Z,2012-08-02T17:56:36Z,"Noticed this today.

We have comments loading up in a jquery colorbox on a site being developed and it loads the comment form via ajax.  When it's loaded, the fix in #20812 breaks javascript because the property ""name"" is null.

Attaching a patch after posting this for only executing when `document.getElementById(""_wp_unfiltered_html_comment_disabled"")` != null.",nerrad
Future Releases,14279,wp_new_comment ignores comment_date_gmt and comment_date,,Comments,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-07-12T14:07:06Z,2011-01-27T08:08:52Z,"wp_new_comment takes in a $comment array, but then ignores the comment_date and comment_date_gmt passed into it, instead replacing them with the current time. 

It should only set them if the data passed in is empty or not a date/time. ",johneckman
Future Releases,9959,wp_rel_nofollow_callback adds too many rel/nofollow attributes,junsuijin*,Comments,2.8,low,minor,Future Release,defect (bug),accepted,has-patch,2009-05-28T13:54:35Z,2011-04-13T20:57:31Z,"if you insert a link in a comment, like:


{{{
<a href=""foo"" rel=""bar nofollow"">
}}}

wp_rel_nofollow_callback() turns that into:

{{{
<a href=""foo"" rel=""bar nofollow"" rel=""nofollow"">
}}}

Here's a correct implementation of a strip_nofollow() function:

http://plugins.trac.wordpress.org/browser/sem-dofollow/trunk/sem-dofollow.php

We'd probably want to do the same in WP, and then reverse it: add rel=nofollow if no rel is present, and add a nofollow to the rel if it's not in there already.",Denis-de-Bernardy
Future Releases,13103,"""Unknown character set"" during install into database reports successful install.",barrykooij,Database,3.0,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-04-24T15:10:23Z,2012-11-07T23:30:23Z,"During editing of the wp-config.php, I changed 

{{{

define('DB_CHARSET', 'utf8');
}}}
to
{{{

define('DB_CHARSET', 'utf8_general_ci');
}}}
Which I thought was valid.

After clicking ""Install Wordpress"" I got a page full of:
{{{
WordPress database error: [Unknown character set: 'utf8_general_ci']
}}}
And at the bottom, ""Success"" with a login prompt, but nothing was actually created in the database.

I think WP shouldn't report a successful install if the user happened to accidentally change this value (or another) during install as it would cause confusion.

I used a svn checked out version of WP on 2010-04-24 on my local computer using PHP5 and apache2, but I think this is really a problem since 2.6 (or when the current install system was implemented).",MECU
Future Releases,21870,@ error control operator hides fatal error on mysql_fetch_object,,Database,1.5,normal,normal,Future Release,defect (bug),new,has-patch,2012-09-11T14:59:36Z,2012-11-07T19:49:19Z,"I ran a get_posts() query that took me a while to track down to the @ error control operator on the mysql_fetch_object call (see wp-db.php:1219 in trunk), therefore PHP was silently die'ing on me because of a memory limit error.

I'm curious as to what use cases there are for the error control operator to be used here. In my case, I want to see these errors and fix my code accordingly, or tailor my query to the memory constraints, or rethink my data relations in the database.

",ericlewis
Future Releases,21504,Not checking if apply_filters exists before calling it in WP_DB,,Database,3.4.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-08-06T22:49:52Z,2012-10-25T21:17:48Z,"Prior to version 3.4, there was a check to verify that apply_filters existed before calling it in wp-includes/wp-db.php.  


{{{
// some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
if ( function_exists( 'apply_filters' ) )
  $query = apply_filters( 'query', $query );
}}}


In version 3.4 and above, that check doesn't exist anymore, and can throw an error. There is still a comment indicating that a check should be made, but the actual code to perform the check is now gone. This is around line 1081


{{{
// some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
                 $query = apply_filters( 'query', $query );
}}}




Here is the github blame view to show when the code was remove (I'm not sure how to find this same view in your svn):

https://github.com/WordPress/WordPress/commit/81ed9a7563e5ad4c0edccd059bc4ea7d9c1a4a10

There's no explanation about why the code was removed, so would it be possible to add it back in?

Thanks!

Julia
",jdkoelsch
Future Releases,16107,WordPress Database Error Logging Extravaganza,,Database,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-05T12:41:00Z,2011-01-05T14:33:05Z,"If PHP error logging is enabled, the wordpress database class will log errors to file by using the error_log() function. This is a PHP function.

While doing so, it does not reflect the PHP configuration setting for {{{log_errors_max_len}}} which defaults to 1024 (bytes).

While not doing so, the database class can log extremely long queries into the file creating multiple gigabytes quite quickly.",hakre
Future Releases,16762,wpdb::$base_prefix is not documented,,Database,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-05T16:17:01Z,2012-08-29T19:59:25Z,"Probably wpdb::$base_prefix has been merged into from MU and not further specified then.

It ''genereally'' can be replaced with {{{wpdb::get_blog_prefix(0)}}} when the MULTISITE constant is defined. That is are after wp-settings.php has been included (wp-config.php, wp-load.php), even on SHORTINIT.

It ''might'' be that this function call does not cover all cases needed because if MULTISITE is not defined when called, it will not return the {{{wpdb::$base_prefix}}}.

More insight into MU is needed, feedback appreceated. Some places look like that they are not aware of the wpdb::get_blog_prefix() function. Probably legacy MU code.

Related: #16756",hakre
Future Releases,21987,function get_post_time -  if gmt  (unset),,Date/Time,,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-09-24T19:33:18Z,2012-12-05T08:47:55Z,"For no publish items and mode auto-draft = close 

if GMT is unset ('0000-00-00 00:00:00' == $post->post_date_gmt)
at wp-includes/general-template.php function get_post_time effect list table -> date column (Last Modified -> %s hours)

Effect code : wordpress\wp-admin\includes\class-wp-posts-list-table.php
class WP_Posts_List_Table -> function single_row  
Line 579 : $time = get_post_time( 'G', true, $post );


I don't know if it affects something else ...

",soficgr
Future Releases,20328,get_date_from_gmt assumes current gmt_offset is appropriate,nacin,Date/Time,,normal,normal,Future Release,defect (bug),reopened,has-patch,2012-03-29T22:02:24Z,2013-05-14T13:22:54Z,"For locations that have daylight savings time, the gmt_offset changes over time. Yet get_date_from_gmt assumes the offset that is in effect now is always the right offset. But I might be trying to display date/times that are in a different timezone transition than the current one.

Proposed fix is to use timezone_transitions_get() as wp-admin/options-general.php does in order to translate those date/times accurately.",scottconnerly
Future Releases,16478,"""Get Shortlink"" button disappears if you edit the permalink",,Editor,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-02-07T08:44:02Z,2012-10-08T08:33:15Z,"Go to edit a post and change the permalink. The ""Get Shortlink"" button is overwritten by the AJAX response. I think it's a simple case of moving where the shortlink is added, see patch.",solarissmoke
Future Releases,21563,"""Save as"" button disappearing on edit/new post screens",,Editor,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-13T15:15:58Z,2013-03-11T22:01:41Z,"When switching ""visibility"" from ""public"" to ""private"", the ""Save as (draft/etc.)"" button disappears. It doesn't come back when switching to ""public"" anymore.

[[Image(http://i.imgur.com/EExwB.png)]]",F J Kaiser
Future Releases,16077,Placement of link popup in full-size visual editor when browser window is resized,garyc40,Editor,3.1,normal,normal,Future Release,defect (bug),assigned,has-patch,2011-01-02T19:47:30Z,2013-01-22T16:54:13Z,"To recreate: Writing a post in the full-window view of the visual editor, click the link popup. While popup open, resize browser window to be smaller. Link popup stays in original location, even if the window gets small enough to cut it off. 

You can move the link popup by dragging the top bar. If you do this, then the link popup will stay in the new place b/c our save state stuff, even when you're writing in the regular size visual editor.

Preferred UX: if browser window resizes, have link popup recenter itself in the overlay. ",jane
Future Releases,20114,Posts and Pages w. private visibility don't show up in existing content,,Editor,3.3.1,normal,major,Awaiting Review,defect (bug),new,has-patch,2012-02-24T20:58:52Z,2012-03-07T13:12:29Z,"when inserting or editing a link in the editor (post or page) pages & posts with private visibility don't show up in the ""existing content"" section of the ""insert/edit link"" popup. All pages/posts with public visibility are shown. This doesn't make sense as I have all necessary privileges to see and edit these private pages/post. Even the admin doesn't see the private pages. Very annoying.",heinrichgeps
Future Releases,22567,Preview button triggers popup blocker in some browsers if no title is set,,Editor,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-23T21:41:35Z,2012-12-05T21:31:33Z,"Steps to reproduce:

1. Click on Add New (for a post)
2. DO NOT enter a title.
2. Start typing in the post body.
3. Click Preview

Expected result:

New tab opens with preview.

Actual result:

If popup blocking is disabled, a new window opens with the preview.  On subsequent clicks of the Preview button, it reverts to opening a new tab as it should.

Found in WordPress 3.5-RC1.",miqrogroove
Future Releases,20016,Spellchecker returns suggestions with wrong encoding,,Editor,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-10T17:59:00Z,2012-02-10T20:34:01Z,"Steps to reproduce:

* Create new post
* Type 'canamo'
* Set spellcheck language to Spanish
* Click on 'canamo' for suggestions

",koke
Future Releases,19666,Switching from HTML to Visual editor removes some line breaks inside PRE,,Editor,3.3,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-12-25T21:34:59Z,2013-02-09T12:49:25Z,"All line breaks inside PRE elements used to transmit correctly when switching editor mode from HTML to Visual. Around WP3.1 or so, line breaks started to be removed if they happened to be inside an inline element. The common use case is a single CODE element in a PRE element:
{{{
<pre><code>Line 1
Line 2
Line 3</code></pre>
}}}
The above markup used to be handled correctly when switching between editor modes in either direction, but now the line breaks are converted to spaces when switching from HTML to Visual mode.

Many users have posts with a single CODE inside PRE, as it's semantically correct for source code, and is the convention required to support some syntax highlighters like Chili.",mrclay
Future Releases,9716,WordPress Theme/Plugin editor adds blank lines,,Editor,2.7.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2009-05-03T20:32:01Z,2012-04-20T16:29:42Z,"When I edit theme css in theme editor in WP admin
!WordPress reformats my CSS and adds a blank life between entrys in css.
it adds a cr and line break ....
In other words if you have a 100 line css
download with FTP look at in text editor
it is now 200 lines
as WP added blank lines to css
it should not be adding things to the CSS?

It may only do this when it wraps window but I think not it appears to add blank lines.

Imagine the damage to a 1000 line CSS it spaces every entry by 1 line!!!!!!!!!!!!!! It stiil works but it messes it up.

THAT IS COFIRMED ONE EDIT DOUBLE SPACE ENTIRE CSS... VERY BAD 

Here is part of the problem but not the double space in total.
When you down load the file in FTP and it is in windows encoding
the line endings.
So you ftp back and all is fine.
Now you are at the coffee shop and what a quick change, so you login to WP admin and theme editor edit CSS.
Now you get home and download in ftp to continue your work on CSS.
The file is now mac formatted (or thinks it is) so when you edit the line endings do not contain the right line breaks for windows OR WP theme editor as it ignores them. This explains the wierd spacing though not the double spacing .... why is it converting to mac and yet ignores mac?!
weird.. it adds a CR tag
must be bug
again though its still double spacing on edit IN windows line ending though if you down load cSS its tagged mac format...


Use notepad 2 or Note pad plus to see the error.
When ever you edit with !WordPress editor it adds cr and says css is now mac formatted.

FTP download the file and now see all the extra CR's it adds.

So it likes CR only so I convert to CR only and it beaks CSS it wants CR LF to work but if that is the case why does the online editor add CR only????????????????????????? 
",Vistronic
Future Releases,20903,Exporter gets stuck in a loop a loop/break in the category hierarchy,westi,Export,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-06-11T11:26:07Z,2012-06-12T08:13:02Z,"Ideally it should be impossible for a loop/incorrect parentage in a category hierarchy to exist.

But sometimes they do.

If one does exist then {{{export_wp()}}} gets stuck :(

It gets stuck in this code:

{{{
		// put categories in order with no child going before its parent
		while ( $cat = array_shift( $categories ) ) {
			if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) )
				$cats[$cat->term_id] = $cat;
			else
				$categories[] = $cat;
		}
}}}

Similar to #20635 but different.",westi
Future Releases,18792,Wrong FROM email when using wp_mail and built in mail() function,westi*,External Libraries,3.2.1,normal,normal,Awaiting Review,defect (bug),accepted,has-patch,2011-09-27T16:35:28Z,2012-05-04T14:43:56Z,"When using wp_mail in combination with mail() function, then From: envelope passed through -f parameter to sendmail is not set correctly.

Here is simple patch, that fixes the problem:

{{{
--- pluggable.php	2011-09-26 20:54:02.219330702 +0200
+++ pluggable.fixed.php	2011-09-27 18:19:21.283454810 +0200
@@ -394,8 +394,7 @@
 	}
 
 	// Plugin authors can override the potentially troublesome default
-	$phpmailer->From     = apply_filters( 'wp_mail_from'     , $from_email );
-	$phpmailer->FromName = apply_filters( 'wp_mail_from_name', $from_name  );
+	$phpmailer->SetFrom(apply_filters('wp_mail_from', $from_email),apply_filters('wp_mail_from_name', $from_name));
 
 	// Set destination addresses
 	if ( !is_array( $to ) )
}}}
",pigster
Future Releases,16747,'feedtype_enclosure' hooks not triggered without custom field,,Feeds,3.1,normal,trivial,Awaiting Review,defect (bug),new,has-patch,2011-03-04T13:42:07Z,2011-03-04T15:48:25Z,"file: '''wp-includes/feed.php''', functions: '''atom_enclosure()''' and '''rss_enclosure()'''

If a ""enclosure"" custom field is not provided, the ''atom_enclosure'' and ''rss_enclosure'' filters are never triggered (because they're inside an if statement).

Wouldn't it make sense to replace this  ...
{{{
function atom_enclosure() {
	if ( post_password_required() )
		return;

	foreach ( (array) get_post_custom() as $key => $val ) {
		if ($key == 'enclosure') {
			foreach ( (array) $val as $enc ) {
				$enclosure = split(""\n"", $enc);
				echo apply_filters('atom_enclosure', '<link href=""' . trim(htmlspecialchars($enclosure[0])) . '"" rel=""enclosure"" length=""' . trim($enclosure[1]) . '"" type=""' . trim($enclosure[2]) . '"" />' . ""\n"");
			}
		}
	}
}
}}}

... with this ...
{{{
function atom_enclosure() {
	if ( post_password_required() )
		return;

	$output = '';
	foreach ( (array) get_post_custom() as $key => $val ) {
		if ($key == 'enclosure') {
			foreach ( (array) $val as $enc ) {
				$enclosure = split(""\n"", $enc);
				$output = '<link href=""' . trim(htmlspecialchars($enclosure[0])) . '"" rel=""enclosure"" length=""' . trim($enclosure[1]) . '"" type=""' . trim($enclosure[2]) . '"" />' . '\n';
			}
		}
	}
	echo apply_filters('atom_enclosure',$output);
}
}}}

... so that those functions can be hooked via plugins, even if the custom field doesn't exist?

''In my particular case, I wanted to use a different--already existing--custom field name to pull the url from, but I couldn't hook '''atom_enclosure()''' because '''apply_filters()''' is only triggered if the ""enclosure"" custom field name exists.''",tcloninger
Future Releases,14363,Atom feed is broken when WordPress is served as application/xhtml+xml,,Feeds,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-07-20T14:57:52Z,2011-05-10T18:54:37Z,"Atom feed is broken when WordPress is served as application/xhtml+xml because of the difference in html_type_rss().

The patch attached also deprecates the_excerpt_rss() with a new function called 'the_excerpt_feed'.",peaceablewhale
Future Releases,11060,Content-Type of XML feeds is misstated as 'text/html',dd32,Feeds,2.8.6,normal,normal,Future Release,defect (bug),new,has-patch,2009-11-02T01:56:40Z,2010-02-05T13:22:33Z,"I access blog XML feeds via a caching proxy (squid).  The Content-Type in the HTTP response headers is initially reported correctly as 'text/xml', but when a subsequent request is made and the object is stale, wordpress sometimes returns a '304 Not Modified', but also incorrectly re-characterizes the Content-Type as 'text/html'.  Example:

{{{
HTTP/1.0 304 Not Modified
X-Pingback: http://wordpress.org/development/xmlrpc.php
Last-Modified: Sat, 31 Oct 2009 21:28:00 GMT
ETag: ""a4aa82a49dbe294617210eb367fa0997""
Content-type: text/html
Date: Mon, 02 Nov 2009 01:25:17 GMT
Server: LiteSpeed
Connection: close
}}}
I've seen this on 'wordpress.org/development/feed' (LiteSpeed), on a wordpress.com hosted blog (nginx), and on an independent site running wordpress (Apache).
",celejar0
Future Releases,10511,Enclosure Custom Fields are automatically deleted,,Feeds,2.8,high,major,Future Release,defect (bug),reopened,has-patch,2009-07-29T14:20:16Z,2012-02-02T16:36:06Z,"This bug was introduced by Ticket [http://core.trac.wordpress.org/ticket/6840 6840].  I and many other people only wanted specific fields added as an enclosure (like media files for podcasting) and have added those enclosures as custom fields.  Now any time we edit those hundreds of posts, or create a new post, those custom fields are deleted by this ""bug fix"" and there is no way around it without changing code in the functions.php file and then having to redo it anytime an update comes out.

Was there no thought put into the great idea of ""let's delete any enclosure field that doesn't have a link in the body of a post""?  Wasn't the whole idea of custom fields originally for things like enclosures?",animepulse
Future Releases,19885,Feed wfw Namespace no longer valid,,Feeds,3.3.1,normal,normal,Awaiting Review,defect (bug),new,close,2012-01-24T16:00:06Z,2012-01-31T07:45:00Z,"Related to this post [http://wordpress.org/support/topic/rss-feed-wellformedweborg-offline?replies=2]

A broken link scan of our website revealed that the link in the feeds to http://wellformedweb.org/CommentAPI/ (for the wfw namespace) is invalid. Going to that website reveals that the site has been taken down by the hosting company.

I found 2 references to that namespace in /wp-includes/feed-rss2.php and /wp-admin/includes/export.php and removed them, and the instances to the wfw namespace within the feed content. This fixed my issue.

This begs the larger question: should this be removed/replaced in the core if the site that references the namespace is no longer available?

Verified here: [http://ww2.aaronwagner.net/feed/]",ajwagner777
Future Releases,19998,Feeds can contain characters that are not valid XML,,Feeds,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-09T16:28:47Z,2013-02-12T03:11:21Z,"It is possible for any of the feeds to contain control characters which are not valid in XML e.g. http://www.fileformat.info/info/unicode/char/1c/index.htm

When outputting user supplied content in an XML context we should strip these control characters - they are unprintable and just break feed parsers.

http://en.wikipedia.org/wiki/Valid_characters_in_XML has a good list of what is and isn't valid.

I guess we need a {{{strip_for_xml()}}} function or something.",westi
Future Releases,19017,No way to add XSL to Feeds,,Feeds,3.2.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-10-20T16:50:31Z,2011-10-26T06:17:45Z,"To add XSL to a feed, for nicer display of feeds in browser, a line needs to be inserted before the root RSS tag.
For a plugin to add the correct code, there should be an action between `<?xml?> and `<rss>`
Perhaps something like `<?php do_action('rss2_xsl'); ?>` on line 12 of `feed-rss2.php`?",pathawks
Future Releases,17853,"Posts_per_page=-1 overwritten in query.php if is feed, (An ics feed needs all)",,Feeds,3.2,normal,normal,Awaiting Review,defect (bug),new,close,2011-06-20T03:58:29Z,2012-10-04T02:15:27Z,"Similar to [http://core.trac.wordpress.org/changeset/15852 15852], the posts_per_page argument to wp_query, is being overwritten in lines 1991 of query.php


{{{
if ( $this->is_feed ) {
    $q['posts_per_page'] = get_option('posts_per_rss');
}}}

In the case of an ics feed - ALL requested posts must be returned for a complete feed, so need to be able to pass posts_per_page=-1 as with other queries in the front end.

This is in wp 3.2 RC1 and earlier.

As far as I can make out, the only way around for now is to add a post_limits filter and remove the LIMIT in the query when it is a ics feed. (ie return empty string)

While the workaround works, it would make more sense of the post_per_page argument worked as in front end queries.

Possible workaround (use in custom feed function only)

{{{
...
	add_filter('post_limits', 'amr_remove_limits');
...
function amr_remove_limits () {
    return ('');   
// return an empty string so that NO limits are imposed in the query
}
}}}


",anmari
Future Releases,20888,RDF Feed validation problems.,,Feeds,3.3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-08T11:05:19Z,2012-06-08T11:05:19Z,"The RDF feed produced by feed-rdf.php produced validation errors due to description either not encoded correctly or not wrapped in CDATA tags.

To reproduce view a RDF feed: http://en.blog.wordpress.com/feed/rdf/

To see the validation errors: http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fen.blog.wordpress.com%2Ffeed%2Frdf%2F


Attached is a patch to fix this issue.

",hootbah
Future Releases,3260,"XML output (rss, atom, rdf ...) should always use UTF-8 or CDATA for user input",,Feeds,2.8.2,normal,normal,Future Release,defect (bug),new,has-patch,2006-10-18T02:33:58Z,2009-11-20T15:32:29Z,"If none UTF-8 is used, user generated text like titles or categories may contain unallowed entities. The elements <title>, <tagline>, <dc:subject>, <category> (there may be more) are not protected width <![[CDATA ]]>.

The conversion can be done width the PHP MulitByte function. If MB is not available, the <![[CDATA should be used instead.

Please contact me for development help.",deremder
Future Releases,9134,cannot remove the link to comments in feeds,,Feeds,2.7,lowest,trivial,Future Release,defect (bug),new,has-patch,2009-02-15T03:24:36Z,2011-03-20T18:49:34Z,"In feed-rss2.php, '''etc.''' there is no easy to turn off the comments link, for blogs that
have no, and don't allow, comments. So the link
{{{
<comments><?php comments_link(); ?></comments>
}}}
is just a waste. Same with
{{{
<wfw:commentRss><?php echo get_post_comments_feed_link(); ?></wfw:commentRss>
}}}
Yes. I can turn off comments, and remove all comments, but I cannot
remove ''the link'' to comments (without hacking the core.)
",jidanni
Future Releases,18056,dc:creator needs to be escaped in RSS feed,,Feeds,3.2,normal,major,Awaiting Review,defect (bug),new,has-patch,2011-07-10T03:46:15Z,2011-07-10T03:46:15Z,"If the author name contains any special characters, they might end up in the RSS feed unescaped, causing failed feed validation and thus causing problems for many readers.

The code now is:

<dc:creator><?php the_author() ?></dc:creator>

Shouldn't this be:

<dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>

Or: 

<dc:creator><?php htmlspecialchars(the_author()) ?></dc:creator>

This might be a result of a custom author plugin not escaping these characters on the way into the database, but Wordpress should handle this more robustly to prevent plugin authors from messing things up like this.",Nettsentrisk
Future Releases,18505,http 404 sent for the RSS feed when there are no posts - should be 200,,Feeds,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-24T03:33:52Z,2011-08-25T00:13:02Z,"for sites with no posts, the HTTP status code returned for the RSS feed is 404, but since the address was a valid address and it just happens that the content is empty, a 200 status should be sent.

(It annoys link checkers which then report that there are broken link at the site because by default for most themes there is a link to the RSS feed in the header) ",mark-k
Future Releases,2875,https enclosures fail on post.,,Feeds,2.0.2,normal,major,Awaiting Review,defect (bug),reopened,has-patch,2006-06-29T10:35:51Z,2012-05-17T19:20:25Z,"I was noticeing a problem in that when you post on a standard HTML site, enclosures get added into postmeta on publishing a post. When running off an HTTPS site, this no longer happens.

The reason is the regex only looks for HTTP. Line 1032 of wp-includes/functions.php

{{{
  preg_match_all(""{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x"", $content, $post_links_temp2);
}}}

Add the following under this line and it works.
{{{
  preg_match_all(""{\b https : [$any] +? (?= [$punc] * [^$any] | $)}x"", $content, $post_links_temp2);
  foreach($post_links_temp2[0] as $link) {
    $post_links_temp[0][] = $link;
  }
}}}
There may be a nicer way to regex that up, but I couldn't add it.

I have raised it as high/major because it is a bit of a hole that I cannot override the functionality of, and I use the RSS feed for podcasting - which WordPress does not support from an HTTPS site.",nigelkane
Future Releases,10831,Autoupgrade: Synchronous FTP client fails while plugin upgrade/installation (on some systems),dd32,Filesystem,2.8.4,normal,normal,Future Release,defect (bug),reviewing,has-patch,2009-09-23T15:52:29Z,2011-03-22T00:46:45Z,"Decription here
http://wordpress.org/support/topic/288093

Apache/2.2.13 (Unix) DAV/2 mod_ssl/2.2.13 OpenSSL/0.9.8k configured

PHP 5.2.10 with Suhosin-Patch 0.9.7 (cli) (built: Jul 14 2009 11:56:54)

pure-ftpd-1.0.22-1

I solved by changing some lines of code in class-ftp-sockets.php 
(_exec and _readmsg)

Below the patch:
http://darkman.it/x/class-ftp-sockets.patch
",darkman82
Future Releases,23845,Install new theme via FTP failed,,Filesystem,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-22T12:19:03Z,2013-04-10T21:12:23Z,"New theme installation via FTP has failed when we specified custom FTP_BASE folder.  If we try this theme installation , wordpress shows error message: ""Unable to locate WordPress theme directory"". This was because search_for_folder method do not respect FTP_BASE setting and allows to walking on parent directories.  All solutions I found in google is ugly hacks who only mask the problem but does not resolved it
I attached patch  example who resolve this problem. I hope is useful and  will help to repair this bug.",Przemyslaw Plewa
Future Releases,10424,change get_filesystem_method()'s code for direct to reflect actual purpose,dd32,Filesystem,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2009-07-16T11:38:41Z,2010-11-13T01:37:42Z,"due to tickets such as #10205 and #10423 I propose we add some documentation, or change the code a bit to reflect to others the intended purpose of the code.

Eg, something such as this could potentially work:
{{{
if ( file_owner($temp_file) !== false && file_owner(__FILE__) === file_owner($temp_file) ) {
//use direct
}
}}}

Too many people assume its a typo, and just a complex is_writable() call..",dd32
Future Releases,4539,Abbreviated year followed by punctuation or markup doesn't texturize,jmstacey,Formatting,2.5,low,normal,Future Release,defect (bug),reopened,has-patch,2007-06-26T03:36:36Z,2012-12-17T14:49:10Z,"An abbreviated year followed by punctuation or markup doesn't texturize properly.

e.g. (Bruce Sterling, '97) is texturized as (Bruce Sterling, &#8216;97) when the apostrophe should be texturized as &#8217;

e.g. <li>Casino Royale '06</li> is texturized as <li>Casino Royale, &#8216;06</li> when the apostrophe should be texturized as &#8217;",pah2
Future Releases,10823,Bad handling of ampersand in post titles,,Formatting,2.8.4,normal,minor,Future Release,defect (bug),new,has-patch,2009-09-21T10:59:50Z,2013-01-23T22:12:06Z,"Titles with ampersand (&amp;) are not correctly handled:[[BR]]

1/ the_title_attribute() doesn't transform & to &amp; causing XHTML validation errors[[BR]]

2/ titles with & followed by ; generate truncated post name (slug)
e.g. ""Test this & believe ; what ?"" => ""test-this-what""",Commeuneimage
Future Releases,18664,Formatting/Cleanup for wp-admin/includes/class-wp-posts-list-table.php,westi,Formatting,,lowest,trivial,Future Release,defect (bug),reviewing,has-patch,2011-09-14T20:57:51Z,2011-10-12T17:13:19Z,"wp-admin/includes/class-wp-posts-list-table.php is extremely hard to read.

Created this ticket to move conversation/patches for cleanup out of #17958",DH-Shredder
Future Releases,14674,HR destroys HTML,,Formatting,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-08-23T15:03:15Z,2012-09-14T22:57:46Z,"if you add <hr /> to the post (via HTML editor, or via enhanced TinyMCE editor) followed by normal text id do not add the <p> for that paragraph, but add the finishing </p>

so it than looks like

<p>some text</p>
<hr>some other text</p>

it can be solved by adding extra line break after <hr> but after reediting the post, the linebreak disapears and must be added again. ",thomask
Future Releases,23185,Hyphens surrounded by non-breaking spaces are not texturized,,Formatting,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-11T20:13:11Z,2013-01-14T01:45:52Z,"Thanks to Ticket #8161, a single hyphen or double hyphen surounded by space is converted to an en-dash or em-dash, respectively.

The problem is this conversion doesn't take place as expected when the space immediately before or after the affected hypehns is a non-breaking space.

Example paste the following into a post as HTML and view it in a browser after texturization:
{{{
Line 1&nbsp;-&nbsp;Non-breaking spaces around the hyphen.<br>
Line 2 - Regular spaces around the hyphen.<br>
Line 3&nbsp;- Non-breaking space before the hyphen.<br>
Line 4 --&nbsp;Non-breaking space after the double-hyphen.<br>
Line 5 -- Regular spaces around the double-hyphen.
}}}
Only the lines where ""Regular spaces"" are around the hyphens get converted as expected.Lines 1, 3, and 4 are not converted to match their regular-space counterparts.

It's reasonable to use non-breaking spaces in web content and I think that for situations where a non-breaking space is used it should imply the same kind of texturization for the hyphens as a regular space does.

The attached patch removes the static replacement rules for hyphens and adds dynamic rules to meet this expectation. I had to add a dynamic rule '--' to prevent it being prematurely converted in the static phase, when it was surrounded by appropriate spacing. Since I havd to move that one from static to dynamic, it made sense to me to just have all the hyphen-conversion behavior in one place in dynamic.
",redsweater
Future Releases,16495,Make iso8601_to_datetime a bit more compliant,,Formatting,3.0.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-02-08T19:37:09Z,2011-03-16T07:21:44Z,"With a valid ISO 8601 date string with dashes in the date or decimal fractions for seconds, this function will fail to parse it correctly. The attached patch updates the regex to optionally accept dashes and decimal fractions for seconds (which are ignored). It also uses a variable for the regex since it was duplicated.",chrisscott
Future Releases,20124,Smilies Fail Combinations,,Formatting,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-25T22:34:25Z,2012-02-26T12:37:54Z,"I have found that certain combinations of smilies break the monster of a regular expression that parses them.

{{{
8-O :-(]
8-) 8-O
8-) 8O[
8-) :-(
8-) :twisted:
8O :twisted: :( 8-( :(
}}}


...are some examples where the regular expression appears to be failing to match. Any smilie after a smilie with an 8 in it appears to be skipped. Will try to pinpoint the flaw in the regexp soon.",soulseekah
Future Releases,22823,Texturize should handle apostrophes before primes,,Formatting,3.4.2,normal,minor,Future Release,defect (bug),new,has-patch,2012-12-08T04:48:06Z,2013-02-26T07:14:59Z,"Not sure if anyone else noticed this, but my recent post on make/core exhibited an odd bug in wptexturize() —

{{{
The new target for WordPress 3.5′s release is Monday
}}}

Note how that's a prime — `&#8242;` — rather than an apostrophe, `&#8217;`.

Switching the rules seems to work without breaking any unit tests.",nacin
Future Releases,6297,Unbalanced tags across more and nextpage tags,,Formatting,2.5,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2008-03-19T09:55:50Z,2013-04-26T11:39:08Z,"It's easy to produce broken front page markup by including a --nextpage-- tag that breaks an enclosing bold or italic tag.  There's some code in get_the_content that fixes this for --more-- tags, but it doesn't handle --nextpage--, and it'd be more efficient to do it at post save time.

The enclosed patch fixes this by splitting the content into slices at those boundaries and separately balancing each slice.  Balancing happens in the content_save_pre action.  No filtering is needed on the output side for posts saved after this filter.

It was a bit of a struggle figuring out where to fit this but I think the solution is fairly clean.  It includes a new split_nextpage() function that can be used instead of ad-hoc regexps for splitting a post into pages.

",tellyworth
Future Releases,15367,WordPress strips multiple line breaks inside of <pre> tags,garyc40,Formatting,3.1,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-11-10T01:39:33Z,2012-09-12T19:49:52Z,"Write a post:

{{{
<pre>
This


is




a
test.
</pre>
}}}

You end up with this:

{{{
<pre>
This

is

a
test.
</pre>
}}}

Probably related to `wpautop()` I imagine.",Viper007Bond
Future Releases,10041,like_escape() should escape backslashes too,,Formatting,2.8,high,normal,Future Release,defect (bug),reopened,has-patch,2009-06-05T11:18:16Z,2013-04-16T17:04:06Z,"The like_escape() function doesn't escape backslashes.

source:trunk/wp-includes/formatting.php@11518#L2260
{{{
	return str_replace(array(""%"", ""_""), array(""\\%"", ""\\_""), $text);
}}}
should be ...
{{{
	return str_replace(array(""\\"", ""%"", ""_""), array(""\\\\"", ""\\%"", ""\\_""), $text);
}}}
or simply ...
{{{
	return addcslashes($text, '%_');
}}}

Considering multi-byte characters ...
{{{
	if (function_exists('mb_ereg_replace')) {
		$text = mb_ereg_replace('\\\\', '\\\\', $text);
		$text = mb_ereg_replace('%', '\\%', $text);
		$text = mb_ereg_replace('_', '\\_', $text);
		return $text;
	} else {
		return addcslashes($text, '%_');
	}
}}}",miau_jp
Future Releases,17433,localhost is not accepted as email domain,,Formatting,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-05-14T16:55:52Z,2013-02-28T11:52:59Z,"Hi. Tried to install WordPress on a Debian machine not connected to Internet, only for testing purposes, so when the setup procedure asked me for an email address, I used mylogin@localhost. The setup procedure, however, rejected this as ""invalid"".

I think the bug is exactly in wp-includes/formatting.php, where it says:

        // Assume the domain will have at least two subs
        if ( 2 > count( $subs ) ) {
                return apply_filters( 'is_email', false, $email, 'domain_no_periods' );
        }

So: Could you please special-case ""localhost"" in is_email() so that it's allowed as email domain?

I guess the probability of someone using @localhost for email ""by mistake"" is extremely low, so this change will unlikely harm the average user.

Thanks.",sanvila
Future Releases,15046,places where the_title is used instead of the_title_attribute,,Formatting,2.3,normal,minor,Awaiting Review,defect (bug),new,has-patch,2010-10-06T08:34:31Z,2011-03-19T15:09:52Z,"[context]
Semantic-web/metadata related plugins popups more and more.
There is no way to filter according to specific tasks (semantic, style, content, ...)
So monolithic the_title and the_author filters are increasingly used.

the_title_attribute [6132] and the_author_meta [11138] partly address the issue
[/context]

Here are the places where the 'content'-oriented function should be used instead of the 'display'
or 'semantic'-oriented versions (often in the 'title' attribute of <a>) :

default-widgets.php, author-template.php and twentyten/functions.php (patches attached)
",drzraf
Future Releases,17039,the_excerpt() - <!--more--> handling,,Formatting,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-04-03T22:15:48Z,2011-12-23T17:13:50Z,"If a post has a manually inserted <!--more--> ''before'' the default break at the excerpt length, then the_excerpt() fails to generate any [...] or call the ""excerpt_more"" filter. Thus, there is no indication that there is more content to the post.",wpweaver
Future Releases,17847,wp_kses_hair is too stringent,,Formatting,1.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-19T21:29:46Z,2011-11-17T20:38:47Z,"attributes from custom xml name spaces may use colons, but the regex used inside wp_kses_hair doesn't allow them through.  ",jorbin
Future Releases,19877,wp_kses_stripslashes() should account for single quotes too,,Formatting,3.3.1,normal,normal,Awaiting Review,defect (bug),new,close,2012-01-23T14:17:48Z,2012-10-12T20:36:43Z,"Right now, wp_kses_stripslashes() only removes slashes before double quotes, but should do the same for single quotes. 

For example, if wp_kses() is applied to the following string (assuming <script> tags are permitted), the <script> tag's attributes are removed:

<script type='text/javascript' src='foo.js'></script>


If the single quotes are switched to double quotes, the attributes are properly sanitized against the list of allowed tags passed to wp_kses(). Updating wp_kses_stripslashes() to account for both types of quotes eliminates the need to strip slashes before applying wp_kses().",ethitter
Future Releases,18575,wptexturize modifies code inside tag attributes,,Formatting,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-02T22:36:25Z,2011-11-16T00:10:37Z,"In certain circumstances, wptexturize() will try to smart quote things inside attributes, screwing up the markup. For example:

{{{
[hello <a href=""foo[bar]('baz')"">world</a>
}}}

The tokenizer that generates $textarr will split the text like this:

{{{
0: [hello <a href=""foo[bar]
1:('baz')"">world
2:</a>
}}}

and so element 1 gets treated like non-tag text even though it's from an attribute. the easy fix is to not allow starting braces inside a brace set:

old:
{{{
$textarr = preg_split('/(<.*>|\[.*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
}}}

new:
{{{
$textarr = preg_split('/(<[^<]*>|\[[^\[]*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
}}}

this happens on trunk. code is in wp-includes/formatting.php. after the patch, the tokenizer works as intended:


{{{
0: [hello
1: <a href=""foo[bar]('baz')"">
2: world
3: </a>
}}}
",iamcal
Future Releases,10269,wysiwyg bug with shortcodes,,Formatting,2.8,low,minor,Future Release,defect (bug),reopened,close,2009-06-25T11:29:42Z,2012-10-01T17:40:41Z,"When inserting two consecutive shortcodes on separate lines, the wysiwyg editor will change the post's contents on save.

{{{
[caption /]

[caption /]
}}}

gets turned into:

{{{
[caption /] [caption /]
}}}

the odd thing is that only genuine shortcodes get changed, too. the following is left alone:

{{{
[notashortcode /]

[notashortcode /]
}}}

",Denis-de-Bernardy
Future Releases,14819,Gallery shortcode output does not validate.,,Gallery,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-09T14:17:28Z,2012-09-17T05:30:04Z,"I was validating a sites markup when I realized that the gallery shortcode output does not validate where know ""caption"" exists due to the lack of an associated value. Basically a <dt> must be followed by at least one <dd>.

Not sure if dl is the best tag to use for outputting galleries since I imagine lot's of people exclude captions from their galleries. Not sure what the best solution is at the moment.

Thoughts?

This is my first submission so be gentle.",jameslaws
Future Releases,21082,"The Gallery shortcode relies on #gallery-instance to hook the CSS, but the id sometimes isn't specific enough",,Gallery,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-26T18:43:28Z,2013-01-24T09:14:02Z,"The Gallery CSS selector uses the id attribute, which is of the form #gallery-{instance}. On some scenarios (like infinite scroll) a follow up gallery on a another post can have the same #gallery-x selector, thus over-writing the previous gallery style.

Proposed solution: make the #id more unique by including the postid number. (Attached patch.)

(It could potentially impact some themes that used #gallery-1 to style galleries, but theme's shouldn't be using that in the first place, I believe.)

Furthermore, it may be good to change the whole style block to use classes instead of the id so that it's easier for themes to deal with CSS specificity—and helps them not fall back to the #id.",matveb
Future Releases,2877,A Slash too much @ get_pagenum_link(),,General,2.0.3,normal,normal,Future Release,defect (bug),reopened,has-patch,2006-06-29T17:47:30Z,2011-11-05T17:38:23Z," * File: template-functions-links.php
 * Function: get_pagenum_link()

The following code is at the end of the function:

{{{
	// showing /page/1/ or ?paged=1 is redundant
	if ( 1 === $pagenum ) {
		$qstr = str_replace('page/1/', '', $qstr); // for mod_rewrite style
		$qstr = remove_query_arg('paged', $qstr); // for query style
	}
}}}

If you work with the mod_rewrite style, you will get this URL for the first page:

http://www.example.com/wordpress/index.php/
This wont work (/ at the end).

Correx:
{{{
	// showing /page/1/ or ?paged=1 is redundant
	if ( 1 === $pagenum ) {
		$qstr = str_replace('/page/1/', '', $qstr); // for mod_rewrite style
		$qstr = remove_query_arg('paged', $qstr); // for query style
	}
}}}

Notes:

 * sry for my bad english...
 * i've downloaded a german translation of wordpress 2.0.3, so maybe its just in this version... ?!
",dave@…
Future Releases,17157,Cannot preview changes to published multi-page posts,,General,3.0.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-04-17T17:41:50Z,2012-05-09T17:10:23Z,"Use Case: After publishing a post, an editor needs to make changes/update the post.  Editor would like to preview changes before publishing.  (Permalinks are turned on in this case)

To Reproduce:
1. Write a post. Make it paged by putting <!--nextpage--> somewhere in the post.
2. Publish the post 
3. Make changes to the post, somewhere on page 2
4. Click ""Preview Changes"" button

Browser will open a new page for the post: http://[domain]/yyyy/mm/dd/[post title]/?preview=true&preview_id=126507&preview_nonce=f0a2ecd9ae

5. Next page link will point to http://[domain]/yyyy/mm/dd/[post title]/   (Note: that preview, preview_id and preview_nonce are missing from the url)

Suggested fix is attached.
",akoyfman
Future Releases,13821,Changing visibility to password-protected without entering a password does not warn user,kapeels*,General,,normal,normal,Future Release,defect (bug),accepted,has-patch,2010-06-10T13:48:48Z,2012-10-01T17:42:25Z,"Tested on r15182.

If the status of a post is set to Password Protected, and a password is not specified before the user clicks the OK button in visibility and then either publishes, saves, or updates the post, no warning is given to the user that not setting a password forces the post or page to remain Public.

In fact, if updating a post, and this is the only change made, the success message (1) for updating the post appears instead, even though no change was made to the post.

If the post was previously published as Private, and switched to Password Protected without entering a password, then saved, the post switches to Public on save instead of remaining Private.

Either a failure message upon updating or a warning to the user before saving should be displayed to the user to remind them that they didn't properly set a password.

To reproduce the last case above:

1. Create a post. Publish it as Private.
2. Edit the post. Change the visibility to Password Protected, but do not enter a password. Click OK.
3. Update the post.
4. The post visibility will be changed to Public.",markel
Future Releases,19555,Deprecate url_is_accessable_via_ssl(),,General,,normal,normal,Future Release,defect (bug),new,has-patch,2011-12-14T22:56:31Z,2012-04-27T16:10:44Z,"We can convert it to use wp_remote_get() when we do, or just stub it.",nacin
Future Releases,14296,Don't show previous post link on orphaned attachments,,General,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-07-13T12:52:51Z,2010-07-14T04:43:32Z,"In function adjacent_post_link(), add check if post parent not empty.",zeo
Future Releases,16167,FORCE_ADMIN_SSL broken if site runs on port different from 80,,General,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-09T15:49:44Z,2011-10-17T23:37:51Z,"I'm running a wordpress site (http://yoush.homelinux.org:8079/) hosted at my home server. Unfortunately mu ISP blocks incoming connections on port 80, so I have to use non-standard port.

With unmodified wordpress 3.0.4, I was unable to use FORCE_ADMIN_SSL, because it caused URLs starting with

http://yoush.homelinux.org:8079/

to be converted to

https://yoush.homelinux.org:8079/

Which is definitly broken since it is impossible to serve both http and https on the same port.

To fix this, I propose removing ':port' from URL when converting http url to https.
I've created a patch for this, that seems to work for me on my site.",yoush
Future Releases,17632,HTML 5 Validation issues (theme independent),,General,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-01T07:52:09Z,2013-04-17T01:37:23Z,"Wordpress often adds the rel attribute to links.

For example rel=""category"" or rel=""attachment"" etc...

Apparently these keywords are not allowed in html 5 :

http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#linkTypes

So the validation fails :-/

These attributes are a bit hardcoded. You can use regex in filters or javascript solutions to remove them, but this is not a good solution.

I think this problem is now a bug, if you consider the importance of code validation.",amirhabibi
Future Releases,14789,Inconsistency in 'all' hook invocation,,General,3.0.1,normal,normal,Awaiting Review,defect (bug),reviewing,has-patch,2010-09-07T01:41:33Z,2011-03-21T11:36:19Z,"The 'all' hook (catchall hook for any hook name) is getting inconsistently called depending on how the concrete hook is being invoked: by apply_filters, apply_filters_ref_array, do_action or do_action_ref_array.

In the simple cases (apply_filters, do_action), the hook will get all parameters passed, in the ..._ref_array cases, the hook will get only two parameters passed in which the first parameter is the name of the hook (a.k.a. tag) and the second parameter is an array of all other parameters.

Every 'all' hook-function-callbacks should be called in the same way regardless whether which of the four invocation functions have been used on that pointcut.

Additionally all four routines share a lot of the same code which could benefit of a refactoring.",hakre
Future Releases,7267,Infinite recursion in get_category_parents() and _children(),,General,,normal,normal,Future Release,defect (bug),reopened,has-patch,2008-07-09T04:54:21Z,2010-12-07T18:41:17Z,"These two functions can get stuck in a recursion loop if there's an indirect category hierarchy loop like A -> B -> C -> A.

The patch keeps track of traversed IDs and prevents repetition - there's a name for the algorithm but it escapes me.  It increases memory usage but probably not too much - certainly less than infinite recursion does.


",tellyworth
Future Releases,11697,Keep private posts in the admin area / Was: Make private posts a canonical plugin,,General,2.9,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-01-02T21:33:21Z,2011-04-11T23:15:01Z,"Said Matt:
> Also, a lot of the complexity of private posts could be avoided by a relatively simple change: saying they're only viewable in the dashboard. (Which I think is close to how people use them already.)

----

There are quite a few tickets related to private posts that can be viewed by users who should, and even more tickets related to private comments that can be viewed by users who aren't authorized to view the post.

There also is at least one ticket that highlights a performance issue related to private posts.

http://core.trac.wordpress.org/search?q=private

Would it be an option to turn this into a canonical plugin and begone with the problems?",Denis-de-Bernardy
Future Releases,22625,Lone less than (<) characters foul up balanceTags(),,General,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-28T22:47:23Z,2012-12-11T20:34:57Z,"1. Turn on tag balancing.
2. Try this text:
{{{
This is < That.

<blockquote>foo</blockquote>

Text <a href=""#"">link</a>. Post-link text.
}}}
3. On save, the ending blockquote tag is stripped, and the subsequent text is blockquoted.

We should recognize lone {{{<}}} characters and entity encode them like we do for {{{<3}}}.",markjaquith
Future Releases,15029,Make it possible to determine resource in get_ancestors(),filosofo,General,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-10-04T10:59:12Z,2010-12-17T15:43:54Z,"In case there exists a conflict between taxonomy and post_type names, allow it to be resolved explicitly when calling `get_ancestors()`.",filosofo
Future Releases,13078,Make wp_register_style and wp_enqueue_style consistent,,General,3.0,normal,minor,Future Release,defect (bug),new,has-patch,2010-04-22T01:08:39Z,2013-03-31T05:06:56Z,"When fixing #13056, I noticed that wp_register_style and wp_enqueue_style had a few odd differences.

1. Enqueue truncates the $handle variable after the first '?' while register (and all other wp_style functions) accept any string.

2. Register set the default for $media to 'all', while enqueue set it to false. (fixed in the #13056 patch).

Moreover, since the two functions are practically the same, I've grouped them together in a private _wp_register_style function with an additional $enqueue boolean. Both enqueue and register call _wp_register_style.

I've omitted the truncate behavior mentioned above. If there's any reason for it in one, and not the other, or in both, feel free to correct me.

We could also just remove the truncate behavior from enqueue. It's a minor patch, and comes down to coding style.",koopersmith
Future Releases,15732,Media Settings page description is unclear,,General,,normal,trivial,Future Release,defect (bug),new,has-patch,2010-12-08T15:26:37Z,2010-12-11T13:41:51Z,"This is pretty trivial, but it's an easy fix, so I thought I'd throw it out there.

Currently the Media Settings page reads, ""The sizes listed below determine the maximum dimensions in pixels to use when inserting an image into the body of a post.""

That isn't true, it should probably read ""The sizes listed below determine the maximum dimensions in pixels to use when adding an image to the Media Library.""

The only reason this came up, is a client of mine was confused when she changed the large dimensions to ""434x434"" and the image she had uploaded previously w/ the dimensions of 800x732 did not give her the ""Large"" option.

I'm not sure anyone else in the world has ever had this problem. So the severity is definitely trivial.",layotte
Future Releases,16529,Missing quotes in DB_NAME on installation,,General,3.0.4,normal,normal,Awaiting Review,defect (bug),new,close,2011-02-10T23:41:47Z,2011-02-11T00:31:33Z,"A fresh installation of the database creates the file ""wp-config.php"".  This sets the MYSQL hostname.  When entering the proper information from the 5-minute installation into the MYSQL hostname field, this is incorrectly saved to the ""wp-config.php"" file *without* quotes around the host if the hostname is something other than localhost.

This makes installation problematic for users for which MySQL is not residing on the same host as their web server.  Specifically 1&1 users experience this issue.  This appears in the latest SVN pull.

see line 220 - 229 on /wp-admin/setup-config.php

patch attached.",beadon
Future Releases,18824,Password protected pages don't work if site address is different from wordpress address,,General,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-30T13:15:08Z,2011-11-09T21:44:28Z,"Hi,

On a 3.2.1 wordpress site, we notices that password protected pages didn't work.

Site address is in another domain (x.com) than wordpress address (y.com).

If we set the same domain for both of them, protected pages work again.

I think I understood what was going on:

1. the browser gets the form for the password via siteurl.
2. however the forms posts data to wordpress address (wp-pass.php), and the browser gets the cookie within this domain (and not siteurl domain)
3. the browser is redirected to siteurl, but the cookie doesn't work (domain mismatch).

I corrected wp-pass.php, by replacing get_option('siteurl') by get_option('home'), and it worked.",3singes
Future Releases,16555,Post format metabox shows duplicate 'standard' format,,General,3.1,low,normal,Future Release,defect (bug),new,has-patch,2011-02-13T23:01:55Z,2011-02-20T17:38:15Z,"Having 'standard' within add_theme_support makes the standard option show up twice within the post format metabox on the write/edit screen.

{{{add_theme_support( 'post-formats', array( 'standard', 'aside', 'chat', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio' ) );}}}

Patch fixes this by skiping over standard since it's hardcoded in the metabox.",ptahdunbar
Future Releases,15424,Refresh post count when a post is deleted,,General,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-11-14T16:02:47Z,2012-03-24T14:15:48Z,"Hi Guys,

I am reporting a bug in the system. I have various users in WPMU. They have their posts and i am tracking their no of posts.

Now if i delete a post from users account post count isnt getting updated. It remains at what it was previously.

eg. If a user has 4 posts in his account and he deleted his one post still the ""post_count"" field in ""wp_options"" table remains 4 only. Its not getting updated to 3.

Is there any patch for this ??

Awaiting eagerly for response.

Samir",chouxpastry2002
Future Releases,19487,Remove useless calls to set_time_limit(),westi,General,1.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-12-09T14:53:08Z,2012-11-23T10:13:52Z,"Calls to set_time_limit() were introduced in http://core.trac.wordpress.org/changeset/1812 and have remained in core ever since. The call occurs in code that makes network connections and is designed to allow time for the network calls to complete before the script execution stops.

But set_time_limit() won't take network time into account, so it actually will not do what it seems designed to do. From php docs:

  The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.

Further, calls to set_time_limit() can cause unexpected results in code that relies on any functions that call set_time_limit(). For example, if some code (in a cron job, say) sets the time limit to 0 (unlimited) because it knows it needs some time complete, then a subsequent call to a function that resets the time limit will halt the long-running execution once the new limit has been reached. Also from php docs:

  When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out.

Since the call to set_time_limit() does not here do anything useful, it should be removed.",dllh
Future Releases,13418,Smaller Bits of Code Improvement,,General,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-17T02:44:52Z,2012-12-07T21:18:42Z,"This ticket is for smaller bits of code-improvements all over trunk whenever something pops into sight.

Descriptions are put in the Description field of the attachment. Feel free to add your own so this won't clutter up tac too much.

Discussion in IRC and/or wp-hackers.",hakre
Future Releases,15965,Streamline exit call syntax,,General,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-23T13:20:09Z,2010-12-23T14:45:11Z,"After review of patches in #15518 it came to my attention that {{{exit}}} is sometimes called with and sometime w/o paranthesis.

As #15518 makes use of the {{{exit;}}} variant, all occurences of {{{exit();}}} can be replaced with it.",hakre
Future Releases,19455,"The ""magic_quotes_sybase"" Problem",夏天,General,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-12-06T10:13:21Z,2011-12-22T19:47:01Z,"
Post A Post, titled (in the double quote) : `""Charlie's little cat""`

It will become  (in the double quote) : `""Charlie''s little cat""`

Notice that, single quote become double quotes!!

YES , My 'magic_quotes_gpc' and 'magic_quotes_sybase' are enabled!

Here is The PHP.NET links: http://php.net/manual/en/security.magicquotes.disabling.php",summerblue
Future Releases,20569,We need addslashes_deep(),,General,3.4,normal,major,Future Release,defect (bug),new,has-patch,2012-04-29T08:08:28Z,2012-09-02T03:15:55Z,"
I don't imagine anyone still feels that having `update_metadata()` call `stripslashes_deep()` is still the Right Thing to do, but I understand why removing it is basically impossible for backward compatibility reasons.

That said, !WordPress as a platform does not currently provide a way for this data to be stored accurately as a meta value:

{{{
$data = array(
	'Check me out, I have backslashes \\'
);
update_post_meta($post->ID, 'my_key', $data);
}}}

I'm not saying that this is a great deal better from a code purity standpoint:

{{{
$data = array(
	'Check me out, I have backslashes \\'
);
update_post_meta($post->ID, 'my_key', addslashes_deep($data));
}}}

but it's at least explainable.

Telling people they have to do something like this:

{{{
$data = array(
	'Check me out, I have backslashes \\'
);
$slashed_data = array();
foreach ($data as $item) {
	$slashed_data[] = addslashes($item);
}
update_post_meta($post->ID, 'my_key', $slashed_data);
}}}

or this:

{{{
if (!function_exists('addslashes_deep')) {
/**
 * Navigates through an array and adds slashes to the values.
 *
 * If an array is passed, the array_map() function causes a callback to pass the
 * value back to the function. Slashes will be added to this value.
 *
 * @since 3.4.0? (oh please, oh please, oh please)
 *
 * @param array|string $value The array or string to be slashed.
 * @return array|string Slashed array (or string in the callback).
 */
function addslashes_deep($value) {
	if ( is_array($value) ) {
		$value = array_map('addslashes_deep', $value);
	} elseif ( is_object($value) ) {
		$vars = get_object_vars( $value );
		foreach ($vars as $key=>$data) {
			$value->{$key} = addslashes_deep( $data );
		}
	} else {
		$value = addslashes($value);
	}

	return $value;
}
}

$data = array(
	'Check me out, I have backslashes \\'
);
update_post_meta($post->ID, 'my_key', addslashes_deep($data));
}}}

is just indefensible.

FWIW, @rboren created this function as [http://core.trac.wordpress.org/attachment/ticket/12402/12402.2.diff part of a patch] a couple of years back (#12402), but it hasn't landed yet. Pretty please can we get just this bit in for 3.4?",alexkingorg
Future Releases,15769,"WordPress ships with copyrighted ""Hello, Dolly!"" lyrics which could potentially terminate the GNU GPL of the package",,General,3.0.2,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-12-11T02:35:59Z,2012-02-15T22:27:02Z,"It is an industry standard practice to show licensing details when using someone else's copyrighted content. I can't find anything substantiating that WordPress has been granted a license to use the copyright Hello, Dolly! lyrics, so the ''prima facie'' appearance is that WordPress is infringing copyright of Jerry Herman, the song's composer.

Unless WordPress indemnifies users, Hello Dolly plugin users may be vulnerable to legal problems due to unauthorized use of Jerry Herman's intellectual property.

Please clarify WordPress's license of this copyrighted material in the module's source code or at wordpress.org.",novasource
Future Releases,20712,"Wrong data type returned from get_option for ""page_on_front"" after update_option",,General,3.3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-05-20T08:29:35Z,2012-10-15T10:22:59Z,"
{{{
echo gettype(get_option(""page_on_front"")); // return string
update_option(""page_on_front"", ""123"");
echo gettype(get_option(""page_on_front"")); // return integer
}}}


You can repeat the steps and it give consistent result, so `get_option` return the wrong data type ONLY when it is after `update_option`",tszming
Future Releases,17923,add_query_arg() should encode values,,General,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-28T22:55:50Z,2013-02-26T14:08:52Z,"One (or me at least) would expect that the result of

{{{
add_query_arg( 'foobar', 'this&that', 'index.php' )
}}}

would be

{{{
index.php?foobar=this%26that
}}}

since the whole purpose of the function is to build a URL. However the actual result is

{{{
index.php?foobar=this&that
}}}

You're asking to the function to create a URL in which `foobar` is `this&that` but instead it creates a URL in which `foobar` is set to only `this`. You shouldn't have to pre-encode values -- the function should take care of it for you.

The function to ""blame"" for this is our `build_query()` which for some reason does not encode by default.

Semi-related: #16943",Viper007Bond
Future Releases,16221,admin bar hover class toggle adds whitespace,koopersmith*,General,3.1,low,normal,Future Release,defect (bug),accepted,close,2011-01-13T22:32:25Z,2012-12-13T19:52:17Z,"Every time I mouseover and mouseout an admin bar item, its class attribute gets longer.

Seen in Chrome while inspecting elements in the admin bar.",andy
Future Releases,19130,current wp-login.php call to wp_admin_css() bypasses its own filter,F J Kaiser,General,2.6,normal,normal,Awaiting Review,defect (bug),assigned,close,2011-11-03T13:54:07Z,2012-04-25T17:31:20Z,"The current situation in wp-login.php looks like the following:

{{{
	wp_admin_css( 'login', true );
	wp_admin_css( 'colors-fresh', true );
}}}

Looking at /wp-includes/general-template.php and {{{wp_admin_css( $file = 'wp-admin', $force_echo = false );}}} tells that this bypasses the filter calls as the function returns if {{{$force_echo}}} is true. The filters are called after that. This doesn't make sense as the filter will never work this way. Changing {{{wp_admin_css()}}} is no option, so I suggest to change the calls to it in login_head.",F J Kaiser
Future Releases,21000,custom-background still include background-image: none; when setting background color,,General,3.4,normal,normal,Awaiting Review,defect (bug),new,close,2012-06-17T17:38:56Z,2012-10-08T17:52:30Z,"I am sorry I missed this after the last inclusion before release, but in the function _custom_background_cb() 

I overlooked testing logic in the callback before it was released.  

if background color was specified but no image, act as if image shouldn't exist

The original complaint was that when you removed (both) the $background and $color that it outputted the background-image: none;  However in 3.4 it's not account for $color in the function and !$background

This is the change I am requesting.

{{{
      if ($background) {
...
}}}

line: 1136 - wp-includes/theme.php

{{{
      } else $style .= ' background-image: none;';
}}}

This will make it handle the if ($color && !background) appropriately


",Frumph
Future Releases,21613,"format_to_edit runs esc_textarea if $richedit param is set to false, not true",,General,,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-08-16T19:59:20Z,2012-08-17T15:35:26Z,"Currently, the docs on format_to_edit() indicate that it runs the content through esc_textarea (which in turn runs htmlspecialchars() ) if the $richedit param is set to true. The code, however, runs the filter if the param is not set (or passed as false, see line 1270). 

{{{
#!php
1255 /**
1256  * Acts on text which is about to be edited.
1257  *
1258  * The $content is run through esc_textarea(), which uses htmlspecialchars(
1259  * to convert special characters to HTML entities. If $richedit is set to t
1260  * it is simply a holder for the 'format_to_edit' filter.
1261  *
1262  * @since 0.71
1263  *
1264  * @param string $content The text about to be edited.
1265  * @param bool $richedit Whether the $content should not pass through htmls
1266  * @return string The text after the filter (and possibly htmlspecialchars(
1267  */
1268 function format_to_edit( $content, $richedit = false ) {
1269   $content = apply_filters( 'format_to_edit', $content );
1270   if ( ! $richedit )
1271     $content = esc_textarea( $content );
1272   return $content;
1273 }
1274 
}}}

My thought is the if statement should evaluate whether $richedit is true, rather than false, and therefore apply the esc_textarea function only when explicitly passed as a param. This would, however, result in unexpected behavior for anyone currently passing only the default $content param and getting sanitized output.",vhauri
Future Releases,18356,get_bookmarks() indefinitely caches randomly ordered results,,General,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-08T18:12:45Z,2011-08-12T01:11:20Z,"The get_bookmarks() function caches the results of all requests to the function in a single cache result so it can clear all the items when a new book mark is added.  However, randomly ordered results shouldn't be cached indefinitely.  This specifically affects the Links widget as it never refreshes when set to random order.",prettyboymp
Future Releases,15838,get_home_path() mixes PHP and server paths,,General,3.0.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-12-15T23:40:27Z,2011-12-16T03:15:52Z,"FYI: I've looked through the other get_home_path() tickets and believe this to be a different issue.

If the home and site urls are the same then you get a '''PHP relative''' path returned. i.e. it uses {{{ ABSPATH }}}, which is calculated using the PHP constant {{{__FILE__}}}
.

If the home and site urls are different you get a '''server relative''' path returned. i.e. one calculated via 
{{{$_SERVER[""SCRIPT_FILENAME""] }}}.


With web hosts who have the server and PHP paths configured consistently this is no problem.

But on 1and1 it could be if you are comparing the return value of this function against another path. If the function can either return a PHP or a server path then your code may not always work.

The server path (Apache) on 1and1 has an extra '/kunden' at the start. This means that PHP and Apache retrieve paths slightly differently.

Example.
Blog with same home and site urls

{{{
get_home_path =         /homepages/xx/dxxxxxxxx/htdocs/site1
}}}


Blog with different home and site urls

{{{
get_home_path = /kunden/homepages/xx/dxxxxxxxx/htdocs/site1
}}}


I'd suggest that as this is PHP the right thing to do is to always calculate the path using PHP relative paths - i.e. using 
{{{ __FILE__ }}} / {{{ ABSPATH }}} . Don't use the server relative paths at all as you can't rely on them being the same as the PHP ones. 

Certainly having a function returning a path that can be calculated from two different base paths is a bad idea.

For reference here's the current function:

{{{
function get_home_path() {
	$home = get_option( 'home' );
	$siteurl = get_option( 'siteurl' );
	if ( $home != '' && $home != $siteurl ) {
	        $wp_path_rel_to_home = str_replace($home, '', $siteurl); /* $siteurl - $home */
	        $pos = strpos($_SERVER[""SCRIPT_FILENAME""], $wp_path_rel_to_home);
	        $home_path = substr($_SERVER[""SCRIPT_FILENAME""], 0, $pos);
		$home_path = trailingslashit( $home_path );
	} else {
		$home_path = ABSPATH;
	}

	return $home_path;
}
}}}
",reviewmylife
Future Releases,16863,get_terms hierarchical/hide_empty incompatible with include/exclude args,,General,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-16T12:37:06Z,2012-09-13T09:36:55Z,"{{{
$terms = get_terms('taxName', array(
    'hierarchical' => true,
    'hide_empty' => true,
    'include' => array(1, 2, 3)
));
}}}
$terms will not contain a meaningful result set. In order for get_terms to process 'hierarchical' correctly it must recieve in 'include' a full list of term ids for all child terms that may have count > 0, this obviously negates the point of 'include' here.
'include/exclude' is processed at query level, 'hierarchical' is processed post query and expects the results of the query to be unfiltered.
The following patch seems to fix the issue in my application, I think this approach would need to take in 'child_of' also, which I haven't done here.
{{{
diff --git a/wp-includes/taxonomy.php b/wp-includes/taxonomy.php
index 89532dc..2f51bea 100644
--- a/wp-includes/taxonomy.php
+++ b/wp-includes/taxonomy.php
@@ -1337,9 +1337,13 @@ function &get_terms($taxonomies, $args = '') {
 
 	// Make sure we show empty categories that have children.
 	if ( $hierarchical && $hide_empty && is_array($terms) ) {
+
+        $taxTerms = !(empty($include) && empty($exclude) && empty($exclude_tree)) ?
+            get_terms($taxonomies) : $terms;
+
 		foreach ( $terms as $k => $term ) {
 			if ( ! $term->count ) {
-				$children = _get_term_children($term->term_id, $terms, $taxonomies[0]);
+				$children = _get_term_children($term->term_id, $taxTerms, $taxonomies[0]);
 				if ( is_array($children) )
 					foreach ( $children as $child )
 						if ( $child->count )
}}}
",martinshopland
Future Releases,9930,is_serialized() returns false on serialized doubles,westi,General,,normal,minor,Future Release,defect (bug),reopened,has-patch,2009-05-24T17:23:43Z,2011-05-12T13:32:36Z,"Test case:

{{{
<?php
    require_once('wp-load.php');
    print var_export(is_serialized(serialize(1.2E+150)));
?>
}}}

Expected: true
Got: false

serialize(1.2E+150) returns something like 'd:1.200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361549E+150;', the plus sign after 'E' is not taken into account by the regexp",vladimir_kolesnikov
Future Releases,10458,lighttpd/1.4.22 does not populate _REQUEST['action'] for wp-login.php,,General,2.8,normal,normal,Future Release,defect (bug),reopened,has-patch,2009-07-21T14:10:36Z,2010-05-10T08:50:09Z,"lighttpd/1.4.22 does not populate _REQUEST['action'] for wp-login.php, this in turn disabled any action in the switch statement breaking the ability to logout.

Symtoms of this bug are: clicking logout in wordpress 2.8 and going to the login page but not really logging out.  Clicking logout in wordpress 2.3 and being redirected right back to the /wp-admin page.

adding this code to wp-login.php, fixes the behavior and re-enables all features in wp-login.php.

I don't know the wordpress code but if there is a section which deals with idiosyncrasies of web servers that lighttpd be detected and this code be run to deal with it. 

//
// Main
//


if (strpos($_SERVER['SERVER_SOFTWARE'], 'lighttpd') !== false)
{
$_lighty_url = $base_url.$_SERVER['REQUEST_URI'];
$_lighty_url = @parse_url($_lighty_url);
$_SERVER['QUERY_STRING'] = $_lighty_url['query'];
parse_str($_lighty_url['query'], $_lighty_query);
foreach ($_lighty_query as $key => $val)
$_GET[$key] = $_REQUEST[$key] = $val;
}
",myrond
Future Releases,19714,plugins which use the 'authenticate' hook unable to return errors,,General,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-03T00:31:35Z,2012-11-20T17:37:34Z,"The 'authenticate' hook is designed to allow functions to return either an authenticated `WP_User` object (which will cause the user to be logged in), or a `WP_Error` object, which will cause the errors to be displayed to the user.

In practice, most plugins that use this hook don't rely on the username and password at all, but instead on other means entirely.  So what is happening with these plugins (the OpenID plugin chief among them), is that they are returning a `WP_Error` object that describes the error, but then the `wp_authenticate_username_password` function is ignoring that and returning its own `WP_Error` object which rightfully shows that the username and password fields were left empty.  Unfortunately, this error object (containing both an empty username AND password) is explicitly checked for and removed in the `wp_signon` method.  This is normally the right behavior and handles the case of a user who simply clicks ""Log In"" without entering anything... we don't show them an error, we just redraw the login form.  However, in the case described above, an actual error did occur with an authentication plugin, but the user simply sees the normal login form with no error displayed.

(patch forthcoming)",willnorris
Future Releases,15946,post_date_gmt ignored in wp_insert_post(),,General,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-22T00:41:40Z,2010-12-26T22:46:25Z,"If a post is inserted with `post_date_gmt` set and `post_date` not, `post_date` defaults to the current date/time, rather than being generated from `post_date_gmt`",kawauso
Future Releases,16472,set_query_var() / get_query_var() does not work for NULL values,,General,,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-06T16:08:06Z,2011-02-09T16:54:38Z,"Setting a query var to NULL will convert it into an empty string:

{{{
$name = 'test';
$value = NULL;
set_query_var($name, $value);
$get = get_query_var($name);
echo $value === $get ? 'same' : 'different';
var_dump($get);
}}}

This will output ""different"" and showing that the query var now is an empty string.",hakre
Future Releases,13208,shared code in get_mu_plugins() and get_dropins(),,General,,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-02T03:22:40Z,2010-11-13T07:56:26Z,"Aka code buplication.


FYI closedir() is not necessary in PHP. It only consumes runtime and memory if you use it especially with the @ operator.",hakre
Future Releases,11683,update_metadata() passes only the first meta_id,,General,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2010-01-01T18:04:39Z,2013-05-14T13:18:38Z,"Code to reproduce:

{{{
function update_metadata_action_test($meta_id) {
	var_dump($meta_id);
}
add_action('update_post_meta', 'update_metadata_action_test');

add_metadata('post', 1, 'mykey', 'value1');
add_metadata('post', 1, 'mykey', 'value2');

update_metadata('post', 1, 'mykey', 'new value');
}}}

Expected result:

{{{
Array ( [0] => 101 [1] => 102 )
}}}

Actual result:

{{{
string(3) ""101""
}}}
",scribu
Future Releases,17725,wp_convert_hr_to_bytes() fails on large numeric values,,General,2.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-08T12:24:41Z,2011-06-22T17:17:36Z,"The {{{wp_convert_hr_to_bytes()}}} function exists to convert values in form of a memory setting into it's value in bytes.

By doing so, the function modifies the input value in every case. This modification has an issue with integer limits.

Whenever a value of $size is passed to the function that is in it's numerical part larger than [http://php.net/manual/en/reserved.constants.php PHP_INT_MAX], the input value will be capped to {{{PHP_INT_MAX}}}.

This is an integer overflow.

This applies as well when size has a shorthand ending specifier and it's numerical part is greater than PHP_INT_MAX.

To illustrate the problem on a 32 bit system:

{{{
	$setting = '2147483648';
	echo ""'$setting' are "", wp_convert_hr_to_bytes($setting), "" bytes.\n"";
	// '2147483648' are 2147483647 bytes.
}}}

It shows that the last byte is missing. Every other byte on top will be capped as well. The number of bytes given are a value equally to '2G'.

Solution: Input values should not be capped to int but to float which has allows higher values.",hakre
Future Releases,20450,wp_dropdown_categories - inconsistent use of single-quotes causes (javascript) assignment  issues,,General,3.3.1,normal,minor,Awaiting Review,defect (bug),new,close,2012-04-15T23:06:37Z,2012-06-18T23:02:05Z,"wp_dropdown_categories outputs double-quote characters for all options (value etc) BUT single-quote characters for main select attributes - which is inconsistent.

this causes a problem when assigning output to eg. a javascript string - meaning we must perform a separate 'replace' operation first.

similarly, we already have to do a replace of all newline-characters in output for newline-backslash - in order that its multi-line output can be assigned to a javascript variable.

please could we have double-quote characters used consistently  in output? ideally provision of a javascript friendly output format (ie. backslash-newline) would also be great - though my no means essential. 
 ",rcain
Future Releases,14488,wp_enqueue_script in_footer doesn't work on WP known scripts,sorich87*,General,3.0.1,normal,minor,Future Release,defect (bug),accepted,has-patch,2010-07-31T05:18:30Z,2012-10-11T17:52:33Z,"I changed some plugin code from:
wp_enqueue_script('jquery-ui-sortable');

To:
wp_enqueue_script('jquery-ui-sortable',false,array(),false,true);

However, the script was not moved to the footer. 

When I looked at the source for wp_enqueue_script, I can see that it's because the check for $in_footer is inside the condition for $src being defined. But built-in scripts don't require a source. ",mcr2582
Future Releases,19892,wp_fix_server_vars() mangles REQUEST_URI on some servers,,General,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-25T00:58:47Z,2012-01-25T06:53:04Z,"== Bug manifestation: ==

On some server setups, saving settings on any settings page which uses options.php - including the twentyeleven theme options pages - results in a ''You do not have sufficient permissions to access this page.''-error page, even if you are the (super-)admin of the website.[[BR]]

The changed settings *are* however saved, but the bug obviously causes a usability issue.[[BR]]
[[BR]]



== The cause of the issue: ==

The issue is ultimately caused by (shared-)hosting companies which - for security reasons - set the {{{$_SERVER['SERVER_SOFTWARE']}}} variable to MS IIS when in reality the server runs on a Linux variant.[[BR]]
[[BR]]

The {{{$_SERVER['SERVER_SOFTWARE']}}} variable being MS IIS causes ''wp_fix_server_vars()'' to double the query vars resulting in a mangled {{{$_SERVER['REQUEST_URI']}}}.[[BR]]

I.e.: ''""/wp-admin/themes.php?page=theme_options""'' becomes ''""/wp-admin/themes.php?page=theme_options?page=theme_options""''[[BR]]
[[BR]]


As the {{{$_SERVER['REQUEST_URI']}}} variable is used by the ''settings_fields()'' function to generate the hidden form fields for the option pages, this then in turn results in a mangled ''_wp_http_referer'' form value.[[BR]]

I.e.: {{{<input type=""hidden"" name=""_wp_http_referer"" value=""/wp-admin/themes.php?page=theme_options?page=theme_options"" />}}}[[BR]]
[[BR]]


As the '''''options.php''''' file, after saving the changed settings, uses the ''_wp_http_referer'' field value to redirect the page - which it then can't - , the user ends up on the ''You do not have sufficient permissions to access this page.''-error page.[[BR]]
[[BR]]



== Patch/fix for the issue: ==

In file '''''wp-includes/load.php''''' change '''''line 75''''' from:

{{{
if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
}}}
to
{{{
if ( ! empty( $_SERVER['QUERY_STRING'] ) && strpos ( $_SERVER['REQUEST_URI'], '?' ) === false ) {
}}}

N.B.: line number based on WP 3.3.1. trunk[[BR]]
[[BR]]




== Additional info: ==

This bug has been in the WP code base for a while. It might be useful to add this issue to the FAQ in the documentation for those users/webmasters who do not always upgrade to the latest & greatest WP version.[[BR]]


A user/webmaster who encounters this issue should probably get advice along the following lines:[[BR]]

a. Determine that the problem is really caused by this issue by verifying that they really run on Linux and by checking that the {{{$_SERVER['SERVER_SOFTWARE']}}} is a MS IIS variant - they can use ''phpinfo()'' to do so.[[BR]]

b. Upgrade to a WP version which includes the above patch once it has been released.[[BR]]

c. Contact their webhost to see if they are willing to change the {{{$_SERVER['SERVER_SOFTWARE']}}} variable to reflect reality.[[BR]]

d. If neither of the above is possible/works and they are sure that this bug is the cause of their problems, they can apply the following quick & dirty fix to solve it without touching the core files:[[BR]]


Add the following code to their wp-config.php file anywhere above the ''/* That's all, stop editing! Happy blogging. */'' line.
{{{
/**
 * Quick fix for server software bug
 */
$_SERVER['SERVER_SOFTWARE'] = 'Apache';
}}}
[[BR]]


== Related bug reports found: ==

* #15209 {{{$_SERVER['REQUEST_URI']}}} Doesn't always work correctly
* #12346 Saving settings in multiple plugins results in You do not have sufficient permissions to access this page.


This ticket has been opened as the previous two bug reports where too old to reopen.
",jrf
Future Releases,13575,wp_max_upload_size() is not taking memory limit into account,,General,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-27T12:38:41Z,2011-03-08T15:14:43Z,"wp_max_upload_size() is not taking a memory limit into account while checking for the maximum upload size.

according to the official php documentation the memory limit is limiting file uploads as well (and post form operations).


> post_max_size - integer [[BR]][[BR]]
> Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize. If memory limit is enabled by your configure script, memory_limit also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size.

[http://www.php.net/manual/en/ini.core.php#ini.post-max-size Source]",hakre
Future Releases,17472,wp_redirect() should return true on success,draca,General,3.1.2,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-05-17T12:56:39Z,2011-05-17T15:40:11Z,"Ticket #3250 added the ability for a filter to cancel a redirect request and returns false in that event.

On success, there is no return value specified so the function returns NULL per the PHP spec.  A value of true should be returned so that logic such as the following can be used:


{{{
if (! wp_redirect($redirect_url)) {
  // Handle redirect failure
}
}}}
",draca
Future Releases,17052,wp_sanitize_redirect() removes square brackets from URL,,General,3.1,normal,minor,Awaiting Review,defect (bug),reopened,has-patch,2011-04-05T07:12:16Z,2012-03-01T18:08:07Z,"The function wp_sanitize_redirect() removes square brackets from URLs.

PHP's functionality with arrays in the URL require square braces, stripping them from the URL means that pages (and plugins) that rely on them fail.

To Reproduce:

{{{
<?php
$url = 'http://example.com/my_url_array[1]=hello+world';
print wp_sanitize_redirect($url);
?>
}}}


Current Output:
http://example.com/my_url_array1=hello+world

Expected Output:
http://example.com/my_url_array[1]=hello+world

Whilst developers should be able to work around this as the function is pluggable I believe this should just work out of the box.
",bluntelk
Future Releases,13909,HTTP redirect should return a hypertext fragment,,HTTP,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-15T19:15:36Z,2010-06-26T02:55:59Z,"When !WordPress redirects via the API ({{{wp_redirect}}}), a useragent which does not automatically redirect (e.g. configuration because of usability or security considerations), get's a blank page delivered (which is of no use for the user). This is because only HTTP headers are set for the redirect, but not a HTTP body. Normally Webservers and Webapplications deliver a body as well.

'''Example: Redirect on the google.com domain'''

Command: {{{curl -i http://google.com/}}}

Output:
{{{
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Tue, 15 Jun 2010 18:11:12 GMT
Expires: Thu, 15 Jul 2010 18:11:12 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block

<HTML><HEAD><meta http-equiv=""content-type"" content=""text/html;charset=utf-8"">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF=""http://www.google.com/"">here</A>.
</BODY></HTML>
}}}

Redirect of google.com to www.google.com; next to the headers a body is returned (some simple HTML containing the link to the redirected page).

This method is often used as a fall-back for automatic methods — if the visitor's browser does not support the automatic redirect method, the visitor can still reach the target document by following the link. [http://en.wikipedia.org/wiki/URL_redirection#Manual_redirect URL redirection (From Wikipedia, the free encyclopedia)]

'''Example: Redirect on a wordpress domain'''

This is against a trunk version wordpress setup. I made a setup with a domain www.webroot.loc and webroot.loc. The blog is w/o the www. so www.webroot.loc get's redirected to webroot.loc:

Command: {{{curl -i http://www.webroot.loc/wordpress/}}}

Output:
{{{
HTTP/1.1 301 Moved Permanently
Date: Tue, 15 Jun 2010 18:12:38 GMT
Server: Apache
X-Pingback: http://webroot.loc/wordpress/xmlrpc.php
Location: http://webroot.loc/wordpress/
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
}}}

There is no http body in the response.

To increase the overall usability of wordpress a body should returned as well.",hakre
Future Releases,24156,If you submit file through wp curl it doesnt send boundary params for file mutlipart,,HTTP,3.5.1,normal,major,Awaiting Review,defect (bug),new,has-patch,2013-04-22T15:38:12Z,2013-04-25T14:05:33Z,"If you submit file through wp curl it doesnt send boundary params for file multipart, because in class-http.php at line 174 `$r['body']` array is converted to string:
{{{
$r['body'] = http_build_query( $r['body'], null, '&' );
}}}

And curl wants array to send file boundary to rest api , in that case it fails. 
ex.
{{{
$headers['Content-type'] = 'multipart/form-data';   
$args['file'] = '@/pathtofile';
$request = new WP_Http;
$result = $request->request($url,$args);
}}}
Let me know if you have questions ",samnani
Future Releases,13841,Some HTTP Transports do not respect transfer timeouts,,HTTP,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-11T04:48:30Z,2012-08-03T01:30:39Z,"While doing some testing I found that fopen, fsockopen and streams do not respect transfer timeouts.

Out fopen transport cannot support a transfer timeout properly because we do not pass the 3rd optional parameter to fopen for stream context.  We don't do this on purpose because the 3rd parameter was not added until php 5, and that is partially what the streams transport is designed to cover.  So in short, unless we want to conditionally use the streams context here for php versions > 5, we cannot reliably use transfer timeouts.

The streams timeout was missing the context for timeout, which does support ""microtime"".  However, unsure at this point why, but the timeout needs to be divided by 2, so that the timeout happens requested timeout.

With fsockopen, we need to actually test for the timeout during the while loop, because the stream_set_timeout applies to each pass of fread and not the total process.",sivel
Future Releases,11888,The streams & fopen HTTP transport arn't sending headers that are passed to it,,HTTP,2.9.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-01-13T20:01:41Z,2012-06-05T13:09:20Z,"In particular, cookie headers. Related php bugs:

http://bugs.php.net/bug.php?id=41051

http://bugs.php.net/bug.php?id=45092

Based on the second PHP ticket, this would affect systems up to PHP 5.2.9.

I tried to replace $strHeaders with an $arrHeaders array based on the discussions in the second ticket, but it didn't make the slightest difference.

I'm running out of ideas, too...",Denis-de-Bernardy
Future Releases,23463,WP_HTTP  HTTP/1.1 needs to send Connection Close + support Transfer-encoding better,,HTTP,,normal,normal,Future Release,defect (bug),new,has-patch,2013-02-13T06:15:45Z,2013-02-13T06:15:45Z,"WP_HTTP accepts a 'httpversion' argument, and supports some functions of it (such as Transfer-encoding).

However, there are 2 things which are rather broken
1. It doesn't send a `Connection: close` header, so the connection is held open and WP_HTTP never returns
1. Transfer-Encoding: chunked appears to be rather broken, causing it to returning the end of the document rather than the decoded document.

The attached patch goes some of the way towards making that work better, but is mostly untested, and could do with a unit test or two.",dd32
Future Releases,16606,WP_Http_Streams::test doesn't check enough to confirm if it can do HTTPS,,HTTP,3.0.5,high,major,Future Release,defect (bug),new,has-patch,2011-02-21T08:16:44Z,2013-01-20T20:44:55Z,"The WP_Http_Streams doesn't check for all it's prerequisites before saying it can process HTTPS request.

It seems to be common for the openssl extension to no be loaded.

Example Warnings:

{{{
[21-Feb-2011 08:06:48] PHP Warning:  fopen() [<a href='function.fopen'>function.fopen</a>]: Unable to find the wrapper &quot;https&quot; - did you forget to enable it when you configured PHP? in .../wp-includes/class-http.php on line 1063
[21-Feb-2011 08:06:48] PHP Warning:  fopen(https://example.com/feed/) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in .../wp-includes/class-http.php on line 1063
}}}

We need to at least check: {{{extension_loaded( 'openssl' )}}}
",westi
Future Releases,16271,Better handling of translating comments notification,,I18N,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-17T17:26:03Z,2011-02-16T06:22:49Z,"Comments...


{{{
Author :
E-mail :
URL    :
Whois  :
Excerpt:
}}}

Pingback...


{{{
Website:
URL    :
}}}

It is not possible to manage translation with the same length of ""Excerpt"" and ""Website"" to have ""URL"" with the same number of spaces (required for ""URL"" which is the same for both types)...

BTW, Why it is ""Excerpt"" when there is the whole text of every comment in notification email?",pavelevap
Future Releases,19689,Context for Dismiss,,I18N,3.3,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-12-29T20:37:46Z,2012-05-02T16:32:18Z,"In WP 3.3 there are some new occurences for ""Dismiss"". But in some languages there is not one ideal translation for this verb.

1) Dismiss - meaning Close (suitable for Welcome screen, Browser window and Pointers).

2) Dismiss - meaning Cancel or Stop (suitable for uploading media).

I created basic patch to better explain this idea.

I also could not find occurences for Dismiss in async-upload.php and script-loader.php anywhere in administration during upload, but maybe it is related to some special conditions? In which circumstances can users see string Dismiss during uploading media?",pavelevap
Future Releases,22745,Missing number_format_i18n() on term counts,,I18N,2.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-12-04T23:51:06Z,2012-12-04T23:52:00Z,The `Walker_Category` and `Walker_CategoryDropdown` classes output term counts as-is. They should be wrapped in `number_format_i18n()`.,johnbillion
Future Releases,22302,Multisite administration - default date format,,I18N,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-10-29T15:11:58Z,2012-11-07T18:17:39Z,"1) There is default non-translatable format for dates in multisite administration:

Sites - All sites (columns Last Updated and Registered)

Users - All users (column Registered)

Please see attached patch, I used existing localization format.

2) Sites - All sites - Edit any site. There are also Registered and Last Updated values in default date format, but I am not sure how to solve this issue...",pavelevap
Future Releases,13651,Problem with plural form in comments_number,nbachiyski,I18N,3.0,high,major,Future Release,defect (bug),new,has-patch,2010-05-31T07:55:14Z,2013-04-10T16:06:03Z,"Hi, there is problem with comments_number in WordPress (and also Twentyten theme). There is possibility to use 0, 1 or more comments. But for Czech there are also two plural forms: 0 (žádný komentář), 1 (1 komentář), 2-4 (komentáře) and 5 and more (komentářů).

Function comments_number does not support it, also in Twentyten it is not possible...",pavelevap
Future Releases,20974,Remove obsolete locale-specific files on upgrade,dd32,I18N,3.4,low,normal,Future Release,defect (bug),assigned,has-patch,2012-06-15T14:06:43Z,2012-11-07T20:20:44Z,"We used to have `wp-content/languages/ru_RU.css` file in ru_RU package.

Since #19603, it's no longer needed, but is still left over on upgrade. We should probably include it in `$_old_files`.

I suppose the same applies to zh_CN and he_IL packages ([19825]).",SergeyBiryukov
Future Releases,18249,Rosetta needs a facelift,ryanimel*,I18N,,normal,normal,WordPress.org,defect (bug),accepted,has-patch,2011-07-25T20:47:35Z,2013-04-09T19:21:07Z,This is a Trac ticket for http://make.wordpress.org/ui/2011/07/25/small-design-project-rosetta/.,nacin
Future Releases,17771,URL-encoded comment_author_url gets broken by MySQL varchar 200 length limit,,I18N,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-12T03:46:44Z,2012-04-06T11:38:41Z,"!WordPress sometimes pings back with long permalinks that exceed comment_author_url column length limit of 200, which  results in generating unusable broken links to the post. 
It easily reaches to the limit, especially if the permalink contains url-encoded multibyte title as postname. (e.g. 23 characters of UTF-8 Japanese become a 207 characters long url-encoded string. Incomplete url-encoded string may trigger 400 Bad Request too.)

'''Solution:'''
In pingback(), use shortlink instead of regular permalink if the URL is longer than 200 characters.
It seems to work ok with wp.me shortlinks.",tenpura
Future Releases,21023,Blogger Importer Draft Status not processed correctly,,Import,3.4,normal,normal,WordPress.org,defect (bug),new,has-patch,2012-06-20T09:48:55Z,2012-06-20T14:57:20Z,"The blogger importer is loading all drafts posts as published and/or scheduled.

This is caused by an incorrect schema used in blogger-importer-blogitem.php.

The correct schema is as follows

{{{
define('SIMPLEPIE_NAMESPACE_ATOMPUB', 'http://purl.org/atom/app#');
}}}

Ref:
* http://wordpress.org/support/topic/plugin-blogger-importer-blogger-draft-status-changed-to-published-in-wp
* https://developers.google.com/blogger/docs/1.0/reference#DraftEntries",Workshopshed
Future Releases,15034,DotClear Importer doesn't work with DotClear version 2.2.x,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2010-10-05T00:28:01Z,2011-01-13T06:33:10Z,"This was reported to me by Benjamin GIGON. He has provided a patch, but I am not able/unsure how to test it.",briancolinger
Future Releases,16012,Importer descriptions i18n,nacin*,Import,3.1,normal,normal,WordPress.org,defect (bug),accepted,has-patch,2010-12-28T18:41:00Z,2012-06-13T19:07:36Z,"At first I've tried to create a ticket on http://plugins.trac.wordpress.org/, but none of the importers are present in the Component dropdown. So I've decided to try it here.

As [http://wppolyglots.wordpress.com/2010/12/28/hello-another-string-which-i-couldnt/ noted by Rasheed Bydousi on WP Polyglots], importer descriptions are displayed in English. The problem is that `register_importer()` function is called before the language file is loaded.

I've created patches for all the importers. I've also changed `init` action to `admin_init`, which seems to have more sense in this case.",SergeyBiryukov
Future Releases,21007,Importing omits backslashes,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2012-06-18T08:11:16Z,2012-06-18T12:10:13Z,"If you try to import a previously-exported post containing backslashes, those backslashes will be omitted during the import process.",SeMeKh
Future Releases,12885,LiveJournal importer uses GMT date/time as local date/time,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2010-04-07T02:07:25Z,2011-01-26T10:29:09Z,"The LiveJournal importer takes a comment's date/timestamp, which is in GMT, and inserts it into the database as the comment's local date/timestamp. In my timezone (U.S. Central, DST), a comment posted at 12:00pm local time (5:00pm GMT) will be imported to the database as having been posted at 5:00pm local time (10:00pm GMT).

I've attached a patch that I've successfully tested on Wordpress 2.9.2, and it appears to be easily ported to trunk. One caveat: it appears that there are two timezone settings in the Wordpress database (timezone_string and gmt_offset), but as my database has no value for gmt_offset, I don't know if I need to account for that, nor can I test that.",kurtmckee
Future Releases,22171,Merge Blogger Importer description strings,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2012-10-12T00:47:35Z,2012-10-15T06:37:57Z,"In Blogger Importer 0.4, the description strings were:

* ""Import posts, comments, tags, and attachments from a Blogger blog."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.4/blogger-importer.php#L5
* ""Import posts, comments, and users from a Blogger blog."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.4/blogger-importer.php#L914

In Blogger Importer 0.5:
* ""Import posts, comments and tags from a Blogger blog and migrate authors to Wordpress users."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.5/blogger-importer.php#L5
* ""Import categories, posts and comments then maps users from a Blogger blog."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.5/blogger-importer.php#L1026

The core still says:
* ""Install the Blogger importer to import posts, comments, and users from a Blogger blog."" [[BR]]
 http://core.trac.wordpress.org/browser/tags/3.4.2/wp-admin/import.php#L35

I guess we should merge the strings or at least fix the capital P.",SergeyBiryukov
Future Releases,13313,"WP import: ""Upload file and import"" should be deactivated until a filename is entered",,Import,3.0,low,minor,WordPress.org,defect (bug),new,has-patch,2010-05-09T22:10:55Z,2012-10-31T16:15:09Z,"WP import: ""Upload file and import"" should be deactivated until a filename is entered

ENV: WP trunk 3.0-beta2-14526 [[br]]
Mac OS / Firefox 3.6.3

== Additional Details ==

Same issue with wp-admin/media-new.php (browser upload)

",lloydbudd
Future Releases,21597,WordPress Importer $base_url index failed,,Import,3.4.1,normal,minor,WordPress.org,defect (bug),new,has-patch,2012-08-15T18:30:11Z,2012-09-10T10:03:12Z,"When XRS file without the site url tag is imported, it throws a notice. This patch allow people to upload hand-made and not-attached-to-any-site XRS file.

I came across creating a XRS file to import names of cities from Portugal to a specific custom taxonomy to some sites. This can reflect the necessity of this patch.",lightningspirit
Future Releases,23276,WordPress Importer: Update existing navs instead of new,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2013-01-23T17:00:06Z,2013-01-25T02:41:23Z,"A possible solution (reuses logic present in the code):
{{{
$menu_item_db_id = (int) $item['post_id'];
$original_object = get_post( $menu_item_db_id );
if ( is_null( $original_object ) )  {

	$post_parent = (int) $item['post_parent'];
	if ( $post_parent ) {
		// if we already know the parent, map it to the new local ID
		if ( isset( $this->processed_posts[$post_parent] ) ) {
			$post_parent = $this->processed_posts[$post_parent];
		// otherwise record the parent for later
		} else {
			$this->post_orphans[intval($post['post_id'])] = $post_parent;
			$post_parent = 0;
		}
	}

	// map the post author
	$author = sanitize_user( $item['post_author'], true );
	if ( isset( $this->author_mapping[$author] ) )
		$author = $this->author_mapping[$author];
	else
		$author = (int) get_current_user_id();

	$postdata = array(
		'import_id' => $item['post_id'],
		'post_author' => $author,
		'post_date' => $item['post_date'],
		'post_date_gmt' => $item['post_date_gmt'],
		'post_content' => $item['post_content'],
		'post_excerpt' => $item['post_excerpt'],
		'post_title' => $item['post_title'],
		'post_status' => $item['status'],
		'post_name' => $item['post_name'],
		'comment_status' => $item['comment_status'],
		'ping_status' => $item['ping_status'],
		'guid' => $item['guid'],
		'post_parent' => $post_parent,
		'menu_order' => $item['menu_order'],
		'post_type' => $item['post_type'],
		'post_password' => $item['post_password']
	);
	$menu_item_db_id = wp_insert_post( $postdata, true );

	if ( is_wp_error( $menu_item_db_id ) ) {
		$post_type_object = get_post_type_object( $item['post_type'] );
		printf( __( 'Failed to import %s “%s”', 'wordpress-importer' ),
			$post_type_object->labels->singular_name, esc_html($item['post_title']) );
		if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
			echo ': ' . $post_id->get_error_message();
		echo '<br />';
	}
}

$id = wp_update_nav_menu_item( $menu_id, $menu_item_db_id, $args );
}}}",WraithKenny
Future Releases,23275,WordPress Importer: line-ending mismatch corrupts serialized meta,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2013-01-23T16:56:04Z,2013-01-25T02:36:14Z,"A possible solution:
{{{
if ( $key ) {
	// export gets meta straight from the DB so could have a serialized string
	if ( ! $value )
		$value = maybe_unserialize( $meta['value'] );
	// Occationally, line-endings break unserialize()
	if ( empty( $value ) ) // Try normalizing...
		$value = maybe_unserialize( str_replace( array(""\r\n"", ""\r"", ""\n""), ""\r\n"", $meta['value'] ) );
	if ( empty( $value ) ) // Adjust string length if needed
		$value = maybe_unserialize(
			preg_replace( // e flag deprecated in PHP 5.5.0 I think
				'!s:(\d+):""(.*?)"";!se',
				""'s:'.strlen('$2').':\""$2\"";'"",
				$meta['value']
			)
		);

	add_post_meta( $post_id, $key, $value );
	do_action( 'import_post_meta', $post_id, $key, $value );

	// if the post has a featured image, take note of this in case of remap
	if ( '_thumbnail_id' == $key )
		$this->featured_images[$post_id] = (int) $value;
}
}}}",WraithKenny
Future Releases,15586,"movabletype-importer, trivial: fix no index upload_type warning",,Import,3.1,low,minor,WordPress.org,defect (bug),new,has-patch,2010-11-26T00:43:46Z,2010-12-11T14:06:54Z,"movabletype-importer, trivial: fix no index upload_type warning

ENV: http://plugins.svn.wordpress.org/movabletype-importer/trunk r315664",lloydbudd
Future Releases,20847,"Documentation references to ""digits"" should be ""characters""",,Inline Docs,,normal,trivial,Awaiting Review,defect (bug),new,has-patch,2012-06-05T14:49:08Z,2012-08-20T21:14:53Z,"Some documentation references to digits should really be called characters, since they refer to parts of a hexadecimal number, and therefore not strictly 0-9 only.",GaryJ
Future Releases,21864,PHPDoc incorrect with the return value of add_*_meta functions,,Inline Docs,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-10T20:54:14Z,2012-09-10T23:37:28Z,"The PHPDocs for `add_comment_meta`, `add_post_meta` and `add_user_meta` all say that they return `true` on success. In fact, each calls `add_metadata`, which returns the metadata_id on success. 

In addition, `update_metadata` currently returns the metadata_id on success if the metadata did not already exist, but true on success if the metadata did already exist (the PHPDoc says simply that it is true on success).

The patch corrects the documentation, and additionally ensures consistency with the return value for `update_metadata`.",mark8barnes
Future Releases,22573,esc_sql() works with arrays too,,Inline Docs,,low,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-24T14:31:21Z,2012-11-24T17:50:11Z,... but the doc block only says string.,scribu
Future Releases,15281,Arin whois link is borked,,Mail,,lowest,normal,Future Release,defect (bug),new,has-patch,2010-11-01T21:33:14Z,2011-03-18T20:33:11Z,"http://ws.arin.net/cgi-bin/whois.pl?queryinput=72.233.56.138

I am tempted to propose an api.wordpress.org service, that way these links will never break, but more importantly because arin.net is one of like 7 services based on global regions, and requesting an Asian IP through arin.net doesn't work.

An IP/geo lookup in core would be prohibitive, but if we still want to keep a link (beyond the IP), then we could do this.

On the other hand, IP addresses are becoming less meaningful. Should we just kill the link?",nacin
Future Releases,12584,Emails from WordPress Admin are html encoded,,Mail,2.9.2,normal,normal,Future Release,defect (bug),new,has-patch,2010-03-11T16:41:17Z,2012-07-03T16:55:00Z,"When a comment form is filled out that contains characters that are candidate for html encoding in the display of the comment on the web site, those comments are also html encoded in the display of the notification email send to the author.

Example comment left on my WordPress install:
Ampersand: &
Quote: ""
Registered: ®

Resulting email notification:
{{{
New comment on your post #168 ""Prevent iTunes from creating unnecessary clutter and cruft""
Author : --
E-mail : --
URL    : 
Whois  : --
Comment: 
Ampersand: &amp;
Quote: ""
Registered: ®
}}}

You can see all comments on this post here: 
http://example.com/prevent-itunes-from-unnecessary-clutter-and-cruft/#comments

Delete it: http://example.com/wp-admin/comment.php?action=cdc&c=xxxx
Spam it: http://example.com/wp-admin/comment.php?action=cdc&dt=spam&c=xxxx

It appears that only the ampersand has this issue.  I am not sure if it also applies to the subject of the email, but can confirm it applies to the body of the email.

The email headers show it was sent as plain text:
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=""UTF-8""",hexley
Future Releases,15539,wp_mail() should allow using PHPmailer's SMTP feature,,Mail,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-11-22T16:51:55Z,2011-02-11T05:46:09Z,"{{{wp_mail()}}} is able to use an already existing instance of PHPmailer. Unfortunately, all settings from the existing instance are then reset.


While this makes sense for things like addresses and subject, it is very bad that {{{$phpmailer->IsMail()}}} is called.

This makes it impossible to create and configure an own instance for usage with a remote MTA.

Possible solutions:

1. Simply omit the call to {{{$phpmailer->IsMail()}}}, as {{{'mail'}}} is already the default value.

2. Move the call of {{{$phpmailer->IsMail()}}} into the {{{if}}} statement at the beginning of the {{{wp_mail()}}} function, so it will only be set if the instance is not set.

3. Add a parameter to the signature of {{{wp_mail()}}} which allows to set the desired MTA backend.
",mastermind
Future Releases,16995,wp_notify_postauthor() pluggable behavior problem,,Mail,,normal,normal,Future Release,defect (bug),new,has-patch,2011-03-29T18:29:05Z,2011-03-31T04:25:05Z,"In my application  a notification must be issued even when an author comments on their own post; this is not allowed by the default WordPress implementation. Lines 1015 - 1025 in function wp_notify_postauthor reject the author's comments and moderations.
Since wp_notify_postauthor is a pluggable function, I can change this behavior by implementing my own function and replacing the default.

However, there is also a redundant test of post authorship in wp-includes/comment.php, function wp_new_comment, around lines 1344 - 1348. This means that my custom wp_notify_postauthor is never called. My specific problem can be solved by commenting out a line of code:

{{{
// $post = &get_post($commentdata['comment_post_ID']); // Don't notify if it's your own comment
}}}

A real fix for this problem should move all of the user_id validation rules out of wp_new_comment and put them in wp_notify_postauthor where they can be modified as needed.
",dglingren
Future Releases,18412,"""%20"" in an uploaded image file name breaks thumbnails",,Media,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-15T13:54:48Z,2011-08-17T00:49:37Z,"When uploading an image file where the name contains %20, it will not show thumbnails. It is still possible to edit the image in the image editor, however.",ripperdoc
Future Releases,17859,Can't attach media to private posts,,Media,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-21T11:54:43Z,2011-06-27T14:58:10Z,"In the Media -page on the WordPress admin, one can attach unattached media to posts and pages.

However, the search does not show private posts, even with the master account.

Reproduce:
1. Upload media
2. Try to attach to a private post or page",knome
Future Releases,19858,Close comments on attached images,,Media,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2012-01-19T16:03:03Z,2012-08-01T12:46:32Z,"In posts, for gallery images and individual images which open in an attachment page when clicked, the image attachment page does not close comments after the designated xx days as the original post does. 

This creates a pile of spam to manage for users that rely on closed comments after xx days and post lots of images.

You can replicate the problem with these steps:
1) In Discussion Settings: set comments to close after 1 day. 'Automatically close comments on articles older than 1 days'

2)Create a post with publish date 2 days ago. Insert an image or gallery which opens in in an attachment page, not just as the image file.

3) The post will have comments closed.

4) The image attachment page will still have comments open.


Here's a test post of mine. Notice the comments closed on the post but still open for the images.
http://hackhappy.wordpress.com/2012/01/17/image-attachment-comment-test/

Bottom Line: Comments should also close after xx days for image attachments, just as the post does. Users reasonably expect this.

Check the post type for image attachment page. It may be marked as a regular page as pages are not controlled by this setting. 

",dohman
Future Releases,19730,"Death ""Add Media"" link after permanently deleting media items.",,Media,3.3,normal,minor,Future Release,defect (bug),new,has-patch,2012-01-04T10:30:13Z,2012-05-01T13:27:10Z,"After deleting a media item permanently and try to directly add a new one via the 'title-menu-link' (the button-link near the ""Media"" title in the admin screen) will result in a death link (""Invalid post type"").

Follow these steps to reproduce the death link(s):

If you have no '''unattachted''' media in your library, first do this:
- Media > Add New
- From the 'title' menu ""Add New"" (Button near ""Media Library"" at the top)
- Add a random image/file and press ""Save changes""
- You'll get redirected back to the overview of all your media.

If you already have one or more '''unattached''' media items in the library:
- Click on the ""Delete Permanently"" link of the file you just uploaded (the unattached file) (and press oke in the alert dialog)
- This is where something goes wrong: You'r now redirected to the edit.php page where you can read: ""Item permanently deleted."". Now click again on the ""Add New"" link in the title-menu near the title ""Media""
- You're now redirected to an invalid page: ""Invalid post type"".
",Jordi-Fun
Future Releases,16106,Error reading EXIF data from uploaded image,,Media,3.0.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-01-05T12:09:50Z,2011-02-14T06:13:22Z,"When the user uploads an image file with EXIF data, that data is saved to the database. exif_read_data() reads the EXIF headers from a JPEG or TIFF image file. This way you can read meta data generated by digital cameras.

In this case the EXIF 'ISOSpeedRatings' key had an array for a value, but a string was expected. So the subsequent trim() call failed.

Patch attached.",4D4M
Future Releases,22793,Image Editor is jumpy when opening.,,Media,2.9,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-12-06T18:52:37Z,2012-12-06T19:58:08Z,"When clicking Edit Image in the attachment editor, there is a flickering - that is, the new stuff gets added to the page before the old stuff has been completely removed, so there is a fraction of a second when the page gets pushed down.

Simple fix. Patch included ( hopefully i created the patch correctly this time :p )",eddiemoya
Future Releases,22813,"Media Uploader doesn't escape ""+"" in filenames and doesn't upload file",,Media,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-07T16:02:27Z,2013-04-23T03:48:58Z,"I downloaded a photo this morning with filename `Screenshot+2012-12-07+at+08.55.33.png` — when I upload it in the WordPress media uploader it acts like its uploading (progress bar, crunching) but then shows a broken image as the result.

1. Upload media with ""+"" in filename
2. Observe progress bar uploading and complete the upload

Expected: file is uploaded A-OK to server, attachment created, image loads as expected.

Actual: no file is stored in uploads (or blogs.dir/files) directory, attachment is still created, no error, file does not exist.

FWIW the filename that WordPress expects to have uploaded is `/2012/12/Screenshot+2012-12-07+at+08.55.33-150x150.png`

I'm on Media Temple, running trunk as of this morning. Not sure if a regression, specific to my server configuration, etc. so more testing here would be appreciated.",devinreams
Future Releases,23292,"Media uploader loads full size image and slows down, please change to thumbnails.",,Media,3.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-25T09:31:11Z,2013-01-25T12:31:37Z,"The media uploader is really slow if you upload 1024 x 768 images, the reason for this is that the preview shows full size images. 

Underneath here is a quick fix to speed up the media uploader to thumbnails.
Please change line 1333 in ""wp-includes/media.php"" from:
{{{
$attachment_url = wp_get_attachment_url( $attachment->ID );
}}}
to:
{{{
$attachment_url = wp_get_attachment_thumb_url($attachment->ID );
}}}",mnrtjeR
Future Releases,20672,Mime-Type Matching Error With Certain Added Mime-Types,,Media,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-05-14T09:50:10Z,2012-05-14T11:11:54Z,"I think I've found a bug in the handling of post_mime_types with certain legitimate file MIMEs. My suspicion is that the problem is related or similar to that reported in [http://core.trac.wordpress.org/ticket/17855 #Ticket #17855], and apparently fixed in Wordpress v3.2.

The particular problem I've been experiencing only becomes apparent when adding MIME-types to the $post_mime_types array via the ''post_mime_types'' filter hook. For example, the following is a legitimate MIME-type:

''application/vnd.google-earth.kml+xml''

However, if I add the MIME to post_mime_types array with:

{{{
function kml_modify_post_mime_types( $post_mime_types ) {
	$post_mime_types['application/vnd.google-earth.kml+xml'] = array(__('KML'), __('Manage KML'), _n_noop('KML <span class=""count"">(%s)</span>', 'KML <span class=""count"">(%s)</span>'));
	return $post_mime_types;
}
add_filter( 'post_mime_types', 'kml_modify_post_mime_types' );
}}}

in my plugin, I don't see a filter link at the top of the Media list (like the ones for Video, Audio etc.), as I should do. I may be wrong, but I think this is because the '+' character in the attachment MIME-type is not handled correctly.

To test this, I tried faking a new MIME, minus the '+'. I changed the MIME-type my plugin add to the post_mime_types array to

{{{
$post_mime_types['application/vnd.google-earth.kmlxml'] = array(__('KML'), __('Manage KML'), _n_noop('KML <span class=""count"">(%s)</span>', 'KML <span class=""count"">(%s)</span>'));
}}}

then changed the value in the MIME field of a previously-uploaded KML file to the same (''application/vnd.google-earth.kmlxml''). Now I DO see the filter link, and clicking on the link reveals the KML file as the only item in the filtered list, as it should.

I'm not sure if the problem manifests itself anywhere else. I've not found any evidence it does, but it may well do. From doing some multi-file searches on the WP system files, my suspicion is that the problem is with one or both of the following functions in post.php:

* wp_match_mime_types()
* wp_post_mime_type_where()


but I'm really not sure.

I'd be grateful if a more skilled coder than me could confirm if this is actually a bug. I'm afraid my regular-expression understanding is minimal, but I suspect this might be an easy fix for someone who knows their stuff.

I'm more than happy to run any tests anyone might suggest to help pin down the source of the problem and/or help fix it.

Thanks guys.

a|x",toneburst
Future Releases,18798,Sanitizing post in get_attachment_fields_to_edit() can cause double encoding under certain circumstances,,Media,2.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-27T23:33:09Z,2012-01-05T14:27:44Z,"In get_attachment_fields_to_edit, the $post object is sanitized using the 'edit' flag, which converts HTML entities. Under some circumstances this can cause entities to be double-encoded (as in, &amp;quot;), because the html entities are already 

To fix this, sanitize the post using the 'raw' flag.",wpdavis
Future Releases,17736,Undefined Index in image-edit.php,,Media,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-09T18:57:48Z,2013-03-29T21:59:24Z,"PHP Notice:  Undefined index:  thumbnail in wp-admin/includes/image-edit.php on line 649

{{{
			if ( $thumb = $meta['sizes']['thumbnail'] )
}}}

",miqrogroove
Future Releases,18184,Wrong area is cropped when using arrow keys to adjust the position of the crop box,azaozz,Media,2.9,normal,normal,Future Release,defect (bug),assigned,has-patch,2011-07-20T16:30:11Z,2012-12-07T13:51:07Z,"When using the crop tool to modify an image, if you select an area and then use the arrow keys to move it around, when you click on the crop button, the wrong area has been cropped. If you do the same thing using the mouse to move the crop box, it works well.",danielristic
Future Releases,21004,add_image_size hard crop messes up image editor rendering,,Media,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-17T23:48:51Z,2012-12-07T13:51:58Z,"When I add an image size with hard crop set to true ( ex: add_image_size('index-thumbnail', 420, 550, true); ) it makes it so that you cannot edit the full size of an image in the image editor - only a cropped version.

http://i47.tinypic.com/20h2dfr.png

(link to screenshot)

The left image in the screenshot is the editor when I removed 'true' from my add_image_size arguments. The right image is with 'true' added back in.

I also see that others had the same problem in this thread: http://wordpress.org/support/topic/help-add_image_size-and-image-cropping?replies=6

...but it was closed without any resolution.",geniepop
Future Releases,20720,attachment_fields_to_save filter is called twice after initial image upload in post,,Media,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-05-21T16:18:41Z,2012-05-22T00:12:20Z,"I believe I found a bug in WordPress with the attachment_fields_to_save filter.  For some reason attachment_fields_to_save is called twice per image, but only if you ""Save all changes"" after uploading a new image to a post.  

How to reproduce:
1.  Add the below code to a plugin:

{{{
add_filter( 'attachment_fields_to_save', 'test_attachment_fields_to_save', 10, 2 );

function test_attachment_fields_to_save( $post, $attachment ) {

	echo 'Hi! </br >';

	return $post;
	
}
}}}

2.  Create a new post
3.  Upload a single image and click ""Save all changes""

You'll see ""Hi!"" displayed twice.  Now visit the Gallery tab and save the same image and you'll see ""Hi!"" is only displayed once.  This only happens when you save a new image uploaded to a post.  If you save an image under the Gallery tab, or via the Media Library, the filter is only called once as expected.

I confirmed this is happening in 3.3.1 and trunk",williamsba1
Future Releases,22649,iPad: Media Modal Problem Editing Long Values,azaozz,Media,3.5,low,normal,Future Release,defect (bug),assigned,has-patch,2012-11-30T07:40:36Z,2012-12-04T18:06:24Z,"In Brief: When I try to edit a very long image title (uploaded file name) the media modal window jumps around and I can't see what I'm editing.

Steps to Reproduce:
1. On Dashboard, tap Add Media.
1. If necessary, upload an image with an obnoxiously long filename, such as a friend's photo from Facebook.
1. Select an image in the Media Library tab that has an obnoxiously long title.
1. Tap the title field.  Cursor should appear at right end of value and visual keyboard should open.
1. Tap the backspace key.

Expected Result:

Plain text editing.

Actual result:

Media Library moves off screen.

Found in 3.5-RC2-22944.  Screen shot coming momentarily.",miqrogroove
Future Releases,17626,image_get_intermediate_size() may return wrong thumbnail size,nacin,Media,,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-05-31T14:33:27Z,2013-03-31T16:26:12Z,"See [http://wordpress.stackexchange.com/questions/17511/featured-image-with-the-same-height-thumbs-returns-wrong-thumb this WPSE question] for a more detailed explanation of the problem.

Essentially, if `get_the_post_thumbnail()` is passed an array for the `$size` argument, and if two images have one dimension exactly the same, the image with the ''smaller'' opposing dimension will be returned, even if the dimensions for the other image are declared explicitly.

The issue appears to be due to the way that `image_get_intermediate_size()` determines if an image exists that is cropped to dimensions similar to the specified `$size` array. As soon as it finds one, it uses it.

I've attached a patch that first attempts to find an image cropped ''exactly'' on  both dimensions, before looking for images cropped exactly only on one dimension. There will still be edge cases where the wrong image might be returned, but I'm not sure of the most efficient way to handle such cases.

(Note: props to Rarst for finding the underlying issue.)",chipbennett
Future Releases,18532,resized image dimensions incorrectly floored instead of rounded,,Media,2.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-27T16:14:29Z,2011-09-04T17:43:03Z,"Image dimensions are incorrectly floored instead of rounded to a proper number. Some attempt at ""fixup"" is done later in some processes to move them by a pixel, but still the way it's initially calculated is wrong.

'''For example:

A typical photo has a 3:2 (3/2 = 1.5) ratio.

If it's resized to 600px width, WP will make the height 399px - this is wrong.'''

It happens because of ''function wp_constrain_dimensions'' in ''media.php'' (~line 304) which floors the float using intval, which is wrong. 


{{{
	$w = intval( $current_width  * $ratio );
	$h = intval( $current_height * $ratio );
}}}

'''I propose'''

{{{
	$w = round( $current_width  * $ratio );
	$h = round( $current_height * $ratio );
}}}

Earlier in the function, both $ratio and $current_width are already handled as numbers, so they have to be valid numbers, no need to use intval for that reason, it's just being used to floor, which is bad in this case.

Using round is not a performance issue because this function is not used in realtime output for templates but typically in admin area.

Optionally while you are at it, put a filter on wp_constrain_dimensions and pass the filter all the values passed to the function before the array is returned at the end.
",_ck_
Future Releases,19512,wp_read_image_metadata includes bitmap in description,,Media,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-12-12T13:47:40Z,2011-12-20T20:51:17Z,"After uploading a photo that includes (photoshop) bitmaps in the image data, the bitmap data is copied into the image description.




",macbrink
Future Releases,14134,Menus item are limited to 16 item and will not save more than that,filosofo,Menus,3.0,high,major,Future Release,defect (bug),reviewing,has-patch,2010-06-28T22:50:55Z,2013-04-20T04:36:54Z,"I've installed a fresh copy of the WP 3.0 about 4 days ago. Using default twentyten theme. I modified the menus from the admin panel with new pages and some custom links and hierchy... now everytime I modify the menu and click ""Save Menu"" it only saves the first 16 items listed on the menus. 

The problem is.. I have about 8 main menu with some of them have about 5 or 6 items below it, it cuts off at the 16th item and does not save anything beyond that.

I deleted the first item and added two more at the end, same thing, it only saves the first 16 items on the menus.

I been sturggling on my own to figure this out, did search here and google yet to find a solution..

I am shocked no one else is having this problem. I tried in IE7, IE8, Firefox, Chrome, Safari and Opera - I have the same problem no matter which browser I use.

in function.php I am using
{{{
register_nav_menus( array(
		'primary' => __( 'Primary Navigation', 'MainNav' ),
	) );//-------------------
}}}
and the page I want the nav on has thise code:
{{{
wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) );
}}}

Any help is appriciated...",jaanfx
Future Releases,16787,Removing title from a page (blank title) results in collapsed UI element in menu builder,,Menus,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-07T17:43:29Z,2013-04-22T03:21:45Z,"This minor issue has to do with the custom menu interface and titleless pages pages - this is handled somewhat gracefully when you initially create a titleless page using (pending) placeholder text, so I thought I would report it.[[BR]]
 

'''Issue preconditions'''

* WordPress 3.1
* Page created with title and body text
* Page added to a custom menu and saved[[BR]]

'''Steps to recreate'''
* remove title from the page from one of the ""edit page"" UIs
* visit the Menus interface
* you should now see a collapsed menu item in the menu creation interface (screenshot attached[[BR]]

Tested In: Chrome OSX 10.0.648.127 | Firefox OSX 3.6.13
",jafoca
Future Releases,14439,Unable to get a post associated menu items for a specific menu,,Menus,3.1,normal,major,Future Release,defect (bug),new,has-patch,2010-07-28T03:32:06Z,2011-01-15T01:23:21Z,"Hello,

The actual wp_get_associated_nav_menu_items function works well but gets menu items associated with an object from ANY menu. So a parameter needs to be added to specify a specific menu to get menu items associated with an object from a specific menu.

Patch is attached. The use of get_term() is needed because of the bug #14438",DreadLox
Future Releases,14551,menu item : current_page_parent : issue with Front page displays,,Menus,3.0.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-08-06T12:46:24Z,2010-08-10T07:46:17Z,"Settings > Reading > Front page displays: set to your latest posts
Settings > Reading > Posts page: set to anything

When the menus are building, they are only checking that something was set by the dropdown for posts page, even though the parent setting says the posts are to be on the home page.  The pages on the site have the correct logic, however the menu adds ""current_page_parent"" to the item selected in the ""Posts page"" menu, even though it's not really the parent.

The work around is to just remember if you switch from having posts on a different page back to having them on the front, you need to set the ""Posts page"" back to ""select"" and everything works correctly, but getting users in my multi-site install to do that might be asking a bit much.",hughestm@…
Future Releases,23805,wp_ajax_add_menu_item() closed to user-created menu item types,,Menus,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-18T01:41:52Z,2013-03-19T11:53:02Z,"I'm building a new Menus meta box, that can add a new type of menu item, lets call it 'foobar'.

The conditional inside `wp_ajax_add_menu_item()` is slightly off. It checks that the menu item type is not 'custom', then proceeds to assume that it's either post-type or taxonomy so it can do some DB look-ups and create an `$_object` variable which is then used. This means it's closed to other types of menu items.

I've chosen 'foobar', so I can distinguish those items later on when walking through the front-end output.",GaryJ
Future Releases,17821,wp_get_nav_menu_object() doesn't check when passing to get_term(),,Menus,3.1.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-17T00:02:14Z,2012-05-01T13:27:40Z,"`wp_get_nav_menu_object()` initially passes the menu string to `get_term()` to see if it's an ID. However, `get_term()` expects an integer or object and type-casts any non-objects passed into integers. This results in a menu name i.e. '10-ton elephant' being reduced to '10', which it then uses as a term ID, potentially producing unexpected results.",kawauso
Future Releases,18232,wp_nav_menu - Setting walker parameter affects fallback_cb,,Menus,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-07-24T08:14:35Z,2012-07-17T17:20:50Z,"When using the walker parameter with wp_nav_menu and there is no menu present, wp_nav_menu falls back by default (set with fallback_cb) to wp_page_menu. It appears that the set walker also affects wp_page_menu, which in most cases breaks the output.

wp_nav_menu usage:
{{{
<?php wp_nav_menu(array('walker'=> new Walker_Nav_Menu)); ?>
}}}

Output when no menu is present (falling back on wp_page_menu):
{{{
// Formatted for readability
<div class=""menu"">
	<ul>
		<li id=""menu-item-1"" class=""menu-item-1""><a></a></li>
		<li id=""menu-item-2"" class=""menu-item-2""><a></a></li>
		<li id=""menu-item-3"" class=""menu-item-3""><a></a></li>
	</ul>
</div>
}}}

Expected output:
{{{
// Formatted for readability
<div class=""menu"">
	<ul>
		<li class=""page_item page-item-1""><a href=""/first/"" title=""First"">First</a></li>
		<li class=""page_item page-item-2""><a href=""/second/"" title=""Second"">Second</a></li>
		<li class=""page_item page-item-3""><a href=""/third/"" title=""Third"">Third</a></li>
	</ul>
</div>
}}}

As you can see, the output from wp_page_menu is getting filtered through the walker, but since the walker was designed for menus specifically, it renders the default output from wp_page_menu useless (empty tags..etc).",bryanjwatson
Future Releases,20275,wp_update_nav_menu hook is not fired when nav menu item is auto-added,,Menus,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-21T19:30:59Z,2012-09-27T14:12:45Z,"WP calls the action hook 'wp_update_nav_menu' when a navigation menu is updated. For example, go to Site Design -> Custom Menus -> Click the ""Save Menu"" button on a menu.

Next to the Menu title, the Custom Menus provide the user to ""Automatically add new top-level pages"". When this option is checked, and a new top-level page is created, the 'wp_update_nav_menu' hook is not fired. So the attached nav-menu-hooks.diff patch fixes that.



I would also suggest that we do not use the same hook 'wp_update_nav_menu' twice (as it is currently being done) with different amount of arguments, because this causes a PHP Warning 

{{{
PHP Warning:  Missing argument 2 for x_save_footer() in /var/www/branches/x.trunk/wp-content/themes/x/functions.php on line 815, referer: http://x.com/x/wp-admin/nav-menus.php
}}}

for code:
{{{
add_action('wp_update_nav_menu', 'x_save_footer', 10, 2);
}}}

So, the hook call at nav-menu.php:255 has 2 parameters and the call at nav-menus.php:383 has 1 parameter.

As a fix, the action hook in nav-menu.php should be named something else, like 'wp_update_nav_menu_object' (because it is updating the object), as done in the attached nav-menu-hooks.diff patch. This will also prevent the same hook from being fired twice when updating the nav menus.",inderpreet99
Future Releases,21652,wp_update_nav_menu_items returns false instead of WP_Error for non-existent menu items,,Menus,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-21T16:57:45Z,2012-08-25T14:49:33Z,"'''Use case:'''
Calling wp_update_nav_menu_items with a non-existent menu_item_id as the first parameter

'''Expected return value:''' WP_Error object (as per the method's documentation)

'''Actual return value:''' Boolean false

'''Fix:''' wp-includes/nav-menu.php#L279 - This line should check for a false value first, and if `$menu == false`, set it equal to a `new WP_Error` object - then check `is_wp_error($menu)`",mltsy
Future Releases,21306,"Archived blogs should return HTTP ""404 Not Found"", not ""410 Gone""",,Multisite,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-07-18T19:39:51Z,2012-07-18T19:39:51Z,"In a multisite network, if a site is archived, ms_site_check() currently serves up a HTTP 410 status code. Here's what the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html HTTP spec] has to say about 410:

  The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities SHOULD delete references to the Request-URI after user approval. If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) SHOULD be used instead. This response is cacheable unless indicated otherwise.

It's acceptable to serve a 410 if the site is marked as deleted or spam, but I don't think that archiving the site is an indication that the site is permanently and irrevocably gone. Although a case can be made for changing it to 404, my contention is that a 403 is more appropriate for semantics and for bots. From the same HTTP spec:

  403 Forbidden: The server understood the request, but is refusing to fulfill it.

vs

  404 Not Found: The server has not found anything matching the Request-URI.",amattie
Future Releases,16328,Auto redirect to home when www is in the URL in MU,,Multisite,3.0.4,normal,major,Awaiting Review,defect (bug),new,close,2011-01-21T04:46:08Z,2012-11-02T22:28:36Z,"I have come across a problem on my MU installation where my primary blog will automatically redirect to the home page when www is in the URL and a virtual subfolder is being called. 

Ex. http://www.domain.com/virtual_subfolder/ would redirect to http://domain.com/. 

This problem does not effect the domains that I added on with MU, only the primary site is effected. ",lelandmcfarland
Future Releases,20983,Change phrasing for 'Network Activate' newly installed plugins,,Multisite,3.0,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-06-15T21:25:05Z,2012-06-16T02:28:39Z,"Not everyone is clear what 'Network Activate' means and after installing a plugin, a lot of people just assume that activate will turn it on for one site only. Then they complain that the plugin turned it self on automagically!

While it would make the link longer, I think changing it to the same wording we have in the title might actually catch their eye: ''Activate this plugin for all sites in this network''

(The other thought was to put 'Return to Plugins Page' in front of Network install, but that would annoy single site people, of whom there are a majority)",Ipstenu
Future Releases,15855,Dropdown isn't shown when doing a user 'removal',,Multisite,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-16T23:38:12Z,2012-04-27T18:14:51Z,"Steps to reproduce:

0. Have a MultiSite install
1. Go to wp-admin/users.php and delete a user
2. A confirmation screen appears, with only a ""Confirm"" button.

Expected behaviour:

The user dropdown is shown, asking to assing the user's posts to a different user.

Currently, you end up with authorless posts.",scribu
Future Releases,20774,Flag an user as spam with any rol become a sub site flagged as spam (Multisite),,Multisite,3.0,normal,major,Future Release,defect (bug),new,has-patch,2012-05-29T12:25:52Z,2012-11-08T21:02:31Z,"Hi,

Since many weeks, many WangGuard users were contacting me because they say WangGuard were flagging the sub sites as spam.

Thats not a WangGuard bug, is a WordPress issue.

Steps:

- Create a Subsite, you can add the Super Admin like site admin.
- Add a user like subscriber.
- Flag that user as spam in /network/users.php

That site will be flagged as spam although the owner were the Super Admin.

I think WordPress has to look for the user rol and only flag the sub site as spam if the rol is Administrator.



This issue is in WP 3.3.1 and 3.4",j.conti
Future Releases,14867,HTTPS related issues in ms-blogs.php (with fix),,Multisite,,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-09-14T15:09:14Z,2011-10-13T19:18:53Z,"Two functions in ms-blogs.php have issues due to hard-coding ""http://"" versus using the is_ssl() check. I have corrected them below. Just copy and paste these over the ones in your ms-blogs.php.


function get_blogaddress_by_id( $blog_id ) {
        $protocol = is_ssl() ? 'https://' : 'http://';

        $bloginfo = get_blog_details( (int) $blog_id, false ); // only get bare details!
        return esc_url( $protocol . $bloginfo->domain . $bloginfo->path );
}

function get_blogaddress_by_domain( $domain, $path ){

        $protocol = is_ssl() ? 'https://' : 'http://';

        if ( is_subdomain_install() ) {
                $url = $protocol.$domain.$path;
        } else {
                if ( $domain != $_SERVER['HTTP_HOST'] ) {
                        $blogname = substr( $domain, 0, strpos( $domain, '.' ) );

                        $url = $protocol . substr( $domain, strpos( $domain, '.' ) + 1 ) . $path;

                        // we're not installing the main blog
                        if ( $blogname != 'www.' )
                                $url .= $blogname . '/';
                } else { // main blog
                        $url = $protocol . $domain . $path;
                }
        }
        return esc_url( $url );
}",mareck
Future Releases,20204,Incorrect links to SSL sites in Multisite,,Multisite,3.0,low,normal,Future Release,defect (bug),new,has-patch,2012-03-08T16:05:19Z,2012-11-08T00:00:19Z,"If I create a site in Multisite that has an SSL URL then a few links in Network Admin incorrectly use a non-SSL URL for the site.

Opening this ticket so I don't forget about it. Patch coming up when I have some time.",johnbillion
Future Releases,19375,Make BLOG_ID folder deleted on site-deletion,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-11-28T00:41:57Z,2012-02-07T00:00:09Z,"It would be appreciated that the BLOG_ID folder get deleted on site-deletion, in the future..

My reference is the discussion at, 

http://wordpress.org/support/topic/wpmu_delete_blog-not-deleting-blogsdir-folder",momotombopuro
Future Releases,17376,Multisite Subfolders and bunk /wp-admin areas,,Multisite,,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-11T15:07:38Z,2012-04-19T01:37:52Z,"On a multisite installation with subfolders, navigating to:

www.mysite.com/i-dont-exist/wp-admin

loads a dashboard and maintains the i-dont-exist in the url.  That part exists if i navigate to themes and/or plugin pages.  However, I'm actually altering the base site.
This can be quite confusing if someone makes a typo in a sitename and they end up changing the base site (like happened to us) :(",MadtownLems
Future Releases,17905,Multisite doesn't delete a user's posts/links upon removal,,Multisite,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-27T12:59:43Z,2011-06-27T17:06:44Z,"When the ""Delete all posts and links."" radio is selected all that happens is the user is deleted but their posts are left in tact but without a visible user. The posts should be moved to trash as well.

This is caused by removal from the blog in `network/edit.php` before the user is actually deleted where trashing of posts occurs. Since the user no longer has any assigned blogs wpmu_delete_user() doesn't call wp_delete_post().

Patch attached also cleans up confirm_delete_users slightly by using the array passed as an argument instead of $_POST['allusers'].

Related: [13918]",duck_
Future Releases,18934,Multisite issue cleaning up empty capabilities,PeteMall*,Multisite,3.0,normal,normal,Future Release,defect (bug),accepted,has-patch,2011-10-13T20:02:12Z,2012-11-07T22:18:09Z,"The following multisite-specific block of code in user-edit.php doesn't seem right:
{{{
		$cap = $wpdb->get_var( ""SELECT meta_value FROM {$wpdb->usermeta} WHERE user_id = '{$user_id}' AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'"" );
		if ( !is_network_admin() && null == $cap && $_POST[ 'role' ] == '' ) {
			$_POST[ 'role' ] = 'contributor';
			$delete_role = true;
		}
}}}

The query appears to be checking whether the user in question specifically has no capabilities for the given blog. However, on the next line, it checks whether the result set from that query is null - that is, if the user does '''not''' have a no-capability entry. This includes users who don't have any capability entries at all (so there wouldn't be anything to delete) and users who actually have valid capabilities (whom I wouldn't think should be deleted).

It's possible I'm misunderstanding this code, but my expectations here are that the line should read {{{null !== $cap}}}.

I'm not sure if this occurs in standard workflows, but I ran into it when writing a plugin. To work around it, I back-populated {{{$_POST[ 'role' ]}}} with the user's current role.",jammitch
Future Releases,20846,Multisite: Network Users can post comments without being members of the site,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-05T14:35:41Z,2012-11-02T23:02:52Z,"This is probably an 'ever since inception' issue and I can replicate it on 3.4

Setup:

Have a user added to your network but '''not''' to a site (domain.com/test).

Set up domain.com/test to only allow registered users to comment. Remember, we've not added this new user to the site, just the network.

Log in as that user and go to domain.com/test

Oh look! You can comment as a 'registered' user.

This should be check for 'Is this a user ''and'', if multisite, is this user a member of the site?'

It's that or the wording needs to be clearer that anyone registered on the network can comment.",Ipstenu
Future Releases,21573,NOBLOGREDIRECT interfering with 404 errors,,Multisite,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-14T07:32:06Z,2013-04-16T05:36:08Z,"When the `NOBLOGREDIRECT` constant is defined, 404 pages on the main site will not work and instead redirect to URL defined in `NOBLOGREDIRECT`. This is the cause of the `maybe_redirect_404` action/function, which is not needed and should be removed.",bungeshea
Future Releases,16568,Network install disables site when blog_id is not 1,,Multisite,3.0.5,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-15T20:07:03Z,2011-02-16T01:31:33Z,"This is an edge case and only occurs when MySQL is configured to skip numbers in auto number fields.

The network install inserts the blog record and allows MySQL to assign the blog_id. The blog prefix logic in wpdb depends on the blog_id of the main blog being 1.

The manual fix for this is to edit the DB and change the blog_id of the main blog to 1. Between being an edge case and a relatively easy fix, this isn't severe, imo.

Forum thread: http://wordpress.org/support/topic/database-error-when-enabling-mutlisite",wpmuguru
Future Releases,15956,Remove user link should be red,,Multisite,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-22T23:10:02Z,2012-05-01T14:07:04Z,"On MultiSite, a user has a 'Delete' action link, which erases them from the system completely. It is red.

When going to `Network Admin -> Sites -> Edit Site -> Users` there is a 'Remove' link, which only erases a user from a certain site in the network. This is currently blue.

Since it's still a destructive action (no trash), the 'Remove' link should be red as well.",scribu
Future Releases,19724,Sites with IDN domains can't be created (bug #15554 continuation),,Multisite,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2012-01-03T17:44:08Z,2012-04-17T04:02:31Z,"registration of new site with idn domain by unknown/new users themselves is not possible.
(though creation of new site in wp-admin/network/site-new.php page is possible, by patch given in bug #15554 , i have just now tested it.)

also let i mention that site domain is written (and would be requested to enter, if would be fixed without punycode to unicode conversion) in punicode form in wp-signup.php page, that is not acceptable for wordpress.

i have attached differences i made to wp 3.0.4 to make idn domains working and also to show and accept them in human readable format in wp-signup.php page . link to the differences file i attached to/in previous bug report on/to this topic: http://core.trac.wordpress.org/attachment/ticket/15554/diff304-blogo.txt .",qdinar
Future Releases,20825,User activation in multisite should happen in the main blog..,,Multisite,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-04T11:00:41Z,2012-11-02T22:52:08Z,"In multisite mode ( subdomain ) , when a user activates his account, it should happen in the main blog ( or not ? ) .

In ms-settings.php ( line 118 ) , we assume that the main blog is always blog=1 ( which may be wrong ) . 

The attached patch uses the constant BLOG_ID_CURRENT_SITE if defined instead.",rahal.aboulfeth
Future Releases,20116,Welcome User Email in Multisite Can't Be Changed,,Multisite,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2012-02-24T21:44:28Z,2012-05-02T20:32:08Z,"Reproduced this on 3.3 and 3.4-aortic.

Go to /wp-admin/network/settings.php

Add 'New' to the sentance 'Welcome User' to make it 'Welcome New User'

Hit update.

Page refreshes, text does not change.",Ipstenu
Future Releases,20589,domain_exists should add trailing slash to path,,Multisite,3.0,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-05-01T16:49:18Z,2012-07-03T00:36:37Z,"{{{insert_blog}}} runs {{{trailingslashit}}} on the path, however, {{{domain_exists}}} uses whatever is passed in. If WP is enforcing the trailing slash on blog insertion, it really should when checking existence. It should probably also cast the site_id as an int per {{{insert_blog}}}.",ejdanderson
Future Releases,14730,ms-files.php required ob_clean() and flush(),westi*,Multisite,,normal,normal,Future Release,defect (bug),accepted,has-patch,2010-08-30T04:53:20Z,2013-02-05T16:17:29Z,"I recently migrated a development wp 3 multisite install to 'live' mode for a site launch.  One problem I had is that images served out of /files stopped working.  Everything looked fine as far as the response / headers, but the image would open up as corrupted.  

After quite a bit of troubleshooting, the problem went away when I added ob_clean() and flush() calls to ms-files.php just before the readfile($file) call at the end of the file.  Perhaps this is due to a problem elsewhere in my site, but I'm creating this bug so someone can decide if adding the buffer flush would be a reasonable addition to the codebase.  It seems like this is the recommended way of doing things according to the sample code here:

http://us2.php.net/manual/en/function.readfile.php",pj_mfc
Future Releases,17168,redirect loop when accessing wp-admin/network/,,Multisite,3.1.1,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-04-18T17:59:55Z,2012-08-10T06:31:44Z,"As of 3.1.1 administrators are getting redirect loops when accessing wp-admin/network/. I run a multi-site multi-domain network and we've noticed that this bug is effecting new and old sites. One super admin reported clicking Update Network put's it in a redirect loop as well.

For new sites if this bug occurs the quick solution is to delete / recreate. I checked _options siteurl, _blogs blog_id domain, and _sitemeta siteurl. Nothing out of the ordinary in the db.",chaos1
Future Releases,23637,wp-signup.php has overly aggressive CSS,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-27T14:33:46Z,2013-02-27T18:25:15Z,"The CSS added through wp_head by wp-signup.php stops Multisite form fields from being styled through inheritance. Allowing inheritance will result in more consistent styling with the active theme (for example, field font-size).",kwight
Future Releases,21662,wp-signup.php says there's no limit to the number of blogs even when that is not desired or impossible,,Multisite,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-22T20:48:26Z,2012-12-29T16:53:04Z,"Please remove the statement in '''wp-signup.php''' that exclaims that there's no limit to the number of blogs one can create. It's on line 169.

I ask for two reasons:
1. Hosters of WordPress Networks may not wish to encourage users to open a ton of blogs. I don't because I don't want to encourage a support nightmare.
2. We might use a plugin that limits the number of blogs that users may create, like [http://buddydev.com/buddypress/limit-blogs-per-user-plugin-for-wpmu/ Limit Blogs per User].

For #2, an acceptable alternative may be to make it a string that can be overridden by a plugin. But the current situation, where it's a one-size-fits-all string, is bad because I have to manually edit it each time I (frequently) upgrade WordPress.",novasource
Future Releases,17890,"""Add New Site"" screen reports invalid email addresses as missing",,Network Admin,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-25T11:32:41Z,2011-06-25T11:40:07Z,"The new site user's email is passed through `sanitize_email()` and the screen dies with 'Missing email address.' if it's `empty()`.

`sanitize_email()` returns an empty string (subject to filtering) on invalid email addresses however, so the following `is_email()` check for invalid email addresses is never even reached.

'''Steps to reproduce:'''
1. Add a new site with an email address such as foo@bar",kawauso
Future Releases,17394,Network Admin -> Sites -> Users not report correctly,,Network Admin,3.1.2,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-05-12T14:10:29Z,2012-04-23T00:12:23Z,"The Network Admin -> Sites -> Users screen does not list all users in the site. I see the symptom of this issue has been reported before, but I have found the cause (in my case anyway).

'''Example Scenario:'''
In my set up I have added plugins that add user roles: a registration plugin that adds ""Registration Admin"" and a event management plugin that adds ""Office"" and ""Committee"". I have the registration plugin installed in all sites (root and test), but the event plugin in only installed in the test site. 

When I add a user to the root site, I can choose the normal roles or ""Registration Admin"", when I add a user to the test site I can choose the normal roles or any of the 3 new roles that have been added.

'''Problem:'''
When I view the list of users on the Network Admin, not all users are displayed in the list. It appears the Network Admin screen works in the context of the root site, where the event plugin is not installed. As a result, the Office and Committee roles are not available in the root site, and users of the sub-site with the those roles do not show in the user list. 

The filters show the correct total number of users beside All, but the additional roles unique to the sub-site are not listed. In the sub-site Dashboard, they show correctly, and if I install the other plugin to add the Office and Committee roles to the root site they will show in the Network Admin -> Sites -> Users screen for the sub-site. 

It would appear the user list for a sub-site will ignore users that are assigned a role that doesn't exist in the root site, even though they are assigned a valid role in the site displayed. 

This bug is reproducible by adding roles to sub-sites.

I would a happily help with more clarification or resolving this issue as needed. I know it's not critical, but it is very frustrating when administering a large multi-site network.",whiteatom
Future Releases,18088,Network Admin Email setting in wp-admin/network/settings.php fails silently,,Network Admin,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-07-12T19:56:26Z,2012-01-12T00:47:37Z,"'''Steps to reproduce:'''
1. Go to wp-admin/network/settings.php
1. Try setting your email to support@localhost
1. Page reports success but email remains the same


The check in wp-admin/network/edit.php consists of:
{{{
if ( is_email( $_POST['admin_email'] ) )
	update_site_option( 'admin_email', $_POST['admin_email'] );
}}}

which doesn't account for anything not passing `is_email()`

I know network admins should know what they're doing, but failing silently is a pretty sure-fire way to generate confusion.",kawauso
Future Releases,17545,Pagination Broken on Network Admin > Edit Site > Themes,,Network Admin,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-23T17:27:45Z,2011-11-22T17:11:53Z,"Pagination is broken in network admin on pages such as https://example.com/wp-admin/network/site-themes.php?id=XXXXX

You can navigate through pages using the arrow buttons, but entering a page number just reloads the page you’re currently on.

Steps to reproduce:

- From network admin, ""search sites""
- Edit site
- Click ""themes"" tab
- Enter any valid page number in the text field
- Hit enter",pmaiorana
Future Releases,16096,editing permalink structure in edit site causes 404s on site,,Network Admin,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-04T16:15:53Z,2012-11-07T22:19:10Z,"If you edit a sites permalink structure in the network admin edit site screen, the site's rewrite rules do not get updated. The permalink_structure option is used to generate the permalinks on the front end of the site. Hence the rewrite rules will not match the permalinks until the permalink settings screen is visited in the site's dashboard.

The two alternatives are remove the permalink setting from the edit site screen or clear the rewrite rules.

I'm attaching a patch to clear the rewrite rules. The patch uses update_option instead of delete_option because update_option leaves the empty option in the object cache. If the option is deleted then WP will query the DB, add rewrite_rules to the notoptions cache, generate the rules, update the DB & remove rewrite_rules from the notoptions cache.",wpmuguru
Future Releases,19765,site-users.php in network admin doesn't display users with custom roles,,Network Admin,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-06T18:04:20Z,2012-01-07T14:03:30Z,"In the network admin when looking at the users of a specific site, if the site has a custom role the users with that role will not show up. The patch attached ensures that switch_to_blog() is used at the correct places so that data is being gathered from the correct site, not from the main site.",wpdavis
Future Releases,10886,WordPress should not unnecessarily query posts at page load,junsuijin,Optimization,2.8.4,normal,normal,Future Release,defect (bug),new,has-patch,2009-10-02T01:10:15Z,2010-08-06T07:58:06Z,"For plugins like BuddyPress, with pages that have no WordPress post content, a query for posts at load time creates unnecessary overhead. I've tested this patch (with WordPress MU) and it removes 3 queries on all pages when the 'NO_QUERY' constant is defined. A very quick scan of page load times also suggests about 20% in time savings on average.

Other plugins like shopping carts and any others that needn't query the WordPress posts table can benefit from this as well.

My previous means of achieving this effect was to simply return null to the 'posts_request' filter, which removes only 2 queries per page.

The devised method uses suggestions from azaozz and sivel, and allows for setting the definition of 'NO_QUERY' using the 'init' action hook. It also still allows for further querying of the posts at a later point if necessary.

I welcome further suggestions about the patch, and any other ways this could be accomplished more effectively.",junsuijin
Future Releases,10545,_publish_post_hook (adding to postmeta existing hooks),,Optimization,2.8.1,normal,normal,Future Release,defect (bug),new,has-patch,2009-08-04T21:22:57Z,2010-05-14T08:14:57Z,"The problem that each time yuo press publish (assuming this is a save button) wp add to postmeta table new records even thay already exist now.


{{{
if ( get_option('default_pingback_flag') )
		$wpdb->insert( $wpdb->postmeta, $data + array( 'meta_key' => '_pingme' ) );
	$wpdb->insert( $wpdb->postmeta, $data + array( 'meta_key' => '_encloseme' ) );
}}}

shoud be (something like)
 

{{{
if ( get_option('default_pingback_flag') ){
		get_post_meta($post_id, '_pingme') ? update_post_meta($post_id, '_pingme', 1) : add_post_meta($post_id, '_pingme', 1);
		
	get_post_meta($post_id, '_encloseme') ? update_post_meta($post_id, '_encloseme', 1) : add_post_meta($post_id, '_encloseme', 1);
}}}
",butuzov
Future Releases,11381,display_page_row() generates boat loads of needless queries,,Optimization,,normal,normal,Future Release,defect (bug),new,has-patch,2009-12-10T12:41:45Z,2010-05-16T06:12:50Z,"on sites with many static pages that are spread across multiple parents, display_page_row() triggers multitudes of calls to the db.

specifically, it's repeatedly calling get_pending_comments_num(). it's also calling get_editable_user_ids() and wp_dropdown_users(), both of which do not seem to cache their results in case they're used several times on the same page.",Denis-de-Bernardy
Future Releases,8885,get_posts() should default orderby post_date_gmt,,Optimization,2.7,normal,normal,Future Release,defect (bug),new,has-patch,2009-01-19T13:03:12Z,2011-04-27T17:40:37Z,"the function get_posts() in posts.php is defaulted to orderby post_date.  The problem with this is if entries are added in differing timezones (e.g., I changed my system timezone after x number of posts have been made), then the sorting is incorrect.  Since post_date_gmt is correct despite the timezone you are in, sorting based on this should be the default behavior.",caorongjin
Future Releases,11384,rewrite->flush() needlessly deletes the rewrite_rules option,,Performance,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2009-12-10T13:39:52Z,2010-11-13T07:30:14Z,"All sorts of cache-related plugins hook into the update_option_rewrite_rules and force-flush whatever they're caching when rewrite_rules are updated.

When a page is saved, WP_Rewrite::flush() mindlessly deletes the rewrite_rule option, triggering all sorts of cache flushing that may or may not be necessary.

The attached patch keeps the rewrite_rules option intact when a soft refresh occurs.

Tests done:

 - non-verbose rules used, page changes parent: no refresh
 - verbose rules used, page changes parent: refresh

Dunno what else needs to be testing...",Denis-de-Bernardy
Future Releases,19867,wp_dropdown_users() still not scalable,,Performance,3.3.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-01-20T22:04:27Z,2013-02-11T13:31:09Z,"#14572 made huge improvements to the performance of wp_dropdown_users(), however, on certain sites that have an unusually large set of authors, wp_dropdown_users() still isn't usable.  It either causes a memory error on the server, or potentially crashes the client browser due to content size.",prettyboymp
Future Releases,9102,Inverse proxy breaks permalinks,ryan,Permalinks,2.7,normal,normal,Future Release,defect (bug),new,has-patch,2009-02-12T01:58:37Z,2010-04-02T00:34:00Z,"I have a WP installation at my university's webspace (on an apache server), say http://myuni.ac.at/mydir/wordpress/ , and an inverse proxy domain http://mydomain.at/ for it.
This means that any request to the latter, eg for http://mydomain.at/2009/02/12/inverse-proxy-trouble/ , is forwarded to http://myuni.ac.at/mydir/wordpress/ , which in turn means that the REQUEST_URI there becomes /mydir/wordpress/2009/02/inverse-proxy-trouble/ . My ''home'' variable is of course set to http://mydomain.at/ (''siteurl'' is set to http://myuni.ac.at/mydir/wordpress/ -- otherwise I wouldn't be able to login to WP).

Unfortunately, when analyzing REQUEST_URI, wordpress chops off the ''home'' path, not the ''siteurl'' one. This may be okay for some purposes, but in the inverse proxy case, permalinks break. For a fix, I had to hack two wordpress core files, namely 

wp-includes/classes.php
in function parse_request: change line 162 from 

{{{
$home_path = parse_url(get_option('home'));
}}}
to
{{{
$home_path = parse_url(get_option('siteurl'));
}}}

and wp-includes/rewrite.php, in function get_pagenum_link, line 987, same modification.

This is a dirty hack, of course; so I wonder if in general, using the ''siteurl'' path is valid in any case where the ''home'' host differs from the ''siteurl'' host. If so, I suggest changing the affected files in such a manner.",Bernhard Reiter
Future Releases,12634,Media Library & Permalink Overlap,ryan,Permalinks,2.9.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-03-18T15:37:23Z,2011-02-13T07:54:42Z,"The problem is: upload a media item and give it a name, such as 'test'. Create a new page titled 'test' with a permalink that reads http://www.example.org/test/.

The permalink, instead of going to the page, goes to the media item. 

For most purposes, I would imagine this behavior should be reversed.

-Tim-",tmoorewp
Future Releases,23229,Pagination Links Broken,,Permalinks,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-17T23:11:04Z,2013-01-19T04:47:55Z,"Currently, if the request URL ends with ""page/[\d]+/?"" it will always assume that it is the pretty version of the paged parameter, and rewrite that section of the URL.

This breaks in any condition where a numeric value follows that string at the end of a URL. An example that can be easily reproduced is as follows:

1) Set theme to TwentyEleven

2) Modify the theme to output the results of get_pagenum_link(2) anywhere.

3) Change permalink structure to ""/daily-page/%year%/%monthnum%/%post_id%/""

4) Go to a year archive for the permalink structure above.

5) The result of the get_pagenum_link will look like this: ""/daily-/page/2/"", breaking pagination within this context.

I've attached a patch against current trunk code that addresses this, providing the following features:

1) Pagination links functional in the scenario above, along with custom rewrite rules.

2) Updated to allow numeric post names for hierarchical post types (currently always rewritten with ""-2"")

3) Updated get_pagenum_link filter to include pagenum parameter as it was passed in.

",ssmathias
Future Releases,20419,get_sample_permalink() passes the wrong post_status to wp_unique_post_slug(),,Permalinks,3.3,normal,minor,Future Release,defect (bug),new,has-patch,2012-04-11T23:15:38Z,2013-05-09T04:19:10Z,"get_sample_permalink() fakes a 'publish' post_status so that it can create a pseudo-permalink for drafts and scheduled posts.  Also wp_unique_post_slug() bails when the post_status is 'draft', 'pending', or 'auto-draft', so faking a 'publish' post_status helps there too.

However, that means the incorrect post_status is passed to the 'wp_unique_post_slug' filter at times, creating unexpected behaviour -- namely sometimes the $post_status parameter of the wp_unique_post_slug filter will report a non-published post is published.  

The best approach here seems to be to let the wp_unique_post_slug() function know when a fake $post_status is being passed to it, what that status is so it can be passed to the wp_unique_post_slug filter.  That way anybody using the filter will always get the actual post status all the time without having to do anything special.

Related: #14111",mintindeed
Future Releases,15928,wp_get_attachment_url does not check for HTTPS,,Permalinks,3.0.3,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-12-21T00:19:48Z,2013-04-29T21:57:41Z,"wp_get_attachment_url, via wp_upload_dir, uses get_option('siteurl') to construct attachment URLs. If you're viewing your blog via HTTPS, the attachment URLs will all use HTTP. leading to mixed secure/non-secure content problems.

the_permalink function handles this nicely, by calling get_permalink, then home_url, then  get_home_url; get_home_url does an is_ssl check and changes the scheme accordingly.

The wp_upload_dir function should probably be changed, so that instead of calling get_option('siteurl') directly, it uses something like get_home_url (or even get_site_url) which check for HTTPS.



",atetlaw
Future Releases,21285,"Don't ping yourself, especially on localhost",,Pings/Trackbacks,1.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-07-16T03:33:32Z,2013-01-22T22:53:19Z,"This may just be a conversation starter, but I know these things to be true:

1) there is duplicated code spread between pingback( ) and do_enclose( )[[BR]]
2) If your post contains a bunch of links to your own site, and you save your post in the admin, you will ended up with memory leaks all over the place / seg faults / etc when you get hammered by HEAD requests triggered by the immediate cron that is spawned by the post being saved[[BR]]
3) you probably don't need to trackback yourself anyways

I moved some dupe code into functions and added some checks so we don't ping ourself when saving",wonderboymusic
Future Releases,23350,Pingback Denial of Service Fix - filter_var based IP validation,,Pings/Trackbacks,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-01T02:24:57Z,2013-02-01T02:44:04Z,"Just a small improvement upon review of [23330] (some points were not clear to me, especially colons in hostnames and trimming of the hostnames for dots; left them as-is).

Also used {{{strcasecmp}}}.

BTW, what about #4137, can it be closed now?
",hakre
Future Releases,20214,Pingback discovery doesn't strip fragment identifiers from URL,,Pings/Trackbacks,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-11T08:34:46Z,2012-05-14T20:44:41Z,"To reproduce:

1. Insert a link containing a fragment identifier into a post, e.g., `http://localhost/wp/helloworld/#comments`.
2. Save post.
3. Observe the URL which !WordPress attempts to retrieve in `discover_pingback_server_uri()` - the requested path contains the `#fragment_identifier`, which it shouldn't, and in most cases will result in a 404, thus the pingback fails.",solarissmoke
Future Releases,19805,Pingback not sent to https sites,,Pings/Trackbacks,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-11T16:02:45Z,2012-01-11T16:20:42Z,"Wordpress does not attempt to send pingbacks to https sites.  I have tracked this problem to the regular expression used to find links to ping inside a post that is being published.  The regular expression currently will only filter out links to http sites and not https sites.  I have modified the regular expression to include https sites and included a patch with this ticket.

how to reproduce the problem:
* enable sending and receiving of pings/trackbacks on your site
* create a post with with a link to an https site
* publish the post
* no ping will be sent to the https site",norocketsurgeon
Future Releases,21172,Adding the first filter/action in an earlier priority during a later priority causes the earlier priority to run (last),,Plugins,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-07-05T23:30:54Z,2012-07-07T22:41:11Z,"During testing of #21169, it occurred to me that [http://core.trac.wordpress.org/ticket/5338#comment:1] might present a problem with each rather than next/current, but that turns out not to be the case.  Instead, this exposed a different bug:

If you add a new filter at priority 9, when priority 9 did not previously have any filters, during the priority 10 execution, the priority 9 filter will run (!) after all other priorities (since the filters are not resorted after each priority).

(Generally, if you add an earlier priority that did not previously have any filters during a later priority...)

The attached unit test demonstrates this behavior.",devesine
Future Releases,13266,Admin page hooks change when plugin is translated (tied to $menu_title),westi,Plugins,3.0,normal,major,Future Release,defect (bug),new,has-patch,2010-05-05T21:07:11Z,2010-11-02T06:27:09Z,"WP3 is using the title of the parent menu item in a menu block to fire the load-hooks for the lesser menu items? Lost me? Ok an example -

Plugin Membership has this menu structure (simplified)

Membership – main heading
Membership – Top inner
Edit Member – inner
Edit Levels – inner
Edit Subs – inner
etc…

The page load hooks for the non-translated plugin are as follows:
Membership – load-toplevel_page_membership
Membership – load-toplevel_page_membership
Edit Member – load-membership_page_members
Edit Levels – load-membership_page_membershiplevels
Edit Subs – load-membership_page_membershipsubs
etc…

Now, if I use a language translation on the plugin, which for the sake of clarity here, translates the word Membership to Aaargh the page load hooks become.
Membership – load-toplevel_page_membership
Membership – load-toplevel_page_membership
Edit Member – load-aaargh_page_members
Edit Levels – load-aaargh_page_membershiplevels
Edit Subs – load-aaargh_page_membershipsubs
etc…

Thus any actions you are running on the inner pages aren’t called.",uglyrobot
Future Releases,20944,Changing plugin filename causes Fatal error on automatic activation after update,,Plugins,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-13T19:43:38Z,2012-07-08T20:56:03Z,"In a new version of a (my) plugin in the WordPress repository, I changed the filename of the main plugin file (to match the folder name).  When an old version of the plugin is activated, doing an automatic update to the latest version of the plugin (with the new filename), the following error message is displayed:  ""The plugin jonradio-display-kitchen-sink/jonradio-kitchen-sink.php has been deactivated due to an error: Plugin file does not exist.""

An immediate manual Activation completes successfully.

Observed on sites with WordPress Network turned off and on, including when the plugin was Network Activated.

Plugin is jonradio Display Kitchen Sink, and update was from Version 1.0 to 1.1.",adiant
Future Releases,19986,Issue with add_filter() and add_action() when using anonymous functions.,,Plugins,3.3.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-02-07T23:44:49Z,2012-02-08T06:16:26Z,"Referencing File: /wp-includes/plugin.php :: function add_filter()
{{{
function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
	global $wp_filter, $merged_filters;

	$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
	$wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args);
	unset( $merged_filters[ $tag ] );
	return true;
}
}}}

When registering a function with add_filter() and add_action(), a unique id ($idx) is generated to be used as an array key in:

{{{
$wp_filter[$tag][$priority][$idx]
}}}

The function that creates this unique key ($idx) returns the function name passed into the $function_to_add parameter.
{{{
$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
}}}

If the $function_to_add parameter is a string, the function _wp_filter_build_unique_id() returns the original function name.

{{{
function _wp_filter_build_unique_id($tag, $function, $priority) {
	global $wp_filter;
	static $filter_id_count = 0;

	if ( is_string($function) )
		return $function;
   ...
}
}}}

Returning a string value for the unique id is a problem when the function is an anonymous function generated using create_function(). The reason is anonymous functions are named as ""special character + lambda_XX"" or as ""ºlambda_XX"" where the first character cannot be displayed.

See attached file: anonymous_function_name.jpg

Since array keys can only be integers or strings, the following array is invalid and causes inconsistent behaviors.

{{{
$wp_filter[$tag][$priority]['ºlambda_XX']
}}}

Although I've seen instances where this will still work, I've also observed strange issues with inconsistent results where plugins should work and sometimes do not. One example is with Otto's Simple Facebook Connect plugin.  

See file: sfc-widgets.php
{{{
add_action('widgets_init', create_function('', 'return register_widget(""SFC_Fan_Box_Widget"");'));
}}}

I have not been able to isolate the conditions that allow this to work in one WordPress installation and not in others. However, I have been able to apply a patch to my installation with consistent and successful results.

See attached patch: plugin.php.diff

While this is an obscure and possibly very isolated issue, it could resolve unexplained issues related to using anonymous functions with add_filter() elsewhere.",pagesimplify
Future Releases,24049,Make Plugin Editor's file list alphabetical by full path,,Plugins,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-11T18:24:43Z,2013-04-15T23:07:29Z,"The files under Plugin Editor's (plugin-editor.php) Plugin Files header should be shown in alphabetical order of their full path. Currently their order seems completely random, which makes the list cumbersome to use.",Daedalon
Future Releases,14060,"Misleading ""You do not have sufficient permissions to access this page.""",,Plugins,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-23T14:46:16Z,2012-06-27T21:50:39Z,"When accessing a page of a plugin in the admin that does not exists any longer, you're told by an error message, that:

> You do not have sufficient permissions to access this page.

This message is a little misleading, because there is no such page.

A message that better reflects the decision to display it would be less misleading, e.g.:

> The requested page is not accessible.


",hakre
Future Releases,22898,No validation of update_plugins site transient,,Plugins,2.3,normal,normal,Awaiting Review,defect (bug),new,close,2012-12-12T20:50:13Z,2012-12-15T05:55:34Z,"When retreiving available plugin updates, no checks are done on update_plugins site transient. Adding a filter on pre_set_site_transient_update_plugins means any developer can modify the update_plugins transient for a plugin to contain incorrect data.

The attached diff has code which is 'reactive', but performs the minimal checks.

This has been tested on trunk.",warrenholmes
Future Releases,16055,Only fire 'Side Wide Only' plugin header deprecated notice if the plugin is activated,,Plugins,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-31T23:13:56Z,2010-12-31T23:25:07Z,Apparently it can be fired on a deactivated plugin. That's annoying and confusing.,nacin
Future Releases,17552,Plugin editor incorrectly calls some files inactive.,,Plugins,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-24T23:26:48Z,2013-04-23T02:48:13Z,"The plugin editor has a helpful bit of text at the top to specify if the current file is active on the site or not; This works fine in most cases, however, I've noticed that it only works for the ''plugin file itself''. 

Ie. Editing akismet/akismet.php will specify it's active, Editing akismet/admin.php will show as inactive.

This is due to the use of is_plugin_active() from memory. The solution to this would be to run is_plugin_active() on {{{$_GET['plugin']}}} instead of the file being edited.

{{{$_GET['plugin']}}} has it's own bug however, It's set to whichever file was edited before you loaded the current file (when you switch between files in a plugin that is), which in some cases will be correct, in many others when you're editing multiple files, It'll be incorrect.",dd32
Future Releases,20920,Removing all hooks too aggressive if a priority number is given,,Plugins,3.3.2,normal,normal,Future Release,defect (bug),new,has-patch,2012-06-12T13:01:13Z,2012-06-13T13:24:30Z,"When you call `remove_all_filters()` or `remove_all_actions()` with a priority number (second parameter), all hooks get removed if none is found with the given priority.

Example:

{{{
#!php
<?php
global $wp_filter;

add_action('my_action', 'callback_foo');
add_action('my_action', 'callback_bar', 20);
var_dump($wp_filter['my_action']);

// At this point only callback_foo is left. Fine.
remove_all_actions('my_action', 20);
var_dump($wp_filter['my_action']);

// Exactly the same function call as above,
// but now all hooks bound to my_action are removed!
remove_all_actions('my_action', 20);
var_dump($wp_filter['my_action']);
}}}

Calling `remove_all_filters()` or `remove_all_actions()` with a priority should never remove hooks with another priority.",GeertDD
Future Releases,24122,"When opening a file in Plugin Editor, show correct plugin in the dropdown selector",,Plugins,,normal,minor,Awaiting Review,defect (bug),new,has-patch,2013-04-18T12:19:55Z,2013-04-23T02:48:31Z,"When opening a file in Plugin Editor, the reloaded page shows the first plugin according to alphabetical order in the dropdown next to ""Select plugin to edit:"". It should default to the plugin the loaded file belongs to.

Steps to reproduce

1. Open wp-admin/plugin-editor.php
2. Select any plugin from the ""Select plugin to edit:"" dropdown except the alphabetically first one, eg. WordPress Beta Tester, and click Select.
3. The page reloads and WordPress Beta Tester is shown as the default value in the dropdown, as expected.
4. Click any file under Plugin Files, eg. wordpress-beta-tester/readme.txt

-> The page reloads and shows the file in editor. However, ""Select plugin to edit:"" doesn't have a value set and shows the first plugin in alphabetical order by default.

-> However, if you chose the main plugin file, eg. wordpress-beta-tester/wp-beta-tester.php, ""Select plugin to edit:"" shows the correct plugin as the default value.

Any clicked file should lead to its plugin used as the default value for ""Select plugin to edit:"".",Daedalon
Future Releases,10535,_wp_filter_build_unique_id issues with the first time a filter is hooked by a class,,Plugins,2.9,normal,normal,Future Release,defect (bug),reopened,has-patch,2009-08-02T12:22:18Z,2013-01-10T20:02:38Z,"Ref #8723

The first time _wp_filter_build_unique_id is used to generate an ID the ID returned is different to the second time it is called. This presents a problem if the first ID is used when adding a filter which then needs to be removed later in the app flow... as the IDs don't match the filter is unremovable.

One workaround proposed is to set a wp_filter_id property before add the filter, and this will cause _wp_filter_build_unique_id to bypass the problem code and effectively forces the ""unique"" ID which is generated... this workaround feels unpoetic. ;)",simonwheatley
Future Releases,15595,add_menu_page position conflict,,Plugins,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-11-27T19:42:27Z,2011-04-08T17:42:57Z,"If add_menu_page() gets called more than once using the same value for $position, only one menu item is added while the other is overwritten.",vegasgeek
Future Releases,14881,do_action should not pass empty string by default,,Plugins,,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-15T20:44:56Z,2012-05-17T21:09:41Z,"{{{
function test( $a = true ) {
   var_dump( $a );
}
add_action( 'test', 'test' );
add_action( 'test', 'test', 10, 0 );
do_action( 'test' );
}}}
Second example is bool(true) as expected, but the first is a zero-length string.

In this case, since do_action() is not passing any arguments, then no arguments should be passed to test() -- even if by default, one argument gets passed.

The issue here is how do_action() is defined: `function do_action( $tag, $arg = '' );`. There's our zero-length string. Of note, apply_filters() does not have this same issue.

The solution looks something like what I have attached. Has yet to be benchmarked.

Of note, this does not appear to have any direct implications for passing all args by default, as proposed in #14671, but I wanted to reference it anyway.",nacin
Future Releases,9968,dynamically adding/removing filters breaks plugins,,Plugins,,low,normal,Future Release,defect (bug),reopened,has-patch,2009-05-28T23:43:11Z,2013-05-17T09:35:08Z,"noticed this while doing something similar to this:

{{{
add_action('foo', 'bar1', 10);
add_action('foo', 'bar2', 20);

function bar1() {
  remove_filter('foo', 'bar1', 10);
}
}}}

in the above, bar2() doesn't get called. it is because of the usage of next()/current() to loop through filters.

attached patch uses a foreach loop instead, to make it work.",Denis-de-Bernardy
Future Releases,16418,get_plugin_data() doesn't apply kses when $markup and $translate are false,dd32*,Plugins,3.0.4,normal,normal,Future Release,defect (bug),accepted,has-patch,2011-01-30T23:45:23Z,2012-03-21T14:53:46Z,"`get_plugin_data()` uses `_get_plugin_data_markup_translate()` to apply kses, but this isn't invoked if $markup and $translate are both false.

This behaviour is rather unexpected, since kses application isn't controlled directly by either parameter.",kawauso
Future Releases,14159,menu_page_url not returning correct URL for custom submenus,,Plugins,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-30T18:10:08Z,2010-12-10T03:34:34Z,"When using the menu_page_url() function to determine the URL to a submenu of a custom top-level menu it's not returning the correct URL. 

The function returns:
http://example.com/wp-admin/cpt_main_menu?page=cpt_sub_add_new

The correct URL is:
http://example.com/wp-admin/admin.php?page=cpt_sub_add_new

For reference my submenu is registered like so:

{{{
add_submenu_page('cpt_main_menu', 'Add New', 'Add New', 'administrator', 'cpt_sub_add_new', 'cpt_add_new');
}}}

I tested this on the custom top level menu and the URL returned is correct.  It only appears to be an issue with submenus of a custom top level menu",williamsba1
Future Releases,18501,plugin_dir_path() returns unsanitized path on Windows installs,,Plugins,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-23T18:40:29Z,2012-06-15T09:33:11Z,"Currently plugin_dir_path() only returns the result of dirname( $file ), which can produce mixed results on local Windows installations.

Attached patch takes pieces from plugin_basename() and plugins_url() to guarantee a working and accurate plugin directory path is returned in all operating systems.

See #BB1596 (and associated revisions) for back-story.",johnjamesjacoby
Future Releases,15335,register_setting() filter for sanitization callback needs to indicate 2 arguments accepted,markjaquith,Plugins,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-11-08T01:10:46Z,2011-10-12T16:37:35Z,"'''register_setting()''' adds the function for sanitization of the option with the following line (wp-admin/includes/plugin.php):


{{{
add_filter( ""sanitize_option_{$option_name}"", $sanitize_callback );
}}}

For users wanting to declare a function for option sanitization, use of the option name within the function is sometimes desired, and is provided for in the filter application inside the '''sanitize_option()''' declaration as such (wp-includes/formatting.php):


{{{
$value = apply_filters(""sanitize_option_{$option}"", $value, $option);
}}}

With the filter always being applied with the option name as the second argument, I see no reason not to propose that the '''add_filter()''' call in register_setting() include ""2"" as the number of accepted arguments, allowing the option name to be passed.",lumination
Future Releases,21169,remove_action on a tag within do_action for that tag can cause actions to be missed,,Plugins,,normal,major,Future Release,defect (bug),new,has-patch,2012-07-05T21:08:22Z,2012-11-07T15:35:21Z,"'''Problem:'''

If an action (or filter) in a given priority for a given tag removes itself as part of its execution, and it was the only action/filter at that priority for that tag (or only one remaining), the next priority level is skipped.

'''Reproduction:'''

See the attached unit test.

'''Analysis:'''

This appears to possibly be a bug (or at least an undocumented feature) of PHP (tested up to 5.4.3), where next() falls over if the current array element is unset (but each() has no problem even if the /next/ array element is unset).  Example non-WP code demonstrating this is included.

'''Proposed solution / workaround:'''

Switch all uses of next() in plugin.php to use each() instead; I've included a proposed patch.

Props to smathiascrowdfavorite for bringing this bug to my attention.",devesine
Future Releases,15906,validate_plugin needs all_plugins filter,,Plugins,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-20T03:13:12Z,2011-01-13T06:13:54Z,"If a plugin adds plugins to the plugin list in the plugin admin screens using the all_plugins filter, the added plugins will not validate. If the all_plugins filter is added to the validate function, then the plugin validates and activates fine.


",wpmuguru
Future Releases,20534,Featured Image (Post Thumbnail) SSL Issue,,Post Thumbnails,2.9,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-04-24T15:46:37Z,2013-05-17T04:41:50Z,If the wp-config FORCE_SSL_ADMIN constant has been set to true then the Featured Image within the Edit Post page will still load without HTTPS. This isn't a huge deal but it breaks the SSL on the page. Patch fixes this.,justindgivens
Future Releases,17609,'View post' link shown even when post type can't be viewed on the front-end,nacin,Post Types,,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-05-29T23:43:18Z,2013-03-18T21:45:41Z,"I have registered a CPT that's not meant to be displayed on the front-end:

{{{
        'public' => false,
        'show_ui' => true,
}}}

If I create such a post in the admin area, I still see the 'View post' link after saving and the 'Preview changes' button.

Both send me to the same URL, which gives a 404:

{{{?post_type_name=single-post-slug}}}

Related: #17040",scribu
Future Releases,23603,Custom post password form label,,Post Types,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-25T08:46:38Z,2013-02-26T05:42:45Z,"[http://core.trac.wordpress.org/browser/trunk/wp-includes/post-template.php?rev=23416#L1214 get_the_password_form()] hardcodes the password protected message.

{{{#!php
__(""This post is password protected. To view it please enter your password below:"")
}}}

This results in misbehavior, wherein all post types (including Pages) do not make a distinction between what is password protected.
Considering the difficulty of chunking up that string to be dynamic and more importantly easily localizable, I attach a draft patch which makes that message a label instead.",soulseekah
Future Releases,23302,Feeds or Feed - add_permastruct missunderstanding.,,Post Types,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-27T16:00:59Z,2013-01-27T16:19:00Z,"In case of register_post_type you ""can"" specify to add feeds to permalink structure or not. You actualy [http://codex.wordpress.org/Function_Reference/register_post_type can do that] by specifing a 'feeds' element to '''false''' in rewrite array.

But add_permastruct doesn't accept feeds element of rewrite argument. Its accept 'feed' element which default is true. So in this case  its not posible to disable feeds for any post type via register_post_type API.",butuzov
Future Releases,19286,Users without access to Comments screen can see links to it,,Post Types,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-11-18T11:09:17Z,2011-12-02T04:42:09Z,"The comments bubble that shows on up next to each post on post listing screens doesn't check for the `edit_posts` capability. This means on post type screens where a user has the `edit_{post_type}` capability but not the `edit_posts` capability, the comment bubble links to the Comments screen which they do not have access to.

We should still show the comment bubble in this case but not link it to the Comments screen.
",johnbillion
Future Releases,19954,wp_insert_post should look if default category is nessesary,,Post Types,,normal,normal,Future Release,defect (bug),new,has-patch,2012-02-03T14:58:14Z,2012-10-18T14:31:27Z,"When creating an post object with get_default_post_to_edit(), wp_insert_post() will ignored the set category.
It doesn't look if the post has already a good category.",markoheijnen
Future Releases,19569,Press This Editor shows separate media icons,,Press This,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2011-12-15T19:01:07Z,2012-10-18T14:28:37Z,"Press This still shows multiple media upload icons: Add Image and Add Video (the third is from Grunion, and should be ignored for the purposes of this ticket).

[[Image(http://f.cl.ly/items/1g0f0s0N3E0B0c3f142l/press-this.jpg)]]",Ipstenu
Future Releases,16940,Prevent 403 errors in Press This,,Press This,,normal,normal,Future Release,defect (bug),new,has-patch,2011-03-22T23:54:38Z,2011-03-30T22:44:12Z,"The problem: 

Some hosts have lame mod_security rules that block unencoded urls, making Press This unusable.

Source: http://forums.hostgator.com/apache-upgrade-broke-feature-wordpress-t40603.html

The fix:

Replace:

{{{u='+e(l.href)+'}}}

With:

{{{u='+e(l.href.replace(/\//g,'\\/'))+'}}}

Source: http://wordpress.org/support/topic/press-this-results-in-404?replies=22#post-1008326",scribu
Future Releases,11365,press-this.php resize could be a little taller,azaozz,Press This,2.8.5,low,trivial,Future Release,defect (bug),assigned,has-patch,2009-12-08T17:01:27Z,2010-04-02T08:22:12Z,"The press this pop-out window ends up having a scroll bar (Tested on Opera, FF and Chrome) because the window height is slightly too small.

I found that changing /wp-admin/press-this.php line 422 to :

window.resizeTo(720,600);

Solves the problem.",netweblogic
Future Releases,14195,$paged is not set when a Static Page is set as the Front Page,wonderboymusic*,Query,3.0,normal,normal,Future Release,defect (bug),accepted,has-patch,2010-07-04T15:12:10Z,2012-10-31T23:38:33Z,"If a static page is set as the front page of your WordPress site, and you request paginated content from the page via its URL (with permalinks enabled or disabled, doesn't matter), the $paged variable is not set.

This causes custom pages (those ones displaying posts), to always go to Page 1, even if you click other pages. ( This is happening because $paged is set to null, and if it's set to null, it always goes to page 1).

Also, get_query_var('paged'), also returns null, when it should return page 2 (if you clicked on page 2 for example).

After inspecting $wp_query, I noticed that the correct paginated value is stored on 
{{{
$wp_query->query['paged']
}}}

So, I have to do the following on all my themes on header.php, so the pagination doesn't break:

{{{
global $wp_query, $paged;
$paged = $wp_query->query['paged'];
}}}

This sets $paged again,with the correct value from $wp_query and fixes the bug. Since $paged is null whenever a custom page is selected as your homepage. 

This fix works with permalinks enabled or disabled.",der
Future Releases,17592,'exclude_from_search' excludes from non-search queries,,Query,3.1.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-27T18:17:53Z,2012-06-19T12:00:46Z,"Any WP_Query using 'post_type' = 'all' will only return post types where 'exclude_from_search' is FALSE. I would expect 'post_type' = 'all' to include all post types, *except* when initiated via a front-end search.

Recommend adding an is_search() check when excluding post types from a 'post_type' =  'all' query.",danblaker
Future Releases,17737,Be better at forcing data types for query vars,,Query,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-09T21:59:41Z,2013-05-14T13:24:57Z,"I already email this flaw to security@wordpress.org but Andrew Nacin told me that this is not a WordPress flaw, but php server config flaw. So i post this here now.[[BR]]

----

''Exploit'' : http://WEBSITE.COM/?author[]=1 [[BR]]
''Problem'' : FPD (https://www.owasp.org/index.php/Full_Path_Disclosure) [[BR]]
''Solution'' : Add this ""@ini_set('display_errors', 0);"" or this ""error_reporting(0);"" in the end of wp-config.php file. [[BR]]
''Patch'' : [[BR]]
1) wp-includes/query.php line 2239 [[BR]]
Replace
{{{
$q['author'] = (string)urldecode($q['author']);
}}}
by
{{{
if ( is_array( $q['author'] ) ) {
$q['author'] = $q['author'][0];
}
$q['author'] = (string)urldecode($q['author']);
}}}

2) wp-includes/canonical.php line 142 [[BR]]
Replace 
{{{
} elseif ( is_author() && !empty($_GET['author']) && preg_match( '|^[0-9]+$|', $_GET['author'] ) ) {
}}}
by
{{{
} elseif ( is_author() && !empty($_GET['author']) && preg_match( '|^[0-9]+$|', !is_array($_GET['author']) ? $_GET['author'] : $_GET['author'][0] ) ) {
}}}
[[BR]]
'''Julio''' - [http://www.boiteaweb.fr]",juliobox
Future Releases,19412,Changeset 18995 can lead to Notice: Undefined index: wp_the_query,,Query,3.3,normal,normal,Awaiting Review,defect (bug),reopened,close,2011-12-02T09:53:01Z,2012-10-07T23:58:39Z,"In changeset r18995 there were two changes to query.php
The comment ""new does not require by reference"" applies to the first but not the second change.

Should the assignment by reference in wp_reset_query have been removed?

The reported problem is:
http://wordpress.org/support/topic/plugin-wordpress-seo-by-yoast-notice-undefined-index-wp_the_query?replies=2#post-2477593

I had the same problem and questioned the suggested fix. 
What I don't understand is why there is no Notice: message for the original code.

Try running this code.
{{{
<?php
error_reporting( E_ALL );  
@ini_set('display_errors',1);

function bad() {
  print_r( __FUNCTION__ );
  echo ""\n"";

  $GLOBALS = array( 'wp_query' => 'set' );
  print_r( $GLOBALS );
  unset($GLOBALS['wp_query']);
  $GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
  print_r( $GLOBALS );
  $GLOBALS['wp_query'] =& $GLOBALS['wp_the_query'];
  print_r( $GLOBALS );
}

function good() {
  print_r( __FUNCTION__ );
  echo ""\n"";
  $GLOBALS = array( 'wp_query' => 'set' );
  print_r( $GLOBALS );
  unset($GLOBALS['wp_query']);
  $GLOBALS['wp_query'] =& $GLOBALS['wp_the_query'];
  print_r( $GLOBALS );
  $GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
  print_r( $GLOBALS );
}

good();
bad();
}}}


",bobbingwide
Future Releases,19198,Die fast in get_posts if in_search_post_types returns nothing,ryan,Query,3.2.1,normal,minor,Awaiting Review,defect (bug),reviewing,has-patch,2011-11-07T19:45:21Z,2012-08-05T22:28:35Z,"From a comment of mine in #18364, which nacin suggested was worth a follow-up ticket:

 Just noticed that this logic here might in fact have a flaw: if there are no post types which have exclude_from_search = false, then magically *all* post types will be checked? Am I reading this right? In that case, shouldn't we just immediately return no results?

 Obviously, this wouldn't be an issue except in a very customized setup where all post types have exclude_from_search = true, but still... thoughts anyone?",mitchoyoshitaka
Future Releases,11330,Empty search takes you to homepage instead of empty search page,,Query,2.8.5,low,minor,Future Release,defect (bug),new,has-patch,2009-12-04T21:57:23Z,2013-03-05T19:55:11Z,"1. In the admin tool, if you go to ""Settings->Reading"" then choose ""A static page (select below)"" and choose a page for your ""Front page"" and a different page for your ""Posts page"". 
2. Visit your blog (http://localhost/ in my case) and you will see your static page. 
3. Navigate to your blog (http://localhost/blog/ in my case). 
4. Enter a search string (e.g. ""test"") and click ""Search"". This will take you to the search results page (http://localhost/?s=test in my case). Notice that it is located at the base of your site.
5. Return to your blog, leave the search textbox blank and click ""Search"". This _should_ take you to the search results page but takes you to the _Homepage_ instead (http://localhost/?s= in may case).

IMHO, a blank search string _should_ take you to the search page and state ""No posts found. Try a different search?"" as it does when you enter an invalid search. At the very least, it should take you to the blog page.

The reason it takes you to the homepage is due to how the get_search_form() function in the /wp-includes/general-template.php file creates the Action url for the search form:

{{{
$form = '<form role=""search"" method=""get"" id=""searchform"" action=""' . get_option('home') . '"" >'
}}}



I propose a change in the code that will do the following:
{{{
if(get_option('show_on_front') == 'page'){//if the blog is not the front page
	$searchAction = get_page_link(get_option('page_for_posts'));//get the link to the blog
}else{//if it is the front page
	$searchAction = get_option('home').""/"";//get the link to the home
}

$form = '<form role=""search"" method=""get"" id=""searchform"" action=""' . $searchAction . '"" >
}}}

That way, at the very least, you know the search is landing where it belongs.

This, however, does not _fix_ the issue where a blank search does not land you on the search page. My guess is, wherever it is determined what page is displayed, there is a check for something like:
{{{
if($_REQUEST['s']!=''){
  //if the request var 's' is not blank, this is a search
}
}}}

If that is indeed the case, a simple change of the code to something like this should do the trick:
{{{
if(isset($_REQUEST['s'])){
  //if the request var 's' isset, this is a search
}
}}}",jacobfogg
Future Releases,22001,Handling private and protected posts when querying multiple post types,,Query,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-26T14:16:17Z,2012-09-28T07:57:52Z,"When querying multiple post types (e.g. new WP_Query(array('slug'=>$slug, 'post_type'=>'any') the automatic handling of protected and private posts fails because it looks for capabilities 'edit_any' and 'read_any' which don't exist.

The attached patch illustrates the problem with a suggested fix. However it's possible I have misunderstood how this is supposed to work.",tamlyn
Future Releases,22967,Null value in meta query changes the type of comparison,,Query,3.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-17T00:05:35Z,2012-12-17T14:36:42Z,"If a null value is set in a meta query, it effectively returns the same results as setting the 'compare' arg to 'EXISTS', even if it's explicitly set to the default '='.

For example: 

{{{
$value_var = null;
...
meta_query => array(
        array(
            'key'     => '_my_meta_key',
            'value'   => $value_var,
            'compare' => '='
        )
    )
...
}}}

That returns all rows where '_my_meta_key' exists and ignores 'value' instead of treating it like an empty string. This can be troublesome where the value is passed in dynamically like the example, so validation would have to be done prior to every meta query to ensure the value isn't null.

I've attached a patch for review that checks for the existence of the 'value' key rather than using `isset` and casts it to a string if it's null.",bradyvercher
Future Releases,21276,Respect 'suppress_filters' arg in WP_Query->get_posts(),,Query,3.4.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-07-15T01:13:50Z,2013-02-14T22:06:52Z,"Before trying to run filters, there's a check to see if we should suppress filters using the suppress_filters arg. Four filters run whether or not suppress_filters is set to true. This patch just adds checks against that arg for those filter calls.",brandondove
Future Releases,18513,Searching with explicit post types unsets page post type,,Query,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-24T22:13:08Z,2012-05-23T15:06:19Z,"Tested on WP 3.2.1, Twenty Eleven with no plugins, multisite.

If I explicitly limit a search query via a GET request using an array of post_type values, the post_type for page is automatically excluded.

To reproduce:
 * Do a search on a WP install (perhaps through a modified search form), such that the URL is like:
  http://example.com/?post_type[]=post&post_type[]=page&post_type[]=attachment&s=Test
or
  http://example.com/?post_type[]=post&post_type[]=page&post_type[]=book&s=Test

That's searching for ""Test"" on post, page and attachment/book post types.

 * Adding the following to a theme's functions.php:
{{{
add_filter( 'pre_get_posts', 'wpcpt_search' );
/**
 *
 * @param array $query
 */
function wpcpt_search( $query ) {

	if ( ! $query->is_search )
		return $query;

	print_r( $query->query_vars );

	return $query;

}
}}}

That spits out (and seemingly confirmed via the values shown in the Debug Bar plugin) the following at the beginning:
{{{
  Array ( [s] => Test [post_type] => Array ( [0] => post [2] => attachment ) 
}}}
and only returns results for posts and attachments (or books). The fact that key 1 is missing makes me think that page was in the array at some point, but it's been unset, but I can't see where, or why, this might be done.

(When no post_type is set, giving a post_type of 'any', which in turn gives all of the non-excluded_from_search post types, then page is one of the array values, and the search results correctly include pages.)
",GaryJ
Future Releases,15949,WP 3.0.x comments popup on pages returning 404 [including posible solution],,Query,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-22T17:04:42Z,2010-12-26T23:38:37Z,"comments-popup does not work on pages (but still working on blog entries) since the 3.0.x upgrade.

i confirm bug and sollution on both: my own theme and on default them after adding comments_popup_link and comments_popup_script functions.

after a long time looking for a solution i found that the new ""handle_404"" method in class WP (wp-includes/classes.php line 475) is the responsable, substituing this method with an older one from wp 2.x brunch solves the problem.

looks like the new method ""think"" that there is no content when the index file is called with comments_popup parameter on a page id, so it returns a 404 status, as said the old one solves the problem.

",odosuiadan
Future Releases,20904,WP_Query instances getting entangled with $wp_query global,,Query,,normal,normal,Future Release,defect (bug),new,has-patch,2012-06-11T11:55:39Z,2013-05-14T13:25:32Z,"`WP_Query::the_post()` fires `setup_postdata()`, which then uses `get_query_var()`. `get_query_var()`, in turn, calls the `get()` method on the `$wp_query` global object. In this way, WP_Query instances are not truly insulated from each other - they all are tied up with `$wp_query` in a way that seems unnecessary, and causes fatal errors in some cases.

In normal use, you would never really notice the issue, because after the `'init'` action, the following offending line in `setup_postdata()` will return the 'page' query var from `$wp_query`:

{{{
$page = get_query_var('page');
}}}

And, since secondary `WP_Query` instances don't paginate in the same way as the primary query, the 'page' property on those instances doesn't matter much. So, while the value of `$page` is not strictly speaking correct in these cases (it comes from the wrong object), it generally fails silently.

However, if you instantiate a WP_Query object before 'init', you get a fatal error, because `$wp_query->get()` is an undefined method. Here's a simple mu-plugin that will demonstrate the problem:

{{{
function bbg_create_early_wp_query_object() {
	$q = new WP_Query( array(
		'post_type' => 'post'
	) );

	if ( $q->have_posts() ) {
		while ( $q->have_posts() ) {
			$q->the_post();
		}
	}
}
add_action( 'plugins_loaded', 'bbg_create_early_wp_query_object' );
}}}

My suggested solution is to move the `setup_postdata()` logic into a method of the `WP_Query` class, and then use `$this->get( 'page' )` rather than `get_query_var( 'page' )`, to ensure that you're referring to the query vars of the correct query object. The old function `setup_postdata()` then becomes a wrapper for `$wp_query->setup_postdata()`.

In addition, I modified the way that the `$more` global is set, so that it references the current object as well. This prevents `_doing_it_wrong()` errors when firing up a `WP_Query` instance before `'init'`.",boonebgorges
Future Releases,20899,is_home() should be able to be true when is_feed(),,Query,,normal,normal,Future Release,defect (bug),new,has-patch,2012-06-10T19:28:36Z,2012-11-01T10:31:35Z,"is_feed() is a special query flag that can be combined with other query flags — for example, `is_author() && is_feed()` for /author/admin/feed/.

But it can't be combined with is_home(), because is_home() is the fallback that is only set to true when a lot of other things are true — including is_feed(). This appears to be incorrect — is_home() should still be able to be true despite is_feed().

I tracked this down to [1449]. What kind of breakage could occur with this?",nacin
Future Releases,18897,query_posts / WP_query parameter 'offset' should play nicely with 'paged',,Query,3.2.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-10-10T22:18:29Z,2012-05-04T15:55:14Z,"
Setting the offset parameter with WP_query ignores the paged parameter.  Thus offset can only be used as if on page 1.  This is unfortunate and seems worth fixing.

See prior #2558 ""query_posts() should support offset""",here
Future Releases,20767,tax_query clobbers tag and category,,Query,3.1,normal,major,Future Release,defect (bug),new,has-patch,2012-05-27T21:19:55Z,2013-05-14T13:31:03Z,"The main query should return a tag or category as its queried object if tax_query is applied to a tag or category archive page. It currently returns the first term derived from the WP_Query->tax_query->queries array which does not include the tag or category as a term in the request. WP_Query->tax_query->queries is a portion of the request, but not the request. Because WP_Query sets is_tag and is_category flags, they have to be captured before dealing with is_tax

The result of this bug is that theme functions return the wrong data because the wrong term is returned with get_queried_object.

Real world example: at eMusic, we pass regions into pre_get_posts to regionalize the content that is returned. On a tag page, if you are in the US, we pass the regions ""ALL"" and ""US"" to make sure you are looking at appropriate content. Here's what the title for the archives looks like - (spoiler: It's ""ALL"" when it should be ""Daily Download""):

http://www.emusic.com/17dots/topics/daily-download/

I am attaching a patch.",wonderboymusic
Future Releases,20560,"url_to_postid() string matching is not strict enough, can lead to incorrect results",,Query,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2012-04-27T19:01:40Z,2012-11-08T20:59:11Z,"I have been working on a plugin that uses url_to_postid() to automatically translate user generated links to internal links utilizing post ID in order to protect against potential permalink changes.

A bug was reported that involved a link to an external location being translated to an internal link (with post ID) by the plugin.

The current site: http://www.example.com/test

The attempted link: http://www.example.com/test-research

Where test-research is an entirely different site on our multi-site install.

Upon investigation, the source of the problem was an overly generous strpos() check in url_to_postid(), starting at line 322:

{{{
if ( false !== strpos($url, home_url()) ) {
	// Chop off http://domain.com
	$url = str_replace(home_url(), '', $url);
} else {
	// Chop off /path/to/blog
	$home_path = parse_url(home_url());
	$home_path = isset( $home_path['path'] ) ? $home_path['path'] : '' ;
	$url = str_replace($home_path, '', $url);
}
}}}

As home_url() does not append a trailing slash, the link passed that check and was incorrectly processed.  The logic inside that if block resulted in -research being passed as a pagename to WP_Query, which happened to turn up a matching post ID on this particular site.

I have a proposed patch, which I will attach to this ticket asap.",gradyetc
Future Releases,16645,Inline edit defaults author to current user,,Quick/Bulk Edit,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-02-24T17:47:35Z,2011-02-27T09:31:30Z,"This one looks a bit like ticket #13982

Here is what happens :
- I have created a custom post type that doesn't support the 'author' when registering it (with register_post_type)
- I am doing an inline edit of a custom post authored by another user
- the custom post author defaults to current user (ie the one who is performing the inline edit instead of the one who authored it)

This behavior is different from what you see with post type of post where inline edit wouldn't change the post author.

To debug it further, I have enabled the 'author' during the custom post type registration and the problem isn't there anymore in that case. So it is probably linked to the fact that 'author' wasn't entered in the supports array entry during the custom post type registration.

I am not sure if this is a bug or expected behavior but it would be nice to be able to have a common behavior accross post types weither 'author' is supported or not.",firebird75
Future Releases,16971,Creation of .htaccess file leads to a 500 Error,,Rewrite Rules,3.0,normal,major,Awaiting Review,defect (bug),new,has-patch,2011-03-26T11:59:51Z,2011-07-16T18:11:59Z,"Turning on permalinks can render the whole blog into a 500 error situation under certain conditions.

The issue has been experienced with a WP 3.0.5 setup, other versions seem affected as well.

The creation of the .htaccess file does not reflect the systems umask setting which can result in creating a file that is not accessible by the server.

That triggers the 500 then.

Normally WP chmod's all files it creates. This is not done with the .htaccess file if it did not existed already.",hakre
Future Releases,17047,Not following spec for REQUEST_URI,sterlo,Rewrite Rules,3.1,normal,normal,Future Release,defect (bug),reviewing,has-patch,2011-04-04T20:11:00Z,2012-08-09T18:44:05Z,"Possibly related: #16932

Spec: http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.2

Structure: http://en.wikipedia.org/wiki/URI_scheme#Examples

The spec for REQUEST_URI:
{{{
Request-URI    = ""*"" | absoluteURI | abs_path | authority
}}}

The specs for REQUEST_URI in Apache are such that it allows for absolute paths to a given resource.

Given that throughout WordPress there are concatenations like:
{{{
$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']
}}}

These are intended to generate ""mysite.com/resources""

But in certain cases will generated ""mysite.com/mysite.com/resources""

Case Study:
{{{
GET http://subdomain.mydomain.com/ HTTP/1.1
}}}

This should be allowed.

Apache in this case sets the URI to ""http://subdomain.mydomain.com/myfile.php""

Solution: Do not assume that URI is not an absolute path.

A quick fix is something like the patch attached.",sterlo
Future Releases,14991,extra_rules_top should take priority over extra_permastructs,,Rewrite Rules,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-29T18:00:08Z,2011-01-13T04:43:24Z,"Since extra_rules_top are specifically added instead of generated like the those from the extra_permastructs which runs through generate_rewrite_ruls(), shouldn't the extra_rules_top take priority in conflicts?",prettyboymp
Future Releases,14530,Cheating huh?,,Role/Capability,,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2010-08-04T13:20:56Z,2013-05-06T15:25:02Z,"I've sen this infamous error msg more times than I wanted, in my own site where I'm admin.

That happens with more frequency when adding a new comment, but some times also inside admin pages.

I understand it's generally capability and permission tests that fail, and that happens in pages that ppl without permission to access them shouldn't see links to them, therefore they probably tried direct access to somewhere they shouldn't be going.

But also it happens when session expires or due to some bug. In this cases, the user is effectively not doing anything wrong, it may even be WP fault, and when that's the case the message is rude, even offensive to more emotional ppl.

Even worse, it gives no hint on what went wrong, so that user can try to fix it.

Then I suggest these messages to be changed, to more meaningful and also polite messages. Real cheaters and hackers will already have any info a message may provide, so a better explanation of what went wrong won't help them succeed in their attempt to hack a site, and will help a lot the victims of these errors.",shidouhikari
Future Releases,20745,Hard-code less capability types,,Role/Capability,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-05-25T08:48:40Z,2012-05-25T21:33:00Z,"We still hard-code some capability types thoughout the admin area.

For example `edit_post` is hard-coded as the edit attachment capability in the edit attachment pages. It should be pulled from the post type object instead so that it can be modified.

I've patched the ones I found.",Viper007Bond
Future Releases,16719,Remove vestige add_users capability,,Role/Capability,,normal,normal,Future Release,defect (bug),new,has-patch,2011-03-01T20:17:38Z,2012-10-25T20:18:37Z,"Listed in populate_roles_300() and added in [14174], it was never used. The situation it was presumably introduced for now falls on promote_users.",nacin
Future Releases,23746,add_role require string does not check for empty string,,Role/Capability,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-12T03:45:33Z,2013-03-13T01:16:16Z,"
`<?php add_role( $role, $display_name, $capabilities ); ?>` 

add_role works with $role as `''`.

Perhaps it should check for empty string before allowing it to be added? ",Kenshino
Future Releases,13377,Add more sanitization in _cleanup_header_comment,ryan,Security,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-13T18:51:15Z,2011-01-30T23:47:08Z,"The _cleanup_header_comment function is used in multiple places, but one in particular can cause some problems on the Page edit screen (or any screen that uses page templates).  The get_page_templates function (which gets the list of page templates to display in a <select> box on the page edit screen) uses to cleanup the page templates retrieved from a file.  

Unfortunately the function does not sanitize enough, and if (for instance) JavaScript existed in the page template name it would be run on the Page Edit screen.

To test, add some JavaScript (with <script> tags) to the ""Template Name:"" line of a page template, and load the Page edit screen.",seanklein
Future Releases,10268,Profile and Edit user pages should be secure too,ryan,Security,,normal,normal,Future Release,defect (bug),new,has-patch,2009-06-25T10:15:37Z,2010-11-13T01:37:18Z,"With admin_ssl off, and login_ssl on, the profile page ends up insecure. It should at least send its POST request over SSL, since a new password might be set.

And possibly use a secure form as well (see #10267).",Denis-de-Bernardy
Future Releases,12402,"make addslashes_gpc() use addslashes() fix to use real_escape, rather than addslashes",ryan,Security,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-02-27T02:44:19Z,2010-11-13T07:47:24Z,"If memory serves, the main problems with making wpdb->escape() point to mysql_real_escape_string() were two:

 1. mysql_real_escape_string() doesn't work on all platforms
 2. mysql_real_escape_string() doesn't play well with unslashing

Point 1 is covered in wpdb->_real_escape().

The legacy fix to point 2, for some strange reason, led to disabling mysql_real_escape_string() on platforms that could actually use it, instead of using add_magic_quotes() where calls to addslashes()/stripslashes() could occur.

r12961 partially fixes point 2. But only partially.

At the risk of re-opening the can of worms, the attached patch finishes fixing point 2...:

 - It changes addslashes_gpc() and esc_sql() so that they use add_magic_quotes() instead.
 - This frees wpdb->escape(), which can then be a true alias for wpdb->_real_escape().

I've scanned trunk for occurrences of wpdb->escape() used on arrays -- there were none.",Denis-de-Bernardy
Future Releases,14148,wp_get_attachment_url() is not url encoding,,Security,3.0,normal,major,Future Release,defect (bug),new,has-patch,2010-06-30T00:02:25Z,2010-12-20T15:14:24Z,"A fairly fundamental flaw, the function [http://codex.wordpress.org/Function_Reference/wp_get_attachment_url wp_get_attachment_url()] doesn't return a valid URL if the filename contains unescaped URL characters.

I'm not sure, but this might be a security issue, as the current version can generate URLs that don't match the filename, but instead passes query parameters back to the server.

The attached patch for Version 3.0 file fixes this in wp-includes/post.php
",danorton
Future Releases,19927,Improve support escaping a shortcode tag,,Shortcodes,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-30T14:12:35Z,2012-01-30T14:12:35Z,"In do_shortcode_tag there is some code that allows a shortcode to be escaped. It is commented with 
// allow [[foo]] syntax for escaping a tag
This code is fine if do_shortcode() is only invoked once on a particular chunk of data. 

But if the code is run more than once then the 'escaped' shortcode once again gets selected for processing and the shortcode is expanded.
e.g. [ [ caption ] ] will be 'escaped' to [ caption ] which then gets processed. 
 
Although this multiple invocation does not normally happen in vanilla WordPress, it is very easy to cause it to occur. 

In my case I noticed the problem since I had added the filter for 'the_content' with a different priority from the WordPress default.
e.g. add_filter( 'the_content', 'do_shortcode'); I'd missed the '11'.

Having removed that offending line of code I then discovered that Artisteer generated themes call get_the_excerpt() as well as the_excerpt() AND I'd added do_shortcode for both these filters.

The fix is simple. Instead of simply removing the outer square brackets, ensure that the first left square bracket is the escaped character &#91;



",bobbingwide
Future Releases,7045,No name shortcode atts,,Shortcodes,2.6,normal,normal,Future Release,defect (bug),new,has-patch,2008-05-27T12:55:30Z,2012-11-01T06:01:27Z,"If you have a shortcode with an attribute with no name, it isn't parsed quite correctly:

{{{
[shortcode=""foo""]bar[/shortcode]
}}}

The attributes array ends up with this:

{{{
$atts = array( 0 => '=""foo""' );
}}}

rather than just `foo`.",Viper007Bond
Future Releases,23517,"Shortcode: if last parameter ends with '/', it is mistaken for self-closing shortcode closure",,Shortcodes,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-19T05:45:16Z,2013-02-19T13:39:12Z,"In example:
{{{
[shortcode urlparam=http://somesite/path/]content text[/shortcode]
}}}
{{{
""[shortcode urlparam=http://somesite/path/]"" 
}}}
is interpreted as self closing:
{{{
[shortcode/] with urlparam=""http://somesite/path""
}}}
All examples in http://codex.wordpress.org/Shortcode_API include whitespace before `'/]'`

This prevents implementation of bbcode parser for people to paste flickr photo snippets.",sergem
Future Releases,23307,shortcode_parse_atts may return empty string,,Shortcodes,,normal,minor,Awaiting Review,defect (bug),new,has-patch,2013-01-28T11:08:50Z,2013-01-28T11:15:33Z,"See http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/shortcodes.php#L243 .

If there are no attributes in a shortcode e.g. `[foobar]`, then shortcode_parse_atts returns an empty string. This is not reflected in the long description or `@return` tag.

Ideally though, it should return an empty array, so that it's not only consistent, but writing a shortcode function can type hint the `$atts` argument to be an array e.g.

{{{
add_shortcode( 'foo', 'my_shortcode' );
function my_shortcode( array $atts ) {
   ...
}
}}}

This might also be combined with checking if the incoming `$text` is empty, and returning an empty array immediately.",GaryJ
Future Releases,8119,Attempts to edit deleted categories are not properly handled,westi,Taxonomy,2.7,normal,minor,Future Release,defect (bug),new,has-patch,2008-11-08T21:32:21Z,2011-11-19T06:07:37Z,"Fairly obscure. 

If one user has the edit cats view open, then another user deletes one of those categories, and the first user then attempts to edit the deleted category, they get - not unreasonably - an empty view on the edit screen.  (As the data has been correctly deleted.) Ok. Not too much we can do about that.  However, after that, it falls down.

It seems that if you replace the various data and then press ""edit category"" it can go one of two ways -

1. The user recieves the message 

Your attempt to edit this category: """" has failed.

2. The user recieves the message

Fatal error: Cannot use object of type WP_Error as array in /home/www/misthaveneu/htdocs/svn/trunk/wp-includes/functions.php on line 1238

Scenerio 2 seems to be vaguely related to using the word ""Error"" in the description, but that could just be conincidence. 

In any event, the handling of this situation is broken.  The fact that a category has been deleted since in-between the user viewing the edit category screen and choosing one to edit needs to be recognised. (Even if it's the same sort of nasty wp_die message you get when a post has been deleted.)",mrmist
Future Releases,19112,Minor fix in category-template.php,,Taxonomy,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-11-02T09:26:15Z,2011-11-16T09:36:43Z,"In ''wp-includes/category-template.php'' file, WordPress uses the ""'''View all posts in %s'''"" text to show posts under some category (we can see this text in line 59, 174 177, 184, 197, 200 and in line 207).

But in line 837 WordPress uses a different text - '''View all posts filed under %s'''.

This patch is changing that.

",ramiy
Future Releases,9875,Postcount not set for parent in category dropdown.,,Taxonomy,3.0,normal,normal,Future Release,defect (bug),assigned,has-patch,2009-05-19T13:15:17Z,2010-07-01T17:26:03Z,"When showing categories in a dropdown with show_count and hierarchical , the parent of the categories won't show the total amount of posts of its children.
When selecting a list this teh total amount is shown.",petervanderdoes
Future Releases,5809,Updating a term in one taxonomy affects the term in every taxonomy,garyc40,Taxonomy,2.3,high,major,Future Release,defect (bug),reopened,has-patch,2008-02-10T02:21:01Z,2013-05-15T08:13:16Z,"As reported by klawd on #wordpress and reproduced by me, editing a category will affect a tag with the same name.

{{{
Steps to reproduce:
1. Create a category called Testing
2. Create a tag called Testing
3. Rename the Testing category to Another Test
4. Check the name of the tag
}}}",rmccue
Future Releases,19590,Warnings when unregistering core taxonomies and post types,,Taxonomy,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2011-12-17T18:40:49Z,2012-12-20T21:32:13Z,"'''number_format_i18n''' (/wp-includes/functions.php, line 155) will raise a warning when the first parameter ''$number'' is not a double/float, which happens when it receives the value 0.

The error only shows up in the dashboard with a locale active (es_ES) in this case, screenshot attached.

The fix would be to cast the received value to float. 
 
Current function,


{{{
function number_format_i18n( $number, $decimals = 0 ) {
	global $wp_locale;
	$formatted = number_format( $number, absint( $decimals ), $wp_locale->number_format['decimal_point'], $wp_locale->number_format['thousands_sep'] );
	return apply_filters( 'number_format_i18n', $formatted );
}
}}}

Fix,

{{{
function number_format_i18n( $number, $decimals = 0 ) {
	global $wp_locale;
	$formatted = number_format( (float) $number, absint( $decimals ), $wp_locale->number_format['decimal_point'], $wp_locale->number_format['thousands_sep'] );
	return apply_filters( 'number_format_i18n', $formatted );
}
}}}

It's the first bug i report here, so correct me if I'm doing it wrong.
",xmarcos
Future Releases,20635,_pad_term_count get's stuck if there is a loop in the hierarchy,westi*,Taxonomy,,normal,normal,Future Release,defect (bug),accepted,has-patch,2012-05-08T10:31:37Z,2012-12-06T22:51:42Z,"Ideally it should be impossible for a loop in a taxonomy hierarchy to exist.

But sometimes they do.

If one does exist then {{{_pad_term_counts()}}} gets stuck :(

When one of these does exist the category widget breaks the front page of your site.

We currently hook {{{wp_check_term_hierarchy_for_loops}}} on {{{wp_update_term_parent}}} and I wonder if there are other places we should be doing this check too.",westi
Future Releases,18828,function wp_get_object_terms() passes sql data into `wp_get_object_terms` filter for $taxonomies,,Taxonomy,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-09-30T19:07:08Z,2011-11-15T23:55:10Z,"In wp-includes/taxonomy.php, the return data is passed through the `wp_get_object_terms` filter using the sql-ready data for $taxonomies, meaning it is quoted and comma seperated, for example ""'category', 'post_tag', 'post_format'"". Even for one taxonomy, it has quotes added, it seems this would be easier to work with if it matched the data passed into the function more closely.",postpostmodern
Future Releases,17807,get_adjacent_post() doesn't work with custom taxonomies,nacin,Taxonomy,3.1.3,normal,normal,Future Release,defect (bug),reviewing,has-patch,2011-06-15T09:51:46Z,2013-05-15T13:20:01Z,"If you use `next_post_link('%link', '%title', true)` or `previous_post_link('%link', '%title', true)` to get the adjacent post for a custom post type which has a taxonomy assigned to it, it doesn't work as intended.

The bug traces back to `get_adjacent_post()`. If the $in_same_cat parameter is true, then the SQL query built to get the posts are hardcoded using the default 'category' taxonomy. Instead it should allow a custom taxonomy as a parameter and use it in the queries.

Example:

Custom Post Type: `product`

Custom Taxonomy: `color`

SQL produced by `get_adjacent_post()` when calling `next_post_link('%link', '%title', true)`:

`SELECT p.* FROM wp_posts AS p INNER JOIN wp_term_relationships AS tr ON p.ID = tr.object_id INNER JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id AND tt.taxonomy = 'category' AND tt.term_id IN () WHERE p.post_date > '2011-06-14 19:37:08' AND p.post_type = 'product' AND p.post_status = 'publish' AND tt.taxonomy = 'category' ORDER BY p.post_date ASC LIMIT 1`
",avaly
Future Releases,8722,"get_categories allows custom taxos, get_category doesn't",ryan,Taxonomy,2.7,normal,normal,Future Release,defect (bug),new,has-patch,2008-12-25T07:27:14Z,2010-08-15T22:50:43Z,"get_categories('type=link') works with custom taxonomies (since http://trac.wordpress.org/ticket/7427 ).
get_category('... ?') doesn't. 
get_category > get_term($category,'category');

Because of that, all category dependent functions, like wp_list_categories and such, are broken when working with non post categories. get_category doesn't even work with link categories.",Malaiac
Future Releases,16310,get_taxonomy_labels() and _get_custom_object_labels() fail if $object->taxonomy is not array,,Taxonomy,,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-19T20:01:19Z,2012-05-13T22:27:20Z,"$object->labels is always stdObject on the taxonomy objects created by WordPress, but the get_taxonomy_labels() and _get_custom_object_labels() functions expect it to be an array and will fail otherwise.

Casting to array works fine as the functions already convert back to stdObject when they're finished. ",foofy
Future Releases,23506,get_terms() assumes its taxonomies argument is a numeric array with a 0 key,,Taxonomy,trunk,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-18T23:41:42Z,2013-02-19T00:36:21Z,"In a few places in `get_terms()` we are using `$taxonomies[0]` after we've established that we have more than one taxonomy. The array isn't always 0-based, though.

For example, `get_taxonomies()` returns arrays with the taxonomy name as a key, which breaks this pattern.

In the attached patch, the taxonomies are run through `array_values()`, which gives us a 0-based array of the taxonomies.",nbachiyski
Future Releases,21606,term_exists returns 0 and null,barrykooij,Taxonomy,3.4.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-08-16T09:27:33Z,2012-11-06T23:26:58Z,"The function ''term_exists'' in ''wp-includes/taxonomy.php'' has two different return values, ''0'' and ''null''. The function does a few checks and returns ''0'' if the condition of the check is not met. If the checks are met, the return value will be the result of a ''$wpdb->get_row'' or ''$wpdb->get_var''. If the term is not found in the database the methods ''get_row'' and ''get_var'' will return ''null''.

Because of the different type of return values it's not possible to do a strict check on the return value to see if a term was found. I've changed the return ''0'' in ''term_exists'' to return ''null'', so that if there is no term found the result of ''term_exists'' will always be ''null''.",barrykooij
Future Releases,17646,wp_get_object_terms should return arrays of integers for IDs and tt_IDs,,Taxonomy,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-01T18:00:41Z,2013-05-14T11:39:18Z,"Currently when you use ```wp_get_object_terms``` to request an array of IDs or tt_IDs, the array returned contains strings representing the IDs, not integers. This then creates issues if you send the values back into ```wp_set_object_terms``` as it creates terms named as per those strings, rather than associating the term_ids as expected.

Code to prove the issue:

{{{
$term_ids = wp_get_object_terms( get_the_ID(), 'category', array( 'fields' => 'tt_ids' ) );
var_dump( $term_ids );
}}}

Results in:

{{{
array
  0 => string '1' (length=1)
  1 => string '5' (length=1)
}}}

I believe that the array should have all values cast to integers before they are returned. The attached patch does this by mapping a created function to utilise ```(int)``` for the desired result.",simonwheatley
Future Releases,18448,wp_insert_category() is Not Properly Abstracted,,Taxonomy,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-16T17:43:09Z,2011-10-08T16:47:53Z,"If you look in http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/taxonomy.php there is still a note that says ""The 'taxonomy' key was added in 3.0.0.""

However, this function calls category_exists() and cat_is_ancestor_of(), which never recognized the taxonomy argument.",miqrogroove
Future Releases,22542,wp_insert_term and wp_update_term should include taxonomy as the second parameter when invoking actions edit_terms and edited_terms,,Taxonomy,2.9,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-22T19:04:06Z,2012-11-22T20:03:46Z,"wp_insert_term and wp_update_term only send term id when invoking edit_terms and edited_terms. This makes it hard for plugins hooking into those to retrieve the actual term, since get_term and get_term_by require taxonomy in addition to the id.

Other actions on these functions do add the taxonomy to the parameters. For example edit_term and edited_term. So it is hard to understand why the hooks in question do not.",akibjorklund
Future Releases,21894,<!--more--> tag does nothing in secondary loops when is_single because of $more global,,Template,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-14T20:11:48Z,2013-03-07T01:19:02Z,"In the sidebar of single posts I have a listing of short posts from a particular category. We recently started using the {{{<!--more-->}}} system to define teasers because in this case excerpts are overkill. The ""more"" system works for archive views but does nothing in the sidebar of single posts. The reason is the overly global nature of the {{{global $more}}} variable. It gets defined in {{{setup_postdata()}}} like this:

{{{
if ( is_single() || is_page() || is_feed() )
	$more = 1;
}}}

Then in {{{get_the_content()}}} global $more is checked to determine whether to apply the effect of the {{{<!--more-->}}} tag or not:

{{{
if ( $more ) {
	// show full content with span ID 
} else {
	// show intro text and more link
}
}}}

This means that any time {{{is_single()}}} is true all posts shown during the pageload ignore {{{<!--more-->}}}, even those who's {{{is_single}}} view we are not on. 

This seems like an understandable result of the unpopularity of the more tag (and rareness of showing ""full"" posts in secondary loops), but also something that should be fixed. Only the post who's single view we are looking at should have the more tag disabled based on the {{{is_single()}}} check. 

'''SOLUTION'''

As far as I can tell what's needed is to modify {{{get_the_content()}}} and in addition to using {{{global $more}}}, also check if the post being shown is the same as {{{get_queried_object()}}}. My first instinct was to just add the check in the {{{if}}} statement above:

{{{
if ( $more AND ( $post-ID == get_the_queried_object_id() ) ) {
	// show full content with span ID 
} else {
	// show intro text and more link
}
}}}

Unfortunately that will screw with the {{{is_feed()}}}-related checks for {{{global $more}}}. Overall my investigation of {{{$more}}} is making me think it should be removed entirely, as it's only used a few times and in all cases its meaning is vague.

Either way I think the simplest way to handle the issue in {{{get_the_content()}}} without completely stripping out {{{$more}}} is to use {{{$more}}} as the base for a {{{$show_full_content}}} variable, then set that to false if {{{$post->ID}}} doesn't match {{{get_queried_object_id()}}}:

{{{
$show_full_content = $more;
if ( is_single() OR is_page() ) {
	if ($post->ID != get_queried_object_id())
		$show_full_content = false;
}
}}}

The new variable gives a better sense of what it will do inside this function, and lets us change the value without stomping the {{{global $more}}}. The attached patch fixes {{{get_the_content()}}} as described above. 

If core devs are willing to I think the best solution would be to remove all uses of {{{$more}}} and simply replace them with the appropriate logic for the given situation like I've done above for {{{get_the_content()}}}. 


",jeremyclarke
Future Releases,20601,Author archives queries should return a 404 when the user isn't a member of the blog,,Template,,normal,normal,Future Release,defect (bug),new,has-patch,2012-05-02T09:53:43Z,2012-11-18T02:05:51Z,"On a multi site install, querying for the author page for a user that is not a member of that blog, still returns a valid page, instead of a 404.

Example:
User crazygeorge is a member of of blog1 but not a member of blog2

The url http://example.com/blog2/author/crazygeorge/ will return the author template with a no posts found message. 

Insead, we should ignore users that are not member of a specific blog, and return a proper 404.

",yoavf
Future Releases,18829,Cleanup of postbox_classes,,Template,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-30T19:39:50Z,2011-11-22T15:07:29Z,"When using add_meta_box, this patch fixes the extra spaces in the meta box CSS class attribute.

This patch cleans up the '''postbox_classes''' function.",logikal16
Future Releases,23470,Convert slash to dash and make body class for page templates look better,,Template,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-13T12:24:09Z,2013-04-01T03:16:13Z,"If you keep you page templates in a page-templates folder in your theme. Let's we have a template named front-page.php - the template slug written in the postmeta will be '''page-templates/front-page.php'''

When generating the classes for the body, get_body_class() will convert the dot to a dash but the slash will be stripped by sanitize_html_class().
So finally we will have a class:

'''page-template-page-templatesfront-page-php'''

Isn't it prettier to convert the slash to dash and to have it like:

'''page-template-page-templates-front-page-php'''",Caspie
Future Releases,24232,Don't Use the_title Filter in get_adjacent_post_rel_link(),,Template,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-30T18:24:04Z,2013-05-16T13:04:10Z,"The get_adjacent_post_rel_link() function applies the `the_title` filter to the post title before setting it up in the `<link>` tags.

It's really common for the `the_title` filter to be used to modify the actual HTML markup of post titles ([https://github.com/easydigitaldownloads/Easy-Digital-Downloads/blob/master/includes/template-functions.php#L493 see this example for adding product micro data]), but this results in improperly formatting `<link>` tags. See [https://github.com/easydigitaldownloads/Easy-Digital-Downloads/issues/1142#issuecomment-17244063 this github] issue for an example of the result.

`get_adjacent_post_rel_link()` should be using an equivalent to `the_title_attribute()` instead. Since there is not a `get_the_title_attribute()` function, I propose two options:

1. Introduce a `get_the_title_attribute( $post_id )` function and then use this in `get_adjacent_post_rel_link()`

2. Simply remove `apply_filters()` and add in `esc_attr( strip_tags( $title ) )` instead.

My vote would be to introduce a `get_the_title_attribute()` function.",mordauk
Future Releases,15513,Home Page fails to use page template sometimes,filosofo,Template,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-11-20T01:33:44Z,2010-12-23T17:05:31Z,"If a page is the home page but not also the front page and it has a page template, the page template is ignored.  This behavior is counter-intuitive:

 * When editing the home-page page, either normally or with quick edit, the page template is shown as being the template.
 * When acting as a front page, a page uses its page template if available.",filosofo
Future Releases,16872,Old/unused arguments in wp_dropdown_categories/wp_list_categories,,Template,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-17T12:02:20Z,2011-03-17T12:02:20Z,"There are some arguments in wp_dropdown_categories/wp_list_categories that appear to be relics from the past:

`show_date`, `show_last_update` and `include_last_update_time` use the `last_updated_timestamp` property of a category object - which doesn't exist (I'm guessing it did long time ago). Trying to use either of these arguments doesn't work, and just triggers errors. Looks like they should have been removed when `last_updated_timestamp` was removed?",solarissmoke
Future Releases,9788,Possible bug with get_the_excerpt and paged content via <!--nextpage-->,,Template,2.7.1,normal,normal,Future Release,defect (bug),new,has-patch,2009-05-11T18:17:51Z,2010-05-10T09:04:58Z,"When doing a custom WP_Query and loop, I found odd behavior with paged content on pages > 1.

For example, my custom loop worked great on page 1 of a paged post - properly showing content from the page I was querying. However, on pages 2 and 3 of the paged post, my custom loop showed the content from the currently displayed page of the post.

Example code:

Not working--

{{{

global $post;
$about_query = new WP_Query('pagename=about');
while ($about_query->have_posts()) {
	$about_query->the_post();
	$about_text = get_the_excerpt();
}

}}}

Working--

{{{

global $post, $wp_query;
$page = $wp_query->query_vars['page'];
// temporary - resetting below
$wp_query->query_vars['page'] = null;
$about_query = new WP_Query('pagename=about');
while ($about_query->have_posts()) {
	$about_query->the_post();
	$about_text = get_the_excerpt();
}
$wp_query->query_vars['page'] = $page;

}}}",alexkingorg
Future Releases,6531,Recursively search for files in theme and plugin editors,chsxf,Template,2.5,normal,minor,Future Release,defect (bug),assigned,has-patch,2008-04-01T19:44:11Z,2013-04-18T11:13:26Z,"Themes (like Subtle: http://gluedideas.com/downloads/subtle/) might contain numerous CSS files. The theme editor, however, does not recognize any other CSS files other than ''style.css''.

The files might be located some levels deeper in sub directories like '/wp-content/themes/glued-ideas-subtle-01/assets/css/print.css'.",torbens
Future Releases,3670,Removing CDATA close tag ( ]]> ) unbalances the CDATA block,andy,Template,2.1,normal,minor,Future Release,defect (bug),new,has-patch,2007-01-25T05:55:47Z,2012-02-03T03:01:42Z,"I'm
not sure if this is a bug per se, but it breaks included JS in my
posts that are escaped with a CDATA section.  I've basically commented
out the following line in the_content() every time I upgrade:

//$content = str_replace(']]>', ']]&gt;', $content);

A user on the wp-testers list indicated that this was part of making sure that included CDATA blocks didn't break RSS feeds.  I don't use CDATA sections directly in my RSS feeds, so I haven't tested this.  In my particular case, the JS is used to embed Flash movies (e.g. YouTube videos) in an XHTML compliant way (without embed tags).  I have a custom plugin I've written that strips out the JS and replaces it with the embed tag in the RSS feed.

Perhaps we should use a flag to activate this when the app is going through a feed.  Ideally, though, it would simply be removed.  Odds are that the CDATA block is being used for a JS block in a post body, and since most RSS aggregators don't allow JS by default, it would be safe to simply remove CDATA blogs if is_feed() is set.",scenic
Future Releases,23150,Sanitize the class passed to wp_list_bookmarks() and allow passing an array,,Template,3.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-08T20:50:58Z,2013-01-08T23:10:22Z,"The class argument to wp_list_bookmarks() could use some sanitization.

While at it, let's enhance it to accept an array of classes like we do elsewhere.",ryan
Future Releases,16632,"Template title tags shouldn't ignore the prefix,even if 'display' is false",,Template,3.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-02-24T11:03:31Z,2011-09-12T12:03:58Z,"Some template title tags that accept both the $prefix and $display paramater ignore the prefix if the display is set to false, i.e. single_post_title(), single_term_title().

Some don't, i.e. single_month_title().

It doesn't make sense to ignore the prefix - if the developer doesn't want it, he can leave it empty.
",yoavf
Future Releases,11694,"WP should do sanity checks for paginated posts, pages and comments",dd32*,Template,2.9,normal,major,Future Release,defect (bug),accepted,has-patch,2010-01-02T19:45:15Z,2012-09-14T22:30:15Z,"Create a post with two pages using the <!--nextpage--> tag. Publish, and browse the post's *third* page.

WP should return a 404 here, rather than the last page of the post.

Along the same lines, it should return the correct canonical urls for paginated posts. Currently, rel=canonical will only ever return the post's first page.",Denis-de-Bernardy
Future Releases,5120,_wp_unfiltered_html_comment breaks XHTML validity,,Template,2.8,normal,normal,Future Release,defect (bug),reopened,has-patch,2007-09-30T12:56:44Z,2010-04-08T01:14:24Z,"When a user is logged in, the comment_form hook causes a hidden input field containing _wp_unfiltered_html_comment to be added to the page. In many themes, including the default theme, the comment_form action is within the <form> elements, but outside of any <p> or <div>. This is not valid in XHTML.

One solution would be to move the do_action to inside the preceding paragraph, which already contains the comment_post_ID hidden field. However, this may cause problems with plugins that assume it is outside of any paragraph or div.
",jrawle
Future Releases,22406,adjacent_posts_rel_link ignores $excluded_categories argument,,Template,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-10T13:16:31Z,2012-11-10T14:57:34Z,"The ticket subject is pretty obvious, I think, just by looking at the source in link-template.php:

{{{ 
function adjacent_posts_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '') {
    echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', true);
    echo get_adjacent_post_rel_link($title, $in_same_cat, $excluded_categories = '', false);
}
}}}

The $excluded_categories should be passed to get_adjacent_post_rel_link just as they come, not as an empty string. 

Possible use cases of having the bug fixed: 
- want to exclude a category from almost everywhere (because it has a single place in the blog), but it keeps appearing in the rel links.
- don't want to help robots discover posts from those categories through the rel links (robots.txt is not enforceable). ",adelval
Future Releases,10248,force_balance_tags breaks <!--more-->,,Template,2.8,normal,normal,Future Release,defect (bug),new,has-patch,2009-06-23T18:26:39Z,2010-05-14T08:15:44Z,"In ticket #9765 balanceTags was replaced with force_balance_tags. This is causing tag balancing for the teaser although a user might have disabled tag balancing in the blog configuration.

This breaks plugins that are relying on unmodified teasers.

If the user doesn't want tag balancing the blog should behave so - not only in some cases. If it breaks her HTML then she still can change the post to make it valid.",McShelby
Future Releases,22957,get_boundary_post Only works from a single page,,Template,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-16T00:36:35Z,2012-12-20T23:29:33Z,"I was trying to use `get_boundary_post` in my theme to display a link to the first and last posts, but it does not work from the homepage. Unless called from a single post, `get_boundary_post` will return NULL.

I can't see any reason for this behavior, or any good way around it.",pathawks
Future Releases,8107,"get_next_post, get_previous_post do not work for posts posted within same second",,Template,2.7,low,minor,Future Release,defect (bug),new,has-patch,2008-11-08T12:34:22Z,2010-11-13T01:33:11Z,"if you have posts that are published shortly one after the other (e.g. through a script or plugin that posts several posts at once) several of them may end up having the same post_date in the wordpress database table. this is due to the fact that mysql datetime seems to only maintain a precision of one second (see also this discussion: http://bugs.mysql.com/bug.php?id=8523). 

the problem now is that wordpress functions like get_next_post/get_previous_post (get_adjacent_post resp.) will no longer work correctly if something like this happens as they solely rely on a comparison of the post_date field and they don't treat the case where these timestamps are the same for several posts. the result is that e.g. get_next_post will pick one of the posts having the same timestamp and ""jump"" over the others, so the user will never see them.

i see two possibilities around this 1.) treat cases with the same post_date by e.g. looking also at the post id (assuming it is always strictly increasing) or probably preferably 2.) make sure that no two posts have the same post_date timestamp by e.g. increasing post_date artificially when publishing the post and if another post already has the same timestamp.
",whoismanu
Future Releases,10230,get_pages function: number and child_of parameters conflict,ryan,Template,2.8,normal,normal,Future Release,defect (bug),new,has-patch,2009-06-21T19:26:29Z,2012-09-11T10:54:52Z,"Passing both number and child_of parameters to get_pages will produce nonsensical results. 

Within the function number is used first to limit the number of results, then child_of is used to establish results within a certain hierarchical scope. 

So with a structure of:
{{{
Parent 1 
Parent 2
Parent 3
   Child 1
   Child 2 
   Child 3
}}}
passing a number=2 and child_of=(parent 3 id) will not give the expected output. In this case, the result will first be limited to only include:
{{{
Parent 1 
Parent 2
}}}
so the child_of will be ignored. To produce a more logical result, child_of should be evaluated first, then number should be evaluated to limit the result set.",ortsaipekim
Future Releases,17037,get_the_title() will pass an empty title and invalid post ID to 'the_title' filter on invalid post ID,,Template,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-04-03T19:25:52Z,2011-04-04T08:16:23Z,"`get_the_title()` has a workaround for when an invalid post ID is passed, setting the title to an empty string and post ID to the requested ID, then passing this to 'the_title' filter.

'''Example:'''
{{{
function testme() {
	var_dump( get_the_title( 99999 ) );
}

function filterme( $title ) {
	return ""[$title]"";
}

add_action( 'wp_head', 'testme' );
add_filter( 'the_title', 'filterme' );
}}}

Is there a reason for this odd functionality?",kawauso
Future Releases,19776,wp_dropdown_categories (using with taxonomy) defaults if no terms,,Template,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-08T04:02:14Z,2012-01-08T21:47:30Z,"the default args for wp_dropdown_categories produce an empty select box when using wp_dropdown_categories for a taxonomy for which there are no terms.  I produced this both w/ the filters on the edit.php screen (restrict_manage_posts) and on the front end in my theme.  I presume this case never occurs with post categories as there is always Uncategorized.  

{{{
$args = array(
    'show_option_none'   => ,
    'taxonomy'           => 'featured',
    'hide_if_empty'      => false );
}}}
 

lines 340-343 in wp-includes/category-template.php are


{{{
if ( ! $r['hide_if_empty'] || ! empty($categories) )
		$output = ""<select name='$name' id='$id' class='$class' $tab_index_attribute>\n"";
	else
		$output = '';

}}}

so in a taxonomy that has no terms, the $categories variable is indeed empty, but the default arg is false, so the ! $r['hide_if_empty'] condition is satisfied and you get the opening of the select input, but you don't get any options therein (since they don't exist.  and by default, you don't get any notice of such. ",helgatheviking
Future Releases,18632,wp_get_shortlink() Should Always Return a URL,,Template,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-10T03:27:51Z,2011-11-16T00:18:51Z,"Currently the code used in the link-template.php file causes the `wp_get_shortcode` function to return an empty result if the WordPress installation is using the default permalink structure. This causes at least issues with `the_shortcode` function and can be expected to cause issues any place that `wp_get_shortcode` is called when the default permalink structure is being used.

An alternative is to simply make the inline documentation state an empty result will be returned when the default permalink structure is used.",cais
Future Releases,9153,wp_list_pages cannot handle multiple exclude_tree arguments,tbrams,Template,3.0,normal,normal,Future Release,defect (bug),reopened,has-patch,2009-02-17T15:32:48Z,2013-05-07T19:41:48Z,"When trying to set up a menu based on wp_list_pages and a long list of chapters I did not want on the front page, I learned that wp_list_pages ignored all exclude_tree arguments - except for the first one.

For example, using:

{{{
wp_list_pages('exclude_tree=132,502,715,852,109,153,149&title_li=&sort_column=menu_order' );  

}}}

to generate the menu at http://ttu.no was a no go, because it returned far to many sections in the menubar (despite my efforts to explicitly exclude a lot of these)

Although it is certainly not a show stopper, it is really annoying when you need a drop down menu on your website and know exactly how it should work in theory, so I have found a solution for this already and am just trying to figure out how I can convey my suggested fix to the official Open Source Repository.",tbrams
Future Releases,8298,wp_page_menu needs to override wp_list_pages include argument to be functional,technosailor,Template,3.0,normal,normal,Future Release,defect (bug),assigned,has-patch,2008-11-20T19:43:12Z,2010-10-26T13:08:12Z,"In exploring the new wp_page_menu() function, I realized that there is a byproduct of wp_list_pages that is unintuitive and possibly problematic for people wanting to output a menu. The 'include' argument overrides the use of child_of, parent, meta_key and meta_values parameters.

Menu creation assumes that only some top level pages will need to be used, thus the need for 'include', but wp_list_pages assumes that if you're including only a subset of pages, you're not including the subpages as well. Makes sense on both accounts.

For menu authors, I think expected behavior is that a top level menu would include subpages as well (e.g. a rollover horizontal nav).

I'm submitting a patch that delivers that expected behavior to only the new wp_page_menu() template tag. It reverse engineers the include by using the 'exclude' argument to exclude all pages except the ones passed with the wp_page_menu 'include' argument.",technosailor
Future Releases,16468,404 page with /page/2 shows page #,,Themes,3.0,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-02-06T03:48:15Z,2012-09-15T14:18:01Z,"In 2010, there's a custom part of the title that shows "" | Page 2"" etc for paged posts.

Yet, even if it's a 404, it still shows this if there's a $page or $paged variable.

e.g. /2012/04/page/2 (picked to obviously 404) is: Page not found | robinadr | Page 2 on my site.

Checked trunk, same problem there.",rob1n
Future Releases,12615,"Add ""first"" and ""last"" CSS-class-names to each Widget in sidebars (Frontend)",,Themes,,normal,normal,Future Release,defect (bug),assigned,close,2010-03-16T18:12:11Z,2011-07-04T10:23:10Z,"It would be nice if the first widget and the last widget in each sidebar would have a css-class that would make them identifyable as the first and the last widget.

Maybe something that is nice to have for 2010 as well. So I leave this open for others to decide on which version to put it.",hakre
Future Releases,11282,Bizarre Behavior When wp-content Missing,westi,Themes,2.8.4,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2009-11-29T02:19:13Z,2012-10-23T00:15:18Z,"Steps to reproduce:

1.  Begin and complete a normal installation, but skip or remove the wp-content directory.

2.  Try to view the Dashboard and the Visit Site link.

Expected Result:  WP did not install, wp-content is missing.

Actual Result:  Dashboard is visible, site's front page is not.  In /wp-admin/error_log

PHP Warning:  array_keys() [<a href='function.array-keys'>function.array-keys</a>]: The first argument should be an array in /wp-includes/theme.php on line 481",miqrogroove
Future Releases,20211,Description text for custom header upload may be misleading in some contexts.,,Themes,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-10T00:52:52Z,2012-03-24T18:23:34Z,"The paragraph in the ""Upload Image"" section of Appearance -> Header contains the following text: ""You can upload a custom header image to be shown at the top of your site instead of the default one.""

This is a bit misleading in the event that the active theme does not include a default image.

An easy solution may be to remove the following text from the sentence: "" instead of the default one"". What do you think?",mfields
Future Releases,11178,Fix for poor sidebar CSS in Kubrick theme,iandstewart,Themes,2.9,normal,normal,WordPress.org,defect (bug),assigned,has-patch,2009-11-18T22:04:40Z,2010-06-14T22:01:25Z,"Rather than using a float to push the sidebar alongside the content area, Kubrick floats the content area and then uses a left-margin of 545 pixels to shove the sidebar over. This causes float and clear CSS rules to produce very odd results in the sidebar.

The attached patch changes the #sidebar left-margin from 545px to 50px and adds ""float: left"".

A site running the patched version of Kubrick has been tested in IE 6-8 and the latest versions of Firefox, Opera, Chrome, and Safari. All the browsers rendered the sidebar in the same position as before the patch with the exception of also fixing the float/clear problem.",chrisbliss18
Future Releases,16410,Open basedir problem in /wp-includes/theme.php,,Themes,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-30T16:18:13Z,2011-02-10T13:43:40Z,"On line 590 in theme.php there's:

{{{
if ( is_dir($theme_root . '/' . $theme_dir) && is_readable($theme_root . '/' . $theme_dir) ) {
}}}

please change this to:

{{{
if ( $theme_dir!="".."" && is_dir($theme_root . '/' . $theme_dir) && is_readable($theme_root . '/' . $theme_dir) ) {
}}}

is_dir() should not check .. and . folders, this results in open basedir errors when sharing themes between multiple installs. (symlinked)",webraket
Future Releases,21510,Use get_background_color() in _custom_background_cb(),,Themes,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-07T17:57:52Z,2012-08-07T21:53:35Z,"When themes add a default background color via the `custom-background` feature, it isn't shown until the user saves it in the admin.  The issue is that the `_custom_background_cb()` uses `get_theme_mod( 'background_color' )` instead of `get_background_color()`, which will handle the default.

The attached patch should correct this.",greenshady
Future Releases,22986,WP uses header image's GUID as URL,,Themes,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-18T01:28:18Z,2012-12-18T11:57:53Z,"See summary. If I move my site (old domain becoming inaccessible), I cannot use my header images any more since
a) I am not allowed to change GUIDs.
b) GUIDs are used as URLs for header images:

http://core.trac.wordpress.org/browser/trunk/wp-includes/theme.php
{{{
1008        foreach ( (array) $headers as $header ) {
1009	                $url = esc_url_raw( $header->guid );
}}}",bersbers
Future Releases,21969,Wrong URL in wp_enqueue_script(),,Themes,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-22T19:21:21Z,2012-09-28T08:06:31Z,"This problem is probably related to fixed ticket #21749

Example theme directory

{{{
wp-content/themes/Some Theme/Theme
}}}

I noticed it with one premium theme. Users usually upload downloaded files through FTP with one more parent directory.

Function get_template_directory_uri() returns right URL:


{{{
wp-content/themes/Some Theme/Theme
}}}


But using it with wp_enqueue_script():


{{{
wp_enqueue_script( 'maxheight',  get_template_directory_uri() . '/js/maxheight.js' );
}}}


it returns wrong URL:


{{{
wp-content/themes/SomeTheme/Theme/js/maxheight.js
}}}

And script is not loaded in the end (Not Found error).

Reproduced on current trunk and 3.4.x.",pavelevap
Future Releases,18790,add_theme_support with post type doesn't add theme support but overwrites it,,Themes,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-27T12:17:13Z,2012-08-18T01:48:57Z,"The function add_theme_support has an optional second parameter, which allows you to add support for post thumbnails for certain post types.

You would expect this function to add the theme support for that post type, but instead it overwrites the theme support for that feature, which results in the theme support being set for just the post type(s) that were passed.

Reproduce:
{{{
function add_thumbnails_support()
{
	add_theme_support('post-thumbnails', array('my_post_type'));
	print_r(get_theme_support('post-thumbnails'));
	
	add_theme_support('post-thumbnails', array('another_post_type'));
	print_r(get_theme_support('post-thumbnails'));
}

add_action('after_setup_theme', 'add_thumbnails_support');
}}}
",Jesper800
Future Releases,17590,"wp_list_pages() not setting ""current_page_item"" classes on custom post types",,Themes,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-27T15:41:24Z,2012-11-07T22:22:09Z,"wp_list_pages() don't set the correct css for a hierarchical custom post type. 

To reproduce this bug do this:
<?php wp_list_pages(""title_li=&post_type=custom_post_type_name""); ?>

and compare the html output to normal pages:
<?php wp_list_pages(); ?>

The problem seems to be this row in wp_list_pages():
{{{
if ( is_page() || is_attachment() || $wp_query->is_posts_page )
}}}

In the following patch i've changed it to
{{{
if ( is_page() || is_attachment() || $wp_query->is_posts_page || ($wp_query->query_vars['post_type'] != 'post' && is_single()) )
}}}

(If this is not the intended behavoir please let me know. )",tobiasn
Future Releases,17261,Ctrl(+shift)+tab don't work when tinyMCE has focus,,TinyMCE,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-04-27T16:28:14Z,2011-11-16T08:19:40Z,"At first I thought this was a DFW bug, but it seems to be tinyMCE related as it affects the regular editor.

If you are focused in tinyMCE ctrl+tab and ctrl+shift+tab don't work as expected (switching you to the next/previous tab).

* In Firefox 4 on Ubuntu:
 * ctrl+tab does nothing
 * ctrl+shift+tab moves focus to the title box
* In Firefox 4 on Windows 7
 * ctrl+tab does nothing
 * ctrl+shift+tab moves focus to the title box
 * tab and shift+tab do nothing as well (rather than switch focus)
* In IE 9
 * Everything works as expected
* In Opera 11.10 on Windows
 * The first ctrl+tab or ctrl+shift+tab moves focus and the second switches tabs
* In Safari 5.0.5 on Windws
 * ctrl+tab works as expected
 * ctrl+shift+tab does nothing
* In Chrome on both Windows and Ubuntu
 * Everything works as expected
",aaroncampbell
Future Releases,16239,Improve switching between visual editor and html mode when text set immediately after more tag,,TinyMCE,3.1,normal,normal,Future Release,defect (bug),reviewing,has-patch,2011-01-15T04:33:10Z,2012-05-02T16:43:32Z,"By request from Matt. When switching from the visual editor to html mode, text immediately after the more tag will be set directly next to the comment. In this case, we should set the text on the next line.",koopersmith
Future Releases,18010,Localization of colors in TinyMCE,,TinyMCE,3.2,normal,trivial,Awaiting Review,defect (bug),new,has-patch,2011-07-06T19:34:24Z,2013-02-01T12:03:21Z,"During translation we have found some small problems:

1) For color 993366 there is label ""Brown"", but this color is not really brown. ""Red Violet"" or ""Violet"" is much better, I guess. Patch attached.

2) There are 40 colors translated in TinyMCE font color picker, but when you open new window ""More colors"", tab ""Named"" - labels are not translated here. Some of these colors are translated, but not shown. Source file is wp-includes/js/tinymce/themes/advanced/js/color-picker.js.",pavelevap
Future Releases,18953,"String index handling mistake in TinyMCE's JSON.php causes a PHP ""Notice"" message",azaozz,TinyMCE,3.2.1,normal,normal,Awaiting Review,defect (bug),reviewing,has-patch,2011-10-14T21:42:55Z,2011-12-20T20:20:22Z,"In the SpellChecker plugin for TinyMCE with a PHP backend, in file JSON.php, in lines 332 (""read"" function) and 350 (""peek"" function), the $this->_data string index ($this->_pos) is compared with $this->_data string length ($this->_len). These allow errors in lines 339 and 351 of their respective functions, when the $this->_pos index gets to be equal to the length of the string.  This situation generates the following messages to show up in PHP servers configured to show notice-level debug information:

Notice: Uninitialized string offset: <length of _data> in <WordPress path>/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/JSON.php on line 351

Notice: Uninitialized string offset: <length of _data> in <WordPress path>/wp-includes/js/tinymce/plugins/spellchecker/classes/utils/JSON.php on line 339

I will attach a patch file to illustrate how I solved this situation.",carlosman
Future Releases,20094,The wpEditImage TinyMCE plugin is broken when TinyMCE is served from another domain,,TinyMCE,2.6,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-22T00:48:46Z,2012-02-22T09:05:26Z,"If TinyMCE is served from another domain (for example a CDN), the wpEditImage plugin tries to open the image editing iframe from that other domain.  This breaks inter-iframe communication due to a violation in the same-origin policy.

The code is the same all the way back to 2.6, but I didn't verify the problem occurs there (TinyMCE's API may have changed since then).

Attached:
* Ensures the iframe is always served from the same origin as the parent page.
* Fixes the iframe cache busting.",mdawaffe
Future Releases,23476,disabling wpautop in TinyMCE settings leads to strange behavior in Text editor,,TinyMCE,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-14T21:57:20Z,2013-02-15T12:45:26Z,"If I disable the `wpautop` behavior in TinyMCE with a `tiny_mce_before_init` filter like so:

{{{
function ars_disable_tinymce_wpautop($in) {
  $in['wpautop'] = false;
  $in['remove_linebreaks'] = false;
  $in['apply_source_formatting'] = true;
  return $in;
}}}

The text view of the editor exhibits some odd behavior when saving. Instead of submitting the current state of the text editor, the text editor is updated with the contents of the HTML view, and then saved.

However, if I click over to the Visual editor before saving it will save correctly. I believe this logic in the `wordpress` TinyMCE plugin may be the cause:

{{{
ed.onSaveContent.add(function(ed, o) {
  if ( ed.getParam('wpautop', true) && typeof(switchEditors) == 'object' ) {
    if ( ed.isHidden() )
      o.content = o.element.value;
    else
      o.content = switchEditors.pre_wpautop(o.content);
  }
});
}}}",leedo
Future Releases,22247,"Ensure post ID evaluates to true before adding ""Edit post"" tab in admin bar",,Toolbar,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-10-21T20:45:27Z,2012-11-13T01:37:13Z,"This patch checks that a post has an ID set before adding an ""Edit post"" link in the admin bar on the front-end for individual post pages and static pages.

This can be helpful for plugins that choose to create a ""fake"" page that does not exist in the database, and set their ID to ""0.""

An example of such a fake page can be seen on my [http://wordpress.org/extend/plugins/on-the-fly-youtube-embeds/ On The Fly YouTube Embeds] plugin which borrows a lot of code from Scott Sherrill-Mix's blog post: [http://scott.sherrillmix.com/blog/blogger/creating-a-better-fake-post-with-a-wordpress-plugin/ Creating a (Better) Fake Post with a WordPress Plugin]",Joe Anzalone
Future Releases,15317,My Sites limited to 23 sites on Admin Bar,,Toolbar,3.1,low,normal,Future Release,defect (bug),new,has-patch,2010-11-04T13:35:21Z,2012-08-26T08:16:23Z,"I have a test site with 25 sites.  I can only access 23 from the My Sites tab on the admin bar.

(This is a minor bug, but I hadn't seen it mentioned.)

Ron

I'm using latest trunk.",ronbme
Future Releases,18556,Toolbar dropdowns when dragging items,drecodeam*,Toolbar,3.2.1,normal,normal,Awaiting Review,defect (bug),accepted,has-patch,2011-08-31T19:15:17Z,2013-01-22T01:17:35Z,"When dragging metaboxes, widgets, menu items, etc to the top of the window in order to scroll to drop the item on a portion of the UI that's above the viewing window, the toolbar interferes and produces dropdowns, etc.

If dragging an item, can we disable toolbar actions?
",chexee
Future Releases,19541,wp_admin_bar_new_content_menu does not respect menu_position,nacin*,Toolbar,3.1,normal,normal,Future Release,defect (bug),accepted,has-patch,2011-12-14T02:19:30Z,2012-11-07T22:01:32Z,"'''What is happening:'''

When registering a custom post type, you can specify the position in the left-hand admin menu by using 'menu_position' to move it up or down in the list.

However, the admin bar ""new content"" list does not use this same order, instead it will always display ""Post"", ""Media"", ""Link"", ""Page"" (in that order) before any custom post.

'''What should be happening:'''

The admin bar ""new content"" list should respect the menu_position attribute.",davistobias
Future Releases,20175,"""Trash"" should not be a bulk action when user can't delete a post at all",,Trash,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-04T15:20:19Z,2013-01-09T03:55:37Z,"When a user can't delete posts at all for a certain post type the bulk action to delete posts is useless.

Not sure if the following check is correct:

{{{
		if ( current_user_can( $post_type_object->cap->delete_post ) ) {
			if ( $this->is_trash || !EMPTY_TRASH_DAYS )
				$actions['delete'] = __( 'Delete Permanently' );
			else
				$actions['trash'] = __( 'Move to Trash' );
		}
}}}

Maybe the edit/restore functionality should have some similar check",markoheijnen
Future Releases,23685,Explicitly globalize version variables,,Unit Tests,trunk,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-04T11:00:09Z,2013-03-04T17:24:03Z,"When WordPress is loaded in a function (e.g. unit tests) the variables initialized at the top level aren't globals, but we expect them to be.

For example, if in a unit test there is no way to access `$wp_version`. Neither via `$wp_version` (it's not in the same scope), not via `$GLOBALS['wp_version']` (it's not a global).

To fix that we need to explicitly make the version variables global.

See #17749.",nbachiyski
Future Releases,24173,Unit tests: Support subdirectory multisite installs,,Unit Tests,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-24T05:57:49Z,2013-04-24T09:06:15Z,"I have unit tests set up at:
localhost/wordpress-tests/

And have set:
`define( 'WP_TESTS_MULTISITE', true );`

However, currently, unit testing doesn't support subdirectory multisite installs.  It fails when installing multisite.

Attached patch addresses this and introduces a new constant called `'WP_TESTS_PATH'`.

If this is set in `wp-tests-config.php`, this will make sure that PHPUnit can install WP for subdirectory multisite installs.",r-a-y
Future Releases,19781,All update processes should be within an iframe,,Upgrade/Install,,normal,normal,Future Release,defect (bug),new,has-patch,2012-01-09T00:16:20Z,2012-03-18T06:25:08Z,"Currently some of the update processes run within iframes, others don't. 

We should standardise on all within an iframe.

Running inside the iframe has the advantage that the footer of the page is loaded, and therefor, the Toolbar will load, rather than the page appearing half-loaded for certain upgrade/install processes.

Currently, Processes which run inside iframes are Bulk updates, Singular updates load directly.

~~We should also investigate a iframe overlay that contains a ""Working.. please wait"" graphic that clears once the content of the iframe starts loading, This should help ease the pain of not being sure if the update process has started on servers that force gzip (and as a result, provide no user feedback until the process is complete) - See #18525 and #18239 for examlples of that~~ see #19783",dd32
Future Releases,16817,All updates have been completed,,Upgrade/Install,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-10T09:41:22Z,2011-03-10T11:17:23Z,"I tried to update 12 plugins at once, one of them ended with red error message ""An error occurred while updating PLUGIN_NAME: Could not remove the old plugin.""

But in the end of Update page is message ""All updates have been completed.""

And that is not right, because one plugin was not updated.",pavelevap
Future Releases,20263,Backticks in dbDelta cause warning and actually causes a query to alter all columns and indexes to run even if none have changed,,Upgrade/Install,1.5,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-03-20T16:11:18Z,2012-09-01T20:13:24Z,"Backticks in a CREATE TABLE in a dbDelta call are causing the below warning, and running a query to alter all columns and indexes with backticks even if they haven't changed:
Notice: Undefined offset: 1 in /home/backuptechnology/public_html/wp-admin/includes/upgrade.php on line 1544

Seems this started a long long time ago after this was fixed:
http://core.trac.wordpress.org/ticket/8014

Seems there is a match on line 1587 of WordPress 3.3.1 wp-admin/includes/upgrade.php:
{{{
               // For every field in the table
                foreach ($tablefields as $tablefield) {
                        // If the table field exists in the field array...
                        if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
                                // Get the field type from the query
                                preg_match(""|"".$tablefield->Field."" ([^ ]*( unsigned)?)|i"", $cfields[strtolower($tablefield->Field)], $matches);
}}}

The preg_match bit is what fails to match because it is looking for ""fieldname"" instead of ""`fieldname`"".
So this is where the warning occurs, and why it assumes the type of the field is wrong.
This means the previous patch 3 years ago probably meant when you have backticks in your CREATE TABLE, when you run dbDelta it actually runs an ALTER TABLE for every single column in the table, and then an ALTER TABLE ADD INDEX / PRIMARY for every single KEY and PRIMARY (there's more than just the above code that needs adjusting), causing duplicate key errors, but ignored. Guess it kinda works though...

Also seems during the DESCRIBE it doesn't use backticks so if someone has a table with a reserved name (stupid I know) it would break dbDelta completely, but that's me digressing I just think getting rid of the warnings for CREATE TABLES with backticks will be good.

But explains why my plugin takes a few seconds to activate hahaha. :-)

I'll provide a patch at some point this week or next unless someone has already done so.",Driskell
Future Releases,15729,Better UX after supplying incorrect information to setup-config,kapeels*,Upgrade/Install,,low,normal,Future Release,defect (bug),accepted,has-patch,2010-12-08T07:19:24Z,2010-12-23T02:42:49Z,"In #15682 I added a 'Try Again' button to step 2 of setup-config.php if the credentials were incorrect.

The button is a simple link with a `javascript:history.go(-1)` hack. This should instead be a form with hidden values that submits back to setup-config.php?step=1, and fills out the form so they can try again.

Additional enhancement: If the prefix is malformed (can only contain letters, numbers and underscores), we do a wp_die(). We should again have a form with a 'Try Again' button that returns them.

As an added bonus, incorrect credentials should be filled out (for reference) but marked as incorrect and potentially with the focus set on that field.

Only caveat I can think of: This will require the use of esc_attr(), which we don't have access to yet. Not sure how to solve that without reverting to htmlspecialchars() with some extra work.",nacin
Future Releases,18286,Upgrade script to fix non-unique page GUIDs,,Upgrade/Install,3.2.1,normal,major,Awaiting Review,defect (bug),new,has-patch,2011-07-28T23:07:19Z,2011-08-02T17:22:28Z,"There were versions of WordPress prior to 3.1 that created non-unique GUIDs in the posts table.

http://core.trac.wordpress.org/ticket/15041

This bug is fixed, but the bad data persists in many WP installs. Attached is a proof-of-concept plugin that could be included in the WordPress upgrade process to clean up these GUIDs.

In the interim, I'll probably release this as a plugin as we've got some folks using tools we built that need this fix ASAP.",alexkingorg
Future Releases,17680,"Using ""update automatically"" can destroy a theme in a Windows environment",,Upgrade/Install,,normal,major,Future Release,defect (bug),new,has-patch,2011-06-03T22:33:18Z,2011-06-04T05:44:39Z,"If there are any locked files or files in use, Update Automatically destroys the theme.

I've experienced this three different ways:
 1. The machine is really slow to delete the original theme dir, when the update is moved into the themes dir, an error occurs: ""Could not create directory"".  The theme is now gone.
 1. If there are any locked files in the outdated theme (e.g. SVN), all the files except the locked one will be deleted.  Upgrader bails and you're left with a broken/empty theme.
 1. If any of the files are in use, all files inside the theme will be deleted but the file system will throw an error.  The updater bails with an empty theme directory.

Steps to duplicate:
 1. On a Win hosted install, open the twentyten theme directory
 1. Edit stylesheet, change version to 1.0
 1. Open screenshot.png in paint
 1. In the wp-admin, upgrade the theme
 1. Sad times (screenshot attached)

Proposed solution is to try to rename the old theme first.  Provides two benefits:
 1. Have a backup of original theme if something breaks mid-way
 2. Never left with a broken site

Note: all the more reasons why one should not use Windows :/ but I have no choice.
",blurback
Future Releases,18169,[15491] prevents to plug into the update API,,Upgrade/Install,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-07-19T09:13:49Z,2011-08-24T00:21:04Z,"I'm a bit late to the party, but I've only noted now that changeset [15491] introduced a subtle change to the WP API, which prevents to readily plug into the update API:

Prior to it, the sequence went something like this:

{{{
$args = array(...); // set using a filter
$api = themes_api('query_themes', $args); 
if ( is_wp_error($api) ) 
    wp_die($api); 
display_themes($api->themes, $api->info['page'], $api->info['pages']); 
}}}
 
It now goes like this:


{{{
switch ($tab) {
   case ...: // valid case
   $args = array(...); // relevant args
   break;
     $args = false; // this is new. a filter should be present here...
}
if (!$args) return; // the 'query_themes' hook is no longer useful
$api = themes_api('query_themes', $args); 
if ( is_wp_error($api) ) 
    wp_die($api); 
display_themes($api->themes, $api->info['page'], $api->info['pages']); 
}}}

I used to use a hook in there to add a tab in the installer. The stab is still around, and is as far as I can tell part of it is still working, but it no longer seems possible to display the results using the normal API.",Denis-de-Bernardy
Future Releases,11344,'Show' link doesn't appear for about 10s after 'Crunching' is finished.,,Upload,2.9,normal,minor,Future Release,defect (bug),new,has-patch,2009-12-06T12:48:23Z,2011-02-06T07:24:00Z,"After uploading an image, the 'Show' link doesn't appear for about 10s after 'Crunching' is finished.

Firefox 2.5.5, WP r12320 (but applies to all versions).",caesarsgrunt
Future Releases,19374,Uploader uses wrong path when inserting images,,Upload,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-11-27T23:09:36Z,2011-12-19T19:55:20Z,"== Issue: ==
I recently had someone whose WordPress install I take care of tell me that when they went to upload images, they weren't being shown. At the time, she was using a svn copy that hadn't been svn up'd in a few weeks. I noticed that the uploads were being stored in the right location, but the uploader was using the default `wp-content/uploads` location when it inserted it into the post, causing the images to not show up.

I just confirmed that this still exists in r19456. It happens with all plugins deactivated and on the default theme.

== To replicate: ==
1.  On the options-media.php, change the upload path to something of your choosing. For mine, I chose `/usr/home/user/domains/my-domain.com/public_html/wp-content/my-uploads/`
2.  If needed, created the folder and adjust permissions.
3.  Create a new page/post, upload an image, and insert it into the post. Take note of the address, it should be wrong according to the newly set upload path.
4.  On the server, check the new location, as well as wp-content/uploads. The file will be in the new location (as expected), and not in wp-content/uploads.",ryanmurphy
Future Releases,12756,WPMU does not handle files with two or more dots in the filename,wpmuguru,Upload,2.9.2,normal,minor,Future Release,defect (bug),reopened,has-patch,2010-03-29T07:23:50Z,2012-11-03T22:59:51Z,"* WPMU does download images that have two or more dots in the file name
> E.g., One..jpg One...jpg One....jpg

rewrites do work (checked)

* this is clearly a WP issue:
> /wp-content/blogs.php
...
$file = BLOGUPLOADDIR . str_replace( '..', '', $_GET[ 'file' ] );
if ( !is_file( $file ) ) {
	status_header( 404 );
	die('404 &#8212; File not found.');
}
...
> WPMU removes two dots!!!

> workaround:
$file = BLOGUPLOADDIR . $_GET[ 'file' ]; // name.ly: workaround for files with two or more dots

tested and works fine
",Namely
Future Releases,17812,"media_upload_form_handler runs twice when editing attachment from ""From Computer"" media upload tab (browser uploader)",,Upload,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-15T18:48:58Z,2012-08-05T22:14:25Z,"After uploading a new media item ""From Computer"" using the browser uploader, you are presented with a form to edit its fields.

Clicking ""Save all changes"" from this form causes {{{media_upload_form_handler}}} to run, then {{{media_upload_gallery}}} (presumably to redirect to the gallery tab), which then causes {{{media_upload_form_handler}}} to run again.

This can cause problems for {{{edit_attachment}}} actions that only run once and alter the posts table row for that attachment (since the subsequent {{{media_upload_form_handler}}} could overwrite whatever changes were made in the action if they don't match whats in {{{$_POST}}}).

If the only reason {{{media_upload_gallery}}} is being called from the other type upload handler is to redirect to the gallery tab.. perhaps this patch is a better approach.",jeffstieler
Future Releases,21140,"""Display name publicly as"" setting not set until a change is made in the setting",nickharambee,Users,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-07-02T21:29:48Z,2012-07-02T22:37:46Z,"I have found this issue with several users that I have set up on my site.  The default value for ""Display name publicly as"" is the first name of the user when creating a new user, or at least that is what shows in the ""Display name publicly as"" drop-down menu.  However, when creating a new user, the full name, i.e. the first and last name is what displays publicly.  In order to get only the first name to display publicly I need to set the ""Display name publicly as"" option to another option, save changes, and then reset it to just the first name, and save changes again.

Surely, if it is the first name that shows in the drop-down menu, it should be the first name that actually displays publicly, without having to go through this rather strange process?

I am using the latest version of Buddypress (1.5.6) as well as several other plugins.  I have not tried disabling all of these.",nickharambee
Future Releases,18658,Allow apostrophe in email validation,,Users,3.2.1,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-09-14T09:23:38Z,2012-07-20T23:54:05Z,"When the is_email function checks the format of a supplied email, it errors when it finds an apostrophe in the local part of the email address.

Many valid emails use apostrophe's, and as such this should be accomodated in the validation.",swinhoe
Future Releases,16484,"Attempting to add user with username ""0"" gives fatal error",,Users,3.1,lowest,minor,Future Release,defect (bug),new,has-patch,2011-02-07T19:45:17Z,2012-09-19T22:31:51Z,"Create a new user. Use the number 0 as the username. Receive this error:

> Catchable fatal error: Object of class WP_Error could not be converted to string in /Users/mark/Sites/wp/wp-includes/formatting.php on line 2818",markjaquith
Future Releases,15001,Duplication and incompatibilities in register_new_user() and wp_insert_user(),,Users,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-30T19:16:11Z,2012-09-08T20:39:13Z,"As a result of [12778], the commit of a patch that was part of #11644 (the MU-merge ticket), `wp_insert_user()` was modified to introduce user verification checks.  The addition of these checks also introduced a number of duplications and incompatibilities between it and `register_new_user()`.  (Bear in mind that `register_new_user()` calls `wp_create_user()` which calls `wp_insert_user()`.)

These issues include:

 * Duplication (both run-time execution and code): both functions perform `username_exists()` and `email_exists()` checks.  Ideally, we should only perform each check once, and from a single piece of code.
 * Whereas both functions perform `username_exists()` and `email_exists()` checks, `register_new_user()` performs more checks (empty_username, invalid_username, empty_email, invalid_email).  If the former 2 are being checked, all 6 criteria should be checked.
 * `wp_insert_user()` can now return a WP_Error object, but `register_new_user()` can't handle it (I reported this in #14290)
 * `register_new_user()` generates a new generic error if `wp_create_user()` (via `wp_insert_user()`) returns an error (assuming proper patch #14290), rather than passing along the more specific error it was told about
If an error is returned by `wp_create_user()`, `register_new_user()` throws a generic 'registerfail' error (`'<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href=""mailto:%s"">webmaster</a> !'`).  However, most likely it received a more informative WP_Error object.
 * `register_new_user()` allows errors to be suppressed via filters, but `wp_insert_user()` does not
`register_new_user()` has the filter 'registration_errors' which allows plugins to suppress any encountered errors.  Having done so, `register_new_users()`'s subsequent call to `wp_create_user()` can generate an error (of the type already suppressed) which is then un-suppressable.  This renders the 'registration_errors' filter useless for the username_exists and email_exists errors (and possibly other in the future).

----

These different issues may warrant separate tickets, but cumulatively I think they point to the need to refactor `register_new_user()` and `wp_insert_user()` to be more efficient and compatible.

This is a rare instance where I don't include an immediate patch for a ticket, but I wanted to get it out there and see if we can try and get these fixed for 3.1.
",coffee2code
Future Releases,16001,Invited Users Can Disappear in MS,,Users,3.0,normal,major,Future Release,defect (bug),new,has-patch,2010-12-27T22:37:15Z,2013-04-22T21:56:32Z,"Steps to reproduce:

 * In ''Site Admin'', go to Users > Add New
 * Add a new user
 * You get a message to the effect of, said user needs to respond to an invitation.

Now the user has disappeared.  There's no way for a super admin or anybody to search for that user and add her directly, or delete her, or anything like that.  If the user doesn't get the email, she's out of luck: that username and email are now reserved for ""a couple of days.""",filosofo
Future Releases,17793,No explanation on invalid characters on registration form,,Users,2.1,normal,trivial,Awaiting Review,defect (bug),new,has-patch,2011-06-14T08:46:22Z,2012-10-15T19:49:57Z,"When a user tries to register with a username containing special characters (e.g. accented letters), WP shows an error message saying ""This username is invalid because it uses illegal characters. Please enter a valid username."".

However, this doesn't really help the user because the message does not explain how to fix the problem, i.e. which characters are allowed.

Please consider adding a brief listing of allowed characters.",molnarm
Future Releases,15498,Notice: Trying to get property of non-object in wp-admin/edit-form-advanced.php on line 281,,Users,3.3.2,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-11-19T17:40:39Z,2012-06-11T10:58:05Z,"The problem seems to arise from the fact that when users are imported their old IDs aren't mapped to their new IDs, so then $last_user = get_userdata($last_id) is trying to look up a user that doesn't exist.",wpdavis
Future Releases,18360,One of the links in the Password Reset Mail is wrong,lizhenry,Users,3.2.1,normal,normal,Awaiting Review,defect (bug),assigned,has-patch,2011-08-09T15:55:04Z,2012-12-11T00:27:19Z,"Hi,

just a quick note: if {{{FORCE_SSL_ADMIN}}} has been set to true, a password reset-mail could include the wrong protocol for the site-url while the password-reset-link is correct. - I didn't test it with a blog-network, though.

In other words I have both, ''WordPress address (URL)'' and ''Site address (URL)'' set to use the http protocol and in the mail the site-link points to https.

greetz,
Berny",neoxx
Future Releases,16833,Signup mechanism shortens usernames without warning,,Users,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2011-03-11T15:09:23Z,2012-08-29T23:40:31Z,"When a user signs up for an account on a wordpress blog, if their chosen username is longer than the limit, wordpress chops of the end of the username, without warning the user, and without offering the user the opportunity to choose again.

Steps to reproduce:  Go to a wordpress blog, sign up with a long username, and read the confirmation email.  An example: forum.xbmc.org, which has a limit of 15 characters.",hughcharlesparker
Future Releases,18995,Superfluous check in WP_Users_List_Table::display_rows(),,Users,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-10-19T01:21:11Z,2012-08-05T22:25:26Z,"Specifically, this one:

{{{
if ( is_multisite() && empty( $role ) )
    continue;
}}}

It seems to have been a misguided attempt to fix something that should have been (and currently is) handled at the SQL level: #12711",scribu
Future Releases,20271,Un-marked up text in the Add Users admin section for multi-site,,Users,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-21T15:17:35Z,2013-01-22T15:21:36Z,"When looking at the page for adding a new user on a multi-site setup, the top option is to add an existing user.

This text: ""Enter the email address or username of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite.""

has no html markup around it.  Immediately above it is an h3 tag.  The text should have a <p> around it at the very least.

My goal here is actually hide the whole section with css for some roles, but I have no way to refer to it.",topher1kenobe
Future Releases,22367,"Usernames with ""@"" char are assumed email addresses, causing incorrect look-up in several places",,Users,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-06T00:45:19Z,2013-01-10T10:57:23Z,"'''Problem'''

Usernames containing the ""@"" character are mistakenly assumed to be email addresses when:

* wp-login.php - Resetting passwords
* /wp-admin/user-new.php - Adding an existing user to a site, in multisite
* /wp-includes/user.php - Searching for a user

----

'''Duplicate'''

* Create a user with the login ""@testing""
* Verify the account, etc...

'''Bug in Search'''

* Visit: wp-admin/network/users.php - attempt to search for: ""@testing""
* Result: no users found
* What should happen: find the user

'''Bug in Add New'''

* Visit: wp-admin/wp-admin/user-new.php - attempt to add: ""@testing""
* Result: no users found
* What should happen: add the user

'''Bug in Reset Password'''

* Visit: wp-login.php - attempt to reset password for: ""@testing""
* Result: retrieve_password() accidentally succeeds, because strpos() check returns 0, which is the correct position of the ""@"" character. If the username was ""testing@"" this test would fail

----

'''Solution'''

The attached patch fixes these bugs by using is_email() instead of an strpos() for an @ character.",johnjamesjacoby
Future Releases,14855,"WP_User misses values for some default properties (nickname, rich_editing)",,Users,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-12T12:16:22Z,2011-12-13T00:04:15Z,"WP_User is expected to have default properties like last_name, ID etc.

At least two of them are missing in the class definition:

 1. nickname
 2. rich_editing

The attached patch adds them. 

/wp-admin/user-edit.php does Warnings / Notices if the properties are not set.

This is the case for users in the database that have not set these fields as meta data.",hakre
Future Releases,20043,WP_User missing magic __unset() method,,Users,,normal,normal,Future Release,defect (bug),new,has-patch,2012-02-14T19:58:37Z,2013-05-14T13:37:27Z,"When the magic methods were put into WP_User in 3.3, !__unset() was skipped. This has the result of unset( $user_data->$foo ); not actually doing anything.

Patched against r19926.",johnjamesjacoby
Future Releases,9873,enforce a consistent home and siteurl www. pref,,Users,2.8,normal,normal,Future Release,defect (bug),new,has-patch,2009-05-19T12:36:11Z,2012-04-20T12:56:02Z,"Seen on a few sites. home and siteurl with inconsistent www prefs prevents the admin user's cookie from getting picked up properly, upon logging in.

code I currently use to prevent the issue is this:


{{{
add_action('login_head', 'fix_www_pref');

function fix_www_pref() {
	$home_url = get_option('home');
	$site_url = get_option('siteurl');
		
	$home_www = strpos($home_url, '://www.') !== false;
	$site_www = strpos($site_url, '://www.') !== false;
		
	if ( $home_www != $site_www ) {
		if ( $home_www )
			$site_url = str_replace('://', '://www.', $site_url);
		else
			$site_url = str_replace('://www.', '://', $site_url);
		update_option('site_url', $site_url);
	}
} # fix_www_pref()
}}}

there's probably a better way and a better location for this.",Denis-de-Bernardy
Future Releases,15115,"if filter show_password_field is set to false, you cannot add new users",,Users,3.0.1,normal,minor,Future Release,defect (bug),new,has-patch,2010-10-13T23:49:57Z,2011-01-13T21:42:56Z,"Steps to reproduce:

1. add_filter('show_password_fields', false);

2. Try to add a new user, after entering the data you get the error message ""ERROR: Please enter your password."".",pampfelimetten
Future Releases,14290,register_new_user() can't handle WP_Error result from wp_create_user(),,Users,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-07-12T21:29:42Z,2011-04-28T14:48:26Z,"register_new_user() in wp-login.php does not properly handle a WP_Error object, which is the potential return value from its call to wp_create_user().

wp_create_user() is basically a pass-through to wp_insert_user().  As a result of [12778], the commit of a patch that was part of #11644 (the MU-merge ticket), new checks were added to wp_insert_user() which changed the potential behavior of the function to return a WP_Error object.  register_new_user() can thus fail with a FATAL error:

{{{
Notice: Object of class WP_Error could not be converted to int in /Users/scott/Sites/wp30.dev/wp-includes/functions.php on line 3150

Catchable fatal error: Object of class WP_Error could not be converted to string in /Users/scott/Sites/wp30.dev/wp-includes/formatting.php on line 2782
}}}

Currently it is not likely the above situation would be tripped.  But this is only because register_new_user() and wp_insert_user() perform almost identical error checks (the former does more, actually).  However, the errors generated in register_new_user() can all be suppressed by plugins via the 'registration_errors' hook.  However, some those same error checks will then be performed in wp_insert_user() and thus return a WP_Error (without a way to suppress those).

Related issues aside, the fact of the matter is that wp_create_user() can return a WP_Error object and register_new_user() can't handle it.  The fix is simple and attached.
",coffee2code
Future Releases,14767,wp_create_user() does not check for a valid email address,,Users,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-02T21:38:23Z,2010-12-01T19:04:25Z,"When creating a new user an invalid email address (for example user@) will result in a zero-length string in the email field of the users table. If another new user is subsequently created with another invalid email address the error returned is ""This email address is already registered.""

It would be better for wp_create_user() to check if a valid email address has been given and return a more descriptive error. I attach a patch file for wp-includes/registration.php to include this functionality.",mrwiblog
Future Releases,14308,wp_insert_user in 3.0 is not backwards compatible,,Users,3.0,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-07-14T21:32:40Z,2010-12-08T19:20:34Z,"Prior to WP3.0 the function wp_insert_user would always return an integer or falsy on failure.  In 3.0 this function can return either an integer, or an instance of WP_Error.   This behavior is not backwards compatible and can result in bad results.

A function that expects an integer return value will treat this WP_Error instance as an integer, which results in a '1'.  This is the id of the administrator, resulting in possible corruption of the admin account.   In particular, calling wp_update_user() with this WP_Error value will cast the error to (int) and operate on the administrator.  First line of wp_update_user:

   $ID = (int) $userdata['ID'];

Possible resolutions:
  
 best: don't return WP_Error from wp_insert_user - this is not backwards compatible.  
 otherwise: check for is_wp_error() in wp_update_user(), and every other function that takes a user id.
",ahupp
Future Releases,22712,Admin using deprecated valign attribute,,Validation,3.4.2,normal,normal,Future Release,defect (bug),new,has-patch,2012-12-04T06:54:10Z,2013-01-18T23:38:46Z,"Hi,

I noticed when I validated one of my plugins' admin pages, I received approx. 40 error messages regarding the use of ""v-align:top;"" within the css structure.  (Please see attached screenshot)

Is there a way to use a different css to target these elements instead of the deprecated v-align usage?

Thanks!",josh401
Future Releases,16135,Invalid markup in administration pages,,Validation,3.1,normal,minor,Future Release,defect (bug),new,has-patch,2011-01-07T10:31:38Z,2011-02-09T16:37:53Z,There still remain (related to #15287) some trivial validation errors in pages in wp-admin. I have attached two tiny patches that fix some of them.,wahgnube
Future Releases,15204,JavaScript Validation should trim values and set focus on invalid field,,Validation,3.1,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-10-24T15:46:28Z,2011-01-13T21:09:02Z,"If invalid fields are found after validation, focus should be placed on the first invalid field. Field values should be trimmed to check for truly empty values.

Also worth noting, the (mostly same) validateForm is located in both common.js and wpAjax.js.",batmoo
Future Releases,13919,$pagenow / vars.php refactoring / Move $pagenow generation into it's own function,,Warnings/Notices,3.0,normal,normal,Future Release,defect (bug),new,close,2010-06-16T14:03:48Z,2011-03-23T19:35:07Z,"In {{{wp-include/vars.php}}} an unset variable is passed by referecence to {{{preg_match()}}} in mutliple places.

The same code-fragment where that problem is located does poisen the globale variable table with temporary variables as well.

To prevent these problems, the variable needs to be set prior to be passed to preg_match and the code fragment needs to be refactored in it's own function.

This might be helpful a bit as well when we start to free the codebase from hardencoded {{{/wp-admin/}}} admin directory definitions.",hakre
Future Releases,23032,Call get_page_hierarchy without passing by reference in wp-includes/rewrite.php page_uri_index,,Warnings/Notices,3.0,normal,minor,Future Release,defect (bug),new,has-patch,2012-12-21T01:06:13Z,2013-05-16T12:38:59Z,"  PHP Strict Standards:  Only variables should be passed by reference in wp-includes/rewrite.php on line 825

Due to &$pages in the function declaration.
{{{
function get_page_hierarchy( &$pages, $page_id = 0 )
}}}

Instead of calling get_page_hierarchy with the full $wpdb->get_results as the arg, save the get_results to a variable and pass that to get_page_hierarchy.


{{{
$pages = $wpdb->get_results(...)
$posts = get_page_hierarchy( $pages );
}}}


",Askapache
Future Releases,22587,Cast image sizes to array before looping,,Warnings/Notices,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-25T22:02:49Z,2012-11-27T05:11:01Z,"If someone doesn't filter the `image_size_names_choose` filter correctly, or uses some helper function like `__return_false` if they don't want to display any image sizes, a warning is thrown.

The `$sizes` var should be cast to an array before looping to avoid this warning.",griffinjt
Future Releases,20793,Illegal string offset 'public' in wpmu_create_blog(),,Warnings/Notices,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2012-05-30T16:18:53Z,2012-05-30T16:18:53Z,"If $meta is not passed and left as default empty string then:

{{{
update_option( 'blog_public', (int)$meta['public'] );
}}}

will throw a notice.",duck_
Future Releases,17328,"In User Profile, Undefined property: WP_User::$rich_editing line 189 user-edit",,Warnings/Notices,3.2,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-05-05T05:00:24Z,2011-05-23T08:29:51Z,"Notice: Undefined property: WP_User::$rich_editing in C:\web\wpbeta\wp\wp-admin\user-edit.php on line 189
/>",anmari
Future Releases,21031,Orphaned comments emit debug notices in dashboard and comments lists,,Warnings/Notices,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-21T04:11:54Z,2012-06-21T07:19:14Z,"map_meta_cap is not prepared to handle missing or invalid post ID's. To duplicate this, delete a post from the posts table without deleting its attached comments, then visit the admin dashboard with the recent comments widget visible.

The comments list table exhibits a similar issue, where the $post global is assumed to be set and valid.

This isn't something that happens naturally in WordPress core, but is something plugins are able to do directly to the database, which results in orphaned comments. The attached patches only suppress debug notices PHP spits out, and does not directly address the issue of what to do with orphaned comments, should a plugin choose to do this.",johnjamesjacoby
Future Releases,23428,comments_open causes PHP notice in certain cases,,Warnings/Notices,2.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-08T21:51:39Z,2013-02-10T15:59:50Z,"when `comments_open()` is called for a non-existant post (either a bad ID, or no ID passed and called from a non-single page), a PHP notice is caused.  Ideally, plugins shouldn't be doing this, but a simple null check in `comments_open()` fixes the problem.",willnorris
Future Releases,18730,media_sideload_image() doesn't handle dynamic image url's well,,Warnings/Notices,2.9,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-21T10:49:11Z,2012-08-23T20:17:02Z,"Example URL: http://www.tumblr.com/photo/1280/10464566223/1/tumblr_lrum2xzkpC1r3z8e3

As a result, the preg_match() for the file extension fails and issues a notice (no file extension in that url, although the redirection location does have).

The handling of a download failure also seems hairy, upon failure, it still attempts further importing before loading - I haven't looked into that too far.",dd32
Future Releases,14893,"wp_inactive_widgets sidebar forgotten, then does notice in /wp-admin/widgets.php",,Warnings/Notices,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-18T07:24:45Z,2011-01-13T04:31:00Z,"The 'wp_inactive_widgets' is not initalized but used later on.

Can be fixed easily by adding it while the array get's initialized.",hakre
Future Releases,12722,Concurrent editing of widgets,azaozz,Widgets,,normal,normal,Future Release,defect (bug),new,has-patch,2010-03-26T18:07:46Z,2013-04-25T05:39:22Z,When two admin users edit widgets at the same time which ever one saves last wins.  I think we'd need something like the post edit lock to be able warn users when someone else is already editing widgets.,josephscott
Future Releases,20770,Introduce AJAX response message,,Widgets,3.4,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-05-29T02:34:09Z,2012-07-05T23:45:10Z,"when clicking on Save button of a widget, a error should appear if the user is logged out.

So after clicking the button the wpspin animated images disappears and nothing happens. This can be a problem if the current user think he is logged in and he is not, the settings just will not be saved.

Sometimes the server is not working.

Need to adjust the javascript code and php:
in php we can use die function : die('1') or die('success');

in javascript something like this: 			
{{{
$.post(ajaxurl, data, function(response){
   if (response === 'success') {} else { alert('Fail to save'); } 
});
}}}

http://wpimpact.com/wp-content/uploads/2012/05/Untitled-4.png
",alexvorn2
Future Releases,15060,Removing title on widget doesn't modify in-widget-title span,,Widgets,,normal,normal,Future Release,defect (bug),new,has-patch,2010-10-07T17:09:22Z,2011-01-13T07:38:41Z,"In the widget editor, widgets with titles have this title shown in the widget editor container title. For example:

{{{
Text: Sample Widget
}}}

When a widget is first modified and saved, adding a title will cause this widget editor container title to update via JS to reflect the title update. Subsequent modifications of the title will also be reflected. However, if the title is removed, the previous title will remain.

Looking at the code shows that the in-widget-title span that holds this widget editor container title is only updated if the title value is not empty. This is easily tested by adding a Text widget, giving it a title, clicking Save, confirming that the title is reflected in the container, removing the title, and clicking Save again.

The supplied patch modifies the JS that handles this process and causes it to always update the in-widget-title span, even when the title entry is empty or missing.",chrisbliss18
Future Releases,17453,Some default widgets break XHTML pages,,Widgets,3.1.2,normal,major,Awaiting Review,defect (bug),new,has-patch,2011-05-16T10:47:49Z,2011-05-16T10:47:49Z,"Some default widgets use HTML named character references, which breaks webpages when served as application/xhtml+xml.",peaceablewhale
Future Releases,16773,Unescaped preg_match breaks with PHP 5.3 Namespaced Widget Classes.,,Widgets,3.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-03-06T13:31:25Z,2012-11-28T17:05:18Z,"In file '''/wp-admin/includes/widgets.php''' at line '''118''' in function '''next_widget_id_number''' we have:

{{{
preg_match( '/' . $id_base . '-([0-9]+)$/', $widget_id, $matches )
}}}

It generates very ugly warnings ''for Namespaced Widget Classes'' as it should cuorrectly be:

{{{
preg_match( '/' . preg_quote($id_base, '/') . '-([0-9]+)$/', $widget_id, $matches )
}}}

Thanks.

'''PS''': ''I think you should do a whole sanity check regarding use of Namespaces and Closures. I'm currently switching completely to PHP 5.3 style and I'll keep you updated if I find other... problems.''",5ubliminal
Future Releases,14686,Widget Instance Form Update Bug,,Widgets,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-08-24T21:13:23Z,2013-04-02T10:57:57Z,"Hi.

When dragging and dropping a widget into a sidebar the widget form doesn't get properly updated, unless you manually press the ""Save"" button. However the widget instance data is saved (you can see the widget in the frontend even if you don't press 'save').

This problem is noticeable when you're developing a widget and want to display some widget options in the form based on the widget's location or position. You can't do this because '''$widget->id''' or '''$widget->number''' appear to be initialized within the form() function only after you press Save...

I can provide the code of a test widget if necessary
",digitalnature
Future Releases,19450,the_widget won't replace the widget class if not using the default sidebar arguments,,Widgets,3.2.1,normal,minor,Future Release,defect (bug),new,has-patch,2011-12-05T21:29:41Z,2012-04-27T19:31:04Z,"

When using the_widget(), the $before_widget argument only receives the widget class if using the default sidebar arguments...

on lines 1129 - 1130 of wp-includes/widgets.php (wp 3.3 rc 1)


{{{
$before_widget = sprintf('<div class=""widget %s"">', $widget_obj->widget_options['classname'] );
$default_args = array( 'before_widget' => $before_widget, 'after_widget' => ""</div>"", 'before_title' => '<h2 class=""widgettitle"">', 'after_title' => '</h2>' );

$args = wp_parse_args($args, $default_args);
}}}


could be replaced by:


{{{
$default_args = array( 'before_widget' => '<div class=""widget %s"">', 'after_widget' => ""</div>"", 'before_title' => '<h2 class=""widgettitle"">', 'after_title' => '</h2>' );

$args = wp_parse_pargs($args, $default_args);
$args['before_widget'] = sprintf($args['before_widget'], $widget_obj->widget_options['classname']);
}}}
",Felipelavinz
Future Releases,18281,Browse Happy API detection bugs,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,has-patch,2011-07-28T14:26:52Z,2012-09-28T16:03:01Z,"A few bugs we've noticed with the Browse Happy API so far:

1. Mobile versions need to be labeled as such. Specifically, Mobile Safari, Opera Mini, and the Galaxy tablet, I believe. This should mean that the browser doesn't match with our list of five.

2. For IE, we need to be looking at the Trident version numbers. Problem is, IE9 might be using a compatibility UA, which means it would get identified as IE7. Trident/5.0 is IE9, Trident/4.0 is using IE8.

I think the architecture of the API code needs some love. It served its purpose, but it's a bit inflexible for expansion. (See the Kindle hack and such.)

I'm going to open source this code onto http://code.svn.wordpress.org. It would be fantastic if some people can contribute to it and make it the best possible.",nacin
Future Releases,17541,Blogger-XMLPRC API does not work with Multisite/SSL/DMZ combination,westi*,XML-RPC,3.2,normal,major,Future Release,defect (bug),accepted,has-patch,2011-05-23T07:26:29Z,2012-12-14T23:12:02Z,"I have the following setup:
My WordPress Blogs (multisite) are set up behind a firewall that exposes the public address via SSL. Inside my DMZ I'm only using HTTP, so that's what WordPress sees. When I now try to access the blogger.getUsersBlogs XMLPRC-API, I get an empty result back.

I analyzed the WordPress source code and found out that the blogger.getUsersBlogs method in the file wp-includes\class-wp-xmlrpc-server.php uses another XMLRPC call to the wp.getUsersBlogs method in case of the multisite. I further checked and found out that this appears to be the only case in which WordPress executes a remote call itself to sevice the request. I then replaced the logic in _multisite_getUsersBlogs with the multisite part from wp_getUsersBlogs and it worked.

I aso found an issue that might be related: http://core.trac.wordpress.org/ticket/16402
But since the source code in the trunk still uses the regular IXR_Client, I'm not sure if this would fix the issue.

I attached my fix as a patch, but it's not refactored to remove code duplication since I don't have a dev-environment set up for WordPress.

Michael",michael_k
Future Releases,23017,Support for fatal errors on XML-RPC,,XML-RPC,3.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-20T11:24:27Z,2013-03-19T11:22:13Z,"Similar to #16748, when a fatal error occurs, PHP will output some HTML code which at best is confusing for XML-RPC clients.

Using the `shutdown` action, we could die more gracefully and return a XML-RPC formatted error",koke
Future Releases,12518,XML-RPC newMediaObject should try to work out mime-type if not supplied,josephscott,XML-RPC,,normal,normal,Future Release,defect (bug),new,has-patch,2010-03-04T22:00:03Z,2010-03-07T10:10:18Z,"At least one XML-RPC client (MaStory on Maemo) does not set the type parameter on uploaded objects. This means we don't create appropriate thumbnails correctly.

Given some clients are on fairly low-power, simple devices, it's probably worth Wordpress attempting to determine the mime-type, especially as functions calls we /already/ make on attachments will give us that information already for the common-case of image uploads.",jonquark
Future Releases,21292,XML-RPC: wp_upload_bits should act like wp_handle_upload,westi,XML-RPC,3.0,normal,normal,Future Release,defect (bug),assigned,has-patch,2012-07-17T07:01:23Z,2013-05-07T11:37:28Z,"At this moment there isn't a check for file size when uploading an image through the XML-RPC. The reason is that the method wp_upload_bits is used. This only checks it does is if the file size is to big for a network installation.

The function check_upload_size() is something what you want except that it will use wp_die() if there is an error like this. The function is used as a filter: wp_handle_upload_prefilter. Which only get applied in the function wp_handle_upload. 

We should probably change check_upload_size() a bit so it doesn't use wp_die() but does it somewhere else.

related: #6559 and #21085",markoheijnen
Future Releases,18681,XMLRPC wp.getPageList and auto-draft pages broken dates,,XML-RPC,3.2.1,normal,major,Awaiting Review,defect (bug),new,has-patch,2011-09-16T08:18:20Z,2011-09-16T09:41:26Z,"XMLRPC wp.getPageList method returns all pages, including auto-draft ones.

auto-draft pages have post_date_gmt date as '0000-00-00 00:00:00', resulting in invalid dates in XMLRPC reply.

{{{
<name>date_created_gmt</name>
<value><dateTime.iso8601>-0001113TT0::0::00</dateTime.iso8601></value>
}}}

Remove auto-drafts from wp.getPageList method or fix post_date_gmt somehow.",skithund
Future Releases,15072,blogger.getRecentPosts drops backslashes,,XML-RPC,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-10-08T16:25:05Z,2011-01-13T09:08:01Z,"I have posts on my site containing fragments like:

{{{
[latex]\neg r(a,b)[/latex]
}}}

But when I pull them down using emacs weblogger-mode, the backslash is always missing.  I edebug'ed way down into the bowels of the code and looked at the raw data arriving in the process buffer, and it was missing the backslash, so I'm pretty certain this is a WP bug and not something in emacs or weblogger-mode.  Weblogger-mode is using the blogger API.  I tried several other clients, and they seemed to work, but I assume they're using a different protocol (e.g. atom).",daveabrahams
Future Releases,3052,pingback_ping() function displays wrong content in pingback-display in some occurances,josephscott,XML-RPC,2.0.4,normal,normal,Future Release,defect (bug),reviewing,close,2006-08-19T13:41:52Z,2010-04-30T02:29:11Z,"If the blog uses a template where the post-meta-data like the trackback-link and such is wrapped in a ""div"" tag but not in a ""p"" tag, the pingback will incorrectly display the content surrounding the meta-data-links, not the content of the pinging post.
if there is a ""related posts"" navigation on the page (possible with the [http://www.neato.co.nz/ultimate-tag-warrior/ ultimate-tag-warrior] plugin), or any other links inside the page that link to other posts from the same blog (even the ''next post'', ''previous post'' links), pingbacks will display the content around the first of these links, not the contents around the ""pinging"" link inside the post.
 
'''Possible fix:'''
on line 1192 in xmlrpc.php:
{{{$linea = preg_replace( “/ < (h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^>]*>/”, “\n\n”, $linea );}}}
the ""div"" tag is not recognized.
changing that to:
{{{$linea = preg_replace( “/ < (h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body|div)[^>]*>/”, “\n\n”, $linea );}}}
fixed the problems for my blog.
Frankly I'm not that ""deep"" into regular expressions to fully understand what's going on inside the pingback_ping() function - but after inserting ""div"" to the line above my pingbacks display the correct excerpt of the pinging post, which they failed to do  before. 
",webrocker
Future Releases,23020,wp.getPageList should act like wp.getPages,,XML-RPC,2.2,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-12-20T13:47:13Z,2012-12-30T15:07:53Z,"I know that wp.getPageList is obsolete, but I think it should act like wp.getPages At the moment wp.getPageList returns even the trashed pages and doesn't return the status of the page. 

The weird behavior i've seen with wp.getPageList on a third-party client is shown below:
- Refresh the pages list.
- The Page 'A' is in the list.
- Select the page 'A' and delete it.
- Refresh the pages list and the page is still there. Doh!",daniloercoli
Future Releases,17604,wp.uploadFile overwrite doesn't work,,XML-RPC,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-29T10:27:21Z,2012-11-08T01:52:09Z,"Removing the following lines from the function ''mw_newMediaObject'' file ''class-wp-xmlrpc-server.php'' solves the problem:

{{{
$filename = preg_replace('/^wpid\d+-/', '', $name);
$name = ""wpid{$old_file->ID}-{$filename}"";
}}}

Why are these lines there anyway? overwrite is overwrite.

This, presumably, bug exists in WP 3.1 too.",M66B
Future Releases,20986,xmlrpc.php should return http 405 for get requests (and not 200),,XML-RPC,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-16T06:39:12Z,2012-06-19T17:01:09Z,"{{{
$ curl -v http://raphaelhertzog.com/xmlrpc.php
[...]
> GET /xmlrpc.php HTTP/1.1
 
< HTTP/1.1 200 OK
[...]
XML-RPC server accepts POST requests only.
}}}

The error returned should be reflected in the HTTP return code: it should return HTTP 405 (Method not allowed) instead of 200 (OK).

This has been originally reported in the Debian bug tracking system: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=598124",rhertzog
Next Release,16889,Having a location header does not mean that there should be a redirection.,,HTTP,3.1,normal,normal,3.6,defect,reopened,has-patch,2011-03-18T16:49:43Z,2013-03-05T04:04:17Z,"Having a location header does not mean that there should be a redirection.

Automatic redirection depends foremost on the response code, not not having a location header.

See the descrption of #16888 for related RFC links.

Related: #11305",hakre
Future Releases,16906,Bogus call to wp_kses_no_null(),,General,3.1,normal,normal,Awaiting Review,defect,new,has-patch,2011-03-20T21:44:21Z,2011-03-20T21:45:23Z,Nullchars and \ have been already replaced in string in question one line above. See [http://core.trac.wordpress.org/browser/tags/3.1/wp-includes/kses.php#L943 wp_kses_no_null()].,hakre
Future Releases,16907,Redirecting w/o using wp_redirect();,,General,3.1,normal,normal,Awaiting Review,defect,new,has-patch,2011-03-20T22:00:28Z,2011-03-23T20:38:20Z,Some places in worpdress core do not make use of the wp_redirect() function.,hakre
Future Releases,16890,Mutliple Location response headers can trigger notices,,HTTP,,normal,normal,Awaiting Review,defect,new,has-patch,2011-03-18T17:08:33Z,2011-03-18T22:42:40Z,"The current implementation for manual cUrl redirects (safemode / openbasedir restrictions, see #11305) will do notices and fail if a response contains more than one location response header.

Technically this is possible.

In the RFC I have not found any definition so far wether or not this is violating any standard or not not. Next to that I could gather no information how a HTTP client should interprete such a response.

For my fix I will prefer the first location header over any additional one.",hakre
