﻿ticket,summary,owner,component,_version,priority,severity,milestone,type,_status,workflow,_created,modified,_description,_reporter
21977,"Allow 0, NULL and empty string values for 'parent'.",,XML-RPC,,normal,normal,Future Release,defect (bug),new,dev-feedback,2012-09-23T18:28:04Z,2012-11-07T21:51:29Z,"We must allow 0, NULL and empty string values for 'parent' in wp_newTerm and wp_editTerm",sam2kb
18310,Attachments inserted with NULL value for GUID,,XML-RPC,3.2.1,normal,normal,3.6,defect (bug),new,dev-feedback,2011-08-01T13:30:01Z,2013-05-07T14:08:16Z,"This is the error I get when trying to post via xml-rpc interface:

Empty delimiter in .../wp-includes/class-wp-xmlrpc-server.php on line 2469 Warning:  Cannot modify header information - headers already sent by (output started at .../wp-includes/class-wp-xmlrpc-server.php:2469) in .../webraces/wp-includes/class-IXR.php on line 471

The line 2469 of class-wp-xmlrpc-server.php looks like:

if ( strpos( $post_content, $file->guid ) !== false )

Apparently $file->guid has invalid value as this is fixed by inserting

if($file->guid && !($file->guid == NULL))

right above the line in question. See also http://wordpress.org/support/topic/windows-live-writer-no-go-with-wp-312",docfish
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
12939,Counterpart to content_save_pre hook not called when getting post content via API,josephscott,XML-RPC,2.9.2,normal,normal,Future Release,defect (bug),reviewing,dev-feedback,2010-04-09T13:53:57Z,2011-04-05T08:50:45Z,"When a post is submitted either through the web editor interface or from an API call to newPost or editPost, the content of the post is inevitably passed through the content_save_pre filter.

And when a post is opened for editing in the web editor, the content is passed through filters such as the_editor_content and  content_edit_pre.

However, when a post is fetched for editing via XMLRPC API calls such as getPost or getRecentPosts, the content_edit_pre filter is never reached.

This leads to a situation where whatever massaging of the content that a plugin may peform on the way into the database is not reversed on the way back out, for clients of the API. A concrete example of this problem is with the popular Syntax Highlighter Evolved:

http://www.viper007bond.com/wordpress-plugins/syntaxhighlighter/

This plugin performs encoding of the post content before it is stored in the database, and it counts on being able to decode that content by adding filters to hooks such as the_editor_content. However, none of these filters are reached via the API, leading to ""corrupted content"" when users try to edit posts from API clients such as the iPhone WordPress app, or my desktop editor, MarsEdit.

(My previous bug report #10802 exhibits the same symptoms of this bug, but this is a different cause).

In summary:

1. WordPress needs to establish a clear, baseline hooks for massaging content before it is saved to the database, and for un-massaging the content on the way out of the database. Currently there seems to be uncertainty about which hooks need to be overridden and under what circumstances. It seems to me that content_save_pre and content_edit_pre are probably good candidates for this.

2. Whatever hooks are established as the guarantees need to be applied once and only once in both the web-based editing scenario, and in the API editing scenario.

I think that having a well documented pair of hooks for this purpose that works identically in the web editing and API editing cases will do a lot to ensure correct behavior when plugins are installed that massage content, and will make it easy for plugin developers to ""do the right thing"" without relying on hooks that are specific only to the web editor, or to the API.
",redsweater
20070,Deprecate Blogger XML-RPC Methods,,XML-RPC,3.3.1,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2012-02-18T18:32:26Z,2012-02-18T18:32:58Z,"The XML-RPC API supports the legacy Blogger API methods, but these methods have apparently not been very well tested or maintained. 

Given that the `wp.*` XML-RPC namespace now covers everything that the Blogger API does, I suggest the blogger methods be officially deprecated with an eye towards removing them in a future version. 

At the very least, the MetaWeblog API should be used by clients instead, as it was explicitly designed to enhance and supersede the Blogger API.",maxcutler
14452,Duplicate check for comments: Inappropriate errorhandling for xmlrpc,,XML-RPC,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-07-29T08:44:34Z,2012-06-23T22:48:28Z,The duplicate check for comments just dies in case a dulicate is detected(see wp-includes/comment.php around line 550). This ends up with a html page delivered in any cases. When accessing through xmlrpc this leads to the problem that this html page is send back to the xmlrpc client instead of a proper xmlrpc formated message.,mrutz
23219,Duplicate enclosure metadata created because of disagreement on meta field formatting,,XML-RPC,2.8,normal,normal,3.6,defect (bug),new,needs-unit-tests,2013-01-16T21:48:42Z,2013-04-29T03:10:09Z,"Years ago I reported an issue in Ticket #7773 that the enclosures would be duplicated each time the post was edited and resubmitted through the XMLRPC API. That bug was fixed in [10383] but a nuance was overlooked that causes this kind of duplication to occur with every edit if the ORIGINAL custom field meta for the enclosure was generated by the automatic content-scraper in WordPress.

If a post with links to ""enclosure"" type files is submitted either through the web interface or through the XMLRPC API, it will automatically generate the insertion of enclosure metadata as a custom field with fragile-structured content of the format:

{{{add_post_meta( $post_ID, 'enclosure', ""$url\n$len\n$mime\n"" );}}}

But the XMLRPC implementation, where the attempt is made to avoid generating duplicates, uses a slightly different fragile template, with no trailing newline:

{{{$encstring = $enclosure['url'] . ""\n"" . $enclosure['length'] . ""\n"" . $enclosure['type'];}}}

To make a long story short: the attempt to detect an existing enclosure on the post always fails because the existing enclosure string has a newline, and the XMLRPC-based one does not.

I propose that this be fixed by at enacting 1 and probably also 2:

1. Make sure duplicate detection method insensitive to trailing whitespace. This will fix the bug in a way that doesn't require retroactively ""fixing"" the existing stored metadata with trailing newline.

2. Change the format of the ""scraped"" enclosure generation to match the format used by XMLRPC. Either with or without the newline would probably be fine, but it seems cleaner to stick with the one that doesn't require a trailing newline, just three blobs of text separated by newlines. It also seems lucky that the last blob is a MIME type and thus would never have a meaningful newline at the trailing end.

I'm attaching a patch that achieves both of these goals. I report this to the XML-RPC component because that's the impact is, even if some of the issue is in the default scraping code from functions.php.

I'm a little less certain about how to tackle a unit test for these cases, but if somebody wants to point me in the right direction I can take a hack at that too.
",redsweater
16980,Empty Values are ignored by class-ixr.php,,XML-RPC,3.1,normal,major,Awaiting Review,defect (bug),new,dev-feedback,2011-03-27T12:34:47Z,2011-05-25T05:19:53Z,"I tried to fix the following bug #10599 
Found out when you send and empty value via xmlrpc it converts it to null value.

 Say you send and array of arguments for mw_editpost, set

{{{
$content_struct[mt_keywords] = '';
}}}
 
IXR client passes a null value instead of an empty value.

In mw_post method consider this statement 

{{{
$tags_input = isset( $content_struct[mt_keywords] ) ? $content_struct[mt_keywords] : null;
}}}


Even if you send an empty value this statement fails because 


{{{
$content_struct[mt_keywords]
}}}
 
is set to null by IXR client.",nprasath002
24408,HTTPd Error Log: body.xml:1: parser error : Document labelled UTF-16 but has UTF-8 content,,XML-RPC,3.5.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-05-24T03:10:11Z,2013-06-09T16:51:09Z,"I run a few pt_BR blogs and I regularly see ""body.xml:1: parser error : Document labelled UTF-16 but has UTF-8 content"" in the Apache error log

I finally found a clue why this happens:

(because) ""...é and á characters which are not valid UTF-8 according to Xerces. I can’t send the text as UTF-16 because XML-RPC doesn’t allow it – it only allows USASCII. So I think I have to find any non USASCII characters and convert them to their XML Hex equivalent."" (from http://tersesystems.com/2003/04/29/xml-rpc-encoding-of-utf-16)

So the proper handling seems to be ""find any non USASCII characters and convert them to their XML Hex equivalent.""",crashnet
21098,Out of memory errors in XML-RPC,,XML-RPC,3.4,normal,major,Awaiting Review,defect (bug),new,dev-feedback,2012-06-28T13:48:53Z,2012-09-23T19:43:33Z,"Since WPiOS 3.0 and WordPress 3.4 we're getting a lot of ""Out of Memory"" reports on XML-RPC.

See http://ios.forums.wordpress.org/topic/couldnt-sync-posts-after-update-to-300

XML-RPC clients have no idea of the memory available, and even if they did it'd be hard to translate that to ""how many items can I request""

Some ideas:

* Can we try raising the memory limit on xmlrpc.php, or at least for system.multicall?
* Setting limits on the number of items returned if we can predict that they're going to need too much memory. Currently asking for the latest 100 comments can trigger an out of memory error in some hosts.
* Fail more gracefully: return an XML-RPC error instead of a HTTP 500 Internal Server Error
* Any hints on debugging where memory is going and if there are any leaks?",koke
10699,Password Expose Bug in XML-RPC Debugging,ryan,XML-RPC,,normal,normal,Future Release,defect (bug),new,close,2009-08-29T01:46:43Z,2012-09-17T06:20:27Z,"Though this may not effect many users, I was testing something through xmlrpc with logging enabled and came across something that might create a security problem. 

If xmlrpc logging is enabled WP logs the password from the request struct in an unencrypted format. 

Now I understand that not many will open up xmlrpc logging on production blogs, could it be possible that WP just strikes out the password before logging it to the file as it is always the third param so easy to do that, this is because people who might have xmlrpc logging enabled may not change the default log filename and location so anyone can simply run a robot to check for http://blogurl.com/xmlrpc.log and farm passwords (now this may not affect blogs that have WP installed in root since it writes to ../xmlrpc.log, so essentially outside the www access dir, but blogs with WP installed in sub directories will be affected). 

Don't know how critical this is as users have to manually edit the file to enable xmlrpc logging so it might be a non critical bug.",keithdsouza
24280,Privilege check in mt_publishPost,,XML-RPC,3.0.3,normal,normal,Awaiting Review,defect (bug),new,,2013-05-07T17:58:02Z,2013-05-07T23:59:08Z,"The mt_publishPost function requires both the publish_posts and edit_post privileges to publish a post.

Elsewhere, the publish_posts privilege is sufficient to publish a post.",fgauthier
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
17920,Unnecessary code in wp.getPage,,XML-RPC,3.2,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2011-06-28T16:33:00Z,2012-06-24T20:22:32Z,Pages Does not have categories,nprasath002
10764,"XML- RPC, blogger_editPost, Publish Status not working",josephscott,XML-RPC,,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-09-10T00:58:09Z,2012-06-23T20:39:22Z,"In the blogger_editPost function in xmlrpc.php is not working properly.  Currently you cannot change publish status.  It looks like we are missing a line of code.
{{{

$post_status = ($publish) ? 'publish' : 'draft';

}}}

When I inserted this line into the function before the

{{{
$postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt');
}}}
I was able to gain control of the publish status.
",bobby_drk
20630,XML-RPC Extending documentation for methods called with a single param,,XML-RPC,,normal,normal,Awaiting Review,defect (bug),new,needs-docs,2012-05-07T18:47:46Z,2012-05-07T19:06:01Z,"When an XML-RPC method is called with a single parameter, the method will receive the value directly instead of receiving an array with a single value. This seems to be intended, though unexpected, behavior. The documentation should be updated to mention this.

The related code is inside IXR_Server->call().",scott.gonzalez
22936,XML-RPC WordPress api setOption double escapes args,,XML-RPC,,normal,major,Awaiting Review,defect (bug),new,,2012-12-14T13:46:35Z,2012-12-15T15:31:10Z,"Parts of the xml-rpc wordpress api are not usable, as they doublequote strings. e.g. `Munich's` becomes `Munich\\'s`.

wp.setOptions($args) escpapes all args and calls update_option() which is then calling mysql_real_escape_string(), leading to a double escaping. To solve this options should not be escaped in wp-setOptions() function.


Here the callStack showing the 2nd escaping:
{{{
wp-includes/wp-db.php.wpdb->_real_escape:884
wp-includes/wp-db.php.wpdb->escape_by_ref:950	
wp-includes/wp-db.php.array_walk:0	
wp-includes/wp-db.php.wpdb->prepare:1003	
wp-includes/wp-db.php.wpdb->update:1365	
wp-includes/option.php.update_option:258
}}}",jachzen
16985,XML-RPC endpoint set the datetime when saving a Draft,,XML-RPC,3.1,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2011-03-28T13:33:46Z,2012-06-24T00:15:12Z,"When uploading a draft post from one of the WordPress mobile apps the post date is set to the current time/date, even if the datetime field is not specified on the client request.
This could cause issues, because when you change the post status to ""publish"" it will be published using the date set during the first upload.

On the web dashboard if you do not set the post datetime explicitly, it is not set and hitting publish will then populate the datetime field with the current time.

The same happens if you start a draft on the web and then you publish it using any mobile apps.

details here: http://ios.trac.wordpress.org/ticket/826",daniloercoli
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
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
17981,XML-RPC wp.getComments should work for non-admins,,XML-RPC,3.2,normal,normal,Awaiting Review,defect (bug),new,commit,2011-07-04T22:23:03Z,2012-03-08T13:35:11Z,"Right now, if the caller doesn't have the moderate_comments permission, the XML-RPC call returns a 401 error. 

A more graceful alternative would be to return the approved comments. The user may not be able to moderate, but still should be able to read/reply",koke
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
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
17382,XMLRPC wp_getUsersBlogs Scalability,,XML-RPC,3.0.1,normal,normal,Awaiting Review,defect (bug),new,,2011-05-11T20:32:15Z,2012-05-13T16:16:46Z,"If there is a root blog with many sub blogs on it and a user that is an admin on each sub blog, then when the when the XML RPC method wp_getUsersBlogs() is called it does not scale very well. My PHP memory_limit setting was 128MB, and the XML RPC request died when a user was a member of 230+ blogs. I noticed that the number of queries made to the database for a single user that has many blogs that they are an admin is very high.

Affected line: http://core.trac.wordpress.org/browser/tags/3.0.1/xmlrpc.php#L443

I don't know exactly how the code would have to change so I am not providing a patch.",bmorneau
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
18998,date/time handling in xml-rpc assumes GMT value,,XML-RPC,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-10-19T08:09:16Z,2012-01-04T17:43:57Z,"When trying to set post publication times via XML-RPC I noticed that the dateCreated value was assumed to be GMT. 

one section of code:
{{{
                // Do some timestamp voodoo
                if ( !empty( $content_struct['date_created_gmt'] ) )
                        $dateCreated = str_replace( 'Z', '', $content_struct['date_created_gmt']->getIso() ) . 'Z'; // We know this is supposed to be GMT, so we're going to slap that Z on there by force
                elseif ( !empty( $content_struct['dateCreated']) )
                        $dateCreated = $content_struct['dateCreated']->getIso();

                if ( !empty( $dateCreated ) ) {
                        $post_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
                        $post_date_gmt = iso8601_to_datetime($dateCreated, 'GMT');
                } else {
                        $post_date = current_time('mysql');
                        $post_date_gmt = current_time('mysql', 1);
                }

}}}

in the following part:
{{{
                if ( !empty( $dateCreated ) ) {
                        $post_date = get_date_from_gmt(iso8601_to_datetime($dateCreated));
                        $post_date_gmt = iso8601_to_datetime($dateCreated, 'GMT');
                } else {
}}}

$post_date is set to GMT (get_date_from_gmt()) value of $dateCreated (assuming it's GMT)
and then $post_date_gmt is set to GMT ... 

this forces both values to be identical and assumed to be GMT. this also breaks the ability to set the timezone in the value of dateCreated even though the ISO8061 spec allows it.

I've attached a patch to class-wp-xmlrpc-server.php which appears to fix this problem and allows future published posts to publish properly at the expected date/time.

to duplicate, use an XML-RPC client (I'm using a Perl script) to add a new post and set the dateCreated to a dateTime.iso8061 entity with the value of '20111019T19:05:00+0900' (or something equivlent for your timezone which would be easy to identify as an incorrect value if so.) the publish date of the new post will be the GMT value.

A workaround would be to do all the GMT conversion in the client prior to sending via XML-RPC, but that would make it seem that dateCreated and date_created_gmt will always be duplicate. I've included a patch in case this wasn't an intentional design decision.

",alien8
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
17270,strip_tags function in XML RPC needs replacing with regex,,XML-RPC,3.1,normal,normal,Awaiting Review,defect (bug),new,,2011-04-28T16:32:46Z,2011-04-28T16:32:46Z,"I've been working on a plugin that works with pingbacks, and I have come across a problem with a line in class-wp-xmlrpc-server.php which uses strip_tags. 

(line 3422 in WP 3.1):
$linea = strip_tags( $linea, '<a>' ); // just keep the tag we need

For some reason this function is not working properly at all on some templates (or that is the way it seems) and instead of returning all the <a> tags is cutting a lot of them out, making it seem to the server like there is no target link in the source URI, and thus returning a pingback fault 17 unnecessarily. And this means a large percentage of genuine pingbacks are failing without the user even knowing about it!

I suspect the function is having trouble with plugins that insert javascript near the header of the page, though it could be otherwise, as I have done a test to see what is left after this line is run, it returns some garbled javascript, no links at all from the post content (where the source links actually were), and then the menu links.

I have included a workaround in my new plugin:
http://wordpress.org/extend/plugins/pingchecker/
Basically it does a regex match for links in your content, then echoes them in a hidden div in the footer, making it much easier for the strip_tags function to actually find them. It works pretty well so I'm not fussed myself, but I thought it worth writing about..

This line really needs to be replaced with the regex match in the actual server code for future WordPress users too. I don't know regex myself, but I used sample code I found here (http://regexadvice.com/forums/thread/48395.aspx) for this regex expression, which seems to work really well.

In any case, strip_tags is not doing a reliable job at this and needs replacing. Hopefully this finds its way to the right person able to fix this. Thanks!",majick777
20201,wp.Options lies about the updatability of options.,westi,XML-RPC,3.4,low,normal,3.6,defect (bug),new,dev-feedback,2012-03-08T12:04:08Z,2013-05-07T12:44:07Z,"When an XMLRPC client calls this API we give it a `readonly` status for each of the options returned which lets it know whether or not the options are writable or not.

This status is hardcoded in the code and not capability aware so a user with only subscriber level access is given the impression that they can update options they can't.",westi
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
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
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
5461,Add ability to set description for XML-RPC file uploads,,XML-RPC,2.3.1,normal,normal,Future Release,enhancement,new,,2007-12-12T22:36:17Z,2009-06-13T03:01:40Z,It's been suggested that we provide a way to populate the description field for file uploads.  This is something that we could add to the wp.uploadFile method.,josephscott
20026,Adding a post_type filter in wp.getComments,westi,XML-RPC,,normal,normal,Future Release,enhancement,reviewing,needs-unit-tests,2012-02-12T15:48:53Z,2012-08-05T19:45:16Z,This will be usefull when with the new custom post type support in XMLRPC,nprasath002
24598,Allow custom headers in XML-RPC request,,XML-RPC,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-06-18T20:26:14Z,2013-06-18T20:32:51Z,"WordPress avails an override to the default `IXR_Client` object that uses its own `WP_Http` wrapper for making the request.  The wrapper itself is pluggable, but there are no filters before the call to `wp_remote_post` that allow developers to intercept and modify the request.

As a result, sending custom headers with the request (like cookies) requires developers in turn override `IXR_Client` with their own implementation in order to add the custom data.  One example, which specifically addresses sending cookies with the request, is https://gist.github.com/ericmann/5808805.

Instead, the built-in `WP_HTTP_IXR_Client` object should pass its header array through a WordPress filter before building the remote request.  Developers can hook in to this filter to add their own custom headers - be they cookies, authentication, language, or whatever.",ericmann
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
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
21085,Better XML-RPC media handling,,XML-RPC,2.3,normal,normal,Future Release,enhancement,new,dev-feedback,2012-06-26T22:40:22Z,2012-10-10T16:23:23Z,"In 3.4 there was a lot of improvements. For 3.5 I would like to see some major improvement in wp.uploadFile and metaWeblog.newMediaObject.

At this moment you can't insert a description, alternate text or caption. ( #5461/#18684 ). Also the file can't be attached to a post ( #13917 ).

The overwrite functionality also doesn't work ( #17604 ). Not sure why this exists since WordPress itself doesn't do this.

Also the current way isn't how WordPress does it internally. wp_handle_upload() doesn't get used (#6559).

There is also going on something wrong with mime types ( #12518 ).

Also the work from 3.4 should be implemented ( #6430 ).

Last thing is that WordPress normally also looks at the EXIF information. At this moment the XML-RPC also doesn't do that ( #18087 )

rarely related: #12493 - filter for wp_upload_bits",markoheijnen
22540,Drilling categories for relevant posts via XML-RPC,,XML-RPC,3.4.2,normal,major,Awaiting Review,enhancement,new,,2012-11-22T16:46:52Z,2012-11-23T22:17:25Z,"Hello WordPress,

Requirement for us was to drill down the category relevant posts, and I have implemented the solution using xmlrpc for the .net env using c#.

The trouble is there is no available option to filter using category for the posts.

So I have done following changes, please recommend if we can do any better to avoid the override of the change may be by upgrading the next version with it from WordPress version natively.

Describing the basic nitty-gritty with in :

After doing some cross referencing I was able to figure out adding following code shouldn't harm :

1: With in LLN#1374 function wp_getPosts( $args ) 
I added the filter option for category as follows on LN#1410

{{{
if ( isset( $filter['category'] ) )
    $query['category'] = $filter['category'];
}}}

I have done few tests and seems to be working fine, just its expects the categoryId to drill the category relevant posts for me.

I wonder if you could integrate this from WordPress.

2: Our second requirement was to get out of the box wpautop for the content, so we don't need to worry about adding <p><p/> tags.

hence the another change of code I had integrated with in the file is as following :

with in protected function _prepare_post( $post, $fields ) on LN#624 , I had added the wpautop call to surrounds to post_content as in follows :

{{{
'post_content'      => wpautop($post['post_content']),
}}}

Please guide or suggest how to avoid the override when upgrading the WordPress, one option is WordPress integrate these changes out of the box and until that we keep an eye and on ever upgrade keep doing the change.

Please feel free to reach me with any possible suggestions.

Regards,
Nidhi",nidhi.patel
18087,Extend mw_newMediaObject to include EXIF data,,XML-RPC,3.2,normal,minor,Awaiting Review,enhancement,new,,2011-07-12T19:24:09Z,2012-06-24T20:42:07Z,"Would it be possible to include the exif transfer when using mw_newMediaObject function via XMLRPC? Currently the image gets transfered into library but Title, Caption field remains blank.

I checked the uploaded file and it carries the exif, so it does not get striped in the process.",MYSTERYouse
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
21398,Live preview of new post/page via XML-RPC for mobile clients.,,XML-RPC,,normal,normal,Future Release,enhancement,new,,2012-07-27T10:13:47Z,2012-09-16T19:58:49Z,"We'd like to have the possibilty to load the 'live preview' for a post/page you're writing on a mobile client.
(New post not already ""synched"" with the server, or post edited within the mobile app).

The only solution that I can see at the moment is the following:
- Upload the post/page to the server with the status set to 'Draft'.
- Load the permalink of the post.
- Open the post in a webview by using the WP login form and the redirect_to parameter.
",daniloercoli
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
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
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
6430,WordPress 2.5 xmlrpc should return image thumbnail URLs in wp.uploadFile,jonquark*,XML-RPC,2.5,normal,normal,Future Release,enhancement,accepted,dev-feedback,2008-03-28T05:51:57Z,2012-06-23T19:59:51Z,"The xmlrpc call for wp.uploadFile (aliased to mw_newMediaObject) currently returns the URL of the uploaded file only. In WordPress 2.5, thumbnail files are automatically created. The xmlrpc API should provide a way to get the URLs of the thumbnail files, preferably in the returned hash from the wp.uploadFile call. 

That is, wp.uploadFile currently returns url = ""http://myhost/wp/wp-content/uploads/2008/03/myImage.jpg"". In addition, it should return ""thumbnailSmallUrl = ..."" and ""thumbnailMediumUrl = ..."". (I'm not sure if this would break MetaWeblog compatibility.)


Background:

WordPress 2.5 now automatically creates thumbnail images for uploaded image files according to the (maximum) sizes specified in the Miscellaneous settings page. When resizing, the aspect ratio is maintained, and the filenames are named for the exact size of the image. For example, if I upload:

dsc-0151.jpg

Using the default thumbnail settings of 150x150 and 300x300, these files will be created:
dsc-0151-300x199.jpg
dsc-0151-150x150.jpg

Note that the first filename for the medium thumbnail is called ""300x199"" not ""300x300"". It's thus difficult to guess the new thumbnail filename for the default settings.

Since these settings are user configurable, it's currently impossible for an xmlrpc client to guess the URLs of the thumbnails.
",mlossos
23866,Wordpress xmlrpc wp_getPosts filter for slug,,XML-RPC,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-03-26T20:09:31Z,2013-03-26T22:29:43Z,"When using the Wordpress xmlrpc, it is sometimes very useful to get posts based off of slugs rather than post id.

A use case for this would be synchronizing or migrating two Wordpress sites with the same posts, but with different databases and post ID's.


 ",SunWaves
21386,XML-RPC needs a user permission method,,XML-RPC,,normal,normal,Future Release,enhancement,new,,2012-07-25T18:33:24Z,2012-11-23T20:42:43Z,"At this moment when calling a XML-RPC method you will receive a error when the user can't do that method. 

What would be better if there is a way an app can retrieve the user permissions and act on that without the need to call the method.",markoheijnen
5310,XMLRPC interface should expose mechanism for listing and deleting media resources,josephscott,XML-RPC,2.3.1,normal,normal,Future Release,enhancement,new,,2007-11-02T21:34:24Z,2009-10-25T10:05:07Z,"Right now the XMLRPC interface supports the ""newMediaObject"" mechanism that is part of the MetaWeblog API, but lacks any method for inspecting or otherwise manipulating media objects.

I think to support a richer remote client experience, the XLMRPC interface should support at least a method for listing the media objects that have been previously uploaded (similar to what appears in the ""Browse"" tab of the wp-admin post editor), and for deleting a media asset that is present.

",redsweater
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
20662,private post can be sticky via quickedit,,XML-RPC,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-05-12T08:37:27Z,2012-06-24T22:13:17Z,"While preparing translations to 3.4 I came across

http://core.trac.wordpress.org/browser/trunk/wp-includes/class-wp-xmlrpc-server.php#L908

This indicates that a private post cannot be marked as sticky.
- however it is quite possible to mark a private post as sticky while using quickedit.

Solution proposal, remove sticky tickbox on quickedit if post is private. 
Or if this is only related to the XMLRPC, fix the returnmessage to a warning ""a private post will only be visible to you, so sticky might not make any sense"".

I'm thinking.. ""either its possible or its not, the logic should be the same""
",maxemil
23099,Add JSON-RPC support using existing XML-RPC methods,,XML-RPC,3.5,normal,normal,Future Release,feature request,new,needs-unit-tests,2013-01-02T01:22:37Z,2013-04-22T21:18:54Z,"Many people have expressed interest in a JSON API for WordPress core. Until a full REST API can be implemented, the existing XML-RPC method implementations can be re-used by wrapping them in JSON-RPC serialization/de-serialization logic.",maxcutler
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
11303,XMLRPC (and APP) APIs should expose all Post/Page/Comment management functionality,westi,XML-RPC,2.9,normal,normal,Future Release,task (blessed),assigned,close,2009-12-01T22:26:01Z,2010-09-23T20:34:55Z,"In #11243 we hid the trash status from {{{wp.getPages()}}} we also hide it for pages (and comments I guess).

Really these apis should be fully featured to allow clients to support the new things the api does.

We should revert the change made for trash for 2.9 and promote the fact that clients should be graceful when using these apis so as to cope when we introduce new features.

We also need to review the need for extra apis to allow trashing/untrashing of posts/pages/comments etc.",westi
21293,Add bbPress as a flavor option to WordPress Showcase,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-07-17T08:29:13Z,2012-07-17T12:02:44Z,"First discussed here:
http://bbpress.org/forums/topic/bbpress-content-re-organization/#post-114999

The bbPress 2 plugin is now quite mature and gaining traction. There are some outstanding sites using bbPress 2 well worth showcasing already, such as [http://devpress.com/forums/ devpress.com/forums]. It's high time the WordPress showcase site received a ""bbPress"" flavor to accommodate great looking forum sites.",Sadr
19583,Android honeycomb browser gets detected as old version of Safari,nacin,WordPress.org site,3.3,normal,normal,WordPress.org,defect (bug),reviewing,,2011-12-17T01:30:29Z,2013-03-16T16:55:18Z,"Reported by a friend of mine (see image attachment).

User agent string is:

{{{
Mozilla/5.0 (Linux; U; Android 3.2; en-us; A500 Build/HTJ85B) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13
}}}
",Viper007Bond
22242,Automatically set the email for the trac account after logging in,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-10-21T15:51:07Z,2012-10-21T15:51:07Z,"The trac installs use the credentials from wordpress.org.

However, after you log in, you need to set your email address manually to get notifications from trac.

I think we'd have a lot less tickets with 'reporter-feedback' hanging around if the email address was automatically populated after a user first logged into trac.",scribu
14622,Be more specific with ideas,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2010-08-16T10:46:03Z,2010-08-16T10:54:44Z,"In the current ideas section Ideas often get closed for not being core ideas.  However, there's not really an explicit indication that the ideas should be for WordPress core.  For example, some folk post ideas for WordPress.org (as a site). 

I realise Ideas is due for overhaul anyway, but in the mean time it'd be good to have just a one-liner in the blurb to explain more specifically the purpose of ""Ideas"".  Either that, or add a content section for ideas for ""WordPress.org site"" as we have on here.",mrmist
23335,Bizarre sorting while browsing WordPress themes and plugins,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-01-31T05:01:52Z,2013-04-05T15:21:54Z,"Currently, there's some fuzzy logic while sorting plugins and themes. Sorting by popularity seems to be reset I'm guessing on every major WP version update, which I guess is fair, in which case the problem is just missing the proper description of the sort option. 

However, while sorting by rating, nothing really makes sense of the bizarre sort order there. ( [http://wordpress.org/extend/themes/browse/top-rated Top Rated Themes] ) 

Even while searching for a keyword, and sorting by ""rating,"" the [http://wordpress.org/extend/plugins/search.php?q=slideshow&sort=top-rated bizarre sorting ensues].

WordPress.org should be a shining example of what WordPress can do, and nail it. ",ericlewis
22506,Bogus Last-Modified Header on Forum Feeds,,WordPress.org site,,normal,major,WordPress.org,defect (bug),new,,2012-11-19T15:45:46Z,2012-11-19T15:59:19Z,"In troubleshooting RSS problems, I found that all of the plugin support feeds are responding with

{{{
Last-Modified: Tue, 16 Oct 2012 14:09:51 GMT
}}}",miqrogroove
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
22523,Can't Open Menu on iPad,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),reopened,,2012-11-21T09:34:49Z,2012-11-21T11:59:47Z,"To reproduce:
1. Go to http://make.wordpress.org/core/
1. Click ""Get Involved""

What Should Happen:  Menu should open.

What it Does:  Reloads current page.

Found in Safari iOS 6.0.1",miqrogroove
17595,Cannot subscribe by email to some tags on wp.org,Otto42,WordPress.org site,,normal,normal,WordPress.org,defect (bug),assigned,,2011-05-28T04:34:29Z,2011-05-28T05:24:18Z,"To reproduce: 

- Visit http://wordpress.org/tags/disable-comments when logged in
- Click on ""Subscribe to Emails for this Tag""

After reload the link should now read ""Unubscribe to Emails for this Tag"", but it hasn't changed, and the user does not receive emails.

The problem appears to be when people use tags that include a space, i.e., ""disable comments"".
",solarissmoke
17487,Codepage issue with the wp.org Credits API,westi*,WordPress.org site,,normal,normal,WordPress.org,defect (bug),accepted,,2011-05-18T10:28:47Z,2012-11-22T03:34:06Z,"I was playing with my profile page at wp.org and changed the Name field from:

{{{demetris}}}

to:

{{{demetris (Δημήτρης Κίκιζας)}}}

What the API returns for that is:

{{{demetris (???????? ???????)}}}

It seems the API returns its results in ISO 8859-1. Can we change that to UTF-8?

",demetris
20041,"Disable ""Priority"" and ""Severity"" fields for new users",,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-02-14T13:04:53Z,2012-02-18T19:14:30Z,"When a new user comes to report an issue in trac, they always seem to overestimate the severity of their problem.

I guess this is normal human psychology, but it makes the field less useful for everyone else.

So, I propose that only bug gardeners be allowed to set these fields, similar to how the milestone field works.",scribu
21035,Encoding problem on my profile page?,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-06-21T12:30:42Z,2012-08-10T18:18:31Z,"Please see my profile page: http://profiles.wordpress.org/pavelevap.

I made several plugins with non-English names. And these names are broken on profile page...",pavelevap
22450,Extend Theme previews doesn't stay on same theme when using IE10 or IE9 in Windows 8,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-11-14T19:29:29Z,2012-11-18T15:19:19Z,"Originally reported in the forums: http://wordpress.org/support/topic/theme-twenty-twelve-single-post-preview-in-ie10

Extend Theme previews doesn't stay on same theme when using IE10 or IE9 in Windows 8, after clicking from index to a single post view.

'''What I expected to happen:'''[[BR]]
To continue previewing the same theme when I click around in the preview.

'''What actually happened:'''[[BR]]
The theme changes to Twenty Eleven after clicking

'''To repeat:'''
1. Open http://wordpress.org/extend/themes/twentytwelve
2. Click green Preview button
3. Once in the preview, click into a single post
4. See the theme change to Twenty Eleven

Notes:
- Breaks in both IE9 and IE10 with Windows 8; does not happen in other browsers like Chrome or Firefox; works fine in IE9 in Windows 7.
- Happens with any theme on Extend (tested with Twenty Twelve and Esquire)
- Example URL: http://wp-themes.com/twentytwelve?TB_iframe=true&width=1033&height=612
- Loading wp-themes.com directly (not in the lightbox) works as expected",lancewillett
23072,"Forums should use title to show a hint about accesskeys for <strong>, <em> etc.",,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-12-28T21:56:47Z,2013-06-07T14:25:29Z,"WordPress.org forums should use the HTML title="""" attribute to give users a hint that there are keyboard shortcuts that will help their writing process. That hint would be displayed when users hover their mouse over the <strong>, <em> and other buttons.

Current HTML for the <strong> button:


{{{
<input id=""ed_strong"" class=""ed_button"" type=""button"" value=""b"" onclick=""edInsertTag(edCanvas, 0);"" accesskey=""b"">
}}}

A more user-friendly alternative:


{{{
<input id=""ed_strong"" class=""ed_button"" type=""button"" value=""b"" onclick=""edInsertTag(edCanvas, 0);"" accesskey=""b"" title=""Hint: Press Alt-Shift-B (and the other variants, Cmd-Shift-B on Macs and what are they)"">
}}}",Daedalon
21793,Incorrect parsing of readme files for plugins on wordpress.org,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-09-04T22:47:36Z,2012-09-06T23:07:00Z,"When wordpress.org parses plugin readme files, it changes URLs in the form www.site.com to links, and adds http:// to the text displayed.

That's good and proper. However, it's not helpful when this happens in a code block.

For example, see the first and third code block of this readme - http://wordpress.org/extend/plugins/sitepush/installation/

The readme validator shows the same behaviour.

The parser should not do any URL parsing in code blocks.",markauk
23822,Invalid Plugin Contributors JSON from WP.org Plugin API,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-03-19T23:41:46Z,2013-03-20T05:39:59Z,"Under some rare conditions, some plugins can break the plugin API with invalid JSON, specifically in regards to the list of contributors returned. This is likely because of the string encoding used to either parse or store the values returned from the plugin file headers.

Basically though, it results in using a null name for a JSON object member where there absolutely needs to be a string.

For example, the ""Aaaaah Lek Lek"" plugin (aaaaaaah-lek-lek) returns the following JSON:

{{{
{
    ""name"": ""Aaaaah Lek Lek"",
    ""slug"": ""aaaaaaah-lek-lek"",
    ""version"": ""1.0"",
    ""author"": ""<a href=\""http:\/\/valeriosouza.com.br\"">Val&#233;rio Souza<\/a>"",
    ""author_profile"": ""http:\/\/profiles.wordpress.org\/valeriosza"",
    ""contributors"": {
        null: """"
    },
    ""requires"": ""3.0.1"",
    ""tested"": ""3.5.1"",
    ""compatibility"": [
        
    ],
    ""rating"": 0,
    ""num_ratings"": 0,
    ""downloaded"": 20,
    ""last_updated"": ""2013-03-12"",
    ""added"": ""2013-03-12"",
    ""homepage"": ""http:\/\/valeriosouza.com.br"",
    ""sections"": {
        ""description"": ""<p>Coloque a frase da m&#250;sica LekLek em seu WordPress, dentro do painel administrativo.<\/p>"",
        ""installation"": ""<p>Siga para Instalar<\/p>\n\n<ol>\n<li>Fa&#231;a Upload <code>aaaaaaah-lek-lek<\/code> para a pasta <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Ative no menu 'Plugins' no seu WordPress<\/li>\n<\/ol>"",
        ""changelog"": ""<h4>1.0<\/h4>\n\n<ul>\n<li>Lan&#231;ada Vers&#227;o 1.<\/li>\n<\/ul>"",
        ""faq"": ""<h4>What about foo bar?<\/h4>"",
        ""other_notes"": ""<h3>Arbitrary section<\/h3>""
    },
    ""short_description"": ""Coloque o Lek Lek no seu WordPress"",
    ""download_link"": ""http:\/\/downloads.wordpress.org\/plugin\/aaaaaaah-lek-lek.zip"",
    ""tags"": {
        ""frases"": ""frases"",
        ""leklek"": ""leklek""
    }
}
}}}

JSONLint comes back with:

{{{
Parse error on line 7:
...ibutors"": {        null: """"    },    
----------------------^
Expecting 'STRING', '}'
}}}

These plugin details come from these files:
* http://plugins.svn.wordpress.org/aaaaaaah-lek-lek/trunk/readme.txt
* http://plugins.svn.wordpress.org/aaaaaaah-lek-lek/trunk/leklek.php

(it mentions a stable tag, but there are no actual tags)

You might also notice that Extend is unable to display these details correctly either: http://wordpress.org/extend/plugins/aaaaaaah-lek-lek/",bpetty
24488,Invalid certificate on translate.wordpress.org,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-06-03T11:27:31Z,2013-06-05T14:20:56Z,While browsing through https://translate.wordpress.org/projects I got security warning regarding an invalid certificate from edge.quantserve.com. See attached image. I had to reject the certificate to use the site.,toscho
17138,Link to plugin URI on plugins on wordpress.org,,WordPress.org site,,normal,minor,WordPress.org,defect (bug),new,,2011-04-15T04:44:10Z,2011-08-17T23:23:49Z,"The link to the Plugin URI seems to have disappeared from plugin pages on the WordPress Plugin Directory. The donations link still appears (when present).

Be nice to get it back.",johnbillion
22811,Make WordPress.org's links use http or https by auto-detection,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-12-07T15:27:04Z,2013-04-15T15:34:43Z,"WordPress.org's links are hardcoded to use the http protocol despite the pages also being viewable using https (which is great). This causes unwanted hassle with eg. bookmarks, showing which pages were or were not visited and so forth.

An example of the steps to reproduce:

1. Go to a https URL (eg. https://wordpress.org/extend/plugins/search.php?q= with the search string appended after the ""="", this being the only way to search on WordPress.org via https as all the forms redirect to http).
2. Type anything in any of the search forms.
 -> A warning is shown that you're being redirected to an unencrypted page.

OR

3. Go to a https URL (eg. https://wordpress.org/extend/plugins/types/ ).
4. Bookmark the page. Imagine a few months happening before the next step.
5. Click the Description tab (when browsing normally you'd click another tab in between but it's not a necessary step here).
6. You're now on a page that you haven't bookmarked. Bookmark it, because you like this page and don't remember having bookmarked a rather identical page months ago.
7. You end up having multiple bookmarks for the same pages.

The fix for all these is rather easy on paper: have all links on wordpress.org that point to wordpress.org automatically use the protocol used for loading the page currently being viewed. Start with having forms' targets use this, then navigational links, and later consider either auto-converting links in page contents (eg. plugin descriptions) or mentioning the possibility of using `://` links for this next to editors.",Daedalon
23379,"Make it possible to update localization files through subversion again, or provide a standalone mo/po file download",,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-02-04T04:57:40Z,2013-02-04T08:38:15Z,"Hi,

I wrote a script here a couple years ago to update the core WordPress application through subversion, coz I am tired of tracking my own modifications (if there is any)

https://github.com/timdream/wp-script

However, starting v3.3.1, I am not be able to update mo/po files through wordpress-i18n svn repo. According to the localization site here https://tw.wordpress.org/, I would have to export the files through GlotPress myself.

That leave me two choices with my script:

1. Hack my way through GlotPress, curl the GET requests to download the l10n files. The script would have to figure out 3.5.1 comes from 3.5.x first, and zh_TW -> zh-tw.
2. Download http://tw.wordpress.org/latest-zh_TW.tar.gz, extract and discard everything except the language directory.

Neither approach is optimal. So I would like to propose some possible approaches here:

A. Export the po/mo files back to subversion. I think this must have been discussed somewhere with people against it.
B. Provide latest-zh_TW-language.tar.gz package.

I am not aware of whether (B) is already exist or not, nor I am aware of where the packaging script is being maintained. If the script is somewhere publicly available through subversion, I am more than happy to provide a patch to it.

Until then, I would probably need to find some time to implement (1) in shell script :-/ Thank you for reading the bug report.
",timdream
22525,Marking duplicates on Trac without a ticket number improperly resolves the ticket,nacin,WordPress.org site,,normal,normal,WordPress.org,defect (bug),assigned,,2012-11-21T11:38:50Z,2012-12-02T16:39:39Z,"For some reason, the last ticket I submitted closed itself when I tried to reply to it.  Looking for a Trac bug now.",miqrogroove
24529,Mistaken count on plugin support threads,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,reporter-feedback,2013-06-07T08:20:31Z,2013-06-08T22:26:18Z,"On one of my plugins, I had ""0 of 1 support threads in the last two months have been resolved"".

Then I answered a thread from 3 months ago, and now have ""1 of 1 support threads in the last two months have been resolved"" I think I should have either ""1 of 2 support threads in the last two months have been resolved"" (counting all threads with activity in the last 2 months) or ""0 of 1 support threads in the last two months have been resolved"" (counting all threads which started in the last 2 months).",simonwheatley
23256,Mitigate Plugins SVN Exponential Storage Growth,,WordPress.org site,,normal,major,WordPress.org,defect (bug),new,,2013-01-21T23:41:56Z,2013-02-03T21:02:40Z,"We all know Subversion is terribly inefficient with storage compared to most modern version control systems, however I've noticed a pretty serious problem that goes way beyond this in the plugins SVN repo. Please forgive me if some details are slightly off as obviously anything running WP.org infrastructure is mostly a black box that no-one outside of Automattic or Audrey has any insight into (and I'm lucky to have found this problem in the first place).

If you take a look at the attached graph, you can see that the plugins repository is growing exponentially by disk usage regardless of what rate commits are coming in (but that has always been growing too, making this worse). I am assuming the repository is using FSFS, though this is actually still a problem if it were using BDB. All SVN repositories suffer from this weakness if used the same way the plugins SVN repo is being used.

The problem is that every SVN commit stores off node IDs of every sibling node of every parent node of all nodes that have changed in that revision. This means that a single commit to `/myplugin/trunk/readme.txt` contains references to all files and directories (and their related revision) in the `/myplugin/trunk` directory, the references to the `branches`, `tags`, and `trunk` nodes in `/myplugin`, and finally references to every directory in the root node (`/`) which means every single plugin in the repository.

Since the root node is related to any changed node in every single commit, and the list of plugins is constantly growing, this means that even though the repository is somewhere around 450GB right now, the actual data in the repo, including the full history, is only about 30GB. You can confirm with a simple dump of the repository. The other 420GB or so is entirely wasted space by SVN overhead.

If nothing is done in the next two years, the SVN repository is expected to double in size to about 900GB, and it’s performance will quickly degrade as the server takes longer to read revisions and the filesystem cache can no longer be used (which I suspect is already the case now). Another four years, and we could be looking at a 2TB Subversion repository with every single commit being required to write about 8MB to disk even if it's a one line change.

I know that any solution to this is going to take years to fully implement mostly because I believe this is going to require plugin SVN URLs to change during a migration at some point most likely. However, at the least, we should be heading up this problem by getting new plugin submissions started in their own repository rather than creating new directories for them in the current plugins SVN repo. This would at least stop the exponential growth of the plugins repository, extending it's lifespan significantly.",bpetty
23712,My browser is NOT out of date,,WordPress.org site,,normal,minor,WordPress.org,defect (bug),new,,2013-03-07T15:42:29Z,2013-03-09T23:36:13Z,"Hello.
I'm running Win7 64bit with Firefox 19.0. When I log in my wordpress site admin panel an orange box pops up saying I should update my browser.
The operating system and the browser are completely updated.",assenoff
16524,No documentation (not possible?) to add plugins to Trac,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2011-02-10T19:58:05Z,2012-09-13T20:21:30Z,"When developing a plugin, it's normal to set up a bug-tracker of some sort. I have found no documentation on how to do this using THIS bug tracker: trac.  I've noticed that SOME plugins have support here, but nobody I've talked to knows how to get their custom plugins added to this bug tracker, which means that most of the plugins in the repository have no official bug tracking in place.  That's a huge disservice to the community because only a fraction of those developers have the wherewithal to set up their own bug trackers.

This ticket is to request:
1. Access to trac for all plugin developers
2. Thorough documentation on how to get this set up for any new plugin authored
3. Ideally, incorporate this in a standardized way for all plugins so the authors don't have to do any extra footwork.",fireproofsocks
19635,Non-ASCII chars in user name changed to question marks after sending new plugin request,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2011-12-21T13:52:47Z,2012-08-10T18:12:55Z,"I have just sent request to add new plugin to repository, and found that some chars in my name were changed to question marks:

{{{
WordPress Plugins » Requests
user-ranks from Daniel Fru?y?ski (sirzooro) [plugin]
}}}

Should be:

{{{
WordPress Plugins » Requests
user-ranks from Daniel Frużyński (sirzooro) [plugin]
}}}",sirzooro
18231,Opera Mini being reported as out of date,nacin,WordPress.org site,3.2.1,normal,normal,WordPress.org,defect (bug),assigned,,2011-07-24T05:14:23Z,2012-09-28T16:05:28Z,"From http://wordpress.org/support/topic/latest-opera-mini-flagged-as-old-version-of-opera?replies=1


I use the latest Opera Mini for Symbian v 6.1.25570 for access to my WordPress.org blogs from my mobile phone. It works well for comment moderation, minor edits to posts and upgrading plugins.

Since upgrading to WP 3.2.1 I've been seeing ""It looks like you're using an old version of Opera.."" on my Dashboard.

This message is incorrect as I AM running the latest version of Opera Mini. It's only a minor annoyance but it would be nice if it was fixed.",Ipstenu
22533,Plugin Rating stars is incorrect,,WordPress.org site,,low,minor,WordPress.org,defect (bug),new,,2012-11-21T23:04:07Z,2012-11-21T23:27:52Z,"The stars rating doesn't reflect the average rating correctly. 

For example:
http://wordpress.org/extend/plugins/automatic-updater/

At the time of reporting, there were 13 ratings: 9*5, 3*4, 1*1, for an average of 4.46, shown correctly in the text as ""4.5 out of 5 stars"".

The star rating doesn't seem to be using the same number, however - it should be 89.2% (or 90%, if it uses the rounded up ""4.5"" as the rating), but is showing as 82%.",pento
24517,Plugin Support Forum New Thread Button,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-06-06T12:12:24Z,2013-06-06T16:08:54Z,"Having left a review on a plugin I wanted to report a bug, only to find no link to create a new thread.

After a while, I realised i could scroll down past what I initially thought was the bottom of the page, to find a submission form. As you can see from attached screenshot, it wasn't clear.

A new thread button towards the top would fix this by providing a point of action. It need only link to an ID further down the page. I've also attached a screenshot of a quick mockup I did in browser, an anchor with class button, floated to the right with appropriate margins did it, though a container around it for more buttons would be preferable",TJNowell
21550,Plugin changelog truncation can break WordPress.org site layout,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-08-11T16:32:59Z,2012-08-11T16:35:41Z,"WordPress.org appears to truncate plugin changelogs after a certain number of characters. However, if the truncation occurs in an inconvenient place -- such as the middle of an HTML tag -- it can cause browser rendering issues in other parts of the page.

For example, on the [http://wordpress.org/extend/plugins/seo-ultimate/changelog/ changelog page] for my plugin SEO Ultimate, the plugin page sidebar is currently showing up below the changelog ([http://img405.imageshack.us/img405/7557/brokenchangelogscreen.png screenshot]). This is because the changelog is being truncated in the middle of an <li> tag, apparently leading my browser (Chrome) to fail to recognize a </div> closing tag:

{{{
<l</div><!-- block-content--></div>
}}}

I would suggest that the easiest and perhaps best solution would be simply to stop truncating plugin changelogs. Layout breakage possibilities aside, I would prefer it if my plugin's changelog were not cut off after a certain point.",JohnLamansky
23411,Plugin images are sent with wrong Content-Type,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-02-07T09:26:46Z,2013-02-07T10:01:38Z,"Some images are sent with the Content-Type `application/octet-stream`.

Example: http://s-plugins.wordpress.org/buddypress/assets/screenshot-1.gif?rev=626668


{{{
HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Type: application/octet-stream
Date: Thu, 07 Feb 2013 09:18:48 GMT
ETag: ""626668//buddypress/assets/screenshot-1.gif""
Last-Modified: Sun, 18 Nov 2012 17:27:41 GMT
Server: ECS (fcn/419A)
X-Cache: HIT
Content-Length: 11248
}}}

Linked from http://wordpress.org/extend/plugins/buddypress/screenshots/

Each time I want to load the pure image I get a download dialog in my browser.",toscho
22288,Plugin package is old version when upgrading plugin shortly after release,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-10-26T15:39:49Z,2012-11-14T11:16:13Z,"The past few times I have done plugin releases, I have noticed an issue with the wrong plugin package being downloaded.

For example, I release a new version of a plugin via SVN. The plugin update appears on .org, and the download link downloads the new version. 

The update also appears in a WordPress install shortly after (assuming transients are deleted for the fastest way to get the update to show). If I then Upgrade the plugin from the, WordPress install the Upgrader Skin does the usual Downloading Plugin... and the package (zip) that is shown to be downloading is the previous version. Of course, it does download the previous version and again shows an update is available.

After about 5-10 minutes this usually fixes it's self.

I don't know how the .org side of things work, is it possible that the updated version will show up, but whatever is responsible for getting the latest package is relying on a different cache or something?

",joehoyle
17709,RTL for the Support Forum theme on the international sites,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2011-06-06T15:57:51Z,2011-09-07T00:06:17Z,"The RTL styles for the support forums are incomplete. I don't have access to the original files to make a patch, but these fixes should be all that's needed:

{{{
#pages a:after, #pages span:after { content: &amp;quot;\200F&amp;quot;; }
#pagebody table.widefat th { text-align: right; }
#pagebody ol#thread { list-style: none; }
#footer iframe, #footer p { float: left; }
#footer h6 { float: right; }
}}}

",RanYanivHartstein
20179,Redirect visitors from plugin admin URL to plugin URL if user not admin,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-03-05T17:58:47Z,2012-04-05T18:33:02Z,"The WordPress plugin directory features an ""admin/"" path relative to each plugin. If I am logged-in to WordPress.org and associated with the plugin slug I'll see a few helpful links and utilities. If I have no mapped relationship to the plugin I see the plugin homepage. I'd like to redirect visitors to ""extend/plugins/{slug}/admin/"" to ""extend/plugins/{slug}/"" if they do not have an admin relationship to the given plugin.

Example: I visit a plugin page either logged out or logged in without any association with the plugin.
http://wordpress.org/extend/plugins/akismet/admin/

Response should be a redirect to:
http://wordpress.org/extend/plugins/akismet/

Right now the response is the same content as the plugin homepage.",niallkennedy
22106,SVN Notify emails don't support UTF-8,,WordPress.org site,,normal,minor,WordPress.org,defect (bug),new,,2012-10-05T06:30:42Z,2012-10-05T06:38:07Z,"If there are UTF-8 characters in the changelog, they are shown as UTF-8 numerical codes, instead of the appropriate character.

For example, see this change:

http://plugins.trac.wordpress.org/changeset/608203/automatic-updater

Compared to the attached email screenshot.",pento
23410,Screenshots behaviour not same between /assets and /tags/xxx,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-02-07T06:04:23Z,2013-02-17T04:32:27Z,"Plugins screenshots have differing behaviour whether stored in /assets or /tags/xxxx folders in plugin SVN repository.

* /tags/xxxx => scaled images with links to source images
* /assets => scaled images without links

Also, when loading a plugin for the first time recently, the screenshots didn't appear until after I added them to the /assets folder. I suspect something has changed there, as I had read that screenshots should fallback to stable tag/trunk folder.

Examples:
* [http://wordpress.org/extend/plugins/gravity-forms-dps-pxpay/screenshots/ Gravity Forms DPS PxPay] has /assets folder, screenshots don't link
* [http://wordpress.org/extend/plugins/gravityforms-eway/screenshots/ Gravity Forms eWAY] has no /assets folder, screenshots link to source images",webaware
22809,Support Pale Moon browser in out-of-date dashboard widget,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-12-07T14:28:40Z,2012-12-08T12:44:00Z,"The ""Your browser is out of date!"" notification in WordPress dashboard is shown erroneusly for Pale Moon users.

Pale Moon is the most popular optimized version of Firefox, and its version numbering scheme runs a bit different from the mainstream Firefox. The current version of Pale Moon http://www.palemoon.org/ is 15.3.2, which is just as up-to-date as Firefox 17.0.1.

Summary of the issues:

1. The version check should be done against Pale Moon version number instead of Firefox version number.

2. The text and links should refer to update Pale Moon instead of Firefox.",Daedalon
19011,Support forum topics with Cyrillic titles cannot be found via Google,,WordPress.org site,,normal,major,WordPress.org,defect (bug),new,,2011-10-20T02:22:19Z,2011-12-23T04:25:14Z,"None of the topics with Cyrillic titles on ru.forums.wordpress.org can be found via Google. Topics with Latin slugs are indexed properly. Same for the other forums in Cyrillic (bg.forums.wordpress.org and sr.forums.wordpress.org).

This wasn't a big issue three years ago when there were just a few posts, but now that more and more questions are asked and answered each day, it's hard for users to find previous topics and solutions.

[http://lists.automattic.com/pipermail/wp-forums/2011-February/006773.html According to Otto], there's no `robots.txt` or anything else blocking Google from indexing them.

This is probably a Google bug, but I've tried to ask on their Help forum, and no one replied.

My guess is this has to do with 4th-level domains currently used for localized support forums. In this case, wouldn't it be possible to switch from `ru.forums.wordpress.org` to `ru.wordpress.org/support/`, similarly to English support forums?",SergeyBiryukov
24589,Tags don't save with drafts.,,WordPress.org site,,normal,normal,Awaiting Review,defect (bug),new,,2013-06-17T13:32:41Z,2013-06-17T13:32:41Z,"I haven't had the opportunity to test this on a standalone WordPress installation but I have this issue on the WordPress.com websites. 

Whenever I save a draft and come back to it later, I find out that all my tags aren't saved. 

I use the latest dev version of Chrome, and I had this issue also on the FireFox v22. 

",jonezjea
23485,Theme Preview on Extend starts in the middle of the page,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-02-16T10:39:50Z,2013-03-05T16:02:50Z,"The theme preview iframe is positioned at 50% from top, the lower 50% are invisible. Tested in Chrome, Firefox and Opera, all up-to-date.

Clicking ''Inspect Element'' in any of these browsers makes the iframe jump to the correct position, so I cannot provide more details, sorry.
",toscho
18097,Themes update-check should check parent/child,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2011-07-13T10:19:33Z,2011-07-21T02:49:14Z,"A child theme by the name of Commune gets served the updates of a parent theme.

We should only serve an update to a theme if it's a child or parent, appropriately. For child themes, we should also confirm the parent.",nacin
22770,Tweak Browse Happy so it doesn't jump the gun with out-of-date browser messages,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-12-06T01:28:44Z,2012-12-06T06:44:20Z,"Browse Happy is a useful tool for encouraging WordPress users to keep their browsers current. 

However, sometimes Browse Happy jumps the gun.

For instance, on GNU/Linux distributions like Ubuntu, users can choose to install Chromium directly from the repository (as opposed to downloading Chrome from Google's site). 

Chromium, when installed this way, is kept up to date by the operating system's package management tool, not manually. Users receive notifications from their operating system prompting them to upgrade when new versions of the browser are available. 

It makes no sense to show a Chromium user a ""your browser is out of date"" message when their browser is, in fact, up to date - as provided by their distribution. 

Unfortunately, that is what it happening now. 

Similarly, Microsoft has not yet released Internet Explorer 10 for Windows 7, so it is not appropriate to tell users of IE9 that their browser is out of date. IE10 is available for Windows 7, but only as a release preview - similar to a WordPress release candidate. We wouldn't prompt users to upgrade their production WordPress installations to a release candidate, so why is Browse Happy telling Windows 7 IE users to upgrade to IE10 when the final version of IE10 has yet to be released?

Browse Happy should be tweaked so it does not jump the gun with out-of-date browser messages before browsers are really out of date. Users should only get a prompt to upgrade if there is in fact a newer version of their web browser available to them that is out of beta and suitable for production use.",avcascade
20615,Unknown error when running plugins_api() with invalid slug,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-05-05T14:59:07Z,2012-05-05T15:40:35Z,"Input:

{{{
$api = plugins_api( 'plugin_information', array( 'slug' => 'doesnt-exist' ) );

var_dump( $api );
}}}

Expected result:

{{{
WP_Error Object
(
    [errors] => Array
        (
            [invalid_slug] => Array
                (
                    [0] => Invalid plugin slug.
                )

        )

    [error_data] => Array
        (
            [invalid_slug] => 404;
        )
)
}}}

Actual result:

{{{
WP_Error Object
(
    [errors] => Array
        (
            [plugins_api_failed] => Array
                (
                    [0] => An unknown error occurred during the API request.
                )

        )

    [error_data] => Array
        (
            [plugins_api_failed] => N;
        )
)
}}}

PS: I have no idea what that 'N' is supposed to represent.",scribu
21991,Username input placeholder text cut off,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-09-25T08:18:21Z,2012-09-25T08:18:21Z,"On wordpress.org I'm invited to log in using my ""Username or em"".",johnbillion
21542,WP.org notifications don't support UTF-8,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2012-08-10T18:10:09Z,2012-08-10T18:12:51Z,See the screenshot.,SergeyBiryukov
23989,Wonky download button on plugin support forums,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-04-08T15:27:57Z,2013-04-08T18:21:06Z,"On the 'Support' tab for any plugin in the wordpress.org plugin repo, the Download button is a bit wonky.

[[Image(http://i.imgur.com/5gctAEO.png)]]",johnbillion
15366,WordPress Development Blog feed can't redirect,,WordPress.org site,,high,normal,WordPress.org,defect (bug),reopened,,2010-11-09T21:13:42Z,2011-02-17T22:39:16Z,"The RSS feed doesn't know to follow the redirects.

We'll need to restore a feed at /development/feed/ -- rewrite instead of redirect.",nacin
24005,WordPress.org search field looks broken in Opera,,WordPress.org site,,normal,minor,WordPress.org,defect (bug),new,,2013-04-09T13:07:58Z,2013-04-09T13:13:08Z,"This is how it looks in Opera 12.15, Win8, x64 (see attach)",seezer
24533,WordPress.org showing the wrong plugin review message,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2013-06-07T15:26:15Z,2013-06-10T08:24:58Z,"http://wordpress.org/support/topic/mysql-supported-only?replies=2#post-4109765 shows a plugin review message ""The event planner shows promise, but the table creation uses MySQL-specific data types. ...""

http://wordpress.org/support/view/plugin-reviews/events-manager/page/2, where the link to this review was found, shows the same review message as ""So is this what you do? Go around giving bad reviews on everyone's plugins because they don't support PostgreSQL? ...""

Both should show the same message. The latter message doesn't even seem to be from the correct author, but rather someone's reply to the original reviewer. Furthermore the second message is not even displayed anymore in the thread.",Daedalon
18773,Wordpress codex pass word problems,,WordPress.org site,3.3,normal,normal,WordPress.org,defect (bug),new,,2011-09-25T21:55:07Z,2011-09-26T10:14:38Z,"Ok this is the third time I've tried to post this here- I've split the pass word up because I thought that some bit may be preventing this from being posted thinking that I'm revealing sensitive data.

I set my pass word to a strong one with brackets, double quotes and a semicolon in it. This worked for the forums and the trac but not for the codex (wouldn't let me in).

",volcanicpixels
19432,[SITE] Belguim IP shows only French version?,,WordPress.org site,,normal,minor,WordPress.org,defect (bug),new,,2011-12-03T10:59:37Z,2011-12-04T10:46:52Z,"When a Belgium IP address goes to the English version of the WP.org site I shows that WordPress is also in French. But we have also Dutch & German in this country. So I was thinking: why not display the message as follows: 

'click here if you want WordPress in another language' and this takes you to a page where all languages are listed. That way a user that is at holidays in China easily find his French or German version.",jonezjea
18981,erroneous pie graph in plugins repository,,WordPress.org site,3.2.1,normal,normal,WordPress.org,defect (bug),new,,2011-10-18T06:43:00Z,2012-06-21T12:26:06Z,"In plugins repository of wordpress.org:
Since more than a week, pie graph of statistic are erroneous... Only one part, very old version targeted !
What happens ?

one example in our seven list and other more : http://wordpress.org/extend/plugins/xili-language/stats/

",michelwppi
17095,format or validate author url from api.wordpress.org,,WordPress.org site,,normal,normal,WordPress.org,defect (bug),reopened,,2011-04-09T16:44:13Z,2011-04-09T18:04:56Z,"The author url from api.wordpress.org does not seem to do full format checking. Not apparent in browsers since they will understand malformed urls but is a problem when outputting elsewhere.

Example: 
{{{
<author type=""string""><![CDATA[<a href=""http:www.artificium.sk"">Stanislav Gunčaga</a>]]></author> 
}}}


 ",wycks
11905,trac spam,ryan,WordPress.org site,,normal,normal,WordPress.org,defect (bug),reopened,,2010-01-15T13:05:08Z,2013-04-21T09:15:45Z,http://core.trac.wordpress.org/ticket/9534#comment:7,scribu
23034,wordpress-sources is not up to date,nacin,WordPress.org site,,normal,normal,WordPress.org,defect (bug),assigned,,2012-12-21T08:16:31Z,2013-01-10T06:55:04Z,"It would be nice if you could include as part of your standard release workflow a step that ensures that http://code.trac.wordpress.org/browser/wordpress-sources is up-to-date.

For instance WP 3.5 ships JQuery 1.8.3 but the above repository only contains the source for version 1.8.1. JQuery UI is at 1.9.2 while the above repository only contains 1.8.23.",rhertzog
13576,"wordpress.org themes list, sidebar broken in IE7",ryan,WordPress.org site,,normal,normal,WordPress.org,defect (bug),new,,2010-05-27T14:49:20Z,2012-08-10T18:25:26Z,"wordpress.org themes list
the sidebar in IE7/IE8 is displayed AFTER the themes, Firefox ok.",maurizio04
22440,"Add ""app"" to the .org intro paragraph.",,WordPress.org site,,normal,minor,WordPress.org,enhancement,new,dev-feedback,2012-11-14T11:26:45Z,2013-03-20T13:58:18Z,"I'd like to propose that we change the .org intro paragraph from:

{{{
WordPress is web software you can use to create a beautiful website or blog. We like to say that WordPress is both free and priceless at the same time.
}}}

To:

{{{
WordPress is web software you can use to create a beautiful app, website or blog. We like to say that WordPress is both free and priceless at the same time.
}}}

WordPress is being used to build web apps, see [http://wordpress.tv/2012/08/06/matt-mullenweg-state-of-the-word-2012/ Matt's WPSF 2012 keynote].

I also spoke to @matt about this at WPCS, he seemed to liked the idea.",willmot
23704,Add a field onto WordPress.org support forums for plugin version number,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2013-03-06T06:17:31Z,2013-03-14T00:57:15Z,"WordPress.org support forums ask the user to specify the version of WordPress they are using.

In plugin-specific support forums such as http://wordpress.org/support/plugin/events-manager there should also be a field for the plugin version number. Like the WordPress version number, this should be a dropdown list, for which the values should be available in the WordPress.org database.

This way plugin authors don't need to ask the user for that version, which speeds up the resolution of support tickets and saves the plugin authors' time, letting them concentrate more on creating and improving the plugins.",Daedalon
12696,Add ordering support to plugins_api() when filtered on tag or search term,ryan,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2010-03-24T23:05:09Z,2011-06-07T14:49:00Z,"It would be awesome if you could pass an ordering parameter to plugins_api() that would allow you to return a list of filtered plugins in a specific order.

I'd love to be able to use the API to return a list of the most popular / newest / recently updated plugins on the repo that contain the tag ""buddypress"".

Something like this would be awesome:

{{{
$plugins = plugins_api( 'query_plugins', array( 'tag' => 'buddypress', 'page' => 1, 'order' => 'popular' );
}}}

Even better, also allow search filtering:

{{{
$plugins = plugins_api( 'query_plugins', array( 'tag' => 'buddypress', 'search' => 'album', 'page' => 1, 'order' => 'popular' );
}}}

I'd be happy to implement this if I can get access to the API source on WordPress.org.",apeatling
24536,"Add status ""awaiting user's verification for resolution"" for WordPress.org support threads",,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2013-06-07T16:09:51Z,2013-06-08T22:23:30Z,"WordPress.org support threads are currently often left by users in ""not resolved"" state even when commenting that the issue is fixed. ""[ ] Mark this thread as resolved"" below the comment box is not noticeable enough.

A new status should be added: ""awaiting user's verification for resolution"". This would be set by plugin support team members when they're providing user with an answer that is expected to solve the issue.

The comment box would then require the original poster to either accept or reject the resolution. The submission button would not be clickable before either one is selected.

The email notification that the original poster receives would also contain a request for action with links to either accept or reject the resolution. These would lead to the comment form that has the appropriate option selected.",Daedalon
22297,Add support to request topics through the WordPress API,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2012-10-27T20:39:24Z,2012-10-27T20:39:24Z,There is a RSS feed for getting the latest topics but that's not really handy since you have no clue what the information is behind it like if the topic has been resolved. What can be handy if you want to have an overview of all the not resolved topics of all your plugins,markoheijnen
22416,Add updated time to Plugin API,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,dev-feedback,2012-11-12T00:21:27Z,2012-11-12T09:50:22Z,"This ticket is directed at @Otto42

Per recent discussion (Nov 6), a separate '''last_updated_time''' field should get added to the plugin API.

Having a separate field, instead of appending time to the existing ""last_updated"" date, would prevent possible compatibility issues.

Example API response: http://api.wordpress.org/plugins/info/1.0/akismet.json",logikal16
24295,Allow ReadMe to support in-document links,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2013-05-09T10:30:34Z,2013-05-11T17:20:35Z,"The current Plugin [http://wordpress.org/extend/plugins/about/readme.txt ReadMe files] use MarkDown syntax and over time these can contain a great deal of information for users, for example in the FAQs.

The length of these sections sometimes makes finding the part you need a case of trawling through the entire document or searching for words in the browser window and hoping you are using the same vocabulary as the ReadMe author.

I think a useful enhancement would be to add the capability to define in-document links to allow for things like a table of contents at the top of the FAQ section. Currently you can create a link in such a table like this:

{{{
[FAQ 1](#1)
}}}

But I cannot find a way to create the linked section later in the document as any HTML, name or id parameters seem to get stripped out.

If this is already possible, please can you tell me how to accomplish this and accept my apologies from opening a ticket.",MattyRob
21628,Attach image(s) to WordPress.org support topics/replies,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2012-08-18T22:27:29Z,2012-08-19T22:28:27Z,"The ability to upload images to a support reply or topic would assist in describing issues and solutions. Sure, a user could link to an externally sourced image, however that's another step in the process.",ericlewis
23160,Better 404 page for WordPress.org,,WordPress.org site,,normal,minor,WordPress.org,enhancement,new,,2013-01-09T20:10:23Z,2013-01-09T20:13:01Z,"Right now, if you get a 404 on wp.org, there isn't really much.

example:  [http://wordpress.org/howabouta404]

I'd suggest at the minimum changing the wording away from 'no posts' to 'no pages', and potentially adding links to commonly accessed areas, such as 'Were you looking for a plugin, theme, blah blah?'

In the side bar, there is also a 'Categories' section, that always displays 'No categories', maybe remove that as well?",bradparbs
24145,Confirm page close when writing on WordPress.org forums,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2013-04-20T20:03:15Z,2013-04-20T22:28:18Z,"When writing on WordPress.org forums, sometimes long and well thought-out replies are lost due to accidental page closing. This causes countless amounts of work lost within the WordPress community.

There should be a confirmation dialog to prevent accidental page closing after user has entered something in the new post form.",Daedalon
24532,Display status changes in WordPress.org support forum threads (eg. not resolved -> resolved),,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2013-06-07T14:28:51Z,2013-06-08T23:06:32Z,"WordPress.org support forums don't show any information on thread status changes eg. from not resolved to resolved. This information should be displayed automatically, and it would remove the need for users to write this information manually.

This would allow users to know who changed the status and when as well as to see what happened before and after in the support discussion. This is already done in Trac. Eg. https://core.trac.wordpress.org/ticket/23072#comment:1 shows:

-----
SergeyBiryukov — 5 months ago

   - '''Milestone''' changed from ''Awaiting Review'' to ''WordPress.org''
-----

No time is wasted wondering who updated, what and when.
",Daedalon
24397,Embiggen the linked WordPress og:image,Otto42,WordPress.org site,,normal,normal,WordPress.org,enhancement,assigned,,2013-05-23T18:14:33Z,2013-05-23T18:42:00Z,"Looks like !WordPress.org blog posts currently use [http://wordpress.org/about/images/logo-blue/blue-l.png a 150x150 px image] as an Open Graph protocol image to sexify shared links on Facebook, Twitter, Windows 8, LinkedIn, etc.

Facebook has a minimum image dimension requirement of 200x200 px to optimize for selecting an image that works in a variety of display scenarios including HiDPI. Current image is under that minimum dimension. Facebook supports an image up to 5 MB in filesize. Twitter supports up to 1 MB in filesize.

Bump up the size of the default [http://wordpress.org/about/logos/ WordPress logo] used as an og:image on !WordPress.org blog and elsewhere to something huge (ideally > 1500x1500 px) for maximized display opportunities for !WordPress.org link summaries displayed on other sites.

Example URL:
http://wordpress.org/news/2013/04/save-the-date-may-27/",niallkennedy
16779,Ignore capitalization during login,,WordPress.org site,,normal,minor,WordPress.org,enhancement,new,,2011-03-06T21:07:43Z,2011-07-22T09:16:23Z,"The login box at wp.org seems to be case sensitive. In my case if I type ""bandonrandon"" it returns with ""user not registered"" but if I type ""BandonRandon"" I am able to login. However, it seems that ""bandonrandon"" is also connected to my account and isn't available for registration. 

My thoughts on this are to maybe ignore the case of the user when they login to the site. The same can be said for plugins. If my name is ""bandonrandon"" in the plugin readme my gravatar is not shown but if it's ""BandonRandon"" my gravatar is shown.  

",bandonrandon
20318,Introduce a Usage section to the Plugins API,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2012-03-29T07:05:20Z,2012-03-29T13:25:50Z,"I quite often find a need for a 'Usage' section in my plugin's readme file. I usually place this within the 'Installation' section ([http://wordpress.org/extend/plugins/user-switching/installation/ example]), but I've seen other plugins that include full usage instructions in the main description, in the FAQs, or in the 'Other Notes' section.

It would be nice if there was a top level readme section for Usage which showed up as a tab on the WordPress.org Plugin Directory.",johnbillion
15783,JavaScript Coding Standards,koopersmith,WordPress.org site,,normal,trivial,WordPress.org,enhancement,assigned,,2010-12-12T10:56:05Z,2013-04-11T13:36:22Z,"Following up on scribu's and azaozz's comments in #15650, would a JavaScript Coding Standards page on the Codex (equivalent to http://codex.wordpress.org/WordPress_Coding_Standards and http://codex.wordpress.org/CSS_Coding_Standards) be useful?

It would not only include the usual code formatting, whitespace, brace position, semi-colon requirements etc, but also clarify on which code patterns are preferable for performance, both for the specific dependency library, and those that will give the smallest file when minified.

Another idea might be to introduce a file docblock that outlines which JS library or other file dependencies the current file has.

Some references:
 * http://javascript.crockford.com/code.html
 * http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml
 * http://drupal.org/node/172169
",GamajoTech
18682,"Make ""WordPress is also available in..."" string translatable",nacin*,WordPress.org site,,normal,normal,WordPress.org,enhancement,accepted,,2011-09-16T10:34:02Z,2013-05-27T08:44:01Z,"Currently the links to local sites displayed on !WordPress.org for international visitors are partly English, partly translated:

 !WordPress is also available in Русский.[[BR]]
 !WordPress support forums are also available in Русский.

For better user experience, we should allow l10n teams to translate these strings in Rosetta. Due to different grammatical cases, the language name would probably need a separate context for these links.",SergeyBiryukov
22343,Make some better theme preview test data,,WordPress.org site,,normal,trivial,WordPress.org,enhancement,new,,2012-11-02T01:19:46Z,2013-04-06T19:04:22Z,"[[http://i.imgur.com/Vdb8y.jpg]]

Surely something '''new''' can be done here.",wycks
23002,Maybe a little styling?,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2012-12-19T11:25:29Z,2012-12-19T11:49:23Z,"Hi,

The  fields in registration page http://wordpress.org/support/register.php are without style.

Maybe a little styling for the fields? Now not are very nice...",j.conti
11898,Pagination For Browse Source in Plugin Trac,ryan,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2010-01-14T23:42:38Z,2010-01-15T16:53:59Z,"When you view Browse Source in Plugin Trac it lists 7,000 plugins. This take a long time to load and isn't readable. This page needs pagination or something else.[[BR]]
[[BR]]
Related: http://trac.edgewall.org/ticket/6101[[BR]]
[[BR]]
This was talked about breifly during the dev meeting on January 14th, 2010: https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2010-01-14#m56068",dancole
17917,Profile pages should include activity on local forums as well,,WordPress.org site,3.2,normal,normal,WordPress.org,enhancement,reopened,,2011-06-28T07:43:21Z,2012-12-07T10:18:46Z,"Since WordPress 3.2 is going to show a link to the profile pages of the various contributors and translators, it seems only fair for that profile page to reflect the activity of those translators on the local forums as well. 

Currently if you go to my profile page for example http://profiles.wordpress.org/users/DeFries/ you will only see some forum activity on the international forum. Most of my activity is done however on the Dutch Forum ( http://nl.forums.wordpress.org ). Something you can see on the profile page of the Dutch forum itself: http://nl.forums.wordpress.org/profile/defries 

For starters, it would be a better suit if the first mentioned profile url shows all of the users activity on the forums, but having both reflect the same would be a warm welcome. Having the two merged could even be a better solution. I'll leave that up to you guys.",defries
24165,Re-skinning Trac 1.0,,WordPress.org site,,high,minor,WordPress.org,enhancement,new,,2013-04-23T15:50:47Z,2013-06-14T23:21:00Z,"As part of a datacenter migration, Trac was updated to 1.0, which has a new UI featuring rounded corners, gradients, drop shadows; and fieldsets with rounded corners, gradients, and drop shadows.

Let's update http://wordpress.org/style/trac/wp-trac.css?2 to replace all of the ugly and to fix some of our custom styling broken with the upgrade.

We went from Trac 0.12.4 to 1.0. Here's a diff of the relevant CSS/JS/images: http://trac.edgewall.org/changeset?old_path=%2Ftags%2Ftrac-0.12.4%2Ftrac%2Fhtdocs&old=11784&new_path=%2Ftags%2Ftrac-1.0%2Ftrac%2Fhtdocs&new=11784",nacin
23346,Remove rate limiting for plugin authors on their own support topics,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2013-01-31T18:46:41Z,2013-02-05T01:42:56Z,I frequently get the 'slow down' message on the support forums when responding to support threads for my plugin - can the limit not be lifted when posting to topics tagged with a plugin that I am author of.,volcanicpixels
18915,Reverse priority colors in Trac,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2011-10-12T12:53:01Z,2012-09-02T17:05:06Z,"Each ticket on list has assigned color - from red for ones with lowest priority, to blue for ones with highest priority. This is a bit unintuitive, because red color usually means warning or something bad. Please change these colors to follow that common approach.",sirzooro
15417,Search by Author on Install Plugins - requires inside knowledge,,WordPress.org site,3.0.1,normal,normal,WordPress.org,enhancement,new,,2010-11-13T17:07:49Z,2011-02-19T01:19:08Z,"If you search for plugins to install by author -
say for example - Justin Tadlock - or - Tadlock - you get no results.

If you are aware that ""GreenShady"" is Justin Tadlock - you get a long list of plugins (as you should) all listed as by ""Justin Tadlock""

This seems broken.
",transom
22424,Search support threads for a particular theme/plugin,,WordPress.org site,,normal,major,WordPress.org,enhancement,new,,2012-11-12T19:09:45Z,2012-11-12T19:12:55Z,"A lot of duplicate support threads for themes/plugins could be avoided if users had a way to search through existing threads only for that particular theme/plugin.

For example, when I'm on http://wordpress.org/support/theme/p2 there could be a search box at the top that would only look through those topics.",scribu
14087,Set up team to evaluate web-hosting providers for WP.org recommendations,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2010-06-25T13:47:32Z,2010-07-17T14:39:18Z,"The problem is simple to describe:

When setting up a CMS-based website, two of the most critical—if not the two most critical—decisions are:

 *  publishing platform
 *  web host
 
For the first you can pick at random among the best-known offerings and you won’t go much wrong.  (Or you can pick the most popular one, and, in most cases, you will have made the best choice! :-D)

But the second is different — or so my little experience tells me:  Fame and familiarity do not seem to be directly correlated with quality in the case of shared web-hosting, which is the best type of hosting for the majority of WP users.

And that’s unfortunate, because bad web hosting can ruin the experience of web publishing.

In addition, evaluting web hosts is not easy for a single individual, even for individuals who have the technical understanding, because it takes time and also money.

We, the people involved with WordPress development, are in a better position to offer some insight into the problem:  We are many, we have collective knowledge, and also collective experience.  So, here is my idea:

 *  Set up a team
 *  Set up a set of criteria
 *  Start evaluating services for a period of two or three months
 *  Publish the final recommendations on the WP.org page (along with the criteria used)
 
What do you think?",demetris
20284,"Show ""Bug Reporting Tips"" when people post in plugin forums",,WordPress.org site,,normal,minor,WordPress.org,enhancement,new,,2012-03-22T20:49:43Z,2012-03-22T21:25:35Z,"The vast majority of forum posts to plugin forums are bug reports, and most are from people who aren't very familiar with what information is required to actually deal with such a report reasonably.

I had to laugh when I started opening this ticket, because I am presented with what I'd love to see on wordpress.org!

I tweaked it a little to make sense for the situation:

--------------

REPORTING BUGS

    Are you using the latest release of the plugin, or the latest development/trunk version? If neither, please stop here and update first.

    What steps should be taken to consistently reproduce the problem?

    In case it's relevant to the issue, what is the expected output? What did you see instead?

    Does the problem occur even when you deactivate all plugins and use the default theme?

    Please provide any additional information that you think we'd find useful. (OS and browser for UI defects, server environment for crashes, etc.)
",MadtownLems
16880,Suggestion: login links on all pages,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2011-03-17T19:25:47Z,2011-03-18T20:05:47Z,"My wife is (finally) getting to work with WordPress at her job. As a relative newcomer to *really* digging into WP, she's hitting on a couple of things that I tend to just gloss over and ignore. One of them was this:

She wanted to log in to wordpress.org, but had forgotten her password. She did a password reset, and of course, afterward, she wanted to go back and manually reset her password to something she'd remember. So she went to the main wordpress.org homepage, only to find that there's no login link or any other indication of where one might go to change your password.

Of course, *we* know that you can get those links from the Support forum or the Extend area, but for her, it was not immediately obvious.

I just thought I'd suggest that the login block should appear on all pages of the site, not just on a few select ones.",dougal
17505,Trac is too liberal in sending out e-mail updates on issues,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2011-05-19T09:25:43Z,2011-05-19T14:06:04Z,"Something relatively minor that's been bugging me for a long time: Commenting on a Trac issue or adding oneself to the CC list should not send an e-mail to that user, or at least not by default. Suppressing such e-mail for self-made changes is the default on other bug reporting systems (e.g. JIRA), and it would be great if we could make it the default for WP Trac as well.",sbressler
20002,Update plugins_api to accept multiple slugs when querying 'plugin_information',,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2012-02-09T18:06:35Z,2012-11-14T11:12:07Z,"When querying plugins_api() with 'plugin_information', the second argument takes a parameter 'slug' on which to find the plugin. Please may the API be updated to optionally accept an array of slugs, so that you can query for multiple plugins in the same HTTP request?
",DJPaul
24066,Version field in Trac's New Ticket form inappropriate for WordPress.org site tickets,,WordPress.org site,,normal,minor,WordPress.org,enhancement,new,close,2013-04-12T18:29:32Z,2013-05-30T10:18:15Z,"WordPress.org site bugs are not related to WordPress versions.

After selecting ""WordPress.org site"" as a component on the Create New Ticket form in Trac, the version field should be either hidden or disabled.",Daedalon
18033,WordPress.org Support Forums Mobile Theme,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2011-07-08T05:57:50Z,2011-07-08T13:45:42Z,"I mentioned this on Twitter earlier today and Nacin replied that if I coded something up he'd be happy to deploy it.

So here is a ticket to discuss the possible mobile theme for the support forums. Theme could be released later on as well with bbPress possibly?",JarretC
16425,automatically search for similar tickets,,WordPress.org site,,normal,normal,WordPress.org,enhancement,new,,2011-01-31T19:47:20Z,2011-02-16T08:18:10Z,"I just submitted my first bug report to jQuery today. They use trac too, but they added a couple of things to the ticket creation page which I think would be pretty useful here too:

 * ~~big red notice: ""Are you in the right place?""~~
 * automatically search for similar tickets before pressing submit

See http://bugs.jquery.com/newticket",scribu
24601,core.trac. landing page - suggestions to improve UI,,WordPress.org site,,normal,minor,Awaiting Review,enhancement,new,,2013-06-19T01:51:47Z,2013-06-19T01:51:47Z,"http://core.trac.wordpress.org/ is the intro to trac but it's pretty confusing with regards to the UI and the text.

Some small improvements to make it more clear and in line with wordpress.org's UI. Maybe make the text little more clear as well, the sentences are disjointed.

Example attached

[[Image()]]",wycks
24537,Ability to like WordPress.org support forum messages,,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2013-06-07T16:25:05Z,2013-06-08T23:00:52Z,"I want the ability to express my liking towards messages on WordPress.org support forums with one click.

This makes the support forums feel more alive. Information is also more transparent: at the moment I have no idea how many people really liked any of the things I posted, because most of the likers won't put it into words. That's not just to save their precious time; by not writing ""Like #postnumber"" messages the threads stay more readable and to the topic.

Having a like button and displaying how many people (and who) liked a particular post the support forums will feel that much more like a living community.",Daedalon
23764,"Add ""works for this version"" to the plugin review form",,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2013-03-14T00:56:30Z,2013-04-04T04:49:05Z,"It would be nice if users could select whether a plugin ""works"" for their selected !WordPress version in the plugin review form.

Obviously, the main ""Does it work? form"" would stay on the main areas of the plugin page, but this would, I think, help balance the reviews:works stats for many plugins.

This would also be related to #23704.",DrewAPicture
21387,Add a CodeURI field to plugin file header,,WordPress.org site,,normal,trivial,WordPress.org,feature request,new,,2012-07-25T19:33:28Z,2012-07-25T19:38:48Z,"I would like to make it easier for developers not associated with a plugin to contribute modified versions.

The plugins SVN has grown to a size where it's no longer possible for a member of the WordPress community to create a new ticket and select a plugin from ""component"" to patch and improve software. Some plugins manage code on a site such as GitHub and commit a release into the plugins SVN.

I might use [http://wordpress.org/extend/plugins/wp-super-cache/ WP Super Cache] in my WordPress installation, one of 3.5 million installs using the plugin. I modify the plugin and would like to share my changes.

1. Try creating a [http://plugins.trac.wordpress.org/newticket new ticket in Plugins Trac]. The plugin is not listed as an available component.
1. Find the Plugin URI. If not WordPress.org look around on the author's site for links to another repo.
1. Search GitHub for the developer(s) and/or project
1. Email the developer(s) if they have a contact email listed

Give up?

File header currently includes a [http://codex.wordpress.org/File_Header#Plugin Plugin URI] which commonly points to the WP.org plugin page for the plugin or sometimes to a webpage on the developer's site. I could overload ""Donate"" to encourage code donations instead of monetary donations but that could be confusing.

I'd like to provide a explicit code URI field to encourage outside contributions of modifications in the GPL spirit.",niallkennedy
23982,Add array of screenshots to the Plugins API,,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2013-04-07T20:31:16Z,2013-04-07T20:31:16Z,The response to the `plugin_information` method of the Plugins API includes a formatted list (in a `<ol>` tag) of the plugin's screenshots. It'd be good if the response also included an element containing a plain array of the screenshot URLs.,johnbillion
23981,Add donate link to the Plugins API,,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2013-04-07T20:28:46Z,2013-04-08T01:29:16Z,The response to the `plugin_information' method of the Plugins API doesn't include an element for the donate link. It'd be good to get this in there for completeness.,johnbillion
24065,Allow previewing posts in WordPress.org support forums,,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2013-04-12T18:17:31Z,2013-04-12T20:47:26Z,"WordPress allows previewing posts before publishing everywhere else except on WordPress.org support forums. Preview functionality should be added there as well.

Ideally the preview would be shown next to the editor so users can spot and correct mistakes without reloading the page, just like when commenting here in Trac.",Daedalon
24535,An option to report inappropriate messages on WordPress.org support forums,,WordPress.org site,,normal,normal,Awaiting Review,feature request,new,,2013-06-07T15:34:51Z,2013-06-11T04:37:47Z,"WordPress.org support forums should have an option for reporting suspicious posts.

For example http://wordpress.org/support/topic/mysql-supported-only?replies=2#post-4109765 is a review that gives the plugin only 1 star based on the fact that its code seems MySQL specific, which is what all WordPress plugins do as required by core.

There should be a two-click option for reporting suspicious messages: one click to report and the second one to answer a verification dialog. The verification dialog should also ask for the reason for reporting.",Daedalon
23950,Company recognition,,WordPress.org site,,normal,minor,WordPress.org,feature request,new,dev-feedback,2013-04-05T15:13:24Z,2013-06-06T16:08:29Z,"My company, and many others, have a policy of sponsoring WordPress community contribution, core and otherwise, by strongly encouraging employees to participate during paid company hours. I want to open a discussion on how this company contribution could be recognised, while not allowing ""corporates"" to take over the credits page on each release.

 * Would greater recognition encourage your company to foster contribution?
 * Should companies contributing employee time to WordPress, particularly core contributions, be recognised?
 * How should companies be recognised?
 * What are the pros and cons for the WordPress project in allowing this kind of recognition?

This follows a [https://twitter.com/jenmylo/status/320144575266160640 Twitter conversation] re showing company names in the WordPress credits page, and Nacin's suggestion to open this discussion.",simonwheatley
16589,Localized version stats,nacin*,WordPress.org site,,normal,normal,WordPress.org,feature request,accepted,,2011-02-18T08:52:48Z,2012-04-29T15:57:20Z,"There have been some discussions on localized version stats:

* http://lists.automattic.com/pipermail/wp-polyglots/2009-November/003812.html
* http://lists.automattic.com/pipermail/wp-polyglots/2009-December/003868.html
* http://lists.automattic.com/pipermail/wp-polyglots/2010-July/004859.html
* http://wppolyglots.wordpress.com/2010/12/01/ive-found-some-discussions-about-local-2/
* http://wppolyglots.wordpress.com/2010/08/18/i-am-having-some-problems-with-site-stat/ (related)

Many translators would agree that it would be nice to have them back.",SergeyBiryukov
23720,Make it obvious that by default support for plugin and themes in the repository is not guaranteed,,WordPress.org site,,normal,minor,WordPress.org,feature request,new,,2013-03-08T07:10:13Z,2013-03-08T15:24:09Z,"Or even better, people should assume it doesn't exist.

This follows the discussion here http://tommcfarlin.com/upgrade-wordpress/

I know it is possible to add a text to that effect in the readme.txt file, but it is not the same, and you can't expect plugin authors to release new versions just to reflect the change in their available time.

Alternatively support policy should have a tab of its own on the plugin's page.

In addition, there should be a way to contact someone that will provide paid support for the plugin. By default it should be the plugin's author, but it might be a good idea for other people to be able to provide this kind of service as well.",mark-k
12475,Method to prune/leave feedback in Kvetch,ryan,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2010-03-02T17:12:25Z,2010-03-02T17:12:25Z,"I just saw two items about how it would be nice if upgrades were easier and if there was an automatic upgrader, and it got me thinking that there's no way to leave feedback or flag it if you're logged in.

It would be nice if there was some way to either leave feedback for when a Kvetch is no longer ""valid"" (for lack of a better term) because something has been implemented to address it, or to flag it for someone else to look at it and decide that it should be removed.

This could also be useful if a spam item was displayed, or if an offensive message was left.",ninjaWR
22736,Outdated plugins marked as 'Works' for the current version should show in search results,,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2012-12-04T18:11:57Z,2013-01-06T02:35:09Z,"When a plugin hasn't been updated in over 2 years, it gets the ""this is outdated"" message on WP.org and it no longer shows up in plugin search results from the Dashboard.

But if the plugin is marked as ""Works"" for the current version - even though it hasn't been updated in 2 years - we should make it so it shows up in search results.",DrewAPicture
13780,Twenty Thirteen: WordPress Version Requirement Support,ryan,WordPress.org site,,high,normal,WordPress.org,feature request,new,,2010-06-08T04:15:45Z,2013-06-12T20:14:56Z,"Right now, there seems to be no way to add a minimum required version to a themes style.css.

This should be used for the automatic update of themes build into WordPress. The theme update should only be applied after WordPress is updated to at least that version.",kretzschmar
19884,Unable to sort themes by language,,WordPress.org site,,normal,major,WordPress.org,feature request,reopened,,2012-01-24T13:21:34Z,2012-03-06T19:23:33Z,"I can't filter themes by language in themes site.
If I want theme in Hebrew (and rtl) I can't search its in the site.

So I had to look for it on other websites that may contain malicious code.
read: http://n2b.org/archives/2316 (Hebrew).",hatul
12336,WP.org Profiles - Trac Replies are not reported,ryan,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2010-02-22T19:02:51Z,2010-02-22T19:08:48Z,"Since WP.org Profiles already has forum post creations and replies, and Trac ticket creations, it makes sense to add the Trac replies as well.",archon810
12313,WP.org Profiles should add an RSS feed,ryan,WordPress.org site,,normal,normal,WordPress.org,feature request,new,,2010-02-21T01:01:52Z,2010-02-22T19:09:21Z,"I'm not sure where to report feature requests for WP.org Profiles so I'll do it here.

Considering the Profiles page http://profiles.wordpress.org/archon810 includes the Trac activity (unlike http://wordpress.org/support/profile/276841 which doesn't, though, it's also useful because it does include replies by others to my favorite topics), it'd be awesome to have an RSS feed for this Profile activity so that it can be used in someone's RSS reader or in my FriendFeed or Lifestream.

This may be a BuddyPress request, but since WP.org uses it, I'd say this ticket has merit either way.",archon810
11378,"Add ""Remove"" link to Widget instances which moves them to ""Inactive"" area",azaozz,Widgets,2.9,low,minor,Future Release,defect (bug),new,,2009-12-10T08:53:43Z,2010-03-22T23:21:04Z,"Per comments on #10379, we should have a ""Remove"" link on Widget instances that moves them to the inactive area.",markjaquith
19945,Bug in ../wp-includes/widgets.php,Barti112,Widgets,3.3.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-02-02T08:22:34Z,2012-07-05T14:21:33Z,"in this file there are at some places the following code:

$widget = array_merge($widget, $options);

it is possible that $options is not an array and i become a php-warning.

i think better is to check the arrays before you use this function:

if(is_array($widget) && is_array($options)){
  $widget = array_merge($widget, $options);
}
",Barti112
23934,"Calling sidebar two times, widgets have the same ID",,Widgets,,normal,normal,Awaiting Review,defect (bug),new,,2013-04-04T14:03:50Z,2013-04-16T00:20:26Z,"If we call in the Twenty Thirteen the function of the sidebar

{{{
<?php dynamic_sidebar( 'sidebar-2' ); ?>
<?php dynamic_sidebar( 'sidebar-2' ); ?>
}}}

then the widgets ids from each sidebars are the same.
",alexvorn2
21061,Can't drag an opened widget to other widget area,,Widgets,3.4,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-06-24T19:43:44Z,2012-06-24T19:43:44Z,"the placeholder does not appear and the option to drag the opened widget is not possible, to fix this: to auto-close the widget before drag event (sortable) or add option to accept opened widgets

http://wpimpact.com/wp-content/uploads/2012/06/Untitled-5.png",alexvorn2
21396,Categories widget reports categories without posts when they have custom posts,,Widgets,3.4.1,normal,normal,Awaiting Review,defect (bug),new,,2012-07-27T02:36:46Z,2012-07-27T04:27:26Z,"This problem may be related to #14084, but this report is specific to the behaviour of the Categories Widget.

- Create a custom post type eg. ""Products""
- Create a category eg. ""Photographs""
- Add some posts of type Products, assign them to category Photographs
- go to the blog page and the Categories widget lists Photographs as a category
- click on Photographs
- the ""Nothing Found"" post is shown.

There are no normal posts of category Photographs, but the widget lists a category that returns nothing.  I would have expected the widget not to list a category that has no normal posts.
",pkwooster
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
21046,"Dashboard ""Right Now"" widget hook should be right_now_end, not rightnow_end",,Widgets,3.4,normal,minor,Awaiting Review,defect (bug),new,,2012-06-22T07:35:20Z,2012-06-22T07:35:20Z,"In /wp-admin/includes/dashboard.php , the following callback is used:

{{{
do_action( 'rightnow_end' );
}}}

However, [http://codex.wordpress.org/Plugin_API/Action_Reference#Dashboard_.22Right_Now.22_Widget_Actions the documentation] and logic (for consistency with `right_now_content_table_end`, `right_now_table_end`, etc) would tell us that the hook should actually be called `right_now_end`.",schreifels
21287,Fix Widgets Helper position on start event - sortable,,Widgets,3.4.1,normal,normal,Awaiting Review,defect (bug),new,,2012-07-16T09:33:24Z,2012-12-13T12:31:33Z,"the widget helper moves (jumpes) to the left, to the parent left position... 

in Firefox this is not a bug but in chrome it does.

please take a look in the screenshot, the helper jumped to the left....

http://wpimpact.com/wp-content/uploads/2012/07/Untitled-2.png

I tried to use the :

{{{
ui.helper.css('left', ui.placeholder.position().left)
}}}
 
code but chrome does not set a placeholder position, I don't know why, maybe a chrome bug or in jQuery. 

",alexvorn2
11160,Inconsistancies in Naming and Using Sidebar Names and IDs.,azaozz,Widgets,2.9,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2009-11-17T12:58:55Z,2012-11-22T03:18:21Z,"register_sidebar() allows more sidebar names and IDs to be registered than dynamic_sidebar() recognizes as valid names and IDs.

For example, register_sidebar() allows me to name a side bar ""1"" with a id of ""first"". I don't know why anyone would choose those values, but register_sidebar() allows it [1].

{{{ register_sidebar( array('name' => 1, id => 'first') ); }}}


dynamic_sidebar() will not be able to find the sidebar given its name (1).
{{{
    if ( is_int($index) ) {
        $index = ""sidebar-$index""; /// 1 becomes 'sidebar-1'
        ...
}}}
The main problem is that dynamic_sidebar() is trying to process both IDs and names through the same variable ($index) while register_sidebar() separates the two with an array ( array('name' => 'Top', 'id' => 'sidebar-1' ).

According to the in-line docs for dynamic_sidebar():

    It is confusing for the $index parameter, but just know that it should just work. When you register the sidebar in the theme, you will use the same name for this function or ""Pay no heed to the man behind the curtain."" Just accept it as an oddity of WordPress sidebar register and display.


It does ""just work"" if you never use your own sidebar IDs.


I started looking at this because I wanted to use is_active_sidebar() which tests to see if a dynamic_sidebar() has anything in it. There is no get_dynamic_sidebar(). dynamic_sidebar() sends everything to the browser or returns false.
{{{
    register_sidebar( array('name' => 'Top') ); // id defaults to ""sidebar-1""
    ...

    if ( is_active_sidebar('Top') )
        dynamic_sidebar('Top');
}}}
Which fails because is_active_sidebar() just completely skips over searching for an id to go with a name. To get it to work you need to know when it was registered. Not something theme authors and designers are going to follow easily. There's a ticket to fix this: [http://core.trac.wordpress.org/ticket/10440 #10440]
{{{
    if ( is_active_sidebar(1) )
        dynamic_sidebar('Top');
}}}
Like dynamic_sidebar(), is_active_sidebar() converts 1 to ""sidebar-1"". Unlike dynamic_sidebar() it assumes everything is entered as an id.


unregister_sidebar() assumes its parameter (incorrectly named $name, not $id) is an id. But it wants a literal id, like ""sidebar-1"". unregister_sidebar(1) unregisters a sidebar with an id of 1, while dynamic_sidebar(1) tries to display a sidebar with an id of ""sidebar-1"".


=== Widgets (Admin Page) ===

The dynamic_sidebar() function is used by the Widgets management page. So, it is possible to create a sidebar with register_sidebar() that dynamic_sidebar() cannot find. You can populate it with drag and drop [2] and not have it appear on the web site.


== After Patch ==

If committed, this patch would remove the need for tickets [http://core.trac.wordpress.org/ticket/10440 #10440] and [http://core.trac.wordpress.org/ticket/10956 #10956]. It changes the current argument behavior of unregister_sidebar(), but doesn't break backward compatibility. It allows is_active_sidebar(), unregister_sidebar() and dynamic_sidebar() all point to the same sidebar.

=== Before ===

These all refer to the same sidebar:
{{{
	is_active_sidebar(1);
	unregister_sidebar('sidebar-1');
	dynamic_sidebar('Sidebar Top');
}}}

In an admittedly contrived case, dynamic_sidebar() would silently fail to allow this sidebar to show:
{{{ register_sidebar( array('name'=>'Sidebar Top', 'id' => 1) ); }}}



=== After ===
These all refer to the same sidebar (the first two would have broken before the patch):
{{{
	is_active_sidebar('Sidebar Top');
	unregister_sidebar('Sidebar Top');
	dynamic_sidebar('Sidebar Top');
}}}

After the patch this shows fine:

{{{ register_sidebar( array('name'=>'Sidebar Top', 'id' => 1) ); }}}

After the patch it is possible to force an argument to be only a name or only an id:
{{{
	is_active_sidebar(array( 'name' => 'Sidebar Top' ));
	unregister_sidebar(array( 'name' => 'Sidebar Top' ));
	dynamic_sidebar(array( 'id' => 1 ));
}}}



=== Notes ===

[1] register_sidebar() allows the user to override the default setting of: 'id' => ""sidebar-$i"",

[2] When you refresh the Widgets management page the widgets will disappear from the sidebar. They are still attached to a sidebar, but dynamic_sidebar() cannot see the sidebar.",CharlesClarkson
19309,Instantiating any widget with checkboxes defaulted on don't transfer as checked only in IE9.,,Widgets,3.2.1,normal,minor,Awaiting Review,defect (bug),new,,2011-11-21T02:26:30Z,2011-12-14T19:47:57Z,"In the Links widget, the first two checkboxes are checked by default if using IE8, FireFox or Webkit. If you use IE9, the first two checkboxes will not be checked after you drop the fresh widget instance into a widgetized region of the template or the inactive widgets region. This appears to be an incompatibility between IE9 and a JS library used for copying the data. I do see the proper checked=""checked"" parameter in the source code of the primary instance and all saved instances. It just doesn't instantiate that parameter in the drag and drop action.

A community plugin we developed also exposes this IE9 / JS library bug: http://wordpress.org/extend/plugins/becounted/

I found a developer discussion and possible fix related to a non WP application here: https://github.com/SteveSanderson/knockout/issues/89

Thank you!",beautomated
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
22253,Keep widget areas (and widgets) expanded upon page refresh in admin,,Widgets,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-10-22T11:02:10Z,2012-10-22T11:02:10Z,"This is a minor annoyance but noticeable one.

Every time you reload the Appearance -> Widgets admin page, the widget areas (and widgets) currently expanded become closed when the page is refreshed.",dgwyer
8910,Limit the RSS widget from using its own url,,Widgets,2.8,high,major,Future Release,defect (bug),reopened,,2009-01-21T19:40:59Z,2012-02-06T08:15:20Z,"'''NOTE:''' Copied from [http://trac.mu.wordpress.org/ticket/852] since 'This is really a WP issue, not strictly MU. Can you open a ticket in WP's trac?'

I admit that this is not a well conceived thought but I wanted to throw it out.

There's some discussion on the premium site about individual blogs using their rss widgets to display their own feeds. This of course causes issues with an unnecessary rss feed pull as well as old data since the feeds are cached.

May I suggest a check to see if the inputted RSS feed matches the individual blog's own rss feed, kick it out with an error and suggesting to the user that they use the Latest Posts widget instead?

Marking this as 2.8 as it's not a high priority. ",webmaestro
19695,Links widget does not generate width or height attributes when showing an image,,Widgets,3.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-12-30T07:10:48Z,2011-12-31T07:41:57Z,"It's a best practice to include width and height attributes in image tags to prevent reflows when the browser renders the page. Both PageSpeed and YSlow include rules that measure this.

{{{_walk_bookmarks()}}} in {{{/wp-includes/bookmark-template.php}}} does support adding images to the output of the Links widget. However, it doesn't output the width or height attributes.

It is possible to size images with CSS instead of by tag attributes (and PageSpeed rules consider this acceptable). But it doesn't seem ideal to force users to set dimensions in CSS, when the Link edit page doesn't accept CSS directly. Plus, I think it's best to have all the meta info about something in one place, not to set an image in a WP link, and then the dimensions in a theme's CSS file.",mbijon
12342,New widget option after calling register_widget creating empty widget,azaozz,Widgets,2.9.2,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-02-23T00:36:39Z,2010-11-13T07:45:48Z,"After I register a new widget class that has never been registered before, navigate to the widgets.php admin page and allow the option to be created automatically. The option value looks like this as serialized data:

{{{
a:2:{i:2;a:0:{}s:12:""_multiwidget"";i:1;}
}}}

As you can see there is an empty widget in there for some reason. Basically the unserialized option value looks like the following as an array:

{{{
array( '2' => array(), _multiwidget => 1 );
}}}

This is odd behavior since the first multi number has always started at 2, but with that previous array in there it starts at 3, and randomly which is what irks me. i can't seem to find when it happens or a pattern, so naturally this feels like a bug.

As this does not seem to break anything with the core functionality of WordPress, I would say this is normal priority. What this does do is pose many questions for those of us that dive deep into the Widget API, where our plugins and the functionality of them are dependent on how these things work. My widget plugin is quite large, and I need to know if I can depend on the first multi number of a widget when the class is first registered.

If this is not a bug, and normal functionality, I apologize, and would like to ask for a heads up on the subject.

Thank You,
Jim Isaacs",jimisaacs
22010,RSS Widget with hardcoded icon and style,,Widgets,,normal,normal,Awaiting Review,defect (bug),new,,2012-09-26T22:13:58Z,2012-09-26T22:13:58Z,"Standard RSS Widget outputs hardcoded icon and oldschool inline style=""border:0"" e.g.

{{{
<img style=""border:0"" width=""14"" height=""14"" src=""http://zdrojak.lamp.wikidi.net/wp-includes/images/rss.png"" alt=""RSS"">
}}}


this makes it hard to style (even more that the parent anchor has the same css class as following title, so you can't even hide it without some css3 only magic (:first)

IMO this part of WP_INC/default-widgets.php row 766-777


{{{
		$icon = includes_url('images/rss.png');
		if ( $title )
			$title = ""<a class='rsswidget' href='$url' title='"" . esc_attr__( 'Syndicate this content' ) .""'><img style='border:0' width='14' height='14' src='$icon' alt='RSS' /></a> <a class='rsswidget' href='$link' title='$desc'>$title</a>"";
}}}
+ line 764

should be replaced by standard way e.g.

{{{
		$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'RSS' ) : $instance['title'], $instance, $this->id_base );
}}}


so when someone wants to output there an icon, he could simply with the widget_title filter",thomask
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
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
19846,"Specify 'primary' sidebar, so widgets land in correct sidebar when changing themes",,Widgets,3.3.1,normal,normal,Awaiting Review,defect (bug),new,,2012-01-16T21:49:42Z,2012-06-25T19:58:19Z,"With the improvements to widget handling in 3.3, the widgets in a previous theme's sidebar are transferred to your current theme's sidebar. But there's no way to specify which sidebar should receive them.

For example, when you activate the Genesis theme it has three widget areas:
- Header Right
- Primary Sidebar
- Secondary Sidebar

If you install a fresh copy of WP and then activate Genesis, the Header Right widget area is populated with the 6 default widgets ( http://twitpic.com/8618x5 ). It's definitely not ideal for new users unfamiliar with this.

It would be great if there were some way to specify a primary sidebar when registering it, and that's the one the default widgets flow into. 


{{{
register_sidebar( array( 'name' => 'Primary Sidebar', 'id' => 'primary-sidebar', 'primary' => true );
register_sidebar( array( 'name' => 'Secondary Sidebar', 'id' => 'secondary-sidebar' );
// Default: 'primary' => false
}}}

There might be better ways to handle this, but I think it should be done in WP core. If it's up to the themes to solve, we'll have to use solutions like this: https://gist.github.com/1623202",billerickson
24577,Undefined index notice caused by default-widgets.php - WP_Widget_Recent_Posts,,Widgets,trunk,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-06-14T16:34:13Z,2013-06-14T16:34:13Z,"When updating the Recent Posts widget, it can cause an undefined index notice:
{{{
[14-Jun-2013 04:56:40] Backtrace from warning 'Undefined index: show_date' at /www/wp-includes/default-widgets.php 596:
	/www/wp-includes/widgets.php 232 calling update()
	<unknown file> <unknown line> calling update_callback()
	/www/wp-admin/includes/ajax-actions.php 1562 calling call_user_func_array()
	<unknown file> <unknown line> calling wp_ajax_save_widget()
	/www/wp-includes/plugin.php 406 calling call_user_func_array()
	/www/wp-admin/admin-ajax.php 72 calling do_action()
}}}

To fix, line 599 (based on current trunk):
{{{
$instance['show_date'] = (bool) $new_instance['show_date'];
}}}
would need to be replaced with:
{{{
$instance['show_date'] = isset( $new_instance['show_date'] ) ? (bool) $new_instance['show_date'] : false;
}}}

Patch file included.

Hope this helps ;-)
",jrf
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
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
18446,Widget removes fields w/ default HTML on initial save in IE8 and 9,,Widgets,3.2.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-08-16T15:51:02Z,2011-08-17T02:43:18Z,"Weird problem, testd in IE8/9, Chrome, and Firefox. If you have a widget, with HTML in the default value, IE8/9 will remove the field entirely. However, if you then paste the HTML back into the field and save, it works fine. This ONLY happens after the initial drag/drop then save of the widget. It even happens if you drag/drop the widget, change the field and click save.

Example Plugin: http://wordpress.org/extend/plugins/ft-calendar/
Widget: Upcoming Events Widget

The Event Template (event_template) is set by default to: 
{{{
<a href=""%URL"">%TITLE%</a>
}}}

The event_template  source for the Available Widget is:
{{{
<input type=""text"" value=""&lt;a href=&quot;%URL%&quot;&gt;%TITLE% (%TIME%)&lt;/a&gt;"" name=""widget-ft_cal_event_list[__i__][event_template]"" id=""widget-ft_cal_event_list-__i__-event_template"" class=""widefat"" />  
}}}
 
The event_template source for the widget after it is dragged to a widget area is:
{{{
<input type=""text"" value=""&lt;a href=&quot;%URL%&quot;&gt;%TITLE% (%TIME%)&lt;/a&gt;"" name=""widget-ft_cal_event_list[8][event_template]"" id=""widget-ft_cal_event_list-8-event_template"" class=""widefat"" /> 
}}}

The source for the widget after it is first saved is:
{{{
<input type=""text"" value=""&lt;a href=&quot;%URL%&quot;&gt;%TITLE% (%TIME%)&lt;/a&gt;"" name=""widget-ft_cal_event_list[8][event_template]"" id=""widget-ft_cal_event_list-8-event_template"" class=""widefat"" />
}}}

I setup a test to output $new_instance and $old_instance during the ""update"" process.

Step 1: Moving widget from Available Widgets to Widget Area (in IE):
{{{
NEW INSTANCE:
Array
(
    [title] =>
    [date] =>
    [number_of] => 1
    [date_types] => Month
    [limit] => 0
    [timeformat] => g:i a
    [dateformat] => jS
    [date_template] => %DATE%
    [monthformat] => F Y
    [month_template] => %MONTH%
)
OLD INSTANCE:
Array
(
)
}}}

Step 2: Saving widget in Widget Area:
{{{
NEW INSTANCE:
Array
(
    [title] =>
    [date] =>
    [number_of] => 1
    [date_types] => Month
    [limit] => 0
    [timeformat] => g:i a
    [dateformat] => jS
    [date_template] => %DATE%
    [monthformat] => F Y
    [month_template] => %MONTH%
)
OLD INSTANCE:
Array
(
    [title] =>
    [show_rss_feed] => off
    [show_ical_feed] => off
    [date] =>
    [span] => +1 Month
    [number_of] => 1
    [date_types] => Month
    [calendars] =>
    [limit] => 0
    [dateformat] => jS
    [timeformat] => g:i a
    [monthformat] => F Y
    [event_template] =>
    [date_template] => %DATE%
    [month_template] => %MONTH%
    [hide_duplicates] =>
)
}}}

Step 3: Pasting HTML code back into Event Template and saving Widget:
{{{
NEW INSTANCE:
Array
(
    [title] =>
    [date] =>
    [number_of] => 1
    [date_types] => Month
    [limit] => 0
    [timeformat] => g:i a
    [dateformat] => jS
    [date_template] => %DATE%
    [monthformat] => F Y
    [month_template] => %MONTH%
    [event_template] => <a href=""%URL%"">%TITLE% (%TIME%)</a>
)
OLD INSTANCE:
Array
(
    [title] =>
    [show_rss_feed] => off
    [show_ical_feed] => off
    [date] =>
    [span] => +1 Month
    [number_of] => 1
    [date_types] => Month
    [calendars] =>
    [limit] => 0
    [dateformat] => jS
    [timeformat] => g:i a
    [monthformat] => F Y
    [event_template] =>
    [date_template] => %DATE%
    [month_template] => %MONTH%
    [hide_duplicates] =>
)
}}}

Here is a screenr showing the problem not working in IE9 and working in Chrome: http://www.screenr.com/mkhs
",layotte
23909,Widgets Settings Loaded When No-Needed,,Widgets,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-03-30T16:02:05Z,2013-04-03T19:21:32Z,"Hi, This ticket about the performance in the back-end interface .

WordPress run query to get the active widgets settings in every page even in the dashboard ! , This makes the site admin slow especially when the site have many widgets !

You can use '''Debug Bar''' & '''Debug Bar Extender''' plugins to check the queries .",alex-ye
19444,Widgets page stale when pressing the Back button,,Widgets,,normal,normal,Awaiting Review,defect (bug),new,,2011-12-04T18:14:26Z,2011-12-05T16:54:31Z,"For several versions of Wordpress (maybe all of them), I've noticed that the Widgets page can be loaded from cache:

[[Image(http://img51.imageshack.us/img51/725/pictureen.png)]]

I'm not sure why this is happening, when the page is first loaded headers are sent including `no-cache, must revalidate, max-age=0`, all of which seems to be done correctly:

[[Image(http://img703.imageshack.us/img703/4526/screenshotwithshadow.png)]]

However, if I load the widgets page, make a change to the order of the widgets, then navigate to another page, and then use the back arrow to go back to the widgets page, a cached version of the widgets page (pre-change) is loaded. This can be especially troublesome if you spend a lot of time making changes and adding and removing widgets, or widget content, then go back to the page and make another change before you realize that the cached page is loaded, because it will overwrite all the changes that you had just previously spent so much effort on.

One possible solution would be to load all the widgets with AJAX if javascript is available, or possibly re-check that the correct widgets are in place with AJAX after the page loads (and use Javascript to reload the page again if they are not). The latter method would also enable the page to be loaded using standard methods if Javascript was not enabled.",willshouse
22116,bug in dynamic_sidebar function,,Widgets,3.4.2,normal,normal,Future Release,defect (bug),new,has-patch,2012-10-06T12:19:48Z,2013-05-21T19:46:58Z,"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
24283,is_active_widget() incorrect logic,,Widgets,,normal,normal,Awaiting Review,defect (bug),new,,2013-05-08T07:07:41Z,2013-05-08T08:08:37Z,"`is_active_widget()` only returns 'true' only if widget used inside sidebar.

But there is a provision to use widget directly using `the_widget()` function. I believe there is a need of alter the logic of just checking inside sidebars.",valllabh
24604,replace id atribute with class for calendar_wrap value of the Calendar Widget,,Widgets,,normal,minor,Awaiting Review,defect (bug),new,,2013-06-19T12:19:53Z,2013-06-19T12:19:53Z,"I think the `echo '<div id=""calendar_wrap"">';` should be replaced with `echo '<div class=""calendar_wrap"">';` because having the same id on the pages is not valid, if we will have two calendars on the page.

",alexvorn2
23423,sanitize_title() in dynamic_sidebar() restricts the use of specific characters for sidebar IDs,,Widgets,2.2,normal,normal,Awaiting Review,defect (bug),new,,2013-02-08T13:25:00Z,2013-02-19T05:20:42Z,"In the dynamic_sidebar() function in wp-includes/widgets.php uses sanitize_title() on the given index when it looks for a sidebar with a name that matches the index. After that it leaves the index value sanitized making it impossible to use characters not allowed by sanitize_title() in a sidebar ID.

By not overwriting the given index value with the sanitized version it would still be possible to use any character for the ID. To achieve this, lines 847-853

{{{
$index = sanitize_title($index);
foreach ( (array) $wp_registered_sidebars as $key => $value ) {
	if ( sanitize_title($value['name']) == $index ) {
		$index = $key;
		break;
	}
}
}}}

should be replaced with


{{{
$sanitized_index = sanitize_title($index);
foreach ( (array) $wp_registered_sidebars as $key => $value ) {
	if ( sanitize_title($value['name']) == $sanitized_index ) {
		$index = $key;
		break;
	}
}
}}}",paulvandermeijs
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
24493,widget programming using the function checked inside form bug,,Widgets,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-06-04T07:21:50Z,2013-06-05T22:41:21Z,"So what happens is if the wp_parse_args sets a value to true or 1, the checked box messes up the contents of the next input value if it contains a < or &lt;  however, setting the value to false or 0 it doesn't modify the contents of the next input box

Example code:
{{{
<?php

class ceo_do_nothing_widget extends WP_Widget {
	
	function ceo_do_nothing_widget() {
		$widget_ops = array('classname' => __CLASS__, 'description' => __('Does Nothing','comiceasel') );
		$this->WP_Widget(__CLASS__, __('Does Nothing','comiceasel'), $widget_ops);
	}
	
	
	function widget($args, $instance) {
		extract($args, EXTR_SKIP);
		var_dump($args);
	}
	
	function update($new_instance, $old_instance) {
		$instance = $old_instance;
		$instance['title'] = $new_instance['title'];
		$instance['dosomething'] = $new_instance['dosomething'];
		return $instance;
	}
	
	function form($instance) {
		$instance = wp_parse_args( (array)$instance, array(
					'title' => '&lt;&lt two',
					'dosomething' => true  // set this to false to see behavior
					));
		?>
		<input id=""<?php echo $this->get_field_id('dosomething'); ?>"" name=""<?php echo $this->get_field_name('dosomething'); ?>"" type=""checkbox"" value=""1"" <?php checked(true, $instance['dosomething']); ?> /> <strong><?php _e('First','comiceasel'); ?></strong><br />
		<input class=""widefat"" id=""<?php echo $this->get_field_id('title'); ?>"" name=""<?php echo $this->get_field_name('title'); ?>"" type=""text"" value=""<?php echo $instance['title']; ?>"" /><br /> 
<?php
	}
}

function ceo_widget_do_nothing_register() {
	register_widget('ceo_do_nothing_widget');
}

add_action( 'widgets_init', 'ceo_widget_do_nothing_register');
}}}

Notice the default value 'dosomething' currently set to true, if you set it to false the behavior doesn't happen.

This *only* happens on the first time adding the widget to the sidebar and then clicking update for the widget that it clears the data.   Every subsequent time everything's fine.

",Frumph
14876,wp_get_sidebars_widgets() assumes that widgets are enabled,,Widgets,,lowest,minor,Future Release,defect (bug),reopened,,2010-09-15T02:05:43Z,2010-12-04T09:34:28Z,"When a theme does not have any sidebars defined, wp_get_sidebars_widgets() will return the database option anyway.

This reveals a bug where a theme that does not have any widgets may still get the recent comments CSS injected into it. is_active_widget() is returning true because that widget was active when the sidebar option was last used.",nacin
19709,Add 'before_sidebar' and 'after_sidebar' attributes to register_sidebar(),,Widgets,3.3,normal,normal,Awaiting Review,enhancement,new,,2012-01-01T19:30:15Z,2012-01-01T19:30:15Z,"Whilst experimenting with some code recently I needed to have each widget area wrapped inside a container with the widget id as the container CSS class/id.

If used in a theme this widget area container usually has to be hard coded. This is the case for Twenty Ten, and Twenty Eleven.

It occurred to me that it would be very useful to have an extra couple of attributes available in register_sidebar() such as 'before_sidebar' and 'after_sidebar' so that developers have a consistent way to automatically add a wrapper to each widget area.

It would be additionally useful if you could do something like this to add the widget area id as the wrapper CSS class/id as required:

`'before_sidebar' => '<div class=""%3$s"">'`
`'after_sidebar' => '</div>'`

or

`'before_sidebar' => '<div id=""%3$s"">'`
`'after_sidebar' => '</div>'`

If this feature is considered then I'm not sure whether 'before_sidebar' or 'before_widget_area' is a better choice for the attribute name.",dgwyer
19675,Add a jQuery triggers to the widget save action,,Widgets,3.3,normal,major,Awaiting Review,enhancement,new,,2011-12-27T18:02:52Z,2011-12-28T01:59:14Z,"Line 241 (widgets.dev.js):

{{{
$(document).trigger('saved_widget);
}}}

or something...

This way we could nicely hook our own js on that ""saved_widget"" event, instead of stuffing our js inside the widget form function.

This is relevant for all events created by WordPress in the administration area, not just widget-save. 

Think of it like ""add_action"" for javascript...",digitalnature
16648,Add actions/filters to wp_widget_rss_output,,Widgets,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-02-24T18:03:40Z,2011-02-24T19:20:26Z,"There is no way to filter/modify output of the function wp_widget_rss_output contained in [http://core.trac.wordpress.org/browser/trunk/wp-includes/default-widgets.php default-widgets.php]

It would be nice to be able to filter the `<a>` tags so that attributes such as `class=` or `rel=` can be added.",dangayle
10976,Add before_content and after_content to widget options,azaozz,Widgets,,normal,normal,Future Release,enhancement,reopened,dev-feedback,2009-10-19T08:17:10Z,2012-10-01T11:26:58Z,"Hi,

I'd like to request adding a two new parameters to the widget array for easier customization when creating themes.

Parameters are : before_content and after_content (naming can be different)

Basicaly we have now before_widget, after_widget, before_title and after_title and it's working great, but if while creating a theme you'd like to add more complexity to the graphics surrounding widget you have to add more divs etc. to make it work and look great, and if you got some divs or anything else between title and content you got a problem. Sure you can put the code in the after_title and it will work, but what in case if someone will decide to leave the title empty ? Your widget lacks code and your theme messes up.

Please consider it! :)",newkind
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
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
23951,Add filter to all sidebar widget content,,Widgets,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-04-05T18:53:20Z,2013-05-15T21:40:41Z,"I'm looking for opinions of other people here before proposing an approach for this.

What I'm missing, as far as widgets are concerned, is a filter for changing widget content. I would suggest something along the lines of a filter for the content in WP_Widget's display_callback method.

Using this, small changes could be made to widgets while still maintaining upgradability when the plugin, core or theme updates the widget — something that is not the case when extending the widget and overriding the widget method.",Jesper800
20788,Add widget instance argument to widget_links_args filter,,Widgets,3.3.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-05-30T09:07:13Z,2012-09-13T09:25:07Z,"Using the `widget_links_args` filter (used in the default Links Widget class) as it is right now is a bit useless because one does not have access to the widget instance that applies the filter.

Widget instance may contain custom variables set by custom fields that may have been added to the widget form by plugins or themes using other filters.

Being able to access widget instance from within the filter function gives developers lots of possibilities to customize the widget.

My suggestion is simple: add `$instance` argument to the `widget_links_args` filter, like this (wp-includes/default-widget.php line 113):
{{{
wp_list_bookmarks(apply_filters('widget_links_args', array(
	'title_before' => $before_title, 'title_after' => $after_title,
	'category_before' => $before_widget, 'category_after' => $after_widget,
	'show_images' => $show_images, 'show_description' => $show_description,
	'show_name' => $show_name, 'show_rating' => $show_rating,
	'category' => $category, 'class' => 'linkcat widget'
), $instance ));
}}}",ragulka
20790,Add widget_title filter to Links Widget,,Widgets,3.3.2,normal,major,Awaiting Review,enhancement,new,dev-feedback,2012-05-30T09:23:29Z,2012-05-30T09:24:39Z,"Currently the Links Widget is the only default widget that doesn't support the widget_title filter. This is inconsistent and creates problems when plugin or theme authors want to filter widget titles - every other widget's title get's filtered, but not the Links WIdget.

Right now, displaying widget title is basically delegated to the wp_list_bookmarks function.
While this works, I suggest that this should be changed to be more consistent with other widgets - displaying widget title should really be the widget class job, not wp_list_bookmarks.

It should work with the existing wp_list_bookmarks function by specifying the categorize argument to be false.",ragulka
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_
18671,Allow themes to set default widgets,,Widgets,3.3,normal,normal,Awaiting Review,enhancement,new,,2011-09-15T06:52:41Z,2012-09-16T13:24:25Z,"Rather than having to use a hard-coded fallback HTML sidebar, it'd be cool if a theme could set up default widgets.

#17979 will somewhat remove the need for this but it could still be useful.",Viper007Bond
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
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
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
16613,Extend Widget API to allow sidebar/widget manipulation,,Widgets,3.1,low,normal,Awaiting Review,enhancement,new,dev-feedback,2011-02-21T22:55:17Z,2013-01-21T17:27:26Z,"There is currently no easy way to add a widget to a sidebar using code. We should add methods of doing this.

A good example usage of such an API could be when a new theme is activated, it could add it's custom widgets to it's sidebar.

API should provide support for adding widget X to sidebar Y (or even just the first sidebar) along with setting some options for the widget and where in the sidebar to add it (top vs. bottom).",Viper007Bond
20542,Extend register_widget to allow passing params as second argument,codearachnid,Widgets,3.4,normal,normal,Future Release,enhancement,new,,2012-04-25T11:56:19Z,2012-05-15T20:24:50Z,"I ran into an issue recently where I needed to make multiple calls of `register_widget('my_custom_class');` on the same class and have multiple unique widgets registered. 

The problem I ran into is that every time the same class is called it will overwrite the last instance of the same class during the widget constructor request `parent::__construct('unique_id', 'widget title');` This does not allow for reuse of the same class to instantiate multiple widgets. I found that if I were to extend the register method in WP_Widget_Factory to pass through arguments into the extended WP_Widget constructor that I can reuse the same class for multiple widget registations. I am working out the logic to implement this directly into /wp-includes/widgets.php for future functionality improvement.",codearachnid
19587,JavaScript hooks for widgets,,Widgets,,normal,normal,Awaiting Review,enhancement,new,,2011-12-17T15:39:56Z,2012-07-05T21:27:15Z,"Hi,
When a new widget is added to the sidebar, the javascript does not load for that widget. for example, if I just installed a plugin like  iCalendar Events Widget or live countdown timer (bare with me, it's not the plugin that's faulty and I'll tell you why) and after installation I want to add it to the sidebar, I go to the widgets area under prefferences and drag and drop it. 

'''The bug is this:''' untill I refresh the page, the jquery won't work for anything in that widget. Both of the plugins mentioned above have a datepicker (from jquery-ui-core) popup that shows once a textbox or button is clicked. if the widget has just been added, the jquery that's supposed to run and show the calendars does not work until the page is refreshed.

I received a ""not working"" status because of this and people complained that my plugin (live countdown timer) is broken. On further investigation, I found out that it was because !WordPress is not loading the javascript when first adding the widget in the sidebar and a refresh is required.",ciprian_vb
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
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
16173,Make the Calendar widget support custom post types,GautamGupta*,Widgets,3.1,normal,normal,Future Release,enhancement,accepted,,2011-01-10T05:35:22Z,2011-09-22T02:14:00Z,"The Calendar widget should have support for custom post types (much like how the tag cloud widget supports custom taxonomies) so that the plugins could just have `supports => array( ... 'calendar' ... )` and the calendar would display that post type in the option box (this is just an example, used in the patch I'm gonna attach, we may use some other arg, of course).",GautamGupta
16581,Meta widget: properly redirect user after logging in / out,,Widgets,3.1,normal,normal,Awaiting Review,enhancement,new,,2011-02-17T19:20:11Z,2011-02-18T02:11:07Z,"Inside Meta widget, there's a login link. However, the href attribute doesn't contain a redirection query argument.

So, there's a usability problem when someone is reading a post and want to comment, but can't because he's not logged in (and the blog requires logging in to comment). After logging in using the link inside Meta widget, the user is redirected to the admin area, instead of to the post he was reading. It would be a few clicks too many to go back to the post to comment.

The same thing can be applied to the Log out link (when the user's currently logged in). Instead of showing the blank `wp-login.php` form, he should be redirected back to the page where he clicked the link.",garyc40
20988,Open a closed sidebar box and enable droppable/sortable in it when you hover a draggable available widget over it,ldebrouwer,Widgets,3.4,normal,normal,Awaiting Review,enhancement,new,,2012-06-16T10:27:24Z,2012-06-16T11:00:29Z,"At the moment you have to explicitly open a sidebar box to allow it to except available widgets. In my humble opinion this is bad UX and the sidebar box should expand automatically when being hovered over with a draggable and it should accept the draggable to it's containing droppable/sortable as well.

The obstacles to overcome:
- Since the draggable in most cases overlaps the sidebar box when dragging over it ( unless you move really quickly ) it's hard to register a 'mouseenter'. This could be solved by setting the 'cursorAt' option for the draggable.
- Opening a sidebar box is trivial but activating the droppable/sortable only seems to kick in when the draggable has been released.",ldebrouwer
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
10457,Parse shortcodes in text widgets by default,westi,Widgets,2.8,normal,normal,Future Release,enhancement,reopened,,2009-07-21T11:27:06Z,2012-03-28T20:10:31Z,"Currently, shortcodes are only parsed within post content. It would, to my mind, be a nice enhancement to allow them to be parsed from within text widgets as well. The implementation is trivial, so the only real question is what problems this might throw up.",ionfish
23012,Refresh the code for the default widgets,Viper007Bond*,Widgets,3.5,low,minor,Future Release,enhancement,accepted,,2012-12-20T01:49:37Z,2012-12-21T21:28:45Z,"The default widgets serve as examples for many people to make new widgets. We should make sure they're up to date in terms of coding standards and best practices. There's many places where this is not the case.

A few examples:

* `$instance['text'] = stripslashes( wp_filter_post_kses( addslashes($new_instance['text']) ) );`
* `$text = esc_textarea($instance['text']);` rather than at output

Also tons and tons of formatting issues.

I'll volunteer to take this on.",Viper007Bond
23520,Rename sidebars to something more appropriate,,Widgets,,normal,normal,Awaiting Review,enhancement,new,,2013-02-19T08:38:12Z,2013-02-19T13:43:59Z,"The things that we put widgets into are no longer just sidebars. Maybe they never were just sidebars. Widgets go into areas that can literally be displayed anywhere within themes.

Proposal: rename ""Sidebars"" to ""Widget Areas"".

Discuss.",johnbillion
23850,Searchform Format,SergeyBiryukov,Widgets,trunk,normal,normal,3.6,enhancement,reopened,commit,2013-03-22T19:51:03Z,2013-06-06T17:20:41Z,We should use a filter instead of an argument.,WraithKenny
20180,Should wrap all links in a div,,Widgets,,normal,normal,Awaiting Review,enhancement,new,,2012-03-05T19:43:51Z,2012-03-06T02:28:10Z,"The links widget creates a separate div for every category. This does not allow to style all categories at once.

Please wrap all links into one more level of div.",porton
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
16125,Tag cloud widget: hide dropdown when there's only one taxonomy,GautamGupta*,Widgets,3.1,normal,normal,Future Release,enhancement,accepted,dev-feedback,2011-01-06T18:56:09Z,2012-05-07T16:20:55Z,"~~We should use `get_taxonomies()` instead of `get_object_taxonomies()`. Attaching a patch.~~ [20285]

When there's only one taxonomy to select from, we shouldn't show the dropdown at all.
",GautamGupta
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
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
24040,"Use ""posts"" instead of ""topics"" (in tagcloud tooltips)",,Widgets,,normal,minor,Awaiting Review,enhancement,new,,2013-04-11T01:56:36Z,2013-04-11T06:30:42Z,"Hello,

I suggest use ''post(s)'' instead of ''topic(s)'' [http://core.trac.wordpress.org/browser/trunk/wp-includes/category-template.php#L563 here].

""Topics"" is very related to forums (bbPress), while ""Posts"" are more general term I think?

Thanks",Dianakc
15550,WP_Nav_Menu_Widget needs a filter for args,,Widgets,3.1,normal,normal,Future Release,enhancement,new,,2010-11-23T21:48:57Z,2011-01-13T08:34:07Z,"I have a very common need to change the walker of a menu printed by WP_Nav_Menu_Widget. The only way to do this is by injecting a new walker on the args array.

By so, I propose changing '''default-widgets.php''':

{{{
function widget($args, $instance) {

	// Get menu
	$nav_menu = wp_get_nav_menu_object( $instance['nav_menu'] );

	if ( !$nav_menu )
		return;

	$instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);

	echo $args['before_widget'];

	if ( !empty($instance['title']) )
		echo $args['before_title'] . $instance['title'] . $args['after_title'];

	wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) );

	echo $args['after_widget'];
}
}}}

To:
	
{{{
function widget($args, $instance) {

	// Filter for args
	$args = apply_filters('nav_manu_widget_args', $args);

	// Get menu
	$nav_menu = wp_get_nav_menu_object( $instance['nav_menu'] );

	if ( !$nav_menu )
		return;

	$instance['title'] = apply_filters('widget_title', $instance['title'], $instance, $this->id_base);

	echo $args['before_widget'];

	if ( !empty($instance['title']) )
		echo $args['before_title'] . $instance['title'] . $args['after_title'];

	wp_nav_menu( array( 'fallback_cb' => '', 'menu' => $nav_menu ) );

	echo $args['after_widget'];
}
}}}
",brodock
12354,WP_WidgetArea class,,Widgets,,normal,normal,Future Release,enhancement,assigned,dev-feedback,2010-02-23T22:02:48Z,2010-06-25T17:19:31Z,"After a short discussion involving the state of the Widget API within another ticket's comments, it was proposed to me to create new ticket on this subject.

The idea is that in updating the Widget API, like the WP_Widget class, widget areas will have a similar registry structure.

In my opinion though, I believe that for backwards compatibility it should be integrated but remain separate from the current API for controlling sidebars, also like the WP_Widget class.

In the previous discussion, I said that a possibility could be creating a WP_WidgetArea class, and a WP_WidgetArea_Factory class to register and unregister them.

After some thought though, I believe this is pretty much unnecessary.

What is a widget? - It is a GUI module with a client-side and administrative view, wrapping how to control, use, and display data.

It is a form of MVC, and that's basically it! That being realized, I don't see a problem with adding one more default widget to the core:

WP_WidgetArea extends WP_Widget

This will allow dynamic generation of widget areas. Implementing how to edit these areas within the current interface is another story, though I have a kind of hacked logic I am unhappy with working in a released plugin of mine.

In the future, using widgets for widget areas will eventually depreciate the entire sidebar API. It would only depend on one global area to add and pull widgets from (the theme... cough...).

Also, with custom post types now becoming more prevalent, and this is just my imagination talking, widgets could become another form of the post object:

post_type = widget",jimisaacs
11387,Walker Widget System,ShaneF*,Widgets,,normal,normal,Future Release,enhancement,accepted,needs-docs,2009-12-10T16:56:00Z,2011-01-08T19:34:01Z,"This is a new system for Widgets. The design for this system is based on the fact that every theme is different.

Currently the widget system does not care about one theme. It will still output it's own formating structure based on it's design and then bassed on a messy 'register_sidebar' arguments wrap that data inside one another.

The idea behind a Walker Widget system is that instead of the Widget outputing the data, it send it to a Walker where it assigns the relevant information and the theme's ""Widget Design"" class holds how Widget boxes are created based on the values pushed through the walker.

For example in my theme functions.php file:

{{{
class Walker_Widget_Rabbit extends Walker_Widget {

	function start_widget($args, &$output) {
		
		// @todo Updated with the correct vars.
		$output .= do_action('sidebar_before_module', $id);
		$output .= do_action('sidebar_before_module_' . $id);
		
		$output .= sprintf( ""<div id='%s' class='module widget %s'>"", $args['widget_id'], $args['classname'] );
	}
	
	function title_widget($args, &$output) {
		$output .= ""<div class='head'><h3>"" . $args['title'] . ""</h3></div>"";
		/*
		if ((bool) $this->get_option('scrolling') && $scroll['enabled']) { 
			printf(__(""navi: <a id=\""prev_%s\"">prev</a>&nbsp;/&nbsp;<a id=\""next_%s\"">next</a>""), $scroll['key'], $scroll['key']);
		} 
		*/
	}

	function content_widget($args, &$output) {
		$output .= ""<div class='wrap'>"" . $this->content_style($args, $args['output']) . ""</div>"";
	}

	function content_style($args, $output) {
		
		/*
		 * Here I am going to figure out how we are going to wrap most content
		 * and detirme if the information is scrolled information.
		 */

		$style = $args['style'];
		switch ($style) {
			case 'none': 
				$style = $output; 
				break;
			default: 
				$style = ""<ul class='dash-strip'>"" . $output . ""</ul>"";
		}
		return $style;
	}
	
	function content_scroll($args, $area = 'top') {
		//	@todo <div class=""content-scroll-large""> and <div class=""content-scroll"">
	}
	
	function end_widget($args, &$output) {
		$output .= ""</div>"";
		// @todo Updated with the correct vars.
		$output .= do_action('sidebar_after_module', $id);
		$output .= do_action('sidebar_after_module_' . $id);
	}
	
}
}}}

This also allows users to manipulate the data/design even further once they get it from the widget.

I have tested this on the default theme of WordPress with the all 12 of the built in WordPress widgets and they act/look just like if it was hardcoded into the system itself.
",ShaneF
16443,We need a way to programmatically tell if we are in a sidebar,,Widgets,2.2,normal,normal,Future Release,enhancement,new,,2011-02-02T20:10:28Z,2012-04-24T13:21:16Z,There is currently no way to tell if you are in_a_sidebar or doing a widget which makes me a sad stallman lookalike.,jorbin
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
23328,While editing widgets in accessibility mode the position can be indicated by widget titles instead of numbers,,Widgets,,normal,normal,Awaiting Review,enhancement,new,,2013-01-30T18:32:33Z,2013-03-04T20:06:35Z,"Guess it title says it all. Right now you need to figure out the position you want the widget to be at and try remember it while editing the widget.

I suggest to change the text text of the position column header from ""position"" to ""position after"" and use labels in the drop down

1 => ""top""

2 => top widget title

3 => second widget title[[BR]]

etc",mark-k
14466,Widget position uses footer position styling,koopersmith,Widgets,3.0,normal,normal,Future Release,enhancement,reopened,,2010-07-30T08:13:12Z,2012-11-07T22:35:08Z,"Hi,

If you add a widget position called Footer with id footer, it has exactly the same id as the footer of the whole admin and because of that the widget position uses the styling from admin footer ie. bigger padding, italic font, darker background. Please see the attached pic.

newkind",newkind
24008,Widgets title improvement,,Widgets,,normal,normal,Awaiting Review,enhancement,new,,2013-04-09T18:12:17Z,2013-04-09T18:12:17Z,"we have now: 

{{{

$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? __( 'Categories' ) : $instance['title'], $instance, $this->id_base );
}}}


why not to use?


{{{
$title = apply_filters( 'widget_title', empty( $instance['title'] ) ? $this->name : $instance['title'], $instance, $this->id_base );
}}}
",alexvorn2
17201,dynamic_sidebar performance,,Widgets,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-04-21T07:48:22Z,2011-06-29T12:04:49Z,"I've got a few dynamic sidebars (say 6 or 7) and the dynamic_sidebar function spends 1/4 of a second only calling sanitize_title.

See the piece of code on wp-includes/widgets.php:

{{{
	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;
			}
		}
	}
}}}

That's occurs evenf if you provide an id, and not the sidebar name.
We could avoid that by checking before trying to use the sidebar name if a sidebar exists with that id.

Like so...
{{{
	if ( is_int($index) ) {
		$index = ""sidebar-$index"";
	} elseif ( empty($wp_registered_sidebars[$index]) || !array_key_exists($index, $sidebars_widgets) || !is_array($sidebars_widgets[$index]) || empty($sidebars_widgets[$index]) ) {
		$index = sanitize_title($index);
		foreach ( (array) $wp_registered_sidebars as $key => $value ) {
			if ( sanitize_title($value['name']) == $index ) {
				$index = $key;
				break;
			}
		}
	}
}}}",mrubiolvn
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
12133,get_field_id() and get_field_name() break when passed a name in array format,azaozz,Widgets,2.9.1,normal,minor,Future Release,enhancement,new,,2010-02-05T02:17:10Z,2013-01-21T23:13:01Z,"`get_field_name()` and `get_field_id()` are member functions of the widget API which generate the names and ids for fields on the widget admin screen.

A custom widget cannot use an array format name with this function.

For example, 'myfield[]' or 'myfield![3]' is a valid name for an input field, but this name cannot be passed to `get_field_name()` as the function will strip right square brackets from the name.

Patch upcoming when I find the time.",johnbillion
24509,"rename ""WP_Nav_Menu_Widget"" class name with ""WP_Widget_Nav_Menu""",,Widgets,3.5.1,normal,minor,Awaiting Review,enhancement,new,,2013-06-06T07:30:11Z,2013-06-09T02:28:46Z,"this ticket is for renaming the Navigation Menu widget name from ""WP_Nav_Menu_Widget"" to ""WP_Widget_Nav_Menu"", as by default a widget name should start with ""WP_WIdget_""...

The full list of widget class names:


{{{
WP_Widget_Pages
WP_Widget_Calendar
WP_Widget_Archives
WP_Widget_Links
WP_Widget_Meta
WP_Widget_Search
WP_Widget_Text
WP_Widget_Categories
WP_Widget_Recent_Posts
WP_Widget_Recent_Comments
WP_Widget_RSS
WP_Widget_Tag_Cloud
WP_Nav_Menu_Widget
}}}
",alexvorn2
19912,Add Widget Groups and Locations,,Widgets,3.3.1,normal,normal,Future Release,feature request,new,,2012-01-28T04:54:13Z,2012-04-24T17:00:42Z,"Currently, if a widget cannot be properly matched to a sidebar when switching themes, it is moved to the ""Inactive widgets"" section (debated for quite a while here: #17979).

With the addition of the planned appearance improvements, it would be nice if we could let the user manipulate widgets as a group. Instead of trying to be too clever, we can let the user review where the widgets are positioned in their theme.

Conceptually, this is very similar to how nav menu locations currently operate. Menu items are grouped in menus (created by the user), which can be assigned to menu locations (created by the theme). Likewise, widgets would be organized into groups (created by the user), and could be assigned to widget locations (created by the theme). Currently, ""widget areas"" are on double-duty — they act as both ""widget groups"" and ""widget locations"".

I think the first step is to add the concept of ""widget groups"" into the current API and turn the existing ""widget areas"" into locations mapped to these groups.

If we're looking to compartmentalize the patches, these initial changes could initially be added without modifying the widgets UI. Instead, we could temporarily link a widget group to a widget area behind the scenes. That said, the benefits could only be fully realized with a few tweaks to the widgets UI.",koopersmith
23008,Add a Hook To Hide Inactive Widgets,,Widgets,3.5,normal,minor,Awaiting Review,feature request,new,dev-feedback,2012-12-19T19:59:12Z,2012-12-19T20:21:09Z,"Hello,

This is my first feature request so hopefully I'm going through the process correctly. Onto the request...

Adding a hook to remove or hide the Inactive Widgets sidebar on the WordPress Admin Widgets page would be very useful for developers who don't use the area and want to be able to hide it for better UX.

If this is approved I would love to submit a patch.  :)",BFTrick
20791,Add tolerance: 'pointer' option to widgets,,Widgets,3.3.2,normal,normal,Awaiting Review,feature request,reopened,dev-feedback,2012-05-30T11:26:20Z,2012-12-15T16:48:03Z,"I made a conclusion that it's more easy to sort the widgets in a sidebar if is with tolerance: 'pointer' option enabled...

please consider adding this to sortable function of the widgets. ",alexvorn2
20596,Adding more actions to a widget,,Widgets,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-05-02T00:14:28Z,2012-05-02T05:45:48Z,"On the Widget UI, there is a ""Close"" button, aside with the ""Delete"" button, and I that developers should have a way to add more of those.

For exemple, I would see as a good use case when you have a way of previewing the widget.

Because right now the only way is by JS which is kinda of lame.

Thanks,",webord
16109,Preview wigdets before publish,,Widgets,3.1,normal,normal,Future Release,feature request,new,,2011-01-05T13:26:50Z,2012-05-02T16:11:45Z,"Why isn't this possible yet? Before publishing a widget that you can preview it. That way you can get the right settings out without first needing to publish it for the whole site viewers.
A preview would be very nice before publishing a wigdet like editting a post...",JonezJeA
18466,Reorganizing Widget Areas,,Widgets,,normal,minor,Awaiting Review,feature request,new,,2011-08-18T00:18:17Z,2012-02-06T15:56:29Z,"The widget-area boxes should be draggable as a whole. Meaning the user should be able to drag and drop the area boxes up and down as a way to rearrange the areas.

Sometimes I want to move the entire area's contents to a different area, and the best way would just be to drag the box to a different position in the vertical order.",audiobahn
24605,Returning widget ID as third parameter of  widget_text filter,,Widgets,3.5.1,normal,normal,Awaiting Review,feature request,new,,2013-06-19T13:33:22Z,2013-06-19T14:04:29Z,"I would like to identify the current widget when using widget_text filter. If the widget ID will be returned by the filter, it would be very useful. A solution can be adding a third parameter in the wp-includes/default-widget.php near the line 401:

Original:
{{{
$text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' :
        $instance['text'], $instance );
}}}


Offered:
{{{
$text = apply_filters( 'widget_text', empty( $instance['text'] ) ? '' : 
        $instance['text'], $instance, $this->id );
}}}

",namarpi
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
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
23296,"3.6 - Edit Post, Invalid implode after Core-Update",,Warnings/Notices,,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2013-01-25T23:48:51Z,2013-01-26T11:51:16Z,"'''Error:''' implode(): Invalid arguments passed

The implode function have invalid Arguments.

'''URL:''' /wp-admin/edit.php
[[BR]]'''HTTP referrer:''' http://adrean-test.eatserver.nl/wp-admin/update-core.php

'''FIX (wp-includes/compat.php - Line 32):'''
{{{
return ($chars  ? implode( '', $chars ) : array());
}}}
'''Stacktrace:'''
{{{
in implode called at /www/htdocs-test/wp-includes/compat.php (32)
in _mb_substr called at /www/htdocs-test/wp-includes/compat.php (18)
in mb_substr called at /www/htdocs-test/wp-includes/formatting.php (3096)
in wp_html_excerpt called at /www/htdocs-test/wp-includes/admin-bar.php (230)
in wp_admin_bar_site_menu called at ? (?)
in call_user_func_array called at /www/htdocs-test/wp-includes/plugin.php (487)
in do_action_ref_array called at /www/htdocs-test/wp-includes/admin-bar.php (58)
in wp_admin_bar_render called at ? (?)
in call_user_func_array called at /www/htdocs-test/wp-includes/plugin.php (406)
in do_action called at /www/htdocs-test/wp-admin/admin-header.php (113)
in require_once called at /www/htdocs-test/wp-admin/edit.php (220)
}}}",hovida
15394,"Ancient ""Are you sure you want to do this"" now confusing",,Warnings/Notices,3.1,normal,trivial,Future Release,defect (bug),new,early,2010-11-11T21:51:26Z,2012-09-15T00:14:05Z,"The default failing nonce message did not pass the wife test. Asking ""Are you sure you want to do this?"" now that there is no longer ""OK"" and ""Cancel"" buttons is confusing and my wife just asked me ""How do I tell I'm sure?""

Not sure about the best wording, I took the same approach as Twitter's expired OAuth token links with a message that does not let user think there is something to confirm.",ozh
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
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
23416,Form handlers assume $_POST elements will be strings,,Warnings/Notices,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-02-07T19:26:18Z,2013-02-08T16:59:16Z,"I'm running Wordpress 3.5.1 on PHP 5.3.

This example is from lines 50-53 of wp-comments-post.php:

{{{
$comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;
$comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;
}}}

The issue is that If your post data contains something like:
{{{
author[]=foo&author[]=bar
}}}
or
{{{
comment[]=foo
}}}
Then the corresponding values in $_POST will be arrays, not strings, causing an E_WARNING.

There seem to be a number of other places where $_POST data is passed directly to PHP string functions as well, causing potential warnings. These should be handled gracefully by checking the type of the element being grabbed from $_POST first:

{{{
$comment_author       = ( isset($_POST['author']) && is_string($_POST['author']) )   ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) && is_string($_POST['email']) )     ? trim($_POST['email']) : null;
$comment_author_url   = ( isset($_POST['url']) && is_string($_POST['url']) )         ? trim($_POST['url']) : null;
$comment_content      = ( isset($_POST['comment']) && is_string($_POST['comment']) ) ? trim($_POST['comment']) : null;
}}}",tabacco
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_
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
19706,NOTICE: wp-admin/includes/post.php:834 - Illegal member variable name,,Warnings/Notices,3.3,low,normal,Awaiting Review,defect (bug),new,close,2012-01-01T00:30:43Z,2012-04-30T15:32:28Z,"Received this notice:

{{{NOTICE: wp-admin/includes/post.php:834 - Illegal member variable name}}}

Traced it to this in {{{wp_count_posts()}}}:

{{{
	$count = $wpdb->get_results( $wpdb->prepare( $query, $type ), ARRAY_A );

	$stats = array();
	foreach ( get_post_stati() as $state )
		$stats[$state] = 0;

	foreach ( (array) $count as $row )
		$stats[$row['post_status']] = $row['num_posts'];

	$stats = (object) $stats;
}}}

Apparently I have a post with a post status of a blank string. So that gets set to an array key, and then is cast to an object. WP doesn't like that.

Proposed:

{{{
	foreach ( (array) $count as $row ) {
		if ( !empty( $row['post_status'] ) )
			$stats[$row['post_status']] = $row['num_posts'];
	}
}}}

Just discard empty post_status rows.",markjaquith
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
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
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
23406,Some notices messages which can maybe fixed,,Warnings/Notices,3.5.1,normal,trivial,Awaiting Review,defect (bug),new,,2013-02-06T17:59:55Z,2013-02-06T18:07:32Z,"Hi,

I use wordpress multisite on my own cms and I notice there are many notice messages when I load WP (include($wppath.""includes/wp.inc.php"") :

1) Declaration of Walker_Category::start_el() should be compatible with that of Walker::start_el()) in /wp-includes/category-template.php line 902

2) Declaration of WP_Scripts::set_group() should be compatible with that of WP_Dependencies::set_group()) in wp-includes/class.wp-scripts.php

3) Declaration of Walker_Nav_Menu::start_el() should be compatible with that of Walker::start_el()) in wp-includes/nav-menu-template.php

4) is_a(): Deprecated. Please use the instanceof operator) dans le fichier wp-includes/capabilities.php

Hope it helps
Regards,
Alexandre",uniterre
24365,Suppressed errors during install,,Warnings/Notices,,normal,normal,3.6,defect (bug),new,,2013-05-19T12:18:35Z,2013-05-28T13:40:02Z,"Reported in http://wordpress.org/support/topic/36-beta3-24284-throws-a-stream-of-suppressed-errors-during-install:
{{{
PHP Strict standards:  Redefining already defined constructor for class WP_Widget in .../wp-includes/widgets.php on line 93
PHP Notice:  unserialize(): Error at offset 0 of 38 bytes in .../wp-admin/includes/upgrade.php on line 1420
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 589
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 622
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 644
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 655
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 662
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 675
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 675
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 696
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 702
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 708
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 720
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 733
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 746
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 760
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 774
PHP Strict standards:  Only variables should be assigned by reference in .../wp-admin/includes/schema.php on line 787
}}}",SergeyBiryukov
16651,Warnings on dashboard: Notice: Trying to get property of non-object in wp-includes/capabilities.php,,Warnings/Notices,3.0,normal,normal,Awaiting Review,defect (bug),reopened,,2011-02-24T19:27:46Z,2012-12-20T08:59:34Z,"I just upgraded a local install to 3.1 and have the debug mode on. Now, on the dashboard the ""Recent Comments"" box is filled with notices. I will attach a screen-shot of the notices. Though this doesn't show when debug mode is off, I have to assume that something isn't working with all of these warnings.",grandslambert
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
24491,get_page_uri() generates PHP warnings when invalid page passed in,,Warnings/Notices,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-06-04T01:51:45Z,2013-06-04T01:53:11Z,"`get_page_uri()` needs to make sure a valid result came back from the `get_post()` call before trying to access properties of `$page`, otherwise warnings are generated.",Viper007Bond
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
21394,query.php: get_queried_object() result cannot be assumed to be non-NULL,wonderboymusic*,Warnings/Notices,3.3.2,normal,normal,Future Release,defect (bug),accepted,has-patch,2012-07-26T21:37:03Z,2013-05-24T16:13:54Z,"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
20633,wp-includes/comment.php:738 - Undefined property: WP_Query::$comments,,Warnings/Notices,3.3.2,normal,normal,3.6,defect (bug),new,dev-feedback,2012-05-07T20:50:33Z,2013-03-15T09:29:29Z,{{{get_comment_pages_count()}}} can throw a notice. We use {{{$wp_query->comments}}} without checking it first.,markjaquith
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
22239,wp_ob_end_flush_all() tries to destroy non-destroyable output buffers,,Warnings/Notices,,normal,normal,Awaiting Review,defect (bug),new,,2012-10-21T03:20:47Z,2012-10-21T03:28:19Z,"`wp_ob_end_flush_all()` currently tries to flush & destroy every PHP Output buffer that is enabled on the current installation.
However, not every type of PHP Output buffer can be destroyed, which will cause a PHP Notice when attempts to do so are made.
An example of this is PHP extensions such as New Relic, or PHP output buffers created with the `$erase` flag set to false in `ob_start()`

An example is when New Relic is installed on a host, also [https://newrelic.com/docs/php/php-agent-faq#rum-obclean see New Relics FAQ entry] on the issue.
{{{
( ! ) Notice: ob_end_flush(): failed to send buffer of New Relic auto-RUM (1) in ../trunk/wp-includes/functions.php on line 2641
Call Stack
#	Time	Memory	Function	Location
1	0.8510	4328360	shutdown_action_hook( )	../load.php:0
2	0.8510	4328440	do_action( )	../load.php:556
3	0.8510	4329856	call_user_func_array ( )	../plugin.php:406
4	0.8510	4329888	wp_ob_end_flush_all( )	../plugin.php:406
5	0.8511	4330064	ob_end_flush ( )	../functions.php:2641
}}}

Somewhat similar to #18239
I'm not sure of what the ideal solution for this would be for !WordPress, but wanted to record the issue being known.",dd32
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
16698,Better Table field value upgrade check (minor),,Warnings/Notices,3.1,normal,minor,Awaiting Review,enhancement,new,reporter-feedback,2011-02-28T10:31:06Z,2011-03-04T12:48:04Z,"line 1463 on /wp-admin/includes/upgrades.php is

{{{
preg_match(""|"".$tablefield->Field."" ([^ ]*( unsigned)?)|i"",$cfields[strtolower($tablefield->Field)], $matches);

$fieldtype = $matches[1];
}}}

There is no check IF a $matches is found. If there is no match found an error will be displayed 'undefined index 1'. An Error message could be added here.

Can happen : if the sql code contains no spaces between the fieldname and the type it will generate the not found [1].







",cogmios
23062,Issue warnings for deprecated and wrong behavior in pre-release builds,,Warnings/Notices,,normal,normal,Future Release,enhancement,new,,2012-12-27T16:51:05Z,2013-05-16T11:56:07Z,"Coming out of #22873 and the [https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2012-12-12&sort=asc#m518273 associated development chat]:

_doing_it_wrong(), _deprecated_argument(), _deprecated_file(), and _deprecated_function() should issue an E_USER_WARNING up to and including RC1, and an E_USER_NOTICE otherwise.",nacin
20213,Pagination fails silently when mysql.trace_mode is on,,Warnings/Notices,3.4,normal,normal,Awaiting Review,enhancement,new,,2012-03-10T16:06:15Z,2012-03-10T16:06:15Z,"A sysadmin left enabled '''mysql.trace_mode''' on php.ini without me knowing about it, and I spent hours trying to find out why the '''next_posts_link''' wasn't showing up. 

This is very hard to debug, because 
* it fails silently, with no error to look for
* it's hard to repro on a dev server, which may not have the same php.ini settings as in staging/prod (ideally should, but rare for 99% of devs) 

Other people had this same issue:
* ""[http://wordpress.org/support/topic/page-navi-not-working-with-mysql-5134-amp-php-529 No error, it's just not working]""
* ""[http://wordpress.org/support/topic/archives-not-showing-nextprev-windows-only-crazy Am I going crazy]""?
* Trace_mode defaulted to ""on"" in [http://stackoverflow.com/a/869957/128329 this guy's] install (!).

I've read through #18536, #10469 and related issues, hoping that usage of SQL_CALC_FOUND_ROWS would be removed, but it seems to be still there, in trunk.

So I guess a ""fix"" for this would be to check for trace_mode and, if enabled, notify admin users on the wp-admin dashboard.

Meanwhile, I've added a note about this on the [http://codex.wordpress.org/Function_Reference/next_posts_link next_posts_link] page.
",ManuelRazzari
5669,"Provide single logging functions to replace logIO(), debug_fwrite() etc.",,Warnings/Notices,2.3.2,low,minor,Future Release,enhancement,new,,2008-01-14T20:43:34Z,2011-03-31T08:42:45Z,"I'm looking at writing a logging infrastructure so that logIO() and debug_fwrite() can be consolidated into a single plugin replacable function (giving potential expansion into MySQL or syslog logging). I hope to follow this up with calls to the same function so administrative access can leave an audit trail.

",pishmishy
22342,"WP_DEBUG ""undefined index"" notices in get_metadata() for empty arrays",,Warnings/Notices,3.1,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-11-01T22:10:42Z,2012-11-13T01:29:41Z,"When the WP_DEBUG constant is set, calling get_metadata() in /wp-includes/meta.php with $single==true can cause ""undefined index"" notices when the meta data value is an empty array. As null is an acceptable return value for this function, silencing the notice with @ will remove noise when debugging without the overhead of checking the array length or that the 0 index isset().",doublesharp
19291,Widgets move to Inactive after clearing all widgets from sidebars,,Warnings/Notices,3.3,normal,normal,Future Release,enhancement,new,early,2011-11-18T15:49:18Z,2011-11-23T22:44:56Z,"Jane reported in IRC that a theme switch dropped her widgets to Inactive.

> Jane: test site had 2010 as theme, with some widgets. activated 2011 on themes.php. Refreshed itself to themes.php?activated=true and showed alert message "" New theme activated. This theme supports widgets, please visit the widgets settings screen to configure them."" Go to widgets screen, widgets in primary sidebar in 2010 are not in sidebar, no widgets live anymore
> Jane: switch back to 2010, same message appears on themes.php?activated=true and 2010 sidebar comes back

[http://core.trac.wordpress.org/ticket/19091#comment:11 Reproduced by ocean90].

I was able to repeat the reported issue one only one specific case.

This only happens if you remove *all* widgets from all sidebars. Then add widgets back to sidebar(s). Then, switch back to a previously activated theme.

- It doesn't happen if you leave at least one widget in place in a sidebar
- It doesn't happen if you switch to a new theme (not previously activated)

Looks like we can solve it by the ""lost"" widget check just puts any old widgets into Inactive. We should orphan those, too.

To fix: If widgets registered but not in the new theme's sidebar, orphan it.

See #17979, #19091, #19092.",lancewillett
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
18368,Add CSS Class Info to post_updated_messages array/filter,,Warnings/Notices,3.2.1,normal,minor,Awaiting Review,feature request,new,dev-feedback,2011-08-10T12:50:18Z,2011-08-11T23:38:17Z,"When saving a post, not all messages displayed on the screen are ""success"" messages. Some are errors or warnings. Therefore, it would be nice to have the ability to modify the CSS class that's applied to the notice message.

In order to support backwards-compatibility, I would suggest allowing the array that's built using the post_updated_messages filter to support strings (which would be the message text by itself) or arrays (which would include one item for the message text and one item for the message class).

If a string is found, that string is assigned as the message text. If an array is found, the first item is assigned as the message text and the second item is assigned as the message class.

If a message class is not defined, the CSS class of 'updated' is used; if it is found, the specified CSS class is used.

I've attached a patch for wp-admin/edit-form-advanced.php showing basically what I'm proposing. In this case, if an array is sent as the value of one of the messages, that array is expected to use the keys ""message"" and ""class""; but it could certainly be edited just to use numeric keys if that might make more sense.",cgrymala
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
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
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
18395,Non-URL GUIDs are stripped on post update,,Validation,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-08-13T18:31:48Z,2011-08-13T23:12:02Z,"The post guid is run through several filters before the post is saved. the esc_url_raw() call will end up setting a GUID to an empty string if the GUID does not begin with a known/accepted protocol.

If a plugin/etc. wants to use the GUID column to store an external ID for an item brought in from another system (say a Flickr photo ID), then updating a post that has the Flickr ID as its GUID through the WP admin will end up setting the GUID for that post to ''.

This would need to be changed if the move was made to UUIDs for GUID values as well. Related: #6492.

A very basic patch for this specific issue is attached, but a larger discussion around how this should work is likely needed. Related: #18315",alexkingorg
14376,"admin post.php fails html validation due to use of  ""["" in name/id/for of hidden custom fields",,Validation,3.0,lowest,normal,Future Release,defect (bug),new,,2010-07-21T07:37:54Z,2012-12-25T16:11:48Z,"Post.php is causing many many html validation errors due to hidden screen reader text for post meta fields mainly. Not a major problem, but annoying when attempting to validate admin plugin code.

eg:
{{{
<label class='screen-reader-text' for='meta[1957][key]'>Key</label><input name='meta[1957][key]' id='meta[1957][key]' tabindex='6' type='text' size='20' value='_wp_geo_latitude' />

character ""["" is not allowed in the value of attribute ""id""
character ""["" is not allowed in the value of attribute ""for""
}}}
""["" are allowed in the name attribute.  So perhaps one could simply strip them out them for the 'id' and the 'for'?

Other failed validation messages that occur a lot and appear to be wp generated code:
-   ID ""_ajax_nonce"" already defined
-   reference to non-existent ID ""metakeyselect""

",anmari
21164,wp_customize_support_script support for XHTML themes,,Validation,3.4,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-07-05T13:31:15Z,2012-11-07T08:53:41Z,The script just needs wrapping in a CDATA section for XHTML themes.,needle
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-06-13T20:50:16Z,"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
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
15058,Validate option and transient name lengths,,Validation,3.1,normal,normal,Future Release,enhancement,new,needs-unit-tests,2010-10-07T15:37:46Z,2013-05-17T15:52:23Z,"The option_name column in the options table holds up to 64 characters yet there aren't any length checks to ensure that the length isn't exceeded. This leads to all sorts of odd behavior as the name will be truncated to fit, saving the option but not allowing it to be retrieved with the same name.

This issue affects all uses of the options system. A particular annoyance is transients. A transient that doesn't expire has a max name length of 53 characters yet a transient that does expire has a max name length of 45 characters. When attempting to save an expiring transient of name length between 46 and 53 characters, the transient will store but will be deleted before being used when get_transient is called due to the missing _transient_timeout_ option (since it was too long).

The core issues are that the functions don't return any type of failure condition on names that are too long and no warning is created. So, I've created a patch that addresses both of these issues.

The patch shows an example of how option and transient name length validation can be added. In order to allow users to modify the option_name column length, a new constant, WP_OPTION_LENGTH, is created with a default value of 64. This constant is checked for all length validation.

This is simply an example of how I'd like the validation to function. I'm not attached to the wording of the warnings or the name of the constant.",chrisbliss18
22409,add multiple selected options support to selected() function,,Validation,3.4.2,normal,minor,Awaiting Review,enhancement,new,,2012-11-10T23:31:57Z,2012-11-10T23:36:10Z,"The current {{{selected()}}} function returns ''selected=""selected""'' if two strings match, but does not correctly handle arrays that result from select options that have ''multiple=""multiple""'' enabled (it just checks the first item in the array by forcing a string type).

I suggest either adding correct handling of arrays or alternatively adding a separate {{{multiselected()}}} function to handle this situation.

This could be accomplished by altering the current {{{__checked_selected_helper()}}} function to this:


{{{
function __checked_selected_helper( $helper, $current, $echo, $type ) {
  if( is_array( $helper ) && in_array( $current, $helper, true ) )
    $result = "" $type='$type'"";
  elseif ( (string) $helper === (string) $current )
    $result = "" $type='$type'"";
  else
    $result = '';
	
  if ( $echo )
    echo $result;

  return $result;
}
}}}

I've just added the first 2 lines and changed the first {{{if}}} to an {{{elseif}}}.",bitacre
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
15636,"""New User Default Role"" dropdown should order by privilege level",,Users,3.0.2,normal,normal,Future Release,defect (bug),reopened,,2010-12-01T22:10:32Z,2013-01-22T15:17:49Z,"The '''New User Default Role''' dropdown at '''wp-admin/options-general.php''' is in spiffy random order:
 * Subscriber
 * Administrator
 * Editor
 * Author
 * Contributor

This UI bug suggests that '''Subscriber''' and '''Contributor''' are the opposite poles of privilege levels. In fact, they are successive steps in increasing privilege. Also, it doesn't make sense to put the least and greatest privileges, '''Subscriber''' and '''Administrator''', next to each other.

Please let proximity and position serve their purpose: order this dropdown by level of access, starting with the least access:
 * Subscriber
 * Contributor
 * Author
 * Editor
 * Administrator",novasource
22993,Admin - users without a role are difficult to find,,Users,3.5,normal,normal,Awaiting Review,defect (bug),new,,2012-12-18T17:32:21Z,2012-12-20T06:21:38Z,"There doesn't appear to be a filter to display users *without* a role (see the screenshot). The ideal solution would be to add a filter for ""None"".

[http://i.imgur.com/3S5pH.png]",logikal16
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
18039,Allow apostrophes in email addresses when accounts are added via Dashboard,,Users,3.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-07-08T16:36:55Z,2013-04-02T09:54:29Z,"See #4616.

Currently it's not possible to add a user with an apostrophe in his email address in any of the following ways:
- Dashboard > Add User (non-MS)
- Dashboard > Add User > Add Existing User (MS)
- Dashboard > Add User > Add New User (MS)
With existing users, you get a 'user not found' error. Otherwise you get an error about invalid email addresses.

This is inconsistent with WP's basic email address behavior, which allows apostrophes in email addresses.

For the most part, the problem is simply that the value of 'email' in the $_POST data must be stripslashed. In a few cases, adjustments had to be made to the way that email addresses are escaped, to allow for the ' character (see esc_email()). 

See attached patch.",boonebgorges
16788,Ampersands in e-mail address become invalid,,Users,3.0.5,normal,major,Awaiting Review,defect (bug),new,dev-feedback,2011-03-07T20:01:38Z,2012-09-19T17:46:32Z,"When an e-mail address contains an ampersand, WordPress improperly escapes the ampersand invalidating the e-mail address.

Example: h&f@domain.com becomes h&amp;amp@domain.com

First of all, the proper HTML entity for ""&"" is '''&amp;'''. Where did the extra '''amp''' come from?

Also, an ampersand is a valid character in an e-mail address and should not be escaped. Escaping it could be a completely different e-mail address.

I have not dug into the code to find out where this is happening but I'd assume in '''sanitize_email()'''.",jfarthing84
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
22311,"Cannot login when my loginname contains an ""|"" character",,Users,,normal,normal,Awaiting Review,defect (bug),new,close,2012-10-30T13:06:13Z,2012-10-31T01:09:24Z,"Hello,
Cannot login when my loginname contains an ""|"" character, for example:

Sent|el

or

P|ng|n

Can you fix his ? Other systems like phpBB3 have no problems with such usernames !
",radek2212
12720,Delete user and hook confusion when deleting users in Multisite,,Users,3.0,normal,normal,Future Release,defect (bug),new,,2010-03-26T12:42:59Z,2010-06-23T17:24:58Z,"Currently:
The hook ''wpmu_delete_user'' fires when deleting user in Super Admin->Users.
The hook ''remove_user_from_blog'' when deleting user under site Users->Authors & Users.
In standard WP:
The hook ''delete_user'' is called when deleting users it should be the same in MultiSite when deleting from Super Admin->Users.
Or add new hooks and deprecate previous.
''delete_user_from_network'' for when deleting a user totally.
''delete_user_from_site'' for when deleting a user from a specific site. This is hook also then fires in non-MultiSite mode since that then corresponds to one site.",andreasnrb
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
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
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
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
13569,Odd edge case with shared user tables and custom admin username during install,,Users,,lowest,trivial,Future Release,defect (bug),new,,2010-05-27T06:06:43Z,2010-11-13T08:04:31Z,"1. In install 1, run install.php and use a custom username (NOT called 'admin') and set the e-mail to email@example.com.

2. In install 2, before installing, set up shared user tables with install 1. Then run the installer. You won't have the ability to choose usernames (that's expected). Use the *same* email.

3. Click ""Install."" You'll get hit with a WP_Error object.

What's happening? The logic in wp_install() is to do a username_exists() against the username passed to it. If the user exists, it assumes that you're using shared user tables. Problem is, wp_install() is passed 'admin' from install.php (as that's the default, and you don't see the fields when custom user tables are setup), while your user is not called 'admin'. The e-mail address is already being used for another user however, so it is creating 'admin' and is failing on the duplicate e-mail address.

If the email address doesn't match any user, I imagine you'd instead get an 'admin' user in your second install, which you could promptly delete. I see no problem with that, as the alternatives are to pick which user should become an admin.

So, the fix would be to change username_exists() and the logic that follows, and instead match the e-mail address with an existing user, and make that user the new administrator. If no user with that email exists, we create an admin user and they can tough it out.

I do not feel this is a blocker at all. The symptoms I am seeing should be the same in 2.9.2 if you removed the admin user in install 1, then proceeded to share user tables with install 2 before installing.

It'd be nice to at least prevent the fatal error and allow the install to finish, however. I do want to get to it in 3.0 if I can, since we now are allowing custom admin names. That said, setting to 3.1.",nacin
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
18771,Reset Password link generation,,Users,3.2.1,normal,normal,Awaiting Review,defect (bug),new,close,2011-09-25T16:30:42Z,2011-10-02T16:20:23Z,"I have been having problems with the login following a reset password. 

A user click the ""forgotten password"" link and then after receiving the email clicks the link in the email to reset their password submits their new password gets a message that says ""You have successfully reset your passoword. Log in"" The link for login is not being generated correctly which is causing them to get a ""Invalid Key"" error.

Here is what I have dont to temporarily resolve the issue:

in wp-login.php I modified the following lines of code:

changed Line 207:

{{{
if ( empty($key) ) {
}}}

to this:

{{{
if ( empty($key) || preg_match('/[^a-z0-9]/i',$key) != 0) {
}}}

Removing special characters from the key that gets emailed to the users when they click the ""forgotten password"" link on the login page.



Commented out Line 444:

{{{
login_header(__('Password Reset'), '<p class=""message reset-pass"">' . __('Your password has been reset.') . ' <a href=""' . site_url('wp-login.php', 'login') . '"">' . __('Log in') . '</a></p>');
}}}

then slightly modified it removing the login link from the message

{{{
login_header(__('Password Reset'), '<p class=""message reset-pass"">' . __('Your password has been reset.') . '</p>');
}}}


This change forces the user to return to the homepage before logging in again and then they dont get the ""invalid key"" error. 

It would be nice if there were a more permenant fix for this issue that wouldn't get lost when we update the next time.",binaryweb
17370,Screen options and meta box settings can lose per-blog meta box positions,,Users,3.1.2,normal,normal,Awaiting Review,defect (bug),new,,2011-05-10T21:13:37Z,2011-08-04T21:13:59Z,"User preferences for admin interface appearance of the Dashboard and the Edit/Add New pages are stored in per-user options in wp_usermeta: closedpostboxes_$page, metaboxhidden_$page, meta-box-order_$page, and screen_layout_$page, where $page is one of 'post', 'page', or 'dashboard'. Users can customize the order of the Dashboard and editing meta boxes to better suit their workflow using the drag-and-drop AJAX interface to move the meta boxes into ordered columns and the Screen Options tab to show and hide the boxes. Many plugins add custom meta boxes to the Edit/Add New Post page.

In a multisite installation, with different plugins active on different blogs, users who rearrange an Add New Post page on a blog with a custom meta box and then rearrange it on a different blog without that meta box will lose the position of the custom meta box. Blogs can have different features and workflows implemented, and having per user options for the appearance instead of per user, per blog options limits the ability of a user to customize the interface.

The expected behavior for moving things around is that it changes on one blog, not on all blogs.",jmdodd
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
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
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
16731,Unchecked array_merge() returns NULL in wp_update_user();,,Users,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-03-02T20:58:40Z,2013-05-24T16:22:23Z,"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
18499,User count / roles inconsistency if roles no longer exist but users still do,,Users,3.2.1,normal,minor,Awaiting Review,defect (bug),new,,2011-08-23T13:53:43Z,2011-09-10T09:29:54Z,"The count_users logic (from line 833 onwards in wp-includes/user.php) is based on user roles.

If the roles were created by a theme or plugin which is then deactivated, wordpress loses count of the users, but still lists them.  The behaviour is confusing and inconsistent.  See attached screenshot.

1) the user count total at the top (all) ignores the users with no 'active' role, however users are all listed (the users are shown as 'no role' in the list)

2) the old roles are shown in the dropdown selection however are not listed in the totals


Suggestions:

1) the total user count should at the very least be correct wrt to the list.

2) Perhaps a total of 'no role' users could/should be shown (since the users are listed anyway ?)

3) If the old roles are shown in the dropdown, perhaps they should be flagged as inactive in some way?",anmari
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
11959,Value Truncation Still Unchecked in registration.php,,Users,,normal,normal,Future Release,defect (bug),new,,2010-01-20T22:59:50Z,2010-11-13T07:38:28Z,"Functions such as username_exists() fail to perform sanity checks against the storage schema.  As a result, it is possible to register multiple users with the same username, if the length is greater than or equal to the username field size.  Only the first user can login, however anyone re-registering that username can impersonate the first user to reset their password.",miqrogroove
17723,WP Signon from external resource/php code,,Users,3.1.3,normal,normal,Awaiting Review,defect (bug),new,,2011-06-07T23:30:50Z,2011-06-07T23:30:50Z,"Wordpress has a lot of different functions available in the codec, such as the wp_signon.

The code to login a user from within the wordpress folder looks like:
{{{
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon( $creds, false );
wp_set_current_user($user->ID);
}}}

If this is done outside of the wordpress user folder, by including the wp-config.php file 
{{{
including the wp-config, like the following:
global $wpdb;
define('WP_USE_THEMES', false);
require_once '/path/to/www/blog/wp-config.php';
wp();
}}}

then the cookies aren't created successfully and you can't properly login/logout a user.

There are a log of constants that set this up, yet the cookies aren't set properly, you are missing the wordpress_logged_in_COOKIEHASH essential cookie.

Such flexible function should work properly ",TeckniX
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
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
24255,WP_User::__set doesn't persist custom fields as it claims,,Users,3.3,normal,normal,Awaiting Review,defect (bug),new,,2013-05-03T03:17:42Z,2013-05-06T11:42:01Z,"Looking through `WP_User` in version 3.5.1 (verified against svn trunk too), the magic methods {{{ __get }}} and {{{ __set }}} supposedly read and write from custom fields, per their comment blocks.
{{{
	/**
	 * Magic method for accessing custom fields
	 *
	 * @since 3.3.0
	 */
	function __get( $key ) {
        // ...

	/**
	 * Magic method for setting custom fields
	 *
	 * @since 3.3.0
	 */
	function __set( $key, $value ) {
        // ...
}}}
And sure enough, if you look through the method bodies {{{ __get }}} will make a call to {{{ get_user_meta }}}

	{{{ $value = get_user_meta( $this->ID, $key, true ); }}}

However reading through the body of {{{ __set }}}, it never calls {{{ add_user_meta }}} or {{{ update_user_meta }}}, but has the misleading comment that it's ""for setting custom fields..."".

Seems to me like it's missing a critical line:

        {{{ update_user_meta($this->ID, $key, $value); }}}

Am I missing something, or is this a bug?",quickshiftin
20824,current_user_can() bug with Super Admin,,Users,3.3.2,normal,normal,Awaiting Review,defect (bug),reopened,,2012-06-04T10:55:53Z,2012-11-28T23:15:06Z,"If the logged in user is a super admin this returns true;

{{{
if (current_user_can('contributor')) echo 'current user is a contributor';
}}}

Normally it should return false as it does for administrator, author, editor and subscriber account types.

I spotted this while working in my localhost Multisite install then figured it doesn't work in the live standalone version! ",abdessamad idrissi
17381,display_name is not updated if javascript is disabled,,Users,3.2,normal,normal,Awaiting Review,defect (bug),new,,2011-05-11T19:29:37Z,2011-05-11T19:29:37Z,"If one has javascript disabled the display name is not updated if the users changes his name. Also plugins that provide user credentials and update the users entry in the database can not determine the users display_name setting.

The display_name field should only hold a reference to the style how the name is displayed. That way no javascript would be needed to set the display_name and also plugins can change the users credentials without producing inconsistency or forcing a style for the display name.",elmll
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
23228,get_users() cannot include AND exclude,,Users,3.5,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2013-01-17T22:45:51Z,2013-01-19T03:56:22Z,"The codex describes the parameters for get_users() as an array of options, so it seems like you can set an array of includes and an array of excludes. But the code looks like it can only do one or the other. It would be a simple fix.

Lines 521-527 in wp-includes/user.php

{{{
if ( !empty( $qv['include'] ) ) {
	$ids = implode( ',', wp_parse_id_list( $qv['include'] ) );
	$this->query_where .= "" AND $wpdb->users.ID IN ($ids)"";
} elseif ( !empty($qv['exclude']) ) {
	$ids = implode( ',', wp_parse_id_list( $qv['exclude'] ) );
	$this->query_where .= "" AND $wpdb->users.ID NOT IN ($ids)"";
}
}}}

To fix, change the elseif to its own if:

{{{
if ( !empty( $qv['include'] ) ) {
	$ids = implode( ',', wp_parse_id_list( $qv['include'] ) );
	$this->query_where .= "" AND $wpdb->users.ID IN ($ids)"";
}

if ( !empty($qv['exclude']) ) {
	$ids = implode( ',', wp_parse_id_list( $qv['exclude'] ) );
	$this->query_where .= "" AND $wpdb->users.ID NOT IN ($ids)"";
}
}}}

Thanks for the consideration.",dlim_vernier
23609,get_users() causes a huge number of SQL queries causing 500 server errors,,Users,,normal,normal,Future Release,defect (bug),new,,2013-02-25T20:56:12Z,2013-06-05T20:59:49Z,"Hey,

get_users() function causes a 500 server error if no arguments are passed, that is all user information is trying to be read. On my website with over 50k users, it causes ~15k SQL queries (checked using general query log). Atleast one plugin I know of uses get_users() without arguments (Events-manager). This causes the plugin to cause 500 server errors.

Ideally, if no arguments are passed, only a select * from {prefix}_users should be issued instead of 15k separate queries.

Here's a part from query log which shows individual SQL queries are being made:
{{{
		   59 Query	SELECT wp_users.* FROM wp_users WHERE 1=1 ORDER BY user_login ASC
130226  2:13:11	   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (26901)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (43704)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (43674)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (41395)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (41684)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (38434)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (36368)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (24303)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (44830)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (23256)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (44818)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (18293)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (20351)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (28186)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (26348)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (32837)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (21992)
		   59 Query	SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE user_id IN (45162)
}}}",dpacmittal
20095,get_users() doesn't allow hyphens in meta_key parameter,,Users,3.3.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-02-22T02:29:04Z,2012-02-22T20:01:27Z,"When retrieving users with the get_users() function, the meta_key parameter does not work if the key contains a hyphen (dash).

For example:


{{{
$members = get_users(array(
		'meta_key' => 'job-seeking',
		'meta_value' => 1,
	)
);
}}}

That will result in no members being found, even though at least one user with a meta_key of ""job-seeking"" with a value of 1 does exist.

This, however, will work:

{{{
$members = get_users(array(
		'meta_key' => 'job_seeking',
		'meta_value' => 1,
	)
);
}}}",mordauk
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
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
15642,user-new input fields stretch to the edge of the screen,JohnONolan,Users,3.1,normal,normal,Future Release,defect (bug),assigned,,2010-12-02T09:01:05Z,2010-12-02T11:59:22Z,They shouldn't.,nacin
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
21495,wp_insert_user allows a user to be created with empty passwords,,Users,,normal,minor,Awaiting Review,defect (bug),new,,2012-08-06T02:10:00Z,2012-08-06T02:10:00Z,"While looking at the different files where user information is created, I noticed that there are some differences between wp_insert_user(programmatic creation of users) and edit_user (called from the admin).

wp_insert_user assumes that a user_pass parameter is included, which creates a user with no password.  





",ancawonka
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
23498,wp_list_authors ignores 'exclude_admin' arg when admin account has a display_name other then 'admin',,Users,3.1,normal,normal,Awaiting Review,defect (bug),new,,2013-02-18T09:37:59Z,2013-05-22T20:11:32Z,"Line 293 of author-template.php should be changed from:
{{{
if ( $exclude_admin && 'admin' == $author->display_name )
}}}
to:
{{{
if ( $exclude_admin && 'admin' == $author->user_login )
}}}
Thanks.",raphaabreu
20845,"wp_set_current_user( null, ""name"") does not work when $current_user is already 0",,Users,3.3.2,normal,normal,Awaiting Review,defect (bug),new,,2012-06-05T13:11:53Z,2012-06-05T16:10:58Z,"According to the documentation for wp_set_current_user() you can 

Set $id to null and specify a name if you do not know a user's ID.

This does not work when the current user has already been set to anonymous ( ID = 0 ) since the following test returns true.

	if ( isset( $current_user ) && ( $current_user instanceof WP_User ) && ( $id == $current_user->ID ) ) {

The last part of the test should be corrected to 
&& ($id === $current_user->ID) )

which will ensure that the test fails when the $id parameter is null, which will allow the rest of the pluggable function to continue and set the current user to the specified $name. 

This is similar to #19769.
Note: the change in 3.4 has not fixed this particular problem.",bobbingwide
23005,wp_update_user breaks if ID not set,,Users,3.5,normal,normal,Awaiting Review,defect (bug),new,,2012-12-19T15:18:42Z,2012-12-19T15:47:58Z,"Passing an array of userdata to wp_update_user (first_name, last_name, user_email, user_login).

If ID is not in the array, then a PHP Fatal Error is triggered: 
[19-Dec-2012 15:03:16 UTC] PHP Fatal error:  Call to a member function to_array() on a non-object in [..]/web/content/wp-includes/user.php on line 1456

The codex for wp_update_user (http://codex.wordpress.org/Function_Reference/wp_update_user) does state ""If $userdata does not contain an 'ID' key, then a new user will be created and the new user's ID will be returned."", which makes me think this might be a new bug.",actionnerd
9640,"wp_update_user() blindly calls add_magic_quotes(), even on objects",,Users,2.8,normal,normal,Future Release,defect (bug),reopened,dev-feedback,2009-04-24T18:14:53Z,2011-10-12T05:41:40Z,"If there's an object stored in usermeta, then the call to add_magic_quotes() will lead to an error in wpdb::escape():

{{{
Catchable fatal error: Object of class stdClass could not be converted to string in /web/ven/wp-includes/wp-db.php on line 472
}}}

http://core.trac.wordpress.org/browser/trunk/wp-includes/registration.php

See also #9638. The two problems are related, but probably need to be solved independently. ",misterbisson
9170,"""jQuerify"" adding a new user...",,Users,,normal,normal,Future Release,enhancement,new,close,2009-02-18T23:11:58Z,2011-02-12T04:43:57Z,"After adding a new user it's confusing that only that user is displayed in the table.  It always takes me a couple seconds before I realize that it's just showing the new user.  It seems it would be more efficient to show all of the users and just have the new row highlighted with jQuery.  

(I can code this if needed.)",aaron_guitar
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
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
17326,Allow new user registrations to be moderated,,Users,3.1,normal,normal,Awaiting Review,enhancement,new,,2011-05-05T04:29:10Z,2011-05-05T16:02:57Z,"'''Summary'''

When registration is open, have the option to require manual approval of user accounts before they are granted default role status.

'''Details / Suggested Implementation'''

Create a new user role (""Moderated""?) which for all intents and purposes is the same as ""Subscriber"" (`read` capabilities).

If opted into, user moderation would assign new users this new role. Administrators would be able to see these users listed under the Users list and click an approve link which would change their role to the default user role (as per the General Settings).

This would also make it easier for plugins to implement private blogs while having open user registration.

See also: #12030",Viper007Bond
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
24193,Anti brute force protection,,Users,3.5.1,normal,normal,Awaiting Review,enhancement,new,close,2013-04-25T18:07:41Z,2013-04-25T21:46:00Z,"To protect against hacking should be added to the login form protection from brute force. Now the password can enter an unlimited number of times. It is necessary to limit the number of login attempts.

For example, some variants:
1) Captcha after three unsuccessful attempts
2) Temporary inability to login after three unsuccessful attempts
3) something else

",MAzZY
12340,Assign Certain Categories/Taxonomies To Site Authors,,Users,3.0,normal,normal,Future Release,enhancement,new,dev-feedback,2010-02-22T23:15:41Z,2010-02-22T23:58:17Z,"We all know that WP is more like a CMS compared to just a piece of blogging software, and when it comes to having multiple authors, this is when this enhancement would really shine! :) If it doesn't make 3.0, then I'd hope 3.1 anyway?

So basically when you add another user, or alter a users account, the option will be there to check the boxes of whatever category and/or any taxonomies that particular person will be allowed to have posts published in. That's the plan anyway!",markmcwilliams
8296,Auto generate password for new user,jamierumbelow,Users,,normal,normal,Future Release,enhancement,new,,2008-11-20T16:25:53Z,2012-07-26T15:46:14Z,It would be nice to have a button that generates a random password to use when you're creating a new user account in the admin section,AaronCampbell
23857,Delete User Should Delete Comments,,Users,3.5.1,normal,normal,Awaiting Review,enhancement,new,,2013-03-25T07:10:55Z,2013-04-02T04:53:31Z,"The delete user function should also delete that user's comments or attribute that users comments to the person specified. That way, deletion of accounts goes a lot smoother.",jamcat22
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
11297,Don't email the admin when he creates a user from the backend,,Users,2.9,low,minor,Future Release,enhancement,new,,2009-12-01T12:05:31Z,2011-01-08T18:57:43Z,"I just created the user myself. I already know I did it. I don't need to be told again.

Emails should only be sent to the admin when a user registers themselves (if that is enabled). They shouldn't be sent when the admin manually creates a new user.",caesarsgrunt
13339,Hook on ms-users.php,,Users,,normal,normal,Future Release,enhancement,new,,2010-05-11T11:45:37Z,2010-05-17T15:14:25Z,"On WP 3.0 it is possible to add new users as Super Admin, but they do not really assign each instance. So it would be useful when creating the user, if you have a selection of instances that are created and then selecting one with the checkbox where the user should get access.

Maybe it is possible to add a hook for add own fields, similar the possibilies on user-edit.php for profile fields.",bueltge
12393,Hooks to enable custom login without editing core files,,Users,2.9.2,low,normal,Future Release,enhancement,new,,2010-02-26T21:01:06Z,2010-04-23T18:32:10Z,"One of the basic features of wordpress is to avoid having users edit core files.
It is impossible to properly customise wp-login without manually editing the file directly - not good for upgrades!

Need to make login_header function pluggable or add a do_action hook before the <html....> tag
Need to add a login_footer.

In fact what is required was highlighted in #4478 complete with diff file. This was marked as resolved BUT IT WAS NOT! I agree it might be a duplicate of issue #9682 BUT the underlying issue of being able to overwrite the login-header function WAS **NOT** solved.

(see recent support forum requests #252094  and #333994)

The solution MUST allow a replacement of login header (and even better also a replacement of the </body></html> tags from the switch statement with a login_footer function which could also be overrided - pluggable).

Thanks.

In an ideal world need to re-open #4478 to ensure accurate resolution.

Thanks",sleepuser
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
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
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
21730,More modular and reusable email validation functions,,Users,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-08-29T16:04:04Z,2012-08-29T19:56:12Z,"Email validation, especially as it's handled in Multisite (most of which is verbatim from MU), is pretty messy. We have some functions like `is_email_address_unsafe()` for checking banned domains, but we don't have a parallel function for checking against limited_email_domains. There are no filters outside of `wpmu_validate_user_signup`, which means that if you want to use email validation outside of the normal MS registration workflow and want to tweak the way that it works (see eg #15706, #20459), you pretty much have to roll your own. And there's no single function that a plugin like BuddyPress can use to do all relevant email checks in one fell swoop.

The attached patch suggests the following changes:
- Put the limited_email_domains check into a function, `is_email_address_allowed()`.
- Put filters on the output of this new function as well as `is_email_address_unsafe()`.
- Introduce function wp_validate_email_address(), which wraps the following four checks: is_email(), email_exists(), is_email_address_allowed(), is_email_address_unsafe().
- Rearranges `wpmu_validate_user_signup()` a bit so that all email checks (as opposed to username checks) happen together.

I'm not married to anything in this particular implementation (the way that wp_validate_email_address() sends back error messages is not particularly beautiful, but I didn't want to introduce a ton of overhead), but I would really like to see some sort of treatment along these lines, to make things more modular and reusable.

If something like this gets approved by the devs, I would like to further suggest the following:
- Give a similar treatment to username validation
- Move the generic validation functions out of ms-functions.php (with function_exists() checks on the MS-specific stuff)

I'm happy to work more on this kind of patch, but didn't want to go too far in case it's a non-starter for some reason.",boonebgorges
12295,More support to customize user profile edit page,nacin*,Users,3.0,normal,normal,Future Release,enhancement,accepted,dev-feedback,2010-02-19T21:14:01Z,2013-05-15T12:02:10Z,"Right now I can edit the contact methods via the user_contactmethods filter, but I can not modify or remove the Personal Options or the Name Options.
I want to keep the interface as simple as possible for my users, and I don't think that they need to edit this settings at all.
If wp wants to be a cms, it should give me control over this aspect as well.
At least, give me custom css-ids, so I can remove it via css!",pampfelimetten
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
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
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
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
18743,"Persistent redirect_to For Login, Registration, and Lost Password",,Users,3.3,normal,normal,Awaiting Review,enhancement,new,,2011-09-22T07:04:39Z,2013-05-28T04:58:59Z,"Currently, if redirect_to is passed in to the login screen and then a user clicks Register or Lost Password, the redirect_to gets lost. I think that the redirect_to should be persistent and honored whether the user logs in, registers or gets a lost password.

I've written a hacky filter to do this, but I think this ought to be included in the core. Here's what I did:


{{{
//Keep redirect_to in URL
add_filter('site_url', 'foxyshop_add_registration_redirect', 5);
function foxyshop_add_registration_redirect($path) {
	if ((strpos($path, ""action=register"") !== false || strpos($path, ""action=lostpassword"") !== false) && isset($_REQUEST['redirect_to'])) return $path . '&amp;redirect_to='.urlencode($_REQUEST['redirect_to']);
	if (substr($path, strlen($path)-12) == ""wp-login.php"" && isset($_REQUEST['redirect_to'])) return $path . '?redirect_to='.urlencode($_REQUEST['redirect_to']);
	return $path;
}

}}}

(I know 3.3 is in freeze now, but there wasn't another version option)",sparkweb
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
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
23368,Random order for wp_user_query,,Users,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-02-02T09:24:40Z,2013-02-02T15:42:14Z,"Unlike the '''wp_query''', '''wp_user_query misses''' the order by random option.

This option is necessary when you have a lot of users and we want to show only some of them randomly in a widget or anywhere on the blog.

It would be great to have this option in the next wp release.",gandham
16470,Require confirmation on email change,,Users,3.0,normal,normal,Awaiting Review,enhancement,new,,2011-02-06T12:07:11Z,2011-02-06T19:06:19Z,"When a new user is registered for a site, the e-mail he provides gets easily confirmed. But immediately after that, the new member can visit his profile and is able to change his e-mail to anything. Regardless of whether it is done on purpose or the user enters a wrong e-mail by mistake, the admin cannot contact the member, should he has to for any reason. The e-mail address is of great importance in such cases and I don't think that's a rare need!

I've had the impression that WP was not offering this feature, but then I realised that the code lies in core, though restricted to multisite installations. I find it quite difficult to understand why.

There might seem to be a relation to #13717, but what I propose hereby is just giving the admin of a single-site installation the '''option''' to activate e-mail change confirmation.

I think the implementation would only require a few changes in wp-admin/user-edit.php, making send_confirmation_on_profile_email() available outside of wp-admin/includes/ms.php and adding an option in Settings.

Why would we have to hack the core or consider a plugin for something almost already offered in core? That's why I describe the ticket as ""enhancement"", not ""feature request"".",linuxologos
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
20221,Skip Confirmation Email option only visible to Super Admins,,Users,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-03-12T20:08:13Z,2012-11-22T03:52:17Z,"When adding a new user in WordPress Multisite, the ""Skip Confirmation Email"" option is only available to Super Admins.  

If you enable the ""Add New Users"" featured for site admins, they'll have the ability to create new users under Users > Add New.  However the ""Skip Confirmation Email"" option is hidden because they are not a Super Admin.  

Super Admins and Admins should have the ability to enable this option when adding new users. ",williamsba1
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
16318,The reset password process could be clarified,,Users,3.1,normal,normal,Future Release,enhancement,assigned,early,2011-01-20T16:27:57Z,2013-01-22T16:51:08Z,"I find the process of resetting a user password confusing, and sI guess I am not the only one.

Here is why:

The fist screen in this process is almost ok:

[http://snapplr.com/mbtp]

only the text on the button is confusing as users won’t “get a new password” but are going to input a new password (I guess this is an heritage of the past procedure).

The second screen is where most users get lost:

[http://snapplr.com/811w]

I think that the login form should not be visible here as it gets the user’s focus, so they do not see the text above telling them to check their mailbox and do not know what to type here.

I know that changes are planned in the reset password process, but these two relatively small changes could make the process a lot easier to follow for users.",paolal
24088,Update get_users_drafts() to support custom post types,,Users,3.5.1,normal,normal,Awaiting Review,enhancement,new,,2013-04-15T11:17:52Z,2013-04-15T11:17:52Z,Currently get_users_drafts() access drafts of 'post' type only. Would be useful if it could support custom post types as well.,navjotjsingh
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
22212,WP_User_Query( array('role' => $role) ) should accept array or not return anything if array,,Users,,normal,normal,Awaiting Review,enhancement,reopened,needs-unit-tests,2012-10-17T12:37:43Z,2013-03-26T22:52:38Z,"I got a small problem with WP_User_Query - i wanted to find users from more then one roles to send them e-mail, so i did


{{{
$role = array('role-1','role-2);
$wp_user_search = WP_User_Query( array('role' => $role) );
$users = $wp_user_search->get_results()
foreach ($user) ... send wp_mail
}}}


problem is, that role param accepts only string. It would not be a problem if it would return nothing, problem was, that it actually returns ALL users, so i have send my author-only emails to all thousands users in database :-(

I know that it is my fault, that i have to read documentation, but i thought, that it works as other wp queries, so if the parame do not fit, it throws error, but it does not.",thomask
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
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
21043,is_user_logged_in() returns true even if user is not logged in,,Users,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-06-21T20:40:13Z,2012-06-21T20:56:54Z,"If you have {{{wp_set_current_user()}}}, then {{{is_user_logged_in()}}} will always return true. This goes against my understanding of the role of wp_set_current_user() especially as explained by the documentation:

""Some WordPress functionality is based on the current user and not based on the signed in user. Therefore, it opens the ability to edit and perform actions on users who aren't signed in.""

But then we look at {{{is_user_logged_in()}}} and it just says - can we {{{get_current_user()}}}? 

Suddenly wp_set_current_user is looking like wp_switch_logged_in_user(), which I doubt is the intent of that function.
",TomAuger
16860,"map_meta_cap use ""manage_network_users""  instead of is_super_admin for  edit_users",,Users,,normal,minor,Awaiting Review,enhancement,new,,2011-03-15T18:45:07Z,2011-03-15T20:54:07Z,"I find that for a multi-site setup, the ability to edit users is inconsistent. there is a capability called ""manage_network_users"", but this cap if given to ""regular"" admin's does not give them the power to edit users. 
The current code in map_meta_cap  in wp-includes/capabilities.php is:
{{{
case 'edit_users':
	// If multisite these caps are allowed only for super admins.
	if ( is_multisite() && !is_super_admin( $user_id ) )
		$caps[] = 'do_not_allow';
}}}
removing any flexibility, I would suggest having this based on the ""manage_network_users"" capability, giving us much more flexibility in terms of assigning power to control user administration.",sboisvert
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
22310,wp_insert_user bit ilogical with rich_editing,,Users,,normal,normal,Awaiting Review,enhancement,new,,2012-10-30T09:08:56Z,2012-10-30T12:21:17Z,"when you do wp_insert_user with rich_editing = TRUE it actually set rich_editing to ""1"" what is then interpreted as FALSE. I know (after searching why it does not work for me), that for actually setting true you need to set rich_editing to empty value, but anyway i think it is not optimal",thomask
17219,Add Existing User - E-mail Notification ( /wp-admin/user-new.php ),,Users,,normal,normal,Awaiting Review,feature request,new,reporter-feedback,2011-04-22T21:10:17Z,2011-08-07T22:04:12Z,"When adding an existing user to a site, we click ""Skip Confirmation Email Add the user without sending them a confirmation email"" to add the user immediately to the site. We've noticed that there is no notification that the user has been added to a new site. Could email notification upon adding existing user be considered? Thanks!",chaos1
12032,Additional Option of Site Admin -> Options -> Allow new Registrations.,kallumamaji,Users,3.0,normal,normal,Future Release,feature request,reviewing,,2010-01-26T00:29:42Z,2011-12-29T09:29:57Z,"MU Trac Ticket: http://trac.mu.wordpress.org/ticket/799

Right now the 4 options are: Disabled - noone can register a new account or blog Enabled - blogs and user accounts can be enabled (at the same time as the request) Only User Account - Only a user account can be created. Only Logged in User - Cannot create a user account but those who can log in can create a blog.

Need a 5th option for Create User Account and Allow blog creation if logged in.

With the 5th option it will allow new registrations., but only allow them to request a new blog if they are a valid online user after registration.
",wpmuguru
14644,Administrator should be able to change usernames,,Users,,normal,normal,Awaiting Review,feature request,reopened,dev-feedback,2010-08-19T13:57:38Z,2013-04-14T19:26:57Z,"I can't think of any reason why administrators shouldn't be able to change usernames.

I do this occasionally (via SQL) and find that it causes no problems whatsoever (that I've noticed).",holizz
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
16911,Member profile management (WP vs BP),,Users,3.1,normal,normal,Future Release,feature request,reopened,,2011-03-21T02:46:09Z,2011-04-15T09:42:50Z,"One thing that continuously bugs me in WP is the user management/profile fields, particularly with BP added. 

A lot has been done in the past releases, but there is apparently still no easy way to quickly customize user profiles and signup forms accordingly beyond the contact methods (without a plugin).

Also, the parallel existence of WP profiles and the BuddyPress X-profiles seems redundant and is confusing, in my opinion. User management/Profiles as such aren't only a feature of a social layer. I believe this should be a core feature, not a plugin-feature...
",youngmicroserf
12682,Multiple password reset messages,dd32*,Users,2.9.2,normal,normal,Future Release,feature request,accepted,,2010-03-23T15:51:01Z,2011-01-07T00:15:50Z,"There's a security flaw mentioned in #10006: an attacker can bother users with password reset messages.

The problem was reported on Russian support forums by the user receiving hundreds of such messages on his email address. He managed to solve it himself.

He also proposed to introduce some kind of timeout for password resetting. Is it possible?",SergeyBiryukov
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
22624,New current_user_has_role function to work for roles like current_user_can does for caps,,Users,,normal,normal,Awaiting Review,feature request,new,,2012-11-28T22:11:49Z,2012-11-28T23:14:31Z,"current_user_can( 'capability' ) is great, but it would save some code and be more reliable if we had something like this for roles as a global function that's easy to get at:

current_user_role( 'editor' ) would return true if the user has the editor role, false if they weren't.

I'll work on a patch for this when I get a moment, this is just here to remind me and let others know what I'm thinking.",sc0ttkclark
22114,Propagating password on change,,Users,3.4.2,normal,normal,Awaiting Review,feature request,new,close,2012-10-06T08:30:47Z,2012-10-08T04:54:45Z,"After creating an account or changing profile information, it is possible to intercept the changed data in a hook. However, this is not possible for the cleartext psasword, and this is a useful feature especially when propagating a password change over different accounts spanning across different systems (in contexts such as updating the password for phpBB, Prestashop, or any PAM thingie when the WordPress password is changed).

Since this feature is by no means possible to implement without core hacks, I am submitting a patch to include this feature in the WP core.

This patch proves useful if we are to integrate other software bricks without having to implement SSO using WordPress' architecture. In my context, I need to be able to log-in through WordPress or directly through the business specific back-end.

Proposed patch is attached.",ChloeD
12461,"Resend Pass to users from ""admin > users""-list",,Users,2.9.2,normal,normal,Future Release,feature request,new,,2010-03-02T15:23:32Z,2010-03-02T17:34:01Z,"In some of my projects i got the case, that i have to resend the password to some of my users (in this cases WP is used as a CMS). So i needed a possibility to resend (better would be: reset) the pass. Currently i'm stuck with a custom admin-UI on a template-page that contains a list of users (each in a row).

Currently i got the follwing (in a custom list/table of users) for each user at the end of the <tr>-row:
{{{
$user_login = isset($_POST['user_login']) ? stripslashes($_POST['user_login']) : '';
echo
'<td id=""' . $user->ID . ';user_pass;' . $wpdb->users . '"">' .
'<form name=""lostpasswordform"" id=""lostpasswordform"" action=""' . site_url('wp-login.php?action=lostpassword') . '"" method=""post"" target=""_blank"">' .
'<input type=""text"" name=""user_login"" id=""user_login"" class=""input hide"" value=""' . $curuser->user_login  . '"" size=""15"" tabindex=""10"" />' .
'<input type=""submit"" name=""wp-submit"" id="""" class=""small margin-null"" value=""reset"" tabindex=""100"" />' .
'</form>' .
'</td>';
}}}
This makes it possible to resend the wp_mail to ask the user to reset the pass. I'm not the best at php, so i couldn't achieve any sort of bulk managing this, so i set the target to blank.

I hope this function get's into the user-quickmenu. As i stated before: It would be great if you could reset the pass, so the user get's a new pass in an instant.",F J Kaiser
21128,Sort Users by Sites,,Users,3.4,normal,major,Awaiting Review,feature request,new,,2012-07-01T18:10:12Z,2012-07-01T18:57:16Z,In wp-admin/network/users.php please add the option to sort users by site name. ,jsaf
12705,Suggest add new filter to wp_insert_user(),,Users,,normal,normal,Future Release,feature request,new,,2010-03-25T13:59:20Z,2010-03-26T00:46:48Z,"Now, there is no way to change new registration workflow. When every attribute is valid, user registration is approved. I want to add  filter to interrupt this workflow to wp_insert_user(). Such as:
// in registration.php line 105
$userdata = apply_filter(filter_name, $userdata)
if( !$userdata ) return

I want to use this filter to interrupt normal registration flow.",nkucyd@…
16020,Upload custom avatar for user in Dashboard,nacin,Users,,normal,minor,Future Release,feature request,reviewing,dev-feedback,2010-12-29T08:07:53Z,2013-01-29T20:18:15Z,It would be nice to be able to upload a custom avatar for a user in the WordPress Dashboard rather than making each user sign up for a Gravatar account and upload the image to that account.,computerwiz908
8911,Use $WP_User as the standard unit of user information,jeremyclarke,Users,,normal,normal,Future Release,feature request,new,,2009-01-21T19:51:14Z,2011-08-04T23:15:43Z,"Right now much of the core code and most plugins use the old get_userdata() function to fetch information about users. This works okay for most cases but fails to take advantage of the new $WP_User object type. Using the objects makes the user information much more powerful because you can immediately call methods like $user->has_cap('edit_posts') without messing around. It also just makes sense, and not using the pretty object is silly.

In some places, like edit-user.php, where more functionality is needed there are functions like get_user_to_edit() that make use of the $WP_User object. I think that WP should clearly move towards always using the modeled object version rather than the straight db version in all places, and encourage plugin authors to do the same. 

Luckily the $WP_User wrapper uses get_userinfo to fetch its data and rewrites all the elements into its first level, so effectively the resulting object from $WP_User has all the same data as get_userinfo() and thus deprecates perfectly in all situations. 

My proposal would be to create a new wrapper function to be used instead of get_userinfo():


{{{
get_user($id, $name = '')
}}}


This would just initiate the object and return it, similar to get_post. It's also fits much better in the overall naming conventions of wp with friends like get_term. 

If possible, it might also be good to move the actual database sql from the get_userdata() function into the $WP_User object definition somewhere, that way its all in one place. Looking at it now it also seems like the whole _fill_user() function thing could be done more elegantly to explain itself and the cache better. [problem: pluggable.php has get_userdata(), which complicates things]

Finally, since get_userdata() currently calls _fill_user() every time then fetches all meta_value/key's for the user, wouldn't it be faster to make just one db call that fetches the row from wp_users AND the values from the usermeta table? If you are checking 30 users on your page for some reason (say, a twitter style list of your authors in the sidebar) that would save 30 database connections, which makes a difference no matter what! 

[probably should be in another ticket, but it would also be great to have access to a global function get_users() that fetched a set of users (say, active ones or a specific role) all at once based on criteria like get_terms() or get_posts(), it would save time if you are getting many users and if it added them all to the cache after fetching it would probably be a lot faster than checking each user individually]

I'm very interested in feedback. I'll try to work on a patch at some point soon (mental note: before 2.8 feature freeze)",jeremyclarke
14412,User Registration via Templates,,Users,3.0,normal,normal,Future Release,feature request,new,,2010-07-25T00:21:41Z,2010-08-03T00:35:36Z,"To improve the vast multitude of WP installtions that utilize member registrations, I suggest and implore the development team to improve user registration via templates. The reasons are as follows:

- More secure
- More flexible
- Better customization options
- Better integration

I was prompted by this post: http://www.cozmoslabs.com/2010/05/31/wordpress-user-registration-template-and-custom-user-profile-fields/ the development of Hooks and Filters has made it relatively easy to make such improvements system-wide.",GuruXL
23045,WP_User_Query features,,Users,,normal,normal,Awaiting Review,feature request,new,,2012-12-22T06:14:45Z,2013-02-02T11:20:46Z,"WP_User_Query does not updated recently and due to more use of wordpress as CMS needs of custom query per users increased, WP_User_Query lack post type support(i add a ticket for it #21744) lack taxonomy/multiple taxonomies query and alot others, maybe its time to update WP_User_Query like WP_Query. it's really a need for common works these days.",AliMH
20606,orderby rand param does not work with either WP_User_Query or get_users,,Users,3.2.1,normal,normal,Awaiting Review,feature request,new,,2012-05-02T22:12:34Z,2012-05-15T19:20:21Z,"Using WordPress 3.2.1


{{{
$contributors = get_users(array('role' => 'contributor', 'orderby' => 'rand', 'number' => 3));
}}}


{{{
$wp_user_search = new WP_User_Query(array('role' => 'contributor', 'orderby' => 'rand', 'number' => 3));
$contributors = $wp_user_search->get_results();	
}}}",kjmeath
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
5953,Absolute upload_path fails,tellyworth,Upload,,normal,normal,Future Release,defect (bug),reopened,,2008-02-22T05:39:43Z,2009-11-20T20:03:34Z,"1. On Options/Misc, enter ""/tmp/foo/bar"" as a value for the upload path setting.
2. Write a new post and attach an image.

Expected: the image file should be stored as /tmp/foo/bar/2008/02/file.jpg or similar.

Actual: a 'tmp/foo/bar' subdirectory is created within ABSPATH (if that's possible) and the file is stored there.  Both the filesystem path and URL path just append '/tmp/foo/bar', so you get 'ABSPATH//tmp/foo/bar/2008/02/file.jpg' and 'http://example.com//tmp/foo/bar/2008/02/file.jpg'

An absolute upload_path should probably be rejected unless you also specify an upload_url_path, because there's no way to know what URL corresponds to an arbitrary filesystem path.
",tellyworth
22363,Accents in attachment filenames should be sanitized,,Upload,3.4,normal,normal,Future Release,defect (bug),new,has-patch,2012-11-05T15:51:12Z,2013-05-21T19:52:34Z,"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
16820,Browser uploader in media library shows no error information,,Upload,3.1,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2011-03-10T11:45:54Z,2011-03-11T04:53:19Z,"In `wp-admin/media-new.php`, if you use the browser uploader, you get no information about errors. 

For example if the file you upload is too large, you just get redirected to the media library with the message ""Error saving media attachment."" Not very helpful - and also inconsistent - because if you do exactly the same thing using the pop-up image editor (i.e., select ""Add an Image"" from the Upload/Insert menu while editing a post), then you do get useful error information.

I propose that if there are errors, the user should not be redirected to the Media Library. Instead Wordpress should wp_die telling them what went wrong.",solarissmoke
22150,Customizer: Remove Image doesn't remove from Media Library,,Upload,3.4,normal,minor,Awaiting Review,defect (bug),new,,2012-10-10T05:35:15Z,2012-11-10T07:58:22Z,"After uploading an image using the Theme Customizer, a ""Remove Image"" link appears - this seems to imply that clicking it will cause the image to be deleted entirely, rather than just hidden from the current view.
",pento
20330,Differences between creating folders for plugins and uploaded media (problem with safe_mode),,Upload,3.3.1,normal,normal,Awaiting Review,defect (bug),new,,2012-03-30T10:27:56Z,2012-04-04T16:26:08Z,"After installing 3.2.1 (into subdirectory test) there is missing URL path in menu Media - Store uploads in this folder. But nevermind, I am not sure if this is a bug or expected?

I tried to update Akismet automatically, no problem (only FTP credentials required). I tried to install new plugin automatically, also no problem.

Directories are created, plugins installed. But when I try to upload some media files, there is following error:


{{{
""Testing-picture-50g.jpg"" has failed to upload due to an error
The uploaded file could not be moved to /data/www/h/domain.cz/public_html/test/wp-content/uploads.
}}}

When I look at ""uploads"" directory - there is CHMOD 775, but I ""Cannot change attributes of remote files!""
When I delete this folder and create it manually, then everything works. But it is not possible to organize media into month- and year-based folders, because they are not working when created automatically by WordPress.

And I suppose there is some kind of problem in the way how creating folders for uploading media works. Yes, hosting is limited with safe_mode, but why creating folders and installing plugins works without problem and creating folders for uploaded media does not work?

We had several reports from different users about problems with uploading media and this is the only clue I could find. Maybe there is something which was fixed for updating processes, but not for uploading media (especially for creating directories). Any idea?

Also automatic upgrade to WP 3.3.1 works well. But in 3.3.1 there is probably a bug, because picture is not uploaded, but there is no Error reported (as in 3.2.1). It looks like media file is uploaded, but only media post is created and file is not uploaded (there is no thumbnail (only icon of missing picture). I suppose, that users should be notified what is going on here?

Summary in the end:

1) In WP 3.3.1 there is no error for users after unsuccessfull media upload and there should be (regression from 3.2.1).

2) There are different ways to create folders for updating/installing plugins and creating folders for media uploads and the second way does not work when safe_mode is on.",pavelevap
11946,Ensure image MIME type matches extension,Viper007Bond,Upload,3.0,normal,minor,Future Release,defect (bug),reopened,needs-refresh,2010-01-19T08:02:17Z,2012-07-26T22:55:00Z,"Take a bitmap (BMP) and rename it to `.png`. WordPress will say it's an `image/png` everywhere you look. This can cause issues if you're trying to manipulate it (thumbnail it, etc.).

We should either fix the extension or reject it.",Viper007Bond
23188,Hardcoded relative url 'async-upload.php' in plupload/handlers.js,,Upload,3.5,normal,normal,Awaiting Review,defect (bug),new,,2013-01-12T11:47:48Z,2013-01-14T08:19:23Z,"On line 127 in plupload/handlers.js you can find relative path to 'async-upload.php'.

It rather should use wpUploaderInit.url (or something like that), so you could use WP Plupload in front-end for example or with your custom uploading scripts.

Now you can write your custom uploader script and provide it via wpUploaderInit, but on that line in handlers.js it is ignored (and if you run it in front-end, bad request to ./async-upload.php is made).",drozdz
12532,Image Upload Does Not Display Errors,,Upload,2.9.2,normal,normal,Future Release,defect (bug),new,reporter-feedback,2010-03-06T15:56:36Z,2010-11-13T07:49:17Z,"This has been a long standing problem for me.  I am having problems with uploaded images and am unable to properly troubleshoot because the image upload feature does not display errors.

The root problem is that the image upload feature does not display error messages.  The symptoms are that thumbnail images are not being generated and my theme (AutoFocus) cannot display EXIF data for images.  I have switched to the default theme, disabled plugins and performed other troubleshooting activities (http://wordpress.org/support/topic/164999?replies=1).

Scenario:  I am uploading a 800x600 143KB color JPEG image.  The Flash upload tool shows the status bar going to 100%, Crunching... and then stops once the bar clears itself and the ""Save all changes button"" appears.  Nothing else happens.  No image thumbnail is displayed, no image information (titles and descriptions) is displayed.

When I close out the 'Add an Image' window and reopen it I can see the image in the Gallery but there are no resized images available (thumbnail, medium, large) and the full size dimension is listed as 0x0.  When I choose to Edit Image I get the error ""Image data does not exist. Please re-upload the image.""

I repeat the upload process using the browser upload method. Once the image is uploaded the 'Add an Image' window is cleared and is left blank.  Closing the window and going into the Gallery yields the same results as the Flash method above.

WordPress 2.9.2

General
    * OS: Linux
    * Server: Apache/2.2.3 (Red Hat)
    * Hostname: blog.radian.net
    * IP:Port: 76.12.173.65:80
    * Document Root: /vservers/h77483wp/htdocs

PHP
    * v5.1.6
    * GD: bundled (2.0.28 compatible)
    * Magic Quotes GPC: Off
    * Memory Limit: 16.0 MiB
    * Max Upload Size: 30.0 MiB

MYSQL
    * v5.0.77
    * Maximum No. Connections: 100
    * Maximum Packet Size: 1,024.0 KiB
    * Data Disk Usage: 3.8 MiB
    * Index Disk Usage: 283.0 KiB

I will attach a ZIP file with the image in question (other images have the same problem) as well as images of the upload windows and WP administration panels.

",drgdc
20936,Image upload - HTTP error,,Upload,3.3.2,normal,major,Awaiting Review,defect (bug),new,,2012-06-13T08:40:59Z,2012-06-13T21:24:05Z,"Unable to upload some type of images, because crunching error. 

Reproducation: 
Try to upload attached png image (SC20120611-160917.png), to wordpress site (3.3.2). I try it all of my wp sites, and fresh installation (without plugins). The upload progress aborted (HTTP error). 

If you convert the png file to jpg, the upload and crunching was succeed (there is no configuration errors i think).

I try some workarounds too, but doesn't help (this is not an individual problem i think): 
http://wordpress.org/support/topic/http-error-on-image-upload-still
http://wordpress.org/support/topic/flash-uploader-logs-out-during-crunching-phase?replies=19

This error affected 3rd party tools (like android wordpress app). ",voji
17547,Image upload issues - Size reported as 0x0,,Upload,3.1.2,normal,critical,Awaiting Review,defect (bug),new,dev-feedback,2011-05-24T08:27:21Z,2012-05-16T17:35:28Z,"When I upload any image of any size to my wordpress installation the image uploads fine, but the size is reported as 0x0 and has only one option of inserting it as a full-sized image!

Further inspection of this issue has led me to believe that it lays with wordpress not inserting the correct (if any) meta data for the attachment into the database.

As you can see in the image below, the meta data is present and this image shows all options of inserting the image in the post at all sizes specified in the WordPress media settings panel.

http://www.millerswebsite.co.uk/images/meta%20data.jpg

But as you can clearly see from the image below, when the meta data is missing it shows you can't post the image at any size except full which is stated as 0x0px - Clearly something is wrong!

http://www.millerswebsite.co.uk/images/no%20size.jpg

Many people have had and are still having this issue since 2.5. There are quite a few forum threads relating to it with not a single word from anyone from WordPress.

Several tickets have been submitted to the WordPress Trac system with the issues going unresolved. This is a major problem and many people have reported it, yet nothing seems to have been done.

Sources :

http://core.trac.wordpress.org/ticket/12532

http://wordpress.org/support/topic/cant-adjust-media-file-size-since-upgrading-to-27

http://wordpress.org/support/topic/images-upload-fine-but-wp-shows-0x0-size

http://wordpress.org/support/topic/add-image-size-only-allows-fullsize-with-0x0-dimensions

http://wordpress.org/support/topic/image-upload-in-wp-28-with-translation

If any solution exists to this problem, please let me know, I have been searching for weeks now to no avail. When I talk about solutions, I do not mean using plugins to ""regenerate thumbnails""! Yes I know this works, but it does not solve the problem as its only a temporary fix. Plus it needs to regenerate the images every time you upload a new image.

Side note :
I have tried a completely new installation of WordPress with and with out plugins on a completely different database. I have uploaded and re-uploaded the WordPress files also.

This is the type of image I am uploading. I took it on my Nikon D3100 and compressed to 80% @ 960x768 which makes it 83KB so it's not exceeding any upload limits and I am still having problems.

http://www.millerswebsite.co.uk/images/wordpress/DSC_2165.jpg

My host claims it is not their fault and they have recompiled apache and php for me, the php memory limit is also set to 128mb and file upload size is limited to 8mb.

A phpinfo() can be seen here : http://www.millerswebsite.co.uk/info.php

My original complaint can be seen on the forums here : http://wordpress.org/support/topic/image-upload-issues-size-reported-as-0x0?replies=10",David_Miller
13659,Incorrect permissions created by wp_mkdir_p() when safe mode is used,,Upload,2.9.2,normal,normal,Future Release,defect (bug),new,reporter-feedback,2010-05-31T16:38:00Z,2010-09-23T18:06:56Z,"When safe mode and sgid directories are used, the function wp_mkdir_p() frim wp-includes/functions.php will failed to create to create a directory with correct permissions.

How to test the problem on wp_mkdir_p() function:
- Create a directory, set the permission to 02777
- Put the file named poc.php in this directory
- safe_mode is on, safe_mode_gid is on
- php (apache) is run by a user other than the file owner
- call the poc.php script via an url

Result:
Sub-directory /1/2/3/4/ hasn't been created due to safe mode restriction.

Explanation:
Any file or directory created in a sgid directory inherits the group owner. When safe mode is used, chmod() cannot set the SUID, SGID and sticky bits and the chmod() calls will remove the expected permission.

Patchs:
There is a least two possibilities:
* Don't call chmod at all (Need to check if non Unix system, Windows, is affected).
* Don't call chmod if safe_mode is enable and sgid permission is present",cgrenier
13765,It's unclear why a max upload size limit is set,,Upload,3.0,normal,normal,Future Release,defect (bug),new,,2010-06-07T13:39:17Z,2010-11-13T08:06:49Z,"When you reach your allowance for file uploads in a multisite environment, it's not clear why WP will advertise a tiny upload size limit.

For instance, if you can upload up to 10MB of files, with a 2M file size limit, and you've already uploaded 9MB, WP will erroneously report that you can upload up to a 1MB file.

This can lead a multisite newbie to look into php ini files and the like, in order to identify which obscure setting is messing things up, instead of heading straight to the multisite options.

Instead, WP should report that the maximum file size is 2MB, and highlight in a follow-up line that only 1MB is available until the quota is reached.",Denis-de-Bernardy
23895,Max upload size 0 when post_max_size = 0,,Upload,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-03-29T15:01:32Z,2013-03-29T16:00:11Z,"As a convention, post_max_size can be set to 0 to disable any limitation on max post size. 

Quote from php.ini:
{{{
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
}}}

WordPress does not take this into account in wp-admin/includes/template.php ",moscar09
15655,Media Upload form does not pass tab name,nacin,Upload,3.0.2,normal,normal,Future Release,defect (bug),reviewing,,2010-12-03T00:00:01Z,2011-11-22T16:52:58Z,"The Media Upload form has an error (wp-admin/includes/media.php line !#1538). It is not passing the tab name, which hinders adding actions based on which Upload tab is selected.

Error:
Get param 'tab' is being set to 'type' which is incorrect.
{{{
$form_action_url = admin_url(""media-upload.php?type=$type&tab=type&post_id=$post_id"");
}}}


Fix:
To top of function add:
{{{
global $tab;
}}}

Change the form action URL (line !#1538) to:
{{{
$form_action_url = admin_url(""media-upload.php?type=$type&tab=$tab&post_id=$post_id"");
}}}

This change also impacts function media_upload_type_url_form (line !#1591). Same fix applies.",jackcrosby
18474,Misleading error message when theme ZIP exceeds post_max_size,,Upload,3.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-08-18T16:16:03Z,2011-08-23T22:46:14Z,"''post_max_size'' is 32MB, now try to uploading a 40MB big ZIP.

You will get the ''Are you sure you want to do this? Please try again.'' message. But ''try again'' will not help.

Notice:
''Warning: POST Content-Length of 47774864 bytes exceeds the limit of 33554432 bytes in Unknown on line 0''",ocean90
22403,Prevent default browser behavior with Plupload disallowed file extensions,,Upload,3.3,low,minor,Future Release,defect (bug),new,,2012-11-10T05:42:05Z,2012-11-11T14:16:31Z,"See #22149. When Plupload is set to accept only certain file types, the drag event falls back to the browser's default behavior. That means HTML files replace the entire viewport, ZIP files get re-downloaded, etc. Ideally, our own handlers intercept such a drag event and prevents anything else from happening.",nacin
6768,Punctuation can break photo uploads,,Upload,2.5,normal,normal,Future Release,defect (bug),new,,2008-04-18T08:22:58Z,2009-11-23T21:22:50Z,"I'm doing a lot of photo uploads, and I came across a file I named 'Taking a picture of me?.JPG' - I'm using Mac OS X, so a filename containing a question mark is legal.  I don't have Windows running right now, but I'm pretty sure it's disallowed there.

Anyway, I tried uploading this picture, and although the image uploader accepted it, and the progress bar completed, it never built a thumbnail for the picture (see attachment 1).  The image is absent when viewing the gallery on a WordPress page, but when browsing the media library, it seems to know the item exists (see attachment 2).  I blurred out my path information, because that's apparently a good idea.

Renaming the file to 'Taking a picture of me.JPG' allowed it to upload without any issues.

I'm using Safari 3.1.1 on Mac OS X 10.5.2.  Am hosted with Dreamhost.  Let me know if I can supply any more details. :)

Thanks!",flammable
16191,Uploaded files with quote marks in the filename are undisplayable in MS,,Upload,,normal,normal,Future Release,defect (bug),reopened,dev-feedback,2011-01-11T19:28:49Z,2011-01-14T03:17:05Z,"If you upload a file with quote marks in the filename, e.g. `""Test"".jpg`, WordPress records the filename as `%22test%22.jpg` but the file is called `""Test"".jpg` (on 'nix-like systems anyway) so is undisplayable.

I'm unsure about the implications (security and otherwise) of my suggested patch (attached), so please give feedback. (I guess the other approach would be to retain the url-encoded characters and ensure that the file is named with the URL encoded version of the filename.)",simonwheatley
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
8754,Uploading images whose dimensions are greater than the maximum size allowed fail to generate thumbnails and no error/failure message is displayed.,,Upload,2.7,normal,normal,Future Release,defect (bug),reopened,,2008-12-30T02:50:09Z,2011-08-05T08:31:26Z,"The process of uploading images that have dimensions (physical size) greater than the maximum size allowed by the global setting will fail part way through the process without an error or failure message being displayed.

Example: Uploading a JPEG image with a width of 625 pixels and height of 938 pixels.  This physical size is greater than the maximum size allowed by the default WordPress configuration.

When uploading such an image using the ""Add an Image"" panel the the Flash uploader will stop with the upload progress bar at 100% and displaying ""Crunching…"".  The Browser uploader will return a blank ""Add an Image"" panel display.

In both cases the images are uploaded to the appropriate directory on the server and appear when the post's media gallery is refreshed.  Thumbnail images are not generated for these uploads.  It appears the failure is before or during thumbnail generation.

Note: The maximum image dimension allowed for upload is not the same as the Administration > Setting > Media > Large Size: Max Width and Max Height settings.  In my case these settings are both set at 1024 pixels (above the size of the image I am working with).  It appears this control panel setting only impacts the HTML image tag attributes for posts, so as not to break the visual design with images that are wider than a layout allows.

Now you may ask what is the default maximum dimension for uploaded images.  Unfortunately I cannot find my notes on where exactly the setting is in the WordPress code (it has no Web GUI access that I am aware of).  I had changed this setting once to work around this problem and hoped 2.7 would have fixed the issue.  It is a pain to track down as the location of this setting has changed over time as it moved to different files and functions with each new version of WordPress.

My understanding is that this maximum image dimension setting was set to prevent images over 3 megapixels from being uploaded since those are really big and readers shouldn't have to deal with such images.  This is old thinking from before broadband and photo blogs took off.

See: http://lorelle.wordpress.com/2007/03/28/wordpress-thumbnail-size-limit-hack/

I think the default limit should be raised, but that would be a feature request.  This ticket is to have error messages displayed.

",DRGDC
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
23363,When uploading batches of photos oversized photos fail silently,,Upload,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-02-02T01:52:42Z,2013-02-02T03:28:47Z,"Summary:
When uploading a batch of photos as part of a gallery, some of which are larger than the maximum allowable, the photos under the maximum size upload successfully while the photos that are too large fail silently.

Steps to Reproduce:
1. On a post or page, click ""Add Media"" button
2. Click ""Create Gallery"" and ""Upload Files""
3. Click ""Select Files"" and select several files, some of which are larger than the maximum allowable file size, and some which are smaller
4. Press select

Expected Results:
Either no files upload (as some are to large to upload) or the files small enough to upload upload successfully (as is the current case) ''and'' an error is displayed stating which photos cannot be uploaded and why.

Actual Results:
Only the photos that are small enough to be uploaded upload successfully while the photos that are too large fail to upload with no explanation, before, during, or after the upload process.

Browser:
Safari 6.0.2 on Mac OS",davidwillmore
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
15955,move_uploaded_file mangles non-ascii characters on Windows platforms,,Upload,2.0,normal,normal,Awaiting Review,defect (bug),new,,2010-12-22T22:15:46Z,2013-02-23T00:46:30Z,"The `sanitize_file_name` function is not filtering alot of character entities like the degree symbol, this results in invalid media item paths, see the attached images.

wp-includes/formatting - Line 677

{{{
$special_chars = array(""?"", ""["", ""]"", ""/"", ""\\"", ""="", ""<"", "">"", "":"", "";"", "","", ""'"", ""\"""", ""&"", ""$"", ""#"", ""*"", ""("", "")"", ""|"", ""~"", ""`"", ""!"", ""{"", ""}"", chr(0));
}}}

This array is not dealing with invalid entities that could be used in a filename, and the regular expression further down is not catching these either.

wp-includes/formatting - Line 700
{{{
if ( preg_match(""/^[a-zA-Z]{2,5}\d?$/"", $part) ) {
}}}

See attached images, i used 4 varying names with unusual entities in them(each a copy of a sample jpg image). 

Using a filter on the valid chars array results in the extension getting stripped off but the file still makes it through the upload routine however(which is worrying).

I'm no file validation expert, so i'm not sure if this is a critical problem(marked as normal), i'll leave this for you chaps to decide. 

'''NOTE:''' Ignore my hostname in the screenies, it's a 3.0.3 installation, i'm just lazy with updating my virtual host settings.

See screenshots for steps to reproduce(just create a file with some dodgy character entities and upload it basically).",t31os_
15924,Add 'media_default_link_type' option to parallel 'image_default_link_type',,Upload,,normal,minor,Future Release,enhancement,new,dev-feedback,2010-12-20T21:12:12Z,2012-01-26T15:30:55Z,"It is often recommended that site owners change the 'image_default_link_type' option to ""none"" if they don't plan on linking to full size images often from their posts. The problem is that this also affects the default link type for other media (uploaded zip files, pdfs, etc.) Adding an additional option for 'media_default_link_type' which behaves in the same way would get around this problem.
",goldenapples
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
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
13500,Add support for XML in allowed extensions and mime types,,Upload,,normal,minor,Future Release,enhancement,new,,2010-05-22T17:48:24Z,2012-07-26T19:42:19Z,"As with #12849, please add CSV and XML types to wp_ext2type() or get_allowed_mime_types() in functions.php.

The patch I use on my local install of Wordpress is:

{{{
--- wp-includes/functions.php~  Wed Dec 23 19:38:49 2009
+++ wp-includes/functions.php   Wed Dec 30 16:09:13 2009
@@ -2324,6 +2324,10 @@
                'odc' => 'application/vnd.oasis.opendocument.chart',
                'odb' => 'application/vnd.oasis.opendocument.database',
                'odf' => 'application/vnd.oasis.opendocument.formula',
+               'py' => 'application/python',
+               'xml' => 'text/xml',
+               'csv' => 'text/csv',
                ) );
        }
}}}
",fazalmajid
6814,Async media crunching,koopersmith,Upload,2.5,normal,normal,Future Release,enhancement,assigned,,2008-04-23T00:19:05Z,2012-10-22T16:09:26Z,"The upload part of the new multi-uploader is pretty nice now, but it blocks on the ""crunching"" phase, which can sometimes take 20-60 seconds, I assume to create medium thumbnails and such.

The crunching part of the upload should not block the next file beginning the upload process, it should happen asynchronously with the rest of the process.",matt
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
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
15697,"File upload support for OpenXPS / Microsoft XPS  filetype (oxps / xps, alternative to PDF)",kapeels,Upload,3.1,normal,minor,Future Release,enhancement,assigned,dev-feedback,2010-12-06T00:37:38Z,2010-12-11T10:06:08Z,"OpenXPS / XPS (XML Paper Specification) is a document file type similar to PDF, originally created by Microsoft but now an open standard, ECMA-388.

If you allow uploads of PDF, you should allow uploads of this competing format. 

More details on the file type: http://en.wikipedia.org/wiki/Open_XML_Paper_Specification

This is a very simple change, similar to Ticket #8194 / Changeset 9662.

1. In /trunk/wp-includes/functions.php, function wp_ext2type (line ~2355): add 'oxps' and 'xps' after the 'pdf' entry as 'document' types.

2. In /trunk/wp-includes/functions.php, function get_allowed_mime_types (line ~2475): add (after 'pdf') the MIME type for 'oxps' as 'application/oxps', and 'xps' as 'application/vnd.ms-xpsdocument'.



",sgryphon
6379,"Image Insert section is confusing, not properly separated from Image Editing",markjaquith*,Upload,2.5,normal,normal,Future Release,enhancement,accepted,,2008-03-25T06:29:59Z,2010-10-28T08:21:47Z,"This whole section:

[[Image(http://img339.imageshack.us/img339/7967/picture1td7.png)]]

... is related to inserting that individual photo into the post, but it is slammed together with photo settings that you can change and save.  We really need to demarcate the ""Insert Image into Post"" section better.

Other issues:

 * ""None"" alignment radio button is not selected by default.
 * The Link URL section is incredibly confusing.  At first I thought that was where you could edit the filename.
 * Pressing input buttons to make your link URL selection is unnatural.",markjaquith
24603,Introduce pre_move_uploaded_file filter to allow pre-processing of uploaded files,,Upload,,normal,normal,Awaiting Review,enhancement,new,,2013-06-19T10:47:18Z,2013-06-19T10:47:18Z,This is handy for use in file replication plugins. We've been using this on wordpress.com for awhile for just that purpose.,ryan
21083,JS-based feature detection we can use server-side,,Upload,,normal,normal,Future Release,enhancement,new,,2012-06-26T20:46:07Z,2012-10-17T22:31:00Z,"In #20923 we added initial support for browser-based uploads in iOS 6, by detecting the user agent. This is a good stopgap, but we can do better.

We should implement a simple API that allows for us to do JS-based detection for mobile devices. We can use this for touch support, general upload ability, drag-drop upload ability, customizer support, and anything else that we can best detect in JS but that we need in order to make decisions in PHP.

We could probably model parts of it on how the user settings API works — leveraging cookies, but without the DB backend. A function could then return a value from the cookie if set, and otherwise, it'd use the default value passed to it.",nacin
7634,Need a way to cancel an upload edit,,Upload,2.7,normal,major,Future Release,enhancement,reopened,,2008-08-28T21:51:18Z,2013-01-09T20:11:49Z,"When you click a media upload, you have to either save it, or use the back button in the browser.  Feels like a dead end.",markjaquith
24251,Reconsider SVG inclusion to get_allowed_mime_types,,Upload,,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2013-05-02T19:36:57Z,2013-06-14T19:08:54Z,"There are some who think SVG should be included in core as an allowed mime type.  Makes fine enough sense to me, since there is a good argument for it, and we have support for WordPerfect documents...so there's that.

Related: #20990",JustinSainton
14459,Rotate Full Size Images on Upload,azaozz,Upload,3.0,normal,normal,Future Release,enhancement,reviewing,,2010-07-29T23:16:17Z,2013-01-06T08:52:07Z,"It may be worth a revisit to #7042.  Some mobile devices that use WordPress for Android are not capturing images in the correct orientation, instead they are writing the EXIF orientation to the image instead (which is a standard method these days).  In wp-android and other external clients that offer full size image upload, these images will not be rotated correctly upon upload.

Since most mobile users are on the go with no access to the wp-admin area to rotate the images themselves, it would work best if the image was rotated for them automatically.  

Hopefully there's a solution that wouldn't strip the EXIF data, some way to copy the EXIF data before rotating, then save it back again?",mrroundhill
8234,Users with upload_files capability should be able to edit and delete uploaded files without having the edit_post/delete_post capability,,Upload,2.7,low,minor,Future Release,enhancement,new,,2008-11-15T22:17:14Z,2009-11-20T20:31:07Z,Users with upload_files capability are able to upload files but can't edit/delete his/her own uploaded files without having the edit_post/delete_post capability. Users capable to upload files should also be capable to edit/delete their own uploaded files.,olethomas
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
19227,clicking the pinkynail/title in the media-upload.php library tab does not show the full media info.,,Upload,3.3,normal,normal,Awaiting Review,enhancement,new,,2011-11-10T20:30:35Z,2011-11-10T20:31:40Z,"I am using the latest nightly build.

I am not sure if this is supposed to work this way, but it does have the 'toggle' class and UX wise it should I think.

Steps to reproduce:
1: Open a post/create a new post
2: Click the Upload/insert media button.
3: in the media iframe click 'Media Library'
4: Click on an 'pinkynail' or title in the list

Nothing happens. I would expect clicking the 'pinkynail' or title to activate the same 'toggle' as the 'show' link does as we read left to right, our eyes are drawn to the image and we are generally choosing an image here, so our instinct is to click that. Plus this is how it works in the 'full' (i.e. non-iframe) version. It could also do with css to make the cursor 'pointer'.

Tested in latest versions of Chrome and Firefox in Windows 7",davidosullivan
7491,thumbnail creation fails silently,,Upload,,normal,normal,Future Release,enhancement,new,,2008-08-09T19:16:19Z,2010-03-06T16:13:08Z,"When thumbnail creation fails, it fails silently, with no indication why it fails. That is a real pain in the ass if you're trying to debug. Frankly, I assumed for months that thumbnailing just wasn't implemented yet- it was only because I noticed that it does work on ma.tt that I even went back and tried to debug the situation.

I'm still not succeeding in actually getting the thumbnailing working, for what it is worth- extensive googling suggested I should install libgd, which I've now done, but no helpful errors from wordpress means I'm just back at square one in terms of figuring out why it is breaking.

There are no other directly pertinent bugs, but #7039 and #1952 mention instances of silent failure being a problem and #2794 has a (now bitrotted) patch creating an error reporting system.

",tieguy
23686,wp_handle_(upload|sideload) have a lot of copy-pasted code from each other,,Upload,trunk,normal,normal,Awaiting Review,enhancement,new,,2013-03-04T11:27:35Z,2013-03-04T17:49:36Z,"A huge part of those two functions is the same. It needs to be refactored, so that they share the code.",nbachiyski
19770,Implement browser-side resizing with Plupload,,Upload,3.3,normal,normal,Awaiting Review,feature request,new,,2012-01-07T16:07:51Z,2012-09-01T06:10:23Z,"#19174 removed the browser-side image resizing due to browser inconsistencies. We should fix it and reintroduce the feature.

A little related: #14459",johnbillion
7580,Use Exif description to autofill the caption,,Upload,2.6,high,normal,Future Release,feature request,new,,2008-08-23T06:26:39Z,2011-11-19T19:58:35Z,"Hello,
I test a lot of softwares to create a Exif description for my pictures.
Like ""Exif Farm"" or other kind of this softwares.
But When I Upload this picure in wp 2.6 the description will not show!
but i have some picture from the web, and when i upload them, wordpress show the description of it automatically in description Box!
like this picture:
http://www.hinhxinh.com/data/media/8/Beijing_Olympic_2008_-___075.jpg
and show description on it correctly:
http://i33.tinypic.com/2yyqk1t.jpg
Please tell me:
the problem is from Wp,
Or My software is not original?
'''So What should i do to show Description Exif Data in wp Correctly?'''",mrmax
16884,URL generation in setup-config's get_bloginfo(),,Upgrade/Install,3.1,normal,normal,Future Release,defect,new,dev-feedback,2011-03-18T11:49:08Z,2012-06-02T19:12:24Z,"See [http://php.net/manual/en/function.str-replace.php str_replace()]

Replacing some string with something in an **empty string** is obviously bogus.",hakre
24578,.maintenance file exists when not needed,,Upgrade/Install,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-06-14T16:46:42Z,2013-06-14T16:46:42Z,"Responsiveness from the WordPress server that hosts update files was slow earlier today. It took >10 seconds just to get '''/wp-admin/network/update-core.php''' to respond as it apparently waited on the WordPress server.

Our network identified 4 themes that needed updating. Downloading and installing these themes took a few minutes.

The problem is that the '''.maintenance''' file was left on the server for a very long time, causing that '''Briefly unavailable for scheduled maintenance. Check back in a minute.''' message to display for a very log time.

That file needs to only be written to the file system while actual maintenance is ongoing, and it should not be present while waiting on file downloads. This way, if file downloads are taking a very long time, that alone doesn't cause pointless access problems for other users.

I'm not sure if all themes are first downloaded then updated, or if it's a download-update-download-update-download-update pattern. If the latter, them removing the .maintenance file between updates could cause user experience to thrash between uptime and downtime. This would not be good design.

Now, to be clear, we're not 100% sure download slowness was behind this, but we're leaning thay way for a few reasons:
* No known or observed problems with performance on our corporate internet pipe. This is a university pipe iwth a multi-gigabit connection which isn't being utilized heavily in the summer.
* Analysis of process performance with '''top''' showed nothing amiss. No swapping, plenty of unused CPU capacity.
* This server hosts two WordPress networks. Nothing in either network was slow except for updating.
* We've been running WordPress for years here and have never had a prior problem like this with updates.",novasource
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
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
23113,Automatic notice of new localized version missing,,Upgrade/Install,3.5,normal,major,WordPress.org,defect (bug),new,,2013-01-03T21:47:44Z,2013-02-02T08:19:13Z,"There was standard behaviour, that users could upgrade quickly to the latest WordPress version and when localized version was ready and released, notice about new localized version appeared in administration. But some users found that it was changed (in 3.5 or maybe 3.4) and when they upgrade to English version, they are not noticed about new Czech version in the future which is annoying. I tried it on some websites and it is true. I am not sure, if it is wanted change (but does not make sense for me) or bug (regression)?",pavelevap
10884,Available plugin update count disappears after updating plugin,dd32*,Upgrade/Install,2.8.4,normal,normal,Future Release,defect (bug),accepted,dev-feedback,2009-10-01T18:25:59Z,2011-04-03T10:52:00Z,"When there are any available plugin updates, WP displays number of them next to ""Plugins"" item in menu. However when you have more than one update available and update one plugin, it disappears.

Steps to reproduce:[[BR]]
- make sure you have more than one plugin with update available (WP should count of them in menu);[[BR]]
- go to the Plugin page and click on Autoupdate link for plugin;[[BR]]
- when update page will load completely, click on provided link to return to plugin list.

Expected result: WP displays new number of available updates next to Plugins menu.[[BR]]
Actual result: nothing is displayed.

Note: I tested this for inactive plugins only.",sirzooro
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
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
16150,Create post format terms on upgrade,,Upgrade/Install,3.1,normal,normal,Future Release,defect (bug),new,,2011-01-08T00:06:07Z,2011-01-08T04:57:09Z,"#16149 Creates a Standard post format term on save, but it might also be nice to have all our known post format terms created and associated with the taxonomy on upgrade. Could save us trouble down the road to have all of them defined and in the DB.",markjaquith
10596,Error when uploading zip package with parent and child themes,,Upgrade/Install,2.8.3,normal,normal,Future Release,defect (bug),assigned,,2009-08-12T11:12:29Z,2012-01-06T12:30:14Z,"There's an error when you try to install a package containing parent and couple of child themes using zip package upload from the admin dashboard.

For example i got a 1 big directory called test_template which contains 1 folder test_parent and 3 folders test_child1, test_child2, test_child3. If i upload test_template directory using ftp everything's ok, but when i try to use theme uploader and zip package test_template.zip i get an error caused by not finding a style.css file inside of the test_template directory ... but when i add a style.css file to that directory installation goes fine but templates aren't working till i use ftp and delete that file from that directory. It's troublesome if someone is giving his templates to other users.",newkind
17999,Failure to Update Notification Persists After Manual Upgrade,,Upgrade/Install,3.2,normal,normal,Awaiting Review,defect (bug),new,,2011-07-05T20:30:08Z,2013-01-13T16:42:27Z,"This has been around for a few versions. When an update fails, if the user updates or upgrades manually and WordPress lists the updated version in the Administration Panels, the failure to update notification persists. 

I've sat through four or five updates with the failure notice on every panel, including WordPress 3.2, on several sites.",Lorelle
12031,Install do not check the magic_quote_sybase status,dd32,Upgrade/Install,,normal,normal,Future Release,defect (bug),reopened,,2010-01-26T00:27:25Z,2012-11-01T20:09:16Z,"MU Trac Ticket: http://trac.mu.wordpress.org/ticket/981

Just try to install on a server that it's magic_quote_sybase is on (okay for Oracle, but fatal for mysql) . It failed to update the wp-config.php and didn't set correctly the .htaccess. ",wpmuguru
20652,"Install plugins with FTP upload, virtual subdomain, bad base dir?",dd32,Upgrade/Install,3.3.2,normal,normal,Future Release,defect (bug),reopened,needs-unit-tests,2012-05-10T12:02:48Z,2013-05-21T19:58:48Z,"Hi anybody!
I have problem with install plugins with FTP module in WP.

Everything show as OK, but plugin directory is bad. I have subdomain

sub.something.com - this is virtual subdomain from mod_rewrite

dirs are

/www/something.com/something.com[[BR]]
/www/something.com/sub.something.com - here is WP installation, subdomain is virtual from rewrite in httpd.conf

After install - WP say everything OK - but one thing is bad.[[BR]]
Upload is in bad directory - plugin I can found in[[BR]]
/www/something.com/something.com/plugins[[BR]]
no in /www/something.com/sub.something.com/plugins[[BR]]

Is here some way to fix it automatticaly or I can must edit config and basedir of ftp? Why is here this bug?

Thank you !

Pavel
",rajcz
17387,Issue with wp_theme_update_row() setting $details_url,,Upgrade/Install,3.1.2,normal,normal,Awaiting Review,defect (bug),new,,2011-05-12T09:15:44Z,2011-05-12T09:15:44Z,"I'm building my own theme auto update script and everything was working perfectly, until I ran into a weird bug.

When you're running WordPress in Multisite the $details_url for themes with an update available is set differently than when running WordPress in single site mode. 

In single site mode the details url is set inside the theme_update_available() function found in this file /wp-admin/includes/theme.php. It uses the returned 'url' like so.

{{{
$details_url = add_query_arg(array('TB_iframe' => 'true', 'width' => 1024, 'height' => 800), $update['url']);
}}}

However, in Multisite the url is built completely different. It uses the wp_theme_update_row() function in the /wp-admin/includes/update.php file like so.

{{{
$details_url = self_admin_url(""theme-install.php?tab=theme-information&theme=$theme_key&TB_iframe=true&width=600&height=400"");
}}}

I'm not exactly sure what the best approach would be to fixing this. I know there is a reason why the url is set like that but without a way to change it for my personal themes (i.e. filter or something) I'm stuck with a broken details screen in Multisite.

I did just add a filter to test it and was successful in fixing the issue, but not sure how to proceed from here.

{{{
$details_url = apply_filters( 'network_details_url', self_admin_url(""theme-install.php?tab=theme-information&theme=$theme_key&TB_iframe=true&width=600&height=400""), $theme_key, $theme );
}}}

Thanks for any help you can give me.

Cheers!
Derek Herman",valendesigns
15440,PCLZIP_ERR_BAD_FORMAT (-10) : Invalid archive structure during plugin update,,Upgrade/Install,3.0.1,low,normal,Future Release,defect (bug),new,,2010-11-16T15:53:13Z,2011-04-03T13:15:03Z,"Currently, as part of our JW Player plugin we include several player skins so that users can customize the look of the JW Player.  These skins are packaged as zip archives.

For a while now we've been getting reports from our users having difficulty performing the automated update/install.  These users are receiving a PCLZIP error which claims the plugin archive is invalid.

From looking at the source code I see that WordPress first attempts to use the ZipArchive PHP module to unzip plugin packages.  This always works for users updating our plugin.  If this is not available it then uses a fallback library called PCLZIP.  After some experimentation, it seems that PCLZIP has difficulty unzipping archives that contain archives.

Is this a known issue from your experience?  If so, is there a workaround other than removing the zip skins from our plugin package?",LongTail Video
22287,Plugin in another plugin folder causes Activate link to be wrong on Download,,Upgrade/Install,3.4,normal,normal,Awaiting Review,defect (bug),new,,2012-10-26T15:30:52Z,2012-11-13T01:41:05Z,"I am not sure if shipping a plugin within another plugin is officially supported, but there is an inconsistency between the activate links in the Manage Plugins page, and the Activate Plugin on the Plugin Downloaded success page.

This is because on the Manage Plugins page, the `get_plugins()` is going to scan the plugins dir and all dirs within it, however, on the Upgrade page, it calls `get_plugins()` specifying the plugin dir as the base (see https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-upgrader.php#L579)

That will cause the ""embedded"" plugin to be picked up, and if it's alphabetically above the main plugin file (presumably) see code comment "" //Assume the requested plugin is the first in the list""",joehoyle
14401,Unable to locate WordPress Content directory (wp-content).,,Upgrade/Install,3.0,normal,normal,Awaiting Review,defect (bug),reopened,reporter-feedback,2010-07-23T15:56:19Z,2011-08-14T01:58:27Z,"Hi, I encounter this message on one server during plugin install: ""Unable to locate WordPress Content directory (wp-content).""

PHP Version 5.2.0-8+etch1

Another info from Core Control plugin:

Direct Not Available

SSH2 Not Available

PHP FTP Extension Available

PHP FTP Sockets Available

ABSPATH: /home/www/domain.eu/subdomains/www/ 

WP_CONTENT_DIR /home/www/domain.eu/subdomains/www/wp-content
 
WP_PLUGIN_DIR /home/www/domain.eu/subdomains/www/wp-content/plugins

DOCUMENT_ROOT (from phpinfo)  /home/www/domain.eu/subdomains/www

I tried some hacks in wp-config.php, but I was not successfull.

When I tried ftpsockets, following error appears:

Warning: socket_last_error() expects parameter 1 to be resource, null given in /home/www/domain.eu/subdomains/www/wp-admin/includes/class-ftp-sockets.php on line 59

When I tried direct, following error appears:

Downloading install package from http://downloads.wordpress.org/plugin/wp-memory-usage.zip…

Unpacking the package

Could not create directory. /home/www/domain.eu/subdomains/www/wp-content/upgrade/wp-memory-usage.tmp",pavelevap
15101,Update Message Reduces User Orientation reg. WordPress Version,,Upgrade/Install,3.1,normal,normal,Future Release,defect (bug),new,,2010-10-12T12:06:13Z,2011-01-13T20:51:27Z,"This is a usability issue many customers are telling me: When there is a WordPress update message, the current version is not prominent any longer.

Normally the current version is displayed in the admin's footer. If there is a (very promintent ""on top"") update message, this version information get's hidden in footer as well.

The only place where a user can find the current version is in some dashboard widget. That location is hard to find. And that location is hard to describe on the phone, e.g. in support.

I suggest to restore the current version display in the footer, because a footer is very easy to find and to describe by phone.

Additionally the update message on top should display the current version number as well. Something Like There is a new version available, you're currently running (should be 65%-70% of the width in english text of a 1024 width screen (970 or so viewport size) to allow this to be translated w/o consuming too much of the screen real estate).",hakre
14465,Update Plugins Hangs while displaying 'updating',,Upgrade/Install,3.0.1,normal,normal,Future Release,defect (bug),new,,2010-07-30T07:45:17Z,2012-06-28T14:49:09Z,"Hi,

Whenever I try to update a plugin the update plugins screen hangs indefinetly.

Example message while this is happening would be-

""The update process is starting. This process may take awhile on some hosts, so please be patient.

Enabling Maintenance mode…

Updating Plugin Link Library (1/1)""

The plugin ulitmately gets updated if I wait a minute or two but this page never refreshes.

I am running WP 3.0.1 but this happend on 3.0.0 as well.

My host is running 
MySQL 5.0.90-community
PHP 5.2.13

and my browser is IE8.",jamesfed
13071,Update bubble appears only at the second load,dd32,Upgrade/Install,3.0,normal,normal,Future Release,defect (bug),new,,2010-04-21T15:51:25Z,2011-04-03T10:54:48Z,"Change the version of a plugin and go directly to ''wp-admin/update-core.php'' page.[[BR]]
You will see the plugin update in the list but the bubbles on the menu appears only after a reload.

",ocean90
15731,Updating multiple plugins at once throws FTP error and leaves wp in maintenance mode,,Upgrade/Install,3.0.2,normal,normal,Future Release,defect (bug),new,,2010-12-08T10:01:19Z,2010-12-11T13:29:57Z,"[[Image(http://img.skitch.com/20101208-pc3k6gej2piiewts246qrwwt18.jpg)]]

The ftp error seems related to my iptables config and not a wp bug

{{{
LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' 
}}}

But after the fail, I'm stuck with ""Briefly unavailable for scheduled maintenance. Check back in a minute.""",koke
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
13875,Upgrading from pre-2.3.0 yields database errors,,Upgrade/Install,2.9.2,normal,normal,Future Release,defect (bug),new,,2010-06-14T00:01:56Z,2010-10-28T01:51:56Z,"When upgrading a 2.2.3 to 3.0-rc3 using wp-admin/upgrade.php, three database errors appear signaling that delete_site_transient() misfunctions, as a column value for option_description is not given 
(in a way, this is #4921 again).

The upgrade script should either a) give a default value to that column or b) delete it earlier in the upgrade process.

--8<-- (error msgs follow)

WordPress database error: [Field 'option_description' doesn't have a default value]
INSERT INTO `options` (`option_name`, `option_value`, `autoload`) VALUES ('_transient_doing_cron', '1276472580', 'yes') ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)

WordPress database error: [Field 'option_description' doesn't have a default value]
INSERT INTO `options` (`option_name`, `option_value`, `autoload`) VALUES ('_site_transient_timeout_theme_roots', '1276479782', 'yes') ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)

WordPress database error: [Field 'option_description' doesn't have a default value]
INSERT INTO `options` (`option_name`, `option_value`, `autoload`) VALUES ('_site_transient_theme_roots', 'a:2:{s:15:\""philippus-do-de\"";s:7:\""/themes\"";s:9:\""twentyten\"";s:7:\""/themes\"";}', 'yes') ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)
",tinne
22840,Uploading an existing plugin saves the zip in media library,,Upgrade/Install,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-12-09T19:35:25Z,2012-12-10T14:01:45Z,"Action: Install the same plugin twice.

Expected behavior: Second time, plugin should fail and not install.

Actual Behavior: Install fails, but the plugin's .zip shows in the Media Library. (Shows in Site #1 on Multisite)

This ''is not'' a 3.5 regression, same things happens in 3.4.2",Ipstenu
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
22076,WP Upgrader: update_bulk_plugins_complete_actions and update_bulk_theme_complete_actions should pass information about all plugins/themes to the filter,,Upgrade/Install,3.0,normal,normal,Awaiting Review,defect (bug),new,,2012-10-02T07:56:19Z,2012-10-05T23:10:07Z,"In class-wp-upgrader.php, line 1214 there is this line:

{{{
$update_actions = apply_filters('update_plugin_complete_actions', $update_actions, $this->plugin);
}}}

When adding a filter to it like this:

{{{
add_filter('update_bulk_plugins_complete_actions','test_filter',99,2);

function test_filter( $update_actions, $plugins ) {
    echo print_r( $plugins, 1);
    return $update_actions;
}
}}}

Only the last updated plugin info will be printed. However, it should contain information about all the plugins that were updated (since we are dealing with a bulk upgrade here).",ragulka
5117,WordPress (plugin) updates do not warn about unknown plugins,matt,Upgrade/Install,2.6,normal,normal,Future Release,defect (bug),new,,2007-09-30T11:34:17Z,2009-09-02T20:29:29Z,"The WordPress plugin update system does not notify the user if it could not find updates for a subset of plugins. That is, if the user has installed plugins not hosted with WordPress, they are not notified that new versions were ''not'' actually checked for. This can lead the user to believe that all of their plugins are up-to-date when they are not.

Fixing this will require both the server-side and the client to be updated. The WordPress update API will need to return data on which plugins it does not recognize as being hosted, and the WordPress installation will need to render that information so that the user understands which of his/her plugins are ''not'' automatically checked.",Quandary
17439,Wordpress Database Update reports errors but says it's successfull,,Upgrade/Install,3.2,normal,normal,Awaiting Review,defect (bug),new,,2011-05-15T09:23:30Z,2011-05-15T14:36:43Z,"I just updated my database on current HEAD of trunk by pressing the button while WP told be to do so. I got an error reported:
----
'''WordPress database error:''' [Out of range value adjusted for column 'post_parent' at row 4]
`ALTER TABLE wp_posts CHANGE COLUMN post_parent post_parent bigint(20) unsigned NOT NULL default '0'`
----

However right beneath of it, I was greeted with:

----
'''Update Complete'''

Your WordPress database has been successfully updated!
----

First of all I ask myself if I can trust that message as an error has been reported.

Then this looks like that the update is not compatbile with my MySQL server which is 5.0.19 and matching the [wordpress system requirements on the webpage](http://wordpress.org/about/requirements/) (which seems to be out of date for trunk, but, well 5.0 is required according to version.php).

Related: #3112
",hakre
20069,Wordpress upgrade process removed executable bits on .php files and so broke Wordpress,,Upgrade/Install,3.3.1,normal,major,Awaiting Review,defect (bug),new,close,2012-02-18T12:55:48Z,2012-02-20T13:05:11Z,"I just upgraded from 3.2 to 3.3.1 on my shared hosting box (hosted by http://www.mythic-beasts.com). This uses suexec, and so .php scripts need to have executable permissions otherwise it won't execute them. I am told that many secure multi-user setups work like this.

My original install had the PHP scripts set as executable, but I did the upgrade (via the web GUI) and suddenly I got 500 Server Errors everywhere. I had to chmod all .php files back to executable before my blog would work again.

Wordpress should check the permissions on .php files before upgrading and preserve them across the upgrade.

Gerv",gerv
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
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
16057,download_url() error checking fails to notice that the file wasnt correctly witten to disk,,Upgrade/Install,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-01T01:36:51Z,2013-05-21T19:49:09Z,"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
23487,is_blog_installed gives errorneus result on moved database,,Upgrade/Install,3.0,normal,trivial,Awaiting Review,defect (bug),new,,2013-02-16T13:11:37Z,2013-02-16T13:31:48Z,"I resently moved my blogs to a new database, but when I tried it out, on of the blogs wanted a new install. Of course I did not want to do an install and overwrite my blog.

I indirectly found the reason in is_blog_installed, which suppresses database errors. Thus I did not see this error.

SELECT command denied to user 'techblog'@'localhost' for table 'wp_options'

Of course it was my fault, but I virtually had to take the wordpress code apart to find out why my migration failed.

Of course this is not a big problem on new installs, but very likely to happen on moving databases.
",Kjeld Flarup
11009,screenshots of plugins from wordpress.org load over http instead of https when FORCE_SSL_ADMIN is enabled,,Upgrade/Install,2.9,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-10-23T02:30:21Z,2010-02-05T13:52:39Z,"1. Enabled FORCE_SSL_ADMIN in Wordpress on an appropriate host.
2. Use default settings in Internet Explorer 8.
3. Go to the plugin installation page.
4. Choose a plugin from wordpress.org to install.

Actual Result:
You get a mixed mode warning because the screenshots and possibly other content loaded from wordpress.org are loaded over http instead of https.

Expected Result:
Screenshots are loaded over https so that content is not mixed.",brantgurga
16156,update-core is oblivious to api.wp.org being unreachable,,Upgrade/Install,,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-01-08T09:51:38Z,2011-04-04T07:46:30Z,"A server running 3.0.4 had trouble reaching *.wordpress.org for some unknown reason. (This wasn't during the brief api.wp.org outage, and it worked otherwise.)

Problem is, update-core was completely oblivious to this. It's even worse when running 3.1, because the 'Check Again' button will refresh the page and tell you we last checked for updates *just now*.

Try Again or Check Again should reflect that the API is unreachable when this can be determined. Claiming that we checked for updates is also really lame, so we should see if the transient tells us how long it's been since the last one.

Side note, the plugin install et al. HTTP error messages are rather cryptic, and we should also make those more user friendly.",nacin
22881,upgrade fails when disk space is exhausted due to quotas,,Upgrade/Install,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-12-12T11:38:41Z,2012-12-12T11:38:41Z,"The upgrade from wordpress 3.4.2 to 3.5 failed due to a disk space limitation:

{{{
Downloading update from http://wordpress.org/wordpress-3.5-new-bundled.zip…

Unpacking the update…

The package could not be installed.: PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature

Installation Failed
}}}
A similar bug occurs if the space for the files themselves is exhausted.  On the same installation, functions.php was truncated at 112k, leaving the installation in a non-functional state.

This kind of behaviour can be avoided with an upgrade function of the form:
{{{
# test for 64k free disk space ...
dd if=/dev/zero of=biggish-test-file bs=1024 count=64 && 
rm biggish-test-file &&
wget -O - http://wordpress.org/latest.tar.gz | tar -zvx --strip-components=1
}}}
Streaming the download imposes no additional disk space requirements for the intermediate .zip file, but does require a change in the extraction code.  Streaming an update cannot be done with zip files, since the index is at the end.  ZIP files have to be complete, since the tag is at the end.  'tar' files are more suitable for streaming.",list2010@…
18239,"wp_ob_end_flush_all() hangs the output buffering, during plugin update/install",,Upgrade/Install,3.2.1,normal,minor,Awaiting Review,defect (bug),new,,2011-07-25T07:52:03Z,2012-10-26T15:59:20Z,"Symptom: During plugin update process, the screen displays ""Downloading {plugin}"" then appears to hang.

System: Apache2 on LinuxMint-11

I traced the fault to the following function:
send_message() in /wp-admin/includes/misc.php

this function writes out the message, then tries to flush
the buffers by calling wp_ob_end_flush_all()

the mechanism of the ob_flush is to repeatedly call ob_end_flush until there is no more levels.

On the default configuration of LinuxMint / Debian, zlib.output_compression is ON, and this interferes with ob_end_flush

Based on notes from php.net, ob flushing is not necessary.

SOLUTION:

1) Either change php.ini to set zlib.output_compression to OFF, or

2) shortcircuit the wp_ob_end_flush_all() by adding an immediate return to the first line.

RECOMMENDATION:

In future versions of Wordpress, the interaction between ob and zlib should be studied carefully to derive the most universal solution.
",mamborambo
23269,.maintenance location issue on symlinked install,,Upgrade/Install,3.5,normal,normal,Awaiting Review,enhancement,new,,2013-01-22T21:57:11Z,2013-01-22T21:57:11Z,"I've started to symlink some of our WordPress installs using a folder structure as follows:

.htaccess
index.php
wp -> /var/www/wordpress/WordPress-latest
wp-config.php
wp-content

The wp folder is a symlink to either the latest version of WordPress, trunk or a specific version and the WordPress core files are all read only by the web server (WordPress core file installs are taken care of by Chef)

I thought creating a .maintenance file in the root or the wp-content folder would trigger maintenance mode but it looks like the .maintenance file is only detected if it lives in the same folder as the WordPress core files ($wp_filesystem->abspath()) which is read only so it's never going to be created there.

Having a shared core codebase even if I did override the write only permissions and set a .maintenance file in the WordPress directory that would mean every single site using that codebase would go into maintenance mode. (which sometimes might be useful since wordpress-latest might need updating)

What about having WordPress look for the .maintenance file in the directory above similar to what we can do with the wp-config.php file? This would then mean with a symlinked install and shared codebase you could trigger .maintenance mode for a single install or all installs using the codebase.

Or relocating the .maintenance file into the wp-content folder. This is after all where most web servers usually have write permission and where created files are meant to go.",WPsites
5235,Add Pre-flight checks to install,pishmishy*,Upgrade/Install,,normal,normal,Future Release,enhancement,accepted,dev-feedback,2007-10-19T17:37:56Z,2010-01-05T21:10:24Z,"It would be nice for the installer to do some pre-flight checks and warn the users of things that will stop WordPress working (either completely or partially)

Candidates for the pre-flight checks:
 * Functions which may be disabled - See #3014
 * Memory limit #5235
",westi
13983,Add Update Network action link after updating,,Upgrade/Install,3.0,normal,normal,Future Release,enhancement,new,,2010-06-18T20:49:58Z,2010-10-28T09:39:56Z,"After updating an installation with MultiSite enabled, one of the following should happen :

(a) There should be an action link to '''Update Network''' as well as or instead of the one to '''Go to Dashboard'''.

(b) The Update Network process should be part of the Update process",caesarsgrunt
19783,"Add a ""Processing..."" overlay to update iframes",,Upgrade/Install,,normal,normal,Awaiting Review,enhancement,new,,2012-01-09T04:42:06Z,2012-01-09T04:47:46Z,"On the back of #19781, i thought i'd raise this:

> 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

Fast partial build updates don't experience this problem, but branch-to-branch updates can take awhile on some hosts, it'd be a nicer user experience for those users affected by the above.",dd32
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
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
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
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
20074,Attempt MD5 checksum verification in upgrader if available,,Upgrade/Install,2.8,normal,normal,Future Release,enhancement,new,dev-feedback,2012-02-19T06:06:24Z,2013-02-02T07:17:28Z,"In #19928 the Content-MD5 header was added for downloads of WP releases.

We had discussed performing MD5 verification, in the past, and now that we can do it without an extra HTTP request, it is somewhat more feasible.

If we add the Content-MD5 header for themes and plugins, this should work for them as well.

The patch will also give us access to the full HTTP API response array from download_url(), if specified.",sivel
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
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
16492,Improvements to the Wordpress Update Process,,Upgrade/Install,3.0.5,normal,normal,Awaiting Review,enhancement,new,,2011-02-08T16:45:48Z,2011-07-17T21:54:10Z,"I've some suggestions on how to improve the update process (usability). I guess its not enough for separate tickets so I'm filing them together.

 * When updating Wordpress, a plugin or a theme, I'm being asked for the password to the FTP server. You should add a note there that the password won't be stored in the database. I guess many/some users are uncomfortable with storing their FTP password in the database and won't use the ""update tool"" for this reason.
 * Rename the button ""Update Automatically"" to ""Update Wordpress"". ""Update Automatically"" sound like ""Update now and update automatically in the future when a new Wordpress (and also plugin/theme?) version is available."" This should make the button's function a little bit clearer.
 ",manski
12671,Installer page doesn't check if MySQL tables were created successfully,,Upgrade/Install,2.9.2,normal,normal,Future Release,enhancement,assigned,,2010-03-22T17:47:33Z,2012-07-02T16:54:02Z,"When running the web-based setup script - My Mysql user didn't have create permissions so no tables were created but the message (underneath all the MySQL errors) said setup was successful. 

I think it would be worth doing a check for no MySQL errors before proclaiming the installation a success.",thedotproduct
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
14393,Maintenance mode overkill. Please refine usage of it,,Upgrade/Install,,normal,normal,Future Release,enhancement,new,,2010-07-22T22:12:14Z,2010-11-23T21:16:35Z,"Though many tickets have been posted about the Maintenance Mode not resolving, I think that the problem is on a different level.

It is unacceptable that even a failed upgrade of an inactive theme can break a complete Site or even Network. Case in point: I just followed the upgrade alert for an inactive theme, hosted on the WordPRess theme repository. 
(Apparently it had an error (Incompatible Archive. PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature.) But the point is, this should not have put the entire network in maintenance mode for 10 minutes.

Maybe a check can be done for plugins, themes etc: if they are active, then maintenance mode can be used (though I am definitely not a fan of it anyway).",bike
9679,Move Plugin/Theme deletion to new WP_Upgrader class,DD32,Upgrade/Install,2.8,normal,normal,Future Release,enhancement,new,,2009-04-29T08:51:55Z,2009-05-10T21:16:43Z,"Expansion off #7875, The plugin/Theme deletions should be also handled by the Upgrader class.",DD32
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
24496,Plugin_Upgrader::bulk_upgrade() and Theme_Upgrader::bulk_upgrade() sanity checks,,Upgrade/Install,2.9,normal,normal,Future Release,enhancement,new,has-patch,2013-06-05T13:08:55Z,2013-06-09T03:28:40Z,"Currently, the Plugin_Upgrader::bulk_upgrade() and Theme_Upgrader::bulk_upgrade() functions don't perform any checks to make sure at least one plugin/theme is passed to it.

This has the side effect in WordPress Multisite that if the function is called with an empty array being passed to it, then maintenance mode is enabled and disabled even though no plugins or themes are updated.

Background: https://github.com/wp-cli/wp-cli/issues/491",jamescollins
24078,Remove 'admin' as default username in install,,Upgrade/Install,3.5,normal,normal,Future Release,enhancement,new,commit,2013-04-13T19:07:29Z,2013-06-13T06:47:38Z,"The installation process populates the username field with 'admin' by default.

Many/most users probably leave it as-is, making them more vulnerable to brute force attacks that look out for ""admin"" usernames.

Seems a pretty easy improvement to specify no default username, and force the user to choose one themselves.

",chrisrudzki
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
24501,Request Allow Search Engines to Index this Site Option Turned Off By Default for Developers,,Upgrade/Install,,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-06-05T20:09:17Z,2013-06-09T22:19:44Z,"Theme & Plugin developers often create test sites which shouldn't be indexed by search engines. I propose that we turn off that option by default when a user creates a new site with the '''WP_DEBUG''' option enabled.

The way this would work is that when a new user sets up a site they would have to first set '''WP_DEBUG''' to '''true''' in the wp-config.php file. Then when they go to the wp-admin/install.php page the ''Allow search engines to index this site'' checkbox would be turned off by default. 

If a user doesn't change the '''WP_DEBUG''' setting the checkbox would be checked by default (this is how it works currently).

Since regular users are cautioned against changing the '''WP_DEBUG''' setting I see no reason not to make developers lives a little easier.",bftrick
24081,Simplifying the 5 minute setup,,Upgrade/Install,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-04-14T05:22:53Z,2013-04-14T06:14:21Z,"I decided to simplify the five minute setup. I teach a beginners class for WordPress, since it was badly needed and people usually get really confused when it asks for a database name and username. Please add onto my quickly written tutorial.php and let me know if you would be interested in putting it as a link in the five minute setup. ",ryansatterfield
17451,Unify plugin update notices and include changelog data,nacin*,Upgrade/Install,,normal,normal,Future Release,enhancement,accepted,,2011-05-16T09:23:25Z,2013-01-16T00:27:00Z,"Currently the after_plugin_row hook is only used on plugins.php which is used by the Changelogger plugin to show plugin changelogs inline.

If the hook is also added to the bottom of list_plugin_updates in update_core.php then changelogs could also be displayed on that page too.

It's only a single line change so not sure how/if it's worth me attaching a patch for this?",dempsey
18577,Updates and downloads should be signed or delivered securely,,Upgrade/Install,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-03T01:23:16Z,2011-09-03T12:05:36Z,"All channels for downloading Wordpress installations and plugins (e.g. from downloads.wordpress.org) should either be signed or delivered securely (e.g. via SSL) to mitigate man-in-the-middle attacks. Such attacks can lead to arbitrary code execution.

It appears that currently, downloads and automatic updates are neither signed nor delivered securely.",wplid
4027,Upgrade function don't do ANY error checking whatsoever,,Upgrade/Install,2.1.2,normal,normal,Future Release,enhancement,new,,2007-03-25T12:58:51Z,2009-06-14T13:43:39Z,"When I upgraded from 2.0.5 to 2.1.2, there was an error in my MySQL privileges, so the ALTER TABLE commands failed:

{{{
    WordPress database error: [ALTER command denied to user 'aasmunds'@'localhost' for table 'wp_categories']
    ALTER TABLE wp_categories ADD COLUMN link_count bigint(20) NOT NULL default '0'

    WordPress database error: [ALTER command denied to user 'aasmunds'@'localhost' for table 'wp_categories']
    ALTER TABLE wp_categories ADD COLUMN posts_private tinyint(1) NOT NULL default '0'

    WordPress database error: [ALTER command denied to user 'aasmunds'@'localhost' for table 'wp_categories']
    ALTER TABLE wp_categories ADD COLUMN links_private tinyint(1) NOT NULL default '0'
}}}

There were also a lot of secondary errors due to the above failed commands. However, the upgrade.php script still claimed that all was well:

{{{
There's actually only one step. So if you see this, you're done. Have fun!
}}}

It would be more helpful if WP would detect the MySQL errors and actually say that something went wrong and must be fixed, instead of saying that all is well even though there were heaps of errors.

This only happens once: If I run the upgrade.php script again, it just says 'all is well' without any errors, so the MySQL commands that would fail are not run again. However, the database is still broken.

It would be better if WP discovered that an upgrade failed, and set a flag somewhere that said 'this upgrade must be run again'.

See also http://wordpress.org/support/topic/111398?replies=2
",skjaeve
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
11733,do a sanity check when conduction upgrades,,Upgrade/Install,2.9,normal,normal,Future Release,enhancement,new,,2010-01-06T00:42:24Z,2010-02-18T10:51:33Z,"In the FTP transports, and possibly in the SSH transport, we should look into conducting a quick sanity check after WP transfers a file during upgrades. This would be in the event that a network problem occurs during the upload.

Depending on how robust we want it, it could be as simplistic as checking the file's size, or as complex as using md5_file().",Denis-de-Bernardy
18826,wp_maintenance() expiration time needs to be filterable,,Upgrade/Install,3.3,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-30T15:09:16Z,2011-10-01T01:23:22Z,".maintenance files expire after 10 minutes if something goes wrong.  10 minutes is a long time, when most upgrading operations are attempted and fail within 20-60 seconds.

I propose three things:

1. changing the default expiration to 5 minutes (300 seconds)
2. Adding a filter to allow plugins and themes to filter this time to increase/decrease it
3. Also, while I was in there, it seems prudent to attempt to delete the file if it has expired.  The only argument I could see against this is that possibly it might be expensive if the file can not be deleted and wp attempts to delete the file on every page load.  So I can take or leave 3 (and 2), but #2 I think is really important.",jaredh123
9757,Allow Plugin/Theme updates from a uploaded .zip file.,,Upgrade/Install,2.8,low,normal,Future Release,feature request,new,dev-feedback,2009-05-08T00:17:07Z,2011-06-06T03:02:12Z,"Plugin administration lacks of an update possibility by uploading zip files. This feature is only half-done in 2.7, you can only upload plugins as zip to install them, not to update them.

Zip file uploads should be treated the same as the other install/update possibilities like remote.

#9708 provides a testcase that can be used to test such am update by zip.

currently a over-upload in the install page does throw an error that the directory already exists:

{{{
    *


      Dashboard
    *

    *


      Posts
      Posts
          o Edit
          o Add New
          o Post Tags
          o Categories
    *


      Media
      Media
          o Library
          o Add New
    *


      Links
      Links
          o Edit
          o Add New
          o Link Categories
    *


      Pages
      Pages
          o Edit
          o Add New
    *


      Comments 0
    *

    *


      Appearance
      Appearance
          o Themes
          o Widgets
          o Editor
          o Add New Themes
          o Custom Header
    *


      Plugins 0
      Plugins 0
          o Installed
          o Add New
          o Editor
    *


      Users
      Users
          o Authors & Users
          o Add New
          o Your Profile
    *


      Tools
      Tools
          o Tools
          o Import
          o Export
          o Upgrade
    *


      Settings
      Settings
          o General
          o Writing
          o Reading
          o Discussion
          o Media
          o Privacy
          o Permalinks
          o Miscellaneous
    *

Help
Documentation
Support Forums
Help

Installing Plugin from uploaded file: 9708-plugin-testcase-9708-plugin-a-v-0.2.zip

Unpacking the package.

Installing the plugin.

Destination folder already exists. [...]worpress-trunk/wp-content/plugins/9708-plugin-testcase/

Plugin Install Failed.
}}}

",hakre
14781,Allow upload of PHP files as plugin,,Upgrade/Install,,normal,normal,Future Release,feature request,new,dev-feedback,2010-09-04T13:28:06Z,2011-10-15T13:24:46Z,Currently allowed are only ZIP packages. Plugins that consist of a single PHP file are not supported. It would be handy if uploading a single PHP file is an option.,hakre
15738,Automate Security Releases,,Upgrade/Install,,normal,trivial,Future Release,feature request,new,dev-feedback,2010-12-08T21:11:49Z,2012-12-03T23:27:46Z,"When security releases are published, several less tech-savvy users might neglect to update in fear of breaking their site.  In reality, security/maintenance releases don't change the core API and shouldn't break anything*.

We should have an option (disabled by default) that allows these X.X.1-style security updates to happen in the background.  This will keep sites updated and secure and (hopefully) prevent the inevitable ""I wanted to wait to install 3.0.2 and someone hacked my site while I was waiting"" support requests.

The option should be disabled by default, but when users are on the update screen they should see an option to ""install security releases automatically.""

Major releases should always require an explicit action from the user to update the site as they can break themes and plug-ins and could potentially update database schema.

* Except in the rare occasion where a developer hacks core.",ericmann
22704,Automatic Core Updates,pento,Upgrade/Install,3.5,normal,normal,Awaiting Review,feature request,assigned,dev-feedback,2012-12-03T22:05:04Z,2013-01-14T18:12:02Z,"It's time to think about automatic updates for WordPress Core. Plugins and Themes are a totally different ball game, so it's probably best to leave them for the moment. Currently, I'm thinking it would be a good idea to release this in stages (some of which may be combined, just spelling them out):

- SVN updates in trunk installs
- SVN updates in branch installs
- Opt-in updates in stable installs
- Opt-out updates in fresh installs
- Opt-out updates in all installs
- Remove option for opting out

I'd like to see SVN updates go into 3.6 early, so we can quickly get a good idea of compatibility issues that we're likely to run into when we get to beta.

Finally, are there any features we should be looking at adding to the upgrader for this? More sanity checking, notifications, other?",pento
16491,Automatically backup database before updating,,Upgrade/Install,3.0.5,normal,normal,Awaiting Review,feature request,new,dev-feedback,2011-02-08T16:45:15Z,2011-03-25T13:38:49Z,"Currently when updating Wordpress or its plugins/themes there's a message at the top of the page, reading that the user should backup its database.

This ""update tool"" would be so much more useful, if it could backup the database automatically before updating. I'm not so sure why one would need to backup the files so this step could most likely be skipped.",manski
10476,Option to export .zip backup before auto upgrade of wp/plugins,,Upgrade/Install,2.9,normal,normal,Future Release,feature request,assigned,,2009-07-24T17:53:14Z,2012-01-06T23:18:05Z,"Has there been any discussion on an option to export WP and plugin files in a zip before the auto upgrade process begins for either?  The upgrade process is so easy now most users don't take proper backups first.  

I'd be glad to work on a patch file, but wanted to get thoughts on this feature first?",williamsba1
15977,Send the Locale in Plugin/Theme Update Check Requests,nacin*,Upgrade/Install,3.1,normal,normal,Future Release,feature request,accepted,early,2010-12-25T20:59:43Z,2013-01-22T00:00:56Z,"Currently, we send locale (and other information about installation) only in wp_version_check and not in wp_update_plugins and wp_update_themes.

Since we still don't know how system for plugins/themes localization will work, I propose that we send this from 3.1.

Why? As said above, there is no definitive agreement on how will localization system work, but it is possible that system wont require changes in core, ie. be same or similar to one I [http://wppolyglots.wordpress.com/2010/12/10/proposal-for-plugins-localization-system/ suggested] over at Polyglots.

In that case localization system will be made independently what means that it'll can start working before 3.2 version. If we don't send locale for plugins/themes, we will need to wait for 3.2 even though that wont be significant change.

In theory, plugin/theme developers could also benefit if alongside locales, we would send all information we send in wp_version_check and later show them as are plugin versions shown now.

I know that is very late for this change but issue with plugin localization tool has been ignored for a very long time as I described in my post mentioned above in more detail.",dimadin
10989,Show changelog for core upgrade,nacin*,Upgrade/Install,,normal,minor,Future Release,feature request,accepted,,2009-10-21T01:36:14Z,2011-11-15T01:53:20Z,"When clicking on the admin notice that there is an update available, it would be interesting to see a short changelog with a link to the complete changelog of the upgrade besides the two download buttons

Example with the 2.8.5.
Show on the page:
The headline changes in this release are:

    * A fix for the Trackback Denial-of-Service attack that is currently being seen.
    * Removal of areas within the code where php code in variables was evaluated.
    * Switched the file upload functionality to be whitelisted for all users including Admins.
    * Retiring of the two importers of Tag data from old plugins.

More info : http://wordpress.org/development/2009/10/wordpress-2-8-5-hardening-release/",petervanderdoes
18201,Verify updates with md5 checks,,Upgrade/Install,,low,normal,Future Release,feature request,new,,2011-07-21T21:18:07Z,2012-12-03T23:50:16Z,"Before an update, we should verify core files with a list of md5s, returned through the API. We should do this in order to determine whether we can safely do a partial build, or if we should just copy over everything.

During the update, we can avoid copying over any files that are up to date, as verified by md5 results beforehand. This should save a number of FTP calls, in particular.

After the update, we should md5 files we've copied over, and see if anything went wrong, and try again if necessary. Unfortunately we don't always know why updates fail, so we're going to need to test the hell out of this and see what kinds of cases we can cover. (Maybe it's time for error reporting back to WP.org?)

Any other thoughts?",nacin
10666,"When an upgrade borks, There needs to be an ability to rollback",,Upgrade/Install,,normal,normal,Future Release,feature request,new,,2009-08-20T21:46:58Z,2010-02-15T01:48:44Z,"When an upgrade borks, there should be a simple script that allow you to rollback to the previous version.  It should be mostly separate from the admin interface and allow for the restoration of both a database and the files associated with the previous version.  ",jorbin
19207,dbdelta supporting foreign key,,Upgrade/Install,3.2.1,normal,normal,Awaiting Review,feature request,new,,2011-11-08T19:10:44Z,2012-07-02T09:54:41Z,Is there a plan to include support for foreign key inside dbdelta function?,manutdotcom
20947,"feature request: one-click update for core, themes and plugins (all in one)",,Upgrade/Install,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-06-13T22:48:50Z,2012-06-13T22:49:28Z,"I'd love to have the one-click update be truly one-click so that you can click once and update core, themes and plugins all at once as opposed to having to initiate three different updates.",jkudish
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
10787,Email administrators that an update is available for core|plugins|themes,dd32,Upgrade/Install,2.9,normal,normal,Future Release,task (blessed),reopened,early,2009-09-15T08:44:47Z,2012-12-03T23:50:09Z,"Inspired by the recent 'email notifications for updates' plugins discussion on wp-hackers/other forums, I'd like to propose the functionality actually be included in core.

I'm thinking of a daily email (Or perhaps, even when WordPress does the update checks) that says along the lines of:

{{{
WordPress would like to notify you that you have 3 updates available:
WordPress 2.9.1
Plugin: Super Plugin 4
Theme: My Theme
}}}

Only email when the updates havn't changed since last email.

Core potential? Or leave it for plugin material?",dd32
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
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
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
23531,Separate tests into unit / integration / ... directories,,Unit Tests,trunk,normal,normal,Awaiting Review,enhancement,new,,2013-02-19T15:51:16Z,2013-02-19T15:51:16Z,"To improve the speed how tests can be run - especially the unit-tests - I suggest to divide tests into sub-directories, for example:

''unit'' - for unit tests[[BR]]
''integration'' - for integration tests[[BR]]
''functional'' - for functional tests  

Right now all tests are roughly labeled as ""Unit-Tests"" even they are not unit-tests per-se, e.g. some of them interacting with the database or the file-system.

Background: [http://stackoverflow.com/q/4904096/367456 What's the difference between unit, functional, acceptance, and integration tests?]",hakre
23532,Sync Tests Repository on Github,,Unit Tests,,normal,normal,WordPress.org,enhancement,new,,2013-02-19T15:56:53Z,2013-04-18T13:31:26Z,"Like with Wordpress, the tests should be synched as well with a git repository under

    https://github.com/WordPress/

Especially after taking in 

    https://github.com/nb/wordpress-tests",hakre
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
19826,Error behavior for deleting trashed posts is different for Bulk Delete versus Empty Trash,,Trash,3.1.2,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2012-01-13T18:38:00Z,2012-06-19T19:34:42Z,"Bug testing a custom blog build, but I may have located a bug with core (wp-die) Trash error messages.

Background:
*The blog has different users, with different roles.
*Issue occurs on trash page of a custom post type (post status = trash .../edit.php?post_status=trash&post_type=subject)
*Trash contains posts by both an admin role (who can add/edit/delete all custom posts) and an author role (who can add/edit/delete his/her own posts).
*Logged in as an author.
*Using Capability Manager Plug-in. (Tested bug without plugin too)
*Issue is specific to behavior after normal WP-error is thrown.

Issue:
Same WP error. Two different behaviors.

Different functionality occurs between using the Bulk Actions (Delete Permanently) > ""Apply"" button and the ""Empty Trash"" button, after a normal WP error is thrown. In the first case (Bulk Actions > Apply [1a below]), after I return from the error page and refresh the Trash page, all of the selected author pages have been deleted. No admin pages have been deleted.
In the second case (""Empty Trash"" [1b below]), after I return from the error page and refresh the Trash page, all of the selected author pages have NOT been deleted. No admin pages have been deleted.


Behavior:
1a. When I am logged in as an author and I highlight posts by both author and admin, and I attempt to delete using Bulk Actions (Delete Per.) > ""Apply"", I receive the WordPress error ""You are not allowed to delete this item."" ///After I return from the error page and refresh the Trash page, all of the selected author pages have been deleted. No admin pages have been deleted.

1b. When I am logged in as an author and I highlight posts by both author and admin, and I attempt to delete using ""Empty Trash"" button, I receive the WordPress error ""You are not allowed to delete this item."" ///I return from the error page and refresh the Trash page, all of the selected author pages have NOT been deleted. No admin pages have been deleted.

returning to the Trash page. Tested both scenarios.
1. I hit back on the browser, and return to the Trash page. I refresh the page.
2. Move to a different WP admin page, not the Trash page, then return to the Trash page.

Question, because the same text/error is thrown for both buttons, why is the functionality different? Both single functions seem appropriate, however, having both functions exist together instead of picking one behavior seems problematic.",jpbellona
22350,Restored Drafts Shouldn't Have a Publication Date,,Trash,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-11-03T00:07:39Z,2013-01-19T00:00:40Z,"After creating a draft, trashing it, and then restoring it, the post editor shows a ""Publish on"" date as though it were a scheduled post, and the Date value in the list of all posts will be wrong after further editing (e.g. ""3 hours ago, Last Modified"").",miqrogroove
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
23022,Always set posts to draft status when untrashing,,Trash,2.9,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-12-20T15:00:43Z,2013-01-16T05:51:21Z,"In some situations it is bad when trashed posts immediately go live after being untrashed. Such as:

* A published post is found to have libellous/wrong/other_bad content in it
* Admin trashes the post
* Admin wants to edit the post and republish it without the bad things
* Admin cannot do this without republishing the bad things, which they cannot do.

I appreciate that the user should have unpublished the post rather than trashing it but people don't always think clearly in these situations, and once you're in it, you can't get out -- your options are to republish, permanently delete, or leave the post in limbo.

I did wonder if it would be better to make trashed posts viewable/editable in the admin but that felt like a pretty big move, and one that would make the status of a trashed post much less clear and rather ambiguous.

So, the attached patch sets all untrashed posts to draft status, rather than restoring their original status, which was the only other thing I could think of.

(Definitely happy to debate alternative solutions)",harrym
11863,Trashed items interfere with page/post slug generation,,Trash,2.9,normal,normal,Future Release,enhancement,reopened,,2010-01-11T12:40:38Z,2012-09-23T19:10:06Z,"Create a static page called test. Trash it. Create a new static page called test. It'll want to use the slug ""test-2"" instead of the expected ""test"".

This is extremely confusing for non-technically oriented users.",Denis-de-Bernardy
22660,"Admin bar in multisite: mobile tap on ""My Sites"" dropdown in back-end doesn't work",,Toolbar,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-11-30T20:40:17Z,2012-12-21T00:33:39Z,"Quick steps here to reproduce an issue where the ""My Sites"" dropdown (multisite networks) will drop down and show the ""Network Admin"" link and the list of your sites. But, clicking on a site (to expand and see ""Dashboard"", ""New Post"", etc.) does not happen. Tapping the blog name just closes the dropdown.

I'm not sure what's different but I can consistently reproduce this when in the admin back-end (but works OK on front-end admin bar when viewing a site):

From /wp-admin/ on a mobile device (tested on iOS 6, iPhone 5, iPad) with a multisite network:

1. Tap ""My Sites"" in admin bar
2. See ""Network Admin"" and list of sites below
3. Tap one one of the site names

Expected: Site name expands to show ""Dashboard"", ""New Post"", etc. (same behavior as front-end when viewing site). Screenshot: http://d.pr/i/reOi

Actual: Tapping site name simply closes the ""My Sites"" dropdown, does not browse anywhere nor expand menu",devinreams
20101,Can't use 'show_admin_bar' filter with conditional tags,nacin,Toolbar,,normal,normal,3.6,defect (bug),reopened,dev-feedback,2012-02-22T19:10:11Z,2013-05-30T21:22:15Z,"I'm trying to show the admin bar only on the front page:

{{{
function scribu_show_admin_bar() {
  return is_front_page();
}

add_filter( 'show_admin_bar', 'scribu_show_admin_bar' );
}}}

However, this doesn't work because '_wp_admin_bar_init' is called on 'init', before the main WP_Query is set up.",scribu
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
23496,Front-end admin toolbar dropdowns inaccessible on Chrome/Android,,Toolbar,3.5,normal,normal,Awaiting Review,defect (bug),new,,2013-02-17T23:45:36Z,2013-02-17T23:46:04Z,"The dropdown menus that appear on the first touch of admin toolbar menus with sub-items are inaccessible because the top level menu URL is triggered.

Steps to reproduce:

 1. Visit the front-end of your website using Chrome on Android.
 2. Click an admin toolbar menu item that has sub-items, eg. the Add New menu, the site name menu or your user profile menu.
 3. The sub-menu is triggered, but the browser also immediately navigates to the URL of the top level menu item.

The issue doesn't occur when using these menus in the admin area.

Tested using Chrome 18 on Android 4.2. Theme is TwentyTwelve.",johnbillion
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
23371,Subdir front-end Toolbar bug on first login,,Toolbar,3.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-02-02T22:36:59Z,2013-02-04T20:17:25Z,"In an obscure set of circumstances, I encountered a small bug where the Toolbar doesn't display on the front-end of a subdirectory install on the first login where the site URL points to the root domain.

`show_admin_bar_front` is rightly set to true both on first and second+ logins, but the Toolbar doesn't display on the front-end. The js isn't even being loaded.

I can reproduce this all the way back to 3.3.

To reproduce:
1. Install a fresh copy of !WordPress in a subdirectory.
2. Login.
3. Change site url to point to the main domain.
4. Visit the front-end, observe the Toolbar isn't displayed.
5. Logout.
6. Login again.
7. Re-visit the front-end, observe the Toolbar now displays as expected.

I'm unable to trace back what's causing the Toolbar not to be displayed after the initial login. Maybe we should just force the user to login again after changing the site url.",DrewAPicture
19380,There is no way to specify placement of a new menu item in the Admin Bar,,Toolbar,3.3,normal,minor,Future Release,defect (bug),new,,2011-11-28T14:38:12Z,2011-11-28T17:16:46Z,"I recently opened ticket #19371 and scribu has added a fantastic and simple solution to be able to modify existing menu items. The only problem, however, is that it is impossible to control placement of a new menu item.

For example, if I wanted to add a class on the ""wp-logo"" menu item, I would use the method specified in #19371 to remove it, modify it, and add it back.

{{{

add_action( 'admin_bar_menu', function( $admin_bar ) {
	$node = $admin_bar->remove_menu( 'wp-logo' );

	$node['meta']['class'] = 'foo';

	$admin_bar->add_menu( $node );
}, 99 );

}}}


The only problem is that it would put the menu item at the far right of the other menu items. I could then remove and re-add all the other menu items. However I don't think there is a way to get a list of all the top level menu items from within the admin bar class, so you would have to know the ID of each one from a print_r debug of the object and hard code the items in. This would break if a plugin added a menu item that wasn't in the hard coded list.

My thoughts would be either add a parameter to the add_menu() function such as priority, which could be boolean and cause the item to be added with array_unshift() instead of the current method, or a parameter that would be be for the id to ""add before menu item x"" , or just a method that would return a list of ids of the root menu items.

ps: I don't really need to add a CSS class to the wp-logo menu item, but this is the far-left-most item and I thought it would make the best example.",willshouse
22505,Toolbar dropdowns don't hide on front end on tap away,,Toolbar,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-11-19T14:46:03Z,2012-12-01T21:12:52Z,"In the wp-admin pages I can open the Howdy or New menus and tap away to close them.

In the front end admin bar, the menu stays open until navigating to a new page.

Found on 3.5-beta3-22637 using iPad3 iOS 6.0.1.",miqrogroove
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
22519,iPad toolbar location,,Toolbar,,normal,normal,Awaiting Review,defect (bug),new,,2012-11-20T17:45:44Z,2013-04-15T15:34:13Z,"The toolbar moves after using quick edit on a post or page. Also the customizer button look strange on iPad.

Steps to reproduce

1: Click quick edit on a post

2: Click ""Allow Pings""

3:  Now the admin toolbar should be be lower on page. (I was able to reproduce 4/5 tries)",MikeHansenMe
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
19979,Load jQuery on the front end for logged-in users,,Toolbar,,normal,normal,Future Release,enhancement,new,,2012-02-06T22:43:32Z,2012-02-06T22:43:32Z,"This will let us simplify the toolbar JS and improve user experience: hoverIntent, additions by plugins that require jQuery, etc.

jQuery can be loaded in two different ways:

- Directly, by enqueueing it with script_loader and then adding `wpjq = jQuery.noConflict(true);` where `true` means other version of jQuery will be left with the globals.

- By outputting some JS at the very end of 'wp_footer'. This JS would be able to check whether jQuery is already loaded and if not, load it by appending a `<script src=""..."">` tag to the head (note that this method would load jQuery asynchronously).

Previous discussion in some of the comments on #18758.",azaozz
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
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
19647,Use add_node() instead of add_menu() in core,ryan,Toolbar,3.3,normal,minor,Awaiting Review,enhancement,assigned,dev-feedback,2011-12-22T16:45:31Z,2012-09-17T06:10:56Z,"It's clear through [http://core.trac.wordpress.org/browser/tags/3.3/wp-includes/class-wp-admin-bar.php class-wp-admin-bar.php] and Nacin [http://wpdevel.wordpress.com/2011/12/07/admin-bar-api-changes-in-3-3/ has stated this] too:

  The API previously emphasized {{{add_menu()}}}, but this can be confusing, so {{{add_node()}}} is now being promoted a bit more.

Another step towards this would be that the core used {{{add_node()}}} instead of {{{add_menu()}}} when building menu items in [http://core.trac.wordpress.org/browser/tags/3.3/wp-includes/admin-bar.php admin-bar.php].

Proposed patch replaces all references to the {{{add_menu()}}} method with the {{{add_node()}}} one. (Also some code structure modifications for {{{wp_admin_bar_appearance_menu()}}}.)",linuxologos
15251,Adding Image breaks Blockquote,,TinyMCE,3.0.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-10-29T10:47:15Z,2012-09-09T09:56:47Z,"When creating entries, adding an image regularly breaks my code.

I am working on a wordpress-based project where I am defining a 'lexicon' of words. I have discovered this bug during the following standard behavior I follow in creating an entry:

All my entries open with a number of words in bold text followed by a definition. These are encapsulated in a blockquote (see example1.jpg or real world examples at kitoconnell.com/lexicon). At first, the visual editor works fine, creating healthy code as I request (I am creating these in the visual editor, but see code example code1.jpg).

Then, I add a photo and the code breaks and has to be fixed manually in the HTML editor. See attached files example2.jpg and code2.jpg; I have not made any changes except to embed a photo with a caption. Adding a picture has moved the blockquote and bold tags to incorrect positions.

Although this is not a system breaking bug, it is an annoyance I am encountering on a daily basis. Thanks for your attention and let me know if anything is unclear or I can provide more data.",kitoconnell
14341,Adjacent image disappears when a caption is added,,TinyMCE,,normal,major,Future Release,defect (bug),new,,2010-07-17T23:53:02Z,2011-05-20T21:44:17Z,"If you place two images side by side inside a strong tag and then try to add a caption to one of the images, the other image disappears. 

Tested in r15436. 

To reproduce: [[BR]] 
1) Open a new or existing post for editing [[BR]] 
2) Place the sample code from below into the html editor [[BR]] 
3) Switch to the visual editor and try to add a caption [[BR]] 
---> You'll see the other image disappear

Here is a screencast example: http://screencast.com/t/OTNmNjQzN

Here is some sample code: 

{{{
<strong><a href=""http://s.wordpress.org/about/images/logo-grey/grey-m.png""><img class=""alignleft size-full"" title=""grey logo"" src=""http://s.wordpress.org/about/images/logo-grey/grey-m.png"" alt="""" width=""100"" height=""100"" /></a><a href=""http://s.wordpress.org/about/images/logo-blue/blue-m.png""><img class=""alignleft size-full"" title=""blue logo"" src=""http://s.wordpress.org/about/images/logo-blue/blue-m.png"" alt="""" width=""100"" height=""100"" /></a></strong>
}}}",designsimply
24077,Anchor links unallowed for non-admins,,TinyMCE,3.5.1,normal,minor,Awaiting Review,defect (bug),new,,2013-04-13T15:51:02Z,2013-05-01T17:16:55Z,"Due to the HTML filter for roles below the editor (and even editors in the multisite/network version), users cannot add anchor links as per the HTML5 specifications as the name attribute is obsolete: http://www.whatwg.org/specs/web-apps/current-work/multipage/obsolete.html#attr-a-name

While valid in HTML4.01, it was still recommended that the id attribute is used: http://www.w3.org/TR/html401/struct/links.html#h-12.2.3",artychan
19926,Bad special characters replacement when changing from HTML to Visual,,TinyMCE,,normal,normal,Awaiting Review,defect (bug),new,,2012-01-30T10:43:25Z,2012-02-03T20:05:11Z,"Hello there. I have found a problem in some characters when changing from HTML to Visual. 

If you use `&darr;` in HTML view to have a down arrow, when you change to Visual you can see the down arrow. It's not interpreted, it is replaced for the `↓` character. When you hit publish, the ↓ transforms into `?`.
Same problem if I use the `special chars` button in Visual view. They transform into `?`. 

It happens for all the ASCII special characters. Here is a list of the working/not working special characters  in UTF-8.

Doesn't work (changes into ?)

{{{
&prime;    
&le;       
&infin;    
&clubs;    
&diams;    
&hearts;   
&spades;   
&harr;     
&larr;     
&uarr;     
&rarr;     
&darr;     
&Prime;    
&ge;       
&prop;     
&part;     
&ne;     
&equiv;    
&ape;      
&ap;  
}}}     

Works (shows correctly):


{{{
&fnof;     ƒ
&bull;       •
&hellip;  …
}}}

I have tested it using WordPress 3.4-alpha-19719 & Twenty Eleven & UTF-8

Possibly related: #17487",bi0xid
11674,Caption Short Codes Don't Work,,TinyMCE,,normal,critical,Future Release,defect (bug),reopened,,2009-12-30T19:07:55Z,2010-08-02T05:44:42Z,"I'm testing 2.9.1-RC1 now.  If I create a post, add a gallery plus a captioned image beneath it, this is what shows up in the HTML editing view:

{{{
<div class=""mceTemp"">

[gallery]

<dl id=""attachment_80"" class=""wp-caption alignnone"" style=""width: 160px;""><dt class=""wp-caption-dt""><a rel=""attachment wp-att-80"" href=""mytestsite/2009/12/test-post-3/wp-exif-bug/""><img class=""size-thumbnail wp-image-80"" title=""This is a supercool test"" src=""mytestsite/wp-content/uploads/2009/12/wp-exif-bug-150x136.jpg"" alt="""" width=""150"" height=""136"" /></a></dt><dd class=""wp-caption-dd"">Caption goes here</dd></dl></div>
}}}",miqrogroove
20395,Chrome does not showing anchors at images in administration,,TinyMCE,3.4,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-04-08T16:20:04Z,2012-10-17T00:36:57Z,"Hello,

For a long time I seeing bug in Wordpress administration. This bug is showing only at Chrome. When I creating new post and insert images from Media library, I do not see anchors at image. 

Screenshot: http://postimage.org/image/co0400t0h/

Thanks.",neteyescz
23353,Color picking for text color in the editor doesn't use standard color picker,,TinyMCE,3.4,normal,minor,Awaiting Review,defect (bug),new,,2013-02-01T07:35:59Z,2013-02-01T18:03:26Z,"It is bad enough that I don't really understand how to work with farbtastic, so having two different ones make me feel double stupid ;)",mark-k
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
24181,Dragging image in visual editor to new location results in text link,,TinyMCE,3.5,normal,major,Awaiting Review,defect (bug),new,,2013-04-24T21:03:57Z,2013-04-29T20:43:15Z,"If there is an image in an existing post, dragging the image to a new paragraph / line or position in the post results in the image being replaced by the linked name of the file. 

I've reproduced this on at least two different sites on WordPress.com. Attached are some screenshots.

- Both drafts and published posts
- Whether center, right, left -justified. ",rosso99
23356,Editor's text color button indicated different text color then the one use in several cases,,TinyMCE,3.4,normal,normal,Awaiting Review,defect (bug),new,,2013-02-01T08:50:53Z,2013-02-01T15:12:22Z,"1. Select a text color - the underline in the button will be displayed in that color
2. write some text with this color
3. start a new paragraph
4. button color remain the same but the text is in the theme's default color

Same when moving to different section of the document, the button do not pick the right color used in the text and stays in its last setting.",mark-k
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
21605,Fix TinyMCE statusbar styling,,TinyMCE,,normal,normal,Awaiting Review,defect (bug),reopened,,2012-08-16T04:09:21Z,2012-10-21T17:36:07Z,"When the breadcrumb links in the TinyMCE statusbar (at the bottom) are too long (many nested elements with long class names), the statusbar pushes the width of the editor and breaks the layout.",azaozz
24586,Headings don't fit in TinyMCE Format dropdown,,TinyMCE,trunk,normal,normal,3.6,defect (bug),new,close,2013-06-16T18:57:56Z,2013-06-18T19:53:32Z,"This is the second section down on the Bugs page at

http://gage.x10.mx/bugs/
----
Look for the exact title. 

The headings don't fit and are cut off in the drop-down box for the core editor for publishing posts and pages. This is also known as the ""paragraph drop-down,"" or the ""heading select drop-down.""

Picture is located on the bugs page. Also, I have moved the JetPack problem over to the Plugins Trac.",Gage Morgan
23778,How do you keep WordPress from removing the non-breaking space?,,TinyMCE,2.0,normal,normal,Awaiting Review,defect (bug),reopened,,2013-03-15T00:02:25Z,2013-03-15T08:51:41Z,"I am hoping you guys have a simple solution for me.  I would really appreciate it.

I am doing a lot of porting existing sites to be wordpress sites and I have notived that every time there is a non-breaking space &nbsp; it removes it fron the code when it is saved or when switching back and forth between visual and text mode. 

I have combed google for a solution and come up with nothing but other people complaining about the same thing with no real solution.

Thoughts anyone?",spherman
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
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
24344,More Tag not visible in the Visual Editor,,TinyMCE,trunk,normal,normal,3.6,defect (bug),new,,2013-05-15T10:23:54Z,2013-06-10T19:18:57Z,"When clicking on the ""Insert More Tag"" button in the WYSIWYG editor, the more tag line is not visible. The `<!--more-->` tag has been added & can be seen in the Text Editor but not in the Visual pane.

Both:
{{{
img.mceWPmore {
    background: url(""img/more_bug.gif"") no-repeat scroll right top transparent;
}
}}}
and:
{{{
img.mceWPnextpage, img.mceWPmore {
    -moz-border-bottom-colors: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    border-color: #CCCCCC -moz-use-text-color -moz-use-text-color;
    border-image: none;
    border-right: 0 none;
    border-style: dotted none none;
    border-width: 1px 0 0;
    display: block;
    height: 12px;
    margin: 15px auto 0;
    width: 95%;
}
}}}
seem to be missing from content.css when checked using Firebug.

Using 3.6-beta3-24260 (lasest nightly 15/05/13) & Twenty Twelve. The issue has also been confirmed using other themes.",esmi
20020,Odd Visual Editor Behavior Pertaining to Images,,TinyMCE,3.3.1,normal,normal,Awaiting Review,defect (bug),new,,2012-02-11T00:12:06Z,2012-02-12T17:24:25Z,"Hi I usually use the HTML editor. But I'm making a tutorial about using the visual editor and I ran into this problem or ""bug"".

When one adds an image to the editor and then some text, but then deletes that text using backspace, it kicks the image down a line (this happens whether the image is left or right aligned).

Then if one wishes to delete the new line that has been created, the image disappears.

Best Regards,

Drew",xroox
23389,Only First Letter of Edited Link is Linked,,TinyMCE,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-02-05T03:08:27Z,2013-02-05T13:01:01Z,"Steps to reproduce:

1. Make a link.
1. Highlight it.
1. Start typing.

Expected results:  New text should be linked.  Or, maybe the link should disappear?

Actual results:  The first letter is linked, the rest are not.",miqrogroove
17068,Pasting text from Word does not have span tags cleaned anymore,,TinyMCE,3.1,normal,normal,Awaiting Review,defect (bug),new,,2011-04-06T21:44:51Z,2011-04-08T04:53:38Z,"I usually paste text copied from Word doc using the visual editor in the post page. After upgrading to WP v-3.1 the pasting process has stopped cleaning the <span> tags which normally contains font and style attributes coming from Word doc.

After several tests I concluded (I did not find indeed) that some issue came bundled with WP-v3.1 in the \wp-includes\js\tinymce\plugins\paste\editor_plugin.js which is responsible for taking care of pasting process.

For confirming this theory I have replaced the files under \wp-includes\js\tinymce\plugins\paste\ with the same files from a previous WP version. After that, the pasting process started working again. The cleaning process is now keeping  the HTML code perfectly clean, and the span tags were removed.

It does not matter if I am pasting straight to the text or if I am using the Paste From Word button, the cleaning process is just working fine in both ways.

Using WordPress 3.1, Customized Theme, W7 /CentOS release 5.5, FF4 / IE9 / Chrome10 / Opera 11  browsers",mjaning
21281,"RTL wysiwyg ""padding""/""indention"" action is not works as expected.",azaozz,TinyMCE,3.4.1,normal,major,Awaiting Review,defect (bug),assigned,,2012-07-15T08:33:06Z,2013-02-01T16:11:41Z,"By clicking the padding button(for indention) the action not works - it warpped the text by ""p"" element with '''padding-left''' insted or '''padding-right''' in RTL.",AlmogBaku
22202,Show/hide Kitchen Sink button doesn't remain active,,TinyMCE,3.2,low,minor,Awaiting Review,defect (bug),new,,2012-10-16T12:40:16Z,2012-10-17T09:53:12Z,"If you enable all the formatting toolbar buttons by clicking ""Show/Hide Kitchen Sink"" in the editor toolbar, the button doesn't remain active when you save a post or otherwise return to the editing screen.

Tested back to 3.2, probably occured since forever.",johnbillion
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
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
23110,"Tiny MCE - when adding blockquote, entering twice no longer backs out of blockquote",,TinyMCE,3.5,normal,normal,Awaiting Review,defect (bug),new,,2013-01-03T16:48:00Z,2013-01-03T19:47:08Z,"When using the visual editor you used to press enter twice to back out of a blockquote and continue writing paragraphs, but now it just adds a nbsp; in the blockquote. Without going into the html view and actually adding content below, there's no way to get out of writing in the blockquote. ",jack.nycz
20545,TinyMCE - Edit/Delete Image Buttons Show For Non-editable Items,,TinyMCE,3.3.1,normal,normal,Awaiting Review,defect (bug),new,,2012-04-25T15:09:10Z,2012-04-25T15:09:10Z,"Forgive me if this has already been reported and/or fixed in 3.4. I've yet to have a chance to try out the BETA.

The wpEditImage plugin creates Edit and Delete buttons for every image on selection. There are several instances where images need to be used as content placeholders like in the instance of the <!-- more --> tag and [gallery] shortcode. The plugin provides a special class ""mceItem"" which prevents these image editing buttons from appearing on any image with the class.

However, the class apparently isn't checked in all the places it needs to be because you can make these image editing buttons appear even when they're not supposed to. These even occurs in the case of the [gallery] shortcode which has it's own Edit/Delete buttons. If you use one of these hacks, you can actually make the Edit/Delete ""Image"" buttons appear over the gallery-specific ones.

Here are a few examples and attached are some screenshots:

1. '''Firefox 11''' Even if an image uses the mceItemNoResize, the resize handles will still appear on hover. If you try to drag these handles, the image doesn't resize (as it shouldn't) but the Edit/Delete image buttons do appear. ''See Firefox Screenshot Suite''

2. '''IE 9''' Insert a [gallery] and hover your mouse just below an image until the ""text editor cursor"" appears. Simply click and the Edit/Delete image buttons will appear. You can differentiate these buttons from the Edit/Delete gallery buttons by hovering your mouse over them to read their title text. Unfortunately, I could not get a good screenshot of this.

Note: I could not get this error to occur on Safari or Opera.",Master Jake
22795,TinyMCE does not recognize finger selections in WIndows 8 / MSIE 10,,TinyMCE,,normal,normal,Awaiting Review,defect (bug),new,,2012-12-06T19:24:16Z,2012-12-06T20:07:14Z,"MSIE 10 (and/or Windows 8) seems to treat finger selection and mouse/keyboard selections differently. A symptom of this can been seen in the attached screenshots, when selecting text in visual mode with one's fingers vs a keyboard or standard mouse.

When selected via iOS style gestures, TinyMCE does not recognize the text as selected, and therefore does not let the user insert a link (note how the link tool is disabled). When selected via the mouse or kb, all is well. Everything also works fine with touch, mouse and kb when in text mode, pointing to an issue in TinyMCE.

Screenshots were taken while running core trunk, r23108

This might be affecting more versions of MSIE, or different contexts.
We've recently seen similar reports from users on WordPress.com.
",stephdau
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
23280,TinyMCE issue with table wrapped with shortcode,,TinyMCE,3.5,normal,normal,Awaiting Review,defect (bug),new,,2013-01-24T01:07:43Z,2013-01-25T03:02:55Z,"TinyMCE will generate unbalanced <p> tags when a table is included as the content of a wrapping style shortcode. In this example, assume a shortcode called `[div] ... [/div]` that simply brackets the content with a `<div> ... </div>`.

This is an example as it would be in the editor's Text view (and it works if you switch back and forth to Visual.):

-----------------
{{{
There will be a table following.

[div]
<table>
<tbody>
<tr>
<td>Simple table</td>
</tr>
</tbody>
</table>
[/div]

Next line is here.
}}}
------------------------
The HTML output generated is this:

{{{
<p>There will be a table following.</p>
<div></p>
<table>
<tbody>
<tr>
<td>Simple table</td>
</tr>
</tbody>
</table>
<p></div>
<p>Next line is here.</p>
}}}
------------
The shortcode is very simple - just a demo. It returns simply:

{{{
return '<div>' . do_shortcode($text) . '</div>';
}}}

Doesn't seem to matter with or without the do_shortcode() call.
--------

So note the excess </p> after the added starting <div>, and the extra <p> before the </div> from the shortcode. Seems to happen only with a wrapping style shortcode, and I think only with tables.
",wpweaver
18134,"TinyMCE messes up text when its ""caption"" contains only a space",,TinyMCE,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-07-15T19:58:23Z,2012-09-09T16:32:03Z,"1.) Have a long text [[BR]]
2.) Insert an image inside there with no link pointing anywhere and a caption that contains only a space [[BR]]
3.) Make some <dl>-s, numbered lists etc after that [[BR]]
4.) Insert a new image with full size also, and a caption with only a space. [[BR]]

After this everything is messed up. The whole text before the second image becomes the caption of the first image and the second image disappears.",szotsaki
23337,"TinyMCE, webkit and backspace/linebreak/italic issues",nacin*,TinyMCE,3.5.1,normal,normal,3.5.2,defect (bug),accepted,,2013-01-31T08:23:50Z,2013-06-19T08:39:07Z,"On WP 3.5.1 and nightly I notice irregularities in TinyMCE on webkit (Chrome, Safari).

When editing existing paragraphs in TinyMCE visual mode:

- After deleting a paragraph break, it is impossible to insert a single linebreak
- When deleting paragraph breaks, sometimes text will be wrapped in `<em id=""__mceDel"">...</em>`

Steps to reproduce:

1. In a new post, type: ""One[return]two[return]three"" (i.e. three paragraphs)
2. Position the caret before the word ""three"". Hit [delete] to merge paragraphs two and three.
3. Do a shift+return key combo, which should insert a single linebreak. Instead, a paragraph break is inserted.
4. Place the caret before the word ""two"". Hit [delete] to merge paragraphs one and two. The third paragraph is italicised. Viewing the HTML source will show that it has been wrapped in an `em` tag with the id `""__mceDel""`

Expected behaviour:

- After deleting the space between two paragraphs, shirt+return should insert a single linebreak.
- Text should not be italicised without the user having specified for TinyMCE to do so.

I can consistently reproduce this behaviour in Chrome and Safari. Firefox seems to work as expected.

I have tested with a clean install of WP 3.5.1 and the nightly build. I have tested on two different computers.

OS: OS X Lion
Browser: Chrome 24.0.1312.56, Safari 6.0.2",jnicol
18325,"TinyMce, noscript, and the gallery icon.",,TinyMCE,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-08-04T03:35:59Z,2011-08-23T22:03:10Z,"If you include the shortcode for a gallery in an html noscript tag, and switch between visual and html mode, the gallery ""icon"" is replaced by html addressing the icon... which shouldn't be visible in visual edit mode. If you publish the page with the html showing, it will then save the gallery shortcode and discard the noscript tags. I haven't been able to understand this behavior.

I'm trying to use a slideshow shortcode followed by a gallery shortcode in a noscript tag as a backup for those without JS. This works so long as I don't republish the page from the visual mode. Then I get a slideshow and a gallery.

I've tested it on a different site of my multisite install with no plugins on and it still occurs, so I'm relatively confident the problem is in the way tinymce handles the noscript tag.",cmdrmatt
14737,Tinymce Googlespell: Json return wrongly encoded special char,,TinyMCE,3.0.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2010-08-30T15:48:14Z,2011-01-13T07:04:45Z,"The Json returned by the googlespeel method is broken.

I don't have time to create a patch now:

SO this is it in the file GoogleSpell.php:

original:
(line 41,42)

if (count($matches) > 0)
			$sug = explode(""\t"", utf8_encode($this->_unhtmlentities($matches[0][4])));

Fix:
(line 41,42)

if (count($matches) > 0)
			$sug = explode(""\t"", $this->_unhtmlentities($matches[0][4]));",jli
22051,Turning off italic at the end of the word de-italicizes whole word.,,TinyMCE,3.4.2,normal,minor,Awaiting Review,defect (bug),new,,2012-09-30T07:34:16Z,2012-10-02T01:55:39Z,"I'm on a mac so I am using command-I to turn on italics in the post editor, visual mode, as I write.

To replicate: Write the first letter of a word. Then backspace. Then press command-I, and write the whole word, which will now be italicized. Before pressing the space bar, hit command-I again. Instead of just turning off italics for your next word, it turns the word you just wrote back into non-italicized text.

Through testing I discovered that it does not happen if you press command-I at the beginning of the word, it only happens when you back up in the middle of the word and then press command-I. And it doesn't happen when you press the ""I"" italics toolbar button to turn italics on and off, it only happens when using the keyboard shortcuts.

This is new behavior that started with one of the recent updates, but I don't know which one.

I know it's not a huge bug, but it's not expected behavior and it really gets in the way of my typing flow. I have to stop, go back to select the word, and make it italic again.",cheekyboots
13529,Twenty Ten max-width in editor style wraps too early,iammattthomas,TinyMCE,3.0,normal,normal,Future Release,defect (bug),assigned,,2010-05-25T04:46:34Z,2010-11-13T01:26:47Z,"While I get where iammattthomas was going with his change to the mceEditor, in practice it looks confusing...while editing my text, there are arbitrary line breaks that I didn't ask for, and there's no explanation why...

See file: http://core.trac.wordpress.org/browser/trunk/wp-content/themes/twentyten/editor-style.css?rev=13178

I propose eliminating the max-width property.

I apologize if this isn't the right way to do this, it's my first ticket.

I've attached a screenshot so you can see the issue as I see it...",longjasonm
18172,Two lay-out buttons active at the same time,azaozz,TinyMCE,3.2.1,normal,minor,Awaiting Review,defect (bug),reviewing,,2011-07-19T11:26:49Z,2012-06-29T13:50:48Z,"1) Click on the center button for writing in the middle. It doesn't matter if you write something or not.
2) Upload a image and line it out at the left or right side.
3) When you select the image two buttons are active. One for the text and one for the image...

(See screen)
",JonezJeA
17964,Underlined text is gone when copied.,,TinyMCE,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-07-02T08:30:41Z,2011-09-14T10:10:23Z,"If you underline a piece of text and you select it to copy/paste it on another spot at the page or post the line under the text is gone.
This bug doesn't appear with bold or italic text.",JonezJeA
17785,Unlink button is active even when there's no link,,TinyMCE,3.1.3,normal,minor,Awaiting Review,defect (bug),new,,2011-06-13T13:27:16Z,2011-06-13T16:17:08Z,When I am writing and want to put in a link it is working just fine. But why is the 'remove link' button active when there is no link at all? I think the 'remove link' button needs only to be active when there is a link selected.,JonezJeA
19462,Visual Editor Preserving Whitespace Instead of Stripping It,,TinyMCE,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-12-07T00:58:09Z,2013-03-15T08:08:39Z,"When using the Visual Editor, double spacing and beyond (otherwise known as whitespacing) is preserved.  The expected behavior is that these whitespaces, intentional or not are stripped accordingly to conform to XHTML standards, with only preformatted text being the exception.

This behavior is particularly observed by those who double space between sentences, where the Visual Editor adds an invisible &nbsp; after the first space.",lincolnadams
6562,"Visual Editor preserves multiple sequential spaces, fouls up shortcode parsing",,TinyMCE,2.5,normal,normal,Awaiting Review,defect (bug),reopened,,2008-04-03T02:54:27Z,2012-04-09T20:29:12Z,"The Visual Editor (TinyMCE) preserves multiple sequential spaces by turning the second (and following) spaces into some sort of funky invisible hard-space character.  Unfortunately, this character is NOT matched by ' ' (space) or '\s' (whitespace) in PCRE (preg_*() functions).

Example:

Put the following into the HTML editor on a post with uploaded images.

{{{
[gallery                 orderby=             ""RAND()""]
}}}

Save the post, then preview.  Multiple refreshes should shuffle the images around randomly, because you're ordering by RAND().

Now switch to the visual editor, and insert the same thing, with all the superfluous spaces, and save.  Preview the post -- you won't get random images, because the funky TinyMCE pseudo-space characters prevent the regex from parsing the attributes of your shortcode.

Proposed solution: turn off TinyMCE's whitespace preservation code when within square brackets.",markjaquith
20264,WP_Editor unexpected behavior/bug when used in widget,,TinyMCE,3.3.1,normal,major,Awaiting Review,defect (bug),new,,2012-03-20T17:34:09Z,2012-11-22T21:56:02Z,"Creating a bare bones widget using the wp_editor() function only returns a non-functioning editor (a few times no editor at all). Using the setting teeny => true results in a javascript error where wp_editor will try to load /wp-includes/js/tinymce/themes/simple/editor_template.js (which does not exist).


A demo video of this behavior can be found here: https://vimeo.com/38863361

This is the demo code:
{{{
add_action('widgets_init', 'my_widgets_add');
function my_widgets_add() {
    register_widget('my_wysiwyg_widget');
}
class my_wysiwyg_widget extends \WP_Widget {
    function __construct() {
        $widget_ops = array('classname' => 'my_wysiwyg_widget', 'description' => __('My WYSIWYG Widget'));
        $control_ops = array('width' => 650, 'height' => 350);
        parent::__construct(false, __(""My WYSIWYG Widget""), $widget_ops, $control_ops);
    }
    
    function form() {
        // Create a TinyMCE editor
        wp_editor('content',
            $editor_id = ""unique_id_goes_here"", 
            $settings = array(
            'textarea_name' => ""unique_name_goes_here"",
            'textarea_rows' => 7,
            teeny => false));
    }
    
    function update($new_instance, $old_instance) {
        // Save data later
        $instance = $old_instance;
        return $instance;
    }
    
    function widget($args, $instance) {
        // print later
    }    
}
}}}",niklasbr
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
21157,disapearing class=anything when ctrl+c & ctrl+v in tinymce editor,,TinyMCE,3.4,normal,normal,Future Release,defect (bug),new,,2012-07-04T18:46:12Z,2012-12-16T22:25:03Z,"type

{{{
Lorem class=anything Ipsum
}}}

anywhere. Copy the text and paste it to the WP's WYSIWYG editor. The result is just 

{{{
Lorem Ipsum
}}}

I have tried it with tinymce demo on their site and it works normaly, so it seems that only wp editor is affected.

The same wrong result is with class=""anything"", when using spaces around equal symbol (class = anything), it works normaly. Seems like some poorly written attemp to remove classes from pasted text (it does not affect id or other tag parameters i have tested)

P.S.: i am using Chrome if it makes some diference",thomask
23438,"iframe dimensions getting broken when clicking ""remove formatting"" icon in TinyMCE",,TinyMCE,3.3.2,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2013-02-10T21:23:42Z,2013-02-11T09:38:48Z,"I copy-pasted existing HTML content into the Visual editor, then clicked ""Remove Formatting"" to clean it up a bit. However, this broke the dimensions of the iframes I had in the code, changing the widths of iframes from 120px to 320px (320px seems to be the default that WP uses every time). I think the original width was in a ""style"" tag, but WP seems to have removed it from the iframe - I don't need that removed! It's costing us lots of effort to manually go back and fix every iframe.",rubberduck
23342,php error is display when using the spellchecker with php that doesn't include the openssl module,,TinyMCE,3.5,normal,minor,Awaiting Review,defect (bug),new,,2013-01-31T14:04:28Z,2013-02-01T21:35:06Z,"I get the following error when trying to spell check on wordpress running on vanila install of wamp


{{{
Error response: <br />
<b>Warning</b>: fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: unable to connect to ssl://www.google.com:443 (Unable to find the socket transport &quot;ssl&quot; - did you forget to enable it when you configured PHP?) in <b>D:\wamp\www\wp342\wp-includes\js\tinymce\plugins\spellchecker\classes\GoogleSpell.php</b> on line <b>86</b><br /> Could not open SSL connection to google.{""id"":null,""result"":[],""error"":null}
}}}

Enabling the module solves the problem.

Suggesting to made is something human readable if it is possible.",mark-k
23479,tiny_mce_before_init filter is not fired for users with Author role,,TinyMCE,3.5.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2013-02-15T10:01:01Z,2013-02-15T17:56:41Z,"http://www.designzzz.com/how-to-stop-wordpress-editor-from-removing-iframe-and-embed-code/ explains how to change wordpress so that you can embed an iframe in a post without tiny MCE removing it.

This works fine if you are logged in to wordpress as an administrator. It has no effect when you login to wordpress as an author.

I guess that the tiny_mce_before_init filter is not fired unless the user has an administrator role.",paulmackinlay
15457,Add URI support to add_editor_style(),,TinyMCE,3.0.1,normal,normal,Future Release,enhancement,new,early,2010-11-17T22:18:34Z,2010-11-22T16:34:55Z,"Currently add_editor_style() only allows for CSS files to be added that are relative in location to the current theme's stylesheet_directory or template_directory, meaning it can only be used by theme authors. Let's keep that functionality, but add the ability to attach a CSS file via URI. This way, plugin authors can use it to add editor styles.

An example of why this might be necessary is a microformat plugin where the user can style microformats differently by adding certain CSS files by the user's choice. Right now, we can only see a change like that when we click preview.

So it would be nice if plugins could use this function as well as themes.

I've attached a potential patch.",dwieeb
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
7857,Live preview of [gallery] inside TinyMCE,,TinyMCE,,normal,normal,Future Release,enhancement,new,,2008-10-09T13:33:01Z,2009-11-18T01:05:22Z,A plugin that would render [gallery] correctly for viewing in the TinyMCE editor.,ShaneF
22156,Modal buttons in TinyMCE don't match WordPress button styles,,TinyMCE,3.4,normal,minor,Awaiting Review,enhancement,new,,2012-10-10T20:41:34Z,2012-11-18T19:48:03Z,"Hit the Help button in the editor. The Close button at the bottom doesn't match our new button styles. It never has matched our buttons, but it looks a little odd now because it's nearly the same but not quite.",johnbillion
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
23355,"There should be away to select ""no color""/""theme color"" at the editor's text color selection",,TinyMCE,,normal,normal,Awaiting Review,enhancement,new,,2013-02-01T08:42:51Z,2013-02-01T11:38:48Z,"If I changed the color of a selected text the only way to revert the change is by using the ""delete styling"" button which is totally not obvious",mark-k
24067,TinyMCE 4.0,,TinyMCE,3.5.1,normal,normal,Awaiting Review,enhancement,new,,2013-04-12T18:34:58Z,2013-04-12T21:40:47Z,"Hi everyone,

Do we have any plans on implementing Tinymce 4.0 into core?

http://www.tinymce.com/presentation/index.html

Thanks.",josh401
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
6331,TinyMCE should have a code button,,TinyMCE,2.5,normal,normal,Future Release,enhancement,assigned,,2008-03-21T10:52:42Z,2009-10-25T11:23:00Z,"The html editor has a code button on the quicktags bar but TinyMCE doesn't.

This is the only missing feature from TinyMCE that makes me switch to the HTML view when writing my weekly digest posts.",westi
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
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
23576,WordPress Editor Config to Stop Using Font Tag,,TinyMCE,3.5,normal,normal,Awaiting Review,enhancement,new,reporter-feedback,2013-02-21T09:10:57Z,2013-02-21T16:33:41Z,"Please could you change the default config so that the Font tag isn't used for styling, there is a option for the editor you use to switch to using spans instead but it isn't set to do that by default.

",jscampbell.05
20076,add_editor_style() should support plugins as well,,TinyMCE,,normal,normal,Awaiting Review,enhancement,reopened,close,2012-02-19T15:16:34Z,2012-06-17T16:24:46Z,"Although plugins can use the ""mce_css"" filter to add stylesheets for TinyMCE, from an API standpoint this function is a bit misleading / counterintuitive. Why shouldn't plugins be allowed to use one and the same function call to load stylesheets? I know this was probably implemented for use in twentyten, but maybe it's time to expand it.",ericlewis
23343,tinymce supports sevaral spellchecker but there is no option to configure it in wordpress,,TinyMCE,,normal,normal,Awaiting Review,enhancement,new,close,2013-01-31T14:15:25Z,2013-02-01T11:38:45Z,"tinymce configuration is in wp-includes\js\tinymce\plugins\spellchecker\config.php, at seems to support pspell, pspellshell, google spellchecker and rpc.

Will be nice if it will be possible to configure it. A use case is create a network installation for a company which want to have its own vocabulary shared among all its writers.",mark-k
15073,Add Table Buttons to Visual Editor Kitchen Sink (2nd row),,TinyMCE,,low,minor,Future Release,feature request,new,,2010-10-08T16:54:27Z,2011-06-03T09:22:59Z,"Add Table Buttons to Visual Editor Kitchen Sink (2nd row)

This regular comes on the forums. Tables are an infrequent, but very natural way to present information. In an edu environment they are essential.

I suspect you have used tables in your posts, but have the expertise to  enter the html directly yourself.

I think the general usefulness, and unobtrusive 2nd row experience makes this a candidate for core, and not plugin material.",lloydbudd
22580,"Add an option to preserve aspect ratio when changing image size in ""Advanced Image Settings""",,TinyMCE,3.4,normal,minor,Awaiting Review,feature request,new,,2012-11-25T00:03:03Z,2012-11-25T02:52:04Z,"Having an option to preserve aspect ratio would make it much easier for me to show an image smaller and still have the proportion being correct.

It could be either done as a plain checkbox (in case of no JS) or, like the GIMP, as an imagebutton with a connected chain link when aspect ratio is preserved, and a broken chain link when aspect ration is not preserved.
",edwardw
16285,Custom Words for Spell Checking,,TinyMCE,3.0.4,normal,minor,Awaiting Review,feature request,new,,2011-01-18T14:59:46Z,2011-04-01T08:56:54Z,It would be very useful to be able to pre-load lists of specialist/custom words. It would cut down editing time especially on mobile devices. ,southcot
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
10149,A floating image added in a comment results in a weird layout in the default theme,iandstewart,Themes,2.8,low,minor,WordPress.org,defect (bug),assigned,,2009-06-13T22:33:19Z,2010-10-30T18:36:03Z,"I'd have suggested a <div class=clear></div> or something in the default theme, but the bug is actually located within wp_list_comments().",Denis-de-Bernardy
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
19115,Attempting to upload a too-large theme gives a confusing error message,,Themes,3.2.1,normal,minor,Awaiting Review,defect (bug),new,close,2011-11-02T14:24:33Z,2011-12-13T15:30:07Z,"When uploading a theme through the theme uploader, if the theme is larger than the PHP file/memory limit, the Admin panel gives the message below (or some variant):

{{{
The uploaded file could not be moved to /public_html/wp-content/uploads/2011/11
}}}

Users will assume that this is a permissions problem, trying to CHMOD folders to fix it unsuccesfully, weakening security, when it is actually a file-size problem.

The correct error message should be:

{{{
""This file is too big. The maximum upload size for your server is xM.""
}}}

I have been able to replicate. ",ariehkovler
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
18209,Capabilities with misplaced dependencies in edit_theme_options,,Themes,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-07-22T06:33:07Z,2011-07-22T06:33:07Z,"When setting capabilities for other groups, the user is unable to add to theme options with just '''edit_theme_options''' if they do not also have '''edit_posts''' capabilities. The user will be able to delete things like menu elements, but may not add them without this flag.


== How to reproduce; ==
Edit capabilities of group removing all '''POSTS''' to hide the Posts Dashboard pages (works by just removing '''edit_posts''' as well).
Give group '''edit_theme_options''' capabilities to edit their own menus.
Users may now access the Theme Options, and may delete objects.
User can add menu items to the preview, but once they Save these, the changes are not committed without the edit_posts permission.",Clorith
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
19674,Do not prefix wp_title() with spaces if $sep is empty,,Themes,2.0,normal,trivial,Future Release,defect (bug),new,dev-feedback,2011-12-27T05:14:23Z,2012-12-02T23:56:48Z,"1. Add `wp_title('')` to `header.php`.
2. Notice two spaces before the title:
{{{
<title>  Hello World</title>
}}}

This was previously brought up in #7114, but the fix suggested there wasn't backward compatible.",SergeyBiryukov
21670,ERROR: The themes directory is either empty or doesn’t exist. Please check your installation.,nacin*,Themes,,normal,minor,Future Release,defect (bug),accepted,has-patch,2012-08-23T17:14:38Z,2013-05-21T19:58:00Z,"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
20009,Escape later when getting post and body classes,,Themes,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-02-10T08:11:37Z,2012-02-15T21:24:17Z,"Both get_body_class() and get_post_class() provide filters that allow plugins and themes to add custom values to the list. These filters are applied after the values in the $classes array have been filtered through esc_attr(). I think that it would be best to move the escaping after the filter has fired.

esc_attr() was first added to get_body_class() and get_post_class() in [11838]",mfields
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
24026,No /themes/ folder causes strange behaviour,,Themes,3.1,normal,normal,Awaiting Review,defect (bug),new,,2013-04-10T07:05:04Z,2013-04-11T04:09:40Z,"I know, that it's a tricky behaviour, but the problem exists.

1. Unzip WordPress files to appropriate place
2. Go to /wp-content/ and delete /themes/ folder
3. Install WordPress using it's wizard (ignore error in Dashboard that no theme activated)
4. Go to Plugins page in admin area
5. Install BuddyPress (this plugin register the theme BP Default that is situated in plugin folder - '''this is very important''')
6. Activate BuddyPress and complete its wizard to make BP functional
7. Go to Themes page in wp-admin
8. You will now see BP Default Theme. Try to activate it
9. Ta-da! You've just unlocked a new badge for catching an error.",slaFFik
16707,No theme is one theme,,Themes,3.1,normal,minor,Awaiting Review,defect (bug),reopened,dev-feedback,2011-02-28T23:39:32Z,2012-11-01T05:43:07Z,"If you have no themes at all it still says:

""You only have one theme installed right now. Live a little!""",cogmios
14531,Only show custom header preview when an image is set,,Themes,3.0.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2010-08-04T15:28:41Z,2011-08-11T22:24:22Z,"If a custom header is removed the preview shows an empty box. We should remove the Preview section in this case. Could also display a message ""No header image set"" or similar.",mtdewvirus
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
24478,The `theme_action_links` filter passes different arguments in different places.,,Themes,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-06-01T16:45:54Z,2013-06-09T05:26:45Z,"Since r20029 at least, there has been an inconsistency in how core uses the `theme_action_links` filter.

Ordinarily, it's used like this:

http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/class-wp-themes-list-table.php#L151
`$actions = apply_filters( 'theme_action_links', $actions, $theme );`

with $theme being a WP_Theme object.

However, in the Multi Site theme admin panel, it's used like this:

http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/class-wp-ms-themes-list-table.php#L287
`$actions = apply_filters( 'theme_action_links', array_filter( $actions ), $stylesheet, $theme, $context );`

which means that for any module to successfully function in both contexts, it needs to do the following:

{{{
function theme_action_links_filter( $actions, $theme, $ms_theme = null ) {
    if ( is_a( $ms_theme, 'WP_Theme' ) ) {
        $theme = $ms_theme;
    }
    // stuff with $theme
    return $actions;
}
}}}

as can be seen in this changeset for a practical implementation: http://plugins.trac.wordpress.org/changeset/721178

If we're using a filter in core, I feel that we should be consistent with what sequence parameters are being passed to it, or at least leave a comment to devs giving them a heads up that they need to account for the other sequence.",georgestephanis
14179,Theme asking to update (theme with same name on WordPress.org),,Themes,,normal,normal,WordPress.org,defect (bug),new,,2010-07-03T08:34:02Z,2013-01-29T22:58:53Z,"I have a theme with a certain name, but there is a theme with the same name in the WordPress themes directory. So now my theme keeps showing an update message.

Proposed solutions:

1. Add unique hash to each uploaded theme in the themes directory. This way even if someone has a home-grown theme which happens to have the same name, but are not going to upload it to the themes directory, there won't be a conflict. (You could change the name of the theme, but who is to say someone won't upload a theme that also has that name.)

2. Add more fields to the updater check such as author, and date/ time created. This could mean though that theme authors would always have to add this during theme creation, and know why they are doing this. Possibly adding a extra complicating step in WordPress theme design. Otherwise at some point they or their client could start getting a update message for their theme. 

",design_dolphin
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
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
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
21918,WP_Customize_Control() doesn't work with add_setting() default theme_mod type,,Themes,3.4.2,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-09-18T11:29:03Z,2012-09-18T13:54:58Z,"Consider the following code:

{{{
            $wp_customize->add_setting($color,array(
                    'default'           => '#000000',
                    'sanitize_callback' => 'sanitize_hex_color',
                    'capability'        => 'edit_theme_options',
                    'transport'         => 'postMessage'
                )
            );
            $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize,$color,array(
                        'label'         => 'somelabel',
                        'section'       => 'colors'
                    )
                )
            );
}}}
The default 'type' used for add_setting() is 'theme_mod' as defined in http://codex.wordpress.org/Class_Reference%5CWP_Customize_Manager%5Cadd_setting

The WP_Customize_Color_Control '''does not''' accept the 'default' setting when there is no 'type' specified.

The WP_Customize_Color_Control '''does accept''' the 'default' setting when 'type' is either set to 'option' or 'theme_mods'.

Setting it to 'option' makes no sense because that would imply that one would be using a custom option database field with get_option() instead of the default database field used by get_theme_mod().

Because setting it to 'theme_mods' works and 'theme_mod' does not i suggest checking code for typos.

Expected behavior would be for it to work with theme_mod/get_theme_mod stored values when the default 'type' is used.",sebstyle
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
22336,WP_Theme::get_allowed_on_site() function doesn't work for other blogs,,Themes,3.4.2,normal,major,Awaiting Review,defect (bug),new,,2012-10-31T20:07:54Z,2012-10-31T20:39:48Z,"On line 1110, the static function WP_Theme::get_allowed_on_site() overwrites the $blog_id argument:
{{{
$current = $blog_id == get_current_blog_id();
}}}
As a consequence, calling the function for another blog than the current blog is made impossible. It doesn't look fixed in WP 3.5 either.",npetetin
9774,Warning: Division by zero in /wp-admin/custom-header.php on line 361 (and many more),,Themes,2.8,lowest,minor,Future Release,defect (bug),new,,2009-05-09T18:54:43Z,2011-03-20T17:59:00Z,we might want to check if the needed defines are around and > 0 before allowing the custom-header.php to work.,Denis-de-Bernardy
14824,WordPress is not updating Theme option after making a theme a child theme by adding the line 'Template' to the child`s css without refreshing Theem activation,,Themes,3.1,normal,normal,Future Release,defect (bug),new,,2010-09-09T23:27:35Z,2011-01-13T08:51:36Z,"Situation:

If you have 2 Themes on a 2 sites MultiSite install (each site is using one theme) and want to make one of them a child Theme of the other, you will go to one of them and add the line 'Template: NAME OF THE PARENT THEME' and save it.

After doing so the Child Theme will not inherit any Template Files from the parent until you deactivate/activate the Child Theme again.

Although it says in the ""Themes/Appereance"" section of the Child Themes backend 'CHILD THEME NAME uses templates from PARENT THEME NAME. Changes made to the templates will affect both themes.' even before deactivating/activating the Child Theme.

Looks like the template page might be checking the style.css and not update the option.",drale2k
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
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
16919,style.css can sometimes conflict with custom background image,,Themes,3.1,normal,normal,Future Release,defect (bug),new,reporter-feedback,2011-03-21T21:54:10Z,2011-06-10T16:27:10Z,"Steps to repeat:

1. Theme with the following body style (or something similar):

{{{
body {
	background: url(images/texture.jpg) #fff;
}
}}}

2. Use `add_custom_background();` in functions.php

3. Select custom bg color, but no custom bg image.

4. View site. Custom bg color shows under the default background image, looks strange. No way to eliminate the use of textured or patterned background without editing style.css.

Intended result would be that if no bg image is chosen, none is needed.

Attached patch should address this.",nathanrice
21876,unregister_default_headers() will sometimes return null,,Themes,3.4.2,normal,minor,Awaiting Review,defect (bug),new,,2012-09-12T19:23:07Z,2012-09-12T19:27:38Z,"File: wp-includes/theme.php
Function: unregister_default_headers()
Line: ~1046

Problem: 
PHPDoc comment says: @return True on success, false on failure.

Expected:
true or false:

Actual:
`var_dump(unregister_default_headers(array('FAKE')));` will return NULL

Suggested fix, change:
{{{
function unregister_default_headers( $header ) {
	global $_wp_default_headers;
	if ( is_array( $header ) ) {
		array_map( 'unregister_default_headers', $header );
	} elseif ( isset( $_wp_default_headers[ $header ] ) ) {
		unset( $_wp_default_headers[ $header ] );
		return true;
	} else {
		return false;
	}
}
}}}

To:
{{{
function unregister_default_headers( $header ) {
	global $_wp_default_headers;
	if ( is_array( $header ) ) {
	        $_ret = array_map( 'unregister_default_headers', $header );
	        return in_array(false, $_ret, true) ? false : true;
	} elseif ( isset( $_wp_default_headers[ $header ] ) ) {
		unset( $_wp_default_headers[ $header ] );
		return true;
	} else {
		return false;
	}
}
}}}

Thank you for your consideration.",conner_bw
22414,validate_current_theme() should validate cached theme roots,,Themes,,normal,normal,Future Release,defect (bug),new,,2012-11-11T21:57:54Z,2012-11-11T21:57:54Z,"See ticket:22252#comment:14. To handle edge cases like the same theme being in multiple roots, validate_current_theme() should validate the cached theme roots, and update or delete them as appropriate.",nacin
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
7625,"""Customize Header"" page visual corrections [patch]",,Themes,2.7,low,minor,WordPress.org,enhancement,new,,2008-08-28T10:44:50Z,2011-02-07T12:23:07Z,"I prepare patch which make this page a little bit nicer.
Advanced options are now under colorpicker buttons not ""Update Header"" button.

Visualisation: http://img28.picoodle.com/data/img28/3/8/28/f_TestBlog825m_2edd713.png

Patch tested on WordPress blog (latest rev.).",Simek
20516,"Ability to remove a previously-used Header Image from the list of rotating ""random"" header images",,Themes,3.4,normal,normal,Awaiting Review,enhancement,new,,2012-04-22T18:12:24Z,2012-04-22T21:38:55Z,"Being able to add a bunch of header images and then selecting the ""Random"" option in the Appearance > Header section is awesome! However, it is equally important to be able to remove one/some/all of those header images from the list of rotating images. The current UI does not support this.

An approach that would be the least disruptive to the current UI layout would be to enable a ""remove from list"" link (I wouldn't use the word ""delete"" because it's not deleting the media resource) when the user hovers over the image. The link could appear below the thumbnail, much as the Post's Quick Edit link appear under the list of Posts/Pages.",TomAuger
7795,Activate and Deactivate Theme hooks,,Themes,2.7,normal,normal,Future Release,enhancement,assigned,,2008-09-26T20:40:53Z,2013-06-10T00:08:46Z,"Currently, there is no standard way of checking whether of theme is activated, deactivated and uninstalled. Plugins have this capability and themes should also have the same to ensure that both share similar functionality.",jacobsantos
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
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
22805,Add a hook for the live theme preview event,,Themes,3.4.2,normal,normal,Awaiting Review,enhancement,new,,2012-12-07T11:19:52Z,2013-01-17T23:42:52Z,"We have a hook for theme activation and deactivation, but for the theme live preview - not...

",alexvorn2
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
20631,Add ability to add Contextual Help to the Theme Customizer,,Themes,3.4,normal,normal,Awaiting Review,enhancement,new,,2012-05-07T20:11:39Z,2012-05-07T20:55:18Z,"While this is probably more complicated than I realize, it would be good to add the ability for contextual help in the admin side of the Theme Customizer. This would enable explanations of the various core features as well as any additional custom features by theme developers.",wpsmith
16883,"Add check for ""Template Version"" on theme activation",,Themes,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-03-18T03:28:36Z,2011-10-19T18:15:47Z,"Related: #16395

In addition to adding Template Version to the standard meta information extracted from style.css in `get_theme_data()`, I think that for this information to be useful, a child theme shouldn't be able to be activated unless the template template the child theme uses (parent theme) meets the minimum version requirement identified in ""Template Version"".

A polite and graceful failure, with an error notice, would be preferable :-)

Reason: many times child themes utilize functionality that only exists in the latest version of a parent theme. They're stuck either writing backward compatibility into into their code, or risking whitescreens.

This not only prevents that, but it could be used to gently encourage the user to update the parent theme.

Certainly not a candidate for 3.1.1, but perhaps 3.2?",nathanrice
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
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
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
22401,Add information about old theme to 'theme_switched' action,,Themes,,normal,normal,Awaiting Review,enhancement,new,,2012-11-10T02:14:48Z,2012-11-10T07:05:37Z,"Currently the 'theme_switch' action passes data about the theme you're switching to, but not the theme you're switching from.  Adding it there would make it easier to juggle functionality that needs to know about new and old themes.  Right now some of this happens by [http://core.trac.wordpress.org/browser/trunk/wp-includes/theme.php?rev=22516#L696 setting an option] ('theme_switched') and [http://core.trac.wordpress.org/browser/trunk/wp-includes/theme.php?rev=22516#L1598 checking for it] on [http://core.trac.wordpress.org/browser/trunk/wp-includes/default-filters.php?rev=22516#L214 init], then deleting the option.  That could be simplified by just passing the old theme's data in theme_switched.

There's an added benefit that we avoid checking for an option on every single request that usually won't be there.",evansolomon
19124,Add prompt on themes.php at end of available themes list,,Themes,3.3,normal,normal,Future Release,enhancement,new,,2011-11-03T02:43:49Z,2012-11-01T06:45:01Z,"For new users, getting a new theme is still overwhelming. Long-term we should overhaul the way the theme management area works, but short term we could add a blurb after the last available theme is listed to prompt user to search/browse for more themes to install.",jane
21912,Add return filter to current_theme_supports(),,Themes,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-17T18:39:29Z,2013-05-22T23:30:04Z,"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
23279,"Add templates to style registration, signup, activation, login and password reset pages",,Themes,,normal,normal,Awaiting Review,enhancement,new,,2013-01-23T22:20:58Z,2013-01-25T15:29:55Z,"As [https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2013-01-23&sort=asc#m539267 discussed in IRC], the ability to override the various user-related pages would be a great ability for themes to have. At the moment, it's pretty tedious to style these and there's very little control over the content of the page (some for good reason, others not so much).

Related: #1155, #3123, #22139",rmccue
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
18959,Allow choosing multiple header images,,Themes,3.3,normal,normal,Awaiting Review,enhancement,new,,2011-10-15T21:32:15Z,2012-06-25T16:01:02Z,"Please, see small screenshot :)

[[Image(http://trueimages.ru/img/0f/5b/b7cf5f11a2786fc804521503268.png)]]

Description: This is the theme TwentyEleven. I want choose multiple header images, (for example 4,5,6), but i cannot. Only random or only one. Thanks.",wikicms
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
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
10158,"Deprecate is_home() and is_single(), in favor of is_blog() and is_post()",,Themes,,normal,normal,Future Release,enhancement,new,dev-feedback,2009-06-14T16:56:32Z,2012-08-17T19:24:06Z,Thoughts?,Denis-de-Bernardy
23040,Expand __get() method of WP_Theme object,,Themes,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-12-21T20:11:54Z,2012-12-21T22:28:31Z,"Currently, a user can do the following:
{{{
$theme   = wp_get_theme();
$version = $theme->Version;
$name    = $theme->Name;
$author  = $theme->Author;
$version = $theme->Version;
}}}

So, when I tried to get the other data in the same method, I was getting nothing. However, to get the other data, one must do this:
{{{
$theme->{'Author URI'}; // per Codex;
$theme->get( 'AuthorURI' ); // $theme->AuthorURI doesn't work
$theme->get( 'ThemeURI' ); // $theme->ThemeURI & $theme->{'Theme URI'}; doesn't work
$theme->get( 'TextDomain' ); // $theme->TextDomain & $theme->{'Text Domain'}; doesn't work
}}}

get() is a great method to get the other data; however, shouldn't we make this consistent for developers?",wpsmith
14932,Featured Images: No way to custom crop when used as headers,,Themes,3.0.1,normal,normal,Future Release,enhancement,new,,2010-09-22T09:59:34Z,2010-09-22T14:27:21Z,"Custom Headers have Custom Cropping

When a theme uses featured images for per-post headers you don't get that goodness.

Makes feature images more ghetto for custom headers than they should be.",westi
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
13239,Filter locate_template template_names variable,,Themes,3.0,normal,normal,Future Release,enhancement,reopened,has-patch,2010-05-03T21:43:05Z,2013-06-12T20:27:42Z,"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
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
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
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
11215,Improve naming of child/parent theme functions,westi,Themes,2.9,normal,normal,Future Release,enhancement,new,,2009-11-21T09:51:10Z,2012-02-17T15:41:13Z,"We have confusing naming for child/parent theme functions.

We have references to stylesheet/template instead of child/parent which makes it unclear which function should be being used.

In #11033 we introduced a function for loading the child themes textdomain with a clear name.

We should look at deprecating the stylesheet/template nomenclature and use child/parent instead.",westi
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
14310,Make template hierarchy filterable,,Themes,,normal,normal,Future Release,enhancement,reopened,dev-feedback,2010-07-14T22:03:58Z,2013-04-11T10:45:25Z,"Currently, we have filters for each template type: home_template, author_template etc.

The trouble is that these filters are applied on the final template path, after the template hierarchy has been traversed.

It would be useful if there was another filter applied to the actual template hierarchy array, before it was sent to locate_template().

== Example ==

Take the author template hierarchy:

author-{nicename}.php > author-{id}.php > author.php

Say I want to add author-{role}.php before author.php.

Sure, I could use the 'author_template' filter:

{{{
function author_role_template( $old_template ) {
  // get current author's role

  $new_template = locate_template( array( ""author-$role.php"" ) );

  if( $new_template && 'author.php' == $old_template )
    return $new_template;

  return $old_template;
}
add_filter('author_template', 'author_role_template');
}}}

With an 'author_template_candidates' hook, I could manipulate the actual hierarchy:

{{{
function author_role_template( $templates ) {
  // get current author's role

  $new_template = array( ""author-$role.php"" );

  $templates = array_merge( 
    array_slice( $templates, 0, -1 ), // before
    $new_template,                    // inserted
    array_slice( $templates, -1 )     // after
  );

  return $templates;
}
add_filter('author_template_hierarchy', 'author_role_template');
}}}

This would allow me to remove author-{id}.php if I wanted, etc.",scribu
4518,Nested <ol> <ul> lists display incorrectly with default theme,iandstewart,Themes,2.2.1,normal,normal,WordPress.org,enhancement,assigned,,2007-06-23T02:33:41Z,2011-08-23T12:48:21Z,A nested ordered / unordered list places bullets AND numbers on the unordered list.  You can see an [http://andrew.jorgensenfamily.us/2005/12/cygwin-openssh/ example of this] on my own site.  The bug is somewhere in wp-content/themes/default/style.css.  I fixed it once before but I don't recall where the bug is now.,andrewjorgensen
12563,New action on body open,joostdevalk,Themes,3.1,normal,normal,Future Release,enhancement,new,close,2010-03-09T08:33:46Z,2012-08-30T12:27:15Z,"More and more asynchronous javascripts need a part of their javascript printed right after the opening <body> tag, the Google Analytics asynchronous tracking being my most obvious example. To allow for this themes should come with a new function in the same fashion as wp_head and wp_footer, to be called 'body_open'.",joostdevalk
22273,Parent/child page template inheritance should be more consistent,,Themes,,normal,normal,Awaiting Review,enhancement,new,,2012-10-24T18:39:48Z,2012-11-22T03:26:17Z,"When page templates in sub-directories was introduced in 3.4, we also inadvertantly introduced some scenarios where page template inheritance from parent to child themes gets wonky.

After some testing on trunk (r22290), I came up with some interesting findings in what I like to call ''Battle of the page template inheritance'':

Relationship: Parent:Child

Same filename, same Template Name:
* root:root = Child wins
* root:sub = Parent wins
* sub:sub = Child wins
* sub:root = Parent wins

Different filename, same Template Name:
* root:root = Parent wins
* root:sub = Parent wins
* sub:sub = Parent wins
* sub:root = Parent wins

Same filename, different Template Name:
* root:root = Child wins
* root:sub = Both available
* sub:sub = Child wins
* sub:root = Both available

In [http://core.trac.wordpress.org/ticket/22269#comment:1 #22269], @duck_ made light of `get_page_templates()` making use of `array_flip()` which effectively gives preference to Parent templates in some situations. I think it's worth looking at whether we can't allow `get_page_templates()` to properly respect inheritance, regardless of sub or root path.



The other interesting tidbit of course is that in the third set, we see the Child can override the parent file of the same filename, even if the Template Name is different, which I take is expected, but odd in terms of inheritance.",DrewAPicture
18375,Post type templates,,Themes,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-08-10T20:37:46Z,2013-05-25T00:26:32Z,"I'm increasingly finding situations where it would be nice to have the [http://codex.wordpress.org/Pages#Page_Templates page template functionality] available to custom post types (or, more specifically, available to all post types instead of just pages).

From a technical point of view there aren't many changes needed in core to support templates for all post types, but there may be some things to consider regarding the best way to go about it.

Patch coming up for my first pass at it.

Related:
* #11216
* #15803
* #7103 (very stale)

Note that the [http://wordpress.org/extend/plugins/custom-post-template/ Custom Post Template plugin] has 37k downloads so the demand is there.",johnbillion
24016,RFE : Amend coding standards so that theme developers place dynamic styles in separate files,,Themes,3.5,normal,normal,Awaiting Review,enhancement,new,,2013-04-09T21:19:08Z,2013-04-10T10:54:28Z,"Currently, theme authors are placing their dynamically generated CSS styles inline of the HTML output on every page. In a recent example I have seen from a purchased theme, what should have been a ~45KB page was being sent as a ~225KB page because of dynamically generated styles.

With minimal code, the styles can be moved to there own file (at least from the perspective of the client user agent) and HTTP features such as ""etag"", ""last-modified"", and ""expires"" can easily be made use of to make the browsing experience better.

My suspicion is that most of theme designers are not programmers, and so would not do such a thing on their own. A standardized example would help theme designers builder leaner pages.

----

 * dynamic styles -- CSS rules created based on administrator input into theme specific settings pages",pembo13
12839,Should sandbox themes on activate to prevent fatal errors,,Themes,3.0,normal,normal,Future Release,enhancement,new,,2010-04-04T06:16:25Z,2010-10-28T09:11:30Z,"I've just made a child theme of TwentyTen by copying the folder over, renaming, and adding a Template: header to the style.css file.

Upon activation, I've been thrown to a page with a fatal error due to redefining a twentyten function.

Ideally, theme activations should be passed through a sandbox style activation the same as plugins.",dd32
22810,Support for theme changelogs,,Themes,,normal,normal,Future Release,enhancement,new,early,2012-12-07T14:39:22Z,2013-02-20T20:40:06Z,"Plugins' changelogs are shown in the WordPress plugin repository in tabs, eg. http://wordpress.org/extend/plugins/events-manager/changelog/.

Plugins' changelogs are also linked to when viewing available updates in WP-admin, so the siteadmins can know if the update could mess with their customizations.

Theme changelogs are not visible in either place. They should be supported in both places. Also http://codex.wordpress.org/Theme_Review should be updated to reflect that the theme changelogs are much recommended if not mandatory to use and to specify the exact format for them. Currently it uses language that is not clear for those who don't speak English as their first language: ""In lieu of..."" and then ""...Themes are recommended to include a changelog"", which doesn't let the theme author know what format should the changelog be in.

At the moment I've seen changelogs for themes in different formats, but none of them is supported.

Summary of the issues:

1. Add support for theme changelogs on https://wordpress.org/extend/themes/ theme pages in tabs.
2. Add support for theme changelogs in wp-admin theme list views.
3. Clarify Theme Review codex page on the supported format(s) and use more simple English than ""in lieu of"".",Daedalon
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
22929,"The text for themes under ""Available Themes"" could use some structure",,Themes,3.5,normal,minor,Awaiting Review,enhancement,new,close,2012-12-14T00:09:18Z,2012-12-30T21:32:51Z,"The text for each theme under Available Themes seems to be just floating in space, adding a border around it might look cleaner.",wycks
20714,Theme customizer: Impossible to preview a search results page,,Themes,3.4,normal,normal,Awaiting Review,enhancement,new,,2012-05-20T19:20:30Z,2012-05-24T06:57:40Z,"Steps to reproduce:

 1. Open the theme customizer
 2. Attempt to do a search in the site's search box in order to preview the search results page

The form won't submit and you won't be able to preview your search results.",johnbillion
19816,Theme details should be able to include multiple screenshots,,Themes,3.3,normal,normal,Future Release,enhancement,new,,2012-01-12T18:32:27Z,2012-12-14T23:48:54Z,"Per 3.4 scoping, themes should be able show multiple screenshots. This would require an API change on .org.

Ideas include showing a gallery inline with the current placement of the screenshot. Other visual ideas welcome. The thickbox will likely disappear and would not serve as a good place, as it is used for installing and not shown for installed themes.",helen
22794,Theme screenshots scaling breakpoint should be different when admin menu is collapsed,,Themes,3.4,normal,normal,Future Release,enhancement,new,,2012-12-06T19:14:10Z,2012-12-06T19:14:20Z,"The goal of the breakpoint was to ensure we had 3 themes across.

When the admin menu is collapsed, we get an extra 100+ pixels to work with. This means we should adjust our 1200px breakpoint to something less.",nacin
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,2013-06-10T00:09:52Z,"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
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
16280,UI improvements to Themes API,,Themes,3.1,normal,minor,Awaiting Review,enhancement,new,,2011-01-18T06:11:00Z,2011-02-08T17:31:07Z,"Following on from #16132, some improvements to the Themes API UI. Here's a patch for one particular issue, but there may be more overhaul for WP 3.2",solarissmoke
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-05-28T19:39:36Z,"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
18258,Users should not edit upstream themes,,Themes,,normal,normal,Awaiting Review,enhancement,new,,2011-07-26T12:11:06Z,2011-10-02T10:50:10Z,"Currently, when users are entering the theme editor from the administration UI, they get the ability to edit the theme with very basic knowledge required. The downside with that that their tweaks will lost as soon as they update the theme or if this is WordPress default theme if they update the WordPress core. 

I purpose the following change – Users will be prompted with a message if they try to edit a message with an upstream link and presumably won't be able to edit the theme styles. Instead, they will get the opportunity to automatically create a child theme of the upstream theme with a default template which might contain theme metadata, and @include rule to add the stylesheet of the other theme.

Making this will help promote the usage of child themes and will make it easier to novice bloggers to hack their themes. It is also better from the current implementation by extensions as it doesn't require runtime database queries to fetch the additional author stylesheet.",Tomer
21931,White screen of death if theme can't be found,,Themes,,normal,normal,Awaiting Review,enhancement,reopened,dev-feedback,2012-09-19T16:55:39Z,2012-09-21T15:31:41Z,"If the current theme can't be found or is renamed, the front-end of the site will white screen. This is developer error, as when WP_USE_THEMES is true, the template loader should always have a template to load (as far as I understand). 

It's rare, but I come across it every once in a while in developing. It might be nice to have a wp_die() if a proper template can't be found in template-loader. 

Proof of concept: 

{{{
if ( $template = apply_filters( 'template_include', $template ) )
	include( $template );
else
	wp_die(""Whoops! Looks like you're missing a theme."");
}}}",ericlewis
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
19296,add/apend templates 'transparently' via plugin to currently active theme or child theme.,,Themes,,normal,normal,Awaiting Review,enhancement,new,close,2011-11-19T02:00:27Z,2013-01-13T17:35:39Z,"In building a custom 'theme plugin' for bbpress I was just made aware that it is impossible for a plugin to 'transparently' add/append template files to the currently active theme or child theme.

I'd like to request the enhancement where when a theme is looking for a custom template such as single-forum.php to search a plugin folder if it is not found in the child theme or parent theme.

I'm thinking of some type of action where my plugin can say 'add me' to the list of places you are looking for templates.

If my understanding is correct, when WordPress is looking for a template it starts in the child, then the parent theme but ends there.

Why?
If I have a user manually add all of the custom templates needed to their current theme, and they update their theme, they will loose all the templates they manually added.

This means I have no way of giving a user custom theme templates that won't be lost when upgrading, thus requiring them to manually add the templates back in every time they upgrade their theme.

What it really means for me is that there is no real path for me to create custom bbpress templates for users where I don't have to worry about them loosing them. 

I can go the route that bbpress currently uses in this situation which is that bbpress uses the themes page.php template and replaces the_content(). The problem is I am stuck with whatever is included in the active themes page.php file.

*for instance twentyten has the title hardcoded in and the call to the sidebar, which I can't remove

I can't go the child theme route, because I have to assume that they are already using a child theme. 

Another dev told me today that this issue came up about 2 years ago. I am praying that there was proof of concept code somewhere that I can try to utilize. Does anyone happen to know if concept code exists anywhere?",anointed
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
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
14890,dynamic custom header image sizes patch,,Themes,,normal,normal,Future Release,enhancement,new,dev-feedback,2010-09-17T15:22:56Z,2010-11-22T16:42:45Z,"This patch adds the capability for theme developers to use maximum, fixed or automatic header image sizes.

HEADER_IMAGE_WIDTH and HEADER_IMAGE_HEIGHT can be set to 3 different states:
fixed - ""940"" - like the old feature. all images get resized to a fixed size
max - ""max:940"" - smaller images are not resized
auto - ""auto"" - no images are changed

At the moment the if clause handling if the image has to be resized and how is very complex. I can simplify it very easily, but didnt due to the possibility that we could at a ""manual/automatic cropping"" button or just change some conditions to manual cropping if it ""feels"" better. Needs some testing first..

The patch adds 4 new functions which - in future - will be used to return or echo the header_image's width and height:
get_header_image_width() - header_image_width()
get_header_image_height() - header_image_height()

If the whole uploading process would be filterable I would add this as a plugin, but I think it would be nice to have this feature in the core as well.

It is not ready for release yet though. E.g. need to add an explanation of the 3 states to be displayed to the user.",a.hoereth
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
15086,get_template_part() should let you specify a directory,westi*,Themes,3.0,normal,normal,Future Release,enhancement,accepted,needs-unit-tests,2010-10-10T21:36:45Z,2013-02-07T21:51:35Z,"IT would be nice for `get_template_part()` to allow you to specify a directory to look for a file in.  Right now you actually *can* do this, but it requires passing a 'slug' to the function like `directory/slug`.  Since everywhere else in the code slugs are sanitized, this seems like an unexpected way to allow this functionality (I didn't realize this worked until @nacin pointed it out).  Since this slug isn't actually sanitized at all, you can currently do `get_template_part( '../../../test' );` which seems rather unsafe (`get_template_part` should be able to include from outside the themes directory).

I suggest sanitizing $slug and adding a third [optional] parameter that allows you to specify the directory to look in.  The directory parameter should be sanitized enough to not allow it to start with a . or a / (although this more likely belongs in `locate_template()` as something done to $template_name inside the foreach).

What does everyone think about this approach?

How many themes do we think are currently using the $slug parameter to specify a directory?

Right now the optional $name parameter is set up as a fall through, so if $slug-$name.php doesn't exist $slug.php is used.  Should $directory be set up similarly ($directory/$slug-$name.php -> $directory/$slug.php -> $slug-$name.php -> $slug.php)?",aaroncampbell
23661,get_theme_root_uri doesn't get correct theme root for themes in folders registered by register_theme_directory,,Themes,3.5.1,normal,normal,Awaiting Review,enhancement,new,,2013-03-01T22:59:40Z,2013-03-02T04:42:11Z,"get_theme_root_uri doesn't get correct theme root for themes in folders registered by register_theme_directory

Doing this in wp-config.php:
{{{
define('DKO_ABSPATH', __DIR__ . '/');
// just sets DKO_ABSPATH to the path of the wp-config.php file, which happens to be my web root
}}}

Doing this in an mu-plugin:
{{{
register_theme_directory( DKO_ABSPATH . 'themes/' );
// add the webroot/themes folder as a  theme directory, trailing slash required (ideally trailingslashit in the register_theme_directory function)
}}}

Yields this for get_stylesheet_uri():
{{{
http://www.davidosomething.dev/wp/Users/dotrakoun/Sites/openshift/main/php/themes/2013-davidosomething/style.css?ver=3.5.1
}}}

i.e. the full path is returned instead of the uri.

Think the case matching in theme.php lines 477-490 (get_theme_root_uri) doesn't cover paths registered using register_theme_directory but outside of ABSPATH, site_url, and content_url",davidosomething
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
15648,switch_theme action hook may provide the old template value,,Themes,,normal,trivial,Future Release,enhancement,new,,2010-12-02T14:16:03Z,2011-01-30T20:00:37Z,"When someone change its theme, and both support custom header, then the banner and the text color are not preserved (these options are theme specific)


Anyway, one may want to preserve these values :
 * check if the new theme has its default value
 * check if the old theme values are compatible
 * ...
 * migrate the values

But in order to do this, WordPress should provide the value of the old theme in use. It would be easy to get it in switch_theme() and to send it as a second argument to the action hook.",drzraf
11735,unwrap text in theme and plugin editors,,Themes,3.0,lowest,minor,Future Release,enhancement,new,,2010-01-06T02:42:04Z,2011-01-27T05:44:06Z,"Anyone who actually has to do any editing in these boxes must know what a pain word wrap is, especially when dealing with PHP that's tab-indented a few times.

A little CSS is all that's needed for the appropriate textarea elements:
white-space: nowrap; overflow: auto;",miken32
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
12717,Ability to create new theme files.,nacin,Themes,,normal,normal,Future Release,feature request,reviewing,,2010-03-26T00:30:26Z,2010-06-21T06:18:43Z,"It would be really nice to be able to create a new file with the theme editor (e.g. loop-category.php) or a new page template for example, when you realise that you need one.

This is related to the last comment in #12716 as creating new versions of parent theme files in your child theme also would be very useful.

Yes.... I know you can use FTP to do this, but when you want to create a new page template quickly and you are in the wrong place it would be a very useful feature.
By the same argument we have the theme editor in the first place, let make it even more useful.",Dickie
19561,Allow a background colour to be set for custom headers,,Themes,3.3,normal,normal,Awaiting Review,feature request,new,,2011-12-15T09:11:04Z,2011-12-15T09:11:04Z,"Currently WordPress allows you to set a custom image background for the header and a custom text color but doesn't give the users a way to set a custom ''background color'' for the header. 

Adding a simple color picker for the header background would give users a lot more flexibility in what they can do with the header without using external software to create graphics etc. Perhaps needs a way to activate it from the themes functions.php (suggest ''add_custom_header_color''?)",hellweaver666
18623,Allow themes to pre-register multiple custom backgrounds,,Themes,3.3,normal,minor,Awaiting Review,feature request,new,dev-feedback,2011-09-08T21:53:35Z,2012-07-07T18:16:49Z,We currently have the ability to register multiple header images and to randomly cycle through them or allow users to select one and stick with it. Is there anything that would prevent a similar implementation for custom backgrounds?,zamoose
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
17236,Make it easier to subclass custom header and background,,Themes,,normal,normal,Awaiting Review,feature request,new,,2011-04-25T20:50:13Z,2012-08-10T12:55:06Z,"The functions that add the custom header and background contain code like this:

{{{
require_once( ABSPATH . 'wp-admin/custom-header.php' );
$custom_image_header = new Custom_Image_Header( $admin_header_callback, $admin_image_div_callback );
add_action( 'admin_menu', array( &$custom_image_header, 'init' ) );
}}}

This makes it difficult to extend those classes, since they're referenced here directly. Replacing them with subclasses involves not only modifying the global after the fact, but removing and re-adding the action hook to the newly created sub-class item. 

The fact that this base class is only included at this point also makes it difficult to load your own subclass at the right time, since you have to add the custom image header first, then load, then remove the action hook, then replace the class, then do the action hook yourself...

It would be nice if it was possible to more easily replace these globals (both header and background) with a different class at the time of definition here. I'm not sure of the best way to do this. Perhaps with a hook allowing the user to replace the class before the add_action? Or by having the new itself use a class of the users own defining.
",Otto42
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
19238,New approach for content navigation section in themes,,Themes,3.3,normal,normal,Awaiting Review,feature request,new,dev-feedback,2011-11-12T16:06:01Z,2011-11-12T16:06:01Z,"At this moment the only way to replace default content navigation in theme (previous/next posts links) is to manually edit theme files. Ticket #18585 allows to replace this section, but its scope is limited to Twentyeleven and its child themes. 

Therefore I propose to introduce generic mechanism, which could be used by theme and plugin autors - e.g. add new `content_navigation_template()` theme tag. By default it should look for `navigation.php` file in theme directory and include it. There should be also a new filter, which could be used by child theme and plugin authors to provide alternate navigation section.",sirzooro
21256,"New theme feature - add_theme_support( 'content-width', $defaults )",,Themes,3.4.1,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-07-13T10:08:34Z,2013-05-15T15:49:42Z,"Themes use '''$content_width''' variable to set the content area width, they use:

{{{
if ( ! isset( $content_width ) ) 
	$content_width = 500; 
}}}

This method has two flaws, it's not flexible and it does not support different sizes for different post-types.

WordPress has to make the content-width to be a builtin theme feature using '''add_theme_support()''', and make it more flexible and easy to update. I want to update this value using the Theme Customizer rather editing the function.php file.

The code needs to be easy to set and to support CPT, some thing like this:

{{{
$defaults = array(
	'post'       => '500',
	'page'       => '500',
	'attachment' => '650',
	'artist'     => '300',
	'movie'      => '400'
);
add_theme_support( 'content-width', $defaults );
}}}

Just an idea for 3.5.",ramiy
21097,Reinstall Theme feature,,Themes,,normal,normal,Awaiting Review,feature request,new,,2012-06-28T11:21:32Z,2012-06-28T14:18:38Z,"I would be interested in a feature where you can just click to reinstall a theme instead of having to deactivate it, delete it and then reinstall it. Something like with reinstalling WordPress.",grapplerulrich
20509,Theme idea - generic.php,,Themes,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-04-21T23:37:30Z,2013-03-18T23:48:35Z,"Problem: How do plugins that introduce completely new functionality (I.E. BuddyPress/bbPress) interface with themes, without needing to move template files directly into a theme's folder?

Solution: generic.php

----

generic.php would be a template file that includes skeletal layout of the theme. In place of the content and the comment logic, is an action; for the sake of discussion, let's name this action 'generic_content'

A concept file is attached for twentyeleven.

This type of ability would help prevent a ton of additional processing that plugins currently need to do to hi-jack the_content output and noop the comment stream, in situations where a plugin needs to output HTML into the main content area of a theme.

Rather than guessing at template names, and hoping 'page.php' or 'index.php' will be close enough, a convention of having themes come with a dedicated template for plugin compatibility would be incredibly helpful.

BuddyPress components have a similar convention already, with a plugin.php having only the header, footer, sidebar, and generic action in them.

The use case is currently small, and there's very little (if anything) needed in WordPress core to make this work. Wanted to post the idea here to get some developer talk going, and get opinions on other possible approaches.",johnjamesjacoby
19627,Themes should be able to opt-in to a static front page,koopersmith,Themes,,normal,normal,Future Release,feature request,assigned,,2011-12-21T01:42:05Z,2013-03-02T21:47:58Z,"A theme should be able to register that they are designed to have a static front page by default. Core should then pick up on this as part of the activation process and allow them to pick or create a page, or ignore it and show posts on the front.

Twenty Twelve will most likely need this (http://wpdevel.wordpress.com/2011/12/20/default-theme-twenty-twelve/).",nacin
20978,Upload a theme like an image,,Themes,3.5,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-06-15T18:26:31Z,2012-12-15T16:45:15Z,"add option to drag zip files like images on 'theme-install' page, enable multiupload.",alexvorn2
14752,Warn after theme activation if wp_head/footer is missing,,Themes,,normal,normal,Future Release,feature request,new,dev-feedback,2010-09-01T12:10:37Z,2010-10-28T10:34:33Z,"After theme activation, we can reliably test for wp_head() and wp_footer() with an HTTP call to the front page.

We should do that and check for two things:

 1. That wp_head() and wp_footer() are present in the theme.

 2. That they are in the correct location, immediately before </head> and </body>.

Then throw a warning that the theme may not function properly (with a link to a Codex page?) because it is not using the API correctly.

Is this core material?",nacin
22961,"""Allow link notifications from other blogs (pingbacks and trackbacks.)"" description is misleading",,Text Changes,,normal,normal,Awaiting Review,defect (bug),new,,2012-12-16T14:39:50Z,2012-12-17T11:34:24Z,"The description for enabling pingbacks and trackback is ""Allow link notifications from other blogs (pingbacks and trackbacks.)"". Which is not correct a more appropriate description should be ""By default new posts can recieve notification (pingbacks and trackbacks) from other blogs"".

The current description is broken in particular when the option is not set which leads to the assumption that the pingbacks and trackbacks are block while they are not as they are still enabled for posts which were create before the option was disabled.",mark-k
19168,Change 'View Comment' button on comment.php?action=editcomment,,Text Changes,3.3,normal,normal,Future Release,defect (bug),new,,2011-11-05T18:06:01Z,2013-01-22T00:13:56Z,"To be consistent with other screens the object should be removed.

Or Jane's words:
> that really ought to get moved out of the box altogether, but that's too big to be doing this late in cycle",ocean90
23447,"Explanation for ""parent"" dropdown missing for hierarchical custom taxonomies on edit tags admin screen",,Text Changes,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2013-02-11T11:49:16Z,2013-05-24T16:15:31Z,"The ""parent"" dropdown/select field only gets displayed for hierarchical taxonomies. The explanation still only gets displayed for the ""category"" taxonomy.",F J Kaiser
23569,Network Admin Email description falsely claims e-mails will be sent from it,,Text Changes,,normal,minor,Awaiting Review,defect (bug),new,,2013-02-21T01:27:05Z,2013-02-21T01:37:36Z,"The description for the Network Admin Email option on wp-admin/network/settings.php says, ""Registration and support emails will come from this address. An address such as support@local.nordstrom.audrey.mpangodev.com is recommended.""; but that's not true. 

If the From name/address isn't set in wp_mail()'s $header argument, it gets set to ""WordPress <wordpress@$sitename>"".

What would a better description be? Maybe some like:

  ""Where you would like to be notified about new site creation and new user registration.""

That would be consistent with the structure of the Network Name description just above it, which reads, ""What you would like to call this network.""

If that sounds good to others I'll go ahead and create a patch for it.",iandunn
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
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
16705,"Unclear wording: ""An administrator must always approve the comment """,,Text Changes,3.1,normal,normal,3.6,defect (bug),new,commit,2011-02-28T21:22:12Z,2013-05-05T01:04:18Z,"I'm not certain if I should classify this as a bug or as a need to revise wording in the options menu, or if I should put in a feature request for a refined option...

...but...

If, under Settings->Discussion you have ""An administrator must always approve the comment"" checked, if the author of the post receiving the comment has the ""edit_comment"" capability, they will receive an email notification to moderate the comment in the queue.

After viewing the wp_notify_moderator function for 3.1 in pluggable.php (and comparing it to 3.0.5's version) I can see this functionality seems to be coded in by design.

What's confusing is that the option reads ""An administrator must always approve the comment"" and it's difficult to discern if that means the user role of ""Administrator"" or anyone who can be an ""administrator"" of the comments.

It's also hard to tell from the reading of the option text whether or not this means that the function is implemented incorrectly, or if the option is simply poorly worded.

In either case, it would be useful to be able to have more granular control over who is getting these email notifications for comment moderation.

Failing that, if the ""An administrator must always approve the comment"" is checked, that should mean that only users with the ""Administrator"" role should be able to approve the comment.

...depending on what the expected behavior of this functionality is meant to be.",joe.woidpress
23082,"replace XHTML with HTML in ""WordPress should correct invalidly nested XHTML automatically"" setting",,Text Changes,,normal,normal,Awaiting Review,defect (bug),new,,2012-12-30T09:02:43Z,2012-12-30T09:02:43Z,"From inspecting the code it seems like tag balancing is done whatever flavour of HTML is being used, so maybe using the more generic term HTML will reflect better what is being done in the code.

Actually I'm not even sure that it should be more then ""Try to auto correct publishing standard errors found in the text"", just avoid totally the whole XHTML/HTML thing. I'm sure someone with better english language skills then me will find a way to make it shorter.",mark-k
24464,wp-admin/includes/class-wp-comments-list-table.php: i18n comment time,,Text Changes,,normal,normal,Future Release,defect (bug),new,has-patch,2013-05-30T14:19:51Z,2013-06-14T08:18:05Z,The comment time was originally i18ned but removed in [12789]. It's either gettext it back (see patch) OR delete the translator note.,zeo
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
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
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
17739,Comment prompt text is misleading,,Text Changes,3.2,lowest,trivial,Future Release,enhancement,new,,2011-06-10T01:24:54Z,2012-11-19T16:46:04Z,"The comment form says, ""Your email address will not be published.""

It can be deceptive b/c people assume it's used for some sort of verification, not that it goes to the site owner/comment moderator, who could very well decide to publish it if he/she happens to be an unethical jerk. People complain about this in support forums and elsewhere every now and then. Quite trivial issue compared to most tickets, but would be nice to take care of it. 

Suggestions for better text welcome.",jane
22579,Confusion of  WP admin Discussion settings,,Text Changes,,normal,major,Awaiting Review,enhancement,new,,2012-11-24T20:46:05Z,2013-05-01T16:51:55Z,"On the ""Settings>Discussion"" page:

1) ""'''Default article settings'''"" should be replaced by ""'''Default comment settings'''"" (because these important settings do not only apply to posts (''articles'')), but also to pages!

2) ""'''Allow people to post comments on new articles'''"" should be replaced by:

--> ""'''Allow people to post comments'''"" (best option in my opinion)

or

--> ""Allow people to post comments on new pages and posts""

Sorry if this is not the right place to make such suggestions.",Lorangeo
15719,Connection Information dialog does not explain root problem,,Text Changes,3.0.2,normal,normal,Future Release,enhancement,new,,2010-12-07T17:27:06Z,2012-11-19T16:52:51Z,"On a brand new install of WordPress on a fresh Ubuntu 10.10 LAMP server, after trying to update a plugin, I got the '''Connection Information''' page that requested FTP information. (""To perform the requested action, WordPress needs to access to your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host."")

This message should have explained the root cause: my filesystem permissions did not allow WordPress to write. I think this error message is defective (a bug) because it doesn't explain the problem. Therefore, admins are forced to go on a wild goose chase to find the root cause and proposed an alternative (FTP) that I didn't even want to use.",novasource
14039,Consolidate strings with same meaning but different wording,demetris,Text Changes,3.0,normal,normal,Future Release,enhancement,assigned,,2010-06-22T08:14:30Z,2012-11-19T16:52:00Z,"While translating WordPress I often come upon couples or triplets of strings that mean the same thing but are worded differently.  I would like to start consolidating such strings by selecting a preferable version and replacing the other instances with it.

Here is one example:

 *  You are not allowed to edit this page.  <- The one to keep. 
 *  Sorry, you cannot edit this page. 
 *  Sorry, you do not have the right to edit this page.

Here is another:

 *  Submit Comment
 *  Post Comment  <- $label_submit in comment_form()

Before making any patches, I will post all cases here for review and feedback.

The milestone for this would be 3.1, but it seems that I have been designated an “unknown Trac user” and I cannot set milestone and priority.",demetris
23247,Grammar Fix on setup when wp-config-sample.php does not exist,,Text Changes,,normal,trivial,Future Release,enhancement,new,commit,2013-01-20T22:45:50Z,2013-05-14T13:26:47Z,"Patch changes 

  Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file from your WordPress installation.

to 

  Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file to your WordPress installation.

Makes it a little more clear.
Perhaps in the future, we can remove the need for wp-config-sample.php all together.",bradparbs
14099,Links to Codex from within WordPress should be standardised,,Text Changes,3.0,normal,minor,Future Release,enhancement,new,,2010-06-26T10:02:57Z,2012-12-24T11:54:15Z,"There are various links to pages on Codex throughout the admin screens. Some of them say things like ""More information"", some say ""see bla bla on Codex"", some aren't clear where they link to.

It would be nice if:
 1. All Codex links were styled in a way that makes them different from other links, for example if they had a different foreground/background colour or if they had a Codex icon prepended/appended to the link.
 2. All Codex links followed similar terminology (string change).

Ideas/suggestions?",johnbillion
24513,Refer to user as 'them' rather than 'it',,Text Changes,3.5,normal,normal,Future Release,enhancement,new,commit,2013-06-06T10:36:23Z,2013-06-12T20:24:15Z,We usually refer to a singular user as 'them' but on the Add New User screen in Multisite we use 'it'.,johnbillion
22976,Remove reference to category to tag converter from the tools page,,Text Changes,,normal,normal,Awaiting Review,enhancement,new,,2012-12-17T16:02:00Z,2012-12-18T16:41:02Z,"It has been such a long time since version 2.3, does anybody really need a reminder for the existence of this tool on that relatively high profile page?",mark-k
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
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
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
18780,"The caption ""Comment author must fill out name and e-mail"" is ambiguous",gabrielhtc,Text Changes,,normal,normal,Awaiting Review,enhancement,new,,2011-09-26T14:46:14Z,2013-02-15T13:38:47Z,"
== Observation ==

Users tend to think that if they uncheck that option, the name and email fields will not be displayed.


== Problem ==

The caption ""Comment author must fill out name and e-mail "" in the ""Other comment settings"" of the Discussion settings is ambiguous.


== What is expected ==

With the current caption, users expect that the name and email fields aren't shown.


== What happens instead ==

The name and email fields are still displayed, but they are now optional instead of being required. Some of the themes do not explain whether the fields are required or optional, so the users think that unchecking the option has no effect.


== Solutions ==

* Changing the caption to a less ambiguous one such as: ""Name and email is optional for guests comments""
* Make sure that the themes show clearly which field is required or not to be able to post the comment.",gabrielhtc
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
24442,Visit theme/plugin/author homepage vs Visit theme/plugin/author site,,Text Changes,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-05-28T16:08:11Z,2013-05-28T21:58:47Z,"See:

1) http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/class-wp-ms-themes-list-table.php#L334: '''Visit theme homepage''' and '''Visit Theme Site'''

2) http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/class-wp-plugins-list-table.php#L418: '''Visit plugin site''' (2 same strings)

3) http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/plugin.php#L160: '''Visit plugin homepage'''

4) http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/class-wp-plugins-list-table.php#L414, http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/plugin.php#L163, http://core.trac.wordpress.org/browser/trunk/wp-includes/class-wp-theme.php#L654: '''Visit author homepage'''

These strings should be consistent but I'm not sure whether to go with '''site''' or '''homepage'''. I also suggest remove the redundant {{{title}}} attribute in 2).

FYI, the strings only appear in the files that listed above.",zeo
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
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-06-10T16:02:24Z,"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
6978,Accessing password protected posts though bloglines sends reader directly to dashboard,,Template,2.5.1,normal,normal,Future Release,defect (bug),new,,2008-05-15T19:13:48Z,2009-11-23T22:11:19Z,"Accessing password protected posts though bloglines sends non-admin reader directly to admin dashboard:

1) User selects a feed in bloglines
2) In the bloglines frame the user enters the password for the protected post
3) Wordpress dashboard is loaded in the bloglines frame instead of the protected post

This gives the non-admin user full access to the wordpress blog.
",MidoSibira
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
10663,Category name handling wrong function is_category,,Template,2.8.4,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-08-20T15:40:46Z,2010-07-15T13:19:54Z,"When putting numbers in front of the category names, Wordpress uses them as basis for the function is_category which leads to problems with e.g. plugins using this function.
Example:
- 3 Categories: ""News"" (id 1), ""1st Release"" (id 2), ""2nd Release"" (id 3)
- Trying to check the category with is_category(1) works for news, but also returns true for the category ""1st Release""
- Trying to check the category with is_category(2) returns true for both, ""1st Release"" and ""2nd Release""

This behaviour is not expected. It might be interesting when you explicitely give the category numbers as names (e.g. ""1"", ""2"", ""3""). Changing the in_array function to a simple equal comparison makes everything work as expected.",Azaroth
11910,Category widget displayed as dropdown doesn't use fancy urls,,Template,2.9.1,low,minor,Future Release,defect (bug),new,,2010-01-15T16:14:38Z,2010-04-03T23:47:24Z,"The title should be self-explanatory. It links to:

/?cat_id=X",Denis-de-Bernardy
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
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
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
23202,Enable is_page_template() within the Loop,,Template,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-01-15T14:21:48Z,2013-01-15T17:28:07Z,"There have been a few times where, in the loop, I need to know if I were on a page using a specific page template.

The function `in_the_loop()` provides this functionality for us to expand is_page_template().",wpsmith
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
21078,"Image Captions are inserted without caption=""..."" inside the caption tag",,Template,3.4,normal,normal,Awaiting Review,defect (bug),new,close,2012-06-26T08:17:49Z,2012-06-27T01:38:46Z,"Since WordPress 3.4 captions are inserted this way:

{{{
[caption id=""attachment_123"" align=""aligncenter"" width=""550""]
<img src=""..."">My Caption[/caption]
}}}

This means themes cannot display them properly. Previous versions inserted the caption like this:

{{{
[caption id=""attachment_123"" align=""aligncenter"" width=""550"" caption=""My Caption""]
<img src=""..."">[/caption]
}}}

Here's a forum thread discussing the issue: http://wordpress.org/support/topic/caption-broken-in-new-34-posts",versluis
9324,Let wp_link_pages do pagination when static page is used for front page,sorich87*,Template,3.0,normal,major,Future Release,defect (bug),accepted,,2009-03-12T17:20:02Z,2010-10-26T13:22:00Z,"Mentioned on WP-Hackers. If a static paginated page is used for the front page and wp_link_pages is used in the theme, the pagination links will return 404 because get_permalink will return the front page URL as the root of paginated links. I marked it as a bug since it can cause 404 errors if you don't know about it.

The enclosed patch tests for is_front_page and static pages using alternate _get_page_link functions for paginated content and using get_permalink for standard paginated links. It even works when a child page is set for the front page. 

This was a quick patch from a custom function, so it could probably be written a little better.",ev3rywh3re
21207,Link-template pagination link for page 1 missing query string args,,Template,3.4,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-07-09T20:28:25Z,2012-07-16T14:38:37Z,"In paginated pages, when on a page that is greater than page 1, the link for page 1 and the 'previousposts' link do not include any query arguments. This is fine if not including the first page argument, but not for other arguments in the query string.

For example pages that show results for form searches. The search criteria are stored with the GET method as query strings in the URL and need to be maintained from page to page as the user pages through their results.

This is in /wp-includes/link-template.php on line 1421.
A probable fix is the 'if' clause from if( $pagenum > 1 ) changed to if( $pagenum > 0 ).

I was wondering if you can apply this fix to future updates?

Thanks",alexk45
18023,No way to define default page template,,Template,3.2,normal,major,Awaiting Review,defect (bug),new,,2011-07-07T06:15:24Z,2011-07-08T17:59:26Z,"The twenty eleven theme is quite nice but there is no way to define the default page template. For a website that needs a sidebar on every single page it is a hasle to have to set (and not forget to doit) the page template to sidebar.

",Gecka
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
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
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-06-11T21:37:49Z,"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
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
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
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
24523,"The ""profile"" attribute on the head element is obsolete.",,Template,3.5.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-06-06T20:07:25Z,2013-06-09T16:53:22Z,"if you try to validade an HTML5 doc, as HTML5, via validator.w3.org,  you get the following error:

{{{
Validation Output: 1 Error

 Line 3, Column 39: The profile attribute on the head element is obsolete. To declare which meta terms are used in the document, instead register the names as meta extensions. To trigger specific UA behaviors, use a link element instead.
<head profile=""http://gmpg.org/xfn/11"">
}}}

<head profile...> comes from /wp-includes/theme-compat/header.php. '''Looks like the profile should be registered using META.'''",crashnet
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
14224,Use NCR instead of HTML entity in feed autodiscovery links,,Template,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-07-07T04:23:35Z,2011-05-10T18:54:35Z,"Currently, &raquo; is used as the separator. This will break sites served with the internet media type ""application/xhtml+xml"". The equivalent numeric character reference &#187; should be used instead.",peaceablewhale
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,2013-06-16T14:13:26Z,"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
22876,Wrong robots meta output,,Template,3.5,high,major,Awaiting Review,defect (bug),new,,2012-12-12T10:01:38Z,2012-12-12T15:15:11Z,"in default-filters.php, we add a new action:

{{{
if ( isset( $_GET['replytocom'] ) )
	add_action( 'wp_head', 'wp_no_robots' );
}}}

the issue is, wp_no_robots outputs noindex, nofollow. The noindex is fine, the nofollow stops any link equity from that URL, so that's actually a bad idea. Just noindex alone would be fine. Setting to priority high and severity to major as this is basically a regression.",joostdevalk
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
11699,adjacent_post_link fails to strip anchor tags from post titles,,Template,2.9,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-01-03T01:01:00Z,2010-11-13T07:34:49Z,"If you create a post with a title of ""Started using <a href='http://wordpress.org/'>WordPress</a>"", adjacent_post_link() emits a link that has that entire string (including the anchor tags) inside its own link.

The expected behaviour would be to strip the anchor tag to leave the link generated to the WordPress post.

This would then match being able to put links in post titles and using template code such as <h2><?php the_title(); ?></h2> which results in a heading with the appropriate title including the link that is part of the title. (If you see what I mean.)

A (but possibly the wrong) fix is to strip the anchor tags using:
{{{
1265a1266,1268
 	$allowed_html_in_titles = $allowedtags;
 	unset($allowed_html_in_titles['a']);
 	$title = wp_kses($title, $allowed_html_in_titles);
}}}
applied to wp-includes/link-template.php

",jaylett
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
18324,"after adding new template file, ""Template"" drop-down disappears",,Template,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-08-04T02:46:38Z,2011-08-04T02:46:38Z,"After adding a new page template to my theme, the ""Template"" drop-down on the add/edit page screen disappeared.  The ""Parent"" and ""Order"" form inputs still appeared, but there was no reference to the ""Template"" drop-down form element in the ""view source"" HTML of the page.

The new template file had been added to my theme directory via pull from a git repo that my collaborator had pushed the file to.  The ""Template"" drop-down worked fine on his exact copy of the theme.

I changed the theme for my site to twentyeleven and then immediately back to my custom theme, and the ""Template"" drop-down began appearing again.  I did this at the suggestion of these pages:

http://stackoverflow.com/questions/3987773/

http://wordpress.org/support/topic/template-file-drop-down-not-appearing

Evidently this intermittent bug has appeared since before Wordpress 3.",sjscitp
20413,edit_post_link() have not an equivalant without echo,,Template,3.3.1,normal,minor,Awaiting Review,defect (bug),new,,2012-04-10T21:16:59Z,2012-04-10T21:16:59Z,"Hello,

The function edit_post_link() (in link-template.php) have not a get_edit_post_link() function which returns what is displayed by edit_post_link().

It exists a function get_edit_post_link() but it returns the '''url''' of the link. Not the link (with <a href...).

It is not fun for l18n. Example :
{{{
<?php printf(__('Filed under: %1$s %2$s', 'azsimple'), get_the_category_list(__(', ', 'azsimple')), get_the_tag_list(__('Tags: ', 'azsimple'), __(', ', 'azsimple'))); ?> <?php edit_post_link(__('Edit', 'azsimple'), __(' &#124; ', 'azsimple')); ?>
}}}
How translator could put the edit_post_link before ""Filed under:..."" with just *.po file ?",leblogdudeveloppeur
15337,fix get_attachment_template() to pass templates array,,Template,2.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-11-08T02:28:51Z,2013-05-21T19:59:33Z,"get_attachment_template() currently queries for a number of templates based on the mime-type of the attachment.  It does so by checking each one individually, and returning as soon as it finds one.  It should instead build an array of templates, and pass the entire array to get_query_template().

patch attached.",willnorris
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
22112,get_adjacent_post excluded_categories isn't excluded,,Template,,normal,normal,Awaiting Review,defect (bug),new,,2012-10-05T18:21:28Z,2012-10-05T18:25:53Z,"The category I expect to be excluded in $excluded_categories, is not excluded.

With get_adjacent_post, 
Assuming $in_same_cat = TRUE
and $excluded_categories = 'ID_OF_CATEGORY'

$cat_array gets built with the ID's of categories it should include.  cool. 

But, when $excluded_categories contains an ID that $cat_array contains, the ID is removed from the $excluded_categories by array_diff() (link-template.php:1155).  

So: the category I expect to be excluded in $excluded_categories, is not excluded. 


My resolution: I remove 1154-1157. 
{{{
if ( ! empty( $cat_array ) ) {
 $excluded_categories = array_diff($excluded_categories, $cat_array);
 $posts_in_ex_cats_sql = '';
}
}}}",PatNarciso
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
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
4711,get_pages and get_posts do not work well with private posts,,Template,2.9.1,normal,normal,Future Release,defect (bug),new,,2007-08-07T17:41:32Z,2011-02-24T17:15:26Z,"The get_pages function has no way to retrieve private pages.
The get_posts function uses a post_status parameter, meaning that it can retrieve (and potentially display) private posts regardless of the user.

While get_pages() simply lacks a feature, I would argue that get_posts() is defective in that it can display things that it should not be able to display.

Both of these functions need to be updated to use the get_private_posts_cap_sql() function for building the correct post_status query segment.
",Otto42
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
18351,get_term_feed_link doesn't work well on page two of archives,,Template,3.2.1,normal,minor,Awaiting Review,defect (bug),new,reporter-feedback,2011-08-08T07:31:39Z,2011-08-08T07:47:09Z,"If you use get_term_feed_link to display the feed for an archive, for the first archive page the feed link is displayed correctly but it breaks on subsequent pages

e.g. Page 1:

http://www.WEBS1TE.com/taxonomy/term/ --> 

http://www.WEBS1TE.com/taxonomy/term/feed/ (Good feed)

Page 2

http://www.WEBS1TE.com/taxonomy/term/ --> 

http://www.WEBS1TE.com/taxonomy/term/page/2feed/ (broken link)",deadhippo
22992,get_the_author() not working outside the post query,,Template,3.5,normal,normal,Awaiting Review,defect (bug),new,close,2012-12-18T16:16:04Z,2012-12-18T19:55:33Z,"get_the_author() function return empty value if is used outside the :
have_posts() ( the_post() .. function...
the function should return the author name on the author page even if the function is not called inside the query... 

 ",alexvorn2
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
16929,pass the $type_of_url context param on user_trailingslashit() for CPT's,,Template,3.1,normal,normal,Future Release,defect (bug),new,,2011-03-22T08:42:09Z,2011-03-22T09:55:02Z,"Currently get_post_permalink() does not pass the context flag to user_trailingslashit(), this means that for custom post types, it's not possible to target them through the 'user_trailingslashit' filter.

It might be worth checking to see if taxonomies and any other uses of user_trailingslashit() pass the context as well.",dd32
18614,post_type_archive_title doesn't work when tax_query is added to wp_query,,Template,3.2,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-09-07T17:52:04Z,2013-05-21T19:48:46Z,"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
8532,the_date() doesn't function as intended,,Template,,normal,normal,Future Release,defect (bug),new,,2008-12-08T23:11:44Z,2011-10-10T14:17:19Z,"If my memory serves the idea behind the_date was that it would echo out the date, but only if it was different than the previous item it echoed out in the loop, which would be handy for doing things like day headers in index templates or month headers in archives.

At some point this seems to have been lost, I think because some variable names changed.

This restores the_date to its original behaviour.",matt
14361,the_title does not escape HTML special characters properly,,Template,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-07-20T13:45:52Z,2012-09-11T12:46:20Z,"The 'the_title' function does not escape HTML special characters properly, causing invalid HTML.

Test case: ""<test>This is a test</test>""",peaceablewhale
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
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
24428,wp_list_categories 'show_option_all' have not class element,,Template,2.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-05-26T20:59:58Z,2013-05-29T00:01:47Z,"wp_list_categories 'show_option_all'  link to all categories .
But this link have not class like overs li elements.

Try this			
{{{
	<? $args = array(
	'show_option_all'    => 'All',
	'orderby'            => 'name',
	'order'              => 'ASC',
	'style'              => 'list',
	'show_count'         => 1,
	'hide_empty'         => 1,
	'use_desc_for_title' => 0,
	'child_of'           => 0,
	'feed'               => '',
	'feed_type'          => '',
	'feed_image'         => '',
	'exclude'            => '',
	'exclude_tree'       => '',
	'include'            => '',
	'hierarchical'       => 1,
	'title_li'           => '',
	'show_option_none'   => __('No categories'),
	'number'             => null,
	'echo'               => 1,
	'depth'              => 0,
	'current_category'   => 1,
	'pad_counts'         => 0,
	'taxonomy'           => 'category',
	'walker'             => null
); ?>


<?php wp_list_categories($args); ?>

}}}
You will get

{{{
  
  <!--This li element have not class --><li><a href="""">All</a></li>
  <li class=""cat-item cat-item-35""><a></a></li>
  <li class=""cat-item cat-item-4""><a></a></li>
}}}
",Alexufo
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
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
21821,wp_title spits warnings and returns a blank when a query is both is_post_type_archive and is_category/is_tax/etc,,Template,3.4,normal,minor,Awaiting Review,defect (bug),new,,2012-09-05T23:31:38Z,2013-06-16T15:49:04Z,"When a query is made against both a post type and a category / taxonomy / et cetera, the query is both is_category and is_post_type_archive.  The queried_object is set to the first object type it comes to; category / taxonomy come before post_type, so the queried_object is a term here.

wp_title walks through each is_ option in turn and resets the title with every one it finds being true.  When there is both a category and a post type archive,  single_term_title gets called first, successfully setting the title, but then post_type_archive_title is called, which assumes the queried_object is in fact a post type object; it spits out a couple of warnings and returns a blank title. 

Probably, since its subordinate title functions depend on the queried_object being as expected, wp_title should use else if rather than just if (in the same way that get_queried_object does), but I'm not sure if that would have implications elsewhere.

(Tested against trunk r21768 as well as 3.4.1)

Attached is a unit test that demonstrates the problem.
",devesine
11678,wpautop() fails on uppercase closing tags,,Template,2.9,normal,minor,Future Release,defect (bug),new,dev-feedback,2009-12-31T11:26:11Z,2011-10-07T00:45:23Z,"To reproduce, in a post enter:

{{{
<p>Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!</P>
}}}

View the post (source) and you get: 

{{{
<p>Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!</P></p>
}}}

Because I (incorrectly) entered an uppercase closing </P> tag, wpautop() thinks there is no closing tag so adds a </p>, which then often renders as a double <p> tag. Close if this is not a bug, though I thought it may be good to do some sanitizing or something on uppercase tags.


",joehoyle
10219,"""Older Entries"" and ""Newer Entries"" links are wrong when entries displayed in ascending order",,Template,,low,minor,Future Release,enhancement,new,,2009-06-19T16:41:02Z,2010-04-10T10:31:31Z,"I added ""?order=ASC"" to a tag URL I was sending out to some people, because I wanted them to view a set of blog postings in ascending chronological order, and I noticed that the ""Older Entries"" and ""Newer Entries"" links at the bottom of the page were reversed.

I fixed this with the attached changes to the default theme.  I don't know if this is the ""right"" fix, but it worked for me, and if it isn't quite wrong, perhaps at least it will give a more experienced WordPress developer than I an idea for how to fix it properly.
",jikamens
21062,Add a 'template_file' hook to load_template(),,Template,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-06-24T21:04:50Z,2012-12-28T01:34:51Z,"Please consider adding a `'template_file'` hook in `load_template()` to enable the capture of the template filename. I have built a panel for the Debug Bar to be able to show template files loaded but I need this `'template_file'` hook to capture the template file names.  This would be super useful for developers who are building sites with the complex template loading logic found in various theme frameworks et. al.

With the hook added the code for `load_template()` might look like this:

{{{
function load_template( $_template_file, $require_once = true ) {
  global $posts, $post, $wp_did_header, $wp_did_template_redirect, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID;

  if ( is_array( $wp_query->query_vars ) )
    extract( $wp_query->query_vars, EXTR_SKIP );

  $_template_file = apply_filters( 'template_file', $_template_file, $require_once );

  if ( $require_once )
    require_once( $_template_file );
  else
    require( $_template_file );
}
}}}

Here's a screenshot showing the Theme Template Files panel I implemented so you can see the use-case. This plugin requires the hook I'm proposing in order to work and I have attached the plugin for other's review.

{{{
#!html
<img src=""http://screenshots.newclarity.net/skitched-20120624-165532.png"" />
}}}

This hook could also allow the loading of the template file from other directories such as a shared directory on a server, as appropriate, but that's not the reason I found the need today.

The source for `load_template()` is found in `/wp-includes/template.php`. ",mikeschinkel
18548,Add a better option for <title> tags,joostdevalk,Template,3.3,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-08-30T20:32:15Z,2013-01-18T04:17:40Z,"Right now, title tags in themes are created by using wp_title and than adding on custom code, usually bloginfo('name'), sometimes other code. Because there's basically no way for a plugin to control the entire content of a title tag, all major SEO plugins resort to output buffering. 

A better way would be to output the <title> tag during the run of wp_head, based on whether the current theme has added theme_support. See attached patch for the proposed implementation. This patch also fixes the requested array filter in #17877.",joostdevalk
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
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
15145,Add a wp_list_users() template tag,,Template,3.1,normal,normal,Future Release,enhancement,new,,2010-10-18T11:03:34Z,2011-01-13T06:01:32Z,"Now that `get_users()` has been implemented (#14572), I propose we add a function called `wp_list_users()` that handles a basic list of users similar to `wp_list_authors()`.  WordPress has long needed a function for handling this.

The arguments for the function would simply be the same arguments used for `get_users()`.  The `wp_list_users()` function would basically be a function for outputting the HTML.  The function should also have the ability to link to the user's archive page and output a link to the user's RSS feed.

This would make it easy for theme developers and users to be able to create a users list without a lot of PHP work.

An alternate idea might be to push a few more arguments into the `wp_list_authors()` function, but I don't think that's the best route to go since its primary function is to list users that have written posts.",greenshady
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
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
18791,Add custom post type support for Author Template functions,,Template,3.2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-27T12:32:48Z,2011-09-27T19:58:40Z,"Functions defined in `wp-includes/author-template.php` assumes that post type == post. It will be good to enhance them so they will be able to work with specified post type.

At first sight following functions will need update:
{{{
get_the_author_link()
the_author_link()
get_the_author_posts()
the_author_posts()
the_author_posts_link()
get_author_posts_url()
wp_list_authors()
}}}

I suspect there will be other updates needed, to support new `post_type` argument added to author's url.",sirzooro
18753,Add data to stylesheets,,Template,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-22T21:15:23Z,2013-04-26T01:49:20Z,"In my humble opinion it would be awesome to provide theme developers an easy function to add extra data to registered stylesheets.

This way they could use the 'wp_head' action to cleanly make stylesheets conditional for IE, make them alternate or add RTL support.

Like {{{wp_add_inline_style()}}}, this function could really contribute to decluttering template files.",kobenland
20810,Add disable arg or attributes arg to wp_dropdown_categories() & wp_dropdown_pages(),,Template,,normal,normal,Awaiting Review,enhancement,new,,2012-06-01T19:27:07Z,2012-08-17T13:27:36Z,"It would be beneficial to be able to add disabled=""disabled"" attribute to the select tag or add multiple attributes to the select tag.

Related: #20156, #20167",wpsmith
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
4575,Add functions to return the last-modified timestamp of a category/tag,,Template,2.2.1,normal,normal,Future Release,enhancement,new,,2007-07-02T12:36:26Z,2009-08-07T18:46:45Z,"Hi, 

All categories Last-Modified dates are the same, and thats a one big rss file i guess.
Is there a chance to send individual Last-Modified dates to these feed ?

Thanks",delusions
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
9911,Add new filter to control content splitting into multiple pages,,Template,2.7.1,normal,normal,Future Release,enhancement,new,dev-feedback,2009-05-22T22:11:02Z,2011-09-24T09:35:41Z,"Currently the only way to create multi-page post is to use `<!--nextpage-->` tag. I suggest to add new filter which will allow plugins to control this functionality. In attached files you can find path which adds such filter, and example plugin (it converts each paragraph to separate page).",sirzooro
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
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
22145,Add warning when duplicate page Template Names are present,,Template,,normal,trivial,Awaiting Review,enhancement,new,,2012-10-09T22:17:30Z,2012-10-09T22:18:36Z,"Currently, there's no way without searching through every template file whether or not you have a duplicate Template Name (from, say, copying a page template file to another one). It would be nice to have a warning in the Page Template selection area that you have duplicate Template Names in certain files, and to direct you to repair that error before you proceed with setting Page Templates.",johncoswell
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
14851,Add ¨searchform-{name}.php¨ support,nacin,Template,3.1,normal,normal,Future Release,enhancement,reviewing,dev-feedback,2010-09-11T23:54:10Z,2013-03-23T21:10:25Z,"some [http://codex.wordpress.org/Include_Tags include tags] like '''get_header()''', '''get_footer()''' and '''get_sidebar()''' accept ''$name'' parametter to include header-{name}.php,footer-{name}.php and sidebar-{name}.php.

but the search form include tag - '''get_search_form()''' - does not accept ''$name'' parametter. currently it includes only searchform.php.

if this function will accept ''$name'' parametter, it would be easier to include other type search forms. this thecnic is very useful to sites that have several search form formats - for example one in the header, one in sidebar and one for footer. or an advense search form with categry select and post type select boxes to specific pages.
",ramiy
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
5172,Adding classes to wp_generate_tag_cloud,westi*,Template,,normal,normal,Future Release,enhancement,accepted,dev-feedback,2007-10-09T17:09:14Z,2011-04-30T08:50:18Z,"The attached patch changes 2 things on the [source:/trunk/wp-includes/category-template.php#L330 wp_generate_tag_cloud] function. 

1) The current code uses single quotes instead of double quotes, I believe the standard is to use double quotes. I've converted single quotes to double quotes.

2) I've rounded the tag size to a whole number (no decimal places).

3) I've added a class ""tag-cloud-item-X"" where X is the number in the list and a second class ""tag-cloud-size-X"" where X is the size of the tag. . This will allow theme designers to apply different styles to tags. For example changing the colour from cold to hot depending on order or size.",chmac
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
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
18676,"Allow headers, footers, and sidebars to be located inside of subfolders",,Template,3.3,normal,normal,Awaiting Review,enhancement,new,,2011-09-15T21:38:08Z,2013-02-07T21:50:09Z,"Now that `get_header()`, `get_sidebar()`, and `get_footer()` use `get_template_part()` (see #18331), we should add subfolder support once #15086 goes in.

This is especially useful for sidebars.",Viper007Bond
22918,Allow to include ajax url javascript argument in the template header,,Template,3.5,normal,normal,Awaiting Review,enhancement,new,close,2012-12-13T15:04:36Z,2012-12-19T02:52:58Z,"in the admin-header.php we have a hardcoded javascript code for showing the ajax url in the header. I think this should be included in a function and enqueue when needed, allowing to include it in the template header too using only: wp_enqueue_script('load-ajax-url');
 ",alexvorn2
5692,Archives detailed per category,,Template,2.5,normal,normal,Future Release,enhancement,new,,2008-01-20T00:10:22Z,2009-06-13T15:38:50Z,"I've written a small patch which makes possible to have the archives detailed per category, which means the wp_get_archives() accept more values for the show_post_count parameter:


0 as now (the post count is not shown)


1 as now (the '''total''' post count is shown)


2 the post count '''per category''' is shown


3 both 1 & 2 are shown


If you will approve this patch, I'll update the page 
http://codex.wordpress.org/Template_Tags/wp_get_archives",davidedelvento
15516,Candidates for new template functions based on code in Twenty Ten,,Template,3.1,normal,normal,Future Release,enhancement,new,,2010-11-20T06:30:13Z,2010-11-20T07:11:25Z,There are several pieces of code in Twenty Ten which are candidates for abstraction into template functions. I'll make a list shortly and put it up here to get feedback.,johnbillion
16024,Conditional Comments for JS,,Template,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-29T16:06:22Z,2013-06-12T17:41:20Z,"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
13767,Custom background uploader doesn't highlight max upload size,,Template,3.0,normal,normal,Future Release,enhancement,new,,2010-06-07T13:43:30Z,2010-10-28T09:34:17Z,"When uploading a file from the custom background handler, you cannot tell in advance if it'll succeed or not if the file is too large. WP should advertise the max size, and the available space where relevant (see also #13765).",Denis-de-Bernardy
19063,Custom post_types and get_template_part,,Template,,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2011-10-26T18:54:12Z,2011-12-05T02:14:20Z,"Can we modify the get_template_part process to allow custom post_type and custom taxonomy from plugins? I'm pretty sure I'm not the only person who uses custom post_types and would like to see an easier way to add a default template file without encroaching upon existing theme files, adding child themes, or requiring themes which are explicitly compatible with the particular post_type.

I've included a patch which is based on my current approach in using the archive_template, single_template, etc filter.",impleri
24164,Deprecate `get_permalink()`,,Template,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-23T05:35:17Z,2013-06-10T14:55:25Z,"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
7463,Display multiple tag titles on tag unions and intersections,,Template,2.8,normal,normal,Future Release,enhancement,new,,2008-08-04T23:27:23Z,2010-04-28T18:52:43Z,"Currently, tag unions and intersections only display the title of the first tag in the query, rather than all of them. This patch adds a new template function, multiple_tag_titles, which displays one or more tag titles for tag intersections and unions, adding a final 'and' or 'or' conjunction where appropriate.

Having written this patch, I'm starting to think it's the wrong approach: multiple taxonomy titles for taxonomy unions and intersections would be preferable.",ionfish
20226,Don't advertise pingback URL on resources that don't support pingbacks,,Template,3.3,normal,minor,Awaiting Review,enhancement,new,,2012-03-13T11:34:39Z,2012-06-19T04:25:20Z,"Currently, !WordPress indiscriminately adds an `X-Pingback` header to all responses. Similarly all the bundled themes add `link rel=""pingback""` to all pages.

The purpose of `X-Pingback` and `link rel=""pingback""` is to advertise that the current resource supports pingbacks and provide a pingback URL. They should only be inserted when the resource actually accepts pingbacks - i.e., only when `is_single()` is true, and maybe even only when pings are open on that post.",solarissmoke
10432,"Dynamic classes for current blog post item, current term item",,Template,3.0.1,low,minor,Future Release,enhancement,new,,2009-07-17T14:35:33Z,2010-09-03T08:41:50Z,"wp_list_pages() produces a class .current_page_item for the page you are currently viewing. This makes it possible to style the current page item different from the other page items in the list.

But there are several other places the same functionality would come in handy: There should be equivalent ways to style the current blog post item in the Recent Posts widget, the current category in wp_list_categories(), and the current tag in wp_tag_cloud('format=list').",dnusim
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
24375,"Enhancement for paginate_links(), Add rel=""next"" & rel=""prev""",,Template,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-20T22:30:44Z,2013-05-24T21:44:47Z,"
Hi all,

By cheking the code of paginate_links() to make new SEO enhancements for buddypress(check the buddypress trac
https://buddypress.trac.wordpress.org/ticket/4981).
 
There is no filter in paginate_links or param to include attributs to a href links.

I suggest to wordpress team to add a filter (or directly a rel=""next"" rel=""prev"" attribut to the href with next and prev class).


For more information about SEO and Pagination, please check this video :
​http://www.youtube.com/watch?d&v=njn8uXTWiGg


Regards,
Mounir",megainfo
23260,Enhancement for paginate_links(); to include in wordpress core,,Template,3.5,normal,normal,Awaiting Review,enhancement,new,,2013-01-22T04:24:12Z,2013-01-24T00:45:02Z,"Hello all,

I asked a question over at theme-reviewers [1] and one of the answers
(and a helpful one) was that any improvement/s that I find could be
push back into the core.

The first thing that I would like to see is a ""Page x of x"" and make
it a link to that people can click on it and enter the page munber
that they want to go to then they can go stright to that page.

Now I did find some code to do it but for some reasons I don't feel
that it the right way of doing it[2].

The next thing that I'm looking at is if we can have it so that we can
set our own style class or even replace tags altogether. Right now the
only way that I can do this (as far as I know) is by editing core code
or copy and paste code from care into my function.php file and rename
things.

I see that with the sidebar callback, I can set before and after tags
for title and other things and that to the theme author gives us alot
of control over layout and how we can style things.

The reasons why the above improvements should be included in core:

A: No need to create custom functions [[BR]]
B: Don't need to install extra plugin just to get the ""Page x of x""
function or to create a hacked paginate_links function. [[BR]]
C: It gives theme developers more control over style without alot of
extra coding and if they don't want something they can disable it
(example ""Page x of x"") [[BR]]
D: It means that if wordpress devs change the paginate_links function
theme authors don't need to update their custom functions [see A]

Regards,
Daniel Fenn

[1] http://lists.wordpress.org/pipermail/theme-reviewers/2013-January/011488.html [[BR]]
[2] http://design.sparklette.net/teaches/how-to-add-wordpress-pagination-without-a-plugin/",Danielx64
21791,Enhancement: locate_template() support for multiple file types (not just .php),,Template,,normal,normal,Awaiting Review,enhancement,new,,2012-09-04T14:59:29Z,2012-09-15T08:10:10Z,"I have modified locate_template() to allow location of file types other than .php. The core currently only searches for .php extensions for template file names (search.php, 404.php, etc). I have a HAML parser, and this mod allows the core to locate .haml files (search.haml, 404.haml). Then I can use the 'template_include' filter to handle that file type. 

Do you think this is the best way to accomplish it? I also made the function a little more DRY.

{{{
function locate_template($template_names, $load = false, $require_once = true ) {
  $located = '';
  $template_paths = array(
   STYLESHEETPATH,
   TEMPLATEPATH
  );
  $template_file_types = apply_filters('template_file_types', array('php'));
  foreach ( (array) $template_names as $template_name ) {
    if ( !$template_name )
      continue;
    foreach($template_file_types as $template_file_type)
    {
      $template_name_try = str_replace('.php', '.'.$template_file_type, $template_name);
      foreach($template_paths as $template_path)
      {
        $template_name_try = $template_path . '/' . $template_name_try;
        if ( file_exists($template_name_try)) {
          $located = $template_name_try;
          break 3;
        }
      }
    }
  }

  if ( $load && '' != $located )
    load_template( $located, $require_once );

  return $located;
}
}}}
 you think this modification would be a good core enhancement?",benallfree
21712,Enhancements to wp-signup.php and wp-activate.php,,Template,3.4.1,normal,minor,Awaiting Review,enhancement,new,,2012-08-28T12:00:38Z,2012-08-28T12:00:38Z,"While #17948 going on, I suggest calling get_header()/get_footer() along with 'singnup'/'activate' parameter on wp-signup.php and wp-activate.php.
Something like:
{{{
get_header( 'signup' );
get_footer( 'activate' );
}}}

Also adding before_activate_form and after_activate_form action hooks into wp-activate.php just like wp-signup.php",geminorum
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
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
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
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
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
14113,Function that could improve the current edit_post_link(),,Template,3.0,normal,normal,Future Release,enhancement,new,,2010-06-27T15:20:42Z,2010-10-28T05:37:38Z,"Basicly this function is the same than [http://core.trac.wordpress.org/browser/trunk/wp-includes/link-template.php#L820 edit_post_link()] but some little differences which can make it more useful for developers. So far it has two advantages:

'''1)''' The edit link can be easily returned.

'''2)''' It's possible to choose a class for link tags.

{{{
// Returned
function wp_get_edit_link($args = '') {
	$defaults = array(
		'link'   => null,
		'before' => '',
		'after'  => '',
		'id'     => 0,
		'class'  => 'post-edit-link'
	);

	$r = wp_parse_args($args, $predet);
	extract($r);

	if ( !$post = &get_post($id) )
		return;

	if ( !$url = get_edit_post_link($post->ID) )
		return;

	if (null === $link)
		$link = __('Edit This');

	$post_type_obj = get_post_type_object($post->post_type);
	$link = '<a class=""'. $class .'"" href=""' . $url . '"" title=""' . esc_attr( $post_type_obj->labels->edit_item ) . '"">' . $link . '</a>';
	return $before . apply_filters('get_edit_link' , $link , $post->ID) . $after;
}

// Echoed
function wp_edit_link($args = '') {
	echo wp_get_edit_link($args);
}
}}}

'''Example using the function:'''

Returning:

{{{
<?php 
$var = get_wp_edit_link('before=<span class=""my-edit-class"">&after=</span>&class=my-link-class&link=Edit me!');
echo $var;
?>
}}}

Echoing:

{{{
<?php wp_edit_link('before=<span class=""my-edit-class"">&after=</span>&class=my-link-class&link=Edit me!'); ?>
}}}

Results on:

{{{
<span class=""my-edit-class""><a class=""my-link-class"" href=""http://url.to/post.html"">Edit me!</a></span>
}}}",metacortex
18302,Improve child theme file inheritance by introducing `theme_url()` to locate a file URI,westi,Template,,normal,normal,Future Release,enhancement,reviewing,needs-unit-tests,2011-07-31T01:19:02Z,2013-04-22T19:02:43Z,"Child theme file inheritance isn't quite as slick as it could be. A child theme should be able to selectively override any of its parent theme's files (ie. CSS & JS), not just template files.

For example, there's no easy way for a parent theme to enqueue a JavaScript file that can be easily overridden by a child theme. This is because there's no URI version of `locate_template()` for themes to use.

Example: A parent theme includes a JavaScript file like so:

{{{
wp_enqueue_script( 'foo', get_template_directory_uri() . '/foo.js' );
}}}

A child theme couldn't simply include a `foo.js` file to override its parent's as the file is always loaded from the template directory, not the stylesheet directory. If the parent theme used `get_stylesheet_directory_uri()` instead, then the child theme could override it '''but''' it would '''have''' to override it, otherwise we'd end up with a file not found.

The answer is to introduce a function that does the same as `locate_template()` but returns a URI instead of a path.

Example usage:

{{{
wp_enqueue_script( 'foo', locate_theme_file( 'foo.js' ) );
}}}

This would load `foo.js` from the child theme if it existed, and the parent theme if not.

The function could also be used for CSS files:

{{{
wp_enqueue_style( 'bar', locate_theme_file( 'bar.css' ) );
}}}

And for images too:

{{{
<img src=""<?php echo locate_theme_file( 'icon.png' ); ?>"" />
}}}

Stand by for a patch.",johnbillion
24445,Improve is_multi_author() performance,,Template,,normal,normal,3.6,enhancement,new,,2013-05-28T20:49:24Z,2013-06-04T06:17:02Z,"I have 100k posts.

If I delete the function twentythirteen_body_class() - the home page loads in 1 second,
with this function the page loads in 4.4 seconds!
 
I use this for page load time:


{{{
add_action( 'wp_footer',             'footer_timer_stop', 1000               );

// Footer timer to show page load speed
function footer_timer_stop() {
	echo '<!-- stats: ' . get_num_queries() . ' queries. ' . timer_stop( 0 ) . ' seconds. -->';
}
}}}
 


This function is not so important and I think it should be removed.",alexvorn2
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
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
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
13691,Make get_template_part() accept multiple template names,,Template,,normal,normal,Future Release,enhancement,new,,2010-06-02T03:19:34Z,2010-10-10T21:59:14Z,"This enhancement allows get_template_part() allows to pass several template names, to work in the same way as: locate_template()

so, you could call,

get_template_part( 'loop', array('category', 'taxonomy', 'archive') );


$names are passed by order of priority.",wjm
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
19556,Make wp_term_checklist() available as a template tag,,Template,,normal,normal,Awaiting Review,enhancement,new,,2011-12-14T22:58:07Z,2011-12-14T23:13:05Z,"Currently, wp_term_checklist() is defined in wp-admin/includes/template.php, which means it's not available as a template tag for themes.

Note that {{{wp_dropdown_categories()}}} is defined in {{{wp-includes/category-template.php}}}. We should move wp_term_checklist() there too.",scribu
21899,Missing class identifier for password protected posts,,Template,3.4.2,normal,normal,Awaiting Review,enhancement,new,,2012-09-15T17:00:40Z,2012-09-15T17:00:40Z,"Password protected posts are insufficiently identified for good CSS styling.

Presently, the class name ""post-password-required"" is added to protected posts if a valid password cannot be found in the cookie. On the other hand, no special class name is added to protected posts if a valid password *can* be found, even though this is just a temporary condition until the cookie expires.

I suggest that both cases are interesting from a CSS styling perspective. Note that the title of protected posts is prefixed by the string ""Protected:"" in both situations.

This behaviour occurs because get_post_class() just checks post_password_required() [which validates the cookie] but get_the_title() just checks if the $post->post_password field is not empty.

I suggest an additional class name should be added by get_post_class() for the case when the post->post_password field is not empty. Current usage of class names here is not very consistent with the admin tool, so options might be ""visibility-protected"", ""status-protected"" [similar to ""status-private"" which is added for those with visibility ""Private"" and reflecting the underlying implementation] or perhaps just simply ""protected"".

Protected posts would thus be identified as follows:

  Protected, with correct password: class=""protected""[[BR]]
  Protected, missing or invalid password: class=""protected post-password-required""

See also #13860 and #18729. I can do a patch if needed but this is literally just a couple of lines of code (three if you include a comment).",mdgl
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
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
4004,New filter for page title attribute in wp_list_pages output,ryan,Template,2.1.3,normal,normal,Future Release,enhancement,new,,2007-03-20T22:45:17Z,2009-06-13T15:40:00Z,"While developing a new theme I realised that the default title attribute for wp_list_pages was to just to reuse the title of the page with no option to change it. Not exactly useful...

I therefore propose a new filter on the title attribute to allow a theme/plugin developer the option of changing the text to whatever they like.

The new filter takes the title attribute and the $page variable as well, so that any post/page related information can also be used... for example the post meta.",Dickie
14017,"New template ""tag"": get_custom_field()",filosofo,Template,3.0,normal,normal,Future Release,enhancement,new,dev-feedback,2010-06-21T04:13:03Z,2011-12-21T19:36:23Z,"It would be helpful to have a way to retrieve a custom field value that is somewhat agnostic of current context.

'''Current way to do this'''

In the header (i.e., before the Loop), one has to access the currently-queried object to get a custom value, with something like this:

`$value = get_post_meta($GLOBALS['wp_query']->get_queried_object_id(), 'field', true);`

In the Loop:
`$value = get_post_meta(get_the_ID(), 'field', true);`

And, lots of tutorials out there tell people to do things like the following, with varying degrees of success (depending on variable scope):

`$value = get_post_meta($id, 'field', true);`

or 

`$value = get_post_meta($post->ID, 'field', true);`

'''My proposed function (or ""template tag"")'''

mixed '''get_custom_field''' ( string ''$fieldname'' [, int ''$post_id'' ] )

`$value = get_custom_field('field');`

It picks the current object like so:

{{{
Passed post object ID?
    /       \
   yes      no 
    |        |
   use it    |
             |
          within Loop?
            /       \
          yes        no
           |          |
        use current   |
         Loop ID      |
                      |
                    currently queried
                    object is singular?
                    /           \
                   yes           no
                    |             | 
                use its ID      ID = 0
}}}",filosofo
14440,Override filter for adjacent_post_link(),,Template,3.0,normal,normal,Future Release,enhancement,new,reporter-feedback,2010-07-28T04:27:05Z,2010-11-18T10:02:26Z,"I'm working on a plugin that needs to integrate with as many themes as possible. It's basically a plugin for creating portfolios of images. It uses a custom post_type ""piece"" and allows for each piece to have multiple images attached to it. I've created a widget that lists thumbnails for all attached images that link to the attachment page for each one. On the attachment page, I am querying for the parent piece to display the title, content, excerpt, edit link, etc. 

I'm also trying to replace the previous and next links with the values that would be generated for the parent. I've gotten pretty far along when I noticed that adjacent_post_link() is set to display only a previous link when an attachment has been queried. I was wondering if a filter could put put in place somewhere before this conditional is defined. Please see attached file.

Thanks for reading!",mfields
12033,Parent  template tags,,Template,3.0,normal,normal,Future Release,enhancement,new,,2010-01-26T01:25:49Z,2010-02-18T10:56:04Z,"Can you add to core template tags as:

Title and link of parent page

parent-page-title
parent-page-permalink

Maybe will be good to add also an attributes of titles ""the_title()""to display title by ID
",Angeloverona
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
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-05-28T07:55:23Z,"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
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
9666,Pass object id in the various formatting filters,,Template,2.8,normal,normal,Future Release,enhancement,new,,2009-04-28T10:31:44Z,2012-10-30T20:50:38Z,"This is a consolidated ticket, in reference to #9319 and #5746.

Both were requests to pass either of $post or $post->ID as an argument to the_title (both have patches for that).

The same idea could be applied to multitudes of other formatting hooks. They're not always called in the loop, so determining the ID of the object (post, link, category, tag, etc.) isn't always easy in the event that it is useful.

Suggested enhancement:

each filter such as the_title, the_content, etc., but also the_permalink, the_category_link, etc., possibly also the_category, etc., as well... basically any hook that is formatting related and that affects an individual object rather than a collection, should have the object's ID as an argument for easy reference.",Denis-de-Bernardy
4414,Patch to Make Calendars Optionally Category-Specific,,Template,2.2,low,normal,Future Release,enhancement,assigned,,2007-06-06T04:40:54Z,2012-01-11T10:32:14Z,"First submission to wordpress...the nice people on wp-hackers directed me here. Here's my post to the list, explaining what this is:

I'm new to WordPress and building a custom template for my new personal site. My design calls for a calendar that stays within a given category, and I couldn't find a way to do that; using ""get_calendar()"" on my category archive page returned a calendar with all posts in it, therefore providing navigation to pages outside the selected category (which didn't work out).

I have patches to the get_category, get_month_link, and get_day_link functions that let you have in-category calendars (see attached diffs for wp-includes/general-template.php and wp-includes/link-template.php). You can use the modified calendar on the archive page like so:

$cat = array_shift( get_the_category() );
get_calendar( true, $cat->cat_ID );

I'm not sure if that's the canonical way to find the archive page's category id (I kinda doubt it), but it works.

I don't have any other contributors to my site planned, but it wouldn't be hard to make the calendar glue itself to the author in the same way...but is there a standard WordPressian way to accomplish this without modifications like these?

Thanks for any feedback and thanks for WordPress!",jacobrose
23749,Post Format Archive Conditional Tag,,Template,,normal,normal,Awaiting Review,enhancement,new,,2013-03-12T20:27:04Z,2013-03-13T01:47:41Z,"As far as I know there is no conditional tag for detecting when a post format archive is shown. I bumped into this problem while creating a theme for quick-blogging and realized that I couldn't create a menu (easily) and style the 'current' post format menu item differently. 

I will try and submit a diff if I can although I've never done it before so it may take me a while :) 

 ",danielpataki
16268,Requirement for has_header_image() function?,,Template,,normal,normal,Future Release,enhancement,new,,2011-01-17T12:05:24Z,2011-01-18T11:10:19Z,"I know is pretty easy to do, but would it be a good idea to provide a has_header_image() function for use in themes? Something along the lines of:

{{{
function has_header_image() {
   $header_image = get_header_image();
   return !empty( $header_image );
}
}}}

As the header_image() function just outputs the URL it would be handy to have a conditional function you could use to check when there was a header image to output.

I'm currently working on a plugin that gives you more granular control over using different header images on different pages using the 'theme_mod_header_image' filter. There may be instances when you do not want to show a header at all on some pages. In the current TwentyTen theme for example, no checking is done before the header_image() function is called so in this scenario the header image just appears as a broken image - ideally it should not output the image at all.

Either that or should there be a function which outputs the whole image tag so that if the header_image() function returns false/empty it does not output the tag at all?

What are people's thoughts on this?",husobj
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
24399,Search page templates,,Template,3.5,normal,normal,Awaiting Review,enhancement,new,,2013-05-23T19:19:56Z,2013-05-25T00:37:03Z,"I would like to see search.php work the same way as archive.php do. I have multiple custom post types with totally different layouts and i really miss this features.

Be able to to search-cpt.php would be great

Thanks",timersys
18859,Single theme template for custom post by slug,,Template,3.3,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-10-04T19:27:23Z,2013-02-05T21:00:06Z,"I was working on adding a custom template for an individual post in my custom post type and discovered that you could only make a single-{post-type}.php. This patch adds the ability to make single-{post-type}-{slug}.php

It's pretty straight forward, and only adds 1 line of code to wp-includes/theme.php",ericjuden
23559,Sticky single post page doesn't have .sticky class,,Template,2.7,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-02-20T11:34:44Z,2013-02-20T13:52:10Z,"As explained in summary, it's impossible to style a single page for a sticky post without modifying content.php, why this? it's a behavior wanted.

wp-includes\post-template.php, line 344:

{{{
	// sticky for Sticky Posts
	if ( is_sticky($post->ID) && '''is_home()''' && !is_paged() )
		$classes[] = 'sticky';
}}}

Thanks :)",sgr33n
3567,Synchronize options for functions that display lists,,Template,,normal,normal,Future Release,enhancement,new,,2007-01-12T04:30:50Z,2009-06-13T02:52:05Z,"It would be nice if wp_list_cats, get_archives, wp_list_pages, etc, all had ""format"" and ""before"" and ""after"" options :)",Randy
23049,Template hirarchy for 404,,Template,,normal,normal,Awaiting Review,enhancement,new,,2012-12-22T17:19:05Z,2012-12-22T19:43:02Z,"load 404-{post-type}.php when url structure matches post permalink structure but there is no post at that address.

load 404-{taxonomy}.php when url structure matches taxonomy permalink structure but doesn't match any specific taxonomy tag URL.

And so on....

The idea is to have different 404 pages based on the context to which the URL refers. For example if a site has a blog and a shop it might be better to show a blog specific 404 page when the URL might be interpreted as a post and a shop specific 404 page when the URL might be interpreted as a product.",mark-k
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
15957,add two new actions to track template loading,koopersmith,Template,,normal,normal,Future Release,enhancement,reviewing,,2010-12-23T02:23:07Z,2012-02-14T14:29:32Z,"I would like to add two new actions ""pre_load_template"" and ""post_load_template"" inside the load_template() method.  The purpose of this is primarily for debugging and development purposes.  For example, I'd like to use these actions to add debug comments in a theme's output along the lines of:

{{{
<!-- begin ../themes/twentyten/loop.php -->
...
<!-- end ../themes/twentyten/loop.php -->
}}}

This makes it much easier to identify which theme file is responsible for which part of the final page, particularly in the case where some files are being pulled from a parent theme and some are from the child theme.",willnorris
11890,allow get_the_content to accept post ID,williamsba1,Template,2.9.1,normal,normal,Future Release,enhancement,new,close,2010-01-13T22:58:06Z,2010-01-14T00:48:23Z,"The function get_the_content currently doesn't accept a post ID as a parameter.  I'm suggesting adding this as a fourth parameter allowing this function to work like get_the_title does.

I'll supply a patch if this sounds like a good idea",williamsba1
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
10177,get_ version of comments_number(),,Template,2.8,normal,normal,Future Release,enhancement,new,dev-feedback,2009-06-15T16:33:42Z,2010-12-01T17:10:05Z,"Currently: {{{comments_number()}}} accepts several arguments for the comment number labels and outputs them. {{{get_comments_number()}}}, however, returns only the number of comments.

Problem: there isn't a function to mimic the {{{comments_number()}}} functionality, but to return instead of echo.

The patch introduces {{{get_comments_number_text()}}}, which inherits the functionality of {{{comments_number()}}}, but returns. {{{comments_number()}}} just calls {{{get_comments_number_text()}}}.",nbachiyski
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
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
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
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
18480,get_sidebar should be able to accept an array of names as parameter.,,Template,3.2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-08-18T22:29:12Z,2011-08-18T22:47:59Z,"get_sidebar uses load_template to do the work of template loading.
load_template will accept an array of template names for loading.
load_template will then load the first existing template from that array.

Seems like get_sidebar should also accept an array of names that can be searched in declining order.

This would allow a theme to specify a first choice, second choice, etc. for the sidebar.",gxxaxx
9227,"in get_the_category_list(), filter categories before constructing list",,Template,2.8,normal,normal,Future Release,enhancement,new,has-patch,2009-02-24T23:25:38Z,2010-03-20T19:09:35Z,"The template '''function get_the_category_list''' returns a concatenated string of category links for an individual post.  The only filtering available is on the full concatenated sting, via 'the_category' hook.

Since filtering the category array directly is greatly preferable for most uses, please consider adding the attached patch, or something like it.

Whatever hook is added should somehow indicate the data context - in this case for display.  In filtering post categories, there is the potential for non-display situations in which the actual post categories must be maintained even though the display filtering hides some from the current user.  What we '''should not do''' is apply a single filter inside get_the_category or wp_get_object_terms, since themes and plugins may already call those functions for multiple data contexts.

I had considered calling the new hook ''''get_the_category_for_list''''.  Instead I'm suggesting a more generic ''''get_the_category'''' hook, '''passing context''' as the second argument.  That would leave the API consistent for possible future use in filtering other contexts.",KevinB
9232,introduce include_tree parameter to wp_list_pages,,Template,2.7.1,normal,normal,Future Release,enhancement,new,,2009-02-25T16:50:22Z,2010-07-23T15:53:16Z,"to match the excellent exclude_tree parameter, it would be invaluable to have the ability to list one page and have all it's children display as well. At present, there is no way to do this.

We should add a include_tree parameter to the wp_list_pages function. 

This addition would be helpful while creating drop down menus and side bar menus for sub sections of large websites. ",dwenaus
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
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
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
10203,posts_nav_link ignoring blank function parameters,,Template,2.8,normal,normal,Future Release,enhancement,new,,2009-06-18T04:53:50Z,2011-01-05T20:13:08Z,"posts_nav_link shows both next and previous links including link seperator even though the respective function parameters are blank.

{{{
<div id=""page-nav-prev""><?php posts_nav_link('', '&#171; Previous Page', '') ?></div>
<div id=""page-nav-next""><?php posts_nav_link('', '', 'Next Page &#187;') ?></div>
}}}

",milanmk
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
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
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
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
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
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
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
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
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
21995,(get/the)_archive_title and (get/the)_archive_description functions,,Template,,normal,normal,Future Release,feature request,new,dev-feedback,2012-09-25T23:44:53Z,2013-05-24T19:20:30Z,"Current theme archive got problem with complexity - archive template is used for taxonomy, category, tag, author, date and custom post types archives and every type of archive got special function for showing title and special function for showing description.

So now theme developers fight with two evils - one very big archive.php file with a lot of conditions, or tons of separate simple .php files for each archive type. See #21951 for example.

Other problem of current solution is that templates are not future-proof - when new archive types are added, archive.php must be rewritten.

My idea is to create 2 simple functions (+ 2 echoing)
get_archive_title + the_archive_title
get_archive_description + the_archive_description

in those function would be all the complexity, which is now in the template, plus the filter, so something like


{{{
function get_archive_title() {
if ( is_day() ) {
	$title = sprintf( __( 'Daily Archives: %s' ), '<span>' . get_the_date() . '</span>' );
} elseif ( is_month() ) {
	$title = sprintf( __( 'Monthly Archives: %s' ), '<span>' . get_the_date( _x( 'F Y', 'monthly archives date format' ) ) . '</span>' );
} elseif ( is_year() ) {
	$title = sprintf( __( 'Yearly Archives: %s' ), '<span>' . get_the_date( _x( 'Y', 'yearly archives date format' ) ) . '</span>' );
} elseif ( is_tag() ) {
	$title = sprintf( __( 'Tag Archives: %s' ), '<span>' . single_tag_title( '', false ) . '</span>' );
} elseif ( is_category() ) {
	$title = sprintf( __( 'Category Archives: %s' ), '<span>' . single_cat_title( '', false ) . '</span>' );
} elseif ( is_post_type_archive() ) {
	$title =  sprintf( __( 'Archives: %s' ), '<span>' . post_type_archive_title( '', false ) . '</span>' );
} else {
	$title = _e( 'Blog Archives' );
}
return ( add_filter ( 'get_archive_title', $title ) );
}
}}}

(imo it could be a bit more complex, so that we could add a param to this function for simple rewritting the title for some particular type without filtering whole output)

Finally the archive template would be as simple as


{{{
<header class=""archive-header"">
<h1 class=""archive-title""><?php the_archive_title() ?></h1>

<div class=""archive-meta""><?php the_archive_description ?></div>

</header><!-- .archive-header -->
}}}

this way we will get all we need
1. one archive file
2. very short file without any conditions
3. easy to filter the output
4. future-proof as when adding new wp archive type, the function would be updated

Of course, for backwards compatibility of current themes, this function can be copied to the theme functions.php as well with !if (function_exist(
'get_archive_title'))",thomask
18803,Core hooks for fragment caching,sivel,Template,3.3,normal,normal,Future Release,feature request,new,dev-feedback,2011-09-28T15:47:29Z,2012-07-24T00:38:42Z,"I have been running fragment caching for some time, but have seen a few negatives with the way it needs to be implemented currently.  With fragment caching potentially becoming even more popular after talks given at WordCamps, core hooks to assist in this are going to become more necessary, for several reasons, such as creating some standardization about how it is integrated into the theme.

Since there are no hooks in something like get_sidebar() -> get_template_part() -> locate_template() -> load_template() you have to create your own function calls to use in a theme to render the sidebar.  

In my specific case I was using a child theme, and ended up having to copy over a lot of the parent theme files to make the modification.

My goal is to provide some hooks that would allow use of the standard theme functions such as get_sidebar() but give a plugin or similar access to interrupt the process, generate the cache and output the cache.

My first pass is attached as well as a sample mu-plugin that I have wrote to show how you can use the new hooks to perform fragment caching.",sivel
11095,Format wp_list_pages and wp_page_menu without <li> tags,,Template,,normal,normal,Future Release,feature request,new,,2009-11-07T18:00:44Z,2010-03-25T11:49:07Z,"Would that be possible to have the functions wp_list_pages and wp_page_menu with an option to display pages in a ""flat"" format like the functions wp_list_bookmarks or wp_tag_cloud or wp_get_archives?",zialingua
23142,"Make it possible to ""stem"" an arbitrary prefix with the Template Hierarchy's ""stemming"" logic.",,Template,3.5,normal,normal,Awaiting Review,feature request,new,,2013-01-08T13:04:03Z,2013-01-09T00:23:21Z,"Please expose the template hierarchy ""stemming"" logic for theme developers. By ""stemming"" I mean the process by which the list of candidate template filenames  (e.g. page-meaningoflife.php, page-42.php, page.php) is generated.

I '''know''' that the way template-loader.php is currently written, such list is never explicitly assembled. I consider this a deficiency. The ""stemming"" logic should be available as an API:


{{{
function wp_template_candidates($prefix="""") {

    $filenames = array();

    // Extensively refactored code from template-loader.php and template.php

    return $filenames;
}
}}}

The new template-loader.php could then probably be just reduced almost to this:

{{{
locate_template(wp_template_candidates(),true);
}}}

But the real motivation is to be able to use a single layout template that includes different versions of ""parts"" like menu or sidebars depending on the query type and queried object, exactly as the template hierarchy does. This can of course be done with ad-hoc checks:

{{{

if (is_home()) { locate_template(""home/sidebar.php"", true); }

}}}

but making this consistent with how template hierarchy works would involve basically reimplementing much of it. The proposed API would make it possible to override parts of a template for specific query types or queried objects just by creating an appropriately located and named file, and without modifying the main layout file:

{{{

/*
 *   File: MyTheme/includes/body-layout.php
 */

<div id=""main-menu"">
<?php locate_template(wp_template_candidates(""main-menu/""),true); ?>
</div>

<?php

//On a ""video"" category page, this will pick MyTheme/social_slider/category-video.php

@include_once locate_template(wp_template_candidates(""social_slider/""));

?>

}}}",rulatir
13493,Make the_date() and is_new_day work properly,Otto,Template,,normal,normal,Future Release,feature request,new,reporter-feedback,2010-05-22T09:14:46Z,2011-10-10T14:16:57Z,"Make the_date() always echo the date, in preference the the historic behavior of only echo'ing once per ""day""


----


Otto's recommendations.

a) fix is_new_day() to actually work.
b) change the_date and such to always display the date.

With that patch, somebody could do this for the ""only on new days"" logic:

if (is_new_day()) the_date();

Anybody who actually needed that new day functionality (rare) could then fix their theme up quite simply with only a minor adjustment.

",banago
9719,Please : a filter for $category object in get_the_category_list(),,Template,2.8,normal,minor,Future Release,feature request,reopened,,2009-05-04T09:09:10Z,2009-06-13T02:57:15Z,"To offer for one post more flexibility in how to display the names of categories in the_category() or in get_the_category_list() -file category-template line 166 - , is it possible to add a filter as the filter existing in wp_list_categories() .  Useful to replace cat name by instance by image ''(iphone compatible theme)'' or to add translation in bilingual or multilingual theme ''(by instance with xili-language plugin)'' without re-creating specific function.

As in classes.php (line 1328), I suggest this modif with a filter named post_list_cats for the start of two loops present in get_the_category_list() (line 187 et 209)


{{{
foreach ( $categories as $category ) {
$cat_name = attr( $category->name);
$cat_name = apply_filters( 'post_list_cats', $cat_name, $category );
}}}


and inside the two loops, $category->cat_name replaced by $cat_name


with this filter it will be more coherent to treate cat list in one post or in sidebar for all posts

Many thanks

",michelwppi
14375,Post pagination should have a show all option,,Template,3.0,normal,normal,Future Release,feature request,new,,2010-07-21T07:03:29Z,2010-10-28T10:08:00Z,When people use the nextpage html comment tag to paginate posts we should also have a show all link displayed to make it easier for people to read the whole content without pagination.,westi
23537,"Require attributes, not classes",,Template,,normal,normal,Awaiting Review,feature request,reopened,,2013-02-19T18:20:03Z,2013-02-28T19:40:43Z,"Currently themes[http://codex.wordpress.org/Theme_Review#Template_Tags_and_Hooks must] use [http://codex.wordpress.org/Function_Reference/language_attributes language_attributes], [http://codex.wordpress.org/Function_Reference/body_class body_class], [http://codex.wordpress.org/Function_Reference/post_class post_class] [http://codex.wordpress.org/Function_Reference/comment_class comment_class]. Rather then requiring direct usage of those, it'd be far more useful to have (and instead require) functions for the entire attributes output, with corresponding filter hooks. The current `_class` functions/hooks would still run, albeit internally via these new functions. This approach is scalable to future attribute needs.

{{{
<html <?php html_attrs(); ?>>
<body <?php body_attrs(); ?>>
<article <?php post_attrs(); ?>>
<li <?php comment_attrs(); ?>>
}}}

There also should be `get_` versions. Using the `get_` version in the theme (or manually applying the hook) should suffice to meet requirements. The hooks are the underlying reason for requiring these functions. Hooks would run in the `get_` versions. #23236 can ensure safe output and DRY code.",ryanve
12370,We need a smarter version of wp_title() and a few other template tags,hallsofmontezuma*,Template,3.0,normal,major,Future Release,feature request,accepted,,2010-02-25T08:47:06Z,2011-09-06T16:22:50Z,"Look at Twenty Ten's `header.php` and the code that is needed to output the `<title>`. That's a bit silly.

I suggest we should have a helper function of some type to replace all of that. A smarter and more sophisticated version of `wp_title()`.",Viper007Bond
9818,add a wp_notification functionality to output notices and errors on the front end,,Template,2.8,normal,normal,Future Release,feature request,assigned,,2009-05-14T09:28:25Z,2010-07-06T22:43:20Z,"On occasion, a plugin needs to return some kind of feedback. It would be nice if a standard hook existed for this.

It could go something like this:

add_filter(wp_notification, foobar)

foobar() appends to an array of notification messages that get displayed to the user on the front end.

then, on page load:

 - in wp_head if notifications is not empty, we add a style, wp_notification, that makes elements of this class invisible, and we load jQuery

 - if do_action(wp_notification) is explicitly called on the page, we display the messages in there, without the class, and disable the notification on the wp_footer hook

 - an action gets fired on wp_footer if do_action(wp_notification) is not called, and we use ajax to place the needed messages in a absolutely positioned div element, with a close button.

we could also add some kind of do_action(wp_commentform_notification), nearby the comments form, to output comment-related errors in their ""correct"" location as well.",Denis-de-Bernardy
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
19902,blog_url() and get_blog_url() template tags,,Template,3.3.1,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-01-26T21:44:13Z,2012-02-23T22:00:03Z,"With usage of WordPress as a CMS increasing, the blog is not always the focal point. It would be great if there were template tags available to get the blog url, basically a wrapper for getting the options if it's set to a WordPress page, and defaulting to home_url( '/' ) if not.

Patched against r19759 (trunk)",johnjamesjacoby
13100,"category template matches ancestor category, single post matches category filename",,Template,,normal,normal,Future Release,feature request,new,,2010-04-24T11:52:56Z,2010-04-24T12:19:11Z,"Dear wordpress developers,

There's two features which I think would be very useful in the wordpress template selection process. The first relates to categories - currently a category template file will be selected when the category of the selected post matches the filename of the template (category-catfoo.php). Because categories are hierarchichal (can be sub-categories) I suggest that if it can't find a template for the current category it should also also try to match ancestor template files.

The other feature which I suggest would be useful, is single post template matching using category names. For example, single-catfoo.php. This could also match on ancestor categories if none is found immediately (single-catrootfoo.php).

Best wishes,
Jim Redfern",jredfern
20730,make function wp_list_categories rewritable for templates (File: category-template.php),,Template,,normal,normal,Awaiting Review,feature request,new,,2012-05-22T17:34:02Z,2012-05-22T17:36:35Z,"Inserting

{{{
$list_categories_template = locate_template(array('listcategories.php'));
        if ( '' != $list_categories_template ) {
                require($list_categories_template);
                return;
        }
}}}

under

{{{
function wp_list_categories( $args = '' ) {
}}}
",wpuser12584
21766,modify body_class function to allow non-class items,,Template,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-09-01T18:11:43Z,2013-02-19T21:26:12Z,"Currently, the `body_class` only allows for filtering with additional classes. For users that want to add other items, they have to manually edit the theme files. The best example of this is schema.org body elements (itemtype and itemprop).

The diff file shows two things:

1. the new `body_items` function that grabs any items added via filter, if they exist.

2. the modified `body_class` function, which appends the output with the items if they exist.

The patch, as I've written it, allows for this additional filter to be included without interfering with how themes / plugins interact with the current `body_class` filter, and doesn't require theme authors to include an additional tag in their themes.

Below is an example function that could be placed in a theme or plugin to add other items to the body tag element.


{{{
function schema_bodyitems($item) {

	if (is_page() ) :
		$item[] = 'item-foo=""item-bar""';
	endif;

	$item[] = 'itemtype=""http://schema.org/Blog""';
	$item[] = 'itemscope=""""';

return $item;
}

add_filter('body_items','schema_bodyitems');
}}}
",norcross
19044,$depth in start_el  Walker_Category has null value,,Taxonomy,,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2011-10-25T10:17:55Z,2011-10-28T08:46:10Z,"{{{
File wp-includes/category-template.php
Line: 829
}}}

Issue: 
{{{
The variable $depth is not returning value.
start_el() - $depth not showing. (Always return zero)
start_lvl() - $depth works fine. 
end_lvl() - $depth works fine.
}}}


{{{

/**
	 * @see Walker::start_el()
	 * @since 2.1.0
	 *
	 * @param string $output Passed by reference. Used to append additional content.
	 * @param object $category Category data object.
	 * @param int $depth Depth of category in reference to parents.
	 * @param array $args
	 */
	function start_el(&$output, $category, $depth, $args) {
.....
}}}
",nukecpower
24385,Adding and Deleting Custom Taxonomies not Working,,Taxonomy,3.5.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2013-05-22T16:52:35Z,2013-05-25T00:45:21Z,"I created a new post type and a new taxonomy as follows


{{{
/* Code to add new custom post type */
function aaa_register_post_type() {

	$post_type_labels = array(
		'name'					=> __('News'),
		'singular_name'			=> __('News Item'),
		'all_items'				=> __('All News'),
		'add_new'				=> __('Add New'),
		'add_new_item'			=> __('Add New News Item'),
		'edit_item'				=> __('Edit News Item'),
		'new_item'				=> __('New News Item'),
		'view_item'				=> __('View News Item'),
		'search_items'			=> __('Search News'),
		'not_found'				=> __('Nothing found'),
		'not_found_in_trash'	=> __('Nothing found in Trash'),
		'parent_item_colon'		=> ''
	);

	$post_type_args = array(
		'labels'				=> $post_type_labels,
		'description'			=> 'This post type is used for news posts from the RSS feeds.',
		'public'				=> true,
		'menu_position'			=> 5,
		'capability_type'		=> 'post',
		'hierarchical'			=> true,
		'supports'				=> array('title','editor', 'author', 'comments'),
		'rewrite'				=> array('slug')
	);

	register_post_type ('news', $post_type_args);
}

add_action('init', 'aaa_register_post_type', 0);





/* Register custom news category taxonomy */
function aaa_register_taxonomy_site () {

	$taxonomy_lables = array(
			'name'					=> __('Sites'),
			'singular_name'			=> __('Site'),
			'all_items'				=> __('All Sites'),
			'edit_item'				=> __('Edit Site'),
			'view_item'				=> __('View Site'),
			'update_item'			=> __('Update Site'),
			'add_new_item'			=> __('Add New Site'),
			'new_item_name'			=> __('New Site Name'),
			'parent_item'			=> __('Parent Site'),
			'parent_item_colon'		=> __('Parent Site:'),
			'search_items'			=> __('Search Sites'),
			'popular_items'			=> __('Popular Sites'),
			'not_found'				=> __('Nothing found'),
			'hierarchical'			=> true,
			'query_var'           	=> true
				
	);

	$taxonomy_args = array(
			'labels' 				=> $taxonomy_lables,
			'show_admin_column'		=> true,
			'hierarchical'			=> true
	);

	register_taxonomy(""site"", 'news', $taxonomy_args);
	
}

add_action('init', 'aaa_register_taxonomy_site');

}}}

Now to cause the error

1. Click on the new custom post ""News"" menu in WordPress admin
2. Click on the new custom taxonomy ""Sites"" submenu
3. Create a new site, then click on the add site button, nothing happens. The list of sites is not updated and the site info is still in the text boxes. However, if you refresh the page, the new site is in the list.

Now, if you want to delete the site after refeshing the page: On the same list of sites page, hover over the site, and click on delete, and you get an undefined error.

",greeso
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
23668,Check for empty slug input in register_taxonomy,,Taxonomy,3.5.1,normal,normal,3.6,defect (bug),new,dev-feedback,2013-03-02T18:20:56Z,2013-04-09T10:12:02Z,"If you give an empty string for the `slug` part of the `rewrite` array in a `register_taxonomy` call, like:

{{{
'rewrite' => array(
     'slug' => ''
)
}}}

...you get some wacky permalink issues, even when you flush properly. In my case, I was seeing top-level pages (only) 404 while everything else worked. Removing this admittedly poor part of the code fixed it, but this should be checked for. The `register_post_type` function ensures this isn't empty, and this function should as well.",cliffseal
13606,Comma's in taxonomy term names make them unpickable,,Taxonomy,,normal,major,Future Release,defect (bug),new,,2010-05-28T21:10:02Z,2010-11-13T03:19:01Z,"In the taxonomy term adder/editor, you are allowed to put comma's in their names, but the JS picker thinks they are two separate terms separated by a comma.

Two possible obvious solutions:
1.) Disallow terms from having commas in the names
2.) Fix the JS",johnjamesjacoby
18553,Counting of categories doesn't work without refreshing?,,Taxonomy,3.2.1,normal,minor,Awaiting Review,defect (bug),new,,2011-08-31T11:39:03Z,2011-09-03T09:17:55Z,"If you add a new category or delete one the number of total categories stays on the original number. For exemple, when you have 7 categories then in the corner it says '7 items'. When you delete one, you have 6 items but '7 items' is still displayed.

(Chrome 15.0.816)

1) Go to your categories
2) Add one and look to the number of items, IT WILL NOT CHANGE!

So this count for adding normal categories and child ones...",jonezjea
14073,Custom Taxonomies - Post Count wrong,,Taxonomy,3.0,normal,normal,Future Release,defect (bug),new,reporter-feedback,2010-06-24T14:17:07Z,2010-11-13T12:52:06Z,"I've just set up some custom taxonomies on our blog.

Basically they are just some basic custom tag-clouds for a few different subjects

But i've come across what appears to be a weird bug

After creating my custom taxonomies, i went through my articles (posts) using the bulk edit function to 'tag' all the articles in the new custom tag-subjects

By using the bulk-edit feature, this saved me loads of time, but in doing so meant i could only add one tag at a time - however, cetain articles needed to be tagged with multiple tags, so they would show up in the repeated use of bulk edit many times

Here's where it got weird....

Every time i added a new tag to a post and hit the 'update' button, it would increase the post count for that article by +1

I know that sounds a bit crazy, as an article does not have a post count, so the best way to explain it is with an example

1) Go to our sites archive page [http://f1stockcars.com/about/archives/]

2) Look over to the right for our custom ""Drivers"" tag-cloud

3) Near the top is is a driver called ""Colin Goodswen""

4) Hover your mouse on this driver and it says ""12 Topics""

5) Click the name though, and you'll find he has just ONE topic

The reason for this is simply because i had to add multiple ""driver"" tags to that particular article, and each time i hit the ""Update Post"" button it (as i said before) increased the post count for that article by +1

And it's not just a one-off... virtually EVERY single driver tag has the incorrect post count assigned to their name

I decided to see if this was an issue unique to the 'Bulk Editor' by going into the standard single (full) Post Editor. Without editing a single thing within the post i simple hit the 'Update' Post button. I went back to my archive to check the post count for tags associated with that post, and they had all increased by +1

I think that's about all the information i can provide on how to recreate the bug.

This now means there is not just the fact it's giving wrong information about post counts to our readers, it also means our tag-cloud's appearance is completely wrong, and tags with only one article are being emphasized over other tags with many articles",defade
14370,Custom Taxonomies tagging Attachments,,Taxonomy,3.0,normal,normal,Awaiting Review,defect (bug),reopened,dev-feedback,2010-07-21T02:28:52Z,2012-08-30T08:56:17Z,"There appears to be an issue where if the custom taxonomy has only attachment:image, attachment:audio, and attachment:video The attachments return nothing found. Only 'post' post types are returned.

adding to a query 'post_status' => publish, allows it to display the images but does not allow pagination.

WordPress should return all post_types that the Taxonomy is defined for. Somehow ma.tt found a way around this issue. refer to: 
http://osdir.com/ml/wp-testers/2010-06/msg00317.html
http://wordpress.org/support/topic/383096?replies=29

Does not affect pre 3.0
",thee17
15264,Deleting a term shared across taxonomies deletes all associated nav menus.,garyc40,Taxonomy,3.0.1,normal,major,Future Release,defect (bug),assigned,has-patch,2010-10-31T08:01:32Z,2013-05-21T19:59:57Z,"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
21842,Diffrerent Custom Taxonomy Unable to Have Same Term Name  in Version 3.4.2,oneTarek,Taxonomy,3.4.2,normal,major,Awaiting Review,defect (bug),new,reporter-feedback,2012-09-08T09:27:28Z,2012-09-14T23:47:16Z,"Before WordPress version 3.4.2 We know that WordPress does not support same word as category and tags. Assume you have a category named ""iPhone"" and it's slug is 'iphone' and now you want to add a new tag named ""iPhone"" , in this case tag slug will be 'iphone-2'. But if you have a custom taxonomy ""Device"" then the slug will be 'iphone' same as category ""iphone"". It means WordPress did not support same category and tag but can be same with any custom taxonomy. I tested many times this case.

But today after updating <a href=""http://onetarek.com""><strong>My WordPress Blog</strong></a> to version 3.4.2 I found a mistake on it. I have 3 custom taxonomy. 'Type', 'Brand' and 'OS' . Before WP 3.4.2 I was able to use same word as Category and Type and also same slug for those. But now in version 3.4.2 when I am adding new terms It is getting slug with extra number 2. Example: I have a Category 'Apple' it's slug 'apple'. Now I am trying to add a 'Brand' taxonomy term 'Apple', the slug is being created 'apple-2'. But this problem was not in before WP 3.4.2",onetarek
11156,Duplicate tag created if tag name contains ampersand,filosofo,Taxonomy,2.9,normal,normal,Future Release,defect (bug),new,,2009-11-16T21:51:37Z,2010-11-13T07:25:30Z,"This is undoubtedly an edge case, but here's what happened:

1. I created a tag with a long name that contained an ampersand. Gave it a shorter slug than the one WP generated.

2. Tagged some posts.

3. While the server was running slow, the autocomplete never came up, and I tagged another post by cutting and pasting the tag name from another screen.

That resulted in a new tag being created with a longer WP-generated slug, instead of the post getting tagged with my older existing tag.

This happened a few times (the server in question is REALLY slow), and I finally realized that the only tags that were incorrectly duplicated were the ones with ampersands.",sillybean
20850,Duplicate term insertion allowed after insertion with case differences,,Taxonomy,3.3.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-06-06T00:00:33Z,2012-06-08T20:20:38Z,"I've discovered a case where duplicate terms can be inserted with wp_insert_term(). Steps to reproduce:

1. Insert a term, i.e.
{{{
 wp_insert_term('USA', 'country');
}}}
2. Insert the same term, but with a different case, i.e. 
{{{
 wp_insert_term('usa', 'country'); // it's ok that this succeeds, because technically it *is* different (case-wise)
}}}
3. Insert the same term as in step 2. It should fail, but doesn't:
{{{
 wp_insert_term('usa', 'country'); // succeeds
}}}

This is because wp_insert_term() does the following:
1. Finds the first term in the db that matches the initial (non-unique) slug for the new term name
2. If the name of the found term doesn't match the new term name, then insert continues. In the example above, it's comparing all subsequent 'usa' term names to the first 'USA' term name and determining that it's ok to continue, when it's not because there are other 'usa' terms that it didn't look at.",jazbek
16797,Edit Tags admin + custom post type + custom taxonomy,,Taxonomy,3.1,normal,normal,Awaiting Review,defect (bug),new,,2011-03-08T17:20:30Z,2011-03-08T19:10:16Z,"I've registered the custom post type `fp_toy`, and the custom taxonomy `fp_milestone`. Both have `show_ui` set to `true`. I have the `fp_milestone` taxonomy associated with both `fp_toy` and `post`.

If I click Toys > Milestones in the admin, the URL is `edit-tags.php?taxonomy=fp_milestone&post_type=fp_toy`; but in the navigation menu, it appears that I'm in Posts > Milestones. (This is minor, but may help with diagnosis.)

Worse, in the list of Milestones, I see an automatically populated column named ""Toy,"" which would be correct if it were indicating the number of Toys per Milestone; but it is counting `all` posts associated with a Milestone, not just those with a `post_type` of `fp_toy`.

Worst of all, clicking this (incorrect) post count should take me to `edit.php?fp_milestone=create&post_type=fp_toy`; instead it's taking me to `edit.php?fp_milestone=create&post_type=post`. The result is that I have no way (without URL manipulation) to see all Toys for a given Milestone.",kanuck54
12729,Fix [6326] - wp_unique_term_slug() when changing the parent,ryan,Taxonomy,,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-03-27T08:04:40Z,2013-06-07T19:23:18Z,"[6326] uses $args (as an array) when it appears it should use $term (an object).

It's never worked, so I'm hesitant to patch it as I imagine it might break something elsewhere in the taxonomy API.

Assigning to ryan for now, who authored the commit.",nacin
23069,"For plugins that create custom taxonomies, wp_delete_term does not work during plugin uninstall.",,Taxonomy,3.5,normal,trivial,Awaiting Review,defect (bug),new,,2012-12-28T15:10:51Z,2013-01-02T19:37:39Z,"I ran into this problem while writing a plugin uninstall class to clean up any options, custom post types, taxonomies & terms related to the plugin.

The problem is, if a plugin creates a custom taxonomy and the plugin user creates terms for that taxonomy, the plugin cannot delete those terms during uninstall.

How to reproduce:

1. Create a plugin that creates a custom taxonomy.
2. Create some terms for that taxonomy.
3. In uninstall.php, try using wp_delete_term to remove those terms.

Because the plugin is already deactivated by the time uninstall.php fires, $wp_taxonomies no longer contains the custom taxonomy that the plugin created. Since wp_delete_term requires a valid taxonomy as its second parameter, it does not work.

The issue is also being discussed here: http://bit.ly/RUDYOv",sscovil
14093,"Malformed category hidden from edit-tags, but shows in meta box",,Taxonomy,,low,normal,Future Release,defect (bug),new,,2010-06-25T19:11:49Z,2011-01-13T08:07:15Z,"Came from a report in IRC by xomp.

In the following example, category 1's parent is category 2, and vice versa.
{{{
mysql> select term_taxonomy_id, term_id, taxonomy, parent from wp_term_taxonomy;
+------------------+---------+---------------+--------+
| term_taxonomy_id | term_id | taxonomy      | parent |
+------------------+---------+---------------+--------+
|                1 |       1 | category      |      2 |
|                2 |       2 | category      |      1 |
|                3 |       3 | category      |      0 |
|                4 |       4 | category      |      1 |
+------------------+---------+---------------+--------+
4 rows in set (0.00 sec)

mysql> select term_id, name from wp_terms;
+---------+-----------------+
| term_id | name            |
+---------+-----------------+
|       1 | Category 1      |
|       2 | Category 2      |
|       3 | Category 3      |
|       4 | Category 4      |
+---------+-----------------+
4 rows in set (0.00 sec)
}}}
On edit-tags, you'll see only Category 3.

In the hierarchical meta box, you'll see:
{{{
Category 3
Category 1
 - Category 2
 - Category 4
}}}
If we decide to show corrupted data, we should be consistent. At the very least, edit-tags should reveal more than the meta box, not the other way around.",nacin
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
16101,Numeric term fields are strings,,Taxonomy,,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-01-04T23:25:00Z,2013-02-13T01:37:57Z,"The numeric fields (term_id, parent, etc.) on term objects are strings. I only noticed this because term_exists() uses is_int() to determine if the $term value is an ID or slug.

Only ticket I could find about this is #5381. 

sanitize_term() should fix this, but it bails early in the ""raw"" context. sanitize_term_field() sanitizes the numeric fields in every context. I don't see a reason for sanitize_term() to bail early so I made a patch that takes that out. The patch also adds some missing fields to the list of those to be sanitized and changes term_exists() to use is_numeric() (which will correctly identify strings containing only numbers) instead of is_int(). 

",foofy
19205,Orphaned categories can be created by accident,,Taxonomy,,normal,minor,Awaiting Review,defect (bug),new,,2011-11-08T14:12:39Z,2011-11-19T06:07:17Z,"There are two ways to do that.

1. You can work on category tree from two browser windows. 
- In window one, delete a category
- In window two, add a child to the category that has been deleted.

wp_insert_term needs to check if the parent exists.

2. If you delete a couple of categories with bulk-delete, a third level child node can become orphan.

wp_delete_term uses get_term to find the parent node and can retrieve cached data.",dzver
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
19492,Problems with using wp_insert_term together with switch_to_blog,,Taxonomy,3.2,normal,normal,Awaiting Review,defect (bug),new,,2011-12-09T23:38:33Z,2011-12-09T23:38:33Z,"I'm running a network of about 80 sites using WP multisite 3.2. I'm experiencing irregularities using switch_to_blog whith wp_insert_term.

To test this I have disabled all plugins, and am testing on a blank page so nothing else interferes. This is the sample code:

switch_to_blog(75);
wp_insert_term( 'New Term','category');
restore_current_blog();

When run from most blogs it adds the new term to the desired blog and the permalink to the new term page works.

But for a few of the blogs, when it runs it adds the term, but the link to the new term page throws a 404 error. Opening wp-admin and adding any new term through wp-admin fixes it.

Is this related to the other term_cache bugs?
",ErikStromme
5358,Queried object on multiple tag query holds only first tag,ryan,Taxonomy,2.3.1,normal,normal,Future Release,defect (bug),new,,2007-11-15T05:17:21Z,2013-01-28T14:01:36Z,"On tag page results when two or more tags are queried ('''/tags/foo,bar''' -or- '''/tags/foo+bar'''), only the first tag is in the queried object. So a simple:

{{{ print_r($wp_query->get_queried_object());  }}}

outputs a single associative array of the first tag referenced in the query. One would expect to find an array of all tags in the queried object.",Kafkaesqui
22511,"Taxonomy manage screen checks for manage_terms and edit_terms, instead of just manage_terms.",,Taxonomy,3.0,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-11-19T23:13:56Z,2012-11-20T03:14:40Z,"I'm trying to set up permissions so the Contributor role can add terms but not edit or delete terms. I setup my taxonomy so it looks like this:
{{{
register_taxonomy( 'custom_taxonomy', array( 'post' ), array(
	...
	'capabilities' => array (
		'manage_terms' => 'edit_posts',
		'edit_terms' => 'manage_options',
		'delete_terms' => 'manage_options',
		'assign_terms' => 'edit_posts'
	)
) );
}}}

However, when logged in as a contributor I get the error ""You are not allowed to edit this item."" In edit-tags.php there are two checks for caps, one is for manage_terms and one is for edit_terms. I don't believe the second one should be there, because looking at the other code it should be like this:

* User with manage_terms can access the main taxonomy page
* They can also add terms
* There are checks in WP_Terms_List_Table to restrict showing the Edit/Quick Edit/Delete links for users without those capabilities (edit_terms/delete_terms).
* There is even plenty of other checks on edit_terms in edit-tags.php to include/change the content shown to the user.. if the entire page is restricted for users without edit_terms, why are any of those necessary?

Even if I'm wrong on the fact that roles with edit_terms can't add new terms (it's not completely clear anywhere, it seems like manage_terms should be enough), I still think that this page should be viewable at the very least considering the other code in that page and the list table.

Recommended solution: move the edit_terms check back into case 'edit' (line 121 of edit-tags.php in trunk, currently) as it was before [15491].

This was introduced in: [15441] and [15491]. Related: #14343.",andrewryno
15741,Taxonomy: Duplicate term slug error message refers to the name,,Taxonomy,3.0.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2010-12-09T01:03:10Z,2011-02-25T15:52:39Z,"You can't create a term if there is another existing term with the same slug. The error message indicates this warning incorrectly, referring to the term ""name"" instead of ""slug"":

 A term with the name provided already exists with this parent.

Problem in action:

 1. Create a category name ""Example"" with slug ""example"" without any parent category.
 2. Once that is saved, try creating the exact same category again.
 3. ""A term with the name provided already exists with this parent."" error shows up.
 4. Create a category name ""Example"" with slug ""example-2"".
 5. No error. Category with the same '''name''' can be created, contrary to the error  message in step 3.

The error message should refer to the slug not name if this is an intended behavior.  If the same term name should not exist under one level, step 4 should not be allowed either (especially with Tags).",Nao
17689,Terms should not be sanitized inside term_exists(),,Taxonomy,3.2,normal,normal,3.6,defect (bug),new,needs-unit-tests,2011-06-05T03:49:48Z,2013-06-17T13:20:20Z,"When adding a term to a post, the title of the term is sent through term_exists(). If term_exists finds and returns the ID of an existing term for the passed taxonomy, that ID is added to the post object. If no term is found, it returns false and a new term is created for that taxonomy with the same title that was passed to term_exists().

The problem is that term_exists() uses sanitize_title($term) on line 1457 of wp-includes/taxonomy.php while wp_insert_term uses stripslashes($name) on line 1985 of the same file.

This doesn't cause a problem in many circumstances, but if the term title happens to be something like $$$, that means it will always be added correctly in wp_insert_term() but never found as existing in term_exists(). The result is that every time you add $$$$ to another post it gets added as a new term with a unique slug so that you have  several terms with the title $$$$ for the same taxonomy but different IDs. 

The attached patch corrects that by passing the term title through stripslashes in term_exists() rather than through sanitize_title().

I haven't found any undesired side effects in testing.",blepoxp
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
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
24461,_get_term_children can loop forever (well until it times out) if there is a loop in the hierarchy,,Taxonomy,trunk,normal,normal,Awaiting Review,defect (bug),new,,2013-05-30T10:22:21Z,2013-06-09T05:08:31Z,"{{{_get_term_children}}} call's itself recursively to build the array of children. If there is for some reason a loop in the hierarchy it gets stuck and loops for ever trying to build the list of descendents.

Seeing as we fetch the whole hierarchy with _get_term_hierarchy we can probably just use that to build an array of descendents without recursion.

Otherwise we should leverage our loop detection code to find and maybe break loops.",westi
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,2013-06-09T05:08:34Z,"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
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
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
21200,get_all_category_ids() only used by a deprecated function,,Taxonomy,3.4.1,normal,minor,Awaiting Review,defect (bug),new,,2012-07-09T11:35:01Z,2012-09-08T21:02:55Z,"The function ""get_all_category_ids()"" (category.php) is only used by the deprecated function ""get_category_children"". I got two ideas for the future of the function:

a) also deprecate it

b) create a function ""get_all_taxonomy_ids($taxonomy)"". Since it seems to be a common problem for programmers to get e.g. all tag ids I would prefer this.

 

",Latz
24354,get_cat_id() fails with category names containing ampersand,,Taxonomy,3.5.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-05-17T08:25:08Z,2013-05-17T10:07:10Z,"{{{
echo get_cat_id('News');
results in 3 (as expected);
echo get_cat_id('Test OtherName');
results in 8 (as expected);
echo get_cat_id('Test&OtherName');
Results in 0
echo get_cat_id('News & Media');
Results in 0
}}}

All the category names were created in the Category Edit page, category names were copied from the text box directly into the code to allow no formatting issues.

I tracked the code to get_term_by and I think the ampersand in category name screws up possibly after being added into the prepared SQL statement.
",Kenshino
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
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
14399,get_term_children doesn't call clean_term_cache() if necessary,,Taxonomy,3.0,normal,normal,Future Release,defect (bug),reopened,,2010-07-23T13:32:11Z,2011-01-15T02:01:34Z,"1. Create a taxonomy on something 'non standard'[[BR]]

2. Create a (parent) term.[[BR]]

3. Create a child term. [[BR]]

4. Retrieve child terms of the parent term using, amongst others, get_term_children().

Roughly:

{{{
register_taxonomy( 'where-you-live', 'user', array('hierarchical' => true,  'show_ui' => true, 'query_var' => true, 'label' => __('Where they live')) );

$country = 'USA';
$state   = 'New York';

$tax_country = wp_insert_term($country,  'where-you-live');
$country_term_id = $tax_country['term_id'];
wp_insert_term($state, 'where-you-live', array('parent'=>$country_term_id));

$state_terms = get_child_terms($country_term_id, 'where-you-live');
error_log(print_r($state_terms,1));
}}}

I am expecting an array containing the 'New York' child term, but I get nothing.[[BR]]
Have also tried get_terms() with child_of or parent args, which also fail (presumably for the same reason?).",miradev
17652,get_term_link doesn't accept $term->term_id without explicit casting as numeric,,Taxonomy,3.1.3,normal,minor,Awaiting Review,defect (bug),new,,2011-06-02T00:42:09Z,2013-05-01T18:20:53Z,"global $wp_query;

$term = $wp_query->get_queried_object();

get_term_link($term, $term->taxonomy); // ok

get_term_link($term->slug, $term->taxonomy); // ok

get_term_link($term->term_id, $term->taxonomy); // WP_Error ('Empty Term')

echo ($term->term_id); // ok (echoes correct ID)",tomauger
17365,get_terms doesn't return terms with no posts if you specify a parent,,Taxonomy,3.1.2,normal,normal,Awaiting Review,defect (bug),new,,2011-05-10T11:52:19Z,2011-05-10T11:52:19Z,"get_terms doesn't return terms with no posts if you specify a parent (see also #15626 for a related bug). Let's imagine the following term structure:

{{{
---parent_term (0 count)
    |---child_term (10 count)
}}}

Calling `get_terms('category', array('parent' => 0))` should return both terms according to the documentation, but it doesn't. The documentation says that `hierarchical` defaults to true, which should '''""include terms that have non-empty descendants""'''. It's broken because the following code runs if a parent argument is present (lines 1139-3 of taxonomies.php).

{{{
if ( !$single_taxonomy || !is_taxonomy_hierarchical($taxonomies[0]) ||
	'' !== $args['parent'] ) {
$args['child_of'] = 0;
$args['hierarchical'] = false;
$args['pad_counts'] = false;
}}}

But nothing in the parent section of the documentation suggests that adding a parent will change the other defaults. The consequence of the above code comes in lines 1266-7:

{{{
if ( $hide_empty && !$hierarchical )
	$where .= ' AND tt.count > 0';
}}}

which means the parent_term is not being returned because it has a count of zero, and I can't walk down the tree to get the other terms.

At the very least, set this paramenter as default in $defaults, before `$args = wp_parse_args( $args, $defaults )` (rather than in `$args` afterwards) which would at least allow us to override this behaviour through explicit `$atts`. But it would be more logical simply to remove the test for `'' !== args['parent']` altogther, inline with the existing documentation.",mark8barnes
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
16240,hide_empty doesn't work in get_terms() when hierarchical isn't set to false,markjaquith,Taxonomy,,high,major,Future Release,defect (bug),assigned,close,2011-01-15T06:06:05Z,2012-09-13T06:34:17Z,"I end up with some 0-count categories when calling {{{get_terms( 'category', array( 'hide_empty' => true ) )}}}

I think it has to do with the child count logic.",markjaquith
12981,odd behavior of exclude_tree parameter in wp_list_categories(),tott,Taxonomy,3.0,normal,normal,Future Release,defect (bug),assigned,dev-feedback,2010-04-12T20:10:50Z,2010-11-13T01:26:38Z,"When running a query such as 

{{{
<?php wp_list_categories('title_li=&exclude_tree=1234&orderby=name&order=ASC'); ?>
}}}

the exclude_tree parameter is not obeyed as [10276] introduced a change that would overwrite it with the exclude parameter.

",tott
7559,strip_tags() breaks category names with left angle brackets,ryan,Taxonomy,2.6,normal,minor,Future Release,defect (bug),reopened,,2008-08-20T22:17:19Z,2010-07-01T17:44:25Z,"If you create a category named ""<something"", the category name doesn't show up on any of the category listings.  If you create a category named ""some<thing"" the category name shows up as ""some"".",squirreling
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
18625,term_exists() doesn't make a difference between z and ẓ,,Taxonomy,3.2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-09-09T12:23:25Z,2011-09-09T15:31:21Z,"I spent hours before discouvering why wp_insert_term doesn't want to create some of my categories list;

{{{
$alphabet = array ( 
	array( 's', 'sth' ),
	array( 'ṣ', 'sth' ),
	array( 'h', 'sth' ),
	array( 'ḥ', 'sth' ),
	array( 'd', 'sth' ),
	array( 'ḍ', 'sth' )
);

foreach ($categories as $category ) 
{
	if( term_exists(  mb_strtolower($category[0]), 'category' )) 
		continue;
	else
		wp_insert_term( $category[0], 'category',  array( 'slug' => $category[0] ) );
}
}}}

term_exists() doesn't make a difference between ""normal characters"" and diacritic characters.
",abdessamad idrissi
18609,term_id collisions possible with InnoDB tables and global_terms_enabled,,Taxonomy,3.2.1,normal,major,Awaiting Review,defect (bug),new,,2011-09-07T02:41:41Z,2011-10-19T01:05:47Z,"This bug relates to the ""global terms"" feature that uses the wp_sitecategories table to store all terms used across the multi-site install. This feature is enabled by setting global_terms_enabled to ""1"" in the wp_sitemeta table.

I have found that when global_terms_enabled is on, and you are using InnoDB tables, it is possible for a new term insertion in the local terms table (wp_x_terms) to fail due to an ID collision. This happens because InnoDB does not handle auto_increment in the same way as MyISAM, and the code for the global terms feature does not account for this difference.

In MyISAM, any change to a value in an auto-incremented column causes the table's AUTO_INCREMENT value (next value to be used, as seen via ""show table status"") to change. For example, if I have a MyISAM table, and I use an update statement to change the value of an auto incremented column to a value larger than the current AUTO_INCREMENT, the AUTO_INCREMENT is automatically increased as needed, so the next insertion cannot collide.

However, InnoDB does not do this. It only changes AUTO_INCREMENT on an insert. It does not change it when a column value is increased via an update statement. You can see this in the MySQL docs, or you can see it by creating a test case, like this:

- Create an InnoDB table with 2 columns: ID (auto_increment, primary key) and data.
- Insert a row using an insert statement, without specifying an ID.
- Observe that ID = 1 for that row, as expected.
- Use an update statement to set ID = 2 on that row.
- Insert another row without specifying an ID.
- Observe that the insertion fails. MySQL has attempted to insert a row with ID = 2, but there is already such a row.

If you do the same steps with a MyISAM table, the insertion does not fail, because AUTO_INCREMENT was automatically changed from 2 to 3 when your update statement was executed.

Going back into the context of the global terms feature: This problem happens when a new term is created in a site. The new term is initially inserted into the local terms table for the current site (wp_x_terms). After this, the function global_terms (in ms-functions.php) is called. This function finds or creates a matching entry in the wp_sitecategories global terms table, and uses an update statement to change the term_id of the row we just inserted in wp_x_terms. When wp_x_terms is an InnoDB table, the AUTO_INCREMENT value for the table does not change.

Suppose the AUTO_INCREMENT value was 58 after the original insertion, and further suppose that 58 was (coincidentally) the ID found in wp_sitecategories and written into our new row by the update statement described above. Now suppose we are ready to insert another new term into wp_x_terms. AUTO_INCREMENT is still 58, so we attempt to insert a term with term_id = 58, but it fails because there is already a row in the table with that ID.

Fix for this would be to reorder the operations so that no row is inserted into wp_x_terms until after wp_sitecategories has been queried and updated. That way, we know the ID we need to use when inserting into wp_x_terms before that insertion takes place, so we can specify it in the insert statement rather than depending on AUTO_INCREMENT.

I have marked this as severity major, because these unpredictable term_id collisions can cause weird errors, and the only workaround I have at this time is to disable global terms and restart MySQL (to regenerate AUTO_INCREMENT values on all tables).",andrew_l
14343,user_can_access_admin_page not recognising taxonomies,,Taxonomy,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-07-18T08:37:30Z,2010-12-07T23:29:51Z,"Hello,

I have a custom taxonomy with custom capabilities.
The ""edit_customtaxonomy"" cap is removed from all roles.

The problem is that the user is still able to click on each term (in the taxonomy page). 
When each term is clicked, the user goes to the ""Update term"" page and  he is able to click the ""Update"" submit button.

After all, he can't update and get a ""cheatin huh?"" message.

The problem is they should't have access to the update page from the first place.

 ",ClementN
24073,wp_ajax_ajax_tag_search,,Taxonomy,3.5.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2013-04-13T09:59:25Z,2013-04-14T04:39:03Z,"For some of custom taxonomies the tag autocomplete doesn't work I tried to solve this issue and changing t.name to name in 

  $results = $wpdb->get_col( $wpdb->prepare( ""SELECT name FROM  ..... "");

in wp-admin/includes/ajax-actions.php -> wp_ajax_ajax_tag_search() helped me to solve this problem.

now everything looks ok for me .

",samnajian
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
11003,wp_get_object_terms Returns Duplicate Terms,ryan,Taxonomy,2.9,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-10-22T11:14:20Z,2010-12-04T04:21:10Z,"wp_get_object_terms() accepts multiple objects in its first parameter.  If the multiple objects have terms in common, then wp_get_object_terms() returns those terms more than once in the returned array of term data.

Patch makes the array of terms unique.",filosofo
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-28T11:21:51Z,"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
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
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
21881,wp_list_categories show_option_all does not work for custom taxonomy,,Taxonomy,,normal,normal,Awaiting Review,defect (bug),new,,2012-09-13T12:46:59Z,2012-09-13T13:41:09Z,I am using wp_list_categories on a custom post type page to list the taxonomy values (categories). However if I include an All link it links by default to /blog/ and not /taxonomy/.,arkinex
11847,wp_tag_cloud counts terms attached to future posts when used with custom taxonomies,filosofo,Taxonomy,2.9.1,normal,normal,Future Release,defect (bug),reopened,,2010-01-09T20:47:18Z,2010-10-29T00:27:24Z,"If you create a custom taxonomy, then attach some terms from that taxonomy to a future scheduled post, attachments attached to a future post, or unattached attachments, they will get counted toward the totals used to draw the tag cloud produced by wp_tag_cloud.

As a result, the sizes of the items in the tag cloud will be wrong, and the tooltips will show the wrong count. In some cases, if a particular term is only attached to future posts, clicking on the link in the tag cloud will result in a 404 because the main $wp_query correctly filters out future posts and unattached attachments when looking at the term's archive.

Correct behavior would be for get_terms to provide an option to filter out future posts and unattached attachments from its results the same as is done when looking at the term's archive.",fwiffo
24189,{$taxonomy}_relationships cache can easily become stale when a term is updated.,,Taxonomy,trunk,high,major,3.6,defect (bug),new,,2013-04-25T11:18:16Z,2013-04-26T02:35:03Z,"The {{{{$taxonomy}_relationships}}} cache stores the information about the terms associated with an object for a particular taxonomy.

If you update the term then we don't invalidate the cache and therefore a call to something like: {{{get_the_terms()}}} will return invalid data.

An example set of steps to reproduce (needs some form of persistent caching like memcache):

 1) Create a new tag and assign it to a post
 2) Use get_the_terms()
 3) Edit the tag to change the description
 4) Use get_the_terms() and find the old description is returned.

Very easy to reproduce in a unit-test.

Re-constituting the relationships cache for every object that is related to the term is probably going to be very expensive.

Maybe we should just switch to only caching IDs and then populating the term data from a different cache?
",westi
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
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
21543,Add a show_metabox parameter to register_taxonomy,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-08-10T18:45:17Z,2012-10-09T18:44:16Z,"Currently when registering a taxonomy we have the `$show_ui` param, this effects both the admin menu and the actual taxonomy meta box on the post edit screens.

There are cases when you want it to show in one but not the other, to do that now you have to use either `remove_meta_box` or `remove_menu_page`.

It would be nice to add another parameter like `show_metabox => array(posts)` to `register_taxonomy` which would effect the meta boxes only. And one for the admin menu as well.


related: #12718
",wycks
13949,Add a sprintf style argument to wp_list_categories() for title tag.,,Taxonomy,,normal,normal,Future Release,enhancement,new,,2010-06-17T18:01:20Z,2010-10-28T02:10:59Z,"By default, wp_list_categories() will use the value of $term->description for the title tag of every link that it generates. If the argument ""use_desc_for_title"" is set to false, it will produce a string like: ""View all posts filed under $term->name"". With the inclusion of custom post_types into core, it would be wonderful to have more control over this title. The best solution that I can think of is to add a sprintf style argument which will allow themes and plugins to provide a custom format. Something like:

'title_format' => 'View all tacos posted under %s.'

",mfields
20783,Add filter to wp_unique_term_slug(),,Taxonomy,3.3.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-05-30T02:24:04Z,2012-10-26T21:36:39Z,"I can't modify the result of wp_unique_term_slug(), but if using the following code:

{{{
function wp_unique_term_slug($slug, $term) {
	global $wpdb;

	if ( ! term_exists( $slug ) )
		return $slug;

	// If the taxonomy supports hierarchy and the term has a parent, make the slug unique
	// by incorporating parent slugs.
	if ( is_taxonomy_hierarchical($term->taxonomy) && !empty($term->parent) ) {
		$the_parent = $term->parent;
		while ( ! empty($the_parent) ) {
			$parent_term = get_term($the_parent, $term->taxonomy);
			if ( is_wp_error($parent_term) || empty($parent_term) )
				break;
			$slug .= '-' . $parent_term->slug;
			if ( ! term_exists( $slug ) )
				return $slug;

			if ( empty($parent_term->parent) )
				break;
			$the_parent = $parent_term->parent;
		}
	}

	// If we didn't get a unique slug, try appending a number to make it unique.
	if ( !empty($args['term_id']) )
		$query = $wpdb->prepare( ""SELECT slug FROM $wpdb->terms WHERE slug = %s AND term_id != %d"", $slug, $args['term_id'] );
	else
		$query = $wpdb->prepare( ""SELECT slug FROM $wpdb->terms WHERE slug = %s"", $slug );

	if ( $wpdb->get_var( $query ) ) {
		$num = 2;
		do {
			$alt_slug = $slug . ""-$num"";
			$num++;
			$slug_check = $wpdb->get_var( $wpdb->prepare( ""SELECT slug FROM $wpdb->terms WHERE slug = %s"", $alt_slug ) );
		} while ( $slug_check );
		$slug = $alt_slug;
	}

	return apply_filters('unique_term_slug', $slug);
}

}}}
",bolo1988
18778,Add filters to transform_query() to allow caching of queries created by this function.,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-26T12:02:08Z,2011-10-05T09:20:40Z,"[https://core.trac.wordpress.org/browser/trunk/wp-includes/taxonomy.php#L749 transform_query()] works great on regular datasets, but if you run this on a large set of data it can get very expensive. adding some filters in here that could allow these queries to be cached would be benefitial.",tott
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
23422,Add query filter argument to register_taxonomy,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,,2013-02-08T12:38:35Z,2013-02-08T12:50:58Z,"Following on from the #21240 ticket which introduced the show_admin_column functionality I would like to suggest an additional argument to easily add the select list query filter for a taxonomy to the post-type list.

Currently a taxonomy query can be added via the 'restrict_manage_posts' action and 'parse_query' filter. 

It would be useful to add an additional register_taxonomy argument of 'show_column_filter' to define a standard select option list of the taxonomy terms. Things like default option and hierarchy could be optional settings is an array is passed instead of boolean.
	",tifosi
23421,Add sortable to taxonomy column,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,,2013-02-08T12:34:20Z,2013-02-09T10:57:33Z,"Following on from the #21240 ticket which introduced the show_admin_column functionality one limitation is the 'as easy' way to make that column sortable.

It's possible to do it through the 'manage_edit-{$post_type}_sortable_columns' filter but the column_key is different for 3.5+. A standardisation as for adding the column may be advantageous: a register_taxonomy argument and / or new filter.

argument: show_column_sortable, boolean default false, requires show_admin_column to be set and true.	

In the same way that the get_columns function uses the new ""manage_taxonomies_for_{$post_type}_columns"", filter to add a taxonomy column there could be a ""manage_taxonomies_for_{$post_type}_sortable_columns"" filter in the get_sortable_columns function of the post-list class:

i.e.
{{{
function get_sortable_columns() {
	$default = array(
		'title'    => 'title',
		'parent'   => 'parent',
		'comments' => 'comment_count',
		'date'     => array( 'date', true )
	);

	return apply_filters( ""manage_taxonomies_for_{$post_type}_sortable_columns"", $default );
}
}}}
The developer could then set the filter as normal
{{{
add_filter( ""manage_taxonomies_for_{$post_type}_columns"", 'add_sortable_column' );

function add_sortable_column ( $columns ) {
	$columns[ taxonomy-tax_name ] = 'Taxonomy Label';
	return $columns;
}
}}}",tifosi
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
6122,Add taxonomy_id_filter like term_id_filter,ryan,Taxonomy,,normal,normal,Future Release,enhancement,new,needs-review,2008-03-07T10:57:11Z,2009-11-23T18:53:28Z,"Currently the $term_id is filtered in [source:trunk/wp-includes/taxonomy.php taxonomy.php] but not the taxonomy_id (tt_id). These filters are used in WordPress Multi-User.

Currently WPMU globalises the wp_terms table. I am extending this to the wp_taxonomy table also, for which I need these two new filters.",chmac
21651,Add term_taxonomy_id to available fields in get_term_by,,Taxonomy,3.4.1,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-08-21T14:07:33Z,2012-08-21T14:11:01Z,"In my experience {{{term_taxonomy_id}}} has proven to be exponentially useful in a number of ways, specifically in prevention of same-id collisions of terms used in multiple taxonomies. I'd love to be able to grab a term object by passing along its {{{term_taxonomy_id}}} to {{{get_term_by()}}}. A recent change was made to {{{WP_Query}}} that provides this functionality, so I'm hoping this makes the cut as well.",jchristopher
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
19094,Add wp_get_object_terms filters.,,Taxonomy,3.2.1,normal,normal,Future Release,enhancement,new,dev-feedback,2011-10-31T00:57:35Z,2012-06-04T12:12:20Z,"I wasted whole day looking for some filter I could use for changing the select query of wp_get_object_terms.

Please add filter like terms_clauses but for wp_get_object_terms (or use the same filter), because terms_clauses is NOT called when there are terms selected for the object. For example. When you select categories for post.",Zatsugami
22875,Additional custom taxonomy object types,,Taxonomy,3.5,normal,major,Awaiting Review,enhancement,new,,2012-12-12T09:59:37Z,2012-12-12T19:53:43Z,"At the moment, a taxonomy can be registered for one of the following objects (ref http://codex.wordpress.org/Function_Reference/register_taxonomy ):
- post
- page
- attachment
- revision
- nav_menu_item
- a particular cpt

Taxonomies would become much more powerful and flexible, if:
- They accept additional objects, e.g. users, taxonomies
- They accept multiple objects, e.g. a single custom taxonomy could group together posts, pages and attachments",sooskriszta
14691,Allow commas in tag names,,Taxonomy,3.0.1,normal,normal,Future Release,enhancement,new,needs-unit-tests,2010-08-25T09:51:09Z,2012-06-07T03:56:55Z,"Adding tags to posts via the web interface involves a lot of what boils down to
{{{
explode( ',', join( ',', array( $tag_name, ... ) ) );
}}}
both in PHP and JS.

We settled on commas so we could have tags with spaces in them (see #10320, for example).

It'd be nice if tags (and other taxonomies) could have commas in them, though.  Example use case: normalized locations (""Portland, OR"").  Admittedly, commas in tag names is an edge case.

The attached treats tag inputs as ""real"" CSV strings instead of just exploding by commas.

That way, you can enter:
{{{
hello, ""hello, world""
}}}
in the tags input field and the following tags would be added to the post.
 * hello
 * hello, world

This addresses commas in tag names but makes entering double quotes in tag names more annoying.  If you wanted a tag named {{{double""quote}}}, you'd have to enter the following.
{{{
""double""""quote""
}}}

This may also help with #7897.",mdawaffe
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
21949,Allow private taxonomies (public = false),,Taxonomy,,normal,normal,Future Release,enhancement,new,commit,2012-09-20T22:22:14Z,2013-05-14T13:33:47Z,"In a discussion with jaredatch & nacin, we discovered that the public arg is not working properly within WordPress query.

So I merged Limiting publicly queried post_types to those that are publicly_queryable with limiting publicly queried taxonomies to those that are public instead of just duplicating the code and making it for taxonomies.",wpsmith
23966,Allow to use order_by in addition to orderby,,Taxonomy,3.5,normal,minor,Awaiting Review,enhancement,new,close,2013-04-06T19:36:45Z,2013-04-09T18:44:56Z,"http://codex.wordpress.org/Function_Reference/get_categories

The above link and the same for wp_list_categories suggests that you can order categories by count. In practice it seems to ignore the parameter. It doesn't seem to work with a few other parameters either -- the only things that seem to work are ID, name, and slug, but these might merely be incidental to the fact that I created my test categories in alphabetical order.",Denis-de-Bernardy
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
22296,Better internationalization support for tags,,Taxonomy,3.4.2,normal,minor,Awaiting Review,enhancement,new,,2012-10-27T11:25:41Z,2012-10-28T13:52:01Z,"When playing around with tags I've found a couple of things that doesn't work as expected when dealing with names that have non-english characters. 

The two problems I've found are that single non a-z chars doesn't seem to work at all, and when two tags are the same except for one character which is non a-z, they seem to collide. One example of this is that you're unable to use the tags ""for"" and ""för"" together. 

I'm not sure if this is something that WordPress is supposed to support but I've got a use case for it and would like to raise the question. 

Here's some tests which shows the problem: https://gist.github.com/3964335

Oddly enough you seem to be able to add the single non a-z tags from the dedicated tags page, but you're still unable to use them in any post. ",exz
16621,Check term cache in _transform_terms(),,Taxonomy,3.1,normal,normal,Awaiting Review,enhancement,new,,2011-02-23T19:21:49Z,2011-02-24T00:17:06Z,"WP3.1's awesome new taxonomy query stuff rocks, but WP_Tax_Query->_transform_terms() seems to be executing multiple identical queries on each page load. The front page of one of my sites gives me five of the following query:

{{{
SELECT wp_1_term_taxonomy.term_taxonomy_id
FROM wp_1_term_taxonomy
INNER JOIN wp_1_terms USING (term_id)
WHERE taxonomy = 'channel'
AND wp_1_terms.slug IN ('tech')
}}}

I understand the function can do a lot more than map a single term+taxonomy to a term_taxonomy_id, but it also looks like there'd be some performance benefit from checking the term cache rather than the DB in those situations.

Or, perhaps it'd be enough to simply cache the result for the duration of the page load.

Or, maybe I'm focusing on the wrong problem, as the query takes just 1-2ms to execute.",misterbisson
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
14449,Create add_permastruct() filters for register_taxonomy() and register_post_type(),,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,,2010-07-28T23:31:18Z,2010-11-18T10:03:50Z,"When registering taxonomies { using register_taxonomy() }, it would be good to have a filter that controls the $struct argument for add_permastruct().

That way you can modify the rewrite rules without having to hack $wp_filters->rules

This patch creates the filter ""register_taxonomy_permastruct""

Note: the same could be applied to register_post_type()


",wjm
14020,Custom Taxonomy Form does not Show in Add/Edit Link page for Links,,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,,2010-06-21T05:32:06Z,2010-07-01T17:42:37Z,"When a custom taxonomy is registered for Links, the Taxonomy form is not displayed in the Add or Edit Link page.  When changing the 'object' type to 'post' in the register_taxonomy code, it does display properly in the add/edit post page.

Here is the code that was used to register the taxonomy:


{{{
register_taxonomy( 'linkonomy', 'link', array('hierarchical' => false, 'label' => __('Link Tags'), 'query_var' => false, 'rewrite' => false) ) ;
}}}
",bennebw
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
9378,Deprecate manage_category cap in favor of its object type's cap,,Taxonomy,2.7.1,normal,normal,Future Release,enhancement,new,,2009-03-23T10:51:17Z,2010-07-01T17:37:35Z,"I encountered a problem in WordPress 2.7.1 {{{ $wp_roles->remove_cap('editor', 'manage_links'); }}} doesn't remove that capability for the Editor role entirely, but it still displays the page ""link categories"", and you can perform actions on that page. This is because that page needs ""manage_categories"" instead of ""manage_links"".

I would propose to either require the manage_links capability for this page, or introduce a new capability (something as manage_link_categories for example).",mastermind
21950,Don't create shared terms,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,,2012-09-20T22:52:48Z,2013-01-15T17:04:02Z,"Step 1: Split shared terms: #5809

Step 2: Don't create new shared terms: this ticket.

Step 3: Profit.",scribu
21862,Don't display show_option_none in wp_dropdown_categories when categories exist,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,,2012-09-10T15:14:04Z,2012-09-10T15:16:48Z,"I can't find an application of having an extra entry for '''show_option_none''' select option if we have category listing. Is there any reason to keep it there, like for external filters? If so, that still conflicts with the second example below.

First off, it is invalid since there are some categories available. Second, having both '''show_option_none''' and '''show_option_all''' displays both entries.

Related to #21856 trying to list only visible terms.",nofearinc
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
18081,"Improve performance of taxonomy queries, avoid temporary tables",,Taxonomy,3.2,normal,normal,Future Release,enhancement,new,,2011-07-12T10:36:22Z,2011-09-15T08:48:27Z,"In various taxonomy queries ""IN ( value )"" is used even if there is only one value to check against. This is in some cases causing there creation of temporary db tables and bad performing queries. 

The attached patch will ensure that only when there are more than one values to be added a ""IN"" statement is used. Otherwise a "" = value"" statement is performed.
",tott
14162,Introduce WP_Term class,,Taxonomy,,normal,normal,Future Release,enhancement,new,,2010-06-30T23:58:57Z,2013-04-09T17:54:42Z,"In the current taxonomy API, you end up having to pass the taxonomy name over and over again.

I propose we have a WP_Term class to avoid that.

=== Example ===

Current:

{{{get_term_link( get_term_by( 'name', 'Term Name', 'taxname' ), 'taxname' )}}}

Proposed:

{{{get_term_by( 'name', 'Term Name', 'taxname' )->get_link()}}}

get_term_by() would return a WP_Term instance instead of a stdClass instance.

Besides get_link(), the WP_Term class could also have an update() method that would replace (or complement) wp_update_term().

Inspired by #14156.",scribu
18050,Label Most used taxonomies is impossible to customize on a new taxonomy,,Taxonomy,3.2,normal,normal,Awaiting Review,enhancement,new,,2011-07-09T13:37:01Z,2011-09-13T03:01:09Z,"The label in wp-admin/includes/meta-boxes.php doesn't allow to translate it in different languages when you create a new taxonomy. The attached patch resolve it adding the new label 'most_used'

",SGr33n
24386,Make _pad_term_counts work for non-post type objects and attachments,,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,,2013-05-22T18:23:31Z,2013-05-23T08:34:49Z,"If you register a hierarchical taxonomy against a non-post object (such as users), or attachments that aren't associated with another post, _{{{pad_term_counts}}} does bubkus, due to the INNER JOIN on {{{$wpdb->posts}}}, and the check for 'publish' status (which is relevant for attachment post types).

I'm suggesting an alternative approach would be to use $term->count, and eschew going back to the database altogether.",TomAuger
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
17848,"Not possible to add a file field to the ""add term"" form",,Taxonomy,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-06-19T23:35:22Z,2011-09-19T13:51:45Z,"The ""add term"" form now uses ajax. The downside is that it is not anymore possible to add an additional file field using a plug-in as it won't be sent over ajax.

The easy way to fix this is to use the already included jquery.form script for that form. That plugin will make the form submit into a hidden iframe if a file field is found inside the form.",DreadLox
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
15846,Posts list associated to a term_taxonomy_id,,Taxonomy,3.1,normal,normal,Future Release,enhancement,reopened,needs-docs,2010-12-16T15:38:55Z,2011-01-10T15:32:32Z,"It could be very useful to have in the core a function that retrieve the list of all the posts associated to a term id. I have written the follow one:

function posts_of_a_term_id($term_id, $limit){
	global $wpdb;
	
	$query = ""SELECT object_id FROM $wpdb->term_relationships WHERE term_taxonomy_id = $term_id ORDER BY object_id DESC LIMIT $limit"";
	$results = $wpdb->get_results($query);
						
	foreach($results as $result):
						
		$id = $result->object_id;
		query_posts('p='.$id.'');
		if ( have_posts() ) : 
			while ( have_posts() ) : the_post(); ?>
				<li><a href=""<?php the_permalink(); ?>""><?php the_title(); ?></a></li>
			<?php endwhile;
		endif;
		wp_reset_query();
							
	endforeach;
}",_DorsVenabili
22023,Remove UNIQUE for slug in wp_terms,,Taxonomy,2.3,normal,normal,Future Release,enhancement,new,,2012-09-27T20:23:10Z,2013-05-14T13:38:13Z,"To set us up for future changes to the taxonomy API, we should remove the UNIQUE key for 'slug' for wp_terms. Said future changes include:

 * Splitting shared terms on update (#5809)
 * Stop creating shared terms (#21950)
 * Forcibly split remaining shared terms
 * Merge wp_terms and wp_term_taxonomy (I can dream, right?)

The term_exists() check should prevent duplicate terms from ever being inserted (before, of course, we fix #5809 and #21950). But, this needs unit tests, particularly because there is a case where term_exists() breaks. See #17689, which blocks this ticket.",nacin
12929,Reserved names for taxonomies,,Taxonomy,,normal,normal,Future Release,enhancement,assigned,,2010-04-08T20:30:17Z,2013-01-16T17:42:20Z,"To prevent issues like #12917, register_taxonomy() should check a list of reserved names, before registering the taxonomy.",scribu
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
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
11576,The future of the 'uncategorized' category,,Taxonomy,2.9,normal,normal,Future Release,enhancement,assigned,,2009-12-23T14:32:42Z,2011-04-15T08:44:01Z,"Is there any plan for removing the 'Uncategorized' category, or at least removing its requirement?  Some users want the ability to only show the_category() when the post is part of a real category. Also, with the introduction of custom taxonomies in 2.9, not all hierarchical taxonomies will have a default term, so this flexibility needs to be introduced anyway.  

I'm curious why the default category was introduced in the first place?  Was it solely for permalink handling?

If attachment:ticket:10122:hierarchical_metaboxes-2.patch is accepted (specifically handling hierarchical taxonomies as int) the following just needs to be added above the checkbox list to allow deselecting of all terms from the taxonomy:

{{{
<input type=""hidden"" name=""tax_input[<?php echo $taxonomy?>]"" value="""" /> 
}}}
",prettyboymp
23635,get_objects_in_term - identify matching terms,,Taxonomy,3.5.1,normal,minor,Awaiting Review,enhancement,new,,2013-02-26T21:29:54Z,2013-02-26T21:29:54Z,"`get_objects_in_term` is great for viewing taxonomy relationships for non-posts. However the return value is too limited for certain use cases. For When fetching object_ids for multiple terms the return value doesn't inform as to the matching term.

For instance this query:

{{{
#!php
$object_ids = get_objects_in_term(array(55, 66, 77, 88, 99), ""my_custom_taxonomy""); 
}}}

Might return an array of object_ids as follows:

{{{
#!php
array(101, 202, 303, 404); 
}}}

However there's no way to tell '''which''' term a particular object_id matched. Did object 101 match term 77? Or maybe it was term 99? Or both?

I've created a modified version of `get_objects_in_term` which will addresses this issue. I'll submit a patch, but am wondering if there's another way to achieve this functionality.  ",leepowers
21760,get_term_by() calls are not cached,,Taxonomy,2.3,normal,normal,Future Release,enhancement,new,needs-unit-tests,2012-08-31T21:26:22Z,2013-05-03T16:00:39Z,"{{{get_term()}}} is the simplest way to retrieve one term, but it requires {{{term_id}}} and {{{taxonomy}}}. Because of this, terms are cached with {{{term_id}}} as key and {{{$taxonomy}}} as bucket. As a result, you can't easily grab a term by slug, unless you use {{{get_term_by( 'slug' )}}}. {{{get_term_by( 'slug' )}}} and {{{get_term_by( 'name' )}}} don't even have a query cache, so they go to the database every time. Because you can't get a term by {{{slug}}} without hitting the db, every place you want to get a term by {{{slug}}}: you first have to transform it into a {{{term_id}}} where it will then be cached. This is inefficient because the user may query by {{{slug}}} constantly and never by {{{term_id}}}.",wonderboymusic
15626,get_terms bug: pad_counts doesn't work if you specify parent,,Taxonomy,2.8,normal,normal,Future Release,enhancement,new,dev-feedback,2010-12-01T13:40:42Z,2012-12-21T21:21:56Z,"I'm not sure if this is related to #13176 or not.

Anyway, to explain the bug with an example: 

Let's say you want to retrieve, via get_terms, a list of the top level categories only (by setting parent=0), but that you want the counts to include any posts assigned to subcategories too (pad_counts=1).

$categories=get_terms('category', 'pad_counts=1&parent=0');

This doesn't work: as soon as you specify parent=, it stops including the subcategory count within the parent categories. A bug, surely?

I've traced the cause to line 842 of taxonomy.php, where it checks 
if ('' !== $args['parent'])
and if so, sets pad_counts back to 0.

Why is that check needed at all?",yeswework
8214,get_terms should support term descriptions,,Taxonomy,,normal,normal,Future Release,enhancement,new,dev-feedback,2008-11-14T18:57:40Z,2011-05-14T22:32:11Z,"Right now you can't use `get_terms` to get terms based on description.  I think it should treat description just like name, so I added a `description__like` argument that works just like the `name__like` argument.  In my case, I wanted only terms that had a description, so I called it like this:
{{{
$args = array('description__like' => '_');
get_terms('post_tag', $args);
}}}",AaronCampbell
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
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
17320,has_post_format() should accept an array,,Taxonomy,3.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-05-04T13:06:32Z,2012-12-16T18:13:14Z,"{{{has_category()}}}, {{{has_tag()}}}, and {{{has_term()}}} accept an array as the first argument and return {{{true}}} if the post has any of the given terms. {{{has_post_format()}}} also uses {{{has_term()}}} in the background, but it calls {{{sanitize_key()}}} and adds {{{'post-format-'}}} to the passed format, which will fail when you pass an array.

For consistency, it would be better if {{{has_post_format()}}} would also accept an array.",janfabry
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
20930,register_taxonomy show_in_menu option,,Taxonomy,,normal,normal,Future Release,enhancement,new,has-patch,2012-06-12T23:07:30Z,2013-06-06T02:19:34Z,"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
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
7859,weighted category cloud and tag cloud instead of lists to choose categories and tags in the backend,,Taxonomy,,normal,minor,Future Release,enhancement,new,,2008-10-09T19:06:12Z,2009-06-13T02:29:49Z,"Hi,

choosing categories is still annoying if you have a couple of them. Scrolling and checking is needed. Tags are simpler to work with, but I think it would be extremely handy to use a category cloud / tag cloud to choose the categories/tags for a post/page. The category/tag cloud could be displayed in the metabox or, preferably, for space reasons, in a thickbox.

I used milestone 2.7 as there is so much admin work going on anyway and I'm not sure if the feature list is already definitive for the release.",youngmicroserf
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
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
13258,wp_dropdown_categories() uses $term->id instead of $term->name for taxonomies that are not categories,,Taxonomy,3.0,normal,normal,Future Release,enhancement,new,dev-feedback,2010-05-05T05:41:43Z,2013-05-24T15:56:57Z,"I was excited to discover that wp_dropdown_categories() had been extended to support custom taxonomies but when I tried to implement it, the navigation failed because it always uses the $term->ID in the value attribute of the option tag for each term.

{{{
<option class=""level-0"" value=""13"">A Category</option>
}}}

This makes sense because WordPress category requests uses the term id: /?cat=13

But in the case of tags, we get this code:

{{{
<option class=""level-0"" value=""3"">My Tag</option>
}}}

which pulls a 404 when you request: /?tag=3",mfields
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-06-12T04:57:55Z,"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
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
14877,Ability to create exclusive custom taxonomies,nacin,Taxonomy,,normal,minor,Future Release,feature request,reviewing,dev-feedback,2010-09-15T14:08:25Z,2013-05-21T14:20:30Z,"Custom taxonomies should have the option of toggling exclusivity, meaning the user should only be able to select one term at a time.

Currently, developers wishing to implement an exclusive custom taxonomy (and thus would prefer radio buttons rather than check boxes on the add/edit post pages) must remove the existing taxonomy meta box completely and build their own, simply to change the input type. This not only duplicates code and development effort, but has the potential to create security vulnerabilities when plugin developers stray from best practices, for example, when recreating the AJAX add term functionality.

Exclusive taxonomies are not uncommon in every day life and are even more common when one thinks about typical custom post type implementations (e.g., students->school year, employee->department, car->color, ice cream->flavor).

While the best implementation is uncertain, I propose the function register_taxonomy accept an optional 'exclusive' argument (similar to 'hierarchical') that would change the check boxes within the taxonomy meta box to radio buttons and would handle the POST accordingly.",benbalter
14717,Add option to wp_list_categories (and underlying get_terms or whatever) to restrict by post_type.,,Taxonomy,3.0.1,normal,normal,Future Release,feature request,new,,2010-08-27T22:16:56Z,2010-10-28T10:27:53Z,"This is so that when someone uses wp_list_categories they can stop categories from showing up that only have elements from custom post types, and thereby creates links to a category archive that contains no posts because everything in the category has a post_type other than post.",Finster
20735,Adding tags to form element of categories.,,Taxonomy,3.3.2,normal,normal,Awaiting Review,feature request,new,,2012-05-23T13:15:59Z,2012-05-23T13:15:59Z,"Just like the post form in posts you can use the hook of ""post_edit_form_tag"" to add new tags to the form element of creating or editing new post.

but there is no hook for categories form to do that I think adding new element will be helpful feature.

Note: after some debugging I found that the hook can be add in:

#File: your wordpress directory/wp-admin/edit-tag-form.php

#Line: 33

# Find : <form name=""edittag"" id=""edittag"" method=""post"" action=""edit-tags.php"" class=""validate"">

# Relpace: <form name=""edittag"" id=""edittag"" method=""post"" action=""edit-tags.php"" class=""validate""<?php do_action('categoery_edit_form_tag'); ?>>

Thanks",m.ibrahim
16718,Deprecate in_category in favor of has_category,,Taxonomy,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2011-03-01T17:22:14Z,2011-04-14T02:32:57Z,"#12526 introduced has_category. There was some patches there which did and did not deprecate in_category.

End result is that they're now both in category-template.php, doing the exact same thing (serving as a wrapper to has_term).

I think we need some naming consistency here. Deprecate one or the other of them in 3.2, perhaps.
",Otto42
5034,Impossible to have duplicate category slugs with different parents,ryan,Taxonomy,2.3,high,normal,Future Release,feature request,new,dev-feedback,2007-09-21T19:29:20Z,2013-02-05T04:23:01Z,"I'm using Wordpress as a CMS tool where categories are used as macro level grouping.

Windows XP -> Utilities
Windows Vista -> Utilities

This is no longer possible with WP 2.3, which ignores parent category when testing whether a slug is unique.",snakefoot
24305,Link of  Posts count column in Term List Table (single taxonomy for more custom post types),,Taxonomy,3.5.1,normal,normal,Awaiting Review,feature request,new,,2013-05-10T15:58:09Z,2013-05-10T17:10:31Z,"Recently the link of the Posts column in the Term List Table is a number which contains the number of the posts of a certain category, and links to the Posts List Table (edit page).

When the taxonomy is attached to more than one custom post types, the Posts List Table cannot work. I would like to ask for a (core) list table based on taxonomy instead of post type.",namarpi
14901,"Make ""Uncategorized"" transparent",,Taxonomy,,normal,trivial,Future Release,feature request,new,,2010-09-19T23:22:39Z,2011-09-28T21:16:33Z,"When posts are created, they are placed into the Uncategorized category by default if no other category is specified.  This causes problems when re-categorizing later on because you have to both add the new category and remove the ""uncategorized"" category at the same time.

""Uncategorized"" should be automatically removed when marking categories on a post.  

""Uncategorized"" should not appear in the list of categories on the ""Categories"" page but in a separate section below reading ""You currently have XX uncategorized posts.""

Listing Uncategorized in the categories table presents the illusion that it is a separate category by itself that can be modified and removed - it can't, so it shouldn't be listed there.",ericmann
7740,Merge Tags,,Taxonomy,2.7,normal,normal,Future Release,feature request,new,dev-feedback,2008-09-14T16:56:07Z,2011-10-18T23:46:10Z,"As mentioned in [http://wordpress.org/support/topic/163558 a support thread], tags can get cluttered over time with many different tags meaning basically the same thing. To clean up tagging the ability to merge tags would be a life saver.

The functionality I had in mind was being able to select two or more tags in edit-tags.php and select 'Merge' from the 'Actions' dropdown. When you click 'Apply' a lightbox would open with the following:

  '''What should become the primary tag?'''[[BR]]
  [Textfield][[BR]]
  ''The name is how the tag appears on your site.''
  
  '''What should become the primary tag slug?'''[[BR]]
  [Textfield][[BR]]
  ''The “slug” is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.''
  
  '''Which slugs should continue to point to the new primary tag?'''[[BR]]
  [Textarea automatically filled with the old slugs][[BR]]
  ''One slug per line.''
  
  '''Save''' | '''Cancel'''

The last textarea allows old slugs to still point to the new primary tag - meaning any old URL's will still work.

=== -~- Example -~-~-~-~-~-~-~-~ ===

I've got the following tags which all mean the same thing:

  TV, the box, telly

I select them all in edit-tags.php, select 'Merge' and 'Apply'. In the popup box I choose 'television' as the primary tag, 'television' as the slug, and list the old tags in the textarea.

I now have a tag called 'television' which has ""television, TV, the box, telly"" all pointing to it, so my old URL's still work. All of my posts which use the old tags have now magically swapped to using 'television'.",hempsworth
23747,Ordering Categories,,Taxonomy,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2013-03-12T10:14:05Z,2013-03-12T11:17:06Z,There should be provision to order categories. This will open up many possibilities to use with CustomPost types.,valllabh
9547,Taxonomy - interesting 'unused' term_order column in table term_relationships.,ryan,Taxonomy,2.8,high,normal,Future Release,feature request,reopened,needs-unit-tests,2009-04-16T15:19:42Z,2013-05-14T14:06:03Z,"During development of plugin [http://wordpress.org/extend/plugins/xili-language/ xili-language], and to sort term by term list of languages in a taxonomy, I discover unused column '''term_order''' in ''term_relationships'' table and lack of functions in core about this column. Like medias in post, here the user can define languages list with first, second, third,... languages for his website (and xml header). Taxonomy tools are here very powerful without adding tables or annoying coding.

([http://plugins.trac.wordpress.org/browser/xili-language/tags/0.9.8.2/xili-language.php  see code here line 1309-1370]). 

Before to complete these very basic functions,…

Is it forecast to have more basic / generic functions using '''term_order''' in taxonomy.php ?

[http://core.trac.wordpress.org/ticket/9546 Related ticket]",michelwppi
13816,There should be built-in index pages for taxonomies,,Taxonomy,,normal,normal,Future Release,feature request,new,,2010-06-10T12:20:29Z,2013-06-18T04:03:34Z,"By default, if you enable 'pretty' permalinks, you get URLs like this for categories and tags: /category/slug,   /tag/slug.  The same pattern is used when adding custom taxonomy types.

These URLs often suggest to people that it should be possible to go 'up' one level, and access index pages at /category and /tag which list all of the available categories or tags (or maybe just the top x most popular ones for tags).

I'd suggest that we add a new template type of is_archive_index() which uses, in order of preference, taxononmyname-index.php (eg category-index.php), archive-index.php.

Within these templates, the 'loop' should return taxonomy items rather than posts.

This is all possible already using custom templates and get_terms(), but it'd be handy if it was built-in.
",frankieroberto
12629,function to remove custom taxonomies and all their terms,,Taxonomy,,normal,normal,Future Release,feature request,assigned,,2010-03-17T22:02:58Z,2012-09-11T10:52:31Z,"I think there should be an easy way for plugins that create custom taxonomies to clean up after themselves on deactivation. I went over taxonomy.php pretty thoroughly and didn't find anything that does this directly.

The function below removes the custom taxonomies and terms from the various tables while leaving the built-in taxonomies alone.

{{{
<php
/*
assuming taxonomies for actor, director, and genre have been created on plugin activation...
*/

function remove_taxonomy($taxonomy) {
	if (!$taxonomy->_builtin) {
		global $wp_taxonomies;
		$terms = get_terms($taxonomy); 
		foreach ($terms as $term) {
			wp_delete_term( $term->term_id, $taxonomy );
		}
		unset($wp_taxonomies[$taxonomy]);
	}
}

function deactivate_custom_taxes() {
	remove_taxonomy('genre');
	remove_taxonomy('actor');
	remove_taxonomy('director');
	remove_taxonomy('post_tag');  // this will fail silently
	// do we need to flush the rewrite rules? 
	$GLOBALS['wp_rewrite']->flush_rules();
}

register_deactivation_hook( __FILE__, 'deactivate_custom_taxes' );
?>
}}}

If you like the idea, the remove_taxonomy() function could go into taxonomy.php, and then we'd document the deactivation procedure.",sillybean
18106,get_terms of posts in a specific post_type,,Taxonomy,,normal,normal,Awaiting Review,feature request,new,,2011-07-14T05:25:49Z,2012-07-04T18:39:45Z,"I have searched most everywhere to find how to use get_terms for a specific post type, and have only found this article: http://wordpress.stackexchange.com/questions/14331/get-terms-by-taxonomy-and-post-type However this is doing a query for posts and getting the terms for those posts rather than doing a straight SQL statement, so it's not as efficient or ideal.

Adding an additional argument for additional where statements or a argument to specific a post_type, are two solutions I can imagine.

",braydonf
23801,Audio Shortcode: MP3s Display above plain text.,,Shortcodes,trunk,normal,normal,3.6,defect (bug),new,,2013-03-17T03:40:30Z,2013-05-16T22:45:40Z,"MP3's render above text and inline elements that have been entered immediately before.

To reproduce, insert the following content using the HTML editor:

{{{
Just some text up here ...
[audio mp3=""http://wp-content/uploads/2013/03/mp3-hello.mp3""][/audio]
}}}

Something similar to the following should be rendered on the front-end:

{{{
<div style=""width: 400px; height: 30px;"" id=""mep_1"" class=""mejs-container svg wp-audio-shortcode mejs-audio"">...</div>
<p>Just some text up here ...<br>
</p>
}}}

I've tested similar content using both OGG and WAV file types. These files are not effected by the bug. Only MP3s seem to render above paragraphs.

This only seems to occur with the shortcode, I've tested a url on it's own line and it displays correctly:

{{{
Just some text up here ...
http://wp-content/uploads/2013/03/mp3-hello.mp3
}}}
",mfields
15694,"Caption Shortcode I/O Intolerant of ""]"" Char",,Shortcodes,3.0.1,normal,normal,Future Release,defect (bug),new,,2010-12-05T20:54:31Z,2012-02-27T01:08:01Z,"I've discovered that the ""]"" character can only be used in the media library itself.  If I try to insert an image into a post using a caption like ""[Test Caption]"" then the post editor inserts three double quotes into the HTML attribute, invalidating the page markup.  D:

{{{
[caption id=""attachment_3"" align=""alignnone"" width=""300"" caption=""[Test Caption""]""]
}}}

In testing the output end of things, if I remove the extra double quote directly in MySQL, then the caption is not rendered at all on the post.  This suggests there is more than one error in the code that is causing this problem.  I was able to reproduce these symptoms on both versions I tested, 2.9.2 and 3.0.1.",miqrogroove
14380,Caption shortcode inserts inline style forcing width of containing div,nacin*,Shortcodes,,normal,minor,Future Release,defect (bug),accepted,dev-feedback,2010-07-21T19:45:21Z,2013-01-31T22:03:52Z,"This is related to #9066.

The problem is that the image caption shortcode inserts an inline style on the containing div which sets the width to an arbitrary value which cannot be overriden by the theme's stylesheet.

The proposed solution is to replace the shortcode function with a custom one which creates the markup without the inline style, but this is undesirable. It adds unnecessary complexity for beginners and is just generally annoying and shouldn't be necessary.

Creating an inline style violates web standards and contradicts the  philosophy behind a theme-based architecture.

The inline style on the div should be removed so that theme developers can style the caption like they would any other element, without having to resort to inconvenient workarounds.",iandunn
19639,"Enhancement: request: filter support before shortcodes are parsed or convert &quot; into """,,Shortcodes,3.3,normal,normal,Awaiting Review,defect (bug),new,,2011-12-21T17:01:41Z,2011-12-22T00:39:34Z,"My team uses Windows Live Writer to do all posting, but we constantly have trouble using shortcodes because WLW, being as awesome as it is in other aspects, keeps converting the double quotes in shortcodes to
{{{
&quot;
}}}
This breaks shortcode attributes, and while we're working around it using single quotes, we can't use shortcode attribute data that contains single quotes then.

So, is there a good fix for this?

One workaround would be to have a filter that runs before shortcodes are parsed that converts &quot; back to "". However, in the shortcode API, I found no filters in use at all, so that's out without modifying WP source.

Alternatively, the API could just pre-process the data and take care of this case, which should be solved in WP core yet again.

Is there some way to resolve this without the above modifications to core?

Thanks.",archon810
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
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
23694,Shortcode attributes mess up html strings,,Shortcodes,3.5.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-03-05T15:15:48Z,2013-03-07T03:42:37Z,"{{{
[shortcode attribute=""<b>some HTML</b>""/]
}}}

produces:

{{{
<b>some HTML</b> <p>
}}}",prometh
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
12061,Treatment of shortcodes by wpautop is incomplete,,Shortcodes,,normal,normal,Future Release,defect (bug),new,,2010-01-28T02:27:18Z,2013-01-19T08:36:17Z,"There are a number of issues that arise when shortcodes are embedded in a block of content that is filtered by wpautop.  After studying the issue, I have come to the conclusion that the underlying issue is that a shortcode can result in a block-level HTML element or an inline snippet of HTML.  Neither wpautop nor shortcode_unautop have the information necessary to know what the intended to be block-level or text-level, which results in <br /> tags to appear in places where they were not intended and causes invalid markup when paragraphs are not closed properly.

1) shorcodes when registered need to state the display type of the html that they return (inline or block).  In addition, the javascript version of filters need to be provided with the same data.

2) An alternate mechanism for handling shortcodes prior to wpautop needs to be implemented.   To maintain a separation between wpautop and shortcodes, temporarily replacing block-level shortcodes with unique tokens, running wpautop, running wpautop on the content of the shortcode (since this is a separate filter, plugins can disable it on a per shortcode basis), and then replacing the token with shortcodes post-wpautop.

As WP and plugin authors use shortcodes more and more, I think this is an issue that should not be left to the wayside.  Shortcodes especially tied to tinymce buttons make working with WordPress easier for the average content producer.  

",gcorne
18776,balanceTags should ignore shortcodes & their content,,Shortcodes,3.2.1,normal,normal,Future Release,defect (bug),new,,2011-09-26T11:26:10Z,2012-04-27T19:44:20Z,"Take following input:

{{{
something [myshortcode]<b>[/myshortcode]
}}}

after `balanceTags()` it becomes:

{{{
something [myshortcode]<b>[/myshortcode]</b>
}}}

Well, this is not what the shortcode creator probably wanted.

'''Proposed fixes:'''

If you are feeling lazy: Convert `[.*]` to `<$1>` and since balanceTags handles XML it should work, afterwards convert appropriate `<>` back to `[]`. Though this does not give a shortcode creator chance to disallow balancing tags inside it's content which is bad.

Better fix is to allow shortcode creators to decide wether their contents should be balanced:

1. `balanceTags()` should ignore all shortcodes and their contents.
2. Parse all shortcodes in content and on each shortcode call apply filter on so that shortcode creator can hook (if sees it appropriate) on to that. Shortcode creator then can call `balanceTags()` in his filter of that shortcode in order to run `balanceTags()` ''contents of shortcode'' separately if wanted.",ciantic
21158,different result when shortcode atribute without value,,Shortcodes,3.4,normal,normal,Awaiting Review,defect (bug),new,,2012-07-04T19:11:44Z,2012-07-04T19:11:44Z,"imagine those two shortcodes

{{{
[shortcode attribute]
[shortcode attribute=value]
}}}

IMO they should have the same result, just the second should have some value to the attribute and the first should have NULL or false

But if you do

{{{
add_shortcode( 'shortcode', 'my_shortcode' );
function my_shortcode( $atts ) { print_r ($atts); }
}}}

the first shortcode results in

{{{
array (
  0 => 'attribute',
)
}}}

while the second in 

{{{
array (
  'attribute' => 'value',
)
}}}

I'm not sure, maybe it is intentional, i have not found any description, what should shortcode attribute without value do. But imo it should work as i have described as it is the only way how it could clear some predefined value (the only other way is to set it to empty string, which may not always be the same as NULL or FALSE).",thomask
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
22272,shortcode_unautop() Doesn't Account for Opening/Closing Shortcode tags each Being on Their Own Line,,Shortcodes,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-10-24T17:54:22Z,2012-10-24T17:54:22Z,"The shortcode_unautop function does not appear to account for when the opening and closing shortcode tags are put on separate lines from the paragraph they are surrounding. 


For example: the following is after wpautop() adds the paragraph tags.

{{{
<p>[cool_shortcode]</p>
<p>A paragraph about something you should know.</p><p>[/cool_shortcode]</p>
}}}

I would expect that shortcode_unautop would remove the paragraph tags from around both the opening and the closing shortcode tags. Instead it treats it all as if the entire thing were in one paragraph. Resulting in the following code being output. 

{{{
[cool_shortcode]</p>
<p>A paragraph about something you should know.</p><p>[/cool_shortcode]
}}}
",bonnerl
22127,strange behaviour with shortcode with the_content filter,,Shortcodes,3.4.2,normal,normal,Awaiting Review,defect (bug),new,,2012-10-08T11:04:01Z,2012-10-08T12:03:34Z,"let's say i have installed any lightbox/thickbox/... plugin (same behaviour with 'auto thickbox plus', 'lightview plus', 'jquery lightbox', 'fancybox plus', 'wp jquery lightbox' ...) and i have a shortcode, which uses the_content filter, e.g.

{{{
function test_shortcode( $atts, $content = null ) {
   return apply_filters('the_content', $content);
}
add_shortcode( 'test', 'test_shortcode' );
}}}

then if i use [test] shortcode anywhere in the post, the lightbox does not work. e.g. 

{{{
[test]test[/test]

[caption ... /] // this is standard image
}}}

if the shortcode do not have the_content filter, or the shortcode is not use anywhere in the post, or i put the 'lightbox' etc. class to [a] directly than it works as a charm.

There may be a bug in the lightbox plugins, but it is strange, that it is in ALL lightbox plugins.

But even in that case for me it is very strange, that something what is INSIDE the shortcode affects OUTSIDE of the shortcode. That's why i think it is a bug of core.",thomask
24085,wpautop filter and shortcodes,,Shortcodes,trunk,normal,normal,Awaiting Review,defect (bug),new,,2013-04-15T06:41:15Z,2013-05-17T05:12:47Z,"I've been told here that this has been fixed in WP3.6 but it wasn't. I just installed WP3.6 Beta 1 and still doing this:

{{{
[shortcode]
<img src="""">
<img src="""">
<img src="""">
[/shortcode]
}}}

produces this:

{{{
<div class=""carousel"">
<p></p>
<img src="""">
<img src="""">
<img src="""">
<p></p>
</div>
}}}

which is highly unwanted because I have to strip <p> tags manually in order to make carousel of images work.",Looimaster
12368,Allow setting limit in do_shortcode(),,Shortcodes,,normal,normal,Future Release,enhancement,new,reporter-feedback,2010-02-24T21:39:13Z,2010-03-08T09:39:10Z,"Sometimes it is useful to limit the number of shortcode conversion occuring in do_shortcode(), such as preventing overuse of shortcode in untrusted content, or whatever reason. This patch adds a new int parameter to do_shortcode(), which is used as the $limit parameter in preg_replace_callback().",abelcheung
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
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
14481,Shortcode Enhancements,,Shortcodes,3.0,normal,normal,Future Release,enhancement,new,needs-unit-tests,2010-07-30T22:37:23Z,2010-10-31T13:34:44Z,"Somewhat of a copy of a post to wp-hackers: I wrote my own implementation of shortcodes. It does things a bit differently, has nested evaluation, and allows self-nesting. Since there are some significant differences to the existing implementation,

A lot of the changes are borrowed from definitions in the HTML specification (particularly name and attribute matching). The following are the comments at the top of my shortcode file. I tried to keep track of all the differences (and questions) there.

== From Test Cases ==

(http://svn.automattic.com/wordpress-tests/wp-testcase/test_shortcode.php)
{{{
Shortcode Statuses (to implement, or not to implement?)
        enabled = the shortcode works as normal (default)
        strip = the shortcode will be parsed and removed.  e.g.
'[shortcode foo=""bar""]' produces ''.  '[shortcode]foo[/shortcode]'
produces 'foo'.
        faux = the shortcode will be abbreviated.  e.g. '[shortcode
foo=""bar""]' products '[shortcode]'.  '[shortocde]foo[/shortcode]'
produces '[shortcode]'
        disabled = the shortcode is not parsed at all.  e.g.
'[shortcode foo=""bar""]' products '[shortcode foo=""bar""]'
}}}

== Major Differences/Improvements ==

I. Addressing http://codex.wordpress.org/Shortcode_API#Limitations

 1. You can nest any tag at any depth regardless of ancestors (#10702)

 2. Tag and attribute names may match: `/[A-Za-z][-A-Za-z0-9_:.]*//*` (trialing /* because that comment ends), with case-insensitive interpretation

 3. Interpretation doesn't get tripped up by things like hyphens

== II. Addressing Ticket #12760, ==

 1. Changed from fix in #6518. Reasoning: balancing double-square-brackets can have misleading results with nesting

 2. Shortcodes escapable by using `[[`, `]]`

 3. `]]` is escaped ""right to left"", so `[shortcode]]]` would evaluate to `result]`

 4. '[[' is escaped left to right `[[[shortcode]]]` => `[result]`

== III. Enhancements ==

 1. Only matches valid shortcode for registered hooks, everything else will appear as text

 2. Can register multiple hooks to single shortcode, uses priority (default: 10)

== IV. Conflicting Design Changes ==

 1. Quoted literals are escaped by entities rather than cslashes

 2. Inline (self-closing) shortcodes get passed content to accomodate multiple callbacks

 3. No equivalent to shortcode_parse_atts function (Not marked private in function reference, but not documented in shortcode API page)

 4. Boolean attributes take the place of positional attributes `[foo bar]` gets attributes `array('bar' => 'bar')` instead of `array('0' => 'bar')`

 5. Disallows attribute and tag names that don't match `/[A-Za-z][-A-Za-z0-9_:.]*/`

 6. Disallows unquoted attribute values (also boolean attributes), unless they match `/[-A-Za-z0-9_:.]+/`

== Basic Interpretation Method ==

 1. If an open tag is encountered, it is added to the stack

 2. If a close tag is encountered and there is no matching open tag on the stack the close tag is ignored

 3. If a close tag is encountered and there is a matching open tag on the stack all opened tags on the stack before the matched tag will be implicitly self-closed

 4. If text or an inline tag is encountered, it will be evaluated to its parent's content immediately

 5. If tags are not closed by the end of the interpretation, they will be implicitly self-closed

== Issues ==

 1. Haven't written new unit tests to reflect new functionality added, functionality differences

 2. Documentation is not as good (though I hope most of the code is self-explanatory)

 3. Not 100% backwards compatible",deadowl
23786,Shortcodes working inside HTML and PHP comments,,Shortcodes,,normal,minor,Awaiting Review,enhancement,new,,2013-03-15T11:59:25Z,2013-03-15T14:06:02Z,"I think that shortcodes should not work inside html or php comments. The following comment inserted in the Wordpress editor shows the images gallery, breaks the layout of the theme and shows after the gallery these characters -->

<!--[gallery ids=""4585,4515,4587""] -->

If I use do_shortcode() in a plugin with a shortcode inside a php comments, it's the same as it is with html comments.",javitxu123
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
19968,Use named regular expression groups to simplify shortcodes code,,Shortcodes,3.3.1,normal,minor,Awaiting Review,enhancement,new,,2012-02-04T18:03:28Z,2012-02-06T08:21:33Z,"Currently in {{{get_shortcode_regex()}}} in [source:trunk/wp-includes/shortcodes.php] you are welcomed by:
{{{
// WARNING! Do not change this regex without changing do_shortcode_tag() and strip_shortcode_tag()
}}}

because these functions use the regular expression match from the shortcode parser.

Instead, we could use named regex groups: {{{(?P<year>\d\d\d\d)}}} or {{{(?'year')\d\d\d\d}}} which appear indexed by name in the matches array: {{{$matches['year']}}} instead of {{{matches[1]}}}.

Benefits:

0. Future-proof code. Won't rely on indices, but on names, which we can control. Now, if we want to add a group we will have to offset all the indices, scattered all over the place.

1. Less ugly and unreadable code like:

{{{
if (!empty($m[1]))
    $atts[strtolower($m[1])] = stripcslashes($m[2]);
elseif (!empty($m[3]))
    $atts[strtolower($m[3])] = stripcslashes($m[4]);
}}}",nbachiyski
20659,Document available shortcodes in eg. new post page,,Shortcodes,,normal,normal,Awaiting Review,feature request,new,,2012-05-11T14:40:28Z,2012-05-22T12:40:35Z,"It would be useful if a plugin defining shortcodes also could describe the usecase for the shortcode and the available attributes and the usecases for those attributes in a way that could be exposed in the interface on eg. the new post page.

One could take inspiration from eg. the Drupal Token module which has a token_list() hook that a Drupal module uses to describe every token it describes so that they can be presented to the user in the interface.

Something like:

{{{
add_shortcode_description('shortcodename')
}}}

That returns something like this would be nice:

{{{
array(
  'description' => 'This is used to do foo',
  'attr' => array(
    'bar' => 'A text that will be presented as bar'
  ),
);
}}}",voxpelli
12982,Shortcodes don't allow shortcodes in attributes,,Shortcodes,3.0,normal,normal,Future Release,feature request,new,needs-unit-tests,2010-04-12T22:31:17Z,2010-04-15T22:16:02Z,"I think that shortcodes should work when used inside attributes of other shortcodes, just like they can work inside the ""$content"" of a shortcode.

Some people says that that isn't supposed to work, but theoretically it is supposed to work when using the ""do_shortcode"" function. It don't work because:

1) ""do_shortcode"" is context free, which it's actually fine by its fastness, although it don't allow stuff like inserting a shortcode inside the content of itself

2) The shortcode regex stops with the first occurrence of a ] in a shortcode, so in this:

{{{[foo bar=""[baz /]""]content[/foo]}}}


it ""outputs"":


{{{[foo bar=""[baz /]}}}


and {{{""]content[/foo]}}} is ignored.

I'm not programmer but I tried to fix it by changing the shortcode regex so it allow anything between quotes or brackets inside the first group of brackets. It sort of works, but also mess the handling of quotes in the rest of the shortcode, so I think something more advanced have to be done to make it work. 

This is somewhat related to another shortcode tickets, but none of them addresses nor solves this specifically.",Atoon
24293,$allowedposttags to allow value for <li>,,Security,,normal,normal,3.6,defect (bug),new,commit,2013-05-09T01:59:55Z,2013-05-24T20:28:41Z,"HTML 5 allowed the `value` attribute in `<li>` elements for use with `ol`s (e.g. setting `<ol><li value=""31"">` would result in that item of the `ol` rendering as 31.

$allowedposttags strips that out currently, as that's not allowed.

Submitting a patch to allow the value attribute.",kraftbj
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
10980,DoS in wp-trackbacks,ryan,Security,,normal,normal,Future Release,defect (bug),reopened,,2009-10-19T19:25:17Z,2009-10-21T15:42:30Z,"The exploit: http://codes.zerial.org/php/wp-trackbacks_dos.phps

Execution:

$ while /bin/true; do php test.php http://target.bom/wordpress; done
hit!
hit!
hit!
hit!
hit!
hit!
hit!
hit!
hit!
hit!

Notice: fputs(): send of 8192 bytes failed with errno=11 Resource
temporarily unavailable

down!!

Load average: 22.07, 15.18, 8.58 (on target server)

",gomex
16822,FORCE_SSL_LOGIN causes wp-login.php to have an incorrect https link,jakub.tyrcha*,Security,3.1,normal,normal,Awaiting Review,defect (bug),accepted,,2011-03-10T16:21:25Z,2011-09-10T01:20:12Z,"In this bug, the WordPress logo on the login screen incorrectly links to an https URL. It is easy to reproduce.

First, define('FORCE_SSL_LOGIN', true) in wp-config.php. Then make sure you are logged out of WordPress. (Note: I am running multisite - I don't know if this matters or not.)

1. Visit /wp-login.php. Fill in WRONG credentials (misspell your password) and click the Submit button.
2. wp-login.php redisplays as expected, this time with an https URL.
3. The WordPress logo on the form now links to https://your.site.com. If you click it, you are visiting your site over SSL.

This should not happen. The WordPress logo (and any other links on the login page) should render http URLs.",dbvista
10267,Login form SSL is confusing,ryan,Security,,normal,normal,Future Release,defect (bug),new,,2009-06-25T10:12:48Z,2009-11-24T15:56:01Z,"With ssl_admin off, and ssl_login on, the login form sends a secure POST request. But end-users can be confused into thinking that they're about to send a non-secure post unless they view the page's source code.

The attached patch enforces SSL on the form as well, to avoid this confusion.

Brought this up in IRC, and it gets +1 from Viper007Bond and DD32 as well.",Denis-de-Bernardy
4137,Pingback Denial of Service possibility,,Security,1.5,low,normal,Awaiting Review,defect (bug),reviewing,,2007-04-11T19:41:51Z,2013-02-01T02:37:17Z,"The pingback feature of Wordpress (2.1.3) allows DDOS attacks either against the server hosting wordpress or against a third one.

When a client sends a pingback, wordpress calls ""wp_remote_fopen"" to download the referring URL. On servers having ""allow_url_fopen"" activated, this function will try to download the /whole/ URL without any timeout or size limit. (except those set in php.ini, which will usually lead to a ~8MB download)

So if you post ~100 xmlrpc requests referring to a /huge/ file, every server meeting those prerequisites should effectively be down (for a while). You should at least be able to generate lots of traffic.

On the other hand, if you google for blogs and post the same URL to each of 'em, the target server should be DDOSed.

I suggest allowing pingbacks only if the connection was opened from the host mentioned in the source URL.

I'll attach a demo exploit (I didn't test it for the entered URL; it worked for a local installation.)",foobarwp12
11813,Post password stored as plaintext,ryan,Security,2.9.1,normal,normal,Future Release,defect (bug),new,,2010-01-07T17:33:10Z,2012-09-17T15:21:04Z,"When a user specifies a password for a protected post it's stored as plaintext in the database.  Considering the rate at which people recycle personal passwords, does this open a user's site to potential security risks?  

While not necessarily our responsibility, this would raise issues if they use the same password for a login and for their protected posts.",ericmann
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
16483,Visibility: password-protected exposes multiple pages,,Security,3.0.4,normal,minor,Future Release,defect (bug),new,dev-feedback,2011-02-07T19:02:15Z,2013-03-18T19:47:52Z,"1. password protect a page ('protected') with a password
2. password protect another page ('thistoo') with the SAME password
3. visit 'protected' and enter the password. Page is visible
4. visit 'thistoo'; expected: prompt for password. What happens: Page is visible

Regardless of whether someone with a password has the right to try it in as many pages as they want (and would therefore successfully see the page if the passwords were the same), the user should still be prompted on a page-by-page basis. Global authentication to multiple pages is possible with user accounts and roles. It should not be possible with visibility: password-protected pages.",monkeyhouse
13051,admin_url() and site_url() shouldn't need esc_url(),ryan,Security,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-04-19T16:57:13Z,2010-11-13T03:09:47Z,"I noticed that the 3.0 codeline includes the addition of esc_url() around admin_url() like:

esc_url(admin_url());

I believe that admin_url() and site_url() should be ""safe"" functions to use and should not need escaping. Perhaps they should call esc_url() internally?

I cannot think of a viable reason to allow unsafe results from admin_url() and site_url(), though perhaps there are some internationalization edge cases that I'm not aware of.

If you really need raw access to an unsafe value in wp_options, you can use get_option() to get to it.

Another issue to consider here is input validation and stripping before saving to these fields.

If this is approved in principle, I'd be happy to produce a diff against the current code base.

I think this is very important to address before 3.0 is released as it has a significant impact on theme and plugin developers.",alexkingorg
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
9207,redirect_to wp-admin Should Force SSL If FORCE_SSL_ADMIN is enabled,hakre*,Security,2.9,normal,normal,Future Release,defect (bug),accepted,reporter-feedback,2009-02-21T22:36:07Z,2013-04-06T20:36:05Z,"Around Lines 406 to 426 on wp-login.php:

{{{
	$secure_cookie = '';

	// If the user wants ssl but the session is not ssl, force a secure cookie.
	if ( !empty($_POST['log']) && !force_ssl_admin() ) {
		$user_name = sanitize_user($_POST['log']);
		if ( $user = get_userdatabylogin($user_name) ) {
			if ( get_user_option('use_ssl', $user->ID) ) {
				$secure_cookie = true;
				force_ssl_admin(true);
			}
		}
	}

	if ( isset( $_REQUEST['redirect_to'] ) ) {
		$redirect_to = $_REQUEST['redirect_to'];
		// Redirect to https if user wants ssl
		if ( $secure_cookie && false !== strpos($redirect_to, 'wp-admin') )
			$redirect_to = preg_replace('|^http://|', 'https://', $redirect_to);
	} else {
		$redirect_to = admin_url();
	}
}}}

As we can see on the present code, if a redirection is set while login and this redirection goes to the plain version of the dashboard then client will go to the non-SSL version of the dashboard which therefore will move the client to the secure version (generating and extra request).[[BR]]
I know this is kinda a tongue twister sentence so i think is better to put a request example of the problem...

Client: POST http://foo.bar/wp-login.php?redirect_to=http%3A%2F%2Ffoo.bar%2Fwp-admin%2Findex.php [[BR]]
Server: HTTP 302 ... Location: http://foo.bar/wp-admin/index.php [[BR]]
Client: GET http://foo.bar/wp-admin/index.php [[BR]]
Server: HTTP 302 ... Location: https://foo.bar/wp-admin/index.php

I know that wordpress is actually working as suppose to work (cause we told to move to non-SSL version of the dashboard) but and a extra http request is issued.[[BR]]
IMHO if we (admins) have enabled FORCE_SSL_ADMIN, then all redirections to wp-admin should go SSL/HTTPs even if we fill redirect_to with the plain version of the dashboard.[[BR]]
There is part of the code that detect this and replace it but it has issues or well it isn't prepared to do this.[[BR]]
At the moment we can filter login_redirect to fix this but (again) IMHO this should move to the core...",g30rg3x
11623,review options list and update sanitize_option(),dd32*,Security,2.9,normal,normal,Future Release,defect (bug),accepted,early,2009-12-26T01:22:13Z,2010-11-13T01:18:42Z,"A lot of options have been added since 2.0.5, and as a result, not all of them have been added to {{{sanitize_option()}}}

Ideally, Options which are to be (int) or absint() should have a filter applied to them here.

Attached patch is for the first option thats brought this up, 'start_of_week' which is tested to be int in some function uses, ignored elsewhere.

I've set this to security as its preventive security..",dd32
10551,wp_die() triggers block when using ModSecurity Core Rules,westi*,Security,2.8.3,low,normal,Future Release,defect (bug),accepted,dev-feedback,2009-08-05T19:47:28Z,2011-03-22T09:51:47Z,"wp_die() causes ModSecurity (using Core Rules), a commonly used Apache plugin, to throw a 406 error, blocking the message from displaying.

This seems to be triggered by the fact that a 500 error is thrown.  I went and changed the default status code to 401 (Unauthorized) and it worked like a charm.  I just wonder if there is a better fix for this issue... or simply a better status code to use.

Perhaps making a group of functions to make the error codes more focused.

Example:
{{{
wp_die_auth( __('You do not have sufficient permissions to access this page.') );

/**
 * Exits WordPress with Unauthorized status code.
 *
 * @see wp_die()
 */
function wp_die_auth($message, $title = '') {
	wp_die( $message, $title, 401 );
}
}}}",cstrosser
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
19415,wp_nav_menu showing private/conctepts posts without rights,,Security,3.0,normal,major,Awaiting Review,defect (bug),new,,2011-12-02T18:11:06Z,2012-11-01T16:52:23Z,"when you are using wordpress menus and you got your post/page in a menu (e.g. using Automatically add new top-level pages) and then change the post/page to concept or set it private, the link to post/page stays in the menu for all users, what may have some negative security concerns

this error in all versions, including todays nightly 

IMO it should show only visible posts (if someone disagrees and need it for some backward compatibility, there may be some parameter, but imo hidding private/concept should be default)",thomask
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
21022,Allow bcrypt to be enabled via filter for pass hashing,,Security,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-06-20T01:34:26Z,2013-06-17T18:30:26Z,"Hi,

following recent discussions on password security and how to best prevent any hackers can leverage password table they might have got I looked into the phpass used for WordPress.

While I in principle understand why WordPress uses the compatibility mode of it, I would like to see some flexibility for those who don't need the compatibility.

Thus I would propose to change in wp-includes/pluggable.php all occurances of

$wp_hasher = new PasswordHash(8, true);

to

$wp_hasher = new PasswordHash(8, apply_filters('phpass_compatibility_mode', true));

This would allow users to easily change via plugin from the ""not so secure"" compatibility mode (only salted MD5) of phpass to a more secure setting (bcrypt) in case no compatibility with other applications is required.

The plugin changing the encryption methog could then as easy as

function phpass_bcrypt() {
	return false;
}
add_filter('phpass_compatibility_mode', 'phpass_bcrypt');",th23
15277,FORCE_SSL_LOGIN or _ADMIN go to death loops when using an load-balancer,,Security,3.0.1,normal,normal,Future Release,enhancement,new,,2010-11-01T15:07:32Z,2010-12-29T19:38:09Z,"Dear community,

first of all, I had to apologize for my english pronunciation. I am not a native speaker.

Now, here is my problem or rather my feature request and patch.

'''Problem'''

I use WordPress in an infrastructure with a load-balancer (hardware) before two webserver in a dmz and behind the dmz the database server. And (that is important) the connections between the load balancer and the webserver are always http - not https. The ssl certificate is installed on the load balancer. So the https connection is only between the client (browser) and the load balancer.

Now a want to use ssl for login and admin section.

IF I use FORCE_SSL_ADMIN or _LOGIN I got into a death loop, because:

1) connection client -> load balancer: https
2) connection load balancer -> webserver: http
3) webserver WordPress -> client: reload to https because of FORCE_SSL_*

4) connection client -> load balancer: https
5) connection load balancer -> webserver: http
6) webserver WordPress -> client: reload to https because of FORCE_SSL_*

7) goto 4 or 1

'''Feature Request'''

I want a FORCE_SSL_* light. Something like USE_SSL_* but do not make a redirect.

'''Patch (see attached)'''

I defined two constants USE_SSL_LOGIN and USE_SSL_ADMIN like the FORCE_SSL_* and the functions use_ssl_admin, use_ssl_login like the force_ssl_*. And I integrate these functions in the function get_site_url in wp-includes/link-template.php

At my installation, it works.

It would be great, if you can take over these two config constants.

I hope I could descriped my problem and solution clearly.

Great tool ... Iver Jackewitz",jackewit
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
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
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
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
20276,Tie nonces to the current session,,Security,,normal,normal,Future Release,enhancement,new,,2012-03-21T20:20:57Z,2013-01-28T22:01:06Z,"Owasp specifies that ""the synchronizer token pattern requires the generating of random challenge tokens that are associated with the user's current session."" Our nonces have a timeout, but that timeout can span cookie sessions. Instead, nonces should be somehow tied to the current auth cookie and invalidate whenever the cookie invalidates.

https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet",ryan
20060,wp_redirect() doesn't exit,,Security,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-02-17T15:35:11Z,2012-02-27T05:46:35Z,"As discussed in #15518, not exit()'ing after a redirect can be a security vulnerability and also lead to unexpected behavior. I think that most developers assume that the API would take care of that for them, since that would be the best practice, so they don't do it in their own code.

There are some cases where features need to redirect without exiting, though, so the API needs to support both cases. Ideally wp_redirect() should exit() by default, but that would cause too many backwards-compatibility issues. So, I'd propose making these changes:

* Add a new boolean parameter to wp_redirect() that determines if it should exit() or not. It's false by default. If it's passed in as true, then exit() is called at the end of the function. Having it set to false by default avoids the backwards-compatibility issues.
* Add the new boolean parameter to wp_safe_redirect() also.
* Create new wp_redirect_exit() function that is a wrapper for a wp_redirect() and passes in a true value for the new parameter. Then, promote this new function on the Codex and other places to inform developers that they should be using it unless they actually need to execute code after the redirect.
* Also create wp_safe_redirect_exit() in the same way.",iandunn
20140,Ask old password to change user password,tman4506*,Security,,normal,normal,Awaiting Review,feature request,accepted,dev-feedback,2012-02-29T12:55:38Z,2012-08-26T16:14:53Z,"I have experienced this in various sites and i think
it adds extra security.
We must ask for the old password when the user tries to change the password",nprasath002
10237,Implement Content Security Policy to prevent XSS,ryan,Security,2.8,normal,normal,Future Release,feature request,new,,2009-06-22T20:50:37Z,2012-06-20T16:12:36Z,"http://blogs.zdnet.com/security/?p=3654

 1. Here’s how Content Security Policy can provide a way for server administrators to reduce or eliminate their XSS attack surface. Website administrators specify which domains the browser should treat as valid sources of script.

 2. The browser will only execute script in source files from the white-listed domains and will disregard everything else, including inline scripts and event-handling HTML attributes. 
   - Note: event-handling is still enabled in CSP without using HTML attributes.

 3. Sites that never want to have JavaScript included in their pages can choose to globally disallow script.",Denis-de-Bernardy
10850,Make register_setting available on the front-end,ryan,Security,2.8.4,normal,normal,Future Release,feature request,new,,2009-09-25T09:47:09Z,2009-09-25T09:47:09Z,"hi,

since 2.7.0 we have the function {{{ register_setting($option_group, $option_name, $sanitize_callback = '') }}} in ''/wp-admin/plugin.php'' to securely handle handed over $_POST variables in the admin menu.

afaik, besides of the usage of query_vars (which only work for $_GET variables) we have no counterpart to ''register_setting'' on the front-end. imho, we could increase the security and usability of forms and their variables if we would provide a similar functionality in ''wp-includes''.

what do you think?

greetz,
berny",neoxx
21737,"Users should have to jump through hoops to set passwords of their choosing, and we should guard better against weak passwords",westi*,Security,,normal,normal,Awaiting Review,feature request,accepted,,2012-08-30T04:07:17Z,2013-04-18T02:44:43Z,"People are terrible at choosing secure, unique, complex, unguessable passwords. Unless someone is using a password storage system, the chances are good that the passwords they're choosing are really weak.

We can mitigate this problem.

1. Let's make the default to always be that WordPress picks a password for you. When installing WordPress, or when creating a new user account, or when changing your password on your profile. The default should be that we generate a secure password for the user. They can remember it, write it down (not ideal, but generally more secure than choosing a weak password), or copy and use it once, check the ""remember me"" box, and not worry about it until their cookie expires on that computer.

2. If they do opt to manually create a password, we need to do better than our current password strength meter. And the lowest level should actually nag them with an AYS before they proceed. I suggest the following, to start, which would trigger the lowest level, and cause them to have to dismiss a warning (or check a checkbox... UI TBD) before continuing:

* compare the strtolower'd version of their password to strtolower'd versions of all their info (username, first/last name, part of e-mail address before the @, etc).
* any password that is shorter than 8 characters
* a blacklist of popular passwords (these lists are available... even grabbing the top 100 would give use good coverage)
* 3 or more consecutive digits (""123456"" and company are very popular)
* anything that looks like a date",markjaquith
21924,add action / filter to wp-login.php so we can replace WordPress login and force using 3rd party login,,Security,,normal,normal,Awaiting Review,feature request,new,,2012-09-19T11:59:58Z,2012-09-19T11:59:58Z,"I want to turn off WordPress login because I don't have an SSL certificate. I want to replace (not just hide with CSS or something) the WordPress wp-login.php login form so that a plugin can hook into that and be called within themes that use the hook to display the WordPress login form. Then, if the plugin is disabled, the generic WordPress login will display by default/fallback.

Worst concern about this is the plugin failing, especially upon an update or theme change or something and this can be fixed by logging in and disabling the plugin via FTP or via database or something.

(Of course, applies to both ""login"" and ""register"", not just ""login"".)

What I tried before posting here:
http://premium.wpmudev.org/forums/topic/is-there-a-plugin-to-disable-wordpress-default-login?replies=9#post-276574
and
http://www.wpquestions.com/question/show/id/7065


Might be related to:
http://core.trac.wordpress.org/ticket/19097


Thank you very much.",cliffpaulick
17227,wp should work around bug in move_uploaded_file for tighter security,,Security,3.2.1,normal,normal,Awaiting Review,feature request,new,,2011-04-24T00:28:50Z,2011-11-17T18:52:45Z,"Andrew Nacin said I should put this in a new ticket so others can weigh in.  Here's the email with the description:

Hey guys, so I'm trying to harden up (!) my wordpress installation, and the whole world-writable wp-content/uploads thing is avoidable by creating a group that includes me and apache (call it ""checkersites""), and making wp-content/uploads et al group writable, group checkersites, and the directories group sticky.  So, any new directories and files created are group checkersites so I can toast them, even though apache is the owner.

However, there's a bug in php's move_uploaded_file that it doesn't obey the directory group sticky bit, so any files uploaded and run through move_uploaded_file are apache:apache, which then breaks everything with this scheme (meaning, the files still work, but now I can't modify the them without su'ing, etc.).  This has been recorded on the php docs for move_uploaded_files since 2008  ([http://www.php.net/manual/en/function.move-uploaded-file.php#85149 note here]), so it looks like they just don't care. I was thinking about patching wordpress to work around this by checking if the destination directory's group sticky bit is set and changing the group to that if so.  Would you guys be interested in the patch?

As far as I can tell, this is the only thing that forces non-root users to make directories world writable (or even readable, assuming the admin will set up the shared group for them).  Seems like it's worth fixing.",chrishecker
24326,Admin RTL bugs,,RTL,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-12T18:22:37Z,2013-06-03T10:20:31Z,"Hi, This a list of some RTL style bugs I found it today in the beta 3 update.",alex-ye
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
22897,RTL on plugin information tab,,RTL,3.5,normal,normal,3.6,defect (bug),new,has-patch,2012-12-12T20:26:28Z,2013-05-30T22:02:36Z,"The plugin information tab needs a few adjustments RTL adjustments, check out the screenshot.",ramiy
23016,Allow plugins to manipulate WP_Roles ($wp_roles global) on construct,,Role/Capability,3.5,normal,normal,Future Release,defect (bug),new,early,2012-12-20T08:38:46Z,2013-05-14T13:32:58Z,"The WP_Roles class is difficult to extend. There are no actions, filters, or intercept points to allow plugins to target it. Because the $wp_roles global can be created anytime (even doing_it_wrong on plugins_loaded) there's no reliable way to modify any part of $wp_roles.

(The only place WP_Roles actually has any action at all is in the set_role() method, which is the least useful function in the class since it noops all user roles if a user has more than one.)

The specific use case I have is bbPress's dynamic roles.

bbPress is unable to add its dynamic roles to the $wp_roles global on switch_to_blog(). Neither of WP_Roles's initialization methods have actions to allow bbPress to add its roles on.

* switch_to_blog() calls $wp_roles->reinit()
* then wp_get_current_user()
* finally $current_user->for_blog()

At no point can bbPress reliably append its roles to $wp_roles->roles, causing the current user to incorrectly be missing their bbPress role for that site.

More over, the WP_Roles::reinit() method seems like a one-use stop-gap to fix a specific problem, that ends up introducing other issues with trying to extend it. If the use_db flag is set to false, it bails early, and there's no way for plugins that don't use database roles to reinitialize their roles correctly again.

The attached patch does two things:

* Removes the reinit() method completely, and instead re-instantiates the $wp_roles global inside switch_to_blog(). WP_Roles::_init() is not a heavy function, and the guts are basically identical between the two methods.
* Adds a byref action to WP_Roles::init() that allow plugins like bbPress to add their dynamic roles anytime $wp_roles is created.",johnjamesjacoby
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
12107,Author role overrides edit image title set by editor,,Role/Capability,2.8.6,normal,normal,Future Release,defect (bug),new,,2010-02-01T01:56:49Z,2010-11-13T07:42:50Z,"If assigned as 'Author' as Role in Wordpress User Setting, Author cannot add or edit the 'Edit Image Title' field for any images (even though they upload themselves)

Furthermore, if there is an existing text in 'Edit Image Title' field, and if Author 'Save Draft' or 'Update Post' (without doing any editing at all), the Image Title will be removed.

In other words, only the Roles of 'Admin' and 'Editor' are able to add Image Titles to images. The Role of 'Author' cannot add image titles and not only that, by accessing and saving a post, any existing Image Titles added by Admin or Editor becomes removed.

I tested on Wordpress version 2.8.6 and 2.9.1

I have previously posted a thread on the support forum here http://wordpress.org/support/topic/356199?replies=1#post-1365412",noyu
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
14578,"Default User Role isn't checked against defined roles, causing unexpected resets to Administrator",garyc40,Role/Capability,3.0.1,normal,major,Future Release,defect (bug),assigned,has-patch,2010-08-10T10:00:29Z,2013-05-21T20:00:15Z,"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
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
16808,Insufficient permissions for custom post type management and custom role/caps,,Role/Capability,3.1,normal,normal,Awaiting Review,defect (bug),new,,2011-03-09T19:54:04Z,2011-03-09T22:04:02Z,"I asked a question over at [http://wordpress.stackexchange.com/questions/11508/permission-error-on-custom-post-type-add-new-action StackExchange] about this. Went into their chat room to talk to a few people and came to the conclusion I need to post this ticket.

---

When accessing an admin page located at post-new.php with a custom post type on a user that's in a custom role that has the available permission to ""Add New"", you get ""You do not have sufficient permissions to access this page.""
{{{
		$post_caps = array( 'delete_post' => 'argus_admin', );
		$visitor_caps = $post_caps;
		$visitor_caps = array_merge( $visitor_caps, array(
				'edit_post' => 'argus_visitors',
				'read_post' => 'argus_visitors',
				'edit_posts' => 'argus_visitors',
				'edit_others_posts' => 'argus_visitors',
				'publish_posts' => 'argus_visitors',
				'read_private_posts' => 'argus_visitors',
			));

		$v_args = array(
			'labels' => array (
					'name' => 'Visitors',
					'singular_name' => 'Visitor',
					'add_new_item' => 'Register New Visitor',
				),
			'public' => true,
			'publicly_queryable' => false,
			'exclude_from_search' => true,
			'show_ui' => true,
			'show_in_menu' => 'argus',
			//'show_in_menu' => false,
			'hiearchical' => false,
			'supports' => array( '' ),
			'capabilities' => $visitor_caps,
			'register_meta_box_cb' => array ( &$this, '_wp_visitor_meta_box_cb' ),
		);
		
		register_post_type( 'visitor', $v_args );
}}}
I've tested it with 3.0.4 and it worked flawlessly. However, when in 3.1, it doesn't want to work.",Genesis2001
21788,Relocate revoke_super_admin() and grant_super_admin() to capabilities.php,,Role/Capability,,normal,normal,Awaiting Review,defect (bug),new,,2012-09-04T11:09:57Z,2012-09-16T21:32:38Z,"Would be nice to move revoke_super_admin() and grant_super_admin() out of /wp-admin/includes/ms.php and into to /wp-includes/capabilities.php, where the rest of the _super_admin() functions are.

This allows theme-side user profile plugins (see: the bb's) to use these functions without needing to pull in a wp-admin file directly.",johnjamesjacoby
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
19747,Roles add_cap should call update_user_level_from_caps(),,Role/Capability,3.3.1,normal,normal,Awaiting Review,defect (bug),new,,2012-01-05T11:17:32Z,2012-12-12T20:39:22Z,"Hey guys,

I've created a new user role, which didn't appear in the Author drop down list due to #16841. The workaround is to add a level_1 capability to that user, but because wordpress doesn't call update_user_level_from_caps() function when you add_cap, that isn't actually applied to existing users on the role, and you have to move them to a different role and back again if you want to apply the changed user role.

I'd suggest adding a call to update_user_level_from_caps() to add_cap (and remove_cap) to fix this in wp-includes/capabilities.php",lgladdy
24153,Sticky flag gets unset if author doesn't have publish_posts permission,,Role/Capability,3.5.1,normal,major,Awaiting Review,defect (bug),new,,2013-04-22T05:03:20Z,2013-04-23T04:58:05Z,"I'm observing a bug with the sticky flag. I set up a special user with a role of ""Grammar Nazi"" who should only have access to editing of other people's posts, but not publishing his own.

The permissions given to this role are:
- edit_published_posts
- edit_others_posts
- edit_posts
- read
- read_private_posts

This user works out great - he's limited to only editing errors in other authors' posts.

However, there is a bug with sticky posts. If a grammar nazi edits a stickied post, '''the sticky flag gets unset'''. As a possibly related observation, there's no Edit button on the post edit page next to the Visibility area.

This bug is worked around by adding the ''publish_posts'' permission. However, this permission is unwanted in this case as grammar nazis shouldn't be able to post their own posts. Adding ''publish_posts'' enables the Edit button next to Visibility, and saves retain the sticky bit correctly.

So, in short: the sticky bit should be retained even when users without the ''publish_posts'' permission update a post.",archon810
16451,WP_Roles and capabilities,,Role/Capability,3.0.4,normal,normal,Awaiting Review,defect (bug),new,,2011-02-03T19:06:28Z,2011-02-03T19:56:45Z,"I began to complain about this in the support forum: http://wordpress.org/support/topic/bug-report-wp_roles?replies=3#post-1922100 . You can read the longer version there.

The WP_Roles-Class lacks some consistency (immo). I am not aware of the reasons why WP_Roles multiple class-varibles containing the roles and capabilities, but in this case your logic is producing some errors:

I wrote my Plugins as classes. While Wordpress loads them, I add the roles and capabilities this plugin needs. It would have been far more complicated to do this only while activating.

Creating a WP_User-Object, it will set it's ""all_caps"" from $wp_roles->get_caps($role) which is looking into the $wp_roles->role_objects[$role]. There it will only find those capability of the $role, which were assigned while creating the role [ $wp_roles->add_role($identifier, $readable, $caps) ] but NONE of the caps added by [ $wp_roles->add_cap($role, $cap, $grant) ] because this function applies the capability to $wp_roles->roles but not to $wp_roles->role_objects, where WP_User will look into with the method [ $wp_roles->get_caps($role) ]

I use this as an example cause I faced this problem the last three days. The fact is, if you need those multiple variables in WP_Roles, please, keep them all up-to-date. Do not force the user to set all capabilities in the activation and do not rely on the thought that roles and capabilities will be set correctly if read from the database. 

As the changes are minor and the effect major, it would be great to change it soon.",IM_natascha
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
21526,get_post_type_capabilities() assumes $args->capabilities is an array,,Role/Capability,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-08-09T12:29:01Z,2012-08-09T12:46:39Z,"get_post_type_capabilities() assumes $args->capabilities is an array and should check and confirm it. Otherwise a warning appears: Warning: array_merge() [function.array-merge]: Argument # 2 is not an array in /home/username/public_html/wp-includes/post.php on line 1183. I discovered this when I accidentally set this to null instead of array().

Type setting it seems to clear the warning, if we want to clear the warning.

{{{
$capabilities = array_merge( $default_capabilities, (array)$args->capabilities );
}}}
",wpsmith
16841,manually created user roles not showing in author dropdown irregardless of assigned capabilities,,Role/Capability,3.1,normal,normal,Awaiting Review,defect (bug),new,,2011-03-12T23:39:39Z,2012-12-12T20:32:08Z,"I posted the below on wp-testers hoping to verify or gain experiences from others in order to confirm this prior to reporting it as a bug, but, haven't received any further input, and it's just becoming more evident to me that perhaps it should be posted here, so, I hope I'm not creating a false report here. Please excuse me if I am.

I'm posting this as a link so that it will translate more clearly rather than just cluttering up this message with more text than necessary.
http://lists.automattic.com/pipermail/wp-testers/2011-March/014130.html

Upon further investigation I have also come across the following:
http://core.trac.wordpress.org/ticket/16451

I'm not an expert at debugging this sort of thing, but, I have attempted all within my knowledge thus far, and in looking at all of the returned objects and entries, the only difference I can spot between how the default user roles ( which show up properly in the dropdown ) and the custom created roles ( which do not ) are being returned is that the default user roles, editor for instance, correctly show the deprecated level_7 entry, and the custom user role ( with more assigned privileges than the editor ) does not show user levels in the capabilities array at all, and shows level_0 in the object.

This is leading me to think that perhaps there is something happening with those user levels in creating the author dropdown on the post editor that is blocking the custom user roles from showing up as expected.

When running the following code:
  
{{{
echo '<br /><br /><h3>Roles</h3>';
	foreach ( $wp_roles->role_names as $role => $name ) :
		echo '<br /> <br />';
		echo '<pre> Role displayed in Admin as ' . $name ;
		echo  '     Database entry: '  . $role . '</pre>';

		echo '<h5> Capabilities assigned to the role of ' . $name. '</h5>';
		// print_r( $caps);
		echo '<pre>';
		$rolename = get_role($role);
		$caps = $rolename->capabilities;
			foreach ($caps as $capability => $value):
				echo  $capability . ' '.  $value . ""\n"" ;
			endforeach;
		echo '</pre>';
	endforeach;
}}}


the default wp roles return the following capability value pairings


{{{
delete_published_posts 1
}}}


roles created with Justin Tadlock's members plugin return the following


{{{
delete_published_posts delete_published_posts
}}}


roles created manually in functions.php utilizing


{{{
add_role( 'test_role', 'Test Role' );

//saved and then removed before running the code below ...

$role = get_role('test_role');

$role->add_cap('read');
$role->add_cap('edit_posts);
$role->add_cap('edit_others_posts');
$role->add_cap('publish_posts');
$role->add_cap('read_private_posts');
$role->add_cap('delete_posts');
$role->add_cap('delete_private_posts');
$role->add_cap('delete_published_posts');
$role->add_cap('delete_others_posts');
$role->add_cap('edit_private_posts');
$role->add_cap('edit_published_posts');
}}}

return the following ...


{{{
delete_published_posts 1
}}}


but lack the user levels as mentioned above.

Let me know if there is any further info I can provide to help sort this out~


",10sexyapples
23377,map_meta_cap() throws error from has_cap() from current_user_can(),,Role/Capability,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-02-04T02:49:22Z,2013-03-07T05:57:10Z,"Based on the [http://codex.wordpress.org/Function_Reference/current_user_can current documentation], current_user_can() only requires one argument, a capability. However, if I call it from the `save_post` hook with WP_DEBUG turned on, I will receive the following errors:

{{{
Notice: Undefined offset: 0 in /var/www/XXXX/htdocs/wp-includes/capabilities.php on line 1067
Notice: Undefined offset: 0 in /var/www/XXXX/htdocs/wp-includes/capabilities.php on line 1067
Notice: Undefined offset: 0 in /var/www/XXXX/htdocs/wp-includes/capabilities.php on line 1067
Warning: Cannot modify header information - headers already sent by (output started at /var/www/XXXX/htdocs/wp-includes/capabilities.php:1067) in /var/www/XXXX/htdocs/wp-includes/pluggable.php on line 876
}}}

As a result, the admin save post will die.

Basic Sample Code:
{{{
if ( ( 'page' == $post->post_type && ! current_user_can( 'edit_page' ) ) || ! current_user_can( 'edit_post' ) )
    return;
}}}

As a result, in my opinion `map_meta_cap()` should ensure that `$args[0]` exists.",wpsmith
21425,the 'edit_users' capability also allows 'promote_users',,Role/Capability,3.4.1,normal,major,Awaiting Review,defect (bug),new,dev-feedback,2012-07-30T17:07:52Z,2012-09-22T10:11:33Z,"Hello all,

I have found an issue where I have created a Support role in order to have a user make changes to basic user information. What I noticed was that the capability 'edit_users' allows said User (role) to promote users to any role - including admin! I tried removing the cap 'promote_users' and it does nothing.

add_role(
			'support',
			'Support',
			array(
				'read' => true,
				'edit_feedback' => true,
				'edit_others_feedback' => true,
				'list_users' => true,
				'edit_users' => true
			)
		);",ew_holmes
16291,user role drop down inaccurate on ms-sites.php,,Role/Capability,3.0.4,normal,normal,Future Release,defect (bug),new,,2011-01-18T21:23:32Z,2011-01-18T22:39:11Z,"If a user has been assigned a role and an individual capability, the user list doesn't show the correct role for the user. 

This is the scenario to replicate this issue.  User is currently given one role (ie. editor).  Then some plug-in adds an individual capability (db has role and cap serialized - order is important). You then go and change the role(ie. publisher) of that user using ms-sites.php (db has cap then role serialized). When you return to ms-sites.php (not immediate page load, but refresh, or new page load), the drop down menu for the user in question will show Administrator. It appears, that ms-sites is pulling the first item from the serialized list, and since it isn't a role, it doesn't know how to populate the drop down.

This is a particular issue, if you go to the page to change any information not related to user permissions.  Anyone whose accounts had the extra cap would suddenly become Administrators.

There may be other scenarios where this same things happens, but as best I can tell this is the particular scenario that is causing me problems.

Also, I do realize that there is a potential for user->role->cap overhaul in a future release, but since it doesn't seem to be part of the 3.1 milestone, I thought this should be fixed. 

As another note, the users.php page seems to handle this scenario a bit better.  The solution might be over there.   ",hughestm@…
22895,user_can_admin_menu() is Type-Insensitive for Users who Can't Create Pages,,Role/Capability,3.5,normal,normal,3.6,defect (bug),new,has-patch,2012-12-12T18:32:53Z,2013-05-25T16:59:43Z,"Utilization of the new separation edit_posts /create_posts capability separation reveals a flaw in admin menu privilege checking.

The issue occurs when:

1. For any post type other the ""post"", the user has $type->cap->edit_posts but not $type->cap->create_posts

2. User also does not have a manage_terms capability for any associated taxonomies

In that situation, access to ""edit.php?post_type=whatever"" fails unless the user has the ""edit_posts"" cap for the ""post"" type.

This occurs because:

1. '''wp-admin/includes/menu.php''' removes solitary submenus that have the same destination as the parent

2. '''get_admin_page_parent()''' returns nullstring if there is no $submenu item

3. '''user_can_access_admin_page()''' performs a type-sensitive capability check only if get_admin_page_parent() returns an existing $submenu key.

For now, my plugin workaround is to hook into 'admin_menu' and add a dummy submenu with nullstring caption. ",kevinB
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
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
2531,Functions for registering additional capabilities and getting a list of all capabilities,,Role/Capability,2.0.1,normal,normal,Future Release,enhancement,assigned,,2006-03-05T15:50:58Z,2012-06-28T13:44:05Z,"Plugin authors need a way of announcing the additional ""add on"" capabilities used in their plugins.

Additionally, role manager plugins need a way of getting a list of all registered capabilities.

Proposed functions:


{{{
register_cap('cap_name');

get_all_caps();
}}}


Patch is coming.

Initial milestone of 2.1, but it would be really nice to get this into 2.0.2 ... because 3rd party capabilities are largely useless until we have this.",markjaquith
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-22T13:49:59Z,"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
14986,Make WordPress roles/capabilities more secure (edit_users related),,Role/Capability,,normal,normal,Future Release,enhancement,new,,2010-09-28T20:39:03Z,2011-01-13T12:36:44Z,"We've discussed this before, but after some thought, I think we can do this and make it work.

Right now, the edit_users capability is the key to the kingdom. Anybody with edit_users can change their role to anything, including to something with more capabilities than they already have.

Back in #6908 and #6014, this was thought about in terms of the old user levels system, which of course shouldn't be used and makes no sense.

In #8770, an editable_roles filter was introduced, which allows a plugin to limit the roles that a user can change themselves too. This works for one aspect of the problem, but a) it doesn't solve the passwords problem(1), and b) it assumes that the roles are still only in one chain of command. That is to say, that all the roles have an ordering, where each role has all the capabilities of the role ""below"" it.

To solve these, I think we need a capability comparison system. To wit, code that implements these two rules:

1. No user can change the role of another user to a role that has capabilities that the changing user does not also have.

2. No user can change either the role or the password of another user who has any capability that the changing user does not also have.

For rule 1, this means that if Adam was to try to assign Bob a role, he would only be given the choice of assigning roles that have a subset of the capabilities Adam himself had.

For rule 2, if Adam was to try to change the role or the password of Bob, he would not be able to change either unless Bob already had a subset of Adam's own capabilities. 

This makes the roles have a sort of definable hierarchy, where roles with lesser capabilities can be multi-faceted. I can define more than one chain of roles which are ""above"" each other in hierarchy, allowing me to build a tree of groups and users capable of different things.

For things like bbPress-as-a-plugin, this sort of enforcement is going to be a must-have feature.

Note 1: The ""passwords problem"" is that any user who can change another users password can easily change the password of somebody of ""higher"" rank, log in as them, and then have their capabilities. It's detectable, but in some cases, may not be so detectable. Admins who don't log in often, say.

Note 2: We also need role management in core, but that's a topic for a separate day. I'm speaking only of enforcement of a security model here for now.",Otto42
22968,No way to view_others_posts without being forced to have edit_others_posts enabled,,Role/Capability,3.5,normal,normal,Awaiting Review,enhancement,new,,2012-12-17T02:02:42Z,2012-12-18T06:48:22Z,"I'm using the Roles plugin to tweak default roles, and I'm looking to add the capability for Authors to read unpublished posts (drafts by other users, so that they can give feedback before they're published).

Unfortunately, it seems that while there's an edit_others_posts perm, there's no equivalent read_others_posts, so doing this is impossible unless you enable editing as well (that's not something I want to do). Read_private_posts doesn't do the trick either, in case you were going to suggest trying it.

The right solution, IMO, is to introduce read_others_posts (and same for pages).

Thank you.",archon810
24490,"Pass $this to WP_User::has_cap()'s ""user_has_cap"" filter",,Role/Capability,3.5.1,normal,normal,Future Release,enhancement,new,has-patch,2013-06-04T00:58:10Z,2013-06-09T04:24:43Z,"When hooking into the `user_has_cap` filter to modify the result of a user's capability checks (for example `current_user_can()`), the filter is not provided access to the user's object. This is important for cases like where `WP_User::for_blog()` has been called but you only want to modify a user's capabilities for a certain blog. ",Viper007Bond
10201,Remove user-specific caps,,Role/Capability,2.8,normal,normal,Future Release,enhancement,assigned,early,2009-06-17T23:02:36Z,2013-01-04T00:51:12Z,"See IRC discussions from June 18th 2009

 * The current role system is rather complicated, But has a lot of flexibility
 * A lot of the flexibility isn't even used by most (ie. the ability to have a user with a Roll + a single capability)
 * The role system starts having trouble with a high number of users
   * To look up every user with a certain cap. it requires loading all the users, and then checking individually. 

The proposed changes are:

 * That we reduce the complex system to something much more simple:
   * Roles are retained: 1 role per meta entry, and since the meta API allows for multiple values for the same key, this would have the benefit of multiple roles, and direct lookups.
   * However:
     * Remove the ability for a user to be part of a Role, and have an extra capability added on top of that. 
 * This has the ability to significantly increase performance, As now:
   * Looking up users with a specific cap is easy:
     * Filter the role list for roles with that cap
     * SQL the usermeta table for users in those roles
     * Select those users (if needed, else return the ID's) 
 * An upgrade path is available which doesnt require extra tables, and reduces the ammount of serialization
   * The other option is a whole new set of tables.. which.. those who are sane (And there are some insane people in WP Dev..) realise that its not really needed. 
 * Fine grain control has never been possible from WP without a plugin, Nothing would change here, If a user wants fine grained control over permissions, They'd still have to run a plugin, Its just that that plugin may have to do more heavy lifting now -- since wordpress's API/role system would be simpler and not support the extra fangledangles.",Denis-de-Bernardy
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
23391,User in contributor role can add images to post only via the text editor,,Role/Capability,,normal,normal,Awaiting Review,enhancement,new,,2013-02-05T07:34:26Z,2013-02-05T10:15:34Z,"1. Create a user with contributor role
2. start new post with it
3. notice there is no ""add media"" button anywhere
4. switch to text editing
5. use the img button to insert a URL to a valid img on the web
6. request approval for the post
7. let admin/editor approve it
8. go the the post's URL and notice that the image is shown

So, it is not that contributors are not allowed to use images, it is just that WP makes it hard to do so.

Either HTML needs to be sanitized and have all img tags removes for contributors, or access to the media library should be allowed for contributors denying only access to uploading. I vote for the second option.",mark-k
13269,Ability to list by user role in wp_dropdown_users,,Role/Capability,,normal,normal,Future Release,feature request,new,,2010-05-05T22:05:20Z,2010-10-27T11:52:42Z,"Hi Everyone!

I am using custom post types and during my experimentation I found it the best to create a new role as well. In short, a website will be hosting seminars, and we have seminars as a custom post type, and seminar speakers as a role (we want to be able to manage them as users, but restrict blog access). 

Since they are not authors, they will not show up in the author box on the new post page, so I added a new meta box, which contains a select box to select the speakers we need. 

For this I need to create a custom query, but it would be great if a simple attribute were added to the function wp_dropdown_users(). The argument could be ""role"" and you would need to add the name of the role, like ""speaker"". 

I hope this is something  useful to others too! While I have a pretty good understanding of the WP core now, I am not really comfortable checking out files yet, so sorry for not actually writing the code. ",danielpataki
5942,Add Owner role,,Role/Capability,3.1,normal,normal,Future Release,feature request,reopened,,2008-02-21T10:13:08Z,2011-04-10T04:17:35Z,"This patch adds a new 'owner' role.  The owner is an administrator who cannot be demoted, deleted or edited by other administrators.  Owner is a secondary role - the user is both an administrator and an owner.

In the current implementation there is only one owner at a time.  The current owner can transfer ownership of the blog to another administrator on the Transfer Ownership tab (under Users).  I implemented this as a plugin because some site owners won't want the feature there at all.

This is of most interest for MU, but it's also probably useful for some regular WordPress blogs with multiple users.

This would be particularly useful in conjunction with the user_role table from #5541, but it works fine with or without it.",tellyworth
17253,Author role should be able to make/edit pages (a.k.a. let's get with the times),,Role/Capability,3.1,normal,normal,Future Release,feature request,new,,2011-04-27T11:29:52Z,2012-08-23T00:47:00Z,"More and more sites are using WordPress to run the whole site, not just a blog. Pages are quickly eclipsing blog posts as the default content type, and we should start moving to address this. Currently authors have no rights to pages. Someone with higher rights can set the author as someone with the author role, but the author can't actually get to it. This is super lame, because the ""just create and manage your own stuff"" role doesn't apply to a major form of content. 

I understand this will have implications re backwards compatibility, but we've talked about revisiting the roles system at some point, so I wanted this ticket to be on record. We have to make roles more reasonable for CMS use. ",jane
17254,Contributors should be able to upload,,Role/Capability,3.1,normal,normal,Awaiting Review,feature request,new,,2011-04-27T11:42:24Z,2011-09-10T03:10:26Z,"Workflows and typical post content have evolved since the roles were defined. Posts frequently contain images, video, etc. As it is now, for someone to be able to put an uploaded image or video in a post, they have to be an Author, because contributors have no upload rights. This means that if a post contains any media, the person writing it has the ability to publish. There's a big gap now for use cases where a site owner wants to curate/edit contributor submissions before publication but wants those contributor posts to not be limited to text-only creations. 

Proposal: allow contributors to upload media files (kept as draft, not published until approved by higher role). ",jane
20067,/search/.+ takes priority over pages since 3.3 - Breaks some sites,,Rewrite Rules,3.3,normal,major,Awaiting Review,defect (bug),new,dev-feedback,2012-02-18T07:36:46Z,2012-02-24T13:19:21Z,"Was on WP 3.2.1 and upgraded to 3.3.1. Immediately started experiencing problems with WP intercepting page urls such as: www.mydomain.com/search/advanced-search.html, or any other url whose first level folder was /search/. This is a valid folder and url set on my real estate site, and it all worked fine in 3.2.1. But WP 3.3.1 redirected to some kind of search process, and returned summaries of various pages on the site. As a test, I located and renamed the search.php in my theme folder. After that, the content and formatting of the results changed, but it still incorrectly redirected to some kind of search process, probably the WP core search since the one in the theme folder had been renamed. During this entire process, no other changes were made. The exact same plugins were installed and active, and no changes were made to .htaccess. .htaccess was reviewed, and there were no redirects that could have caused this. No redirect or site search plugins were ever installed or active. I re-installed WP 3.2.1 core files and all of the improper redirecting to search issues went away. Did 3.3.1 have some kind of new internal rewrite rules regarding when/how to do a site search? Affected site is www.denverhomevalue.com.",ronnieg
20520,Author Page Pagination Broken,,Rewrite Rules,3.3.1,normal,normal,Awaiting Review,defect (bug),new,,2012-04-23T04:16:03Z,2012-04-23T04:37:44Z,"WP 3.3.1 Multisite
Permalink setup: /author/post-name

- If the request is ""domain.com/authorname"" the authors page pagination link is broken.

- If the request is ""domain.com/author/authorname"" the authors page pagination link works fine.",rbaccaro
16839,Category Base Should be Slugified,,Rewrite Rules,3.1,normal,normal,Future Release,defect (bug),reviewing,early,2011-03-12T21:42:52Z,2011-08-29T23:45:18Z,"Vanilla install of 3.1. Change category base to Foo Bar.  Link generated is example.com/Foo Bar/cat (note the %20/space). Clicking link tries to access /FooBar/cat and 404's.

I see there are a few other tickets regarding categories, including #16662 but no specific mention of custom category base.

",miklb
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
20688,Forward slash in custom taxonomy rewrite causes 404s because of (unnecessary?) attachment rule,,Rewrite Rules,3.3.2,normal,normal,Awaiting Review,defect (bug),new,,2012-05-16T09:07:57Z,2012-05-16T11:54:34Z,"I implement a custom taxonomy with a rewrite that is designed to create urls like:

""/apps/about/sometag""

{{{
        $name = 'apps';
        register_taxonomy($name.'-tag', $name.'-post', array(
            'label' => ucfirst($name) . ' Tags',
            'public' => true,
            'has_archive' => true,
            'hierarchical' => false,
            'update_count_callback' => '_update_post_term_count',
            'rewrite' => array('slug' => ""$name/about"", with_front=>true)
        ));
}}}

However I was getting a 404 (yes I was flushing the rules) unless I changed the '/' to say a '-'.  Upon inspection of the rules, I found this one whose precedence was causing the problem:

{{{
'apps/[^/]+/([^/]+)/?$' => 'index.php?attachment=$matches[1]'
}}}

Upon removing it inside the ""rewrite_rules_array"" hook, the problem was solved.

It seems odd to me that this generic rule exists and rewrites to an attachment of all things...",harikaram
16303,Improve documentation and usability of WP_Rewrite Endpoint support,westi,Rewrite Rules,3.1,lowest,normal,Future Release,defect (bug),new,needs-docs,2011-01-19T16:25:01Z,2013-04-05T00:28:06Z,"When you know how it works the WP_Rewrite Endpoint support is really simple and cool.

When you don't it looks really difficult to use.

We should document it better and add an endpoint mask for Custom Post Types.",westi
19633,Multilingual Permalinks - Broken Pagination,,Rewrite Rules,3.3,normal,critical,Awaiting Review,defect (bug),new,,2011-12-21T13:23:32Z,2011-12-21T22:37:10Z,"With the new rewrite engine in WP3.3 the pagination for pages with multilingual URLs got broken.

See example:
[http://garage-eden.co.il/%D7%97%D7%95%D7%95%D7%AA-%D7%93%D7%A2%D7%AA-%D7%94%D7%9C%D7%A7%D7%95%D7%97%D7%95%D7%AA Live Example of Broken Pagination]

The permalink structure used for this:
%postname%

The Code Used for the Page:

{{{
<div id=""main-content"">

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<h1 class=""title""><?php the_title(); ?></h1>

<?php the_content(); ?>

<?php endwhile; endif; ?>

<?php
// The Query
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
	'category_name' => 'testimonials',
	'paged' => ""$paged"",
	'posts_per_page' => 3
	);
query_posts( $args );

// The Loop
if (have_posts()) : while (have_posts()) : the_post();
?>

<div id=""testimonial-wrap"">

<blockquote>
<?php the_content(); ?>
<cite><?php the_title(); ?></cite>
</blockquote>

</div>

<?php endwhile; ?>
<div id=""pagination"">
	<?php next_posts_link('<span class=""next-page"">הבא &raquo;</span>') ?>
	<?php previous_posts_link('<span class=""prev-page"">&laquo; הקודם</span>') ?>
</div>

<?php endif; wp_reset_query(); ?>

</div>
<!-- #main-content -->
}}}
",aternus
19896,Non-WP rewrites not saved on a multisite install,,Rewrite Rules,3.0,normal,normal,Awaiting Review,defect (bug),new,,2012-01-25T16:14:20Z,2012-01-25T16:14:20Z,"The following code adds a rewrite rule which is classed as a non-WP rewrite rule because its redirect doesn't begin with `index.php`, and is stored in the `non_wp_rules` member variable of the `WP_Rewrite` class.

{{{
function my_rewrite() {
	add_rewrite_rule( 'login/?$', 'wp-login.php', 'top' );
}
add_action( 'init', 'my_rewrite' );
}}}

On a single site install, this rewrite rule gets saved directly to the .htaccess file rather than being added to WordPress' internal rewrite array.

On a multisite install, this doesn't happen and the rewrite rule has no effect (probably because once a site is multisite-d WordPress no longer writes to .htaccess). The rule has to be manually added to .htaccess.

Likely introduced in 3.0, reproduced in 3.3 and trunk.",johnbillion
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
21645,Rewrite API logic and flush_rules,,Rewrite Rules,3.4.1,normal,normal,Awaiting Review,defect (bug),new,,2012-08-21T00:24:05Z,2012-08-21T08:24:19Z,"
It is not clear if or how visiting the Settings -> Permalinks calls flush_rules.  It is referenced occasionally as an apparent alternative to $wp_rewrite->flush_rules() in Documentation.  This should be explicitly confirmed in the admin interface and/or a button based action.

Documentation for the Rewrite API functions do not point at $wp_rewrite->flush_rules() effectively.  (Updated some codex links, but seems worth including a pointer inline in function definitions.) 

I was confused while editing an existing theme why duplicating existing add_feed() structures in functions.php did not produce duplicated behaviour in the permalinks.  ?feed=atom1 worked , but /feed/atom1/ didn't, until calling flush_rules()

Logic seems broken between these functions.  Why call Rewrite API add_feed() every init, but still require a flush_rules reset to activate?  They should be more explicitly linked / combined / triggered.  See prior conversation in #21335

http://codex.wordpress.org/Rewrite_API",here
21682,Rewrite endpoints are lost if a custom category or tag base is defined,,Rewrite Rules,3.4.1,normal,normal,3.6,defect (bug),new,dev-feedback,2012-08-24T15:57:04Z,2013-02-08T14:19:31Z,"== Problem ==

So this little bug was winding me up for a while.

The standard approach according to the codex for adding rewrite endpoints is to call the `add_rewrite_endpoint()` function within the init hook. So far so good.

The problem occurs whenever `WP_Rewrite::init()` is called ''after'' the init hook. It resets the endpoints array and so when rewrite rules are subsequently generated through the options-permalink.php admin page the rewrite rules are unknown to the system and hence don't work.

`WP_Rewrite::init()` is called within `WP_Rewrite::set_category_base()`, `WP_Rewrite::set_tag_base()` and `WP_Rewrite::set_permalink_structure()`.

In the latter it is only called if the permalink structure has changed so on first save of a change endpoints are lost. In the other 2 it is called every time if the slug doesn't match the default so rewrites are always lost.


== Solutions: ==

1. add an action hook to the start of `WP_Rewrite::rewrite_rules()` where endpoints should be added
2. store the endpoints at the start of `WP_Rewrite::init()` and restore them at the end
3. don't reset them at all

I think solution 3 would make sense, the endpoints could be defaulted to an empty array and I can't see any reason to want to reset them anyway.

I've attached a simple patch that works (for me at least).

'''NB.''' this problem may also affect the `$extra_rules` and `$non_wp_rules` but I haven't tested that theory yet.",sanchothefat
16832,Trouble if the slug of a custom taxonomy is the same as the url of page/post,,Rewrite Rules,3.1,normal,normal,Awaiting Review,defect (bug),new,,2011-03-11T11:50:43Z,2011-09-29T23:26:24Z,"I got some troubles with the 3.1 version of WordPress concerning the slug of custom taxonomy.

'''An example that work in 3.0.5'''[[BR]]
www.example.com/agency (url of a page)[[BR]]
www.example.com/agency/john-smith (url of a custom type's detail)

Apparently having the same ""folder"" 'agency' only works for one or the other url but not both.

Hope I made myself clear.",LucasHantz
20109,Valid htaccess rule causes 404 after upgrade to 3.3.1,,Rewrite Rules,3.3.1,normal,critical,Awaiting Review,defect (bug),new,,2012-02-24T06:26:42Z,2012-02-27T19:42:29Z,"On 2/18/2012, I upgraded WP from 3.2.1 to 3.3.1. on www.denverhomevalue.com. I later noticed that Google webmaster tools started reporting 404 errors on lots of pages that were fine before. WP was still returning the proper pages and content, not my custom 404 page, so the issue was not readily apparent except in WMT reports. Running http header response checkers confirmed 404 responses, despite good contents being returned. 

Deleting sections of the htaccess file until the problem went away, the issue was isolated to two rules meant to escape following rewrite rules on certain urls:

{{{
RewriteRule ^city(.*) - [L]
RewriteRule ^areas(.*) - [L]
}}}

These were the same family of urls that started returning 404s after 3.3.1 upgrade. These rules were in place since 12/5/2011, with WP 3.2.1 and never caused a problem.

I was able to revert a backup of the site to 3.2.1, on the same exact server environment, and confirm that these same valid htaccess rewrite rules were not a problem in that release.",ronnieg
23867,add_rewrite_endpoint causes front-page.php template to be ignored,,Rewrite Rules,3.5.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2013-03-26T21:49:18Z,2013-04-16T00:50:35Z,"I have a front-page.php template in my theme folder, as per the template hierarchy this is used regardless of whether I am showing posts or a page as the front page.

However, when I add a rewrite endpoint (on the init hook), index.php is used for the front page template when I add my query var to the URL. It makes no difference if I set the front page to show posts or a page. If I do not add the query var, front-page.php is correctly used.

i.e. http://domain.com correctly uses front-page.php, http://domain.com/nl wrongly uses index.php

This happens whether I use EP_ALL or EP_ROOT as the places parameter.

All other template files are fine, it's only the homepage with the problem as far as I can see.",lumpysimon
22619,add_rewrite_endpoint generates incorrect attachment rules,,Rewrite Rules,,normal,normal,Awaiting Review,defect (bug),new,,2012-11-28T08:47:43Z,2013-05-15T17:31:34Z,"{{{add_rewrite_endpoint}}} with {{{EP_ALL}}} or {{{EP_ATTACHMENT}}} results in incorrect endpoint matches. The index set for the endpoint value is {{{2}}} which ends up returning the slash as well. The index should actually be {{{3}}} since we only care about the inner match.

Example:

{{{add_rewrite_endpoint( 'my-endpoint', EP_ALL )}}}

Results in rules like (dump from {{{$wp_rewrite->generate_rules}}}:

{{{
  '.?.+?/([^/]+)/my-endpoint(/(.*))?/?$' =>
  string(35) ""index.php?attachment=$1&my-endpoint=$2""
  '.?.+?/attachment/([^/]+)/my-endpoint(/(.*))?/?$' =>
  string(35) ""index.php?attachment=$1&my-endpoint=$2""
}}}

Visiting a {{{my-endpoint}}} URL for an attachment like {{{/2012/01/01/post-name/attachment/my-endpoint/foo/}}} will return the value of {{{get_query_var( 'my-endpoint' )}}} as {{{/foo}}} instead of {{{foo}}}.",batmoo
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
19493,post and archive pagination don't work with custom endpoints,,Rewrite Rules,2.1,normal,normal,Awaiting Review,defect (bug),new,,2011-12-09T23:55:09Z,2013-06-14T14:37:44Z,"Archive pagination and post pagination are not endpoint-aware, so they break when endpoints are added to them.  

The following example code creates an endpoint, and then uses a filter to add that endpoint to various links on the rendered page:

{{{
add_action( 'init', function() {
	global $wp_rewrite;
	add_rewrite_endpoint( 'foo', EP_ALL );
	$wp_rewrite->flush_rules(false);
} );

add_filter( 'post_link', 'gist_add_endpoint_to_url', 99 );
add_filter( 'get_pagenum_link', 'gist_add_endpoint_to_url', 99 );
function gist_add_endpoint_to_url( $url_base ) {
	$endpoint = 'foo';

	$url_parts = parse_url( $url_base );

	$url = ( isset($url_parts['scheme']) && isset($url_parts['host']) ) ? $url_parts['scheme'] . '://' . $url_parts['host'] : '';

	$url .= isset($url_parts['path']) ? $url_parts['path'] : '';

	$url = user_trailingslashit( $url );

	if ( '' === get_option('permalink_structure') ) {
		$url .= isset($url_parts['query']) ? '?' . $url_parts['query'] : '';

		$url = add_query_arg( $endpoint, 'true', $url );
	} else {
		$url .= $endpoint . '/true';
		$url = user_trailingslashit( $url );
		$url .= isset($url_parts['query']) ? '?' . $url_parts['query'] : '';
	}

	$url .= isset($url_parts['fragment']) ? '#' . $url_parts['fragment'] : '';

	return $url;
}
}}}

You'll see that it works perfectly using the theme unit test, except that paginated posts produce URLs like this:
http://example.com/2008/09/layout-test/foo/true/2/ 
...which doesn't work.  The inverse -- http://example.com/2008/09/layout-test/2/foo/true/  -- also doesn't work, and produces a 404 on top of it. 

Also, the older posts / newer posts produce this format of link:
http://example.com/page/2/foo/true/
.. .which also doesn't work.

If you change gist_add_endpoint_to_url() to add a querystring param, older posts/newer posts links work fine, but post pagination still breaks:
{{{
function gist_add_endpoint_to_url( $url_base ) {
	$endpoint = 'foo';
	$url_base = add_query_arg( $endpoint, 'true', $url_base );
	return $url_base;
}
}}}

If you don't use a permalink structure at all, it works fine, since the pagination params are passed directly in the URL.

I'm not sure if the fix lies in modifying add_rewrite_endpoint() so that it creates pagination urls in wp_rewrite, or modifying the way _wp_link_page() and get_next_posts_link() work.  ",mintindeed
16830,url_to_postid() doesn't resolve attachments when rewrite rules are disabled,,Rewrite Rules,3.1,normal,normal,Awaiting Review,defect (bug),new,,2011-03-11T01:09:14Z,2011-04-03T04:11:21Z,"The code of {{{url_to_postid()}}} is pretty clear in the case of disabled rewrite rules: all URLs not using the {{{p=N}}}, {{{page_id=N}}} or {{{attachment_id=N}}} forms are not parsed and the function return 0. That make sense.

Now there is a special case for attachments. Attachments can be saved under a the {{{/wp-content/uploads/year/month/}}} folder structure while rewrite rules are disabled at the same time.

This means there is a missed opportunity for {{{url_to_postid()}}} to resolve attachment's URLs of the long-form when rewrite rules are disabled.

This was tested and reproduced on WordPress 3.1.",Coolkevman
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
21374,Add core support for letting custom permalink structure for different post types,,Rewrite Rules,3.4.1,normal,normal,Awaiting Review,enhancement,new,,2012-07-25T14:42:15Z,2012-09-19T09:56:07Z,"By default, custom post types uses only the'' %postname%'' permalink structure (if using pretty links and not default query variables).
Currently there is no native way to easily have different permastructs for different CPT.

This features should be added to the '''register_post_type()''' function, letting different permalink structure be defined to each post_type being registered.

I sugget adding another new key to the '''rewrite''' array that can be passed to the '''register_post_type()''' function. 

i.e. - 

{{{
register_post_type('event',array(
......
'rewrite' => array('slug' => 'events', 
	   'permastruct' => '%year%/%monthnum%/%event%'
	),
.....
));
}}}

The register_post_type function should be changed, a suggestion for such a change may be that instead of this line in the function - (post.php line#1075)

{{{
add_permastruct( $post_type, ""{$args->rewrite['slug']}/%$post_type%"", $args->rewrite );
}}}

This example could be used - 


{{{
if (  $args->rewrite['permastruct'] )	{			
			$perma_structure = $args->rewrite['permastruct'];			
			$wp_rewrite->add_rewrite_tag(""%{$post_type}%"", '([^/]+)', ""{$post_type}="");
			$wp_rewrite->add_permastruct($post_type, $archive_slug.'/'.$perma_structure, false);	
		}
		else	{
			add_permastruct( $post_type, ""{$args->rewrite['slug']}/%$post_type%"", $args->rewrite );			
		}
}}}



In order that the structure can interpret the permastruct tags, I added also this function to filter post_type_link, it is adapted from '''get_permalink''' function in ''wp-includes/link-template.php'' -

{{{
add_filter('post_type_link', 'tc_permalink', 10, 3);	
function tc_permalink($permalink, $post_id, $leavename) {
	$post = get_post($post_id);
	$rewritecode = array(
		'%year%',
		'%monthnum%',
		'%day%',
		'%hour%',
		'%minute%',
		'%second%',
		$leavename? '' : '%postname%',
		'%post_id%',
		'%category%',
		'%author%',
		$leavename? '' : '%pagename%',
	);
 
	if ( '' != $permalink && !in_array($post->post_status, array('draft', 'pending', 'auto-draft')) ) {
		$unixtime = strtotime($post->post_date);
 
		$category = '';
		if ( strpos($permalink, '%category%') !== false ) {
			$cats = get_the_category($post->ID);
			if ( $cats ) {
				usort($cats, '_usort_terms_by_ID'); // order by ID
				$category = $cats[0]->slug;
				if ( $parent = $cats[0]->parent )
					$category = get_category_parents($parent, false, '/', true) . $category;
			}
			// show default category in permalinks, without
			// having to assign it explicitly
			if ( empty($category) ) {
				$default_category = get_category( get_option( 'default_category' ) );
				$category = is_wp_error( $default_category ) ? '' : $default_category->slug;
			}
		}
 
		$author = '';
		if ( strpos($permalink, '%author%') !== false ) {
			$authordata = get_userdata($post->post_author);
			$author = $authordata->user_nicename;
		}
 
		$date = explode("" "",date('Y m d H i s', $unixtime));
		$rewritereplace =
		array(
			$date[0],
			$date[1],
			$date[2],
			$date[3],
			$date[4],
			$date[5],
			$post->post_name,
			$post->ID,
			$category,
			$author,
			$post->post_name,
		);
		$permalink = str_replace($rewritecode, $rewritereplace, $permalink);
	} else { // if they're not using the fancy permalink option
	}
	return $permalink;
}
}}}



On a basic check this seems to be working, but ofcourse needed to be more deubgged.. I will be happy to here if you think such a feature should be added to core.",maorb
23491,Add hook to insert_with_markers() so theme/plugin authors can prevent writing to .htaccess,,Rewrite Rules,,normal,normal,Awaiting Review,enhancement,new,,2013-02-17T17:09:18Z,2013-02-17T17:09:18Z,"If not using .htaccess to rewrite, but instead keeping those settings in an Apache config file, it would be nice if writing the .htaccess file could be prevented by hooking into the function that does that (e.g. returning false or something like that).

Why? If the Apache option AllowOverride is turned off (which it should be for performance reasons, if not using any .htaccess files) the file won't ever be read. But still having it around (except cluttering) can possibly confuse someone having access to the server, seeing the file and thinking it actually controls anything. Especially since most WordPress support threads on the Internet assumes that an .htaccess file is used for rewrite rules.

One solution is to keep an empty, non-writable .htaccess file, optionally having a comment in it saying it's unused, but getting rid of the file altogether would be much cleaner. Also, it can still happen that someone accidentally changes the file permission, and someone else (or the same person) saves permalink options, saving a new .htaccess file, having created the possibility of confusion once again.",alimony
14549,Allow Control over Hard vs. Soft Rewrite Flush,,Rewrite Rules,,normal,normal,Future Release,enhancement,new,dev-feedback,2010-08-06T02:20:24Z,2011-01-13T04:42:36Z,"Many times when the rewrite rules are flushed, it really only requires that the rules be written to the database and not .htaccess. In some cases, re-writing .htaccess can cause detrimental changes to the mod rewrite rules.

This patch allows a plugin author to have control over whether a hard flush is executed when flush_rewrite_rules() is called.

Introduces filter: flush_rewrite_rules_hard

Depends on #14546",ikailo
18962,Allow duplicate slugs for different content,,Rewrite Rules,,normal,normal,Future Release,enhancement,new,needs-unit-tests,2011-10-16T16:23:34Z,2013-05-24T14:25:26Z,"Currently, the slug of a post (or any other CPT) must be unique. 
If a content is being created and an already existing slug is being assigned to it - WP will add a number for identification (i.e. about-2 etc).

That means, that if one has content from different content types, or in different categories (taxonomies), it still cannot have same slug.

The issue might be very disturbing when working in a multi lingual site (i.e using WPML or any other plugin for that).
Suppose there is an about page - www.mysite.com/about.
This is in the main language of the site.
Than a translation to that content page is being added,  let's say it is translation to English.
You would expect url something like www.mysite.com/en/about, but the slug is being changed to about-2, so the url of the about page in English becomes www.mysite.com/en/about-2.
For a site with 10 languages, let's say, it will end with urls like site.com/lang/about-10 etc.. and this is not looking good and may confuse.

As a cms, WP should let the admin/developer/operator - to have same slugs for different content types, or even in the same content type. The $post->ID is the unique identifier of a content, why should be also the slug?

",maorb
13837,"Better site rewrite handling and UI, fix hard/soft rule flushing",,Rewrite Rules,,normal,normal,Future Release,enhancement,new,,2010-06-11T00:13:17Z,2010-10-28T09:38:07Z,"Per discussion in IRC. We want to cleanup and make hard/soft rewrite rule flushing consistency, etc.",wpmuguru
12779,Better support for custom post types in WP_Rewrite,ryan,Rewrite Rules,,normal,normal,Future Release,enhancement,new,,2010-03-30T20:04:30Z,2012-08-24T05:17:56Z,"See also #12605 and [13773].

We currently use bitmasks in WP_Rewrite, which we should remove and convert to an array of URL types that can be checked using in_array(). We currently do not use bitmask operations in WP_Rewrite that would make them preferable for use.

To currently use custom post types with endpoints, a plugin would need to do the following, from [comment:5:ticket:12605 dd32 in #12605]:
{{{
define('EP_WIKI', 131072); // 2^17. 2^13 is used by core.
register_post_type('wiki', array(
	'label' => __('Wiki'),
	'public' => true,
	'supports' => array('revisions', 'editor', 'title'),
	'permalink_epmask' => EP_WIKI,
	'hierarchical' => true
));
add_rewrite_endpoint('history', EP_WIKI);
}}}

In particular:
> Care would need to be taken that any custom endpoints are in {{{2^x}}} format, and not currently in use by any other plugins loaded.

This would need to be backwards compatible with the existing bitmasks. More or less, {{{WP_Rewrite::add_endpoint()}}} would need to still take bitmasks and convert them to the new format.",nacin
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
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
11931,Day/Month/Year Permalink Structure Fails in Archives,ryan,Rewrite Rules,2.8.6,normal,normal,Future Release,enhancement,new,,2010-01-17T14:53:37Z,2010-06-23T17:02:55Z,"If you use a permalink structure with %day%/%monthnum%/%year% then the archives automatically become date/%day%/%monthnum%/%year%. Wordpress automatically makes the links to monthly archives date/01/2010 etc (which is good), but if you go to it you get a 404 not found.

Reproduce using for example /%post_id%/%postname%/%day%/%monthnum%/%year%/

I ""fixed"" it with this plugin I wrote, but it will probably fail when things like /page/2/ come into play (that wasn't really important yet). ",Frenzie
14502,Enable /post-type/taxonomy/term/ permalinks,,Rewrite Rules,,normal,normal,Future Release,enhancement,new,,2010-08-01T22:57:29Z,2013-02-07T21:52:30Z,"After we get /post-type/ handled (see #13818), it would be nice if we also had /post-type/taxonomy/term/ mapped to ?post_type=post-type&taxonomy=term",scribu
13701,Full support for middle and little endian permalink structures,,Rewrite Rules,2.9.2,normal,normal,Future Release,enhancement,reopened,needs-unit-tests,2010-06-02T14:34:08Z,2013-05-14T13:32:31Z,"This only happened after I switched over to the WordPress 3.0 development version, so I'm inclined to think it's a bug.  When I use the traditional wp_get_archives or the dropdown version it shows that posts exist.  However, when I click to go to any of those past posts, I only get a 404 Error.  This problem is very consistent, happening 100% of the time.  Disabling all plugins has no affect on the problem.

The only other information that might be helpful is that I've integrated WordPress into a website that I built and I am using a custom theme that I built.  It only has the index.php, single.php, and style.css files.

Again, the wp_get_archives function worked just fine with the exact same setup that I have now prior to switching to the 3.0 version, so I'm not sure what changed.",RevelationTravis
16725,Inconsistent leading slash in WP_Rewrite,,Rewrite Rules,,normal,normal,Future Release,enhancement,new,,2011-03-02T17:25:58Z,2011-03-02T17:25:58Z,"#16626 revealed an inconsistency in WP_Rewrite, where {{{$wp_rewrite->front}}} has a leading slash, but the final rules array doesn't.

This is caused by the fact that {{{$wp_rewrite->permalink_structure}}} itself has a leading slash.

Also note that {{{$wp_rewrite->search_structure}}} stands out as the only structure that doesn't have a leading slash.

This should be made consistent somehow.",scribu
22798,"Invalid URLs not giving 404 with ""Default"" permalink settings",,Rewrite Rules,3.4.2,normal,normal,Awaiting Review,enhancement,new,,2012-12-06T23:39:35Z,2012-12-07T03:25:50Z,"'''Steps to reproduce:'''
 - Set up Wordpress with the default .htaccess
 - Select the ""Default"" option under Permalink Settings
 - Enter an invalid URL eg 'http://blogroot.com/garlbeflax.abc'

'''Expected Behaviour:'''
 - 404 page is displayed

'''Observed Behaviour:'''
 - No 404 page is ever shown, no matter what the request string is
 - Instead, Wordpress behaves as if no path was requested, eg displaying the homepage/posts lists.
 - If requested url has any of the standard params in it, those params ARE executed, eg http://blogroot.com/foo?paged=2 would properly show the 2nd page of the posts.

'''Suspected cause:'''

In line 620 of wp-includes/class-wp.php (in WP->parse_request), there is a conditional which means the only time the request can be marked as a 404 error is if the array of rewrite rules is NOT empty:
{{{
        $rewrite = $wp_rewrite->wp_rewrite_rules();

        if ( ! empty($rewrite) ) {
           ...
}}}

If the ""Default"" permalink is selected, and no other rewrite rules are set up elsewhere (for reasons I didn't investigate, adding a add_rewrite_rule to the theme didn't affect anything), then the $rewrite array IS empty and the request can not be checked to see if it's a 404. Therefore, execution of the request continues as if no path info were submitted.

This prevents the showing of the theme's 404 page, and can get a website flagged as spam/exploitative in Google's index.

'''Workaround:'''

Define a permalink redirect (eg pick one of the options other than Default). 

Server info:
{{{
Apache/2.2.16 (Debian) (w/ mod_rewrite)
PHP Version 5.3.3-7+squeeze3 (mod_php5)
}}}

.htaccess contents:
{{{
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
}}}",vanchuck
18450,New safe action to add rewrite rules on,,Rewrite Rules,3.2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-08-16T19:56:10Z,2012-05-14T19:44:58Z,"Currently I don't believe it's possible to meet the following two criteria:

* Not flush rewrite rules on every page load
* Ensure that you always have your rewrite rules available

The problem arises when Plugin A has not yet added it's rewrite rules, but Plugin B calls ```flush_rewrite_rules```. Plugin A is a good citizen, and doesn't call ```flush_rewrite_rules``` unless it needs to and so now it's rewrite rules are no longer present. (See http://wordpress.stackexchange.com/questions/26029/when-to-call-add-rewrite-rule-for-safety for more.)

Westi suggested that hooks on delete_option and get_option of 'rewrite_rules' might work. This covers almost all situations, except the one where permalinks are off and then get turned on again when neither the delete_option or get_option actions/filters are fired.

Devs could hook the new action for their ```add_rewrite_rule``` calls, and use their own methodology to determine when to call ```flush_rewrite_rules```.

Two attachments:

* Example plugin, showing (hopefully) the problem with the existing situation
* Diff showing where the hook might be added

",simonwheatley
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
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_
18502,Show ID on Custom Post Types Permalinks,,Rewrite Rules,,normal,normal,Awaiting Review,enhancement,new,,2011-08-23T18:43:19Z,2011-08-23T18:50:35Z,"Hi...
I have been using now lots of custom post types for different portals, and found that it's something no one ever knew, thought would be a cool feature if possible.

Now i have one custom post type for dvds, when the user publishes, it gets to 
/dvd/name-of-dvd

The other settings for permalinks is set to show /%post_id%/ so in the blog it gets
/1/name-of-post

Just on custom post types it's imposible to make that.
For some things, like jobs, dvd, books, maybe there are things with same name, and an ID would be better to identify...

",kaiserlino
15324,There needs to be a page_base in rewrite.php,,Rewrite Rules,3.1,normal,normal,Future Release,enhancement,assigned,dev-feedback,2010-11-05T21:34:26Z,2011-01-13T10:45:44Z,"I'm not sure why this feature doesn't exist. It looks trivial and important. There are many reasons for putting pages at, say, /page/%pagename%. The attached patch makes it possible to write a plugin to allow this.",nkuttler
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
24473,is_home returns true for pages created with custom rewrite_rules,,Rewrite Rules,3.5.1,normal,normal,Awaiting Review,enhancement,new,,2013-05-31T19:10:20Z,2013-05-31T19:10:20Z,"I have a plugin for question and answers, where the questions index and question pages are created using add_rewrte_rule . (I know I could do something similar using custom post types, but this plugin was done long before this feature).

here are my rewrites called in init hook:


{{{
add_rewrite_rule('^questions/([^/]+)/?', 'index.php?questions_category=$matches[1]', 'top');
add_rewrite_tag('%questions_category%', '([^&]+)');
}}} 

The problem is, in the header of the template I use is_home() to load some custom codes, but is_home() is returning true in theses question pages.

Tthese pages are not of any wordpress type (post, page, 404, home, archives - tax, dates, categories and so on). My suggestion is to create a new is_dynamic boolean variable for this kind of pages.",LucasMS
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
24526,Compare two mode can't be triggered from the URL in the new revisions UI,,Revisions,trunk,normal,normal,3.6,defect (bug),new,,2013-06-07T00:37:23Z,2013-06-07T02:52:26Z,"The revisions comparison UI in version 3.5 and earlier supported URL parameters to set the revisions to be compared by setting ''left'' and ''right'' query arguments. With the heavily-JS-dependent UI coming in 3.6, there isn't a way to link to specific comparison.

Shouldn't we use pushState to update the URL when comparing two revisions so users can continue to link to a chosen comparison? It can be helpful to share a link to a given comparison when collaborating on changes or auditing where a modification originated from, to name a few scenarios.",ethitter
24388,Optimize revisions diff loading - especially when many revisions,,Revisions,trunk,normal,critical,3.6,defect (bug),new,dev-feedback,2013-05-22T20:16:48Z,2013-05-24T23:16:21Z,"Currently viewing the revisions page chokes the browser when there are many revisions (say over 50) - even with a lower number the browser seems overwhelmed by the numerous ajax requests fired to load the comparison diffs.

* limit the number of simultaneous ajax requests
* group diff requests to optimize loading and limit total number of calls when there are many revisions
* caching for diff calculations  ",adamsilverstein
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
20299,"Preview changes on a published post makes all post meta ""live""",,Revisions,3.3.1,normal,major,Future Release,defect (bug),new,has-patch,2012-03-25T02:02:16Z,2013-06-05T12:49:45Z,"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
24377,"Revisions 'compare_two_mode' always true, no longer used",,Revisions,trunk,normal,normal,3.6,defect (bug),new,has-patch,2013-05-20T23:17:21Z,2013-05-21T20:03:40Z,"the variable compare_two_mode is no longer used in ajax-actions.php, it can be removed",adamsilverstein
24405,Revisions needs a functional fallback for no-js,,Revisions,trunk,high,blocker,3.6,defect (bug),new,has-patch,2013-05-23T21:42:30Z,2013-06-06T20:21:57Z,"Since editing, comparing and restoring revisions requires javascript, we should not make it possible open revisions from the editing screen.

In the patch, I took a stab at adding an error message to the Revisions metabox as well as a solution for disabling the edit link if no-js. Not a huge fan of tacking on an extra span to `$date` just for no-js, but as far as I'm aware, we don't have a way to test for javascript support in PHP.",DrewAPicture
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-22T20:07:31Z,"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
24056,Revisions: UI a bit unusable when you have ALOT of revisions,,Revisions,trunk,highest omg bbq,blocker,3.6,defect (bug),new,has-patch,2013-04-12T04:35:28Z,2013-06-01T09:27:40Z,"It could be a good idea to limit to last 25 or 50 revisions in the new UI.

I came across an extreme example of this on a WordPress.com site today, where I have something like 130 revisions for the Custom CSS post type. But, this same issue could apply to core post types, though—posts and pages—if the number is high enough.

When I loaded the revisions page, the ""calculating revision diffs"" message rans for a few minutes, and then ""arrow"" to move with was moved way off the screen to the right, creating a horizontal scrollbar.

The next and previous buttons are obscured by the long scrubber timeline graphic.

Screenshot attached.",lancewillett
23923,wp_get_post_revisions returns incorrect order,,Revisions,,normal,minor,Awaiting Review,defect (bug),new,,2013-04-03T12:07:19Z,2013-04-08T00:27:47Z,"When a post has multiple revisions and each revision has the exact same timestamp, `wp_get_post_revisions` returns revisions in reversed order, causing `wp_save_post_revision` to [http://core.trac.wordpress.org/browser/trunk/wp-includes/revision.php#L116 make a bad choice] for `$last_revision` (which is actually the first revision) and produce an extra revision, even if it has not been changed.

In a normal environment this doesn't happen, unless you run `wp_update_post` several times in a row in under one second, so this is an edge case. This edge case causes our [http://core.trac.wordpress.org/browser/tests/trunk/tests/post/revisions.php#L55 revisions.php tests] to fail randomly, depending on whether the updates happened with the same timestamp or not.

To reproduce, try running the revisions unit tests several times in a row.",kovshenin
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
18733,Show revision number for post/pages in Revision list,midhund,Revisions,3.3,normal,normal,Future Release,enhancement,new,,2011-09-21T11:26:33Z,2013-05-02T09:46:41Z,"Sometimes the current revision title is not enough to identify the post/page revisions on the list. So I wish to show the revision number with link to revisions's page.

I have the patch, please review it.",midhund
13382,_wp_post_revision_fields filter is not very useful,,Revisions,3.0,normal,normal,Future Release,enhancement,new,,2010-05-13T20:57:51Z,2013-01-21T14:48:16Z,"The _wp_post_revision_fields filter allows plugins to modify which post fields get revisioned (the default is title, content, excerpt).

It's pretty useless, though, since it's only run once and can't be changed by post_type.  A custom post type, for example, might only want to enable revisions on the content.

The _wp_post_revision_fields() is also a variation on the getter/setter pattern (static variable) we use in a few places to avoid globals.  It makes the function kind of crazy.

Proposal:  Split into two functions

{{{
@var int|object|array $post post_id or post object or post array
@return array Fields to revision: array( field => i18n'd label )
function wp_get_post_revision_fields( $post ) {
    // filter with _wp_post_revision_fields: pass post_id, post_type, ...?
    // don't cache results
}

@internal
@var array $past post array
@return array Filled $post array with revision info
function _wp_post_revision_fields( $post ) {
    $revisionable = wp_get_post_revision_fields( $post )
    // ...
}
}}}

I'd like to see this in 3.0 if we can, but marking as 3.1 for now.",mdawaffe
9681,Add hooks to allow a plugin to support the deletion of unneeded revisions,,Revisions,2.8,low,minor,Future Release,feature request,new,,2009-04-29T15:50:32Z,2013-01-21T14:59:10Z,"There currently is a means to restore a revision, but no means to delete one.",Denis-de-Bernardy
23314,Allow published posts to be revised without being updated immediately,,Revisions,,normal,normal,Future Release,feature request,new,early,2013-01-29T19:39:01Z,2013-04-10T09:08:15Z,"Two things. Let's allow contributors to submit changes for review to their published posts. Let's also allow users to make changes to their posts and pages and save those changes, without updating the published post or page.",kovshenin
10834,schedule a revision to publish without unpublishing existing content,,Revisions,,normal,normal,Future Release,feature request,new,,2009-09-23T20:49:27Z,2010-03-25T04:28:23Z,"Boy, it sure would be swell if I could take an existing post/page, edit the content or add tags/custom terms, and then schedule that revision to be published later, without unpublishing the previous revision.

Other people think it would be cool too... [[BR]]
http://wordpress.org/support/topic/216545 [[BR]]
http://wordpress.org/support/topic/226600 [[BR]]
http://wordpress.org/support/topic/273701 [[BR]]
http://wordpress.org/support/topic/273730 [[BR]]
http://wordpress.org/support/topic/275932 [[BR]]
",alxndr
24425,Revisions cleanup,,Revisions,trunk,high,normal,3.6,task (blessed),new,,2013-05-25T20:47:40Z,2013-06-16T15:18:45Z,"I'm looking over Revisions with Nacin and Koop. We think it needs a general cleanup, on the JS side, and for the Ajax endpoint. Tracking that on this ticket. This might run into some other tickets, but I didn't want to hijack them:

#24056
#24346
#24388",markjaquith
12014,Author selection becomes performance issue with large userbase with quick edit in admin,,Quick/Bulk Edit,,normal,normal,Future Release,defect (bug),new,,2010-01-25T17:51:15Z,2010-03-25T10:08:25Z,"MU Trac Ticket: http://trac.mu.wordpress.org/ticket/1086

When the author user base becomes too large, the script handling for the quick edit or inline edit begins to fail. In our specific situation, we have over 14000 authors for a single blog. This is causing the inline-edit-post.js to timeout and not completely render all the fields.

Since this would be such a rare issue, I think the best solution would be to just offer a hook that could keep the author option from being a part of the quick edit form. Since the field value is filled by js, then just replacing it with a hidden input keeps the author from being replaced on update.
",wpmuguru
12769,Disappearing posts/pages (in quickedit mode),,Quick/Bulk Edit,2.9.2,low,minor,Future Release,defect (bug),new,,2010-03-30T08:53:39Z,2011-03-13T22:53:58Z,"Steps to reproduce:
1. Quickedit a post.
2. Click save and instanly click quick-edit on another post.
When the ajax-request completes the first quick-edited post will disappear from the posts table. This is only a display bug.",catahac
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
19907,Updating an unpublished draft post in quick-edit mode sets the post's publish date,,Quick/Bulk Edit,2.7,normal,major,Future Release,defect (bug),new,needs-unit-tests,2012-01-27T14:51:32Z,2013-06-12T19:42:56Z,"'''Problem:'''

 • If you update an unpublished draft post in quick-edit mode, the post's ''publish date'' is saved. [[BR]]
 • Then, later on, when you actually publish the post, its publish date is incorrect.

'''Suggested fix:''' 

 • If the post is a draft, do not automatically set the post's publish date in quick-edit mode.

'''Steps to reproduce:''' 

(1) Go to WP-Admin -> Posts.

(2) Create and save a new post. Make sure you click ""Save Draft"" — not ""Publish"".

(3) Note that the post is marked as ""Publish immediately""; that is, it has no publish date.

(4) Go back to WP-Admin -> Posts.

(5) Hover your pointer over the post you just created. Click ""Quick Edit"". 
 — Note that in the panel that appears, the ""Date"" field is automatically set to [the current date and time].

(6) Click ""Update"" in quick-edit mode.

(7) Hover your pointer over the post you just updated. Click ""Edit"". 
 — Note that in the Edit Post page that appears, the post is now marked as ""Publish on: [the date and time from step (5)]""
",uxtremist
19859,"""Bulk Edit"" Missing The Ability To Edit Tags",gavinwye*,Quick/Bulk Edit,,normal,normal,Awaiting Review,enhancement,accepted,,2012-01-20T02:56:24Z,2013-06-19T20:13:51Z,"Though I can add, remove and edit ""categories,"" I cannot do such actions to ""tags"" inside of /wp-admin/edit.php

So basically, I'm interested in a ""bulk tag editing"" GUI for the WordPress admin.

===

I was hoping to find out the status of this feature (planned, not planned, etc) but it appears that no one has spoken about this feature on the WordPress Trac.

Is there any interest in adding this feature? And could the respondent please provide any details on why or why not?

Thank you for your time.",ademos
19392,Add auto-suggest support for all flat taxonomies in Bulk Edit.,,Quick/Bulk Edit,3.0,normal,normal,Awaiting Review,enhancement,new,early,2011-11-29T18:37:18Z,2011-11-29T18:58:48Z,"Auto-suggest in the Bulk Edit area for post_tag's was fixed in 3.3. Let's add support for all other non-hierarchy tax's in 3.4. 

See [http://core.trac.wordpress.org/ticket/19176#comment:11 #19176] for more info.",scottbasgaard
12940,Add filter for contents of Quick Edit panel,,Quick/Bulk Edit,3.0,normal,normal,Future Release,enhancement,new,,2010-04-09T16:16:07Z,2012-06-27T15:22:40Z,"Quick Edit / Reply for comments has a filter called {{{wp_comment_reply}}} which allows plugins to replace its contents.

However, there is no such filter for Quick Edit for posts.
With the new custom post type support, it can be very important for plugins to be able to replace the contents of the Quick Edit panel.[[BR]]
I would therefore like to create a similar filter for Quick Edit for posts.

Does anyone have any comments or suggestions?[[BR]]
And will it get into 3.0, or is it too late even though it's just a very minor change? I personally think it is very important that it gets into 3.0, since the utility of custom post types is severely limited in some cases by the lack of it.",caesarsgrunt
21840,Add filter for taxonomies shown in quick edit,,Quick/Bulk Edit,,normal,normal,Awaiting Review,enhancement,new,,2012-09-08T02:02:36Z,2012-09-08T17:08:36Z,"I'd like to propose that there be more options to adjust the default quick edits.  For instance, my Radio Buttons for Taxonomies plugin removes the default metabox for taxonomies and replaces it with one that uses radio inputs, which limits the user to a single term choice.  

However in the quick edit, this is easily circumvented, because I have no way to remove the taxonomy inputs from being displayed in their default ways.  

At the minimum, just adding a filter to the taxonomies would let me disable the default taxonomy inputs and then add my own.  More hooks/filters would be ideal, but I think this is the minimum I can get away with. 

Sorry it isn't a patch or diff... I'll try to get WordPress set up as a repo on my computer.  But in the mean time I'm proposing a change to :

/wp-admin/includes/class-wp-posts-list-table.php file 

in the '''inline_edit()''' method, for instance, i'd like to change


{{{
$taxonomy_names = get_object_taxonomies( $screen->post_type );
}}}


to:


{{{
$taxonomy_names = apply_filters( 'inline_edit_taxonomies', get_object_taxonomies( $screen->post_type ), $screen->post_type );
}}}

",helgatheviking
11302,Bulk editing posts should pre-fill fields with the same value,,Quick/Bulk Edit,2.9,normal,normal,Future Release,enhancement,new,,2009-12-01T20:48:41Z,2013-06-19T20:14:15Z,"All I need is quickly move some posts from one category to another.

How to simulate this problem:

Create 2 posts in Uncategorized category.
Check both of them - Bulk actions - Edit.
There is no category selected even if both posts are in Uncategorized. When I check Category1 and click Update, both posts are now in Uncategorized and also in Category1. But no chance remove them from Uncategorized with Bulk actions.",pavelevap
9683,Inconsistent font for Quick Edit labels,,Quick/Bulk Edit,,low,minor,Future Release,enhancement,new,needs-review,2009-04-29T22:02:15Z,2012-12-19T17:34:49Z,It's always bugged me that the labels for all the Quick Edit fields are a serif font and italic when all the other labels are sans-serif (aside from major headers and a few other elements).  Am I alone in this?,aaron_guitar
15637,Inline Edit Has No Hooks,,Quick/Bulk Edit,3.1,normal,normal,Future Release,enhancement,new,,2010-12-02T01:00:50Z,2012-05-11T11:23:26Z,"Currently, I am attempting to make it possible for an author to ""feature"" a post straight from the Quick Edit screen. I am looking in wp-includes/class-wp-posts-list-table.php and there are no hooks or actions for the Quick Edit screen so that I can add a checkbox or another input field in there.

I just want to add a checkbox to ""feature"" the post and then save it to the custom fields of that post, not too hard. But I need the do_action's to be there! Thanks!",sean212
11328,Issue with double click on comment's text when quick edit is used,,Quick/Bulk Edit,2.9,normal,major,Future Release,enhancement,new,,2009-12-04T21:12:35Z,2011-04-22T21:26:47Z,"When you edit comment via quick edit or when you write a reply on ""Edit Comments"" page and double click on text of other comment, used quick editing is turned off and quick editing is turned on other comment, with all text which you wrote lost.

I noticed this when I wrote a reply on one comment and when I wanted to copy a word from that comment by double clicking on it, my whole reply was lost.

So enabling of quick edit via double click on comment's text should be  disabled when quick edit is used.",dimadin
10480,Need method to display custom errors for quickedit,,Quick/Bulk Edit,2.8.2,normal,normal,Future Release,enhancement,new,reporter-feedback,2009-07-24T21:34:14Z,2011-07-27T06:01:59Z,"Some time ago I wrote [http://wordpress.org/extend/plugins/wypiekacz/ Wypiekacz] plugin. It checks if post satisfies some rules. When check result is negative, plugin displays message for the logged user. Unfortunately when post is edited with quickedit, user do not get any error message. It will be good do add mechanism do return custom error message to the client for quickedit.",sirzooro
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
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
14326,Renaming tags/categories causes unpredictable results,,Quick/Bulk Edit,3.0,lowest,trivial,Future Release,enhancement,new,,2010-07-16T02:39:14Z,2010-11-22T17:35:14Z,"When renaming a tag/category through quick edit, if the new title contains the character ' — ' (&8220;) the script produces unexplainable results.",kdizas
11472,Should QuickEdit remove posts from lists as needed?,,Quick/Bulk Edit,2.9,normal,normal,Future Release,enhancement,new,,2009-12-17T10:29:38Z,2013-01-21T23:51:08Z,"Create a draft post. Visit Posts / Edit, and quickedit the draft. Set its status to Published and save. It remains around, with the published status, instead of being removed from the list.

Reporting this just in case, as it might be a UI feature rather than a bug.
",Denis-de-Bernardy
12684,Add Edit to Bulk Actions menu on Categories screen,,Quick/Bulk Edit,3.0,normal,normal,Future Release,feature request,assigned,,2010-03-23T17:04:15Z,2013-01-22T01:46:29Z,"On edit-tags.php?taxonomy=category the only bulk action is Delete, because we never got around to adding Edit. We should add Edit to the bulk actions menu so people can change category parents easily. Has been requested on the Ideas forum a number of times, so am starting a ticket. If there's a technical reason not to add Edit to the bulk actions on this screen, then we should get rid of the menu and just have a Delete button. Adding Edit would be preferable, though, for consistency and usefulness. ",jane
12208,Add Quick Edit To Media Library,,Quick/Bulk Edit,,normal,normal,Future Release,feature request,new,,2010-02-12T01:45:12Z,2013-04-12T16:28:27Z,"I am requesting that a quick edit link be added to the media in the media library like what is on the posts page. I would like to quickly be able to edit titles, alts, and captions at least.",queenofdiy
19343,Allow Quick Edit to be Disabled for Custom Post Types,,Quick/Bulk Edit,3.3,normal,trivial,Awaiting Review,feature request,new,,2011-11-23T19:41:02Z,2012-11-22T03:17:16Z,"For some custom post types, quick edit doesn't make sense, and it's not easy to disable the quick edit code. You can use CSS to hide it but that still requires the code to be sent to the browser when it's not even needed.

The only other solution is to extend the ''WP_Posts_List_Table'' class and set the ''inline_edit()'' function to return nothing. Something like this: 
{{{
if(!class_exists('WP_List_Table')) {
	require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
}

if(!class_exists('WP_Posts_List_Table')) {
	require_once(ABSPATH . 'wp-admin/includes/class-wp-posts-list-table.php');
}

class My_Posts_List_Table extends WP_Posts_List_Table {
	function inline_edit(){}
}

function my_admin_head() {
	$wp_list_table = new My_Posts_List_Table();
	$wp_list_table->prepare_items();
}

add_action('admin_head-edit.php', 'my_admin_head');
}}}
Clearly, that is a lot of code to accomplish something so simple.

So, it would be nice if there was some way to disable quick edit. Maybe it could be a feature you could disable via the ""''supports''"" option when you register the custom post type?",Jick
18496,Quick edit loses custom colums and custom order - looks bad,,Quick/Bulk Edit,3.2.1,normal,minor,Awaiting Review,feature request,reopened,reporter-feedback,2011-08-23T01:56:37Z,2012-06-18T22:31:42Z,"Using manage_posts_custom_column, 'manage_posts_columns', 'manage_edit-'.$post_type.'_columns'  etc

to add custom columns to the manage edit lists and to change the order of the fields.

If Quick edit is used on a post, the custom columns disappear (visually - a refresh displays them again) and the custom column order is reset just for that post.

This results in a rather buggy looking display. (See attached screenshots).  All is okay on a refresh of the page.

I think this is related to http://core.trac.wordpress.org/ticket/17935. (explained differently, but possibly similar cause?)


",anmari
24608,Removing categories in bulk edit,,Quick/Bulk Edit,3.5.1,normal,normal,Awaiting Review,feature request,new,,2013-06-19T20:04:49Z,2013-06-19T20:10:17Z,"Currently you can only add categories, this can be problematic and it would be far more user friendly to make it work both ways. Especially useful with regard to the ""uncategorized"" category.",ubernaut
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
14825,'Sticky' Posts from excluded category still included in WP_Query results,ryan,Query,3.0.1,normal,major,Awaiting Review,defect (bug),reviewing,dev-feedback,2010-09-10T00:05:55Z,2011-04-20T22:54:20Z,"Hi,

I want to have a list of articles that exclude posts in a category I have called ""Stories."" Some articles in the Stories category are marked as ""sticky"".

{{{
$cat_id = get_cat_id(""Stories"");
$query = new WP_Query(""cat=-{$cat_id}&posts_per_page=10&caller_get_posts=0"");
}}}

However, this still returns articles from the Stories category, but only those that are marked as ""sticky"".

I've taken a look at the source code of wp-includes/query.php, and it seems that what's happening is that it prepends all ""sticky"" posts that were not in the initial query results, regardless of category. (There is only logic implemented that honours the {{{post_type}}}.)

I would appreciate it this bug be addressed and released in an upcoming WordPress release.

Thanks.",newmediarts
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
22556,A taxonomy archive query for attachments can't return results,,Query,3.5,normal,normal,Future Release,defect (bug),new,early,2012-11-23T15:11:50Z,2012-12-19T20:08:06Z,"In #21391 we made it easier to use custom taxonomies for attachments.

Example:
{{{
function ds_register_attachment_taxonomies() {
	$args = array(
		'label' => 'Color',
	);

	register_taxonomy(
		'image-color',
		'attachment:image',
		$args
	);
}
add_action( 'init', 'ds_register_attachment_taxonomies' );
}}}

This makes it also possible to make a query for this specific taxonomy. Example: 5 images has the term ""red"". The query: !http://example.com/image-color/red/

But: The page returns no attachments.

The query:
{{{
SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (404) ) AND wp_posts.post_type IN ('attachment') AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 1
}}}

The problem is the `AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'private')` part. Attachments post status is inherit, therefore no results.

The attached patch checks if the current post type is `attachment` and sets the post_status to `inherit`.

I would like to get this in 3.5, since it's one of the new features and could be really annoying,
",ocean90
19471,Automatically support custom post types in category and tag archives,,Query,3.0,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2011-12-07T20:56:03Z,2012-11-22T03:12:48Z,"I dealt with a plugin recently that had the following code in it:

{{{
#!php
<?php
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
    if(is_category() || is_tag()) {
        $post_type = get_query_var('post_type');
        if($post_type)
            $post_type = $post_type;
        else
            $post_type = array('post','external-videos');
        $query->set('post_type',$post_type);
        return $query;
    }
}
?>
}}}

The goal was simply to allow their custom post type that was connected to category and tag taxonomies to have its entries rendered on category and tag archive pages. Digging around, it seems that [http://wordpress.org/support/topic/custom-post-type-tagscategories-archive-page/ many people] are using a solution like this.

Of course, the code has problems in that it misses home pages and will mess with all other queries on the affected page (such as menus). Looking further in the thread, it seems people tried fixing up these limitations with code such as the following:

{{{
#!php
<?php
add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
  if(is_category() || is_tag() || is_home() && empty( $query->query_vars['suppress_filters'] ) ) {
    $post_type = get_query_var('post_type');
	if($post_type)
	    $post_type = $post_type;
	else
	    $post_type = array('post','articles','nav_menu_item');
    $query->set('post_type',$post_type);
	return $query;
    }
}
?>
}}}

While this may address the known issues, I don't see it as a solid solution in any way. Here are just couple of the primary issues I see with such a solution:

 * Things are very likely to change in the future (such as the possibility of adding additional core taxonomies or query modifications), causing the ever-increasing number of plugins that use custom post types to constantly have bugs.
 * Since the WP_Query->set function replaces values rather than merging them, even the ""fixed"" version of the code will cause plugin conflicts as multiple instances of this solution will systematically undo the modification done by each previous instance. Sure, the code could be improved to cover this, but the odds of getting everyone to fix their code are not good.

To me, this is something that was an oversight in the development of custom post types. I can think of no reason why this should not be automatically handled. The dashboard properly shows post counts for categories and tags that include the custom post types, but the query simply fails to handle this. It needs to be fixed.

Testing things out, I noticed that custom taxonomies did not have this problem at all. Looking at wp-includes/query.php, I saw the following:

{{{
#!php
<?php
if ( $this->is_tax ) { 
    if ( empty($post_type) ) { 
        $post_type = 'any';
        $post_status_join = true;
    } elseif ( in_array('attachment', (array) $post_type) ) { 
        $post_status_join = true;
    }   
}   
?>
}}}

This is what allows custom taxonomy archives to work properly without having to filter the query. I've always felt that is_tax should cover categories and tags as well, but what is done is done. So, I propose that this section is modified to include a check for is_category and is_tag. Example:

{{{
#!php
<?php
if ( $this->is_tax || $this->is_category || $this->is_tag ) { 
    if ( empty($post_type) ) { 
        $post_type = 'any';
        $post_status_join = true;
    } elseif ( in_array('attachment', (array) $post_type) ) { 
        $post_status_join = true;
    }   
}   
?>
}}}

This allows for things to ""just work"" as people would expect. Of course, plugins would have to remove their filter in order to avoid plugin conflicts as the post_type query arg would still be set and will not be changed automatically to ""any"". This is as it should be though, so people will just have to be convinced over time to remove the modification from their plugins.

Attached is the proposed patch.",chrisbliss18
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
18386,"Bug in custom query when ""Front page displays"": ""A static page""",,Query,3.2.1,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2011-08-12T10:34:16Z,2012-05-09T10:13:53Z,"Here is the bug I have found:
When Front page displays is set to: A static page
and Blog posts are displayed on other page a bug accours...

Lets prepare test enviroment, with clear wp installation and two posts, where one of them is set to default category, and other is set to newly created category (which defautly has ID = 3).
Now, prepare two pages, and in Setting -> Reading set Front page to one of those pages, and Posts page to second one.

If You would like to exclude posts from category no 3 from main blog index, normaly You would use:
<?php query_posts($query_string . '&cat=-3'); ?> in index.php (or specified loop file linked there).
This would work if blog index is set as home page, but fails to work when above test enviroment is used.",CyberSpy
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
15551,Custom post type pagination redirect,,Query,3.1,normal,normal,Awaiting Review,defect (bug),reopened,reporter-feedback,2010-11-23T21:50:06Z,2012-02-25T11:23:57Z,"We seem to be having a problem with a redirect on a custom post page (e.g., http://www.example.com/show/slug/).

Everything on the page shows correctly. The template pulls in posts with the following query:
{{{
<?php query_posts(array('meta_key' => 'show', 'meta_value' => $show->ID, 'paged' => get_query_var('paged'), 'caller_get_posts' => true)); ?>
}}}

After the posts we display pagination links (e.g., http://www.example.com/show/slug/page/2/). In our rewrite rules, we include the following rule which should handle these URLs:
{{{
'show/([^/]+)/page/([0-9]{1,})/?$' => 'index.php?show=$matches[1]&paged=$matches[2]',
}}}

Instead of the page displaying and allowing us to pull in the second page of posts, the browser is being redirected back to the original page (http://www.example.com/show/slug/) with a 301. I see that this is happening inside the redirect_canonical function. The following code in wp-includes/canonical.php replaces /page/2/ with / causing the redirect:

{{{
	// paging and feeds
	if ( get_query_var('paged') || is_feed() || get_query_var('cpage') ) {
		if ( !$redirect_url )
		        $redirect_url = $requested_url;
		$paged_redirect = @parse_url($redirect_url);
		while ( preg_match( ""#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#"", $paged_redirect['path'] ) || preg_match( '#/(comments/?)?(feed|rss|rdf|atom|rss2)(/+)?$#', $paged_redirect['path'] ) || preg_match( '#/comment-page-[0-9]+(/+)?$#', $paged_redirect['path'] ) ) {
		        // Strip off paging and feed
		        $paged_redirect['path'] = preg_replace(""#/$wp_rewrite->pagination_base/?[0-9]+?(/+)?$#"", '/', $paged_redirect['path']); // strip off any existing paging
		        $paged_redirect['path'] = preg_replace('#/(comments/?)?(feed|rss2?|rdf|atom)(/+|$)#', '/', $paged_redirect['path']); // strip off feed endings
		        $paged_redirect['path'] = preg_replace('#/comment-page-[0-9]+?(/+)?$#', '/', $paged_redirect['path']); // strip off any existing comment paging
		}
}}}",cbsad
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
23033,Decimal and numeric options in meta_query do not produce correct MYSQL for floating point numbers comparisons,wonderboymusic*,Query,,normal,normal,3.6,defect (bug),accepted,dev-feedback,2012-12-21T05:02:10Z,2013-02-08T17:08:47Z,"If you have a custom post type (shoes) that has floating point numbers (shoe size) as post meta, querying against this post meta with a specific decimal value ( >10.5 ) does not work properly because of the way the values are cast out of the database, and will produce surprising results.",ericlewis
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
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-06-18T12:35:48Z,"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
23475,Feed querystring not limiting returned posts by post type when also using category,,Query,3.5.1,normal,normal,Awaiting Review,defect (bug),new,,2013-02-14T20:15:44Z,2013-02-14T20:15:44Z,"I set up an example to demonstrate what's happening: http://demo.jarrodpyper.com/feed/?post_type=syndicated&category_name=craft

This feed *should* only return the one post on my site, ""test syndicate"" that is in the ""Syndicated"" post type and also in the ""craft"" category. Instead the post titled ""post"" of the default ""post"" post_type is being returned in the feed as well because it is also in the ""craft"" category.

This works correctly within a normal page using query_posts, which I thought would be similar if not the same as the way the querystring was handled when put into the URL.

Not sure if ""Query"" or ""Feed"" is the more relevant component keyword to use here.",jpyper
20011,Filtering posts for plugins that do not call posts to be filtered,,Query,3.3.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-02-10T15:35:02Z,2012-02-10T15:43:59Z,"In Query.php Line: 2745

Multisite Installation (3.3.1) While using Google XML Sitemaps Version 4.0beta4 

Change: 


{{{
	// Always sanitize
	foreach ( $this->posts as $i => $post ) {
		$this->posts[$i] = sanitize_post( $post, 'raw' );
		}
}}}


To:


{{{
	// Always sanitize
	if ($this->post_count > 0) {
		foreach ( $this->posts as $i => $post ) {
			$this->posts[$i] = sanitize_post( $post, 'raw' );
		}
}}}
",jroakes
23826,Funky conditional tags for posts archive,,Query,trunk,normal,normal,Awaiting Review,defect (bug),new,,2013-03-20T13:51:22Z,2013-04-04T04:14:12Z,"If a WordPress install is set to ""Front page displays ... Your latest post"", then some funky conditional tags are set. Of interest here are:

{{{ [""is_home""]=> bool(true) }}}
Sure, makes sense.

{{{ [""is_post_type_archive""]=> bool(false) }}}
Erm, what? Isn't this the post type archive for the posts post type? 

{{{ [""is_archive""]=> bool(false) }}}
Isn't this also an archive?

This means is_post_type_archive( 'post' ); doesn't work anywhere.

I also attempted creating a ""posts page"" for blog posts, and got the same results.",ericlewis
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
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
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
23309,Not all WP_Query::query_vars get updated during WP_Query::get_posts(),,Query,,normal,normal,Awaiting Review,defect (bug),new,,2013-01-28T15:40:56Z,2013-01-28T19:51:54Z,"There is a lot of logic within the WP_Query::get_posts() method that fills in missing query vars with defaults and manipulates others based on the rest of the query.  However, some of the final states for many of the variables aren't updated in the WP_Query::query_vars array.  For example, the post type is lost as a local variable and post_status is used for building compiling mysql expressions, but never directly updated.

The result is that any plugins that want to recreate the query for another system, (ie, an external search provider) must directly copy much of the business logic that WP_Query::get_posts() has embedded in it in order to fill in for the incomplete query_var array.

",prettyboymp
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
16025,Page and custom taxonomy query var 404s,,Query,,normal,normal,Future Release,defect (bug),new,close,2010-12-29T16:18:22Z,2011-03-03T02:17:24Z,"Reported in IRC. Visit a page and append ""customtax=foo"", where customtax is some registered taxonomy.

3.0.3 => displays the page
3.1 => 404, since obviously no pages matched in the custom taxonomy 

Here is associated code reporter used to register the custom taxonomy: http://pastebin.com/eqQbXVvh and they were visiting http://example/products/?surface=stone where products is a regular page (I ''assume'' from this they may be hoping to display only products with stone taxonomy, maybe with custom handling in a template to get it to work... again this is a guess.)

Seems like this is probably expected to me, but it is a change.",duck_
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
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
23336,"Sticky Posts lack sanity bounding. If used too much, can severely degrade performance.",,Query,,normal,normal,3.6,defect (bug),new,reporter-feedback,2013-01-31T05:09:37Z,2013-05-24T18:18:19Z,"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
22043,Undocumented default of post_type parameter to WP_Query with taxonomy queries,,Query,,normal,normal,Awaiting Review,defect (bug),new,,2012-09-28T19:24:35Z,2012-11-01T11:53:41Z,"post_type parameter default depends on the is_tax attribute. This is not documented here: http://codex.wordpress.org/Class_Reference/WP_Query#Type_.26_Status_Parameters

If is_tax is true, and post_type is not provided, the default of 'any' kicks in, and if is_tax is not set, the default of 'post' kicks in.

Either it is a bug, or perhaps just the documentation needs to be updated.

Please let me know what you think.

Thank you for sharing your software.",dbernar1
23849,Unexpected results when running WP_User_Query with role and meta_query,,Query,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-03-22T19:48:50Z,2013-04-24T00:42:11Z,"There appears to be a couple of bugs in WP_User_Query when doing a role query and adding additional meta_query options (especially when relation is set to ""OR"").

This code:
{{{
$args = array(
	'role'		=> 'Author',
	'number'	=> 100,
	'offset'	=> 0,
	'meta_query' => array(
		'relation' => 'OR',
		array(
			'key'		=> '_my_key',
			'compare'	=> 'NOT EXISTS',
		),
		array(
			'key'		=> '_my_key',
			'value'		=> 'off',
			'compare'	=> 'NOT LIKE',
		),
		),
);
$users = new WP_User_Query( $args );
}}}

Expected results:
Any author where _my_key either does not exist or if it does exists is set to ""off""

Returned results:
All authors and/or all users with _my_key set.

The above generates this SQL:
{{{
SELECT DISTINCT SQL_CALC_FOUND_ROWS wp_users.* 
FROM wp_users 
INNER JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id
INNER JOIN wp_usermeta AS mt1 ON (wp_users.ID = mt1.user_id)
INNER JOIN wp_usermeta AS mt2 ON (wp_users.ID = mt2.user_id) 
WHERE 1=1 
AND (wp_usermeta.meta_key = '_pigeonpack_subscription'
	OR  (mt1.meta_key = '_pigeonpack_subscription' AND CAST(mt1.meta_value AS CHAR) NOT LIKE '%off%')
	OR  (mt2.meta_key = 'wp_capabilities' AND CAST(mt2.meta_value AS CHAR) LIKE '%\""Author\""%') ) 
ORDER BY user_login ASC LIMIT 100
}}}


This seems like a bug to me, the ""Author"" meta should not be modified by the relation => 'OR' argument and thus should not be included in the other meta query statement. Further, the NOT EXISTS isn't a true NOT EXISTS statement. In fact, I'm not even sure why the NOT EXISTS statement looks the way it does. I haven't had too much time to look into this any more in depth.

I tested this in WP3.5 and Trunk
			",layotte
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
22995,WP_Query Category stuff blank page,,Query,3.5,normal,normal,Awaiting Review,defect (bug),new,,2012-12-18T18:59:18Z,2012-12-19T23:48:54Z,"hey there,
maybe I have found a bug. Sending following parameter to the WP Query (with my theme via ''?s=test%cat=1234'') you should get a blank page. At first I thought it was a bug of mine, but deleting following line in /wp-includes/query.php:1746 fixes the problem.

{{{
$q['category__in'][] = $cat;
}}}

So I think there's a bug in the query function...

Thanks,
Ninos",Ninos Ego
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
9300,WP_Query with posts_per_page and sticky posts,,Query,2.7,low,minor,Future Release,defect (bug),reopened,dev-feedback,2009-03-08T06:22:26Z,2013-04-29T08:28:36Z,"When using WP_Query with showposts=some_number and you have one post set as a sticky that is out of the range of some_number, the query returned will have some_number plus one posts returned. If the sticky post is within the range of some_number then only some_number of posts is returned by WP_Query.

'''Example Normal''': have 3 posts in order:
Post 1,
Post 2,
Post 3

my_WPQuery = new WP_Query(""showposts=2"");

This will return Post 1 and Post 2

'''Example Error''': have 3 posts in order:
Post 1,
Post 2,
Post 3 (<-- make sticky)

my_WPQuery = new WP_Query(""showposts=2"");

This will return 3 posts (Post 3, Post 1, Post 2).

''Expected to return 2 posts (Post 3, Post 1).''

'''Example OK''': have 3 posts in order:
Post 1,
Post 2 (<-- make sticky),
Post 3 

my_WPQuery = new WP_Query(""showposts=2"");

This will return 2 posts (Post 2, Post 1).",yukataninja
13365,"WP_Query, author_name, and sticky posts",ryan,Query,2.9.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2010-05-12T06:09:42Z,2012-08-30T00:17:35Z,"I have a template which is being used as my front page on WP 2.9.2. In this template I setup my loop with the following code:

{{{
$postresults = new WP_Query();
$postresults->query(""author_name=frontpage&post_types=post&post_status=publish"");
while($postresults->have_posts()) { $postresults->the_post(); ?>
// etc...
}}}

I am not using the ""caller_get_posts=1"" option, but my sticky posts are still showing up in order with other posts rather than at the beginning. If I remove the ""author_name=frontpage"" the sticky posts will move back to the first items, however I am stuck with posts by authors I do not want. Using ""author=2"" results in the same behavior as using ""author_name"".",eryanv
21790,When set a static front page WP main query isn't set correctly,,Query,3.4.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-09-04T13:50:26Z,2012-09-05T16:00:06Z,"In my project I use on several places pre_get_posts filter. When setting a static frontpage and blog page I get several notices on my screen. When I var_dump the main query the only value that is set it the page_id.
Even the post_type isn't set.",markoheijnen
24142,Zero value for posts_per_page value in wp_query custom instance and for 'Blog pages show at most' option,,Query,,normal,normal,Awaiting Review,defect (bug),new,needs-docs,2013-04-20T09:04:16Z,2013-04-20T12:55:34Z,"To show no posts if the posts_per_page value is 0.

Currently for custom instances of wp_query, if the value is 0 then this is changed with the value from posts_per_page option from the database. ""get_options( 'posts_per_page' )"" 

For home page if we set value 0 on the settings page, in wp-admin/options-reading.php, after the saves are changed, this value is changed to 1. 

I think for both cases if the posts per page value is 0 then no posts should not display.
",alexvorn2
17200,[Search] Posts containing search terms missing from Search Results,,Query,3.1,normal,major,Awaiting Review,defect (bug),new,reporter-feedback,2011-04-20T21:59:08Z,2011-04-21T08:27:25Z,"I tried to perform a search based on some text within [http://www.webfoundation.org/2010/03/web-foundation-tim-steve-featured-on-cnn-segment/ this article] on my site, specifically “Jason Sanchez”, but got no results.

Furthermore, when I [http://www.webfoundation.org/?s=cnn search for ""CNN""] (for example), only two entries come back:

* [http://www.webfoundation.org/2010/01/importance-of-web-in-haiti-earthquake-relief/ The Importance of the Web to Help Disaster Relief in Haiti]
* [http://www.webfoundation.org/about/boards/switzerland/iqbal-z-quadir/ Iqbal Z. Quadir]

…but not [http://www.webfoundation.org/2010/03/web-foundation-tim-steve-featured-on-cnn-segment/ this one], even though it should.

Other searches had similar problems (e.g., searching for ""video"", etc.). !WordPress' built-in search seems to have some serious flaws in its search algorithm. I'm hoping you can resolve this in an upcoming release.",newmediarts
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
17235,meta_query fails if you don't pass in an array of arrays,,Query,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-04-25T20:20:39Z,2011-07-10T20:44:55Z,"This tripped me up the first time I used meta_query (see #16563) and I've seen others fall into the same trap. If you don't pass in an array of arrays into meta_query, it generates some funky (but valid) SQL and fails to return anything.

The main instance where people will fall into this is if they only have a single key/value pair to look for. In this case, passing in an array of arrays does not seem intuitive, and meta_query should be smart enough to work with either. Examples below.

This doesn't work:

{{{
$my_query = WP_Query( array
	array (
		'post_type' => 'post',
		'meta_query' => array (
			'key' => 'my_key',
			'value' => 'my_value',
		),
	),
);
}}}

But this does:

{{{
$my_query = WP_Query( array
	array (
		'post_type' => 'post',
		'meta_query' => array (
			array(
				'key' => 'my_key',
				'value' => 'my_value',
			}
		),
	),
);
}}}",batmoo
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
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
17427,query_posts and tag,,Query,3.1.2,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-05-13T22:58:52Z,2011-11-17T20:57:12Z,"When i try to make a query like this:

query_posts('tag=sometag');

and ""sometag"" isn't previously used in some post, the query show me all the posts.
i've to add the tag in a post and after delete it ( wp just need the tag exist in ""wp_terms"" table) and after the query works.
",venerabile
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
20323,update_post_caches causes time-out on large queries if cache_results flag not set,,Query,3.3.1,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2012-03-29T12:25:56Z,2012-10-31T23:18:05Z,"I ran into this problem when debugging why the Advanced Custom Fields plugin's option screen was timing out on my site. I have over 8000 items in my wp_posts table, and the plugin pulls back every post to populate a dropdown (I plan on bringing up this issue with the plugin author) 

I was relieved to find out that it wasn't actually the query that was choking, (for a moment I thought mysql was horribly misconfigured) but actually the update_post_caches function. 

I realize that the cache_results flag was added to avoid this issue, but it occurs to me that many plugin developers will not foresee sites with as much content as mine. 

My suggestion is this: Place a ""cache_threshold"" option in the Wordpress settings... make the default something reasonable like 20 (or maybe even ignore this option all together and grab the value from the posts_per_page option, as set on the admin screen.. it's important it come from the admin screen and not the query options because in the case I encountered it, the posts per page option in the query was set to -1). If the cache_results flag is not set, check after the initial database query is completed to grab the number of returned posts... if it's more than the cache_threshold, then don't call update_post_caches. 

This will increase the stability of the core, and prevent plugins from accidentally breaking things with unreasonable queries on large sites. 

Sorry if anything in this ticket doesn't make sense... it's early and I haven't had my coffee yet. 
",bytesmasher
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
21660,'p' arg should work with custom post types,,Query,,normal,normal,Awaiting Review,enhancement,reopened,,2012-08-22T15:27:49Z,2012-11-01T18:20:10Z,"Doing a query like following, where 42 is a custom post_type, will fail:

{{{
$query = new WP_Query( array( 'p' => 42 ) );
}}}

The resulting query looks like:

{{{
SELECT wp_posts.* FROM wp_posts  WHERE 1=1  AND wp_posts.ID = 42 AND wp_posts.post_type = 'post'  ORDER BY wp_posts.post_date DESC
}}}

This is because WP_Query forces the {{{post_type}}} arg to 'post' when it's not set. We should not force it when the {{{p}}} arg is set.",batmoo
20092,Add Exclude by Tag to Queries,,Query,,normal,normal,Awaiting Review,enhancement,new,,2012-02-21T23:36:35Z,2012-02-22T06:28:52Z,"Per scribu's instruction:

Category exclusion is already possible for feeds using a query string, tags should be the same.

'''Example:'''

http://domain.com?cat=news&tag=-featured&feed=rss2

Would equate to a feed of posts in the ""news"" category, not tagged ""featured"" and outputted via the RSS2 template.",iridox
14958,"Add a ""get_post"" filter to get_post()",,Query,,normal,normal,Future Release,enhancement,new,dev-feedback,2010-09-25T02:49:22Z,2012-12-05T11:00:24Z,I'm finding a need for a plugin of mine to generically annotate a post with additional information when loaded via get_post().  It would be nice if there were a filter just before the end where the post is still in object form.,mikeschinkel
23833,Add a unique ID or NAME to target queries .,,Query,,normal,normal,Awaiting Review,enhancement,new,,2013-03-21T03:03:43Z,2013-05-08T21:48:03Z,"I am not sure if this is enhancement or feature request .[[BR]]

wordpress allows us to change / filter  queries with various methods , for example the pre_get_posts(). ( e.g.  $query->set ($args) ).

But in today´s wp ecosystem, there are so many themes, plugins, widgets etc. that modify the query or add custom queries, that it had become very difficult to target a specific query, where The available conditions might not be enough. (is_admin, is_main_query etc.. )

The suggestion here is to add an identifier (ID or specific NAME) to a query , much like with textdomains or actions.

In this manner, targeting a query becomes a breeze something along the lines of 
{{{
#!php
$query->set($query_id_or_name,$args)
}}}

Each developer has struggled one time or another with custom queries and with targeting 3rd party queries .
This feature / enhancement could potentially change all that by allowing a simple way to address custom queries .",krembo99
21803,Add filter to make extending searching easier,,Query,3.4,normal,normal,Future Release,enhancement,new,needs-unit-tests,2012-09-05T13:50:13Z,2012-11-07T07:14:55Z,"I'm using custom post types, and want to extend the search function so more than post_title and post_content are searched. It is currently possible to filter `posts_search` but that returns a string such as ` AND (((wp_posts.post_title LIKE '%test%') OR (wp_posts.post_content LIKE '%test%'))) `. This string then has to be rather messily manipulated via `preg_replace` or `str_replace`.

It would be more useful if we could filter a list of fields to be added to the search criteria, so that we could add a function to extend or change the criteria:

{{{
add_filter ('search_fields', 'my_custom_search_fields');

function my_custom_search_fields ($fields) {
    global $wpdb;
    $fields[] = ""{$wpdb->prefix}posts.post_excerpt"";
    return $fields;
}
}}}

The attached patch implements that filter.",mark8barnes
16603,Add hooks to wp_count_posts(),,Query,,normal,normal,Future Release,enhancement,new,commit,2011-02-20T19:25:18Z,2013-05-04T22:40:31Z,"[[Image(http://mikeschinkel.com/websnaps/Posts_%E2%80%B9_Watermark_Associates_Newsletter_%E2%80%94_WordPress-20110220-142441.png)]]

The use-case where this is needed is when the sites is using roles & capabilities to limit access to viewing posts to only those who have the proper capabilities to see them. 

For example, assume we have a system with a ''""Manager""'' role and a taxonomy called ''""Post Visibility""'' where terms are ''""Visible to All""'' and  ''""Visible to Managers Only.""''  We add a `'see_managers_posts'` capability to ''""Manager.""'' We then filter outs posts with the'' ""Visible to Managers Only""'' term using the `'posts_where'` and `'posts_join'` hooks when viewed by users whose role does not have the `'see_managers_posts'` capability.

With that configuration now assume for example we have 10 posts with 3 of them ''""Visible to Managers Only.""'' The post list in `/wp-admin/edit.php` will use `wp_count_posts()