﻿__group__,ticket,summary,owner,component,_version,priority,severity,milestone,type,_status,workflow,_created,modified,_description,_reporter
Commit Candidates,24149,Set RTL body class for iframes,,Administration,,normal,minor,Future Release,defect (bug),new,commit,2013-04-21T03:57:06Z,2013-04-22T06:36:02Z,"iframe_header() sets the current locale string in the body class, but not the RTL flag. Please add this.

This came up in MP6 development, where MP6 does not (at this moment) rely on a separate rtl stylesheet like in the current admin CSS, but instead relies more on the body having .rtl set.",mitchoyoshitaka
Commit Candidates,11286,Normal User Input Causes Status 500,,Comments,2.8.4,normal,normal,Future Release,defect (bug),new,commit,2009-11-30T21:45:04Z,2012-11-26T22:20:40Z,"To reproduce:  Click the Submit Comment button on any post with no other input.

Expected Result:  Status 200 or 403 with feedback to user.

Actual Result:  Status 500 with feedback to user.

Status 500 means the server is at fault for an unexpected error condition, which is not the case here.  It is the incorrect response to send, and it is alarming to see it show up in a server log without an error message.

Patch should be ready shortly...",miqrogroove
Commit Candidates,16881,Remove all unwanted 'nofollow' attributes from 'reply to comment' links,,Comments,3.1,normal,minor,Future Release,defect (bug),new,commit,2011-03-17T20:27:43Z,2011-03-19T06:47:58Z,"This should be a trivial fix. r16230 removed the rel=""nofollow"" attribute from ""reply to comment"" links in the comments list, for reasons discussed in #10550. In brief, the reasons are that these are not external links that we want to tell search engines not to follow in the first place, and there is actually an SEO penalty from adding the ""nofollow"" to internal links.

Unfortunately, the ""nofollow"" was not removed from all of the ""reply to comment"" and ""reply to post"" links (for instance, in code branches when the site requires login/registration to comment). This patch corrects the rest of them.

It doesn't delete the ""nofollow"" attributes we want. For instance, in `get_comment_author_link()` which escapes links to the comment author's URL.

Additionally, the patch (see line 1110) fixes a minor inconsistency between the return values of `get_comment_reply_link()` and `get_post_reply_link()` when `get_option('comment_registration')` is TRUE.

The version in `get_post_reply_link()` is missing the `class=""comment-reply-login""` and `esc_url()` wrap. I've added them.",joelhardi
Commit Candidates,19019,Reduce duplication in $wpdb,,Database,,normal,minor,Future Release,enhancement,new,commit,2011-10-20T21:16:00Z,2013-04-22T19:53:27Z,"Currently, update(), insert() and soon delete() [see #18948] use the same code to generate the WHERE clause.

It should be moved into a helper method.",scribu
Commit Candidates,16983,Pass $sep to 'wp_title_rss' filter,,Feeds,,normal,normal,Future Release,enhancement,new,commit,2011-03-27T21:11:14Z,2011-03-27T21:11:14Z,Same for 'get_wp_title_rss'.,scribu
Commit Candidates,16942,Dead code in add_query_arg(),,General,3.1,normal,trivial,Awaiting Review,defect,new,commit,2011-03-23T02:15:56Z,2011-03-29T09:31:33Z,"As it just has been checked that $uri contains at least one ?, then exploding $uri on ? with a limit of 2 must return two elements, right?

{{{
	if ( strpos( $uri, '?' ) !== false ) {
		$parts = explode( '?', $uri, 2 );
		if ( 1 == count( $parts ) ) {
}}}

So the if clause can never be true, the code is dead.",hakre
Commit Candidates,14169,Slashes not removed when $_SERVER in process_conditionals(),,General,3.0,normal,normal,Future Release,defect (bug),new,commit,2010-07-01T20:40:28Z,2011-01-06T23:42:37Z,"Since [1964] (now after [12732] in {{{wp-includes/load.php}}}) slashes are added to all values of {{{$_SERVER}}}. If then {{{$_SERVER}}} is accessed, slashes must be removed again otherwise things might not work as intended, e.g. comparing and parsing strings.",hakre
Commit Candidates,18035,ignore_sticky_posts fails to remove sticky class,,General,3.2,normal,minor,Future Release,enhancement,new,commit,2011-07-08T10:03:44Z,2012-04-25T10:38:10Z,"When setting the query_posts parameter:

ignore_sticky_posts = 1

all sticky posts are returned as normal posts and placed accordingly in the flow. However the sticky posts keep their sticky class, which means that an additional filtering of post_class is necessary to avoid any css rules defined for the .sticky selector taking effect.

is this intended, or could it be considered an enhancement if it was patched?
",mikkelbreum
Commit Candidates,22663,"Performing a non-square rotate() with Imagick, then cropping, can result in incorrect Image",,Media,3.5,normal,minor,Future Release,defect (bug),new,commit,2012-11-30T22:49:42Z,2013-05-07T20:38:29Z,"Note:  This is only for *some* recent versions of ImageMagick.  Older ones seem to be a bit more sane, and work fine without any patch whatsoever.

When ImageMagick performs certain operations, it sets its virtual page's x/y origin values to non-zero numbers and leaves them there, which can break some further operations that depend on the virtual page.

In this case, when rotating in non 90 degree increments, Imagick doesn't set the x/y, which means that core doesn't run into this bug, since the built-in image editor only allows for 90 degree rotates in either direction.

However, if you're a user of the API, and perform a ""non-square"" rotate, then a crop, you could end up with an image result that differs from what you'll get from GD.

There are two ways of fixing this:
- Update the virtual page with each update_size()
- Update the virtual page immediately after a rotate() only

The first is what I think we should land on eventually, because it will prevent plugins' methods from breaking core's accidentally (if they do not reset the page's values).  However, that would require an additional error message to be added, which means a new string.

The second would fix the bug for anything core's APIs would do, but would depend on plugins handling resetting the page values appropriately in their own methods.  It is, however, a bit safer (and wouldn't require a string change), if this is something that might land for 3.5.

I've attached patches for each method.",DH-Shredder
Commit Candidates,13235,Simplify and add filtering to call to display author for media,,Media,3.0,normal,normal,Future Release,enhancement,new,commit,2010-05-03T19:13:35Z,2011-04-25T16:03:53Z,"The author displayed on the media page (upload.php) is not filterable in any way currently. This patch adds a filter for the author ('media_author'). Perhaps more filters should be added for other fields, but at the least I would like to add this filter.",sbressler
Commit Candidates,20220,add test to see if sunrise === on in ms-settings,,Multisite,3.0,normal,normal,Future Release,enhancement,new,commit,2012-03-12T19:06:56Z,2012-11-02T22:49:31Z,"We needed to disable sunrise for certain requests. 

We thought about declaring sunrise before including wp-load, but setting it to 'off'. Then having a conditial in the wp-config that only defines it to on if it is not defined and then in ms-settings to a additional check to see if sunrise is defined and equal to on. (the patch I am adding does not have the wp-config if !defined() as wp-config doesn't get updated, but if someone feels it is helpful I can add it)

Others could of changed the default defined value of sunrise and this could break bc. I am therefore not sure if the limited use case warrants it. But I thought I would suggest it.",sboisvert
Commit Candidates,16849,Add a filter for $overrides in wp_handle_upload(),,Plugins,3.1,normal,minor,Future Release,enhancement,new,commit,2011-03-13T17:38:56Z,2013-03-19T06:21:47Z,"I'm writing a plugin that needs to set a $unique_filename_callback in wp_handle_upload() during a normal post attachment upload (not a custom upload form), but there's no way to do it without a filter like this one:

{{{
$overrides = apply_filters( 'wp_handle_upload_overrides', $overrides );
}}}


For now I just modded my /wp-admin/includes/file.php to add it, but obviously that's not an ideal solution, especially since I plan on adding the plugin to the repository for others to use.",iandunn
Commit Candidates,16415,Don't require CPTs to have archives in order to have feeds,,Post Types,3.1,normal,normal,Future Release,enhancement,new,commit,2011-01-30T22:58:47Z,2013-05-16T15:33:43Z,"When archives and feeds were added to custom post types (see #13818) it was set up so you had to have archives (has_archive) in order to have feeds (rewrite[feeds]).

There are some situations where it would be nice to have feeds but archives aren't needed.",aaroncampbell
Commit Candidates,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()` to show that we have 10 posts when we can only see 7 of them. Currently to fix it so the post counts display `7` for non-managers we have to hook the `'query'` hook, which is a hook of last resort.

So, the attached patch adds two hooks to  `wp_count_posts()`: 

 - `'wp_count_posts_sql'` - To allow modifications of the SQL used to count posts, and 
 - `'wp_count_posts'` - To allow modifications of the array returned by the function.

I decided to add two (2) hooks because not having the former would mean we'd need to make two SQL queries if we need to modify the counts, and not having the latter would mean that we'd have the complexity of modifying SQL in use-cases where the a SQL query modification is not what is needed to to determine the proper counts. 
",mikeschinkel
Commit Candidates,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
Commit Candidates,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
Commit Candidates,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-05-05T21:06:45Z,"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
Commit Candidates,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
Needs Dev / Bug Wrangler Feedback,12825,Largest minimum text size in FF prefs makes admin display terrible,,Accessibility,2.9.2,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-04-02T22:25:59Z,2013-01-20T18:04:36Z,"The backend looks great in FF if a user zooms, as long as they don't zoom text only. However, some visually disabled people use the Firefox preference for minimum font size instead, because doing full zoom means lots of horizontal scrolling. Is there anyway to make it so that a large minimum text size wouldn't be so terrible-looking? 

To reproduce: in FF, go to Preferences, Content, Advanced Fonts, select 24 for minimum size. Look at the admin; eek! (In comparison, zooming to that size looks very pretty, but requires horizontal scrolling).

Gmail does it decently, so I thought it was worth asking, but I know that there may be technical reasons that we can't make it happen. Would just like to know what those are if so, so I can explain to users who ask about it. If we *can* make it happen, that would be sweet. ",jane
Needs Dev / Bug Wrangler Feedback,24098,Support for HTML5 roles,,Accessibility,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-04-16T07:44:16Z,2013-05-12T00:01:07Z,"I was going through http://core.svn.wordpress.org/trunk/wp-includes/kses.php and I realized that most of the new HTML5 tags have been introduced but `role` is a missing attribute.

I feel that since WordPress has already made a move towards HTML5 by supporting `<article>`, `<section>` and other tags, all attributes should be made available too. `role` should be added to the required tags falling under `$allowedposttags`.

Go through the link for more information on [http://www.w3.org/wiki/PF/XTech/HTML5/RoleAttribute roles].",aniketpant
Needs Dev / Bug Wrangler Feedback,20938,Adding existing category duplicates default one,,Administration,3.3.2,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2012-06-13T13:52:18Z,2013-01-22T03:35:53Z,"In the post editing page, if you add a category which already exists, Wordpress duplicates the default category (Uncategorized), instead of showing a warning or doing nothing.",hvsupr
Needs Dev / Bug Wrangler Feedback,21211,Alter how settings_errors are output in options.php,,Administration,3.4.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-07-10T23:44:37Z,2012-12-10T18:43:09Z,"The `*_settings_error(s)` and `settings_error` functions are used mainly as part of the Settings API, but with the way that options.php currently handles the settings errors, it assumes that people will use this functionality exclusively with the Settings API. Notice options.php, starting at line 153:

{{{
	/**
	 * Handle settings errors and return to options page
	 */
	// If no settings errors were registered add a general 'updated' message.
	if ( !count( get_settings_errors() ) )
		add_settings_error('general', 'settings_updated', __('Settings saved.'), 'updated');
	set_transient('settings_errors', get_settings_errors(), 30);
}}}

This simply assumes that no other outside source has registered any sort of setting error other than the current options page. TwentyEleven does this, and so if any other source has registered any notices via these functions, the ""Settings saved."" message will not be output because the first bit of logic will fail. I don't think this assumption can (nor should) be warranted, so there needs to be another way to handle this so that themes like TwentyEleven who only call `settings_errors` at the top of their options page don't get unknowingly hijacked by other sources.

I always suggest registering your own errors at the end of the sanitization callback for your setting, and then output those specific errors within settings_errors to avoid any internal conflicts like this.

Just looking for some ways to approach this. :-) 


",griffinjt
Needs Dev / Bug Wrangler Feedback,18530,Browser update dismiss setting ignored with JavaScript disabled,,Administration,3.2.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-08-27T15:41:24Z,2013-01-22T01:14:57Z,"When working on a corporate desktop you can not update your browser. When freely deciding about when to upgrade you might not even want to upgrade.

Therefore a user setting has been introduced to remove the nag warning. E.g. my linux distro is perfectly ok with it's firefox and it's taken care of by the pacakager. For my OS, I have the latest version.

I needed to press dismiss (with JS enabled, the related report is #17766).

What has been missed is to not display that nag if javascript is disabled. The setting gets ignored.

How to Reproducde

  * Setup a WP 3.2.1 Blog.
  * Log into admin with a Firefox 3 browser.
  * Enable Javascript.
  * Dismiss the Nag.
  * Logout and close the Browser.
  * Restart the Browser.
  * Disable Javascript (if you need to).
  * Log into Dashboard.

Result: Browser Update Nag is displayed.

Expected Result: Browser Update Nag is not displayed as specified by the user.",hakre
Needs Dev / Bug Wrangler Feedback,20595,Collapsible Admin menu fails if items are added by code,,Administration,3.3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-05-01T23:27:42Z,2012-05-02T07:48:13Z,"If I add a Button to the admin meny by '''action adminmenu''' the menu wont rebuid from collapsed state due z-index issues. In my opinion creating the menue might be changed to the following: 


{{{

diff --git a/wp-admin/menu-header.php b/wp-admin/menu-header.php
index cdd81b2..8454a3d 100644
--- a/wp-admin/menu-header.php
+++ b/wp-admin/menu-header.php
@@ -164,10 +164,6 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {
                }
                echo ""</li>"";
        }
-
-       echo '<li id=""collapse-menu"" class=""hide-if-no-js""><div id=""collapse-button""><div></div></div>';
-       echo '<span>' . esc_html__( 'Collapse menu' ) . '</span>';
-       echo '</li>';
 }

 ?>
@@ -181,6 +177,9 @@ function _wp_menu_output( $menu, $submenu, $submenu_as_parent = true ) {

 _wp_menu_output( $menu, $submenu );
 do_action( 'adminmenu' );
+echo '<li id=""collapse-menu"" class=""hide-if-no-js""><div id=""collapse-button""><div></div></div>';
+echo '<span>' . esc_html__( 'Collapse menu' ) . '</span>';
+echo '</li>';

 ?>
 </ul>
}}}

see also: http://wordpress.org/support/topic/admin-menu-wont-dis-collapse-anymore",digitaldonkey
Needs Dev / Bug Wrangler Feedback,22214,Inconsistency in the show_ui parameter for register_post_type,,Administration,3.4.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-10-17T20:58:42Z,2012-10-18T00:58:36Z,"There is an inconsistency with the `show_ui` argument to `register_post_type`. When set to false, the post type listing page is open, while the 'Add new' page is not accessible.",nofearinc
Needs Dev / Bug Wrangler Feedback,20453,Media screen links to non-public post types,,Administration,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-04-16T02:31:56Z,2012-04-16T03:23:46Z,"I have a non-public custom post type registered, so it doesn't get an admin UI.

A file in the media library is attached to one of my custom posts (done at the point the file is uploaded using `media_handle_upload()`). The media item shows up in the Media Library as expected, but the 'Attached To' column links to the editing screen for the parent post, even though the post is non-public.

This allows a user to see the post editing screen for a non-public post type.",johnbillion
Needs Dev / Bug Wrangler Feedback,21770,Multiple New Feature Pop-ups mess UI,,Administration,3.4.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-09-02T11:09:51Z,2013-01-22T03:06:39Z,"WordPress admin and plugins [[Image(http://dl.dropbox.com/u/184353/wordpress-admin-pop-ups.png)]] New Feature Pop-up messages appear on the admin simultaneously, blocking each other messages and functionality. The UI gets seriously messed up.

User attention focuses on how to get rid the overlaping pop-ups rather than reading the messages and understand and start using the new features.",titanas
Needs Dev / Bug Wrangler Feedback,15861,Sorting users by post count,,Administration,,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-12-17T10:21:24Z,2012-01-18T22:48:06Z,"Currently, to enable sorting by post count, there's a JOIN made between the users table and the posts table.

This is bad, because users is a global table, which might be stored in a separate database.

Short-term solution for 3.1 is to disable sorting.

Long-term solution is to avoid the JOIN somehow. ",scribu
Needs Dev / Bug Wrangler Feedback,22700,Walker_Category_Checklist should sometimes set the value as the term name,,Administration,3.0,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-12-03T19:45:57Z,2013-02-19T05:12:08Z,"The `Walker_Category_Checklist` class has been partially adapted to work with taxonomies other than `category`, but it does not seem to cope with non-hierachical taxonomies.

For non-hierachical taxonomies, the HTML form elements (checkboxes, radios, dropdowns, whatever) need to set the term **name** as the value, not the ID… otherwise WordPress will cast the ID to a string and create a new term with that string as a name.

To see the problem:

* Use `Walker_Category_Checklist` to create a checkbox in a metabox on the post edit screen for a non-hierarchical taxonomy
* Add some terms to the taxonomy
* Check the box for the taxonomy and update the post
* Watch a new term appear with its name set to the ID of the term you checked


",simonwheatley
Needs Dev / Bug Wrangler Feedback,19531,Wrong error message after correcting an error in username,,Administration,,normal,normal,Awaiting Review,defect (bug),reopened,dev-feedback,2011-12-13T10:07:56Z,2012-12-17T16:11:17Z,"After entering an illegal username (fe. ""Wim (wim@go2people.nl)""), WordPress gives an error message saying:
""ERROR: This username is invalid because it uses illegal characters. Please enter a valid username.""
So far so good.

Now, when I correct the issue and click ""Add new user"" again, the above error message remains in the screen, while the illegal characters are no longer there and the actual error I am facing is that I forgot my password. Which is confusing for me.

The same occurs, when I enter an e-mail which has already been registered. I get the error message:
""ERROR: This email is already registered, please choose another one.""
When I correct, the error message remains, while this particular problem has been solved.

WP v: 3.3
Browser: Google Chrome 14.0 on Ubuntu 11.10
",wimfeijen
Needs Dev / Bug Wrangler Feedback,21989,update_option() calls sanitize_option() twice when option does not exist,,Administration,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-09-25T05:04:34Z,2012-09-25T05:54:32Z,"
I just spent several hours tracking down an issue when using the Settings API where `sanitize_option()` is called twice which is unnecessary execution especially if sanitization includes calling an external API for username/password authorization ''(this was how another developer set it up for a plugin I was debugging.)''

What happens is that a call to `update_option()` will call `sanitize_option()` and then if the option wasn't previously in the options table `update_option()` will delegate to `add_option()` which calls `santize_option()` a second time.  This would normally be easy to workaround by first calling `get_option()` and testing for `false` and calling `add_option()` instead of `update_option()` if `false`, but not when the Settings API chooses how to call it.

I've looked at the problem and can envision several different ways to solve it such but don't know which the core developers would choose ''(or if they'd choose yet another option I haven't envisioned)'' so I didn't submit a patch:

- Adding a 3rd parameter `$mode` to `sanitize_option()` that identifies the mode ''('add', 'edit', default = 'unknown')'' and thus allow the hook to ignore one of the options ''(this would be more backward compatible but would put the onus on the developer to know to do this)'',  
- Adding a 5th parameter `$bypass_sanitize` to `add_option()` defaulted to `false` that is only passed as `true` in `update_option()` allowing `update_option()` to disable the call to `sanitize_option()` found in `add_option()` ''(this would be less backward compatible and hacky, but seemless to the developer)''
- Adding a 3rd parameter `$bypass_sanitize` to `update_option()` defaulted to `false` that is only passed as `true` from `/wp-admin/options.php` allowing `update_option()` to bypass the call to `sanitize_option()` if an `add_option()` will happen ''(this would be less backward compatible and hacky, but seemless to the developer)''
- Have `/wp-admin/options.php` test for no pre-existing option and then call `add_option()` or `update_option()`, respectively ''(this would be seemless to the developer but less backward compatible and not hacky, and it wouldn't handle the general case.)''

So is this worth fixing to save other users and developers debugging time, and to reduce the chance of subtle errors in new code? If yes, how best to approach?",MikeSchinkel
Needs Dev / Bug Wrangler Feedback,24334,"""edit_form_after_title"" and ""edit_form_after_editor"" hooks wrapper optional?",,Administration,trunk,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-05-14T10:51:21Z,2013-05-14T18:38:39Z,"Would it be possible to make the `DIV.edit-form-section` wrapper applied around `edit_form_after_title` and `edit_form_after_editor` hooks in post/page edit screen optional in WP3.6? Or create additional non-wrapped hooks besides?

[http://core.trac.wordpress.org/browser/trunk/wp-admin/edit-form-advanced.php#L462]
[http://core.trac.wordpress.org/browser/trunk/wp-admin/edit-form-advanced.php#L502]

These wrappers were actually introduced in WP3.6, the WP3.5 version was without them. 

'''Explanation of what I do:'''
* `edit_form_after_title` hook - I output UL list of tabbed interface here and open the first tab content DIV
* `edit_form_after_editor` hook - I close the first tab content DIV and output the other tab content DIVs

The first content DIV is always a visual editor. But as you can see, when I open the DIV in one hook and closing it in another one, this was working fine in WP3.5 as no wrapper was added to those hooks. Once there is a wrapper, it obviously messes up the HTML and closes divs prematurely. This is causing issues obviously for tabbed interface.

Screenshot: [http://awesomescreenshot.com/09915rzc37]
Ticket started on Alpha/Beta support forum: [http://wordpress.org/support/topic/wrapper-of-edit_form_after_title-and-edit_form_after_editor-hooks-optional]

Thank you!",lemmonaid
Needs Dev / Bug Wrangler Feedback,21190,Add a action in check_admin_referer() in the event the nonce auth fails,,Administration,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-07-08T09:12:56Z,2012-07-08T09:12:56Z,"Currently plugins don't have a way to perform custom handling in the event that a nonce fails in `check_admin_referer()` - Whilst in most cases this will never be needed, I'd like the ability for plugins to be able to use `check_admin_referer()` directly AND have the option of redirecting failed nonces to their own page.

We currently have an action which is fired when a nonce passes:
{{{
do_action('check_admin_referer', $action, $result);
}}}",dd32
Needs Dev / Bug Wrangler Feedback,15406,Add a pending post count indicator to the admin menu,,Administration,3.0.1,normal,trivial,Awaiting Review,enhancement,new,dev-feedback,2010-11-12T17:28:49Z,2013-01-22T15:21:49Z,"Comments has an indicator bubble on the dashboard with the pending comments count.

Pending posts should have such a feature, since they are quite more important.",iign
Needs Dev / Bug Wrangler Feedback,21667,Add some user agent to wp_is_mobile,,Administration,3.4.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-08-23T12:35:29Z,2013-05-07T18:45:53Z,"Hello,

I've run some test with the help of the twitter/G+ community on wp_is_mobile and found some mobile browser that don't pass the test. 

You can see the test here : http://www.inpixelitrust.fr/blog/wp_is_mobile/

I was able to get the user agent of 3 of those which don't work : 

HTC sensation z710 4.0.3 native browser (UA:  Mozilla/5.0 (X11;Linux x86_64; HTC/Sensation/3.32.162.11; fr-de) 
AplliWebkit/534.24(KHTML,like Gecko) Chrome/11.0.696.32 Safari/534.34 )

BlackBerry Playbook (Ua Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.0.1; en-US) AplleWebkit/535.8+ (KHTML, like Gecko) Version/7.2.0.1 Safari/535.8+ )

Could be great to add those to the UA sniffing :)

",inpixelitrust
Needs Dev / Bug Wrangler Feedback,19691,Cannot modify admin messages for /wp-admin/edit.php,,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-12-30T02:10:01Z,2013-02-26T17:51:13Z,"The admin console messages output on line `264` of WordPress 3.3's file `/wp-admin/edit.php` are not filterable. This causes problems when added row actions need to HTTP GET from to WordPress to modify a post and then display an appropriate message complete with a revert link ''(like the ""Trash"" link does.)''

An example use-case could be for a custom post type used for both quotes and invoices where a row action might be ''""Convert Quote to Invoice""'' where you'd want a message and link displayed at the top of the admin after similar to this:

- ''Quote #{$post_id} converted to Invoice. __Revert__''

Currently the only way to accomplish this is to pick hooks before and after the messages are output and use PHP's output buffering;  clearly not a ''""best practice""'' approach.

In order to address this I'm proposing an '''`'admin_messages'`''' filter hook to run just before the messages are output:

{{{
$messages = apply_filters( 'admin_messages', $messages );
}}}

However, since messages are output in numerous locations in the WordPress admin it seemed best to add the hook in every location where messages are output, which is what my patch does.  Thus a hook can look at `$pagenow` or `get_current_screen()` to decide it is needs to do anything.

Also while searching for places in the admin code that echo messages I found `$messages` are sometimes an array of HTML where the entire array is echoed and other times the $messages are an array with an index passed via `$_GET` and only one message will be displayed. For those cases I created another hook '''`'admin_message'`''' ''(note that this hook name is singular)'':

{{{
$message = apply_filters( 'admin_message', $message, $messages, $_GET['message'] );
}}}

I really only found a specific need for `/wp-admin/edit.php` today, but it seemed that it would be better for consistency if all messages were made hook filterable. That's why I created a larger patch when all my use-case needs is one new line.  

Looking forward to your feedback.
",mikeschinkel
Needs Dev / Bug Wrangler Feedback,19898,Create a is_login() function similar to is_admin(),,Administration,3.3.1,normal,normal,Future Release,enhancement,new,dev-feedback,2012-01-25T23:13:43Z,2013-02-12T15:34:47Z,"It would be useful for developers to have better detection of being on the wp-login.php and wp-register.php pages. Sure, this can currently be done by using the $pagenow global variable but having a similar function like is_admin() would make things easier/cleaner.

One use case:

-Using a hosted javascript file but then requiring SSL (FORCE_SSL_LOGIN).    

{{{
#!php
function javascript_init() {
    if ( $pagenow == 'wp-login.php' || is_admin() )
        return;

    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js');
    wp_enqueue_script( 'jquery' );
}
add_action( 'wp_print_scripts', 'javascript_init' );
}}}


Proposed solution:
Create a new function that does all the checking. 
{{{
#!php
function is_login() {
    return in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) );
}
}}}",dcowgill
Needs Dev / Bug Wrangler Feedback,22086,"HTML5 and cellspacing=""0"" in admin pages",,Administration,3.4,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-10-03T19:37:25Z,2013-02-19T20:46:43Z,"There are several instances where generated table content uses 'cellspacing=""0""' in the admin areas of WordPress.

The W3C validator (albeit experimental) states that this parameter should be dropped and CSS used instead for HTML5 compliance.

I think the patch I'm going to attach in a moment will fix these validation issues.",MattyRob
Needs Dev / Bug Wrangler Feedback,18709,Hooks in user-new.php,,Administration,3.2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-19T21:06:16Z,2013-04-19T11:38:49Z,"It would be nice to be able to enter extra metadata for users when manually creating them from the admin control panel. 

I assume it should be as simple as adding a new action, along the lines of the edit_user_profile_update one? 


",standardtoaster
Needs Dev / Bug Wrangler Feedback,21271,Make admin backend unit-tests friendly,,Administration,3.4.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-07-14T14:19:20Z,2012-12-11T13:12:31Z,"Recently I started writing unit tests for my plugins. Beside tests focused on functionality (where I directly call my plugin functions) I write some basic integrations tests, which should test that WordPress will call my function, pass data in expected format and recognize data returned from it. For frontend it is quite easy - theme API is well-defined, so I can write something like this:
{{{
public function test_something() {
	// add new post
	$post_id = wp_insert_post( array( ... ) );
	$this->assertGreaterThan( 0, $post_id );
	
	// go to post page
	$this->go_to( get_permalink( $post_id ) );
	
	// main loop
	$checked_post = false;
	while ( have_posts() ) {
		the_post();
		if ( $post_id == get_the_ID() ) {
			$checked_post = true;
			
			// test that content is modified
			ob_start();
			the_content();
			$result = ob_get_clean();
			$this->assertEquals( '...', $result );
		}
	}
	
	// make sure test above was executed
	$this->assertTrue( $checked_post );
}
}}}
Unfortunately this is not true for admin backend - there most of code is written directly at file level (not in functions and classes), so I would need to either duplicate this code in my tests (bad approach, because would have to monitor original code for changes), or test using whole file (either load it directly or use Selenium) - in this case test would be more complicated.

Therefore I logged this ticket, to start discussion how we can perform refactoring of admin backend to make it more tests-friendly, and how to test it more thoroughly. Most probably we would also need to modify the testing framework (e.g. introduce new `admin_go_to()` method).",sirzooro
Needs Dev / Bug Wrangler Feedback,23444,Publish actions not readily available after scrolling when editing a post,,Administration,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-02-11T01:37:14Z,2013-02-11T02:26:42Z,"When editing a post in 2-column mode, the user is forced to scroll to the top of the screen. As publishing is always the final action while editing a post, the user should have the metabox available regardless of the user's scrolling.",ericlewis
Needs Dev / Bug Wrangler Feedback,14333,Remove page order UI,,Administration,3.0,normal,normal,Future Release,enhancement,reopened,dev-feedback,2010-07-17T03:10:23Z,2012-09-02T23:01:02Z,"Unkile posts, in pages we can order and re-order the pages (using ""menu_order"" field in ""wp_posts"" table).

But since the new ""Custom Menu"" feature was introduced, do we realy need the page ordering?

We can create new menus, add as many pages as we like and re-order them as we like (this is the purpose of menues).

If we can do this using menus, then we can delete the ordering feature from the page editing screen.",ramiy
Needs Dev / Bug Wrangler Feedback,20901,Taxonomy descriptions should be TinyMCE editable,,Administration,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-06-11T07:49:17Z,2013-05-16T10:16:18Z,"Right now taxonomy descriptions are filtered heavily for HTML and are output as a simple textarea, making it impossible to make those into ""nice"" tinymce editors without a kind of hackish plugin. 

I'd be in favor of making taxonomy descriptions tinymce by default.",joostdevalk
Needs Dev / Bug Wrangler Feedback,7485,Terrible UX design on XFN section of Write->Link pages,,Administration,2.6,normal,normal,Future Release,enhancement,assigned,dev-feedback,2008-08-08T17:02:49Z,2012-01-06T01:43:58Z,"Regarding the XFN section on the Write-Link pages:

The UX on this section is fairly terrible. We give the user an editable ""rel"" field and then don't let them edit it via javascript. Note that if you disable javascript and then edit that field, then your changes are indeed saved and then even show up on the resulting pages correctly. That javascript just won't let you manually edit the field. 

I propose that the javascript on this section be changed to allow manual editing of that field, and to make the checkbox/radio sections just add/remove the relevant bits from the field when they are selected/deselected. Result should allow user to manually insert stuff into the rel field and leave those manual insertions unaltered when changing the radio/checkboxes, unless they conflict with the selections being made directly.

Also, side note, would be nice to add a nofollow checkbox to this section as well, to allow easy addition of nofollow to the rel field, which would be handy for the somewhat over-controlling SEO oriented people. ;)
",Otto42
Needs Dev / Bug Wrangler Feedback,18786,meta_form() should place some restrictions on meta keys,,Administration,,normal,normal,Future Release,enhancement,new,dev-feedback,2011-09-26T22:37:58Z,2013-04-22T21:12:23Z,"meta_form() echoes out all meta keys into a dropdown for the custom fields box, unless they start with an underscore (as bound by the query).

We should consider is_protected_meta( $key, 'post' ) and/or current_user_can( 'add_post_meta', $post->ID, $key ). This isn't a security thing, just an opportunity to hide some things from the user they don't need to see.

On the other hand, it's definitely a number of extra calculations. is_protected_meta() is light as long as there's no filter on things (and if there is, we probably want to know). current_user_can() might be a bit more weight than necessary here.",nacin
Needs Dev / Bug Wrangler Feedback,16283,post_exists() enhancement - don't include revisions,,Administration,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-01-18T13:33:51Z,2011-07-17T02:04:03Z,"The current post_exists() function to me has a major downside.  By default all it does it search for title, content and/or date in the wp_posts table.

The problem with this is that it includes revisions.  So for example if you have a post with title ""ABC"" but then later change it to ""DEF"", post_exists(""ABC"") will still return true with the post ID of the revision.

I would suggest either:

 a) Adding post_status not equal ""inherit"" as a default to the function.

 b) Adding a 4th parameter which allows you to pass the post_status value in.

I would be happy to code this if anyone has any feedback on what would be the best approach.",durin
Needs Dev / Bug Wrangler Feedback,21665,"Allow non-editable pages to be classified & organized as ""System Pages""",,Administration,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-08-23T01:08:34Z,2013-01-22T03:21:44Z,"We currently have no means of distinguishing regular “content” pages (pages that users can edit) and pages that are used as placeholders for custom templates / dynamic content.

As alexking mentions in #17470, users are often confused when they attempt to edit these ""placeholder"" or ""dummy"" pages only to find that the pages appear empty from within the page editor.

While his ticket concerned the ""page_for_posts"" page specifically, this issue is equally relevant to custom page templates that do not make use of user-generated content via the page editor.

isaackeyet proposed a solution [http://core.trac.wordpress.org/ticket/17470#comment:4 in that ticket] which introduces the idea of classifying such pages as ""System Pages"", which would offer a more limited set of options for how they can be changed:

>Idea to solve this permanently as brought up in the UI chat July 10 2012:
>
>* Pages have a new, hidden meta field to indicate ""System Page"" or >something that better describes it. Pages are marked System Page when >WP is using it as a placeholder for a custom blog set up, or a plugin >can use it to indicate a page is used for a contact form (for >example).
>* Pages are highlighted with a meta description in the pages list, >indicating why it's there (created by? reason?)
>* Most importantly, these System Pages are grouped in the pages >filter to be excluded from the regular list, so the list may read >""All | Published | System Pages"", which should be a better long term >solution for this ticket specifically (user confusion).



",bootsz
Needs Dev / Bug Wrangler Feedback,22056,Integrate a list of notices for newbie users,,Administration,3.4.2,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-09-30T14:39:40Z,2012-10-02T18:21:13Z,"Integrate a list of possible warnings and notices for the power-user (admin) if some problems or security thread occur, or to check if the site was infected with viruses and malicious .php files...

Example:
- Notice: GD Graphics Library is not installed, install this so the images could be resized
- Notice: Your site is not giving search engines the right to index the site, please consider changing the settings.
- Warning: An unknown file mail.php is in the site main directory, please check if you are not infected.
- Notice: Your site files permissions are set to 777, please change to 644 or 640, your site is in a security thread.
- Notice: Upload folder is not writable, please change permission to 755 for the upload dir.
- Notice: Please use a caching file plugin to make your site load faster than ever.
",alexvorn2
Needs Dev / Bug Wrangler Feedback,15289,Make it easier for a non-standard URL to be used to access wp-admin,,Administration,3.1,normal,normal,Future Release,feature request,new,dev-feedback,2010-11-02T13:27:05Z,2013-02-07T21:51:15Z,"For some sites it is vital that the admin be accessible via a path other than {{{/wp-admin/}}}. Clients sometimes require this because it is easier for their users. Also, it is useful if replacing another CMS with WordPress for the root of the admin to have the same URL, although this can be partially fixed with a redirect.

Even when not ''required'' per se, some of us prefer to use a different URL to access the admin because it is more intuitive for our users to use something like {{{/admin/}}} instead of {{{/wp-admin/}}}.

To be clear: I am not suggesting renaming the wp-admin directory, nor am I suggesting adding an option in the UI to change the path.

Rather, I am suggesting that small tweaks be ade to make it easier for power-users to enable the use of a different URL to access the admin area.

I suggest making the following changes :

'''1.''' Use relative urls within the admin where possible without affecting standard installations.

'''2.''' Allow power-users to add a constant to wp-config.php to change the path of the admin for those links which have to be absolute.

I don't think there is much work involved and I am happy to do it.

Core devs have in the past stated that the user of alternative urls to access the admin is 'not supported', but it is unclear whether this simply means that it doesn't work at the present time or that the core team is opposed to allowing it to happen.[[BR]]
If the latter is the case, I would appreciate an explanation - I'm sure there is a good reason if that is the case, but I can't for the life of me think what it could be. ;)",caesarsgrunt
Needs Dev / Bug Wrangler Feedback,23509,Conditional function that lets you know if your site is being viewed through the Customizer,,Appearance,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-02-19T01:41:24Z,2013-04-22T22:10:51Z,"I can provide a use case if necessary, but this should be relatively simple.

If I need to do something special with my theme when my site is being viewed through the customizer, there's no easy way determine if it is.

A simple `is_customizer()` (or similar) function would be incredibly useful in this scenario.

I'd write up a patch, but I don't know where to put the new function.",nathanrice
Needs Dev / Bug Wrangler Feedback,22058,Custom background vertical position,,Appearance,3.4.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-09-30T16:30:29Z,2013-04-25T01:20:25Z,"For the the custom background display options there is only left, centre and right position. The top and bottom position is missing.",grapplerulrich
Needs Dev / Bug Wrangler Feedback,24392,Customizer: Display section descriptions like sidebar descriptions,,Appearance,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-05-22T22:05:58Z,2013-05-23T07:07:05Z,"When adding a section to the Customizer, it offers the possibility to add a description of this section. Currently this description gets output as in a title attribute to the h3 headline of this section - and is completely hidden and gone. :( Or did you know we have a four line description of the navigation section?

It would be awesome if we could move that more in the user's view, maybe like how we currently do it for widget sidebars?",obenland
Needs Dev / Bug Wrangler Feedback,22942,Deprecate Post by Email,,Blog by Email,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-12-14T16:48:46Z,2013-05-01T16:18:38Z,"We said last year that we'd remove the post by email functionality from core as it was better suited for plugins.  The Jetpack plugin has already added this functionality and, honestly, includes better functionality than the core version.

We should move forward with our plans to remove this feature.

I recommend ''deprecating'' it similar to the way the link manager was removed in 3.5.  Essentially:

* New WordPress installations will never see the core feature
* Existing installations that aren't using it won't see it any more
* Existing installations that ''are'' using it will see a notice explaining they should switch to a plugin instead as the feature will be completely removed in the future

Basically, I want the option to go away, but I don't want anyone to start a riot if we remove a tool they're actively using.",ericmann
Needs Dev / Bug Wrangler Feedback,14254,update_meta_cache fails; query too large?,,Cache,2.9.2,normal,normal,Awaiting Review,defect (bug),reopened,dev-feedback,2010-07-09T19:49:22Z,2013-03-13T10:10:05Z,"In the file meta.php, around line 183 in the 'update_meta_cache()' function, it tries to do a query but I noticed this can fail (ie. crash wordpress) if there are too many post id's in the query.

The function is being called from query_posts(), with 'posts_per_page' set to -1.

An example query that crashed it:
{{{
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (1009,1006,989,933,902,860,859,858,857,793,838,837,836,827,825,310,780,777,776,775,774,773,770,763,760,759,758,757,728,756,755,754,753,752,751,750,748,746,
732,736,729,726,725,724,723,722,720,719,717,716,715,710,709,503,692,289,625,268,593,583,582,332,32,30,28,26,24,22)
}}}
Maybe there is some limit associated with queries of this type internal to wordpress, as this query works fine in phpMySql.

Apologies if this is already reported or irrelevant in 3.0!
",newpixel
Needs Dev / Bug Wrangler Feedback,21330,Allow filtering of expiration in set_transient(),,Cache,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-07-20T20:51:23Z,2012-09-17T18:32:01Z,"I recently needed to change an expiration of a transient and expected pre_set_site_transient_* filter to be able to do that. However, the filter only affects the value. I recommend adjusting this to affect both.",wpsmith
Needs Dev / Bug Wrangler Feedback,21412,Hookable dropins,,Cache,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-07-29T03:59:34Z,2012-07-30T22:12:02Z,"This ticket is the result of a discussion on the wp-hackers list where I proposed the idea in [http://lists.automattic.com/pipermail/wp-hackers/2012-July/043772.html this message]. 

Currently for dropins there can be only one[1] per install which means that, especially for `advanced-cache.php` where multiple plugins cannot easily:

- Cache different mime types with different plugins
- Provide basic functionality and leave the complexity to other plugins because hooks are not available ''(this is likely needed for a good page caching API to ever emerge from the work of plugins.)''

For caching this results in plugins like WP Super Cache and WP Total Cache that significantly violate a sancrosact WordPress philosophy of ''""[http://wordpress.org/about/philosophy/#decisions Decisions, not Options]''"". To see what I mean, just visit the settings page for either of these plugins.  ''(Note: I'm not criticizing the plugins or their developers, instead saying that WordPress doesn't give them much of a choice.)''

It turns out however that fixing this is really lightweight and easy, at least for `advanced-cache.php`. I will attach the following files but here is the short list of changes to core required:

- Move the hooks-related function out of `/wp-includes/plugin.php` into another file which I called `/wp-includes/hooks.php` and include `/wp-includes/hooks.php` in `/wp-settings.php` close to the top after `/wp-includes/versions.php` is included.
- Include another new file `/wp-includes/dropsin.php` in `/wp-settings.php` after `/wp-includes/hooks.php` which contains a `wp_load_dropins()` function that `include()`s all `.php` files found in `/wp-includes/dropins/`.  
- Lastly add the following two (2) lines before `advanced-cache.php` is included:

{{{
// Load any potential dropins found /wp-content/dropins/
wp_load_dropins();

// Run the hook-based page cache.
do_action( 'page_cache' );
}}}

With this future caching plugins can implement the page_cache hook by dropping a file into `/wp-content/cache/` instead of  adding an `/wp-content/advanced-cache.php`.  

If this idea is blessed then we could add a deprecation notice for `/wp-content/advanced-cache.php` and also potentially replace (some of) the other dropins with `do_actions( ""{$dropin_hook}"" )`.   


[1] [http://www.urbandictionary.com/define.php?term=%22there%20can%20only%20be%20one%22%20 Gratuitous Highlander reference].",mikeschinkel
Needs Dev / Bug Wrangler Feedback,20902,redirect_canonical() on using permalink: Not all $_GET being redirected,,Canonical,3.4,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-06-11T09:30:08Z,2012-11-01T04:54:03Z,"Using permalink, I suppose that all query_var entered manually on URL or using $_GET will be redirected to proper permalink. Apparently not all being redirected at all. AFAIC:

1. /?post_format=image : should be redirected to /type/image/
2. /?pagename=blog : should be redirected to /blog/
3. /?author_name=admin : should be redirected to /author/admin/

Unfortunately, they are not.

It can be done by filtering redirect_canonical() but it will be better  if it's being done by default as we can see that /?category_name=cat will be redirected to /category/cat/",arieputranto
Needs Dev / Bug Wrangler Feedback,16557,Ability to disable redirect_guess_404_permalink(),,Canonical,3.1,normal,minor,Future Release,enhancement,new,dev-feedback,2011-02-14T12:37:02Z,2011-04-08T11:29:36Z,"Can you make redirect_guess_404_permalink() pluggable or have its return value pass-through a filter so that developers can override it?

I know I can remove_filter('template_redirect', 'redirect_canonical') but redirect_canonical is too useful to be disabled. Only disabling URL guessing would be great.

Thanks a lot,

MK",msafi
Needs Dev / Bug Wrangler Feedback,18385,"Canonical redirections not suited for Queries with multiple query vars and ""pretty permalinks"" in general",,Canonical,3.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-08-12T09:05:03Z,2011-08-12T12:21:47Z,"When the Canonical code was originally written, it served it's purpose quite well. However, over the years the number of Query vars which can be used to access content via has increased, and so have the number of archive views. This has lead to increased complexity in the Taxonomy canonical code which has needlessly caused bugs.

What I'm proposing, is that it might be time to lay to rest the current `if.. elseif.. elseif..` style checks, It's not possible for 1 if branch to handle every single access point without duplicating another branch.

As a result, I've put a half-finished together alternate version of Canonical, It's based on tallying up which query vars have been used/accounted for and removing any duplicates.. It's certainly not the best, but it's fairing better with the unit tests so far.

{{{
Unit Testing: http://unit-tests.trac.wordpress.org/browser/wp-testcase/test_includes_canonical.php
Before: FF.......FFFF..FFF.....F......FFFFFF.F....F.....FF....FF...
 After: FF...........FFF..................FF..................F....
}}}

It's a work in progress, but it's worth considering IMO.

Attaching a diff, and the full file (since the diff is going to be rather unreadable in some sections)",dd32
Needs Dev / Bug Wrangler Feedback,15397,redirect_guess_404_permalink() purposedly doesn't guess posts with updated dates,,Canonical,,lowest,normal,Future Release,enhancement,new,dev-feedback,2010-11-12T00:17:38Z,2012-07-03T15:37:18Z,"'''Problem'''

Here's my post path scheme: http://site.com/YEAR/MONTH/DAY/SLUG. Whenever I have writers working on a post for a while and saving drafts (we're all using Windows Live Writer), they oftentimes publish to the date when the last draft was saved, i.e. several days in the past. Then, they quickly correct the date but the previously tweeted/shared link is now 404 due to the changed date.

I've looked into the source of redirect_guess_404_permalink(), and it purposedly narrows down the query when it sees a post date to that date only. If I understand correctly, this is done to minimize accidental redirects to the wrong post, but has the side effect of not guessing the new link if only the date was changed.

A workaround of removing these lines:
{{{
  if ( get_query_var('year') )
    $where .= $wpdb->prepare("" AND YEAR(post_date) = %d"", get_query_var('year'));
  if ( get_query_var('monthnum') )
    $where .= $wpdb->prepare("" AND MONTH(post_date) = %d"", get_query_var('monthnum'));
  if ( get_query_var('day') )
    $where .= $wpdb->prepare("" AND DAYOFMONTH(post_date) = %d"", get_query_var('day'));
}}}

fixes the problem for me.

Can this case be solved in the trunk and the code above removed, or logic improved? My .htaccess file is filled with 301 redirects to correct wrong dates.

Thank you.",archon810
Needs Dev / Bug Wrangler Feedback,12363,Comment permalink wrong when only listing one comment type,,Comments,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-02-24T14:31:51Z,2010-11-13T07:46:50Z,"If you pass the `type` parameter to `wp_list_comments()` (for example, to show comments only and no pings), then comment permalinks can easily use the wrong page number as they expect there to be pings included. This is apparent after leaving a comment and WordPress attempts to redirect back to your new comment.

At first I was thinking you could tell WordPress that you're filtering to a type and it could compensate when determining the page number, but then I realized perhaps it'd just be better for `wp_list_comments()` to check if there were 0 comments returned for the query and if so, see if there are any of that type of comment available. If so, then we know we're on too high of a page number and can instead display the highest existing page. Then again this introduces SEO issues.

Ideas on what to do are welcome.",Viper007Bond
Needs Dev / Bug Wrangler Feedback,17714,Comment/pingback handlers don't check whether the post type supports comments,,Comments,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-06-07T06:09:02Z,2011-06-07T06:17:45Z,"wp-comments-post and XML-RPC don't check post type support for comments before accepting them - I think they should. We can't rely solely on `$post->comment_status` because that may not always be set to ""closed"" even if the post type doesn't support comments (see also #13473)

Maybe we could add a check to `comments_open()`?",solarissmoke
Needs Dev / Bug Wrangler Feedback,16976,Don't use photo as avatar class in comments,,Comments,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-03-27T00:54:44Z,2011-03-27T01:07:30Z,"If you use an image in your post with class 'photo' to show it in Google's search results as a rich snippet is not possible if you make use of avatars in your comments. Google will pick the last class 'photo' image on the page to show as the search result.

Suggestion is to change the avatar class in comments to from 'photo' to 'comment-photo'. A post image is more important than a comment avatar to use for rich snippets.",Okoth1
Needs Dev / Bug Wrangler Feedback,8973,Function get_page_of_comment() returns incorrect page numbers,,Comments,2.7,normal,normal,Future Release,defect (bug),reopened,dev-feedback,2009-01-27T16:54:40Z,2012-06-17T22:37:09Z,"The function get_page_of_comment(), defined in /wp-includes/comment.php for WordPress 2.7, returns wildly incorrect results in cases where the database includes spam trackbacks or pingbacks. The reason is that the DB query on line 595 does not include ""comment_approved = 1"" and therefore incorrectly counts unapproved trackback and pingback spam (not to mention non-spam comments in moderation). As far as I can tell from browsing my DB, although spam comments have their comment_type changed to 'spam' in the database, trackbacks and pingbacks still retain their original comment_type.

As a newbie to the WordPress Trac, I'm afraid I don't know how to provide a diff, but the full correct query is as follows:

$oldercoms = $wpdb->get_var( $wpdb->prepare( ""SELECT COUNT(comment_ID) FROM $wpdb->comments WHERE comment_approved = 1 AND comment_post_ID = %d AND comment_parent = 0 AND comment_date_gmt < '%s'"" . $comtypewhere, $comment->comment_post_ID, $comment->comment_date_gmt ) );

The upshot is that without the above fix, comment URLs in several places (e.g., RSS feeds) may point to non-existent pages.

All the best,
Greg

",GregMulhauser
Needs Dev / Bug Wrangler Feedback,10790,"No feedback given to commenter when ""Name"" field empty",,Comments,2.8.4,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-09-15T17:43:44Z,2011-01-21T05:44:40Z,"On my installation, name and email are not required to post a comment. I must approve every comment before it appears. If a user chooses to give their name anyway, then after they post their comment, they get a screen that says ""Blah says:"" and below that ""Your comment is awaiting moderation."" This is expected behavior.

However, if the user does not give their name, then they do not get any sort of confirmation that their comment was sent. It is sent successfully, but the user should have confirmation, otherwise they will likely try more than once before giving up in frustration.

I have tested this bug using Firefox 3.0, with and without JS enabled, and Internet Explorer 6.",WK1
Needs Dev / Bug Wrangler Feedback,20262,"When ""Automatically close comments on articles older than X days"" is enabled, comments appear closed on draft posts",,Comments,3.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-03-20T15:14:21Z,2012-09-05T17:12:08Z,"If the setting to ""Automatically close comments on articles older than X days"" is enabled via Settings -> Discussion, comments automatically appear as closed on draft posts until the post is published. This is regardless of the Discussion settings configured on the Post Edit page for the draft post.

To replicate:

1. Via Settings -> Discussion, click on ""Automatically close comments on articles older than X days."" 

2. Create a new post and save it as a draft. Make sure comments are enabled in your Discussion module.

3. When previewing the draft post, it will say ""Comments closed"" regardless of the Discussion settings.

The post will show comments as being allowed once it's published, they only show up as closed when in the draft format. ",evarlese
Needs Dev / Bug Wrangler Feedback,15644,"When deleting a user, corresponding comment user IDs aren't reset",,Comments,,lowest,minor,Future Release,defect (bug),new,dev-feedback,2010-12-02T11:19:18Z,2012-08-04T09:55:22Z,"Delete a user with a comment.

The user ID stays.

Potential for clashes later.

We should run this: `$wpdb->update( $wpdb->comments, array( 'user_id' => 0 ), array( 'user_id' => $user_id ) );` in wp_delete_user.

Alternative is to do a full query then manually run wp_insert_comment() on each, so all hooks get fired, which is fine too and is more in line with what we do elsewhere.",nacin
Needs Dev / Bug Wrangler Feedback,13091,edit_post action on wp_update_comment_count_now should not be fired if the comment count hasn't changed,,Comments,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-04-23T06:43:15Z,2010-10-02T00:13:54Z,"wp_update_comment_count_now() is called whenever a comment status is transitioned (or a comment is deleted). However, if the comment transition is not from/to the 'approved' status (e.g., if the comment is transitioned from 'spam' to 'trash' or from 'unapproved' to 'trash'), then the associated post is not actually affected. Therefore in such cases the edit_post action shouldn't be fired, because the post has not been edited/modified in any way. I would argue that the 'wp_update_comment_count' action also should not be fired.

One solution is to check whether the comment count has changed before firing the action.  Another possible option is to call wp_update_comment_count only when a comment has transitioned in/out of the ""approved"" status. I'm inclined to prefer the former because it involves less change.

Proposed patch to follow.",solarissmoke
Needs Dev / Bug Wrangler Feedback,16365,Comment transition for new comments,,Comments,3.1,normal,minor,Future Release,enhancement,new,dev-feedback,2011-01-24T21:07:46Z,2012-05-28T12:39:19Z,"As far as I can tell wp_transitions_comment_status() does not get called for new 'comments' based on my testing and review of comment.php in wp-includes.

There is a similar transition for posts that gets called for new 'posts' including hooks like 'new_to_publish' and 'new_to_private'.

I feel that there should be a similar hook to this form comments so that plugins can hook into new comments differently from comments moved from one existing status to another (like comment_unapproved_to_approved'.",MattyRob
Needs Dev / Bug Wrangler Feedback,15015,Customisable submit button for comment form,,Comments,3.0.1,normal,normal,Future Release,enhancement,new,dev-feedback,2010-10-02T16:38:10Z,2012-12-16T00:07:37Z,"Note: I'm setting this as a blocker because it is a blocker '''to me'''. Set it whatever you feel appropriate.

I badly needed to customise the submit button because I wanted to add a tabindex.

I could reimplement the whole form with my markup, but as I already worked my way through all the other fields, I did want to continue this way.

Sadly I discovered it's not possible. So, after discussing this in IRC, I decided to hack the core and propose the attached patch.

Basically now you can create a filter and output your markup, like this:

{{{
function awesome_comment_form_submit_button($button) {
	$button =
		'<input name=""submit"" type=""submit"" class=""form-submit"" tabindex=""5"" id=""[args:id_submit]"" value=""[args:label_submit]"" />' .
		get_comment_id_fields();
	return $button;
}
add_filter('comment_form_submit_button', 'awesome_comment_form_submit_button');
}}}

and filter magic happens. Please notice that
1. you have to include [args:id_submit] and [args:label_submit] if you want the comment_form() parameters to work.
2. you have to use the get_comment_id_fields() function.

It may be better but it works for me. If anybody feels like making it better, be my guest.",morpheu5
Needs Dev / Bug Wrangler Feedback,16979,Extra hooks needed in comment process,,Comments,,normal,normal,Future Release,enhancement,new,dev-feedback,2011-03-27T06:06:54Z,2012-05-22T16:29:11Z,"I'm running into a few commenting issues whilst building a plugin with a custom post type..

 * Duplicate comment check's cannot be bypassed
 * Empty comments are not allowed (In this case, the comment body is empty whilst a set of custom fields acting as metadata are set, meaning, the plugin wants to accept that comment)
 * being able to override the wp_die() in the commenting process would be useful (Currently: Duplicate comments, User not logged in, and not all fields filled in will cause this)

One potential solution would be to move [http://core.trac.wordpress.org/browser/trunk/wp-comments-post.php#L55 lines 55-84] from `wp-comments-post.php` to functions hooked to `preprocess_comment`",dd32
Needs Dev / Bug Wrangler Feedback,19739,Filter to override exit for comments on drafts (comment_on_draft),,Comments,3.3,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-01-04T19:01:18Z,2012-01-05T18:45:37Z,"I'd like to use comments on draft posts as part of an editorial workflow. Will this be as easy as adding a filter to fire before the current comment_on_draft action that can be checked before exiting? I'll try that and add a patch if it looks good.

Related #13276. Not relevant to #18630, I think.",cyberhobo
Needs Dev / Bug Wrangler Feedback,17951,Move or duplicate comment actions at top of each comment row,,Comments,,normal,normal,Awaiting Review,enhancement,new,close,2011-06-30T17:29:35Z,2013-01-21T23:31:29Z,"When I attempt to take an action on a comment and the comment is EXTREMELY long, it takes a while to get to the SPAM link since it's at the bottom of the comment.

This ticket is to simply propose moving the actions to the top, rather than the bottom of the comment. Or perhaps duplicate the actions there, since they are only visible on hover anyway.",chriswallace
Needs Dev / Bug Wrangler Feedback,10856,Move unesential comment fields to the comment meta table,,Comments,2.9,normal,normal,Future Release,enhancement,new,dev-feedback,2009-09-26T03:07:47Z,2011-07-28T21:03:24Z,"The wp_comments table has 3 less-used fields that would be better placed in the new commentmeta table. These are:

- comment_author_IP

- comment_agent

- comment_karma",scribu
Needs Dev / Bug Wrangler Feedback,20537,Don't spawn cron requests for suspended blogs,,Cron,3.3.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2012-04-24T20:40:19Z,2012-09-17T06:54:10Z,"
{{{

}}}
For multisite, spawning cron requests is wasteful and unnecessary. wp_cron()/spawn_cron()/wp-cron.php should check the blog's status and bail if the blog is suspended.",ryan
Needs Dev / Bug Wrangler Feedback,23133,Display a warning in the admin if cron tasks fail due to blocked HTTP requests,,Cron,3.5,normal,major,Awaiting Review,enhancement,new,dev-feedback,2013-01-07T08:33:05Z,2013-01-29T20:08:25Z,"I recently upgraded my very simple WP site to 3.5 where the following was in use:

Theme: Twenty Eleven
Plugins: None Activated

I have been completely unable to submit a post for publishing in a future date, when the time occurs, I get a ""missed schedule"" message.

The schedule entry in cron is as follows:

Next due (GMT/UTC): Jan 4, 2013 @ 11:28 (1357298880)
          Schedule: One-off event
              Hook: publish_future_post
         Arguments: [0]: 358

Increasing the timeout value in cron.php has made no difference. 

I will need to remain on a lower release until this is fixed or a diagnosis ""kit"" is made available.

I am not using any software other that WP produced at this point and feel that the lack of wp-cron documentation and support in the public domain leaves alot of people clocking many hours googling in desperation...

Make a difference in 2013 and get 3.5 development priorities to de-mystify the methods of fixing wp-cron please :o)",prb22public@…
Needs Dev / Bug Wrangler Feedback,23085,Calling $wpdb->query() when no connection exists causes mysql_error() to throw an error,,Database,3.5,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2012-12-30T10:30:49Z,2013-01-21T00:42:22Z,"In the query() method of wp-db.php, the mysql_error() expects that if a parameter is passed to it then it should be a valid link identifier.

*May need feedback or added testing* ...this error may be specific to transactions, which is why it hasn't been noticed before. Unit tests do use transations and I only get these errors when ROLLBACK is called during specific unit tests that don't modify the DB state. A simple transaction opened & rolled back in the Debug Bar Console is not triggering this for me.

Unit test failure examples:

'''Test: test_is_image_positive'''

{{{
mysql_error() expects parameter 1 to be resource, integer given
Execution time: 0.02507209777832s
Stack Trace:
Array
(
    [0] => Array
        (
            [file] => C:\xampp\htdocs\wpnew\wp-includes\wp-db.php
            [line] => 1202
            [function] => mysql_error
            [args] => Array
                (
                    [0] => 0
                )

        )

    [1] => Array
        (
            [file] => C:\xampp\htdocs\wp_test_svn\includes\testcase.php
            [line] => 25
            [function] => query
            [class] => wpdb
            [type] => ->
            [args] => Array
                (
                    [0] => ROLLBACK
                )

        )

)
}}}

'''Test: test_is_image_negative'''

{{{
mysql_error() expects parameter 1 to be resource, integer given
Execution time: 0.02237606048584s
Stack Trace:
Array
(
    [0] => Array
        (
            [file] => C:\xampp\htdocs\wpnew\wp-includes\wp-db.php
            [line] => 1202
            [function] => mysql_error
            [args] => Array
                (
                    [0] => 0
                )

        )

    [1] => Array
        (
            [file] => C:\xampp\htdocs\wp_test_svn\includes\testcase.php
            [line] => 25
            [function] => query
            [class] => wpdb
            [type] => ->
            [args] => Array
                (
                    [0] => ROLLBACK
                )

        )

)
}}}

I don't think we should attempt {{{if ( $this->last_error = mysql_error() )}}}. That is because when mysql_error() is called without a link identifier then the most recent connection to MySQL is referenced. On a busy server this may not be the same connection as our page or transaction originally used. See #3544 for history/details.",mbijon
Needs Dev / Bug Wrangler Feedback,22408,wp_insert_attachment and _real_escape input validation and better error handling,,Database,3.4.2,normal,trivial,Awaiting Review,defect (bug),new,dev-feedback,2012-11-10T21:47:03Z,2012-11-10T21:49:25Z,"Recently when using the `wp_insert_attachment()` function I passed the whole result of the `wp_check_filetype()` function for the `""post_mime_type""` attribute, instead of the `""type""` property from the filetype check result. What I got was an error in the `_real_escape()` function which expected a string, but received an array, which didn't quite help me find my error.

I believe some kind of type checking would be nice for both the `_real_escape()` function as well as the `wp_insert_attachment()`.

It seems suitable if the `wp_insert_attachment()` function returned a `WP_Error` object in case there are issues with the passed arguments.

I'm not sure, however, what the best solution would be for the `_real_escape()` function -- return false, fail quietly, raise an exception or also return a `WP_Error`.

I would have proposed a patch, but I'm not sure what solution to implement. Let me know if I should do it in a certain way and I'll submit a patch for review, saving you a little time for other ticket review.",magadanski_uchen
Needs Dev / Bug Wrangler Feedback,15499,Add an index for get_lastpostmodified query,,Database,3.0.1,normal,normal,Future Release,enhancement,new,dev-feedback,2010-11-19T18:20:31Z,2012-12-04T21:50:27Z,"I had a friend (Jools Wills) look over a WordPress site recently, to get a fresh view on what might be optimised, and he noticed a query which might benefit from an additional index on ```WP_Posts```. The query ```SELECT post_modified_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_modified_gmt DESC LIMIT 1``` in ```get_lastpostmodified``` is run for last modified date in GMT, and currently doesn't use an index. This SQL is run whenever certain types of feed are requested as far as I can see.

We added ```CREATE INDEX type_status_modified ON wp_posts (post_type, post_status, post_modified_gmt);``` and ```CREATE INDEX type_status_modified_no_id ON wp_posts (post_type, post_status, post_date_gmt);``` and the query runs a lot faster now. The following timings were taken running the first query (```post_modified_gmt```) on a 36,362 row posts table. Note that it doesn't use filesort after the index has been added.

''Before:''

{{{
mysql> EXPLAIN SELECT post_modified_gmt FROM slgr_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_modified_gmt DESC LIMIT 1;
+----+-------------+------------+------+------------------+------------------+---------+-------------+-------+-----------------------------+
| id | select_type | table      | type | possible_keys    | key              | key_len | ref         | rows  | Extra                       |
+----+-------------+------------+------+------------------+------------------+---------+-------------+-------+-----------------------------+
|  1 | SIMPLE      | slgr_posts | ref  | type_status_date | type_status_date | 124     | const,const | 24718 | Using where; Using filesort |
+----+-------------+------------+------+------------------+------------------+---------+-------------+-------+-----------------------------+
1 row in set (0.03 sec)
}}}


 * 0.21290683746338ms
 * 0.25690102577209ms
 * 0.230553150177ms
 * 0.2274341583252ms
 * 0.23083996772766ms

''After:''

{{{
mysql> EXPLAIN SELECT post_modified_gmt FROM slgr_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_modified_gmt DESC LIMIT 1;
+----+-------------+------------+------+---------------------------------------+----------------------+---------+-------------+-------+-------------+
| id | select_type | table      | type | possible_keys                         | key                  | key_len | ref         | rows  | Extra       |
+----+-------------+------------+------+---------------------------------------+----------------------+---------+-------------+-------+-------------+
|  1 | SIMPLE      | slgr_posts | ref  | type_status_date,type_status_modified | type_status_modified | 124     | const,const | 24718 | Using where |
+----+-------------+------------+------+---------------------------------------+----------------------+---------+-------------+-------+-------------+
1 row in set (0.00 sec)
}}}

 * 0.00082707405090332ms
 * 0.00072288513183594ms
 * 0.00074386596679688ms
 * 0.00066494941711426ms
 * 0.00066208839416504ms

In ```get_lastpostmodified``` both these queries are run, so the total savings in my case on a quiet server are nearly 0.5 seconds... worth having, I reckon.

I've not created a patch for schema changes before, but I think the only place the change would need to go would be ```scheme.php```? Suggested patch attached.",simonwheatley
Needs Dev / Bug Wrangler Feedback,22117,Better backtrace,,Database,3.4.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-10-06T14:06:50Z,2012-10-06T18:25:28Z,"Hey,
This is a small hack for a prettier backtrace info.

the file '''''/wp-includes/functions.php''''' at Line 3547

the new functions with added lines

{{{
function wp_debug_backtrace_summary( $ignore_class = null, $skip_frames = 0, $pretty = true ) {
	if ( version_compare( PHP_VERSION, '5.2.5', '>=' ) )
		$trace = debug_backtrace( false );
	else
		$trace = debug_backtrace();

	$caller = array();
	$check_class = ! is_null( $ignore_class );
	$skip_frames++; // skip this function
	$last_info = array();

	foreach ( $trace as $call ) {
		if ( isset( $call['class'] ) && 'wpdb' == $call['class'] )
		{
			$last_info['file'] = basename($call['file']);
			$last_info['line'] = $call['line'];
		}

		if ( $skip_frames > 0 ) {
			$skip_frames--;
		} elseif ( isset( $call['class'] ) ) {
			if ( $check_class && $ignore_class == $call['class'] )
				continue; // Filter out calls
			$caller[] = ""{$call['class']}{$call['type']}{$call['function']}"";
			if( empty( $last_info['func'] ) ) $last_info['func'] = $call['class'].'->'.$call['function'];
		} else {
			if ( in_array( $call['function'], array( 'do_action', 'apply_filters' ) ) ) {
				$caller[] = ""{$call['function']}('{$call['args'][0]}')"";
			} elseif ( in_array( $call['function'], array( 'include', 'include_once', 'require', 'require_once' ) ) ) {
				$caller[] = $call['function'] . ""('"" . str_replace( array( WP_CONTENT_DIR, ABSPATH ) , '', $call['args'][0] ) . ""')"";
			} else {
				$caller[] = $call['function'];
				if( empty( $last_info['func'] ) ) $last_info['func'] = $call['function'];
			}
		}
	}
	if ( $pretty )
		return sprintf(__(""Error at %s, at line %d, in function %s<br/>%s""), 
				$last_info['file'], $last_info['line'], $last_info['func'], join( ', ', array_reverse( $caller ) ) );
	else
		return $caller;
}
}}}",msolution
Needs Dev / Bug Wrangler Feedback,22115,Further Simplifying errors,,Database,3.4.2,normal,normal,Future Release,enhancement,new,dev-feedback,2012-10-06T11:32:15Z,2013-05-16T11:55:15Z,"tracking errors while making API's and cron jobs, is a tad difficult.

from the latest wordpress pack, '''''/includes/wp-db.php'''''

{{{
function query( $query ) {
...
...
if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES )
	$this->queries[] = array( $query, $this->timer_stop(), $this->get_caller() );

// If there is an error then take note of it..
if ( $this->last_error = mysql_error( $this->dbh ) ) {
	$this->print_error();
	return false;
}
...
...
}}}

if we change the above to simply

{{{
// If there is an error then take note of it..
$this->last_error = '';
if ( $this->last_error = mysql_error( $this->dbh ) )
	$this->print_error();

if ( defined( 'SAVEQUERIES' ) && SAVEQUERIES )
	$this->queries[] = array( $query, $this->timer_stop(), $this->get_caller(), $this->last_error );

// If there is an error then take note of it..
if ( ! empty( $this->last_error ) )
	return false;
}}}

then we have all required info in the array queries, for use later. may it be wp_footer, or for a plugin as debug info.",msolution
Needs Dev / Bug Wrangler Feedback,20316,Garbage collect transients,,Database,,normal,normal,Future Release,enhancement,new,dev-feedback,2012-03-28T22:04:35Z,2013-05-14T15:57:57Z,"Per an IRC discussion and long-considered changes:

 * In wp_scheduled_delete(), look for expired transients and purge them.

 * On DB upgrade, purge all transients, regardless of expiration. (This should probably happen on auto-update as well, but let's let that part slide for now, as DB upgrade will run on all major releases these days.)

We should only do this if ! $_wp_using_ext_object_cache.",nacin
Needs Dev / Bug Wrangler Feedback,22884,What if I delete wp_posts table from database.,,Database,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-12-12T12:48:24Z,2012-12-13T11:51:20Z,"I am not a experienced or mature programmer but I have seen it While I was playing with database of WordPress.

I have deleted wp_posts table in database in WordPress - 3.5(beta).

It looks normal on other pages at admin side but when i open single post it shows post-new.php and when hit save, it shows ""wp_error"" with this message ""You are not allowed to edit this post.""

That's OK. I was expecting error but not this type of error.

It seems WordPress doesn't know that its most important table has gone away and that's why admin may not know( well for a while). I think its not good. well I don't know its issue or it is way it behaves with database and its normal but I think WordPress should know what exactly happened.

when I have updated WordPress with stable 3.5 it has updated but database is still same which is normal.

Should we( can we )track tables( some of tables which are important ) by PHP ?",mukkundthanki
Needs Dev / Bug Wrangler Feedback,21663,Use PDO for MySQL queries when PDO is available,,Database,3.5,normal,normal,Future Release,task (blessed),new,dev-feedback,2012-08-22T21:02:28Z,2013-05-20T22:21:49Z,"the mysql_* functions are officially deprecated for PHP 5.4 and will begin throwing E_DEPRECATED errors in the next version of PHP.
http://marc.info/?l=php-internals&m=131031747409271&w=2

Wordpress should use PDO by default, but fall back to mysql_* when PDO is not present.

See also: #11622 for last year's discussion.",scottconnerly
Needs Dev / Bug Wrangler Feedback,23227,Properly reflect date and time formats throughout admin area,,Date/Time,3.5,normal,trivial,Awaiting Review,defect (bug),new,dev-feedback,2013-01-17T19:37:21Z,2013-01-18T14:13:53Z,"I have noticed several places in the admin area where the time & date formats set on the General Settings screen are not reflected. For example, on Page Edit, revisions have a hardcoded date format of `'j F, Y @ G:i'` and ajax autosaves use `'g:i:s a'` to show the ""Draft Saved at"" time (of note is the 24 hour vs 12 hour time). The ""Last Edited By _ on _"" time ''does'' properly use the time & date format options.

I have included a patch for the two examples above (comments/critiques welcomed), but there were a few others I noticed that may be somewhat more involved to fix. These include:
- Dates shown in the ""Date"" column of list tables (both the displayed and title text)
- ""Published on:"" date/time for pages (this may be tricky since editing the published time uses a 24-hour time format)
- ""Uploaded on:"" date/time shown in 'Save' metabox on Media edit screen

And there are probably other places I have missed as well.

Obviously somewhat low priority compared to other issues (and may be enhancement rather than defect), but I figured I'd bring it here and see what others thought.",bananastalktome
Needs Dev / Bug Wrangler Feedback,23203,Scheduling Posts assumes GMT but UI uses local timezone (creating undesired scheduled posts),,Date/Time,3.5,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-01-15T15:32:09Z,2013-01-16T13:16:59Z,"I experienced an odd behavior when going to edit a page on a newly created site in a multisite environment. The site uses the New York timezone (GMT-5).

When quick-editing the page, I changed the title and slug, but pressing ""Update"" set the page as ""Scheduled"" rather than leaving it ""Published"". This was very confusing, and took a while to figure out and then explain to the end user. It seems that although the date/time is shown in the UI in the current time zone, once submitted the form interprets the time as if it were in GMT. To the end user, it looks like the page should be published since the time shows what we thought was a 5 minutes ago. In reality, the time in the date field is not recognized as 5 minute ago but 4 hours and 55 minutes in the future.

This is a problem in the full edit form for pages in this newly created site as well. When I go to edit the published time/date, the posted time in my timezone is shown. However, ''even if I hit 'Cancel' the ""Update"" button changes to ""Schedule""''.",bananastalktome
Needs Dev / Bug Wrangler Feedback,16477,"""View post"" link should not change when sample permalink changes",,Editor,3.0,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-02-07T08:15:26Z,2011-12-18T23:54:38Z,"To reproduce:

- Go to edit a post
- Change the permalink
- Click on ""View post"" and you get a 404 because the href has been changed to the new sample permalink but the post hasn't been updated yet

The ""View post"" link should always point to the permalink of the currently saved post.",solarissmoke
Needs Dev / Bug Wrangler Feedback,19947,Copy paste behavior in Visual mode differs from HTML mode,,Editor,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-02-02T13:13:11Z,2012-02-02T13:13:11Z,"Copy a random html page from a random site including links and images and paste it into the WYSIWYG Editor Visual mode and it will include the images and links. Basically it (mostly) looks like the copied page. If you paste the same into the WYSIWYG Editor HTML tab and it will strip out _all_ HTML markup and just leaves the plain text, without the images or links.  

Expected: 
I would expect the Visual and HTML mode of the WYSIWYG editor to behave the same, either both use the code (displaying the results of the markup code in the Visual tab and the markup code itself in the HTML tab) or both strip out all html.   

",BjornW
Needs Dev / Bug Wrangler Feedback,16116,Hide 'Move to Trash' for auto drafts,,Editor,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-01-06T05:54:59Z,2013-01-22T16:52:51Z,"The 'Move to Trash' link should not appear for auto-drafts. 

This was the original intent of what [13905] removed, which I want to say was designed to reflect additional scenarios.",nacin
Needs Dev / Bug Wrangler Feedback,22996,IE8 - Hierarchical Taxonomies with bulk terms cause massive slow-down / freeze,,Editor,,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2012-12-18T19:18:02Z,2013-01-06T08:07:28Z,"For a project, we have about 550+ terms in a single taxonomy, the other taxonomies have around 10-40 each themselves too. There appears to be an issue when IE8 comes across too many checkboxes on a page, and this recently was exacerbated by an upgrade to WP 3.5. The upgrade itself didn't cause it, but it coincided with the addition of a few new terms (don't know how many were added before the upgrade just yet, will post if I find out more info).

To reproduce, you've gotta have a large amount of terms for your taxonomies, then go into the post editor (for whatever post type you're testing on), and ensure your taxonomies have 'hierarchical' set to true in their definitions. I've seen the issue crop up on save (on subsequent load of the page w/ success message on it), and on open of the edit page itself.

The issue seems to be more severe for IE8 on Windows XP Service Pack <= 1, but I've seen it cause a massive slow-down for newer XP versions, just not freeze up entirely like it did on the XP SP 1 machine I was primarily testing on.

''I'm not really sure'' what the solution is going to have to be here, or if this will serve merely as a paper-trail for the folks searching for information about this.

I did a blanket forceful change for checkbox input to autocomplete on the meta boxes associated to hierarchical taxonomies using the following Gist to resolve the freezing for now:

https://gist.github.com/4330772

Here's the info you'll probably ask for, I went down to the basics to see exactly what the cause was:

1. No plugins activated (except a small plugin that had the Gist in it to resolve the issue for me)

2. Standard Twenty Twelve theme activated

3. Tested and found the issue happening on both WP 3.4.x and WP 3.5

4. Tested on XP SP 1 with IE8, saw the greatest degradation of performance here

5. Tested on XP SP 3 with IE8, saw a noticeable freeze and then slow-down of performance as the page loads here",sc0ttkclark
Needs Dev / Bug Wrangler Feedback,19645,Image caption gets removed when editing image dimensions.,,Editor,3.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-12-22T16:24:34Z,2011-12-23T18:25:53Z,"When editing an image placed into a post in a certain way, the caption of the image is removed.

Steps to reproduce:
1. Edit a post that contains an included image.
2. Click the edit options icon when selecting the image.
3. Go to the advanced image settings(make sure the image does have a caption).
4. Empty the width field.
5. Press the submit button.
-> The caption of the image is set empty.

Remarks,
In my case only leaving the width input field blank caused this issue.",JanJaapKempenaar
Needs Dev / Bug Wrangler Feedback,13942,Logged-out notice in post edit page is easily missed,,Editor,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-06-17T11:25:40Z,2012-09-27T15:42:48Z,"When a user gets logged out during post editing, a small warning appears bellow the post editor, next to the word count. This warning states that changes will not be saved until user logs in again - but it's a small notice and is very easily missed.

Since this can be potentially catastrophic for users writing long posts while relying on auto-save, a bigger and more prominent notice probably makes more sense.

=== Repro ===

ENV: WP 3.0

This bug can be reproduced in WordPress 3.0 by opening two tabs – one tab with a blog’s Dashboard, and another tab with the same blog’s New Post page. In the Dashboard, click Logout, then switch to the New Post tab. Here, enter any text in the post’s title, then hit Tab to switch to the editor. This will trigger the permalink preview, which will in turn trigger the notice about being logged out: “ALERT: You are logged out! Could not save draft. Please log in again.”

=== Additional Details ===

The notice comes from wp-admin/admin-ajax.php, in line 36.

Currently behavior was introduced by #7630, where it was already noted ""maybe something more obvious needed""",RanYanivHartstein
Needs Dev / Bug Wrangler Feedback,21934,Title field on Insert/edit link form shouldn't allow autosuggest,,Editor,3.4.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-09-19T21:10:18Z,2012-09-20T22:37:44Z,"When entering a link through the ""Insert/edit link"" thickbox form, Firefox displays autosuggest dropdowns for both the URL field and the title field.

This would be helpful, except that the javascript keyboard handlers bound on keydown/keyup prevent the browser UI from being accessible.

What happens is:

1. User tries to add link to text through the editor (Visual or HTML).
1. User enters the correct URL into the URL field, and exits that field by hitting ""tab"".
1. User begins typing the link title. Firefox browser UI helpfully suggests some similar titles.
1. User sees a title they'd like to use, and hit the keyboard down arrow, thinking that this will select the correct title for them.
1. What actually happens is that the first link listed below in the link to existing content gets selected. This overwrites what's been entered in the URL and title field.
1. User says, WTF just happened.

Solutions:

- Adding `autocomplete=""off""` to these two form fields would prevent Firefox from displaying its autosuggestions. This might fix the problem, but feels kind of like a bandaid.

- A keydown/keyup handler could be attached to each of the text input fields with event.stopPropagation could stop the ui keyboard behavior when typing into those fields.",goldenapples
Needs Dev / Bug Wrangler Feedback,20073,When I publish a draft the posting date is not updated,,Editor,3.3.1,normal,major,Awaiting Review,defect (bug),new,dev-feedback,2012-02-18T20:39:13Z,2012-02-19T15:23:57Z,"I believe this was a bug previously that has come back with the latest version.  If you create a draft post and edit it over time, then publish it the date is NOT automatically adjusted to the date you publish.  It keeps the original date the post was created as a draft, thus putting it behind in the RSS feed and on your posting list.  This used to be an issue before, and seemed to be corrected and has come back up again

Steps to re-produce:
1)  Create a draft today
2)  Wait a couple days then publish
3)  You will see the ""published Date"" is the date it was created NOT the date it was published

This also happens with scheduled publishes ",ccolotti
Needs Dev / Bug Wrangler Feedback,22392,save_state() in postbox.js should look at the hidden checkboxes instead of :hidden,,Editor,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-11-08T16:05:28Z,2012-11-08T18:11:13Z,"At this moment save_state() looks at all the metaboxes that are really hidden with filter(':hidden'). With can lead to weird behavior when a plugin starts to hide a metabox in some cases since it can be showed/hidden by default.

I was wondering if it is possible to look at the checkboxes and mapped them as a string and pass it to the AJAX action closed-postboxes.",markoheijnen
Needs Dev / Bug Wrangler Feedback,19354,wp_allowed_protocols() does not allow data URI scheme,,Editor,3.2.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-11-25T03:34:46Z,2012-03-26T03:27:19Z,"When inserting images into a post via copy-paste, Firefox will paste a base64 text string (using the Data URI scheme) into the post editor.  The result will look something like:

<img src=""data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg=="" alt=""Red dot"">

When the post is saved, the ""data:"" portion of the src attribute is stripped away by wp_kses_hair() via the line:

if ( in_array(strtolower($attrname), $uris) )
   $thisval = wp_kses_bad_protocol($thisval, $allowed_protocols);

""data:"" is treated as a protocol prefix, and is not seen as part of the src attribute.

To reproduce this error, try the following in Firefox:

1) Do a Google image search for a rendom image.
2) Right-click -> ""Copy Image""
3) Paste into rich text editor
4) Save post
5) View HTML tab of the editor and notice that the ""data:"" scheme has been removed.

A side effect of this issue is that the image src is treated as a relative image path on the server (in subdirectory ""image/png"" with long string of characters as the ""file name.""  The server will typically report an error in its log file about the request length of the URI being too long.",hardy101
Needs Dev / Bug Wrangler Feedback,18254,Preserve image aspect ratio when editing dimensions manually in post editor,,Editor,3.2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-07-26T01:57:16Z,2011-10-09T14:09:17Z,"The dialog box that pops up when the user clicks the ""edit image"" icon that appears on hovering over an image in the visual editor has an ""Advanced settings"" tab with input fields for the pixel dimensions of the image.

When one is updated, the other does not change. A popular feature of image management software is to ""link"" the values and preserve the aspect ratio of the image.

I propose that WordPress have the option (a checkbox by the inputs?) to do this.

Sorry if this is terse; I'm about to be kicked off this library machine and I can't come back until tomorrow. Comment with anything I need to add and I'll update when I can.",voyagerfan5761
Needs Dev / Bug Wrangler Feedback,11489,iTouch useability in the editor out of the box,,Editor,2.9,low,minor,Future Release,feature request,new,dev-feedback,2009-12-19T03:47:58Z,2013-02-01T11:37:40Z,"I have tried to write a post in 2.9 in iPod Touch and the text zone has some problems:

* When you write the title, if you want to write the post the keyboard doesn't appear. You must move to another text-editable zone and go back to the main text zone to have the keyboard. 

* Once you have the keyboard, you have capslock activated and cannot deactivate it (you can deactivate letter-per-letter). 

I have tried in 2 different iTouchs with the same result. 

I put it as low because WordPress has an iPhone/iTouch app and don't know if happens the same in other mobile platforms. ",bi0xid
Needs Dev / Bug Wrangler Feedback,22435,Export API,,Export,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-11-13T16:41:55Z,2013-02-19T07:22:45Z,"From experience and from tickets (#19864, #19307, #17379) it's evident that we need to update the export API.

High level goals:
 * To be usable from different parts of the code. From the web backend, from a CLI script, from an async job.
 * To allow more control of the output format – serve over HTTP, write a single XML file to disk, split it and write many smaller XML files, write a big zip with many XML files, etc.
 * To allow exporting the data without querying all the posts at once, so that we can fit the exports to memory.
 * Keep {{{export_wp()}}} for backwards compatibility without the need to keep all (even any) of its code.

Here's my idea for the part of the API 99% of the developers touching export would use and be happy:

{{{
#!php
<?php
// WP_WXR_Export is an aimmutable representing all the data needed for the export and allows us to have it in multiple formats
$export = new WP_WXR_Export( array( 'start_date' => '2011-10-10', 'post_type' => 'event', … ) );

backup( $export->get_xml() ); // string

$export->export_to_xml_file( 'mom.xml' );
send_to_mom_to_import( 'mom.xml');

$export->serve_xml(); // with all the headers and stuff

$export->export_to_xml_files( '/files/exports-for-my-awesome-website/', 'export-%02d.wxr.xml', 5 * MB_IN_BYTES );
}}}

Before I dive into implementation details (in the comments, not to pollute the ticket), I'd like to hear what use cases for extending this code you have in mind and where should we draw the line. Adding more output writers? Adding custom export data? Adding formats different from WXR?




",nbachiyski
Needs Dev / Bug Wrangler Feedback,14757,users with no posts are not exported,,Export,3.0.1,normal,normal,Awaiting Review,enhancement,reopened,dev-feedback,2010-09-01T18:14:31Z,2011-04-02T19:49:19Z,"I just exported a large standalone site and imported into a multisite setup, and I discovered that a number of users who hadn't yet posted anything didn't get moved to the new site.",sillybean
Needs Dev / Bug Wrangler Feedback,23364,Unstable sorting with jQuery UI 1.9.1 and above,,External Libraries,3.5,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-02-02T03:07:18Z,2013-02-02T03:09:35Z,"There seems to be an issue with jQuery UI (sortable) 1.9.1 and above that affects (rather severely) sorting of elements inside sortable source and target containers. I haven't seen this affect core, but since WP has been shipping with one of the affected versions (1.9.2) since 3.5, I'm worried about potential repercussions on WP theemes, plugins or projects relying on this script. For instance, Ultimate Tinymce, by Josh Lobe and myself (recently), has been affected by this.[[BR]]
[http://elblawg.com/jqueryui-test/ Here] is a testing platform I created on my server about the problem. Choosing any version of UI newer than 1.9.0 will result in said behavior.[[BR]]
[http://bugs.jqueryui.com/ticket/9041 Here] is the ticket I submitted to jquery UI Trac and [https://github.com/MarventusWP/jquery-ui/commits/master here] the Commits to their github project.[[BR]]
Finally, as recommended by Andrew Nacin on the wp-forums list, [http://jsfiddle.net/Marventus/THwqS/1/ here] is a JSFiddle that reproduces the problem.[[BR]]
I am not really sure what to do about this, but I thought I should leave it on record just in case.
Thanks!",Marventus
Needs Dev / Bug Wrangler Feedback,21769,Can we remove un-minified versions of all external libraries?,,External Libraries,3.5,normal,normal,Future Release,enhancement,new,dev-feedback,2012-09-02T09:32:35Z,2012-10-24T20:50:12Z,"With [21646] and [21648] we had removed the un-minified versions of Jcrop and jQuery Color.

A quick search through the plugin repo shows that there is only one plugin which includes the script directly:

Pie Register: http://plugins.trac.wordpress.org/browser/pie-register/trunk/pie-register.php#L1444

Should we be consistent and remove the un-minified versions of other external libraries too? These would be:

* colorpicker.js
* hoverIntent.js
* jquery.imgareaselect.js
* cropper.js (not used in core anymore and no minified version exists)
* json2.js
* tw-sack.js",ocean90
Needs Dev / Bug Wrangler Feedback,19449,"Fix Farbtastic to make it work with empty input fields, too",,External Libraries,3.3,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-12-05T17:38:08Z,2011-12-05T17:38:08Z,"Farbtastic requires that the color input field has either a color value or at least a '#' character. If it's empty it won't work. This seems like an artificial limitation and requires workarounds if the integrated Farbtastic is used for input fields that may be empty, i.e. for theme or plugin options where the color is optional. If the color fields has a default value there's no issue but having empty color fields is a useful and valid use case. 

This could be fixed in /wp-admin/js/farbtastic.js, line 192

Old:
if (this.value && this.value != fb.color) {

New:
if (this.value != fb.color) {


Looks like WP is working around this for the 'custom background' for themes (which is empty by default) by adding a hardcoded '#' and saving the background-color without '#' 

/wp-includes/theme.php, line 1772:
$style = $color ? ""background-color: #$color;"" : '';

/wp-admin/custom-background.php, line 303:
<input type=""text"" name=""background-color"" id=""background-color"" value=""#<?php echo esc_attr(get_background_color()) ?>"" />

",BytesForAll
Needs Dev / Bug Wrangler Feedback,10955,Replace ThickBox,,External Libraries,2.9,normal,normal,Future Release,enhancement,new,dev-feedback,2009-10-14T14:37:42Z,2013-02-01T15:59:30Z,"Have you thought about replacing ThickBox?  It is no longer under development (as their site says) and it doesn't conform to standard jQuery plugin practices.  For example, I'm trying to use it for a plugin of mine and I'm wanting to tie into the ""onClose"" event for ThickBox which isn't too easily done.  I know I could just include one of the other plugins, like colorbox, with my plugin but I think it'd be a great service to other developers if you included a more flexible library.


(I would have assigned this to 3.0+ but the option isn't available.)",aaron_guitar
Needs Dev / Bug Wrangler Feedback,21225,Dashboard Incoming Links - Google blogsearch fails when get_option( 'home') is not a TLD,,Feeds,2.5,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2012-07-12T02:47:09Z,2012-07-12T04:23:56Z,"When WordPress gets installed and the first time a user visits the dashboard the dashboard_widget_options get set for dashboard_incoming_links.  The Google blogsearch link gets set based on your settings for wp_home.  If your developing on a local machine most likely wp_home is not a true TLD.

Google blogsearch incorrectly returns incoming links when the site: url is not a true TLD.  For example I'll use an install where wp_home is set to http://wp.patch.  The link that gets formed is:

http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=10&output=rss&partner=wordpress&q=link:http://wp.patch/

If you visit that link you will notice that results are getting returned just using the ""patch"" keyword.

If the sited gets moved to live production you will continue to get the incorrect incoming links unless the dashboard_widget_options get manually changed or deleted.

Also to note is that the Google blogsearch API has been deprecated:  https://developers.google.com/blog-search/

My suggestion is to remove the widget or hide it by default in screen options like we did for some of the stuff in post.php.

Another option is to do a check and return WP_Error if wp_home is not a TLD before setting the dashboard widget options.",c3mdigital
Needs Dev / Bug Wrangler Feedback,10984,If content uses the nextpage tag then only the first page is shown in feeds,,Feeds,2.8.4,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-10-20T11:03:11Z,2012-08-27T17:40:40Z,"If content uses the nextpage tag then only the first page is shown in feeds if the ""full text"" option is selected in ""Settings > Reading > Show Full Text (in feed)"". 

No links are displayed to read the full content and no indication is given in the feed that it isn't the full content.

I think the behaviour should be to ignore pagination in feeds which are set to ""full text"".

I have attached a patch which alters the behaviour of the_content() so that if it is used in the context of a feed it concatenates the pages to form the full content and returns that.",simonwheatley
Needs Dev / Bug Wrangler Feedback,10713,Output encoding not set in fetch_feed,,Feeds,2.8.4,low,normal,Future Release,defect (bug),new,dev-feedback,2009-09-01T15:56:15Z,2012-12-13T20:30:56Z,"If using WP Super Cache (or a similar plugin) on a blog with a non-UTF-8 charset that has an RSS widget then the charset is incorrectly changed to UTF-8 by SimplePie.

The fix is to explictly set the encoding in fetch_feed before SimplePie sends any headers (which it only does if WP Super Cache is being used, since it checks if any headers have already been sent).

{{{
*** live/wp-includes/feed.php      2009-05-25 11:13:48.000000000 +0200
--- dev/wp-includes/feed.php       2009-09-01 17:40:19.000000000 +0200
***************
*** 552,557 ****
--- 552,558 ----
        $feed->set_file_class('WP_SimplePie_File');
        $feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 43200));
        $feed->init();
+       $feed->set_output_encoding(get_option('blog_charset'));
        $feed->handle_content_type();
  
        if ( $feed->error() )
}}}

I've put this as low priority since I guess most blogs use UTF-8 and don't use WP Super Cache.",iansealy
Needs Dev / Bug Wrangler Feedback,15110,Useless MIME type served for rss feeds,,Feeds,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-10-13T14:16:54Z,2012-06-05T08:37:39Z,"Both /feed/, /feed/rss2/, and /feed/rss/ are served using the very undescriptive and generally useless ""text/xml"" MIME type.  ATOM and RDF feeds are served with their proper MIME types.  It looks like the MIME types for RSS are in feed.php, but for some reason there is a special ""rss-http"" type that returns the useless type?  Changing the first line in feed-rss.php and feed-rss2.php to use the rss and rss2 type instead of rss-http fixed it on my site.",singpolyma
Needs Dev / Bug Wrangler Feedback,13049,Wordpress should not generate feeds for 404 pages,,Feeds,3.0,low,normal,Future Release,defect (bug),reopened,dev-feedback,2010-04-19T11:32:20Z,2010-12-05T22:04:49Z,"Say I try to visit: `http://my.blog.tld/non-existent-slug/`, (where non-existent-slug is not a valid slug) I get a the normal 404 template.

However, if I try to visit `http://my.blog.tld/non-existent-slug/feed/`, then the response is a bit weird. A 404 response header is sent but the content is nonetheless sent through the feed template. And so you get something like this:

{{{
<?xml version=""1.0"" encoding=""UTF-8""?><rss version=""0.92"">
<channel>
  <title>A Sandbox &#187; Page not found</title>
  <link>http://my.blog.tld</link>
  <description>Just another WordPress weblog</description>
  <lastBuildDate>Mon, 19 Apr 2010 11:17:05 +0000</lastBuildDate>
  <docs>http://backend.userland.com/rss092</docs>
  <language>en</language>
  <!-- generator=""WordPress/3.0-beta1"" -->
</channel>
</rss>
}}}

Assuming this isn't intentional (I can't think why it would be), this should be changed so that the content is the normal 404 template.",solarissmoke
Needs Dev / Bug Wrangler Feedback,9611,Make comment feeds fail with an error code when comments are closed,,Feeds,2.8,normal,minor,Future Release,enhancement,new,dev-feedback,2009-04-21T14:12:42Z,2011-01-12T12:40:06Z,"This is mostly a suggestion as an enhancement.

When you close a post's comments and pings, it should no longer output an rss feed. Instead, it should return a not found (404) or gone (410) error and die.

Likewise, if all posts and pages on a site disallow comments and pings, the comments feeds should not be broadcast, and should return the same error code.

Thoughts?",Denis-de-Bernardy
Needs Dev / Bug Wrangler Feedback,8828,Tags and Categories are undifferentiable in Atom and RSS feeds,,Feeds,2.7,normal,normal,Future Release,enhancement,new,needs-review,2009-01-09T11:48:18Z,2009-11-23T19:48:49Z,"In RSS feeds this can be achieved using the 'domain' attributes of the category element. This is already done in Wordpress export through the wxr_post_taxonomy function, so we just have to do the same in RSS feeds. 

In Atom feeds this can be achieved using the 'scheme' attributes of the category element. The Atom standard is not explicit about what to put in this scheme attributes. There is [http://edward.oconnor.cx/2007/02/representing-tags-in-atom an interesting topic on Edward O’Connor blog]. In my proposed patch, i decided to use the 1st representation and i also considered seriously the 2nd.

In the patch, i'm also adding the 'label' attribute to the atom category element and changed the 'term' attribute to be the tag slug. Seems this are currently the best practices in the Atom community.",znarfor
Needs Dev / Bug Wrangler Feedback,23692,feed_links should have a parameter to choose which feed to display,,Feeds,,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2013-03-05T14:02:12Z,2013-04-05T08:52:19Z,"Hello,

'''feed_links''' is a function located in wp_includes/general_template.php. It displays 2 feeds in the header : the main feed and the comment feed. The function is activated along with feed_links_extra when automatic-feed-links support is activated.

Currently, developers can't choose if they want both feeds to be displayed, or just one of them. I think this function should be improved.

Here is the current function :
{{{
function feed_links( $args = array() ) {
	if ( !current_theme_supports('automatic-feed-links') )
		return;

	$defaults = array(
		/* translators: Separator between blog name and feed type in feed links */
		'separator'	=> _x('&raquo;', 'feed link'),
		/* translators: 1: blog title, 2: separator (raquo) */
		'feedtitle'	=> __('%1$s %2$s Feed'),
		/* translators: %s: blog title, 2: separator (raquo) */
		'comstitle'	=> __('%1$s %2$s Comments Feed'),
	);

	$args = wp_parse_args( $args, $defaults );

	echo '<link rel=""alternate"" type=""' . feed_content_type() . '"" title=""' . esc_attr(sprintf( $args['feedtitle'], get_bloginfo('name'), $args['separator'] )) . '"" href=""' . get_feed_link() . ""\"" />\n"";
	echo '<link rel=""alternate"" type=""' . feed_content_type() . '"" title=""' . esc_attr(sprintf( $args['comstitle'], get_bloginfo('name'), $args['separator'] )) . '"" href=""' . get_feed_link( 'comments_' . get_default_feed() ) . ""\"" />\n"";
}
}}}

Currently, the only way to display only one feed (the main post feed or the main comment feed) so is to deactivate feed_links with :
{{{
remove_action('wp_head', 'feed_links', 2);
}}}
and then to create our own function to only display one feed.

Do you think this should be improved ?

Regards,",Confridin
Needs Dev / Bug Wrangler Feedback,19643,Allow array for $extra_fields in request_filesystem_credentials,,Filesystem,3.0,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2011-12-22T07:47:38Z,2012-09-10T22:54:04Z,The current implementation for passing extra fields through request_filesystem_credentials() does not allow for an array of data to be passed. I came across this issue when trying to process a bulk installation of plugins with my plugin installation class. My patch fixes this from what I can tell and doesn't break anything that I can see from my testing.,griffinjt
Needs Dev / Bug Wrangler Feedback,24368,Renaming feature for wp-includes,,Filesystem,3.5.1,normal,normal,Awaiting Review,feature request,new,dev-feedback,2013-05-19T18:24:16Z,2013-05-20T06:37:10Z,"Currently it is possible to rename wp-content to anything you want. WordPress has a definition built in for wp-includes, that is WPINC, however, this definition isn't used in about 15 - 16 core files preventing it from being changed (For example, some CSS doesn't load for the admin bar). I have added the files that I have changed to allow this to work, to work add a definition for WPINC to wp-config with the name of your wp-includes folder without and slashes. Without the definition it just uses the standard wp-includes.",JoeIzzard
Needs Dev / Bug Wrangler Feedback,19543,Broken formatting when using HTML5 <section> element,,Formatting,3.3,normal,normal,Awaiting Review,defect (bug),new,needs-unit-tests,2011-12-14T10:32:07Z,2012-10-12T18:25:51Z,"When using <section> HTML5 element, the resulting markup is invalid because some paragraphs isn't closed properly. 

Reproduced with WP 3.3, TwentyEleven theme and no plugins. 

Example markup attached to this ticket. Paste into html view of the WYSIWYG editor and publish. Resulting markup also attached. ",exz
Needs Dev / Bug Wrangler Feedback,12690,Square brackets breaking links that contain square brackets,,Formatting,,normal,normal,Future Release,defect (bug),reviewing,dev-feedback,2010-03-24T19:16:50Z,2012-09-19T22:40:34Z,"In the editor, wrapping square brackets around an anchor with a URL that contains square brackets, like so

{{{
[photos by <a href=""http://www.etsy.com/view_listing.php?listing_id=42936748&amp;ref=sr_gallery_7&amp;&amp;ga_search_query=keep+calm+and+carry+on&amp;ga_search_type=handmade&amp;ga_page=13&amp;includes[]=tags&amp;includes[]=title"">KeepCalmPosters</a> ]
}}}

converts the last double prime in the href attribute to the character code for the right double quotation mark, like so

{{{
[photos by <a href=""http://www.etsy.com/view_listing.php?listing_id=42936748&amp;ref=sr_gallery_7&amp;&amp;ga_search_query=keep+calm+and+carry+on&amp;ga_search_type=handmade&amp;ga_page=13&amp;includes[]=tags&amp;includes[]=title&#8221;>KeepCalmPosters</a> ]
}}}",iandstewart
Needs Dev / Bug Wrangler Feedback,17571,bad double quote replacement  in wp_texturize,,Formatting,,normal,minor,Future Release,defect (bug),new,dev-feedback,2011-05-26T09:18:08Z,2012-04-30T12:49:51Z,"Bug seen in  Wordpress 3.1.2. with buddypress 1.2.8

Some database fields that contain a string like this 'a string with \""escaped double quotes\""' are displayed this way : 'a string with >>escaped double quotes>> ' instead of 'a string with <<escaped double quotes>>'

The bug come from wp_texturize function in wp-includes/formatting.php .

I join a patch to resolve this issue.


",csanquer
Needs Dev / Bug Wrangler Feedback,19028,make_clickable fails when <a ...> contains \r characters,,Formatting,3.2.1,normal,minor,Awaiting Review,defect (bug),reopened,needs-unit-tests,2011-10-22T07:00:35Z,2011-11-02T00:34:43Z,"Hi.

I'm using the make_clickable php function in my project SaltOS to add the links feature to the email client and feeds reader.

I detect that when try to make clickable the urls that has the link tag and this tag contains \r characters it fails.

I fixed the problem removing all \r of the <a ...> tag but understand that can be a possible bug.

Thanks in advance.",josepsanzcamp
Needs Dev / Bug Wrangler Feedback,14050,shortcode_unautop() should also remove the <br /> added after shortcodes,,Formatting,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-06-22T18:15:27Z,2013-01-19T08:38:00Z,"Currently `wpautop()` wraps a shortcode in `<p>` tags as well as adding a `<br />` tag after the shortcode. We then use `shortcode_unautop()` to remove the `<p>` tags, but the `<br />` stays.

To replicate, just drop a few caption shortcodes into a post and set them all to align left or right. You'll see that even though they all float (assuming that's how your theme handles them) they stair step down because of the extra `<br />`

I'm not a regex expert so someone should probably double check my patch, but it seems to work for me.",aaroncampbell
Needs Dev / Bug Wrangler Feedback,23135,Filter for Block Elements in wpautop(),,Formatting,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-01-07T16:21:44Z,2013-01-08T12:55:40Z,"This addresses the need to exclude certain block elements (iframe, img) from wpautop.  Using the newly defined filter '''wpautop_block_elements''' every plugin dev, theme dev etc. can redefine, modify and enhance the list of block elements. 

Exsample for functions.php
{{{
#!php
function add_block_elements($block_elements){	
	$block_elements[] = ""iframe"";	
	$block_elements[] = ""img"";	
	
	return $block_elements;
}
add_filter(""wpautop_block_elements"", add_block_elements);
}}}

Thanks for reviewing! :)

Regards,
Hendrik",luehrsen
Needs Dev / Bug Wrangler Feedback,5161,balance_tags option should not be in the user interface,,Formatting,2.3,normal,normal,Future Release,enhancement,new,dev-feedback,2007-10-08T08:02:49Z,2013-01-22T01:19:58Z,"In the WP Admin → Options → Writing ({{{options-writing.php}}}), there is an option ""!WordPress should correct invalidly nested XHTML automatically"" which controls whether {{{balance_tags()}}} is run on post content or not.

I'm fully supportive of this feature — I think it's important to ensure the HTML that is output to browsers is valid. There have been a few situations where users needed to turn this off, e.g. bugs in the function, or a plugin misbehaves with it on (if I remember correctly, runPHP).

However, this is a KDE-style option where it is put there for a niche case. In 99% of cases, you will want it on.

A few people on the mailing lists have stated a number of times that we should take a GNOME-like approach to these sort of features, and let them be controlled only by plugins. This option is left over from the dark ages of !WordPress, and I don't think the cases for turning it off are big enough to warrant its inclusion in the user interface.

If a plugin has a problem with balancing tags (e.g. runPHP), the offending plugin can simply remove the filter.

{{{
remove_filter('content_save_pre', 'balance_tags);
}}}

(...or whatever the code would be.)

The new canonical redirect feature has far more many problems, and far more justification for it to be turned off, yet I don't see a checkbox ""Redirect links to their canonical URL"" anywhere in the user interface. If anything should have a checkbox, it's the canonical redirect feature — but, it doesn't have any such thing. So, we should remove this checkbox as well.",JeremyVisser
Needs Dev / Bug Wrangler Feedback,17993,the_content vs get_the_content,,Formatting,3.2,normal,normal,Awaiting Review,feature request,new,close,2011-07-05T14:00:01Z,2012-09-14T17:28:19Z,"Wordpress lacks of a main function: obtain full formatted ""content"" without echo! Maybe good to add a param to the_content() like echo(bool)?

I wrote it:

{{{
function the_content_noecho($more_link_text = null, $stripteaser = 0) {
       $content = get_the_content($more_link_text, $stripteaser);
       $content = apply_filters('the_content', $content);
       $content = str_replace(']]>', ']]&gt;', $content);
       return $content;
   }
}}}
",merlinox
Needs Dev / Bug Wrangler Feedback,13429,Updating Link URL on image within Admin with Gallery,,Gallery,2.9.2,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-05-18T01:43:42Z,2013-01-02T13:11:27Z,"Image insertion no longer allows url to off site resource within Gallery.

When inserting a gallery you are unable to specify the Link URL. It keep reverting back to the default.",vshoward
Needs Dev / Bug Wrangler Feedback,16164,"""You are not allowed to delete this post."" - While Deleting a Media Library Item",,General,3.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-01-09T13:39:10Z,2012-06-30T20:14:21Z,"While deleteing 999 media library items, the request timed out. Resending the same request triggered an error message:

> You are not allowed to delete this post.

For me as a programmer, I know that those library items are technically a post, but for communicating with the user, the error message is misleading.",hakre
Needs Dev / Bug Wrangler Feedback,21581,Add orderby meta_value to WP_User_Query,,General,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-08-14T21:24:05Z,2012-08-14T21:40:10Z,"For some reason, we cannot easily order the WP_User_Query() by last_name without directly editing the SQL statements. However, there is an easy way to add this that would work parallel to WP_Query().

{{{
// prepare arguments
$args  = array(
	'orderby' => 'meta_value',
	'meta_key' => 'last_name',
);
$user_query = new WP_User_Query( $args );
}}}",wpsmith
Needs Dev / Bug Wrangler Feedback,16672,Admin Bar and param href = FALSE,,General,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-02-26T00:21:52Z,2011-02-27T11:21:37Z,"Current i dont find an solution to add an element in the admin bar with a a-tag inside the li-tag. But the function add_menu has an param href and is also possible to add the value false, but the a-tag ist always visible


maybe a fix on wp-includes/class-wp-admin-bar.php

{{{
	/* Helpers */
	function recursive_render( $id, &$menu_item ) { ?>
		<?php
		$is_parent =  ! empty( $menu_item['children'] );

		$menuclass = $is_parent ? 'menupop' : '';
		if ( ! empty( $menu_item['meta']['class'] ) )
			$menuclass .= ' ' . $menu_item['meta']['class'];
		?>

		<li id=""<?php echo esc_attr( ""wp-admin-bar-$id"" ); ?>"" class=""<?php echo esc_attr( $menuclass ); ?>""><?php
			if ( ! empty( $menu_item['href'] ) ) : ?>
				<a href=""<?php echo esc_url( $menu_item['href'] ) ?>""<?php
					if ( ! empty( $menu_item['meta']['onclick'] ) ) :
						?> onclick=""<?php echo esc_js( $menu_item['meta']['onclick'] ); ?>""<?php
					endif;
				
				if ( ! empty( $menu_item['meta']['target'] ) ) :
					?> target=""<?php echo esc_attr( $menu_item['meta']['target'] ); ?>""<?php
				endif;
				if ( ! empty( $menu_item['meta']['title'] ) ) :
					?> title=""<?php echo esc_attr( $menu_item['meta']['title'] ); ?>""<?php
				endif;
				
				?>><?php
			endif;
			
			if ( $is_parent ) :
				?><span><?php
			endif;

			echo $menu_item['title'];

			if ( $is_parent ) :
				?></span><?php
			endif;

			if ( ! empty( $menu_item['href'] ) ) : ?></a><?php endif; ?>

			<?php if ( $is_parent ) : ?>
			<ul>
				<?php foreach ( $menu_item['children'] as $child_id => $child_menu_item ) : ?>
					<?php $this->recursive_render( $child_id, $child_menu_item ); ?>
				<?php endforeach; ?>
			</ul>
			<?php endif; ?>

			<?php if ( ! empty( $menu_item['meta']['html'] ) ) : ?>
				<?php echo $menu_item['meta']['html']; ?>
			<?php endif; ?>
		</li><?php
	}
}}}
",Bueltge
Needs Dev / Bug Wrangler Feedback,17170,Attachment slugs are not unique,,General,2.8,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-04-18T21:02:52Z,2011-04-18T21:02:52Z,"From wp_unique_post_slug() and #9726:

{{{
Attachment slugs must be unique across all types.
}}}

It's true that attachment slugs are checked for uniqueness against all other object types, however, when inserting an object of another type any uniqueness checks do not include attachments. This means that #9539 isn't actually fixed if you attempt the steps in the order described (insert attachment first followed by conflicting page).

Fix would be to add 'attachment' to the `post_type IN` clause for hierarchical types. See attachments-hierarchically-unique.diff.

Still puzzling out why/if attachments need to be unique against non-hierarchical types since there shouldn't be collisions as attachment URLs are subpage style. However, if attachment slugs do need to be globally unique then see attachments-globally-unique.diff (not tested so much).

Related: #9726, #9539, #6437, [11467]",duck_
Needs Dev / Bug Wrangler Feedback,16487,Bug wp_new_user_notification() when using it in multisite mode,,General,3.0.5,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-02-08T09:04:08Z,2011-02-08T12:07:48Z,"In the file ""wp-includes/pluggable.php""
into the function named ""wp_new_user_notification""

$blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);

This is correct but, in mutisite mode,

that one return the site name where you are logged into, not the blogname you are going to create.
$message .= wp_login_url() . ""\r\n"";

for example, i try to create test1.mynamesite.com
i'm logged on primarysite.mynamesite.com with my super admin account.

Into the mail i recieved, with ""Your Username and password""
the url is ""http://primarysite.mynamesite.com/wp_login.php""

it had to be ""http://test1.mynamesite.com/wp_login.php"".

In the other mail recieved with the complete message, acces code and url, all is perfect, just in the mail when adding the user to the new site.",wp_user59
Needs Dev / Bug Wrangler Feedback,16934,Commented code in /wp-includes/canonical.php,,General,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-03-22T14:00:26Z,2011-06-25T18:57:57Z,"Timestamp: 10/16/08 19:17:04 (2 years) - Safe to remove this by now?

[9203]",hakre
Needs Dev / Bug Wrangler Feedback,16949,Custom post types: error on page if query contains multiple post types,,General,3.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-03-23T17:19:22Z,2011-10-18T19:53:06Z,"I'm using custom post types, and I modified the $query to include multiple post types. This works quite well, until I enter a URL to a non-existant post (modifying the last part, i.e. the post's slug).

{{{

// some HOWTO linked from the Codex suggests this,
// can't find the link right now

function add_posttypes_to_query($query)
{
	if (!is_admin() && !$query->query_vars['suppress_filters'])
	{
		if (!is_home())
			$post_type = array('video', 'post');

		$query->set('post_type', $post_type);
	}

	return $query;
}

add_filter('pre_get_posts', 'add_posttypes_to_query');
}}}

The error I get is: “Warning: Illegal offset type in isset or empty in /home/lxg/www/shops.supreme.de/supremeshops/branches/private_wp3/wp-includes/post.php on line 811”.

It appears that the function {{{get_post_type_object}}} gets the array passed if no posts were found.

Also, I realized that custom post single pages don't issue a HTTP 404 status on errors. But this may be due to local modifications. I am currently not able to set up an environment where I isolate this problem.",mastermind
Needs Dev / Bug Wrangler Feedback,18503,Delete-Plugin Error Validation Clears Form Values,,General,3.2.1,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2011-08-23T22:43:22Z,2011-09-01T17:17:22Z,"When bulk-deleting a set of plugins, if an error is encountered - all selected values are lost.

Process: 

1. Go to plugins overview screen, select several (active) plugins to delete.
2. From the bulk-action dropdown menu, select ""delete"", then ""apply""

Expected behaviour:

Error message: ""You cannot delete a plugin while it is active on the main site."" - Check marks are preserved, so you simply select ""deactivate"" and click on ""apply"" again.

Actual behaviour:

Error message: ""You cannot delete a plugin while it is active on the main site."" - All check marks lost, and you have to start all over again - which is a pain for sites with lots of plugins.",JohnONolan
Needs Dev / Bug Wrangler Feedback,15963,Don't try to add orphaned pages' parents' slugs to the page URL,,General,3.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-12-23T11:08:55Z,2012-09-19T22:31:20Z,"If a page becomes orphaned---in other words, if a page points to a parent object that doesn't exist any more---`get_page_uri()` doesn't sanity check that the parent object actually exists.

Patch does the check without any extra work, by moving stuff around.",filosofo
Needs Dev / Bug Wrangler Feedback,21537,Email address sanitisation mangles valid email addresses,,General,3.4.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-08-10T11:24:50Z,2013-01-22T09:00:07Z,"If you change your email address to one including an ampersand then we mangle the address with html entities.

For example:
 * This - peter&paul@sitting.in.a.tree.com
 * Becomes - peter&amp;paul@sitting.in.a.tree.com

This is due to the call to {{{wp_filter_kses}}} on {{{pre_user_email'}}} in {{{default-filters.php}}}.

The was added in [5906] for #4546.

I'm not sure if we need kses filtering for emails - if we do which should probably revert this conversion of the & => &amp; afterwards.",westi
Needs Dev / Bug Wrangler Feedback,18002,Entering page number for spam comments takes you to page 1,,General,3.2,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-07-06T11:27:25Z,2011-11-22T17:17:15Z,"When browsing through spam comments, I attempt to view pages in the middle of the set (e.g. page 9 of 13) using the number-entry feature (at the top right) introduced in WP 3.1. Unfortunately, in WP 3.2 this feature has been broken, and when I press Enter, it substitutes '1' for the page number I enter, and then takes me to page 1. I have tried this when browsing posts or normal comments, and it doesn't happen; it only happens when viewing spam comments. I have tried it on Chrome in Linux and Safari on Mac OS X and the same thing happens.",IndigoJo
Needs Dev / Bug Wrangler Feedback,18685,GET Requests with hostname in them causes wrong redirect,,General,3.2.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-09-16T14:34:54Z,2011-10-07T08:49:01Z,"Hi!

I have noticed that my Android phone when using Cyanogenmod with default browser does some ""special"" things when on 3G. (It does not happend via WiFi)

It appears that the hostname is sent with every GET-request. Its common to only send the path in a GET-request but the HTTP secification also allows for the use of hostname within a GET-request.

My test page ( http://h3x.no/dump/test.php ) shows the hostname in the REQUEST_URI via 3G, and skips the hostname when on WiFi.

This causes Wordpress(i suspect) to redirect me to the wrong page.

Example:

I want the page:
http://h3x.no/2011/09/12/getting-windows-2008-server-uptime-via-the-command-line

My phone sends me to:
http://h3x.no/2011/09/12/getting-windows-2008-server-uptime-via-the-command-line/http/h3x.no/2011/09/12/getting-windows-2008-server-uptime-via-the-command-line",Ueland
Needs Dev / Bug Wrangler Feedback,15619,General Settings Tab Not Allowing trailing URL slash to be stored in Site & WordPress address (URL),,General,3.0.1,normal,normal,Future Release,defect (bug),reopened,dev-feedback,2010-12-01T02:35:11Z,2011-01-21T10:15:11Z,"**Thank you for all of the efforts you've made regarding plugins easier to maintain - I deeply appreciate it.** 

When WordPress is installed in a subfolder, attempts to add the trailing slash currently will not save properly. From this URL:
http://www.domain.com/wordpressinstalledinfolder/wp-admin/options-general.php

The General Settings Tab - WordPress address (URL)
The General Settings Tab - Site address (URL)

Want to enter ""http://www.domain.com/wordpressinstalledinfolder/""
***it won't let me enter a trailing slash on the end like it will in other URL fields on the site.***

Request: Please tweak this field to allow storage of folder trailing slash.




",dsquared
Needs Dev / Bug Wrangler Feedback,17296,Link Descriptions Are Truncated Without Notification,,General,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-05-01T03:04:09Z,2011-07-03T07:48:46Z,"When creating new links, or editing existing links, using the WordPress admin interface, link descriptions are truncated to 255 characters. This is because there is a 255 character limit defined in the link_description column in the wp_links database table.

Steps to reproduce:

1) Go to WP dashboard

2) Select Links > Add New from the menu.

3) Create a link with a description longer than 255 characters.

4) Go back to the link in the links interface; the description has been truncated.

Expected behavior:

1) The field should have a larger limit (perhaps 1024 characters?).

2) Even if we keep the limit at 255, the UI should prevent users from entering more than the limit, or notify them that the description they have entered will be truncated to the limit.

Thanks for your time!",achmafooma
Needs Dev / Bug Wrangler Feedback,17491,Make is_email() compliant with RFC2822,,General,3.1.2,normal,minor,Future Release,defect (bug),reopened,dev-feedback,2011-05-18T14:48:52Z,2013-01-10T11:02:05Z,is_email('toto.@toto.com') returns true,arena
Needs Dev / Bug Wrangler Feedback,16482,Visibility: password-protected breaks with redirected domains,,General,3.0.4,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2011-02-07T18:58:45Z,2012-09-05T18:47:28Z,"Pre-requisite to reproduce: domain.com must redirect to www.domain.com (haven't tested with other subdomains than www, but I'm sure it would be the same).

1. password protect a page
2. visit domain.com/protected (which redirects to www.domain.com/protected)
3. enter password
4. something about the redirect OR the way the password is stored/checked is broken; you are redirected to the wp-admin (WordPress login) page.

Sanity check:

1. password protect a page
2. visit www.domain.com/protected (requiring no subdomain redirect)
3. enter password
4. successful log-in
",monkeyhouse
Needs Dev / Bug Wrangler Feedback,12016,get_calendar can output a calendar when there are no posts,,General,3.0,normal,normal,Future Release,defect (bug),reviewing,dev-feedback,2010-01-25T17:54:31Z,2010-11-13T09:06:16Z,"If a site doesn't have any posts, get_calendar isn't supposed to display a calendar. You can visit a page or have a static home page, and a calendar is displayed. The get_calendar function is looking at global $posts to determine if the site has posts but this variable can contain data from other post_types.

r12821",mtdewvirus
Needs Dev / Bug Wrangler Feedback,20853,get_post_custom show directly serialized data from the post_meta arrays.,,General,1.5,normal,minor,Awaiting Review,defect (bug),assigned,dev-feedback,2012-06-06T05:39:23Z,2013-03-11T16:46:21Z,"get_post_custom show directly serialized data from the post_meta arrays.
For example:

If I save a data with:

{{{
			update_post_meta(	$post_id,	'camp',
				array(
					'some'	=>	$var,
					'thing'	=>	$var_2
				)
			);
}}}


When I use get_post_meta(); :

{{{
	$var_get = get_post_meta($post_id, 'camp', true);
	echo $var_get['some']; // Fine.. Print: $var content.
}}}


but, when I use get_post_custom() :

{{{
	$var = get_post_custom($post_id);
	echo $var['some']; Metod, (Not work because ""Returns a multidimensional array"" with all values, and 0 is the first or the unique value).
	echo $var['some'][0]; /* Metod, >:( , Not work. Print:

a:2:{i:some;s:4:""this"";i:thing;s:7:""content"";}	*/
}}}


Instead of display ""array"", and can not handle sub arrays.",shadowhck
Needs Dev / Bug Wrangler Feedback,12264,links truncated: link_url column in wp_links table -- datatype too small,,General,2.9.2,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-02-17T20:27:25Z,2011-08-03T19:55:37Z,"Here is my original post about the issue:  [http://wordpress.org/support/topic/365540?replies=3]

In short, the link_url column in the wp_links table has a datatype of VARCHAR(255).  As far as I know, there is no pre-defined limit to the length of a URL.  However, browsers typically enforce their own practical limits, the shortest of which is much larger than the 255 character limit that WP is enforcing.  Entering urls longer than 255 characters causes them to be truncated.

I tried altering the table so that link_url has a datatype of VARCHAR(1024).  This allowed me to use much larger links without them being cut off.  Therefore, I believe that the limiting factor is the DB and not some other code within WP.
",goto10
Needs Dev / Bug Wrangler Feedback,16059,"wp_kses_split2() is private, no need to create a function with the sole purpose to call a function.",,General,3.1,lowest,normal,Future Release,defect (bug),new,dev-feedback,2011-01-01T17:06:19Z,2011-01-01T21:41:01Z,"In the effort to remove create_function() constructs from the file (#10623, #7363) the last one was removed in 16313 / #14424.

While the analysis in the last ticket was right that create_function() is not needed, the resolution to introduce a named function was not.

Infact the anonymous callback function has been replaced with a named callback function without taking into account, that a named callback function already exists. So a function whith its sole purpose to call another function has been introduced by the google summer of code student.

The existing functions name is wp_kses_split2(), having the needed properties. The function is marked as private and not used anywhere else in the file kses.php nor the whole core php code.

It can be safely adopted to fulfill the requirements of the callback function signature.

This saves the overhead of a function call per callback call.

Additionally passing the data needs only one entry in the symbol table by using an array.",hakre
Needs Dev / Bug Wrangler Feedback,18525,"zlib.output_compression ""on"" in server conflicts with autoupdate",,General,3.2.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-08-26T20:11:45Z,2012-11-13T05:12:06Z,"If zlib.output_compression is ""on"" in server (my vps server), then auto-update works, but without verbose output or any indication that install has succeeded.

This error is consistent for all auto-updates WordPress Application and all plugins.

It is NOT a plugin conflict. Occurs on different servers.

Testing has confirmed that when zlib.output_compression is returned to ""off"", then updates work as expected.

In my opinion this is a minor bug and probably a note in the readme file will suffice.

Thank You,

Neil Miller
zx@avidre.net",avidre
Needs Dev / Bug Wrangler Feedback,21488,Add Default Callback Functions for add_settings_field(),,General,,normal,normal,Future Release,enhancement,reopened,dev-feedback,2012-08-05T23:22:00Z,2013-02-24T04:57:58Z,"By default, when creating options in plugins and themes, every developer is required to create custom callback functions for rendering their option's HTML. The HTML for most options is nothing more than a standard INPUT field, a SELECT field, TEXTAREA field, etc, so there's really no reason there shouldn't be default callback options in place.

For example, if I have a plugin that registers one text field option in the General settings page, it really doesn't make sense that I should be forced to create a callback function, especially not when probably 99% of all text fields are outputted in exactly the same way: 

{{{
<input name=""FIELD NAME"" id=""FIELD ID"" value=""FIELD VALUE"" class=""regular-text""/>
<div class=""description"">The description of the field (if present)</div>
}}}

With default field callbacks available, developers can do this:


{{{
function pw_register_settings() {
	register_setting( 'general', 'pw_sample_option', 'esc_attr' );
	add_settings_section( 'pw_sample_section', 'This is a Sample Section', 'pw_sample_section_cb', 'general');
	add_settings_field( 'pw_sample_option', 'A Sample Setting', 'text', 'general', 'pw_sample_section', array( 'description' => 'The field description' ) );
}
add_action('admin_init', 'pw_test_settings');

function pw_sample_section_cb() {
	// this is the section HTML (if you want it)
}
}}}

This is much simpler than also having to write the callback function to render the HTML for the option.

The patch attached adds the following default callbacks:

* text
* textarea
* select
* radio
* checkbox
* checkbox_group

For select, radio, and checkbox groups, the options are passed as an array of ""choices"" in the last, optional $args parameter for add_settings_field():

{{{
$options = array( 
	'one' => 'The Choice Name',
	'two' => 'The Second name', 
	'three' => 'The Third option'
);
add_settings_field( 'pw_sample_option', 'A Sample Setting', 'select', 'general', 'pw_sample_section', array( 'choices' => $options, 'description' => 'This is a select' ) );

}}}

When a user wants to create a custom callback function, this is still allowed as call_user_func() is the default in the `$field['callback']` switch statement for the do_settings_fields() function.",mordauk
Needs Dev / Bug Wrangler Feedback,18574,Add class_name support to wpdb,,General,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-02T20:03:58Z,2011-09-02T20:03:58Z,"As of PHP 5.0.0, the second parameter to mysql_fetch_object takes a class name which will be instantiated instead of stdClass. This will be handy as we upgrade core objects (see #12267 and #15458). I am using the attached patch on WordPress.com to simplify a lazy process. The effect is similar to what  does with WP_User but the code is much simpler.

The attached patch is fully backward-compatible unless you have defined classes named OBJECT, OBJECT_K, ARRAY_A, or ARRAY_N.

It could be improved by supporting the third parameter to mysql_fetch_object, an array of parameters to pass to the constructor. (For instance, you might want to pass $blog_id when constructing a WP_User). Adding this parameter would be perfectly simple if get_row did not already have a third parameter, $y, which is not used in core and should be removed because it invites wasteful queries.",andy
Needs Dev / Bug Wrangler Feedback,18546,Add index.php to wp-includes and wp-admin/includes,,General,3.2,low,minor,Awaiting Review,enhancement,reopened,dev-feedback,2011-08-30T11:42:40Z,2012-09-05T19:12:08Z,"In [comment:ticket:17601:15], dd32 suggested an idea of adding `index.php` to `wp-includes`:

> /wp-includes/index.php doesnt exist however, leading to that entire folder being indexed by google in some cases (which [http://www.google.com/search?hl=en&client=opera&hs=4Ba&rls=en&q=intitle%3A%22Index+Of%22+inurl%3Awp-includes&aq=f&aqi=&aql=&oq= does happen]), this will cause Search Engines to index the contents of these files, leading to the errors being logged.

The patch adds `index.php` to `wp-includes` and `wp-admin/includes`.
",SergeyBiryukov
Needs Dev / Bug Wrangler Feedback,20706,Adding a link without a name or web address yields no (error) feedback,,General,,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-05-19T00:42:57Z,2012-05-20T16:12:51Z,"If a user successfully creates a link (on link-add.php), the user receives the message ""Link added."" However, there are no measures taken to notify the user if the link was ''not'' successfully added.

Links are not added when the link name and web address fields are left blank, so I have included a little patch to let the user know when this occurs.

This could be done with some JavaScript form validation that makes an alert box pop up, but half the (PHP/HTML) code was already present for this, and I think it looks better this way, personally. This is my first attempt at submitting a patch to any open source project, so I appreciate your feedback. Thanks!",AVReidy
Needs Dev / Bug Wrangler Feedback,12494,Allow selectable value in Walker_*Dropdown classes,,General,,normal,normal,Future Release,enhancement,new,dev-feedback,2010-03-03T06:17:50Z,2010-03-26T03:04:47Z,I think we should be able to select either term_id or term_slug as the output value for Walker_CategoryDropdown class and likewise either ID or post_name for Walker_PageDropdown class.,jfarthing84
Needs Dev / Bug Wrangler Feedback,16734,Allowing multiple selection when using wp_dropdown_categories,,General,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-03-02T22:58:25Z,2012-01-11T23:40:00Z,"I would like to be able to pass an argument to wp_dropdown_categories() to allow the user to select more than one category using a CTRL-CLICK. I can use a preg_replace to add the multiple tag to the html select tag, but I cannot pass multiple selections in the ""selected"" argument. 

I modified two files (wp-includes/category-template.php and wp-admin/css/wp-admin.css) to add this option and will include patches for these files. It adds a boolean argument for ""multiple"" to wp_dropdown_categories and uses in_array to check if terms are listed in an array in the ""selected"" argument, casting it as an array if it is not. I have tested this patch to work in the latest trunk (3.1).

The change in the w-admin.css is so the multiple selection box is tall enough to show the slider and more than one category.",grandslambert
Needs Dev / Bug Wrangler Feedback,20317,Delete auto-draft using window.onbeforeunload,,General,,low,normal,Awaiting Review,enhancement,new,dev-feedback,2012-03-28T22:50:27Z,2012-03-28T22:53:23Z,"When a user goes to post-new.php, a new auto-draft post is created.

Old auto-drafts are garbage-collected: #19663

To lessen the need for GC, we could send an AJAX request to delete the auto-draft immediately when the user navigates away from the page (but not when he presses the Submit button).

",scribu
Needs Dev / Bug Wrangler Feedback,15930,Deleted page bin view?,,General,3.0.3,normal,normal,Future Release,enhancement,new,dev-feedback,2010-12-21T10:32:30Z,2010-12-26T22:43:21Z,"I hoped I was able to see the pages which I delete (in the trashbin) but the all stay dark... So I can't view them!

I think it would be a good feature to see them to see if somebody didn't delete the wrong page! Or when you need something form a deleted page that you can still get it without restoring it first",JonezJeA
Needs Dev / Bug Wrangler Feedback,21096,Filter on is_front_page return value,,General,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-06-28T10:32:03Z,2012-06-29T13:05:58Z,"When you set a page (as 'placeholder' with same slug) as front page which is actually a post type archive to front page, is_front_page() will always return false on that page. The return value of the is_front_page() function is not filterable.

Attached patch adds this filter in the most basic way.",CoenJacobs
Needs Dev / Bug Wrangler Feedback,17482,"Formalize a list of ""Object Types""",,General,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-05-17T23:19:14Z,2011-05-18T00:00:17Z,"I'm finding a need to use a defined list of object types for numerous things including for [http://core.trac.wordpress.org/ticket/14513#comment:77 object relationships], term relationships that relate taxonomy terms to something other than a post, data entry forms, and I am sure there are more than just these requirements ''(An ""object"" is anything in WordPress for which we can identify a name and a unique ID form the database, i.e. `$post->ID`, `$user->ID`, `$term->term_id` and so on.)''

While thinking about it this seems to be something that would be valuable to include core so I am proposing and submitting a patch for their potential inclusion.  If this is ''not'' something that the team would want to include then I'll simply incorporate them into my own code but I wanted to make sure that the team wouldn't want to include them into WordPress core instead.",mikeschinkel
Needs Dev / Bug Wrangler Feedback,19100,Introduce esc_color(),,General,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-11-01T12:16:14Z,2012-02-28T03:15:42Z,"Currently there is no way to escape a color in hexadecimal notation before printing it to a block of css or saving to the database. Many themes like to introduce functionality, whether it be core-supported or completely custom, to change the color of various parts of the templates. I believe that a function such as `esc_color()` would promote best practices while ensuring that unintended values do not get stored as colors and thus echoed in css blocks potentially breaking display.",mfields
Needs Dev / Bug Wrangler Feedback,21282,Introduce wp_header() pluggable function,,General,3.4.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-07-15T12:47:22Z,2012-09-26T15:46:20Z,"I will be nice to have pluggable function wrapper for PHP `header()` function - this will allow to unit test HTTP headers sent by WordPress. Attached patch adds it, and replaces all existing calls to `header()` with it.

Question: some of exiting calls had errors silenced using `@`, some not. In my code I added `@`. Should I keep it, remove it or maybe add extra param to function to conditionally silence errors?",sirzooro
Needs Dev / Bug Wrangler Feedback,14946,Only enforce OEmbed whitelisting for dangerous types,,General,3.0.1,normal,normal,Future Release,enhancement,new,dev-feedback,2010-09-23T08:23:48Z,2010-11-23T21:14:44Z,"Of the four OEmbed response types, only two (video and rich) are potentially dangerous. We should be able to allow all photo and link responses, without a whitelist.",markjaquith
Needs Dev / Bug Wrangler Feedback,16782,PHP5-Port - WP_Error Class,,General,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-03-07T00:45:15Z,2011-03-08T21:46:09Z,"A port of the class to PHP5.

Related: #16781, #6768, #16769
",hakre
Needs Dev / Bug Wrangler Feedback,22303,"Please parse a ""vendor"" file",,General,,normal,normal,Awaiting Review,enhancement,new,close,2012-10-29T15:31:54Z,2012-10-30T10:06:14Z,"Hi,

I'm working on improving Wordpress packaging in fedora.

One of our need is to allow the use of system libraries instead of bundled copy (forbidden by Guidelines).

I would like to propose, as various projects already, to include a ""vendor"" file.

Goals:
- without this file: no change
- with this file: use constant from it
- allow to define patch for each library (rather than a global WPINC)

Note: this is not the same as wp-settings, which are user configurable settings, while ""vendor"" are system configuration (not to be altered by users)

Work proposal.

(probably) in default-constants.php

if (file_exists('vendor.php')) include_once('vendor.php');

For PHPMailer (for exemple)

if (!defined('WP_PHPMAILER_INC')) define('WP_PHPMAILER_INC',  ABSPATH . WPINC);

And of course, 
require_once WP_PHPMAILER_INC . '/class-smtp.php';

Using this, we could package wordpress in a simpler way, without altering provided sources, just adding this vendor file.

For example, see what have be done in GLPI
https://forge.indepnet.net/projects/glpi/wiki/GlpiPackaging

If you accept this feature, I will work on it and submit the patches (probably various, one per library, as I will progress on this work).
",remicollet
Needs Dev / Bug Wrangler Feedback,21113,Previous/Next page links maintain all GET variables,,General,3.4,normal,normal,Awaiting Review,enhancement,new,close,2012-06-29T14:57:00Z,2013-04-05T12:49:45Z,"The newer/older entries pagination system takes any query string in a inbound request, and includes it in the links generated for the newer/older entries. 

This causes problems when you put wordpress behind a cache, because all it takes is some bot trying a joomla hack to mean all visitors suddenly have a version of that page, including the bad query string, very visible.

For example:
http://kirrus.co.uk/page/6/?test=true

Note, in the 'Newer/Older' links at the bottom of the page, that ""test=true"" will be retained.

These should only really keep query-strings that wordpress knows it'll need, if you're including them? Else, you can basically poison someone's cache with this.

An example of the really bad query string poisoning a cache:
/page/2/?option=com_gk3_tabs_manager&controller=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Fproc%2Fself%2Fenviron%0000",kirrus
Needs Dev / Bug Wrangler Feedback,21941,Remove get_post_format_slugs(),,General,,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-09-20T14:40:52Z,2012-09-20T14:41:03Z,"I just encountered the `get_post_format_slugs()` function, which is basically just wrapping `get_post_format_strings()` and setting the strings as keys too. So its output is an assoc array where the keys equal the values.

The three times core calls it, it does it the following:


{{{
// ~/wp-includes/posts.php -> set_post_format()
if ( 'standard' == $format || !in_array( $format, array_keys( get_post_format_slugs() ) ) )

// ~/wp-includes/posts.php -> _post_format_request()
$slugs = get_post_format_slugs();
if ( isset( $slugs[ $qvs['post_format'] ] ) )
	$qvs['post_format'] = 'post-format-' . $slugs[ $qvs['post_format'] ];

// ~/wp-includes/theme.php -> add_theme_support()
switch ( $feature ) {
	case 'post-formats' :
		if ( is_array( $args[0] ) )
			$args[0] = array_intersect( $args[0], array_keys( get_post_format_slugs() ) );
		break;
}}}


So in every case it would've been enough to simply call `get_post_format_strings()`.

Do we really need this function?",F J Kaiser
Needs Dev / Bug Wrangler Feedback,20130,Remove redundant link_updated code related to bookmarks,,General,3.3.1,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-02-28T04:45:46Z,2012-02-28T09:32:54Z,"The links table has a column called `link_updated` which used to be used to store the date the link last changed (using pingomatic to check for this).

The link update checking was removed from core some time ago, see #12437, [13744] (also #4230, #4231). However there's still some code in `wp-admin/bookmark.php` and `wp-admin/bookmark-template.php` which uses `link_updated` as well as the `links_recently_updated_time` option. I guess the column in the database can't just be dropped because of back compat. But the code that uses it in core looks like it can.",solarissmoke
Needs Dev / Bug Wrangler Feedback,20421,Remove support for Netscape 4 from kses.php (because it's 2012),,General,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-04-12T00:54:32Z,2012-04-12T01:45:52Z,"Futzing around, I ran into this in kses.php

http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/kses.php#L995

> Removes the HTML JavaScript entities found in early versions of Netscape 4.

Reading it, if that's really true and the only reason it's needed, I think we're pretty safe in removing it now. 

Patch added.",Ipstenu
Needs Dev / Bug Wrangler Feedback,22329,Retina Gravatars,,General,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-10-31T05:18:14Z,2013-02-12T23:54:12Z,"Mentioned by Matt in #21019 

Should be a simple matter of changing get_avatar() in pluggable.php so that the requested size is twice the display size.",miqrogroove
Needs Dev / Bug Wrangler Feedback,16118,Support for wp_enqueue_style with negative conditional comments,,General,3.0.4,normal,normal,Future Release,enhancement,new,dev-feedback,2011-01-06T06:18:40Z,2012-12-13T21:38:49Z,"Please refer to #10891. It refers to the support for conditional comments using the global variable, wp_styles.

I have noticed that if you pass a negative conditional comment, however, this breaks. E.g. Let's say you have a lot of CSS3 rules, which don't apply to IE. You would not include that CSS:

{{{
<!--[if !IE]>-->
<link rel=""stylesheet"" id=""my-handle-css"" href=""http://my.url.com/css3.css"" type=""text/css"" media=""all""/>
<!--<![endif]-->
}}}

I know that IE9 supports CSS3, but I am using the above for illustrative purposes. One would expect that to include the conditional comment above you would do this between the register and the enqueue commands:

{{{
$GLOBALS['wp_styles']->add_data('my-handle', 'conditional', '!IE');
}}}

If you add a conditional tag to wp_styles, however, the generated markup is incorrect:

{{{
<!--[if !IE]>
<link rel='stylesheet' id='my-handle-css'  href='http://my.url.com/css3.css' type='text/css' media='all' />
<![endif]-->
}}}

Note the missing --> after [if !IE]>, and <!-- before <![endif]. This has the effect of hiding the CSS from all browsers, which wasn't the original intention. So probably a separate handling approach is required for ""show"" type of conditional comments than for ""hide"".",sayontan
Needs Dev / Bug Wrangler Feedback,5031,Tag Cloud styles are hardcoded,,General,2.3,normal,normal,Future Release,enhancement,reopened,dev-feedback,2007-09-21T14:41:04Z,2011-04-30T08:47:36Z,"We should provide a way for tag cloud styles to be set somewhere other than in the core code. Really should be the job of a theme, not the core. Yet, we are setting font-size manually. Why?

This has already come up as a problem prior to the 2.3 release. Suggest we at minimum make the styling hookable, and at most, give a css class that has relative meaning for the tag cloud.

Specifically, this would enable folks to have colored tag clouding as opposed to just font size.",technosailor
Needs Dev / Bug Wrangler Feedback,22141,add_submenu_page file callback,,General,3.4.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-10-09T16:11:11Z,2012-10-09T18:07:03Z,"Under the recommendation of the community I have decided to file a track regarding add_submenu_page. It currently allows for a callback function in which a dev could include a file but how about allowing add_submenu_page an argument to include a file in replacement of a callback function? This would remove several lines of code and clean up many developers functions.php files as well as custom admin page files.

Thanks for listening and I hope I can help.
-Ben",BenRacicot
Needs Dev / Bug Wrangler Feedback,16375,is_tax() and get_taxonomy_template() support for post formats,,General,,normal,normal,Future Release,enhancement,new,dev-feedback,2011-01-26T12:03:03Z,2011-02-03T14:38:29Z,"Two things it seemed we forgot.

Currently you'd need to use is_tax() as a conditional tag for post formats. This is ugly, as it looks like this:

`is_tax('post_format', 'post-format-aside');`

Ideally, that slug should be internal. So we need a `is_post_format()` conditional tag. That's probably a lame name (most is_* functions are ambigious), and perhaps someone has a better idea.

Additionally, get_taxonomy_template() currently looks for `taxonomy-$taxonomy-$term.php`. That turns into `taxonomy-post_format-post-format-aside.php`. A simple check can allow us to instead (or in addition to) look for `taxonomy-post_format-aside.php`.",nacin
Needs Dev / Bug Wrangler Feedback,21642,language_attributes() print WP lang instead content lang.,,General,2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-08-20T18:15:37Z,2012-08-20T20:46:33Z,"If you have WordPress in a language does not mean that the content has to be in that language. It would be good if there was an option to select it.

Another detail is for example: If we have the translation ""'''Spanish - Spain'''"", ""'''es-ES'''"", WordPress print ""'''es-e'''s"" instead of ""'''es'''"" simply.
This would be good because it is the only translation into Spanish.",shadowhck
Needs Dev / Bug Wrangler Feedback,14670,sunrise.php in single site installations,,General,,normal,normal,Future Release,enhancement,reopened,close,2010-08-22T19:17:54Z,2012-02-21T02:18:29Z,Let's make sunrise.php work regardless of is_multisite().,nacin
Needs Dev / Bug Wrangler Feedback,17092,use dirname(__file__).'/file.php' instead of './file' for includes,,General,3.1.1,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2011-04-09T12:57:35Z,2012-12-16T12:18:01Z,"most initial includes prior to having ABSPATH defined are usually of the format:

{{{
#!php
require('./wp-blog-header.php');
}}}

as seen in the main index.php. Most of these occur in /wp-admin.

which is fine in most cases. Except on some windows servers where relative paths can get a bit funky. or if you're trying to include the file which contains a relative include in a file found in another directory (which happens when you're trying to use wordpress for something other than its intended purpose, like developing a more practical multisite system, on multiple domains, with a single copy of wordpress files for all the sites).

anyway, I just wanted to request that absolute paths be used for includes.

for example:

{{{
#!php
in /index.php
 require('./wp-blog-header.php');
becomes:
 require( dirname(__FILE__) . '/wp-blog-header.php' );
}}}
{{{
#!php
in /wp-admin/admin-ajax.php
 require_once('../wp-load.php');
becomes
 require_once( dirname(dirname(__FILE__)) . '/wp-load.php' );
}}}
{{{
#!php
in /wp-admin/maint/repair.php
 require_once('../../wp-load.php');
becomes
 require_once( dirname(dirname(dirname(__FILE__))) . '/wp-load.php' );
}}}

it may not look as pretty but I think it's a saner/safer method of inclusion. Just a suggestion for the next major release. Or as you gradually update files.

Attached is the patch I made from 3.1.1. It replaces every relative include|require(_once)? by absolute ones. As far as I've tested, works the same as unpatched and no includes are broken.",ketwaroo
Needs Dev / Bug Wrangler Feedback,14157,wp-includes references should be wiped off,,General,,lowest,minor,Future Release,enhancement,new,dev-feedback,2010-06-30T14:54:49Z,2011-06-25T10:16:45Z,"I think all references to wp-includes should be wiped off and use the WPINC WP constant. This may allow for a future renaming of the wp-includes folder if needed.

E.g in script-loader.php:

$scripts->add( 'jquery-ui-core', '/wp-includes/js/jquery/ui.core.js', array('jquery'), '1.7.1' );

To:

$scripts->add( 'jquery-ui-core', '/' . WPINC. '/js/jquery/ui.core.js', array('jquery'), '1.7.1' );


",steak
Needs Dev / Bug Wrangler Feedback,19135,wp_get_archives() needs a hook/filter,,General,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-11-03T22:12:19Z,2011-11-05T20:20:01Z,"I would expect that it would have one. It was proposed at one point: #2329

Consider the case where I want to add `rel=""nofollow""` to links in my archive:


{{{
function nofollow($string) {
    $dom = DOMDocument::loadXML($string);
    $list = $dom->getElementsByTagName('a');
    foreach($list as $a) {
        if (!$a->hasAttribute('rel')) {
            $a->setAttribute('rel', 'nofollow');
        }
    }
    return $dom->saveHTML();
}
ob_start();
wp_get_archives('type=monthly&limit=12');
echo nofollow(ob_get_clean());
}}}


That seems really ugly, especially since I already use the nofollow function in other places using `apply_filter`;

A more elegant way:
{{{
function wrap($string, $tag) {
    return ""<$tag>$string</$tag>"";
}
function nofollow($string) {
    $dom = DOMDocument::loadXML($string);
    $list = $dom->getElementsByTagName('a');
    foreach($list as $a) {
        if (!$a->hasAttribute('rel')) {
            $a->setAttribute('rel', 'nofollow');
        }
    }
    return $dom->saveHTML();
}
add_filter('wp_get_archives', 'wrap', 'ul');
add_filter('wp_get_archives', 'nofollow');
wp_get_archives('type=monthly&limit=12');
}}}",LeviMorrison
Needs Dev / Bug Wrangler Feedback,18692,wp_insert_post() enhancements,,General,3.2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-17T21:33:12Z,2012-10-12T08:41:53Z,"I have created enhancement for `wp_insert_post()` function. There re two changes:[[BR]]
- allows to return WP_Error from `wp_insert_post_data` - in this case function returns that value (or 0 if param `$wp_error == false`) and do not continue;[[BR]]
- filter categories, tags and other taxonomies through new filters: `wp_insert_post_category`, `wp_insert_post_tags` and `wp_insert_post_tax`. New code also checks if these filters returned WP_Error;

These changes will allow me to implement following features in my [http://wordpress.org/extend/plugins/wypiekacz/ WyPiekacz] plugin:[[BR]]
- do not create new post when it does not satisfy appropriate rules. Although WP code will not display that error by itself (#10480, #18266), I will be able to display appropriate error from plugin code (at least when normal editor was used). This will also help me to stop flood of automated post spam;[[BR]]
- allow to review tags attached to post submitted for review - this way tags will be actually created when post will be published; before this they will be stored as post metadata. In order to do this I need to modify tags - unfortunately `wp_insert_post_data` filter does not allow to modify them (it allows read-only access to them only).",sirzooro
Needs Dev / Bug Wrangler Feedback,23912,Add Composer package description,,General,3.5,normal,trivial,Awaiting Review,feature request,new,dev-feedback,2013-03-30T20:44:16Z,2013-05-23T19:59:30Z,"WordPress, as software download, lacks machine-readable source of meta information about it. For PHP projects de-facto standard for such is Composer via `composer.json` file in project root.

While WP currently doesn't use or need Composer dependency functionality, it will help provide information to developers and improve WP usage ''as'' dependency in projects that make use of Composer.

Suggested `composer.json` draft:
{{{
{
	""name""        : ""wordpress/wordpress"",
	""description"" : ""WordPress is web software you can use to create a beautiful website or blog."",
	""keywords""    : [""blog"", ""cms""],
	""homepage""    : ""http://wordpress.org/"",
	""license""     : ""GPL-2.0+"",
	""authors""     : [
		{
			""name""    : ""WordPress Community"",
			""homepage"": ""http://wordpress.org/about/""
		}
	],
	""support""     : {
		""issues"": ""http://core.trac.wordpress.org/"",
		""forum"" : ""http://wordpress.org/support/"",
		""wiki""  : ""http://codex.wordpress.org/"",
		""irc""   : ""irc://irc.freenode.net/wordpress"",
		""source"": ""http://core.trac.wordpress.org/browser""
	},
	""require""     : {
		""php"": "">=5.2.4""
	}
}
}}}
",Rarst
Needs Dev / Bug Wrangler Feedback,12400,"Add a wp_loaded hook, an ob_start hook, and an front end ajax hook",,General,3.0,normal,normal,Future Release,feature request,reopened,dev-feedback,2010-02-27T01:08:08Z,2013-01-22T09:36:26Z,"Requests for some kind of wp_loaded hook have crept up here and there in trac over the years.

Typically, the requester is looking into doing front-end ajax requests and the like. There are other use cases, such as wanting to catch specific URIs -- e.g. a trailing /print/ to the url, which the permalink API is incapable of catching.

They all got rejected on grounds that there is the init hook that can be used just as well for ajax. Or the template_redirect hook in place of an ob_start hook. The list goes on.

When you want WP and plugins to be loaded '''and''' fully initialized, instantiated and ready to go, setting a priority to obscene levels on the init hook works (I typically use 1000000)... but it always feels like you're working around a crippled API.

Starting output buffers on template_redirect with a priority -1000000 feels equally clunky.

Then, there is the front-end ajax. Yes, admin-ajax.php can be used unauthenticated... But the fact of the matter is, you can end up with SSL turned on when it's not useful, and the lack of an wp-ajax.php file makes many a plugin dev wonder where in the bloody hell he should catch his own requests.

It would be sweet if this all got fixed in WP 3.0.

The argument that goes ""a hook already exists"" seems extremely invalid to me. There are many places in WP where two hooks (and oftentimes many more) can be used to achieve the same result. Think wp_headers and send_headers, for instance. What they have in common is some kind of before/after flow, which init and template_redirect are currently lacking.

One could argue that parse_request is nearby init, and that wp is nearby template_redirect, so they'd be good enough. But the first of these parses expensive regular expressions before firing, and both are only known to WP junkies.

Suggested hooks for WP 3.0:

 - a wp-ajax.php file built similarly to admin-ajax.php.
 - an wp_loaded hook at the very end of wp-settings.php, with a commentary that tells plugin authors that init should be used to instantiate, wp_loaded should be used to act once everything is instantiated, and that wp-ajax.php has hooks that are specific to ajax requests.
 - an ob_start (or pre_load_template, or whatever...) hook at the very beginning of template-loader.php, with a commentary that tells plugin authors that the new hook should be used to instantiate such as output buffering once WP is fully loaded, while the second is traditionally used to pick an arbitrary template.",Denis-de-Bernardy
Needs Dev / Bug Wrangler Feedback,22249,Add ability to set or remove attributes on enqueued scripts and styles.,,General,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-10-21T23:29:13Z,2013-03-26T22:18:25Z,"I think it should be easier to customize the loading of scripts and styles (easier to customize the markup generated by the script/style system). Proposed solutions:

'''Solution 1:''' Allow `wp_enqueue_script`, `wp_enqueue_style`, `wp_register_script`, `wp_register_style` to accept an array of attributes as the `$src` parameter. For example:

{{{
wp_enqueue_script( 'my-plugin', array(
    'src' => 'http://example.com/js/app.js'
    'defer' => ''
    'data-my-plugin' => 'custom data attr value'
), array('jquery'), null, true );
}}}

'''Solution 2:''' Add a filter before the markup is generated that allows devs to filter the attributes while they are in array format. For example:

{{{
add_filter('script_loader_attrs', function ($attrs, $handle) {
    unset ( $attrs['type'] );
    'my-plugin' === $handle and $attrs['data-my-plugin'] = 'plugin data';
    $attrs['src'] = remove_query_arg( $attrs['src'] );
    return $attrs;
}, 12, 2);
}}}
In class.wp-scripts.php it might look something like:

{{{
$attrs = (array) apply_filters('script_loader_attrs', $attrs, $handle);
}}}

and/or:

{{{
$attrs = (array) apply_filters(""{$handle}_script_loader_attrs"", $attrs );
}}}

----

I imagine that solution '''2''' would be easier to implement than '''1''', and '''2''' allows for themes/plugins to modify scripts/styles w/o re-registering resources.

The key feature of both solutions is the ability to modify the attrs while in array format. There are other ways that one could achieve the same results, but the array is '''by far the cleanest'''. Dirty alternatives include: 
* Use `preg_replace()` on the markup after it is generated (see #22245)
* Use output buffers and PHP's DOMElement interface
* Filter away the ""print_scripts_array"" and regenerate the markupmanually.)",ryanve
Needs Dev / Bug Wrangler Feedback,19628,FEATURE REQUEST: std deviation option for wp_tag_cloud,,General,3.3,normal,minor,Awaiting Review,feature request,new,dev-feedback,2011-12-21T04:16:22Z,2012-01-21T10:55:36Z,"Feature Request

Add a std deviation, logarithmic, or other non-linear algorithm for generating tag cloud sizes...  I have a sample set containing approximately 500 tags, with two tags which fall in the 100 posts range, whereas most tags end up with less than 20.  I would still like the two tags to show up, and to show up the largest, and a simple std deviation (66% show up in 1 std dev, 96% or so in the 2nd, etc) or logarithmic algorigm for calculating tag element sizes, based on the sample set.",bhoogterp
Needs Dev / Bug Wrangler Feedback,14653,Log IP address un UserMeta when account is created,,General,,normal,normal,Future Release,feature request,new,dev-feedback,2010-08-20T01:41:24Z,2010-10-28T10:18:48Z,"As WordPress becomes more and more a CMS for everything, not just blogs, managing users becoms more important.  With MultiSite and user registration more open, WordPress should have a built in way to record the IP address of a user.

So at registration, log the IP in usermeta. Done, easy.  List it on the user page.

At comments, obviously, it's already logged, so nothing needs be done there.  Also, since you can already click on an IP and list all comments made from that address, there wouldn't be much else that needs to be done.",Ipstenu
Needs Dev / Bug Wrangler Feedback,16158,"3.0.4 Upgrade failed on localhost testbed, successful on public site",,HTTP,3.0.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-01-08T21:03:55Z,2011-01-09T14:15:17Z,"Running: 3.0.1, Ubuntu, Apache

I'm still looking at this but wanted to report it while I have a break.

I got the holiday notice to upgrade to 3.0.4.  When I did an auto-upgrade on my local testbed (http://localhost:9090/wp/wp-admin/update-core.php), WP reported that I have latest version.  Plugin upgrades work fine.  The auto upgrade was successful on my public sites.  I have WP_DEBUG, etc. on for my local testbed and no errors were reported.  I have upgraded my local testbed this way in the past, definitely for 3.0.1.

Below is a debug dump I hack in the WP_HTTP->request call coming from wp_version_check.  I pasted the URL use into the browser bar it returned the correct information.  Called from wordpress localhost, api.wordpress.com returns a HTML document with the <title>Page not found</title> and a bunch of info about wordpress.


{{{
[08-Jan-2011 20:42:48] URL='http://api.wordpress.org/core/version-check/1.5/?version=3.0.1&php=5.3.2-1ubuntu4.5&locale=en_US&mysql=5.0.83&local_package=&blogs=1&users=2&multisite_enabled=0'
[08-Jan-2011 20:42:48] r=array (
  'method' => 'GET',
  'timeout' => 3,
  'redirection' => 5,
  'httpversion' => '1.0',
  'user-agent' => 'WordPress/3.0.1; http://localhost:9090/wp/',
  'blocking' => true,
  'headers' => 
  array (
    'wp_install' => 'http://localhost:9090/wp/',
    'wp_blog' => 'http://localhost:9090/wp/',
    'Accept-Encoding' => 'deflate;q=1.0, compress;q=0.5',
  ),
  'cookies' => 
  array (
  ),
  'body' => NULL,
  'compress' => false,
  'decompress' => true,
  'sslverify' => true,
  'ssl' => false,
  'local' => false,
)
}}}


So two problems:

1) If the local site core check fails, it assumes what it is running is the most current.  There is no indication that the core check failed.  It seems like the ""Page Not Found"" page returned from api.wordpress.org should be displayed. See #16156, #16094 for similar issues.

2) What in the request is causing the HTTP get to fail?  I think it must something in the header information.  BUT, it USED to work.  Is the server behaving differently?",dturvene
Needs Dev / Bug Wrangler Feedback,17010,Inconsistent handling of HTTP response codes,,HTTP,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-04-01T00:00:13Z,2011-04-06T00:20:04Z,"I noticed during some testing to see what would happen if a server returned a 404 when streaming to a file,and found some inconsistent handling of response codes between transports.

The below test checks to see if the transport returns a WP_Error or if it returns an actual response. If the second column is an integer matching the first column then the transport returned a response, if the second column is 'wp_error' then the transport returned WP_Error for that response code.

STREAMS:
{{{
100 => 100
101 => 101
102 => 102
200 => 200
201 => 201
202 => 202
203 => 203
204 => 204
205 => 205
206 => 206
207 => 207
226 => 226
300 => 300
301 => 301
302 => 302
303 => 303
304 => 304
305 => 305
306 => 306
307 => 307
400 => 400
401 => 401
402 => 402
403 => 403
404 => 404
405 => 405
406 => 406
407 => 407
408 => 408
409 => 409
410 => 410
411 => 411
412 => 412
413 => 413
414 => 414
415 => 415
416 => 416
417 => 417
422 => 422
423 => 423
424 => 424
426 => 426
500 => 500
501 => 501
502 => 502
503 => 503
504 => 504
505 => 505
506 => 506
507 => 507
510 => 510
}}}

FSOCKOPEN:
{{{
100 => 100
101 => 101
102 => 102
200 => 200
201 => 201
202 => 202
203 => 203
204 => 204
205 => 205
206 => 206
207 => 207
226 => 226
300 => 300
301 => 301
302 => 302
303 => 303
304 => 304
305 => 305
306 => 306
307 => 307
400 => wp_error
401 => wp_error
402 => wp_error
403 => wp_error
404 => wp_error
405 => wp_error
406 => wp_error
407 => wp_error
408 => wp_error
409 => wp_error
410 => wp_error
411 => wp_error
412 => wp_error
413 => wp_error
414 => wp_error
415 => wp_error
416 => wp_error
417 => wp_error
422 => wp_error
423 => wp_error
424 => wp_error
426 => wp_error
500 => 500
501 => 501
502 => 502
503 => 503
504 => 504
505 => 505
506 => 506
507 => 507
510 => 510
}}}

EXTHTTP:
{{{
100 => wp_error
101 => wp_error
102 => wp_error
200 => 200
201 => 201
202 => 202
203 => 203
204 => 204
205 => 205
206 => 206
207 => 207
226 => 226
300 => 300
301 => 301
302 => 302
303 => 303
304 => 304
305 => 305
306 => 306
307 => 307
400 => 400
401 => 401
402 => 402
403 => 403
404 => 404
405 => 405
406 => 406
407 => 407
408 => 408
409 => 409
410 => 410
411 => 411
412 => 412
413 => 413
414 => 414
415 => 415
416 => 416
417 => 417
422 => 422
423 => 423
424 => 424
426 => 426
500 => 500
501 => 501
502 => 502
503 => 503
504 => 504
505 => 505
506 => 506
507 => 507
510 => 510
}}}

CURL:
{{{
100 => wp_error
101 => wp_error
102 => wp_error
200 => 200
201 => 201
202 => 202
203 => 203
204 => 204
205 => 205
206 => 206
207 => 207
226 => 226
300 => 300
301 => 301
302 => 302
303 => 303
304 => 304
305 => 305
306 => 306
307 => 307
400 => 400
401 => 401
402 => 402
403 => 403
404 => 404
405 => 405
406 => 406
407 => 407
408 => 408
409 => 409
410 => 410
411 => 411
412 => 412
413 => 413
414 => 414
415 => 415
416 => 416
417 => 417
422 => 422
423 => 423
424 => 424
426 => 426
500 => 500
501 => 501
502 => 502
503 => 503
504 => 504
505 => 505
506 => 506
507 => 507
510 => 510
}}}

We need to define when we want to return a WP_Error, if ever.  I am thinking that returning a WP_Error is not very useful if we get a response from the server.  The response codes tested were obtained from get_status_header_desc().",sivel
Needs Dev / Bug Wrangler Feedback,19707,admin-ajax.php requests via http regardless of force_ssl_admin() state,,HTTP,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-01-01T00:53:52Z,2012-04-27T20:59:54Z,"Noticing these requests failing:

""NetworkError: 403 Forbidden - http://HOSTNAMEwp-admin/admin-ajax.php""


My server explicitly denies http to wp-admin.  SSL only.

Looks like admin_url() is giving http rather than https. I suspect this bug actually lies somewhere in get_site_url(), but I don't have time to triage this right now.

This is technically a security bug since WP should always obey force_ssl_admin(), but I don't think anything is being leaked or compromised.  You don't get access to anything, and nothing being sent over the wire is sensitive since it still obeys the rules of the protocol (cookie is secure).  It's just a nuisance.",robertaccettura
Needs Dev / Bug Wrangler Feedback,16870,consider disabling HTTP transport after multiple failed requests,,HTTP,2.9,normal,normal,Future Release,enhancement,new,dev-feedback,2011-03-16T23:18:45Z,2011-07-16T23:31:02Z,"There has been a number of reports over the lifespan of the cURL HTTP transport failing with an error during upgrades:
{{{
WP HTTP Error: name lookup timed out
}}}

This is a common error from cURL on badly configured installations (specifically, IIRC it lacks DNS Resolving in cURL, sometimes it just required an extended amount of time to resolve, others, it simply can't resolve)

Like we do with fsockopen() I think it'd be worth disabling the cURL transport for x hours when it hits this particular error condition..

Related threads: http://wordpress.org/support/topic/dashboard-issues-rss-error-wp-http-error-name-lookup-timed-out and http://wordpress.org/support/topic/plugins-update-failure  Both old threads, so this may only affect a PHP4 version of cURL.. For tracking purposes, I've finally created this ticket.",dd32
Needs Dev / Bug Wrangler Feedback,20813,_get_plugin_data_markup_translate fails to load plugin translations,,I18N,2.9,normal,normal,Future Release,defect (bug),new,dev-feedback,2012-06-01T21:22:17Z,2013-05-08T00:49:29Z,"Example Plugin:

{{{
Plugin Name: XYZ
Text Domain: zzz
Domain Path: /lang
}}}

For showing the translated description, _get_plugin_data_markup_translate() will be called.


{{{
function _get_plugin_data_markup_translate( $plugin_file, $plugin_data, $markup = true, $translate = true ) {

  // Translate fields
  if ( $translate ) {
    if ( $textdomain = $plugin_data['TextDomain'] ) {
      if ( $plugin_data['DomainPath'] )
        load_plugin_textdomain( $textdomain, false, dirname( $plugin_file ) . $plugin_data['DomainPath'] );
}}}

This will call (replaced vars with values):
{{{
load_plugin_textdomain( 'zzz', false, ""/full/path/to/plugin/dir/"" . ""lang"" );
}}}

But load_plugin_textdomain only accepts the subdirectory ""lang"" as the third argument, leading to an incorrect path since WP_PLUGIN_DIR will be put in front.

The fix is to use basename(dirname()) to only get the plugin directory  instead of the full path.",arnee
Needs Dev / Bug Wrangler Feedback,22225,WordPress does not localize ordinal suffixes in dates,,I18N,3.4.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-10-19T08:39:08Z,2012-12-26T01:48:11Z,"In wp-includes/functions.php function date_i18n(), elements like month, month abbreviation, weekday etc.. are localized but not the ordinal suffixes (e.g. st, nd, rt, th)

effect: when using the ordinal suffixes for dates 

e.g. 
{{{
<?php the_time('F jS, Y'); ?>
}}}
 
on translated/localized page page, the month name is translated (F) but the ordinal suffix no.

Not browser/OS/environment dependent.",mihaimihai
Needs Dev / Bug Wrangler Feedback,12036,"Importing from wordpress exported file renders ""Remote file is incorrect size"" because file cache",,Import,2.8.6,normal,normal,WordPress.org,defect (bug),new,dev-feedback,2010-01-26T14:43:08Z,2010-10-18T16:49:10Z,"Hi,

I haven't confirmed this on other platforms, but my OS X machine seem to have an issue when downloading media content from a third party during an import of an wordpress.xml. And by quickly searching the net it seems other people have the same issue.

I've re-run the same import several times and it seem because the file was not flushed it may not have been updated with the file correct size. So even thought all bytes was written, the filesize($upload['file']) is not the same. When thinking about the issue I found the check ridiculously and removed it. Importing then works and all media images are downloaded properly. Previously maybe 50% received the error.

I've attached my proposed diff.",stelund
Needs Dev / Bug Wrangler Feedback,6269,RSS Import Doesn't Properly Strip CDATA Tags,,Import,2.3.3,low,minor,WordPress.org,defect (bug),new,dev-feedback,2008-03-18T00:58:13Z,2012-09-10T16:37:33Z,"When importing an RSS feed that uses the <description> tag as opposed to <content:encoded>, I noticed that WP's RSS import doesn't strip the CDATA tags as it does for the <content:encoded>.

=========Code Lines (83-87)===============
{{{
if (!$post_content) {
// This is for feeds that put content in description
preg_match('|<description>(.*?)</description>|is', $post, $post_content);
$post_content = $wpdb->escape($this->unhtmlentities(trim($post_content[1])));
}
}}}
=====================================

I tweaked the code to solve the problem (see below)

==========Tweaked Code===============

{{{
if (!$post_content) {
// This is for feeds that put content in description
preg_match('|<description>(.*?)</description>|is', $post, $post_content);
$post_content = str_replace(array ('<![CDATA[', ']]>'), '',$wpdb->escape($this->unhtmlentities(trim($post_content[1]))));
}
}}}

======================================

I'd be happy to submit a patch, except I'm not quite that savvy yet. It would be great it someone could incorporate it. Thanks.",sweetdeal
Needs Dev / Bug Wrangler Feedback,21913,Detecting MIME Types in WXR Files,,Import,3.4.2,normal,normal,WordPress.org,enhancement,new,dev-feedback,2012-09-17T21:09:07Z,2012-10-10T21:46:11Z,"In the process of creating a service to convert TypePad data to WXR formatted files, we've encountered some unique problems with TypePad data. Namely, many TypePad files are saved without file extensions, which prevents the existing importer from importing those files into the wp-content/uploads folder.

In order to import and rename these otherwise ignored files, we've created a patch for the WordPress importer that does the following:

1. If there is an attachment in the WXR and the importer is not able to determine the file type from the file name (ie missing extension), the patched version will make a light (body-less) request to the web server where the file is hosted for information we can use about the file.  The things we're interested in are file type, size, and filename.

2. If the importer is processing an attachment under the above situation, and it is able to determine the file type, then it will rewrite the local version of the file to have the appropriate file extension.

This is a simple bit of code, but it makes a huge difference as TypePad saves without file extensions quite regularly.

We've attached our patch and a sample WXR file from ragsgupta.com, the Brightcove co-founder's blog.",ReadyMadeWeb
Needs Dev / Bug Wrangler Feedback,3632,Export gzip support,,Import,2.1,normal,normal,Future Release,enhancement,new,dev-feedback,2007-01-22T13:11:42Z,2011-02-07T06:51:22Z,"The ticket may be similar to #3178, but it is not, because we control the WordPress process.[[BR]]

Importing a wordpress.xml file to another wordpress may fail due to an upload_max_filesize and post_max_size directives in php.ini. You know that many web hosts allow only an upload_max_filesize of 2 MB. Though, compression is a great help.

A simple solution is, on one side, offering an ''option'' to compress in GZ format the xml file when exporting, and, on the other side, the WordPress importer will accept the compressed file.

And, when possible, WordPress importer should accept compressed files from other formats and blogs.[[BR]]
Just say you only accept one compression format (gz, zip, etc) and the user will comply.",PozHonks
Needs Dev / Bug Wrangler Feedback,16615,More inline docs needed to explain DB errors esp. dead_db() and effects of WP_DEBUG,,Inline Docs,,normal,normal,Awaiting Review,enhancement,new,needs-docs,2011-02-22T21:42:58Z,2011-02-23T06:29:19Z,"'''The Problem: DB Error reporting can't be modified'''

I'm trying to set my sites up for some scheduled downtime of our (separate) MySQL server. I am hoping that I can show cached pages if they are requested, but show a 'We are down for scheduled maintenance' message when a user loads a page that needs the database. 

In the process I'm seeing there are many different places in the code that fire depending on exactly how broken the database is. Specifically, there are some scenarios where `dead_db()`, which is totally different from the rest of the messages, will fire. dead_db() is cool because it promises to let us use a `/wp-content/db-error.php` file to control output in case of a db error, but currently it is just frustrating because most types of db error (server missing, db missing) don't cause `dead_db()` to fire, but instead use `$wpdb::bail()`. These bail()-based errors are used in wp-db.php. 

However `dead_db()` CAN still fire, which I know because our site often has database outages that result in the H2 from `dead_db()` being shown. I think it's a certain mix of ""the mysql server and database seem to exist, but are failing to respond to actual queries"". That said, I'm pretty sure that the scenarios where dead_db still fires are ones also covered by some of the `$wpdb::bail()` situations, and would be better off handled by one consistent system of errors. dead_db() should either be used for all DB related errors or deprecated, otherwise it is just an awkward red-herring for developers.

'''The Solution: Better filters on `$wpdb::bail()`'''

I think that all these messages need to be pluggable somehow and it should be clear how to do so when looking at the code itself. Asking people who want to change a wp_die() message to find it in the code is reasonable, but it should be clear from there how to change it. Ideally there would be a filter in the function that calls bail() that lets you edit the text and/or forward the user to another URL where a maintenance message lives. It should be of of those situations where finding the source of the message also finds the means of changing it.

The simplest answer would be a filter added in `$wpdb::bail()` that used the $error_code to identify the specific message. In the database errors the $error_code passed to bail() are useful slug-type strings like 'db_select_fail'. Something like:


{{{
apply_filters('wpdb_bail', $error_code, $message);
wp_die($message);
}}}



This would give people a lot of control, and could easily be referred to in a comment before any given instance of `$wpdb::bail()`.

To make the $error_code easier to find I think it's also worth reformatting the code used to call `$wpdb::bail()`. Currently it takes this form:

{{{
$this->bail( sprintf( /*WP_I18N_DB_CONN_ERROR*/""
...
SUPER LONG HTML MESSAGE
...
""/*/WP_I18N_DB_CONN_ERROR*/, $details['db_host'] ), 'db_connect_fail' );
}}}

This makes it hard to notice the 'db_connect_fail' string all the noise. Instead the message perparation and bail() call should be on two lines, one for defining the message and another that only calls bail (with an explanation about the $error_message and filter above it).

Looking at it deeper I imagine I can achieve what I want by hooking into the 'wp_die_handler' filter, checking for the exact HTML generated by the DB error (the `$message` value in the code above), and doing something based on that, but it's obviously a house of cards for future updates where the text might change. It will also be easily foiled by any translation of the `$message` which will change its output.


",jeremyclarke
Needs Dev / Bug Wrangler Feedback,19906,Quicktags docs recommend code causing JS error: Uncaught ReferenceError: QTags is not defined,,Inline Docs,3.3.1,normal,trivial,Awaiting Review,enhancement,reopened,dev-feedback,2012-01-27T01:05:44Z,2012-01-27T17:35:31Z,"
Right now the docs for qt.addbutton in quicktags.dev.js have the following text:

{{{
	 * If you are echoing JS directly from PHP,
	 * use add_action( 'admin_print_footer_scripts', 'output_my_js', 100 ) or add_action( 'wp_footer', 'output_my_js', 100 )
}}}

This works, but if you add the QTags.addButton() calls on those hooks then they will cause JS errors on any screen without an editor:

{{{Uncaught ReferenceError: QTags is not defined}}}

The issue is avoided if you use the other option, enqueuing a script dependent on 'quicktags', but that is a lot more work and forces all pages in the admin to load the quicktags script unnecessarily. 

Maybe there is some way to magically make calling QTags.addbutton() safe no matter what, but I think at minimum we need to add a note to the PHPdoc about checking QTags before using it, as that solves the problem pretty simply:

{{{
 if ( typeof QTags != 'undefined' ) {
	QTags.addButton( 'gv_translation', 'translation', '<div class=""translation"">', '</div>' );
}
}}}

So the phodoc could say :

{{{
	 * If you are echoing JS directly from PHP use
	 *	add_action( 'admin_print_footer_scripts', 'output_my_js', 100 ) 
	 * or 
	 *	add_action( 'wp_footer', 'output_my_js', 100 )
	 *	
	 * If echoing the addButton calls directly instead of enqueing with the 'quicktags' dependency
	 * make sure to check that the QTags object is defined first, otherwise your code will throw errors 
	 * when no editor is present:
	 *	if ( typeof QTags != 'undefined' ) { QTags.addButton(...) } 
	 *
}}}

The attached patch just adds that to the docs. If a committer has a preferred wording then just use that instead, obviously the patch didn't take me long :)

BTW: I created a Codex article with the docblock after not finding a reference to the new API anywhere other than in the JS file itself. Nacin's posts mentioned that they had changed but not what was new ;)

http://codex.wordpress.org/Quicktags_API

Clearly it needs work, I didn't want to put too much time into it at first because I didn't understand the system yet (as I'm learning now, by finding JS errors).",jeremyclarke
Needs Dev / Bug Wrangler Feedback,3372,Consolidated JavaScript/CSS Plugin API,,JavaScript,2.1,lowest,normal,Future Release,feature request,reopened,dev-feedback,2006-11-19T04:39:22Z,2013-02-07T21:56:46Z,"WordPress plugins are great, they really are.  One problem with them is they often include their own styles and scripts.  The problem here is that several plugins with useful features mean a browser needs to download 10+ javascripts and stylesheets.  This isn't good for page load.  It's awful.  See:
http://www.die.net/musings/page_load_time/

My suggestion would be an API that allows all plugin/css to be included in 1 PHP generated CSS and Javascript.  This would drastically consolidate requests.  For performance reasons it should ideally be cached so that it's only regenerated when a plugin is loaded/reloaded.

This is becoming a bigger issue as plugins become more common and useful.  I hope a solution is found that gives plugin authors the freedom they need, and blog owners the performance they want, without having to sacrifice features.  I think channeling all the requests into 1 JS and 1 CSS file would achieve that.  They could use a numerical ranking system to calculate position in the file (to avoid conflicts) similar to how (iirc) filter work.",robertaccettura
Needs Dev / Bug Wrangler Feedback,11376,wp_mail should run MsgHTML for HTML emails,,Mail,,normal,normal,Future Release,feature request,new,dev-feedback,2009-12-09T22:47:15Z,2010-03-31T03:47:02Z,"PHPMailer has a function called [http://core.trac.wordpress.org/browser/trunk/wp-includes/class-phpmailer.php#L1720 MsgHTML] that sets the email as isHTML and automatically adds HTML and plain text versions of the message to the email.

wp_mail should run this function if $content_type is set to text/html to allow for max compatibility with email clients. 

Should note: WordPress doesn't currently send HTML emails so this is more of a benefit for plugins. But if we go down the road for HTML emails with core, this will be useful...

This is a quick fix, so I can patch it up.",batmoo
Needs Dev / Bug Wrangler Feedback,22558,Attachment term counts feels/are inaccurate,,Media,,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-11-23T16:21:26Z,2013-05-22T16:47:59Z,"For posts:
* Assign a term to a post, save as draft. Term count returns 0.
* Publish the post. Term count returns 1.
* Change post status back to draft. Term count returns 0.

For attachments:
* Upload an image, assign a term. Term count returns 0.
* Create a new post and insert the image in a published post. Term count returns 0.
* Create a new post, use the insert media modal and upload an image. Then go the the media edit screen and assign a term to the image. Term count returns 1.
* Change the post status back to draft. Term count returns 1.
* Upload an image, assign a term, attach the attachment to a published post. Term count returns 0.

The default term update callback is `_update_post_term_count`. The function includes a special case for attachments, that's the reason why we have the 1 in step 3.

IMO the term count for attachments shouldn't rely on the parent post status. We should just force `_update_generic_term_count`.

Also noted here: comment:ticket:21391:41",ocean90
Needs Dev / Bug Wrangler Feedback,23954,Checkbox value is not updated correctly inside media-views.js,,Media,3.5.1,normal,major,Awaiting Review,defect (bug),new,dev-feedback,2013-04-05T22:11:18Z,2013-04-06T14:43:52Z,"I added two custom fields to the ""Edit Gallery"" interface using a hook and discovered that my ""select"" and ""text"" inputs were working fine, but my ""checkbox"" input did not work at all.

I enabled `SCRIPT_DEBUG` so that I could explore further and discovered that the bug on line 3939 of media-views.js.

A double-bang has been incorrectly used to cast from a string encoded boolean value to an actual boolean value (since !!""false"" is actually true).

This is the current implementation:

{{{
} else if ( $setting.is('input[type=""checkbox""]') ) {
    $setting.attr( 'checked', !! value );
}
}}}

This is my recommendation which resolves the issue:

{{{
} else if ( $setting.is('input[type=""checkbox""]') ) {
    value = value !== false && value !== 'false';
    $setting.attr( 'checked', value );
}
}}}

I would submit a patch, but I do not know how to do that.",NumberKruncher
Needs Dev / Bug Wrangler Feedback,18297,Cropping in step 2 in Custom_Image_Header,,Media,3.2.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-07-29T17:35:27Z,2012-05-24T22:50:56Z,"The cropping should not be based on the ratio but should follow some basic logic.

if ( ( yimg < HEADER_IMAGE_HEIGHT ) && ( ximg < HEADER_IMAGE_WIDTH ) ) // no crop
else //do follow current functionality",wpsmith
Needs Dev / Bug Wrangler Feedback,16891,Deleting all attachments from post under 'Gallery' tab shows 'From Computer' tab sans uploader,,Media,3.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-03-18T17:33:26Z,2012-07-04T14:12:42Z,"'''Steps to Reproduce:'''
1. Attach images to post using 'Add an Image' dialog
1. '''Save post'''
1. Go to Gallery tab under dialog
1. Delete images
1. View changes to 'From Computer' tab with only empty table from Gallery tab",kawauso
Needs Dev / Bug Wrangler Feedback,17255,Draft status for media files,,Media,3.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-04-27T11:48:11Z,2012-06-23T00:56:18Z,"It's weird that media files don't carry any concept of pub status. If someone wants to upload files (either attached to a post or directly into the library), they should be able to keep them hidden via 'draft' status just like any other content. The fact that people can link to things that haven't been explicitly published is bizarre. 

Media files should have a pub status. If uploaded as post attachment, should inherit publish on post publish. Would then need a workflow for if a post becomes unpublished containing media, as it then lives in library for use by other content, so would need to ask if user wants to unpub media files as well. This would be a big shift, so would make most sense as part of a media redux with a long notice period for plugin and theme authors. ",jane
Needs Dev / Bug Wrangler Feedback,15807,Featured image doesn't attach to post,,Media,2.9,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-12-14T11:57:23Z,2010-12-26T23:09:57Z,"When you use an image as featured, it doesn't attach to the post. 

Possibly related with #14390 (post image (thumbnail) in [gallery])

Tests:

• If the image is already attached, it doesn't reattach ✔

• If the image is uploaded while writing the post, it attaches like another image, even if you are not using it in the post. ✔

• If an image is in the media library, not attached, and you use it in your post, it automatically attaches to the post. ✔

• If the image is in the media library, not attached, and you use it as featured image in a post, it doesn't attach ✘
",bi0xid
Needs Dev / Bug Wrangler Feedback,11325,Image cropping doesn't work for small areas,,Media,2.9,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-12-04T19:46:08Z,2011-02-03T14:22:23Z,"Image cropping works for JPEG images, but not for PNGs. The crop button is disabled.

Rev.179738",caesarsgrunt
Needs Dev / Bug Wrangler Feedback,13461,Preserve GIF transparency/alpha during thumbnail creation,,Media,2.9.2,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-05-20T13:23:30Z,2012-12-19T23:22:40Z,"GIF images with transparent backgrounds get thumbnails with black backgrounds. 

It was a similar ticket for PNG images in: http://core.trac.wordpress.org/ticket/2805",javitxu123
Needs Dev / Bug Wrangler Feedback,22135,Special characters in caption lead to failure of inserting images,,Media,3.4.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-10-08T21:25:46Z,2012-10-11T16:26:47Z,"Found this when double-checking #22132:

1. Go to add a new post.
2. Click ""Upload/Insert"" (the ""old"" media upload).
3. Upload an image, or go to choose one from the media library.
4. Insert {{{Title""<script>alert('Title');</script>}}} in the ""Caption"" field.
5. Click ""Insert into Post"".

Instead of the image (or Shortcode) being added to the editor (with a somehow escaped caption field), the media upload iframe just gets a new content:
{{{
[/caption]'); /* ]]> */
}}}

Reproduced in 3.4.2 and trunk.",TobiasBg
Needs Dev / Bug Wrangler Feedback,20948,Unnecessary post type check in wp_get_attachment_url,,Media,3.4,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-06-14T02:38:16Z,2012-12-16T23:21:48Z,"Not sure why this needs to be done. You wouldn't be calling this function on a post if it wasn't an attachment. If you are, then you must have a good reason to be doing so, like I do.",jfarthing84
Needs Dev / Bug Wrangler Feedback,21679,media_handle_upload does not provide a way to change the file's name,,Media,2.5,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-08-24T04:00:30Z,2012-08-24T10:33:06Z,"`wp-admin/includes/media.php` has two operations that I believe should be reversed. Basically, `$name` is set based on the name of the raw uploaded file ( `$_FILES[$file_id]['name']`), however in the `wp_handle_upload` function you are able to use `wp_handle_upload_prefilter` to adjust the file's name - but when after the `wp_handle_upload` returns the changes will not show up in the title of the media dialog field even though the file has been renamed properly:

{{{
	$name = $_FILES[$file_id]['name'];
	$file = wp_handle_upload($_FILES[$file_id], $overrides, $time);

	if ( isset($file['error']) )
		return new WP_Error( 'upload_error', $file['error'] );

	$name_parts = pathinfo($name);
	$name = trim( substr( $name, 0, -(1 + strlen($name_parts['extension'])) ) );
}}}


In short, uploading a file named Picture.png and changing the name to test3.png using the `wp_handle_upload_prefilter` filter does in fact allow the file's name to be changed before it is saved, but the ""title"" is then incorrectly displayed in the media uploader dialog box.

[[Image(http://img24.imageshack.us/img24/3679/pictureyp.png)]]

This would be relatively easy to fix using this patch:

{{{
--- media.php	2012-08-23 23:57:02.000000000 -0400
+++ media-patch.php	2012-06-06 12:00:08.000000000 -0400
@@ -209,8 +209,8 @@
 			$time = $post->post_date;
 	}
 
+	$name = $_FILES[$file_id]['name'];
 	$file = wp_handle_upload($_FILES[$file_id], $overrides, $time);
-	$name = $file['name'];
 
 	if ( isset($file['error']) )
 		return new WP_Error( 'upload_error', $file['error'] );
}}}",Willshouse
Needs Dev / Bug Wrangler Feedback,20547,Ability to define post attachment status on insertion,,Media,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-04-25T20:57:48Z,2012-04-25T20:57:48Z,"By default, `wp_insert_attachment` will either set a new attachment as 'inherited' or 'private' - inherited being that it simply mimics the post status of its parent.

This is fine by default, but what about when wanting to run tests? For example, you have a live post that you want to add attachments to, but you want to ensure that the attachments (whatever they may be) are properly formatted before making them appear on your live post. By default, just uploading the attachment will push it live because it has inherited the published status of its parent.

Is this doable? What about filtering `$object` in the `wp_parse_args` function inside `wp_insert_attachment` to allow that property (along with the others - it makes sense to be able to filter them all) to be set?

Don't know how feasible it is, but if it's possible I'll work on a patch and tests.",griffinjt
Needs Dev / Bug Wrangler Feedback,19872,Add Hook/Filter to image_resize_dimensions in media.php,,Media,3.3.1,normal,normal,Awaiting Review,enhancement,reopened,dev-feedback,2012-01-21T19:38:18Z,2012-01-21T22:23:46Z,"It would be great if a hook, a filter, a global, an option, or something somewhere were created to allow the image_resize_dimensions() function in media.php to resize images to be larger than the original. In a typical scenario I can understand why you would not want to allow this, however there are rare circumstances where this would be helpful (generating a background image). Currently lines 349 and 350 of media.php read:
{{{
$new_w = min($dest_w, $orig_w);
$new_h = min($dest_h, $orig_h);
}}}
and lines 378 to 380 read:
{{{
// if the resulting image would be the same size or larger we don't want to resize it
if ( $new_w >= $orig_w && $new_h >= $orig_h )
	return false;
}}}
It would be great if we were provided a boolean to alter these two blocks, for example:
{{{
if($allow_resize){
	$new_w = $dest_w;
	$new_h = $dest_h;
}else{
	$new_w = min($dest_w, $orig_w);
	$new_h = min($dest_h, $orig_h);
}
}}}
...
{{{
// if the resulting image would be the same size or larger we don't want to resize it
if ( $new_w >= $orig_w && $new_h >= $orig_h && !$allow_resize)
	return false;
}}}",webbtj
Needs Dev / Bug Wrangler Feedback,16989,Add a parameter or filter to get_media_items() for media type.,,Media,,normal,trivial,Awaiting Review,enhancement,new,dev-feedback,2011-03-28T16:19:55Z,2011-07-17T23:18:21Z,"It's a bit confusing IMO to have all media items appearing in the gallery tab of the media upload popup as it only deals with images. I'm making an audio player plugin with soundmanager2.js that uses an extra media upload tab to organise the uploaded audio files and insert a playlist shortcode into the post.

To do this I had to take a copy of get_media_items() with my filter hardcoded in. I can share my code if desired but it's not the prettiest, I'd like a more wordpressy way of doing this in future releases when you're able.",sanchothefat
Needs Dev / Bug Wrangler Feedback,23983,Add filter to get_post_thumbnail_id to override default thumbnail use,,Media,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-04-07T20:48:44Z,2013-04-08T00:43:56Z,"The current function for getting the post thumbnail ID, used in among others `get_the_post_thumbnail`, is as follows:
{{{
function get_post_thumbnail_id( $post_id = null ) {
	$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
	return get_post_meta( $post_id, '_thumbnail_id', true );
}
}}}

In my opinion, this needs a filter, so the user can override this by the attachment of his choosing, such as an Advanced Custom Fields image attached to the post.

Something like:
{{{
function get_post_thumbnail_id( $post_id = null ) {
	$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
	return apply_filters( 'post_thumbnail_id', get_post_meta( $post_id, '_thumbnail_id', true ), $post_id );
}
}}}

I know you can hook into the `get_{$meta_type}_metadata` filter, but getting the post thumbnail ID should still be possible by using get_post_meta, the other thumbnail should just be used for displaying.",Jesper800
Needs Dev / Bug Wrangler Feedback,21407,Allow filtering of upload resize dimensions,,Media,3.4.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-07-28T18:00:19Z,2012-07-29T19:29:25Z,"Background: 

Plupload ships with a client-side upload resizer that was included with Core in 3.3 but had the action removed because of [http://core.trac.wordpress.org/ticket/19174 browser inconsistencies] so I implemented it as [http://wordpress.org/extend/plugins/enable-image-scaling-option-on-upload/ a plugin] at the time. Everything works just fine and dandy with zero problems except that the `resize_height` and `resize_width` vars are defaulted to the Large image sizes defined in media settings. It would be nice to be able to filter one or both of the dimensions outside the scope of the 'Large' size (when 'Original' becomes the same size as 'Large', you effectively lose an image size).

Patch attached.

You'll have to re-add this action to test:

`add_action( 'post-upload-ui', 'media_upload_max_image_resize' );`

Related: #19174, #19770",DrewAPicture
Needs Dev / Bug Wrangler Feedback,16251,Change attachment image uploads to have post_date corresponding to EXIF created date,,Media,,normal,normal,Future Release,enhancement,new,dev-feedback,2011-01-15T23:03:15Z,2011-07-23T15:30:02Z,"General idea is that if an image has EXIF data about its creation time, we should use that as the post_date in the attachment post, since the attachment post is the representation in WordPress of the attachment file.

Advantages: The posts will show their proper dates of creation by simply using the_date and similar functions.

This code will do it as a plugin. A patch would be much simpler and more generally beneficial.

{{{
add_filter('wp_update_attachment_metadata','attachment_redater',10,2);
function attachment_redater($data, $id) {
	if (!empty($data['image_meta']['created_timestamp'])) {
		$post=get_post($id);
		$post->post_date = gmdate('Y-m-d H:i:s', $data['image_meta']['created_timestamp']);
		wp_update_post($post);
	}
	return $data;
}

}}}
",Otto42
Needs Dev / Bug Wrangler Feedback,10501,Enhancements to media upload rules and/or delete media confirm dialog,,Media,,low,minor,Future Release,enhancement,new,dev-feedback,2009-07-28T13:21:09Z,2009-11-23T19:53:18Z,"Now only some file types has required ""Name"" field, rest don't requires typing name for file. After upload if name field was empty file get name in media library from original uploaded file for example: ""doc234"" if uploaded file was named ""doc234.txt"".

Now user can Edit uploaded to library file and delete name. In library view file is called ""(no title)"", but when user try to delete in confirmation box are only empty quotes without name.

There are two possibilities to fix this.

First: require ""Name"" value for every file, not only for few types.
Second: add function which show uploaded file name as ""Name"" in confirmation box, when this name is empty.",Simek
Needs Dev / Bug Wrangler Feedback,14110,Expose height and width attributes to 'wp_get_attachment_image_attributes' filter,,Media,3.0,normal,minor,Future Release,enhancement,new,dev-feedback,2010-06-27T00:54:46Z,2013-02-04T19:51:35Z,"The filter 'wp_get_attachment_image_attributes' allows you to alter the attributes of embedded images. However the height and width attributes aren't passed to this filter. These would be useful to have – I'm making a theme with a fluid layout where I have to remove all height and width attributes to ensure that the browser maintains the attribute of images when they're resized.

I've attached a patch with a fix. In it I've also changed the function 'get_image_tag' so that I could remove the immensely pointless 'hwstring' function.",divinenephron
Needs Dev / Bug Wrangler Feedback,21988,Filter get_media_item output,,Media,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-09-25T03:56:27Z,2012-09-25T09:38:43Z,"L1027-1028 of media.php looks like this:

{{{
if ( $item = get_media_item( $id, array( 'errors' => isset($errors[$id]) ? $errors[$id] : null) ) )
			$output .= ""\n<div id='media-item-$id' class='media-item child-of-$attachment->post_parent preloaded'><div class='progress hidden'><div class='bar'></div></div><div id='media-upload-error-$id' class='hidden'></div><div class='filename hidden'></div>$item\n</div>"";
}}}

The biggest issue I see with this is that because you can only attach images to one post, this will unnecessarily display images that cannot be attached to the current post type in instances where the Media Library tab is forced to send items even though no editor support has been added for the post type.

In that light, it would be nice to have a filter to remove the output of these unnecessary items in order to improve UI and UX when navigating through images to attach to the post type. Currently I am having to create an error-like overlay on each item that is already attached in order to prevent users from trying to attach an item that is already attached elsewhere.

Where would it make the most sense to have this filter? At the end of get_media_item? ",griffinjt
Needs Dev / Bug Wrangler Feedback,22075,Improving `wp_get_attachment_link`,,Media,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-10-02T04:29:05Z,2012-10-07T22:07:52Z,"I answered a [http://wordpress.stackexchange.com/questions/65982 question] not so long ago on [http://wordpress.stackexchange.com/ WordPress StackExchange].

There I saw the need on a filter for `wp_get_attachment_link()` to allow the developer to add or remove attributes to the HTML without having to use a regex on it or creating the `a` tag again.

So I've done this small patch with changes to apply this enhancement to the function.",webord
Needs Dev / Bug Wrangler Feedback,12238,Introduce a function to return image attributes of a specific attachment,,Media,,normal,normal,Future Release,enhancement,new,dev-feedback,2010-02-15T11:47:02Z,2012-09-22T20:05:57Z,"It's useful to get all the data relating to an image via one source:
{{{
/**
* returns an array containing attributes for an image stored in the database
 * $image_id : id of the image to query
 * $size : size of the image, can be 'thumbnail', 'medium', 'large' or 'full'
 */	
function get_image_by_id($image_id, $size) {
	$image = get_post($image_id);

	$imageObj = array();
	$imagearray = wp_get_attachment_image_src($image->ID, $size, false);
	$imageObj['src'] = $imagearray[0];
	$imageObj['width'] = $imagearray[1];
	$imageObj['height'] = $imagearray[2];
	$imageObj['id'] = $image->ID;
	$imageObj['title'] = $image->post_title;
	$imageObj['caption'] = $image->post_excerpt;
	$imageObj['description'] = $image->post_content;
	$imageObj['alt'] = get_post_meta($image->ID, '_wp_attachment_image_alt', true);

	return $imageObj;
}
}}}",jredfern
Needs Dev / Bug Wrangler Feedback,23096,Provide callback before setting state of the editor media manager,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-12-31T18:33:52Z,2013-01-25T16:54:03Z,"In the current setup, there is no way to modify the current state or views when the media manager is opened from the ""Add Media"" button. By the time you can modify anything, all the default views have been rendered and all of the events have been fired.

It would be helpful to check for the existence of a callback, and if it exists, run that before returning the workflow.

My patch does this, which you could invoke in this way:
{{{
wp.media.editor.extend = function(workflow){
        // Manipulate the workflow here
}
}}}

Thoughts? This is only for the default media manager that is invoked by clicking the Add Media button.",griffinjt
Needs Dev / Bug Wrangler Feedback,20602,Replace media,,Media,3.3.1,normal,major,Awaiting Review,enhancement,new,dev-feedback,2012-05-02T13:29:45Z,2012-05-02T17:55:33Z,"I have been developing themes for clients lately that require the same image across the theme in varying places. A good example is an event site where the image is a badge/sticker showing the price of the tickets. This gets output on various pages in varying locations. 

get_attachment_link is perfect as I can plugin a single ID and use the graphic wherever. However, the ticket prices change as the event gets closer and the graphic needs to be updated which breaks the theme in production when my client does so as a new ID is generated. 

This doesn't make too much sense to me. I've worked with and developed CMSs of all kinds and usually the ID is preserved. 

I would at least like the option, perhaps a checkbox, to indicate I want to reupload a new image. I think it's more common that an update on a media item would be to modify the same logical graphic rather than just replacing it with something entirely new.

I found the following plugin but I feel this really ought to be core.

http://wordpress.org/extend/plugins/enable-media-replace/

Thanks for your consideration.",PorridgeBear
Needs Dev / Bug Wrangler Feedback,13372,Separate Image sizes for different post types,,Media,,normal,normal,Future Release,enhancement,new,close,2010-05-13T07:59:07Z,2013-01-03T16:14:23Z,"Would be nice, especially moving forward with custom post types to have the ability to set different image sizes using an additional parameter of `add_image_size()` for different post types: Page, Post, and Custom.",brandondove
Needs Dev / Bug Wrangler Feedback,23424,WP_Image class for handling images from the media library,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-02-08T15:41:24Z,2013-02-08T15:41:24Z,"Since 3.5 we have the class WP_Image_Editor. This needs a file path to be able to manipulate an image. Currently you would have to use something like wp_get_image_editor( _load_image_to_edit_path( $post_id ) ). What is wrong since you are using a ""private"" function.

Currently I'm working on this idea and you can find the code here https://github.com/markoheijnen/WP_Image/blob/master/wp-image.php. What it does now is getting the filepath, be able to get the image editor, add an image size on the fly and getting/updating the metadata.

We really miss something like a WP_Image class in WordPress. However I'm not sure what kind of functionality is needed for it. I like the current class mainly because it gives you the power to create an image size for a specific media image and stores it in the sizes array. When a user removes the media image then also the custom sizes will be removed.",markoheijnen
Needs Dev / Bug Wrangler Feedback,15311,dynamic image resize (on the fly) using already available functions,,Media,3.1,normal,normal,Future Release,enhancement,new,dev-feedback,2010-11-03T20:18:44Z,2013-05-11T16:00:11Z,"The lack of a dynamic resize function in WordPress forces theme developers to register lots of image sizes for their themes to use.

One of the problems with this approach is that the server becomes full of image files that will be never used.

Another problem is that when someone changes their theme the image sizes simply doesn't match, forcing people to use a plugin to regenerate all image files, and once again lots of those files will never be used.

So theme developers right now are using some sort of image resizing script like timthumb that works outside of wp. I think it has many drawbacks comparing to a native implementation.

So I made a function that uses WordPress native image handling capabilities to resize and save those resized images for future use.

I use this for attached images as well as standalone files such as custom fields and other images.

What I want here is just to share my solution, and maybe we can someday put something like this into core (actually something better then this):

{{{
/*
 * Resize images dynamically using wp built in functions
 * Victor Teixeira
 *
 * php 5.2+
 *
 * Exemple use:
 * 
 * <?php 
 * $thumb = get_post_thumbnail_id(); 
 * $image = vt_resize( $thumb,'' , 140, 110, true );
 * ?>
 * <img src=""<?php echo $image[url]; ?>"" width=""<?php echo $image[width]; ?>"" height=""<?php echo $image[height]; ?>"" />
 *
 * @param int $attach_id
 * @param string $img_url
 * @param int $width
 * @param int $height
 * @param bool $crop
 * @return array
 */
function vt_resize( $attach_id = null, $img_url = null, $width, $height, $crop = false ) {

	// this is an attachment, so we have the ID
	if ( $attach_id ) {
	
		$image_src = wp_get_attachment_image_src( $attach_id, 'full' );
		$file_path = get_attached_file( $attach_id );
	
	// this is not an attachment, let's use the image url
	} else if ( $img_url ) {
		
		$file_path = parse_url( $img_url );
		$file_path = ltrim( $file_path['path'], '/' );
		//$file_path = rtrim( ABSPATH, '/' ).$file_path['path'];
		
		$orig_size = getimagesize( $file_path );
		
		$image_src[0] = $img_url;
		$image_src[1] = $orig_size[0];
		$image_src[2] = $orig_size[1];
	}
	
	$file_info = pathinfo( $file_path );
	$extension = '.'. $file_info['extension'];

	// the image path without the extension
	$no_ext_path = $file_info['dirname'].'/'.$file_info['filename'];

	$cropped_img_path = $no_ext_path.'-'.$width.'x'.$height.$extension;

	// checking if the file size is larger than the target size
	// if it is smaller or the same size, stop right here and return
	if ( $image_src[1] > $width || $image_src[2] > $height ) {

		// the file is larger, check if the resized version already exists (for crop = true but will also work for crop = false if the sizes match)
		if ( file_exists( $cropped_img_path ) ) {

			$cropped_img_url = str_replace( basename( $image_src[0] ), basename( $cropped_img_path ), $image_src[0] );
			
			$vt_image = array (
				'url' => $cropped_img_url,
				'width' => $width,
				'height' => $height
			);
			
			return $vt_image;
		}

		// crop = false
		if ( $crop == false ) {
		
			// calculate the size proportionaly
			$proportional_size = wp_constrain_dimensions( $image_src[1], $image_src[2], $width, $height );
			$resized_img_path = $no_ext_path.'-'.$proportional_size[0].'x'.$proportional_size[1].$extension;			

			// checking if the file already exists
			if ( file_exists( $resized_img_path ) ) {
			
				$resized_img_url = str_replace( basename( $image_src[0] ), basename( $resized_img_path ), $image_src[0] );

				$vt_image = array (
					'url' => $resized_img_url,
					'width' => $new_img_size[0],
					'height' => $new_img_size[1]
				);
				
				return $vt_image;
			}
		}

		// no cached files - let's finally resize it
		$new_img_path = image_resize( $file_path, $width, $height, $crop );
		$new_img_size = getimagesize( $new_img_path );
		$new_img = str_replace( basename( $image_src[0] ), basename( $new_img_path ), $image_src[0] );

		// resized output
		$vt_image = array (
			'url' => $new_img,
			'width' => $new_img_size[0],
			'height' => $new_img_size[1]
		);
		
		return $vt_image;
	}

	// default output - without resizing
	$vt_image = array (
		'url' => $image_src[0],
		'width' => $image_src[1],
		'height' => $image_src[2]
	);
	
	return $vt_image;
}
}}}



",vteixeira
Needs Dev / Bug Wrangler Feedback,23711,file include wrapper for media_sideload_image,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-03-07T15:14:26Z,2013-03-10T06:07:52Z,"Currently, when using `media_sideload_image` outside of wp-admin, you are required to load three extra files, as explained at [http://codex.wordpress.org/Function_Reference/media_sideload_image#Notes the bottom of this codex page].

This function simply calls those three files, but will allow flexibility in future versions if those file dependencies change.",norcross
Needs Dev / Bug Wrangler Feedback,18947,get_intermediate_image_sizes() should also contain width/height/crop values as sub array,,Media,3.2.1,normal,normal,Awaiting Review,enhancement,assigned,dev-feedback,2011-10-14T14:48:05Z,2012-01-06T16:22:03Z,"Currently the function [http://core.trac.wordpress.org/browser/branches/3.2/wp-includes/media.php#L580 get_intermediate_image_sizes()] only displays a combined list of built-in/default & (via {{{add_image_size()}}}) registered image size ''names''. In lot's of cases it would be pretty handy to also have the height, width & crop values attached as sub array as you can see it in {{{$GLOBALS['_wp_additional_image_sizes']}}}.

''I currently do not have a working dev version of wp installed, so I put it here as plain code:''

Change for [http://core.trac.wordpress.org/browser/branches/3.2/wp-includes/media.php#L580 get_intermediate_image_sizes()]:
{{{
function get_intermediate_image_sizes() {
	global $_wp_additional_image_sizes;
	$image_sizes = array('thumbnail', 'medium', 'large'); // Standard sizes
	foreach ( $image_sizes as $size ) {
		$image_sizes[ $size ]['width']	= intval( get_option( ""{$size}_size_w"") );
		$image_sizes[ $size ]['height'] = intval( get_option( ""{$size}_size_h"") );
		// Crop false per default if not set
		$image_sizes[ $size ]['crop']	= get_option( ""{$size}_crop"" ) ? get_option( ""{$size}_crop"" ) : false;
	}
	if ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) )
		$image_sizes = array_merge( $image_sizes, $_wp_additional_image_sizes );

	return apply_filters( 'intermediate_image_sizes', $image_sizes );
}
}}}

The only two other affected lines in core are pretty a simple fix: Use the {{{array_keys()}}} only:

[http://core.trac.wordpress.org/browser/branches/3.2/wp-admin/includes/image.php#L106 wp_generate_attachment_metadata()]
and
[http://core.trac.wordpress.org/browser/branches/3.2/wp-includes/post.php#L3824 wp_delete_attachment()]:
{{{
foreach ( array_keys( get_intermediate_image_sizes() ) as $s ) {
}}}

I'm not really shure how the {{{crop}}} works, so this could maybe add additional DB calls if the option wasn't set - currently I only see {{{thumbnail_crop}}} added to the autoloaded options.

''The links are to the 3.2 branch of the repo.''",F J Kaiser
Needs Dev / Bug Wrangler Feedback,22070,Deleting menus with no title / slow menu saving,,Menus,3.4.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-10-01T12:28:55Z,2012-10-01T12:35:48Z,"Hello there

I saw that when saving nav menus in wp-admin/nav-menus.php WordPress executes the following lines, if a menu item is saved (no matter if newly added or existing) that doesn't have a title:

{{{
if ( empty( $_POST['menu-item-title'][$_key] ) )
  continue;
}}}

I changed this to the following to make it work. Problem is, it needs to be removed from $menu_items, because it's handled like a deleted menu else.

{{{
if ( empty( $_POST['menu-item-title'][$_key] ) ) {
  if (isset($menu_items[$_POST['menu-item-db-id'][$_key]]))
    unset($menu_items[$_POST['menu-item-db-id'][$_key]]);
    continue;
  }
}
}}}

'''Sidenote''':
With that fixed, I was able to solve a major saving bug. Many of our customers have a lot of menu items in out nav_menu (like 100 - 600), which without a timeout would take 10 minutes and more to save.

So I created some hotfix jQuery script that does ""dirty-handling"". Basically it marks everything that's touched (like changed data, adding a menu item or moving things around) as ""dirty"". On submit it doesn't nothing more than change every ""undirty"" menu items title to an empty string so it doesn't get saved. 

I think WordPress core developers could integrate something like this with far less code since I wasn't able to use events - I didn't really had a lot of time to fix this. So if it helps anyone, this is the jQuery code I used to create the fix:

{{{
jQuery(function($) {
  // the currently displayed menu form
  var $form = $('#update-nav-menu');

  // Listen to new menus, since we have no possibility to hook
  // we have to interval it, because we can't capture an event here
  $('.submit-add-to-menu').click(function() {
    var $item_count = $form.find('.menu-item-handle').length;
    var $interval_id = setInterval(function() {
      var $current_item_count = $form.find('.menu-item-handle').length;
      if ($item_count < $current_item_count) {
        clearInterval($interval_id);
        // Add the dirty flag and set it to dirty immediately
        add_dirty_flags(1);
        // Reassign the mousedown/up events
        assign_mouse_events();
      }
    },200);
  });

  // add a hidden field, telling if the menu is dirty (by default, it's not)
  function add_dirty_flags($flag) {
    $form.find('.menu-item-handle').each(function() {
      if ($(this).find('.dirty-handle').length == 0) {
        var $html = '<input type=""hidden"" class=""dirty-handle"" value=""' + $flag + '"" />';
        $(this).append($html);
        console.log('flag added');
      }
    });
  }

  // (re)assigns mouse events to menu items
  function assign_mouse_events() {
    var $menu_items = $('.menu-item-bar');
    // Unbind previously assigned events
    $menu_items.unbind('mouseup').unbind('mousedown');

    // Dirty Flag handler if a click happens
    $menu_items.mousedown(function() {
      $(this).find('.dirty-handle').val('1');
    });

    // if the parent changes on release the mouse handle, change all items with the new parent to dirty
    $menu_items.mouseup(function() {
      menu_save_mouseup($(this));
    });
  }

  // The call back for mouseup on menu bars
  function menu_save_mouseup($this) {
    var $temp_object = $this.parent();
    // Mark everything with the same parent dirty
    setTimeout(function() {
      var $parent_id = $temp_object.find('.menu-item-data-parent-id').val();
      // Go through all fields, dirtying everything that has the same parent
      $('.menu-item-data-parent-id').each(function() {
        if ($(this).val() == $parent_id)
          $(this).parent().prev().find('.dirty-handle').val('1');
      });
    },200);
  }

  // On submit make every undirty menu an empty title, so it won't get saved
  // We're using a hoax in nav-menus.php, line 335 here..
  $form.submit(function() {
    // Now traverse all handles and make only dirties saveable
    $form.find('.menu-item-handle').each(function() {
      // Find the dirty flag
      var $is_dirty = $(this).find('.dirty-handle').val();
      $(this).find('.dirty-handle').remove();
      if ($is_dirty == 0) {
        // The div containing the menu informations
        var $forms = $(this).parent().next();
        // Remove the title value so it doesn't get saved
        $forms.find('.edit-menu-item-title').val('');
      }
    });
    return true;
  });

  // Assign mouse events on first load
  assign_mouse_events();
  // Add all dirty flags (not dirty by default of course)
  add_dirty_flags(0);
});
}}}

Since WordPress now only saves the menu's that changed it doesn't matter how many menu items a customer has, but only how many he want's to save at one time.",msebel
Needs Dev / Bug Wrangler Feedback,19038,"Menu Items aren't deleting on page being trashed, only when deleted",,Menus,3.2.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-10-24T17:38:44Z,2013-05-21T22:25:46Z,The linked menu item for a page isn't removed when the page is trashed. ,jeremyatignition
Needs Dev / Bug Wrangler Feedback,16382,"Menus adds ""current_page_parent"" class to the blog page when viewing a custom post type entry",,Menus,3.0.5,normal,normal,Future Release,defect (bug),new,close,2011-01-26T22:37:36Z,2013-02-15T17:10:13Z,"Here is an example: http://www.flowermag.com/article/love-rocks/

This entry is in the custom post type ""article"", but the navigation item ""blog"" is getting the class ""current_page_parent"" even though an article is not a blog post. 

This is a problem since if you're using ""current_page_parent"" for navigation highlighting, this would render an incorrect display.",tammyhart
Needs Dev / Bug Wrangler Feedback,20289,wp_nav_menu container is not set when menu isn't defined,,Menus,3.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-03-23T10:27:03Z,2012-03-23T13:19:41Z,"When you use wp_nav_menu in your theme, but the actual menu isn't set via the backend menu interface, the container provided in the args is ignored and falls back to 'div'.

Attached diff always uses container provided in args, if 'div' or 'nav' is provided. If no container arg is provided, falls back to using 'div'.

{{{
wp_nav_menu(
	array(
		'theme_location' => 'main_menu',
		'container'      => 'nav',
		'menu_class'     => 'main-menu-navigation',
	)
);
}}}

To test this: Use this function in your theme, without assigning a menu to this theme_location.",dannydehaan
Needs Dev / Bug Wrangler Feedback,23908,wp_nav_menu generates wrong classes for li elements,,Menus,3.5.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2013-03-30T13:42:46Z,2013-03-30T13:42:46Z,"Function '''wp_nav_menu''' generates 2 different classes for '''<li>''' with exactly the same meaning: e.g. '''current-page-parent''' and '''current_page_parent'''. It sometimes generates one of them, but sometimes both. 

Also this coresponds to '''current-page-ancestor''' and '''current_page_ancestor''' classes. 

I think there should be one of them, but to preserve compatibility with older websites, it is better to leave both but generate both at the same time, so that user could use either ""'''-'''"" or ""'''_'''"" as separators.",anyname2
Needs Dev / Bug Wrangler Feedback,13694,Add $args parameter to wp_create_nav_menu(),,Menus,3.0,normal,normal,Future Release,enhancement,new,dev-feedback,2010-06-02T06:55:23Z,2010-06-03T00:22:35Z,"The attached patch adds an $args parameter to wp_create_nav_menu() which simply gets passed to wp_insert_term().  This would not be used during the standard case but is important for use when a plugin uses the menu system as a building block for enhanced functionality and needs to either set a specific slug or a specific parent.

I don't need for much (any) testing so I hoping this can make it in 3.0 so I can get rid of the ugly hack in the ""Microsite Editor"" plugin I'm working on.  Thanks. :-)",mikeschinkel
Needs Dev / Bug Wrangler Feedback,21070,Added a filter to the sub-menu class attribute,,Menus,3.4,normal,normal,Awaiting Review,enhancement,reopened,dev-feedback,2012-06-25T12:47:34Z,2012-06-25T20:50:30Z,"The sub-menus are hard coded with ""sub-menu"" as the only CSS class. This may cause bad performing CSS with maintainability issues, like when you're targeting the third level sub menu.

I've added a filter, so CSS classes like ""sub-menu-level-$depth"" can be added.",bjornjohansen
Needs Dev / Bug Wrangler Feedback,14325,"No possibillity to add a ""Home""-link to the nav_menu when there are no Pages",,Menus,3.0,normal,normal,Future Release,enhancement,new,dev-feedback,2010-07-15T22:36:13Z,2012-03-07T20:10:38Z,"If you want to add a ""Home"" link to the new nav_menu in Wordpress 3.0 you can't do so, if there is no Page created yet. If there is no Page, there is also no ""View All""-Button in the Pages-Section to view the ""Home""-Link.

In my opinion the ""Home-Link"" in the Pages-Section is very hidden anyway.",lundj
Needs Dev / Bug Wrangler Feedback,13335,The menu's + tab should be to the right of the menu navigator,,Menus,3.0,low,minor,Future Release,enhancement,new,dev-feedback,2010-05-11T09:43:53Z,2010-11-15T20:25:27Z,"If you create enough menus to occupy the full width of the screen and beyond, you end up with navigator tools that allow to scroll left/right in order to navigate the menus you've created.

The last menu item is the + tab is the last available item. Would it not make more sense for it to always be visible?",Denis-de-Bernardy
Needs Dev / Bug Wrangler Feedback,15646,Theme menu locations don't appear until a menu is created,,Menus,3.0,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2010-12-02T12:33:47Z,2013-03-07T19:17:49Z,"Nacin told me this was by design, but he said to create a ticket after I asked him this: How can a user know what menu to create or whether to create a menu if they don't know the locations that the theme supports?

Related: http://wordpress.org/support/topic/register_nav_menu?replies=29",JohnONolan
Needs Dev / Bug Wrangler Feedback,16301,set limits to nesting of menus,,Menus,,normal,normal,Future Release,enhancement,new,dev-feedback,2011-01-19T16:21:10Z,2011-01-20T20:12:38Z,"It would be great to be able to limit/control the nesting depth of menus. I'm using menus to let my editors control where posts show up in various spots in our theme, and don't want them to accidentally nest a link deeper than it should be.",alxndr
Needs Dev / Bug Wrangler Feedback,13910,Get Menu name with wp_nav_menu(),,Menus,3.0,normal,normal,Future Release,feature request,new,dev-feedback,2010-06-15T19:17:20Z,2012-04-18T17:11:08Z,"There is no way to get the actual ""Menu name"" in wp_nav_menu()

For example if you want to create a left sidebar menu you want a header to go with it. In previous versions you could do use wp_list_pages() with ""title_li"".

With wp_nav_menu() you have to hard code <h3>Static menu name</h3> into the template before calling the function.

If you could get the ""Menu name"" as defined in backend interface from the wp_nav_menu() it would create the menu title automatically.
",jowo
Needs Dev / Bug Wrangler Feedback,19686,404 - File or directory not found,,Multisite,3.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-12-29T19:47:45Z,2012-01-03T21:38:51Z,"We are running Wordpress using multiuser with Buddypress. Users are getting the 404 error after they click the save button in their settings.

I'm opening this ticket to report the source of the problem.

Wordpress 3.x
Buddypress 1.5
Windows 2008 R2 (IIS 7.5)

Themes installed are all Buddypress compatible and all themes seem to be affected. 
All option pages are affected.
Settings are updated when the user returns to the page - despite the error. A screen shot of the error can be seen at http://blogs.cnc.bc.ca/gagel/?attachment_id=38

The source of the problem appears to be in the wp_get_referer() function on line 164 in options.php. With the variables passed to the function it should redirect the user to the page they just submitted when they updated options. Instead they get the 404 error.

The page they're redirected to appears to be the absolute path of the submitted page appended to the absolute path again (minus the domain). So it looks like this:
userblog/wp-admin/userblog/wp-admin/options-general.php?settings-updated=true

When I switch out the wp_get_referrer() function with the variable $parent_page then the redirect worked as expected.

I'm uncertain about leaving it like this as my change may have introduced issues elsewhere...

This issue is discussed at http://wordpress.org/support/topic/recuring-404-file-or-directory-not-found-error?replies=8#post-2527566",kwgagel
Needs Dev / Bug Wrangler Feedback,14539,Cache-Control / Expires headers not applied to files in Multisite files location,,Multisite,3.0.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2010-08-05T04:21:33Z,2012-09-19T16:02:17Z,"First reported in Multisite forum and detailed there:

[http://wordpress.org/support/topic/cache-control-headers-and-uploaded-files-not?replies=5]

These file type accesses should return 304s according to the rules in .htaccess but consistently return 200, showing an incorrect Cache-Control header specification, instead of no specification at all--which is still undesired.

This occurs in two 3.0.1 Multisite installs on all blogs, domain mapped or not, but does not occur on any other domains on the server or in any other file locations in the WP tree (themes, etc.).

Initially, it was image files that I had identified this on but a subsequent check of a CSS file in the files/ location returned the same header that is set for (.php|.pl|.cgi) files; same as the image files do.

Apache 2.2.15, PHP 5.2.13, FreeBSD 7.2-STABLE, MySQL 5.0.90
",spherical
Needs Dev / Bug Wrangler Feedback,18242,Changing domain for a network blog make faulty changes in database,,Multisite,3.0,normal,major,Future Release,defect (bug),new,dev-feedback,2011-07-25T11:33:51Z,2012-11-20T11:49:53Z,"When changing the domain for a network blog, if the network is set up on a subdomain and using sub-folder options for blogs, the save to the database is faulty, saving wrong urls.

The network main site uses eg http://my.blog.com and the blogs has http://my.blog.com/blog1

When changing the domain for blog1 in ""Network admin -> All Sites -> Edit blog1"" and choose to also update ""home and siteurl"" the new url for home and site become http://blog.com/blog1/my

Happens in both Firefox 5 and Safari 5.1",darkwhispering
Needs Dev / Bug Wrangler Feedback,14873,HTTPS related issue with ms-settings.php,,Multisite,2.9,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-09-14T18:23:26Z,2012-09-13T23:13:22Z,"ms-settings.php hard-codes ""http://"" in a few places.  This didn't impact me, but I can see that it might impact someone.  

Hopefully, a developer can take a look at the code and verify that, in fact, it has to change.  Seems like it does since hard-coding ""http:"" isn't a good practice, but I don't want to claim it since I haven't seen the need for it personally.

Here's the updated code that needs to replace the code in ms-settings.php starting at line 83 and ending at line 105:
{{{
        $protocol = is_ssl() ? 'https://' : 'http://';

        if ( ! defined( 'WP_INSTALLING' ) && is_subdomain_install() && ! is_object( $current_blog ) ) {
                if ( defined( 'NOBLOGREDIRECT' ) ) {
                        $destination = NOBLOGREDIRECT;
                        if ( '%siteurl%' == $destination )
                                $destination = $protocol . $current_site->domain . $current_site->path;
                } else {
                        $destination = $protocol . $current_site->domain . $current_site->path . 'wp-signup.php?new=' . str_replace( '.' . $current_site->domain, '', $domain );
                }
                header( 'Location: ' . $destination );
                die();
        }

        if ( ! defined( 'WP_INSTALLING' ) ) {
                if ( $current_site && ! $current_blog ) {
                        if ( $current_site->domain != $_SERVER[ 'HTTP_HOST' ] ) {
                                header( 'Location: ' . $protocol . $current_site->domain . $current_site->path );
                                exit;
                        }
                        $current_blog = get_blog_details( array( 'domain' => $current_site->domain, 'path' => $current_site->path ), false );
                }
                if ( ! $current_blog || ! $current_site )
                        ms_not_installed();
        }
}}} ",mareck
Needs Dev / Bug Wrangler Feedback,15936,IPv6 literal support in multisite broken,,Multisite,3.0.3,normal,major,Future Release,defect (bug),new,dev-feedback,2010-12-21T16:00:25Z,2013-02-02T06:32:22Z,"The logic for handling explicit port numbers in wp-includes/ms-settings.php is confused by IPv6 literal addresses in URLs as defined by RFC 2732.
It tries to handle the URL as it as if there were a port appended, but then fails to strip it off. Incidentally the error message here: 'Multisite only works without the port number in the URL.' is untrue, since ports are handled (but for only two particular cases, port 80 and 443).

The attached patch, against Wordpress 3.0.3, fixes both these issues, and allows ports other than 80 and 443 to be used with Wordpress, by just stripping off the trailing port rather than special-casing the two well-known ports, and not incorrectly detecting IPv6 literals as URLs with ports in. It also has the advantage of being much more compact.

It may be worth someone thinking through whether the substitution is strictly correct with reference to the URL standards, but I'm pretty sure that this is an improvement on the current code.

Thanks,
Dominic.",jmdh
Needs Dev / Bug Wrangler Feedback,16293,"In multisite installs, users with id 1 or 2 can't be deleted",,Multisite,3.1,normal,normal,Future Release,defect (bug),reopened,dev-feedback,2011-01-19T00:21:34Z,2013-04-25T15:15:19Z,"You can't delete a user with user id of 1 or 2. 
See: source:trunk/wp-admin/network/edit.php@17326#L359",PeteMall
Needs Dev / Bug Wrangler Feedback,16609,"Misleading ""Error establishing a database connection""",,Multisite,3.0.5,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2011-02-21T17:31:10Z,2011-02-21T17:31:10Z,"Multisite install shows:

""Error establishing a database connection""

Even if credentials are OK when it doesn't find the domain entry in wp_blogs table, this is very misleading, would be helpful to have the same meaningful error message that /wp-admin shows.

I posted this problem originally at http://wordpress.org/support/topic/misleading-error-establishing-a-database-connection",roberto.carvajal
Needs Dev / Bug Wrangler Feedback,20104,Show network-activated plugins on site plugins screen,,Multisite,,normal,normal,Future Release,defect (bug),new,dev-feedback,2012-02-22T22:05:35Z,2012-08-18T22:07:03Z,"Per http://wpdevel.wordpress.com/2011/12/23/core-team-meetup-recap-multisite/, one action item is:

> Include network activated plugins in the plugins menu and give message that it is automatically on for the whole network (if admin/have rights to see plugins screen).

To enable the plugins screen for a network, a super admin can go to network/settings.php and enable the menu.

Network-activated plugins should still show on this screen to site administrators. (They just can't activate them.) This should require a few tweaks to the plugins list table.",nacin
Needs Dev / Bug Wrangler Feedback,23865,Trailing slash is not enforced when editing the path for a subdirectory site in multisite,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,needs-unit-tests,2013-03-26T19:53:23Z,2013-04-01T09:38:28Z,"It is possible to edit an existing subdirectory site so that the path does not end in a trailing slash, this causes the subdirectory site in question to have an inaccessible home URL.

To reproduce:

 * Create a multisite network in subdirectory mode
 * Create a new subdirectory site
 * Visit the subdirectory site successfully
 * Edit the site to change the path so there is no trailing slash
 * You should be unable to visit the subdirectory site now",simonwheatley
Needs Dev / Bug Wrangler Feedback,18117,get_blog_details is sensitive to path's trailing slash,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2011-07-14T20:20:39Z,2011-11-16T01:32:02Z,"STR:
1. Create a site, then edit it so that the domain is the main domain and the path is /sub. Note that the admin doesn't turn this into /sub/, nor give an error.
2. Go to /sub/wp-admin. You'll notice it doesn't redirect, but it just gives you the main site's wp-admin. Going to /sub also just gets interpreted as a URL for the main site.

Potential solutions:
1. Make the admin automatically turn the path of /sub into /sub/.
2. Make get_blog_details match modulo trailing slash.
3. (Document carefully in Codex and hope people read it.)",mitchoyoshitaka
Needs Dev / Bug Wrangler Feedback,21352,wp_lostpassword_url() on multisite,,Multisite,3.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-07-23T15:58:23Z,2013-04-24T18:59:15Z,"The wp_lostpassword_url() function on Multisite outputs the link to the primary domain not the current domain.

Although it works its not what should be expected if a user is registered to use blog ID 2 but not Blog ID 1.

The lost password email generated also links back to the primary domain not the current domain.
",philly max
Needs Dev / Bug Wrangler Feedback,20107,Add Filter for user_name length in ms user signup,,Multisite,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-02-23T17:46:45Z,2012-02-23T22:44:26Z,"It is difficult for us to explain our clients why they cannot have usernames with 3 chars and left. For that issue I'd like to recommend a filter for that, so we can change this with a plugin.",hughwillfayle
Needs Dev / Bug Wrangler Feedback,22917,Allow Live Updating of User & Site number in Multisite network dashboard 'Right Now' meta box,,Multisite,3.5,normal,normal,Future Release,enhancement,new,dev-feedback,2012-12-13T14:54:48Z,2013-05-14T12:40:17Z,"Wordpress installation don’t show the correct number of users and sites correctly registered in the site.

Please see images for reference:

- https://dl.dropbox.com/u/7531173/mu/Only1Site1User.png
- https://dl.dropbox.com/u/7531173/mu/UsersNumber.png
- https://dl.dropbox.com/u/7531173/mu/UsersSites%20.png",vmaia
Needs Dev / Bug Wrangler Feedback,20176,Allowing the Developer Filter the Regex on wpmu_validate_user_signup(),,Multisite,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-03-04T23:03:53Z,2012-09-28T04:16:15Z,"So I've been having a problem with the way WordPress Multisite handles the restriction for new users. 

Looking at the file ''ms-functions.php'', I saw no Filter to the regular expression applied on the user_name to do it's validation. 

I've changed like this, so by default you will be restricted to the ''[a-z0-9]'' pattern, but if needed the developer should have the power to filter that. 

This might need a patch for the domains.",webord
Needs Dev / Bug Wrangler Feedback,20651,"Inconsistent MS API: delete_site_option action hook is only called AFTER deletion, unlike delete_option",,Multisite,3.3.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-05-10T09:54:37Z,2012-05-11T16:30:39Z,"Unlike the delete_option action hook, the delete_site_option action hook is only called AFTER deletion of the row from the sitemeta table - making it difficult to capture the expiring value (for instance), unless you know its precise option key name ( and hook it using pre_delete_site_option_{$option} ).

Suggest introducing a pre-deletion, non-specific action hook call named ""pre_delete_option"" for options and ""pre_delete_site_option"" for site options, for consistency.",danielnashnz
Needs Dev / Bug Wrangler Feedback,21156,Move utility functions out of wp-admin/network.php,,Multisite,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-07-04T17:15:03Z,2012-07-04T17:15:03Z,"There are several functions in wp-admin/network.php that would come in handy outside the WP Admin -> Network Setup screen:

* network_domain_check() 
* allow_subdirectory_install()
* get_clean_basedomain()

etc.

They could be moved to wp-admin/includes/ms.php",scribu
Needs Dev / Bug Wrangler Feedback,20152,Multisite simplify option name to user_roles,,Multisite,3.3.1,normal,normal,Future Release,enhancement,new,dev-feedback,2012-03-01T21:44:28Z,2013-03-07T07:02:02Z,"Currently each blog in a MS install of WP stores an array of user roles in it's [prefix]_[$blog_id]_options table as an entry with the key [prefix]_[$blog_id]_user_roles

This makes it much harder to migrate MS install of WP to a different db prefix, etc. because not only do you need to change the table prefixes you need to go into each blog's options table and then properly update that option's key.

Because the table itself is sufficiently unique there isn't a need for this. The user roles array could be stored in an option called ""user_roles"" for each blog.",colind
Needs Dev / Bug Wrangler Feedback,21584,Allow to create more networks,,Multisite,3.4.1,normal,normal,Awaiting Review,feature request,new,dev-feedback,2012-08-15T00:34:24Z,2013-01-17T23:38:47Z,"After creating a multisite installation allow users to create their own network of blogs.

",alexvorn2
Needs Dev / Bug Wrangler Feedback,11884,mod_rewrite optimization,,Optimization,3.0,normal,normal,Awaiting Review,enhancement,reopened,close,2010-01-13T11:56:10Z,2011-03-21T11:34:41Z,"Slightly edited version of the one suggested in:

http://wordpress.org/extend/ideas/topic.php?id=3524

{{{
# BEGIN WordPress
RewriteEngine on
RewriteBase /

RewriteRule \.(gif|jpe?g|png|css|js|ico)$ - [NC,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule . /index.php [L]

# END wordpress
}}}

",Denis-de-Bernardy
Needs Dev / Bug Wrangler Feedback,16894,Bulk load Comment Meta upon access,,Performance,3.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2011-03-19T11:19:27Z,2011-03-19T12:12:05Z,"When we query posts, we bulk load all of the posts meta and taxonomies at the time of request. Since adding comment meta, we load the comment meta on-the-fly since nothing really currently uses it in core.

I've added a filter to ''get_comment_text'' which modifies the comment content based on the value of a meta key.

The problem arises when multiple comments are displayed on a page, The metadata for every comment is loaded individually:

{{{
SELECT comment_id, meta_key, meta_value FROM wp_commentmeta WHERE comment_id IN (4)
SELECT comment_id, meta_key, meta_value FROM wp_commentmeta WHERE comment_id IN (5)
SELECT comment_id, meta_key, meta_value FROM wp_commentmeta WHERE comment_id IN (6)
SELECT comment_id, meta_key, meta_value FROM wp_commentmeta WHERE comment_id IN (7)
SELECT comment_id, meta_key, meta_value FROM wp_commentmeta WHERE comment_id IN (34)
SELECT comment_id, meta_key, meta_value FROM wp_commentmeta WHERE comment_id IN (35)
SELECT comment_id, meta_key, meta_value FROM wp_commentmeta WHERE comment_id IN (37)
}}}

in all cases, the function stack is:
{{{
comments_template, wp_list_comments, Walker->paged_walk, Walker_Comment->display_element, Walker->display_element, call_user_func_array, Walker_Comment->start_el, call_user_func, twentyten_comment, comment_text, get_comment_text, apply_filters, call_user_func_array, MY_FUNCTION_HOOKED_TO_GET_COMMENT_TEXT, get_comment_meta, get_metadata, update_meta_cache #12 (0.7ms)
}}}

It isn't ideal that every comment causes an extra query, instead, we should bulk load comment meta for the comments being displayed. 

However, Since comment meta is not always used, in order to keep the load down, I'd suggest that we only bulk load the comment meta '''on the first request for comment meta''', this should allow current users to have no detrimental affect on query count/performance, whilst allowing those who use comment meta to manage each comment better performance.",dd32
Needs Dev / Bug Wrangler Feedback,22301,Performance problem with Recent Comments widget,,Performance,2.8,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-10-29T06:07:14Z,2013-01-15T23:18:08Z,"When a comment is posted (or the status of a comment changes), the `widget_recent_comments`cache item is invalidated, which the Recent Comments widget uses to populate the widget content. On the next widget display, it will call `get_comments()` to repopulate the cache.

The problem occurs when you have a very large number of comments, the MySQL query will use the `(comment_approved, comment_date_gmt)` index, but if MySQL has to scan too many rows in an index, it'll switch to table scan instead. As the `comment_approved` column is mostly the same value, this will almost always happen. This is compounded by the query occurring on every page load until the cache is re-populated - if the query takes 60 seconds to run, there could potentially be hundreds of instances of the same query running.

So, we need a solution that either hides or eliminates how slow this query can be, and only runs it (at most) once per new comment.

After discussing this with @matt, we have a couple of ideas:

1. Move this query to a `wp_schedule_single_event()` call, which has the bonus of ensuring only one is scheduled at any given time. The downside is that it may cause the cache to be outdated on a low traffic site.

2. Keep a queue of recent comments in cache, and push a new one onto the queue when posted. This avoids the query entirely, but there would be a race condition if two comments were posted at nearly the same time - one of them could be left out of the queue entirely.",pento
Needs Dev / Bug Wrangler Feedback,14397,slow sql query from probably is_blog_installed,,Performance,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-07-23T06:38:11Z,2010-11-23T00:10:38Z,"When everything else fails, is_blog_installed uses 
$tables = $wpdb->get_col('SHOW TABLES');
which can be costly in a big multisite or even when you have many single installations on the same DB

Related question - why does is_blog_installed is even being called on wp_widgets_init()? I would assume that if the DB is not set properly not only the widgets will suffer but also the themes and the plugins which are not protected at the same way.",mark-k
Needs Dev / Bug Wrangler Feedback,20558,allow wp_localize_script data to be added to existing objects,,Performance,3.3,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-04-27T16:44:03Z,2012-04-30T05:50:36Z,"Re: WP_Scripts::localize() located in wp-includes/class.wp-scripts.php

Currently when `WP_Scripts::localize()` handles the printing of wp_localize_script data to JavaScript, it starts the string with a `var` declaration, like this:

{{{
$script = ""var $object_name = "" . json_encode($l10n) . ';';
}}}


Because this is printed in the global scope, it becomes a global variable regardless of whether it's preceded by `var`. As far as JavaScript is concerned the above string would be equivalent to:

{{{
$script = $object_name . ' = ' . json_encode($l10n) . ';';
}}}

or

{{{
$script = 'this.' . $object_name . ' = ' . json_encode($l10n) . 
';';
}}}

or

{{{
$script = 'window.' . $object_name . ' = ' . json_encode($l10n) . 
';';
}}}


But I suppose it's possible thru hooks to make it so that the localization data prints outside of the global scope, in which case you might want the `var` to be there (if it we're wrapped in a closure). So I think the '''overall best solution''' would to check if the `$object_name` contains a period `.` character. If it does, omit the `var`. In other words, make it so that:

{{{
wp_localize_script('myplugin', 'myPluginData', $object )
}}}

would print:

{{{
var myPluginData = {...};
}}}

but that:

{{{
`wp_localize_script('myplugin', 'myPlugin.data', $object )`
}}}

would print:

{{{
myPlugin.data = {...};
}}}

By default the localization data runs before any enqueued scripts, in which case `myPlugin` would not yet be defined, but we should leave that for the JavaScript dev work out. My point is that the flexiblity should be there. Another route would be to apply a filter on that line but I don't think a filter is necessary if the above change is made.",ryanve
Needs Dev / Bug Wrangler Feedback,22338,Add filter for the output from `get_sample_permalink`,,Permalinks,3.4.2,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-10-31T22:32:41Z,2013-04-11T12:59:34Z,"When getting the sample permalink the `post_name` is not always set in the Post object at this point. The `get_sample_permalink` gets around this by hacking the `post_name` into the Post object for the duration of the function, however it is not possible to get this ""hacked in"" information from the `post_type_link` filter. I suggest that a filter should be added to the `$permalink` array (which contains the link and the post name string) and various additional parameters, including the hacked Post object.

The alternative would be to try to detect situations where the data needs to be hacked in, e.g. watching for particular `action` GET params in an AJAX context, but this seems like a hack too far.",simonwheatley
Needs Dev / Bug Wrangler Feedback,14036,"Post 404 errors due to a base post's name matching the Permalink option ""category base""",,Permalinks,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-06-22T02:12:58Z,2011-01-21T09:09:24Z,"When the ""category base"" option under Settings>Permalinks is set as a value, one can still create a post with the same value used as the new post's name and thus its permalink path. Thus, when a user tries to navigate to the post via its permalink, Wordpress thinks the user wants to access a category and gives a 404 error.

Here's an example.

Say I set my category base in Settings>Permalinks to ""general."" All my categories are at mysite.com/general/... Now say I make a regular post and name it ""General."" Wordpress automatically assigns it the permalink ""mysite.com/general"". So, on my menus that list this post, this will be the link. However, when a user visits this link, Wordpress is set to recognize /general/ as the category base and it gives the user a 404 error. All subposts under ""General"" also have a permalink that begins with mysite.com/general/ and thus are seen as categories by apache mod_rewrite and become 404 as well.

Solution: users should not be able to have base pages whose names (and thus permalinks) are exact matches to the Settings>Permalinks>Category base value.",sniper231
Needs Dev / Bug Wrangler Feedback,6778,Detect when the config will cause infinite loop,,Permalinks,2.5,normal,normal,Future Release,enhancement,reopened,dev-feedback,2008-04-19T13:46:14Z,2010-01-15T13:20:35Z,"Behavior:

If you put in http://www.domain.com in the ""Wordpress Address"" setting, then Wordpress will automatically do a redirect from http://domain.com to http://www.domain.com.  Many hosting packages allow the user to deal with www and non-www versions of their domain.  This will cause an infinite redirect loop if, for example, the ""Wordpress Address"" is set to http://www.domain.com and the hosting setting is set remove the www from the domain address-- to redirect http://www.domain.com to http://domain.com.

Expected behavior:

When setting the ""Wordpress Address"" setting, it should detect if the canocical code will cause an infinite redirect loop and warn/correct the mistake",Analogpoint
Needs Dev / Bug Wrangler Feedback,9825,"Enforce permalink history, outright",,Permalinks,2.8,normal,normal,Future Release,enhancement,assigned,dev-feedback,2009-05-15T01:06:37Z,2011-02-16T12:02:57Z,"currently, we enforce old slugs and www pref (not even sure that works, since I ended up fixing it in a plugin). canonical doesn't work for pages, or hardly.

we should enforce permalink history, outright. store it in a a db field, and query against it to optimize url2post().",Denis-de-Bernardy
Needs Dev / Bug Wrangler Feedback,23060,Throw 404 if URL Rewriting is Used With Default Permalinks,,Permalinks,3.5,normal,normal,Awaiting Review,enhancement,reopened,dev-feedback,2012-12-26T20:54:55Z,2012-12-26T21:34:04Z,"Suddenly I discovered that my blog is not returning error 404 page. My blog permalink is set as default style http://test.onetarek.com/?p=123 
Now I am trying to create 404 error by using this url http://test.onetarek.com/adsfjkasjdd , it showing home page. Then I tested http://test.onetarek.com/?p=123654 now it shows 404 page. 
Then I tried to load a not existing image http://test.onetarek.com/wp-content/themes/twentyeleven/images/headers/not-image.jpg it shows my home page instead of 404 page. 
I changed my permalink settings to ""Day and name"" then it show 404 page.

I tested this problem in my another blog, this blog is return 404 page but that is not generated by wordpress. Wordpress 404 theme page is not being loaded. A blank page is being loaded with a message by Apache Server ""Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request....""
 
So what is the problem with permalink settings and 404 page.",onetarek
Needs Dev / Bug Wrangler Feedback,10414,Some trackbacks timeout due to short timeout period,,Pings/Trackbacks,2.8.1,normal,normal,Future Release,defect (bug),new,dev-feedback,2009-07-15T07:47:35Z,2009-11-23T21:43:36Z,"A trackback by WordPress to an external blog can timeout without any network congestion. WordPress 2.8.1 timeouts if it has not received any response from the receiving system for 4 seconds although some blog system can take more than 10 seconds to accept a trackback. If the trackback fails, WordPress keeps trying to resend the trackback every time the user posts a new entry, but it never succeeds and WordPress keeps resending for ever.  It annoys the blog owner whose blog the WordPress is trying to send the trackback to.

I propose that function trackback in wp-includes/comment.php should be modified for the timeout period to be extended from 4 seconds (e.g. to 30 seconds).

This modification is different from one appeared in ticket #8665.",gnaka08
Needs Dev / Bug Wrangler Feedback,16055,Only fire 'Site Wide Only' plugin header deprecated notice if the plugin is activated,,Plugins,3.0,normal,normal,Future Release,defect (bug),new,dev-feedback,2010-12-31T23:13:56Z,2013-05-23T00:04:45Z,Apparently it can be fired on a deactivated plugin. That's annoying and confusing.,nacin
Needs Dev / Bug Wrangler Feedback,19654,Allow overload of is_ssl() via a filter,,Plugins,3.3,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2011-12-23T16:44:07Z,2012-04-18T20:50:54Z,"Hi !

Would it be possible to add the is_ssl() function to the list of functions that can be overloaded via a plug-in?

The reason for this is that in some cases where SSL Offloading is used (SSL managed by an external device to the web server, say an F5 or STunnel), the {{{$_SERVER['HTTPS']}}} will be false because the web server is only listening on plain HTTP. 

If we could overload this function via a plug-in, we could check other common HTTP Headers used by some devices when doing SSL Offloading, HTTP_X_FORWARDED_PROTO, HTTP_FRONT_END_HTTPS or even a custom one the sysadmin chooses to inject to the request to let the web server know if the connection is secure or not.
",superkus
Needs Dev / Bug Wrangler Feedback,16953,Allow symlinked plugins,,Plugins,,normal,normal,Future Release,enhancement,assigned,dev-feedback,2011-03-23T20:46:27Z,2013-05-23T18:55:39Z,"There are many scenarios where one would like to have a plugin's folder symlinked to another location.

A couple of these scenarios are described in #13550.

However, when using symlinks, code such as this fails:

{{{plugins_url( 'script.js', __FILE__ );}}}

This happens because {{{__FILE__}}} resolves to the real path, which confuses plugin_basename().

The most simple and most flexible solution is to add a filter to plugin_basename(), leaving individual devs to handle symlinked paths, depending on their environment.",scribu
Needs Dev / Bug Wrangler Feedback,22442,"Allow target=""_blank"" to plugins description from File Header",,Plugins,3.4.2,normal,minor,Awaiting Review,enhancement,new,close,2012-11-14T11:36:42Z,2012-11-15T10:02:30Z,"It is noticed that target=""_blank"" does not work in the plugins description on the Installed Plugins page. If a user clicks on a link then it opens in the same tab.

Attached is the patch which allows to add the target attribute to the a element in plugins description",themedios
Needs Dev / Bug Wrangler Feedback,20578,Allow users to delete a plugin without uninstalling,,Plugins,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-05-01T01:18:35Z,2012-06-15T21:30:27Z,"Sometimes, a user may need to delete plugin files without deleting all the plugin data.",scribu
Needs Dev / Bug Wrangler Feedback,12718,Better structure for admin menu,,Plugins,,normal,normal,Future Release,enhancement,reopened,dev-feedback,2010-03-26T01:05:37Z,2013-05-13T16:17:03Z,"Currently, the global $menu variable is one big linear array:

{{{
$menu = array(
    [2] => array('Dashboard', ...
    [4] => array('', 'read', 'separator1', ...),
    [5] => array('Posts', ...)
    ...
)
}}}

To allow plugins to add a menu item at the end of a group, we use a bunch of additional global variables that remember the last element in each group. 

Also, we use arbitrary numeric indexes to specify the order of the items, instead of being able to position items relative to one another.

It's all very low level. Things would be a lot easier if we had an actual API for manipulating the menu items.",scribu
Needs Dev / Bug Wrangler Feedback,15249,Filtering get_search_sql for advanced queries,,Plugins,3.1,normal,normal,Future Release,enhancement,assigned,dev-feedback,2010-10-29T07:00:35Z,2012-09-13T18:06:56Z,"Currently in the code for 3.1 (trunk) there are no filters running on the new function get_search_sql which would be useful for plugins to perform more complex MySQL functionality on specific columns.

I suggest adding a filter ;)",sc0ttkclark
Needs Dev / Bug Wrangler Feedback,15250,Filtering get_tax_sql for advanced queries,,Plugins,3.1,normal,normal,Future Release,enhancement,assigned,dev-feedback,2010-10-29T07:00:40Z,2012-09-13T18:13:54Z,"Currently in the code for 3.1 (trunk) there are no filters running on the new function get_tax_sql which would be useful for plugins to perform more complex MySQL functionality on specific columns.

I suggest adding a filter ;)",sc0ttkclark
Needs Dev / Bug Wrangler Feedback,18586,PHP errors in plugin-editor.php do not &scrollto,,Plugins,3.2.1,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2011-09-04T17:22:07Z,2013-02-01T11:33:36Z,"When invoking a parse error in the plugin editor, one is not scrolled back using the ''scrollto''-parameter. Although trying to parse the error and find the line it is caused at could be overkill, one should at least be scrolled back to the line one last was working on -- this is the most likely place at which the error was caused.",Doggie52
Needs Dev / Bug Wrangler Feedback,22316,Plugin Dependencies (Yet Another Plugin Dependencies Ticket),,Plugins,3.4.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-10-30T16:30:46Z,2013-05-13T16:19:17Z,"''Previously: #10190 #11308 #13296 and I'm sure many more''

It's been a few years since we looked at plugin dependencies and this still seems to be a feature people really, really want, especially for shared functionality that isn't a plugin in itself. For example a PHP library that isn't popular enough to be in core but is popular enough to be bundled in multiple plugins.

A bunch of us sat down and talked about this at this year's WordPress Community Summit and there was a lot of enthusiasm for this type of functionality.

We didn't know about the existing tickets at the time but the general summary of what we came up with was this:

* Plugins list WP.org slugs of their dependencies in their `readme.txt`, or perhaps better their plugin's header.

* When you go to install a plugin via the plugin directory UI in the admin area, the WP.org API returns a list of dependencies along with the data about the plugin being installed. WP would say like ""these following dependencies will also be installed"". This means it's seamless to the user -- they install a plugin and the other plugin(s) that are needed get installed too.

* No versioning support. It's too complicated and what if one plugin wants an older version of a dependency than another plugin does? If your plugin is listing another as a dependency, then it's your job to make sure it stays compatible with the latest version of the dependency. On the flip side, hopefully plugins that get listed as dependencies are made to be forwards and backwards compatible.

* Probably not allowing the disabling of plugins that are dependencies while their dependents are active. This seems better than disabling the dependents when the dependency is disabled (""why did Foo get disabled? I only disabled Bar!"").

* On plugin re-activation or on activation of a plugin uploaded via FTP, make sure it's dependencies are already installed. If not, offer to install them. If installed but disabled, just enable them for the user.


So while the previous tickets were closed as `wontfix` in the past, I think this is worth taking another look at. A lot of planning and thought will be required though to get this right.",Viper007Bond
Needs Dev / Bug Wrangler Feedback,23318,Plugins Admin Showing Details for Wrong Plugin,,Plugins,,normal,normal,WordPress.org,enhancement,new,dev-feedback,2013-01-29T22:41:54Z,2013-04-05T02:00:19Z,"I just set up a new site with some plugins, none of them activated yet.  The plugins screen says:

""There is a new version of Google XML Sitemaps available. View version 4.1 details or update now.""

I know for a fact there is no such version of this plugin.  When I click details link, it tells me to install some other plugin called page-list?!",miqrogroove
Needs Dev / Bug Wrangler Feedback,14096,More protection against fatal errors from plugins,,Plugins,,normal,major,Future Release,feature request,new,dev-feedback,2010-06-26T05:36:27Z,2010-10-28T05:26:52Z,"Willing to split this into more tickets if these ideas gain traction.

'''More realistic sandboxing.''' It would be interesting to perhaps kill most of the WP environment while trying to sandbox a plugin on activation, to catch more fatal errors. For example, unset $wp_rewrite, which would prevent add_rewrite_tag() issues (on activation) for plugins incorrectly trying to register rewriting for taxonomies or post types. Of course, most of these plugins are already running on a blog when the auto-upgrade happens. Hence the second item:

'''Check plugins before an auto-upgrade.''' We can do plugin update checks to verify their compatibility (as reported by the author?) with the version they are about to upgrade to. If the plugin is in the repo and is not identified as compatible with that version, then very strongly advise they deactivate it (and consider doing it for them).

'''Check a site after an auto-upgrade.''' Since we only recommend deactivating plugins on auto-upgrade, and I'm not sure we should forcibly do that as part of an auto-upgrade, then let's check the site after an upgrade. Hit wp-load with an HTTP request and look for a header we spit out on the wp_loaded hook. If we don't get a header, then deactivate all plugins and tell the user ""told you so"". We could consider trying to reactivate plugins until one fails as well (also a valid option for the previous suggestion).",nacin
Needs Dev / Bug Wrangler Feedback,19790,function request : is_plugin_latest($plugin);,,Plugins,3.3.1,normal,minor,Awaiting Review,feature request,new,dev-feedback,2012-01-09T20:23:12Z,2012-01-17T15:14:49Z,"i am working on a plugin right now an i am at the stage of adding help content to it.

i want to be able to display a contact form for support, but only want this to show if the user makes sure they are using the latest plugin version.

ive searched the core and the codex and i cant find any function that ""just"" checks if a plugins up to date (i know wordpress does check, but it wrapped up in bigger proccesses).


this would also be usefull to check themes as well, but for now maybe just a plugin version check.


it seems simple enough by just checking the site transient for plugins and checking the response array. if theres a better solution please let me know, because the code below is what i use currently in every plugin of mine:


{{{
function _is_latest($plugin){
		
		$info = get_site_transient( 'update_plugins' );
		
		if(isset($info->response[$plugin]['new_version'])){
			return false;
		}else{
			return true;
		}//if
		
		
}//function
}}}




this is really simple, could we get it added to the core?

for themes we could just add a context arg to the funtion like
{{{
_is_latest($context, $file);
}}}

and call either the theme or plugin transient based on value of $context",nohalfpixels
Needs Dev / Bug Wrangler Feedback,14106,Post-processing of post thumbnails,,Post Thumbnails,3.0,normal,normal,Future Release,enhancement,assigned,dev-feedback,2010-06-26T20:45:24Z,2010-12-23T19:43:35Z,"I'm not sure if I'm missing something, but it looks like there is no hook to post-process post thumbnails. I want to add rounded corners to all thumbnails for a theme.

It looks to me like an action at the end of image_make_intermediate_size() in media.php with $file as parameter might do the trick. I'm not sure if that's the right place or when that function is called precisely though. So it might be necessary to add additional parameters to the function call to identify where the call came from.",nkuttler
Needs Dev / Bug Wrangler Feedback,21699,Losing post status,,Post Types,3.4.1,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2012-08-27T05:19:40Z,2012-08-27T07:00:09Z,I created custom post type and custom post status for it. Then I programmatically set custom status for new post and then edit it using admin panel. When I save post status is set to 'published' and I can't select my status from statuses list.,barmin.alexander@…
Needs Dev / Bug Wrangler Feedback,20900,Throw an error in `get_default_post_to_edit` if the specified post type is not defined.,,Post Types,,normal,minor,Awaiting Review,defect (bug),new,dev-feedback,2012-06-10T23:07:23Z,2012-06-10T23:07:23Z,"Currently get_default_post_to_edit will generate a post with the specified post type, even if it doesn't exist.  Let's give it a chance to do something else.

If this is conceptually a good idea, also do it during wp_insert_post() and other similar functions.",georgestephanis
Needs Dev / Bug Wrangler Feedback,18950,get_post_types() does not return post-types registered with verbose alternatives of the $public argument,,Post Types,3.2.1,normal,major,Awaiting Review,defect (bug),new,close,2011-10-14T16:50:26Z,2012-07-18T10:03:52Z,"The $public argument for the '''register_post_type()''' function is supposedly an alternative for setting the arguments for publicly_queriable, show_ui, show_in_nav_menus, and exclude_from_search;  It's true that setting the public argument does cause these other values to be set, but if you then use '''get_post_types()''' to query for public post-types, WP does not recognize the equivalence between setting the public option or verbosely setting the others.


== To Reproduce: ==

Enter the following code into a plugin:
{{{
function testing() {
 $args => array(
   'publicly_queriable' => true,
   'show_ui' => true,
   'show_in_nav_menus'  => true,
   'exclude_from_search => false
 );
 register_post_type('my_custom_post_type', $args);
}

add_action('init', 'testing');
}}}

In a theme file (or somewhere after the init event):
{{{

$pts = get_post_types( array('public'=>true, '_builtin'=>false) );

print_r($pts); // <-- empty!
}}}


== Expected Result ==

I would expect the get_post_types() function to return the '''my_custom_post_type''' post-type because it is using the equivalent of the $public argument.


== Actual Result ==

No post-types are returned. 

This represents a problem: other plugins that interact with post-types often rely on the $public argument when using the '''get_post_types()''' function, so any plugin that attempts to verbosely set component attributes will not be recognized.  This effectively breaks the API and trainwrecks the interconnectedness of the post-types.

== See Also ==

See forum post: http://wordpress.org/support/topic/public-attribute-for-register_post_type?replies=5#post-2391689


WordPress 3.2.1
PHP 5.3.2",fireproofsocks
Needs Dev / Bug Wrangler Feedback,15995,query is separating post_type 'post' from custom post_types when retrieving custom field,,Post Types,3.0.3,normal,normal,Awaiting Review,defect (bug),new,dev-feedback,2010-12-27T12:37:39Z,2011-02-02T19:46:24Z,"{{{
query_posts( 
	array( 'post_type' => array(
		'post',
		'custom_1',
		'custom_2'
		),
	'orderby' => 'title',
	'order'=>'ASC' )
	);
}}}

It doesn't matter which parameter you take for 'orderby' it will separate the post_type 'post' from the custom post_types as shown in the example below:

custom_1,	title = AAA[[BR]]
custom_2,	title = DDD[[BR]]
custom_1,	title = GGG[[BR]]
post,		title = BBB[[BR]]
post,		title = EEE[[BR]]

I cannot believe that this is intended. The proper output should to be:

custom_1,	title = AAA[[BR]]
post,		title = BBB[[BR]]
custom_2,	title = DDD[[BR]]
post,		title = EEE[[BR]]
custom_1,	title = GGG[[BR]]",bowstreet
Needs Dev / Bug Wrangler Feedback,15230,Action hook before the inserting post into the database,,Post Types,3.1,normal,normal,Future Release,enhancement,new,dev-feedback,2010-10-27T09:18:46Z,2013-03-14T10:10:40Z,"Something like
{{{
do_action( 'pre_post_insert', $data, $postarr );
}}}
added to ''wp_insert_post'' function right after the ""else"" statement on line 2501 in .../wp-includes/post.php

",johnnypea
Needs Dev / Bug Wrangler Feedback,17447,Add 'register_post_type_args' hook,,Post Types,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-05-15T21:37:32Z,2013-04-01T08:13:35Z,"I have two different use cases where I ideally would be able to hook the `register_post_type()` function:

1. To add custom attributes and custom `'supports'` values; current hooks don't allow adding support at the right time to be fully robust.

2. To disable the default rewrite logic in order to support customized rewrite logic passed as custom attributes.

I've attached a patch that adds `'pre_register_post_type'` and `'register_post_type'` hooks to `register_post_type()`.",mikeschinkel
Needs Dev / Bug Wrangler Feedback,24400,Allow custom template selection for custom post types,,Post Types,3.5.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-05-23T19:33:42Z,2013-05-23T19:33:42Z,"Is there any reason we don't allow custom post types to have custom ""page"" templates?",jfarthing84
Needs Dev / Bug Wrangler Feedback,16987,Allow registering a WP_List_Table class when registering post types,,Post Types,,normal,minor,Future Release,enhancement,new,dev-feedback,2011-03-28T16:01:55Z,2011-06-11T09:39:51Z,"This would go a long way towards making the post types feature more complete. I discovered while converting Links from the native format into a post type that the admin lists are still very clunky to work with, especially with quick edit obliterating non-underscored post meta and the quick edit form not being configurable enough on the server-side to make it useful for more unusual post type requirements.

Code-wise it would be good to work with it in a similar way to the Walker_Nav_Menu class eg. so I could extend the WP_Posts_List class to overwrite certain elements for my post type.",sanchothefat
Needs Dev / Bug Wrangler Feedback,12725,Custom post types should be respected in post_rel_link functions,,Post Types,3.0,normal,normal,Future Release,enhancement,new,dev-feedback,2010-03-27T05:00:33Z,2012-02-04T08:29:20Z,Just like the title says. These functions should check to see if the current post type supports categories before proceeding.,jfarthing84
Needs Dev / Bug Wrangler Feedback,19055,Post type check on top of wp-admin/edit.php enhancement,,Post Types,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-10-26T10:04:48Z,2011-10-27T21:12:06Z,"I was looking into edit.php and I noticed that when you unregister post type 'post' on a hacky way it never would return as an invalid post type. I do know that this is just a little step to make unregistering a post type easy.

I would say that:

{{{
if ( !isset($_GET['post_type']) )
	$post_type = 'post';
elseif ( in_array( $_GET['post_type'], get_post_types( array('show_ui' => true ) ) ) )
	$post_type = $_GET['post_type'];
else
	wp_die( __('Invalid post type') );
}}}

should be:

{{{
if ( !isset($_GET['post_type']) )
	$_GET['post_type'] = 'post';

if ( in_array( $_GET['post_type'], get_post_types( array('show_ui' => true ) ) ) )
	$post_type = $_GET['post_type'];
else
	wp_die( __('Invalid post type') );
}}}

related: unregister_post_type() #14761",markoheijnen
Needs Dev / Bug Wrangler Feedback,23788,get_posts(array('post_type' => 'any')) Should include custom post types in result,,Post Types,3.5.1,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2013-03-15T15:07:49Z,2013-04-16T00:35:08Z,"Hi,

I have a post type called with the id of 'career'. When I use post_type => 'any' I don't get results from this post type even though it is set to public. Are custom post types automatically ignored when using 'any'?

When replacing 'any' with 'career' it works fine.",keendev
Needs Dev / Bug Wrangler Feedback,14761,unregister_post_type(),,Post Types,2.9,lowest,normal,Future Release,enhancement,new,dev-feedback,2010-09-02T12:00:17Z,2013-05-16T20:42:09Z,"Two use cases:

 1. Remove a core post type. Means that the admin menus should respond in kind, though certain aspects of core like query/rewrite might not like this. Not the main use case regardless.

 2. Removing a post type of another plugin, or potentially more likely, a parent theme.

Example barebones function: http://wordpress.pastebin.com/VexHkgig

Related, unregister_taxonomy() #11058 and unregister_taxonomy_for_object_type(): #14482",nacin
Needs Dev / Bug Wrangler Feedback,21450,wp_insert_new_post hook,,Post Types,,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2012-08-02T10:42:57Z,2013-03-14T10:11:22Z,"Situation is this in wp_insert_post:
{{{
	if ( $update ) {
		do_action('edit_post', $post_ID, $post);
		$post_after = get_post($post_ID);
		do_action( 'post_updated', $post_ID, $post_after, $post_before);
	}

	do_action('save_post', $post_ID, $post);
	do_action('wp_insert_post', $post_ID, $post);
}}}

As you can see we have hooks that:
1. Get executed when post is '''updated'''
2. Get executed when post is '''updated or created'''

There is no hook that would be exectued only when post is '''created'''.
''wp_insert_post'' was most logical candidate for the task, however i suspect changing it might break some plugins relying on it therefore i propose new action '''wp_insert_new_post''' which should be executed '''only when new post is created''', but '''never when post is updated'''.

Like so:
{{{
	if ( $update ) {
		do_action('edit_post', $post_ID, $post);
		$post_after = get_post($post_ID);
		do_action( 'post_updated', $post_ID, $post_after, $post_before);
	}
+	else
+		do_action('wp_insert_new_post', $post_ID, $post);

	do_action('save_post', $post_ID, $post);
	do_action('wp_insert_post', $post_ID, $post);
}}}

P.S. I marked ticket as having patch even tho there is just updated code snippet above. Please excuse me :)",rndbit
Needs Dev / Bug Wrangler Feedback,12702,Enable sticky post checkbox for custom post type Publish metabox,,Post Types,,normal,normal,Awaiting Review,feature request,reopened,dev-feedback,2010-03-25T05:27:30Z,2013-05-23T15:58:15Z,"When a custom post type is created, there is no checkbox to mark it as a ""Sticky"" post.

In meta-boxes.php there is a check:
if ($post_type == 'post'): <Show sticky checkbox> endif;

Can this be removed?",phlux0r
Needs Dev / Bug Wrangler Feedback,16922,"Add class to ""via"" paragraph in press-this.php",,Press This,3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-03-21T22:23:27Z,2011-07-27T20:19:52Z,"When using ""Press This,"" a paragraph is added to the bottom of the post with a link to the source, and, if there is a selected block of text being quoted, the word ""via"" prepended.

It would be helpful for themes to be able to style this paragraph, so I suggest adding a class to it such as ""via"".

Also, oughtn't this be wrapped in a <cite> tag as well?",topdownjimmy
Needs Dev / Bug Wrangler Feedback,23278,Spin PressThis off into a plugin,,Press This,3.5,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-01-23T21:43:23Z,2013-01-24T12:25:15Z,"PressThis has really been the ignored stepchild of WordPress for quite a while now.  I'd like to propose that we spin it out of core and into a plugin (either installable via the plugin repo or bundled with wp, whatever)

Several things to consider:

* Backwards Compatability: What happens when someone upgrades then uses an old bookmarklet?  I'd suggest either autoinstalling, or prompting them immediately to install the plugin through a special catch in core.
* Press This doesn't have an includes file in wp-admin/includes that other plugins could pull in, so extracting it is very unlikely to break plugins that could be manually pulling that in.
* This will make it easier to upgrade in plugin form, and let other people have an easier time hijacking it to use their own implementations.

In today's IRC chat, as sabreuse pointed out, everyone seemed to either favor spinning it out into a plugin, or didn't have much of an opinion.  If you really want it in core, please speak up!  I'd love to hear your reasons.

I'm willing to throw a massive chunk of time at this to make it work, if that's the decision that we decide to move forward with.",georgestephanis
Needs Dev / Bug Wrangler Feedback,16935,Wrap selected text in <blockquote> in press-this.php,,Press This,3.1,normal,normal,Awaiting Review,feature request,new,dev-feedback,2011-03-22T16:27:37Z,2011-12-19T00:50:04Z,"When using the ""Press This"" bookmarklet, any text selected on the current page is inserted into the post body textarea.  This should be wrapped in a <blockquote> tag with some appropriate class name.",topdownjimmy
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,19802,Allow DECIMAL Precision in WP_Query Meta Queries,,Query,3.3.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-01-11T06:50:05Z,2012-01-11T11:42:34Z,"As of now, if we specify a precision for the DECIMAL type in WP_Query meta queries [e.g. DECIMAL(4,2)], the type is changed to CHAR. This transformation seems to happen here:

http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/meta.php#L716

As a work around, we can add a filter to the `get_meta_sql` hook and manually change DECIMAL to DECIMAL(X,X) with a `str_replace`, but that seems pretty clumsy and it forces us to pick one level of precision for all meta queries.

As a solution, right above the line I have linked above, we could add a conditional that checks if the type starts with DECIMAL, and then uses a regex to check if the format for the precision is correct. Of course, another option would be to add a precision key to the meta query array like so: 


{{{
array(
  'key' => 'meta_key',
  'value' => $value,
  'type' => 'DECIMAL',					
  'compare' => '>',
  'precision' => array( 4, 2 )
),

}}}

I apologize if this question has already been asked, or if I'm missing something obvious. But, to me it seems like the current system is a bit limiting. Thanks.",dominicp
Needs Dev / Bug Wrangler Feedback,21683,Choose the relationship between the meta_query and what it's pulled into (AND/OR),,Query,3.4.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-08-24T19:00:11Z,2012-08-27T14:13:06Z,"The use case for this is that I'd like to be able to, much like meta_query's ""relation"" option, be able to choose whether or not 'meta_query' itself should be treated like AND or OR in it's WHERE inclusion.

meta_query's ""relation"" option is already helpful, letting you treat any of the meta_query's arrays as OR instead of the default AND.

Adding this new option would provide the ability to treat meta_query as AND / OR based on the need of the WP_Query lookup.",sc0ttkclark
Needs Dev / Bug Wrangler Feedback,20308,Filtering of password protected posts,,Query,3.4,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-03-27T13:00:19Z,2012-12-18T20:02:00Z,"Goal: 
to query for password protected posts only or to remove all password protected posts from a query.

Current solution:
Modify the query SQL by using the 'posts_where' filter as suggested here: http://stackoverflow.com/questions/7538959/how-to-exclude-password-protected-posts-in-wordpress-loop

Suggested solution: 
Make it possible to modify a parameter via 'pre_get_posts' or 'request' - filter, i.e. $query->set( 'post_password', TRUE ).",paddelboot
Needs Dev / Bug Wrangler Feedback,17072,Make $wp_query->query read-only,,Query,,normal,normal,Future Release,enhancement,new,dev-feedback,2011-04-07T07:09:32Z,2011-04-07T07:55:08Z,"WP_Query has two properties that contain query vars:

$wp_query->query is the initial query.

$wp_query->query_vars is the ""working copy"", with all possible query vars filled.

I propose we prevent modification of $wp_query->query and keep it as a signature of that particular instance.",scribu
Needs Dev / Bug Wrangler Feedback,19525,Meta Query failing to build a proper SQL Query,,Query,3.1,normal,normal,Awaiting Review,enhancement,reopened,dev-feedback,2011-12-13T01:23:23Z,2011-12-13T03:27:59Z,"
I was tryin' to get meta working and i was wondering why no results were returned until i found that the query is actually invalid:


{{{
SELECT SQL_CALC_FOUND_ROWS  *
FROM posts  INNER JOIN term_relationships ON (ID = term_relationships.object_id) INNER JOIN postmeta ON (ID = postmeta.post_id) 
WHERE 1=1  AND ( term_relationships.term_taxonomy_id IN (1) ) AND post_type = 'post' AND (post_status = 'publish') AND ( (postmeta.meta_key = 'time' AND  ) GROUP BY ID ORDER BY post_date DESC LIMIT 0, 10
}}}

As you can see the meta query only inputs the meta_key and not the meta value/compare operator and as such the query ends up invalid.

This is how the query is getting called:

{{{
$args = array(
        'category_name' => 'customcat',
        'post_status' => 'publish',
        'meta_key' => 'time',
        'meta_value' => '135784684',
        'meta_type' => 'numeric',
        'meta_compare' => 'NOT BETWEEN'
    );
$posts = new WP_Query($args);
}}}
",peshkohacka
Needs Dev / Bug Wrangler Feedback,18707,"Meta Query printing ""array"" in query whwn compara type is LIKE",,Query,3.2.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-09-19T17:17:48Z,2012-12-11T23:09:48Z,"Always a try to filter post by meta_query using a array value and compare equals to ""LIKE"" the returned SQL query is buged. WordPress return something like this:


{{{
(wp_postmeta.meta_key = 'passed_key_value' AND CAST(wp_postmeta.meta_value AS CHAR) LIKE '%Array%'))
}}}

The array values are not serialized, and ""Array"" are outputed to in SQL Query.

Serializing the values the problem still the same and WordPress output in query somethinhg like this 
{{{
(wp_postmeta.meta_key = 'passed_key_value' AND CAST(wp_postmeta.meta_value AS CHAR) LIKE '%Array[0], Array[1], Array[2]%'))
}}}

According the [http://codex.wordpress.org/Class_Reference/WP_Query WP_Query documentation], array is supported in field ""value"" for meta_query filters.",tplayer
Needs Dev / Bug Wrangler Feedback,11950,Sticky Posts are too aggressive,,Query,2.9.1,normal,normal,Awaiting Review,enhancement,reopened,dev-feedback,2010-01-19T15:43:50Z,2011-12-19T03:19:07Z,"I don't think the default behavior should be to have sticky posts included every time a query_posts() is used.  I realize you can set the 'caller_get_posts' argument to avoid sticky posts from being added, however having to do this everywhere becomes a burden.  

What are your thoughts on having the WP class add 'include_sticky' var to the_query if it isn't already set and then not include the sticky posts by default?",prettyboymp
Needs Dev / Bug Wrangler Feedback,24093,"WP_Meta_Query is inefficient when referencing the same keys in ""OR"" query",,Query,3.5.1,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2013-04-15T16:21:31Z,2013-04-15T16:24:39Z,"This is part of the chain of thought from #19729

The corresponding fix for #19729 was done in [22103]

I believe this fix didn't take things far enough. For example, a meta_query that does a lot of comparing on the same meta_key, will have a JOIN and a WHERE for each query array. It shouldn't have to re-join the postmeta table on each query array though, since they are based on the same meta_key.

I'll attach a suggested patch that will only join if it needs to, and use the previous alias for the first meta_key joined table if it's already been joined.",sc0ttkclark
Needs Dev / Bug Wrangler Feedback,22208,get_children() doesn't support 'fields' => 'ids' as an argument,,Query,3.4.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-10-17T00:16:22Z,2013-03-29T19:18:47Z,"Not sure whether it should, but it would be nice.

When you pass 'fields' => 'ids' as an argument, the data returned by get_posts() is nooped with this block:

{{{
foreach ( $children as $key => $child )
    $kids[$child->ID] = $children[$key];
}}}",danielbachhuber
Needs Dev / Bug Wrangler Feedback,16802,is_page() doesn't accept a full path,,Query,3.1,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2011-03-09T12:52:14Z,2011-03-17T01:44:01Z,"If you have a page at example.com/foo/bar, then `is_page('foo/bar')` will return false on that page.

The `is_page()` function only checks the ID, title and post name, not the full path.

If the $page parameter passed to `is_page()` contains a slash then we should check the full path. If I get a chance I'll see if I can whip up a patch in the next couple of days.",johnbillion
Needs Dev / Bug Wrangler Feedback,19738,meta_query should check for wildcards when using LIKE operator,,Query,3.2,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2012-01-04T18:35:04Z,2013-04-16T00:24:10Z,"This seems intentional, but when using the LIKE operator in a meta query, the % wildcards are automatically added to the start and end of the value when generating the SQL.

I think a more robust way of doing this would be to only add said wildcards if one cannot be found within the value itself. ",ejdanderson
Needs Dev / Bug Wrangler Feedback,15031,order via meta_query,,Query,3.1,normal,normal,Future Release,enhancement,assigned,dev-feedback,2010-10-04T18:14:17Z,2013-05-09T14:59:50Z,"#14645 added the ability to query based on multiple meta keys, but you can't use it to order posts.",aaroncampbell
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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-03-05T19:26:57Z,"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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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-09T11:18: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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,18375,Post type templates,,Themes,,normal,normal,Awaiting Review,enhancement,new,dev-feedback,2011-08-10T20:37:46Z,2013-02-14T21:36:30Z,"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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,24251,Reconsider SVG inclusion to get_allowed_mime_types,,Upload,,normal,minor,Awaiting Review,enhancement,new,dev-feedback,2013-05-02T19:36:57Z,2013-05-02T20:21:21Z,"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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,23950,Company recognition,,WordPress.org site,,normal,minor,Awaiting Review,feature request,new,dev-feedback,2013-04-05T15:13:24Z,2013-04-09T17:04:30Z,"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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Dev / Bug Wrangler Feedback,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
Needs Early Attention,14565,After Category Quick Edit Update Parent Category Dropdown,,Administration,3.0.1,normal,trivial,Future Release,defect (bug),new,has-patch,2010-08-08T22:07:45Z,2010-12-26T23:09:36Z,"On a clean install I went to Posts -> Categories and used Quick Edit to rename 'Uncategorized' to 'Rename-Test' I then went to create a new Category using the form on the left and the Parent drop down still lists 'Uncategorized'.

Should this be updated without have to reload the page?",Dempsey
Needs Early Attention,10422,Answering to comment from Dashboard does not update Dashboard statistics,,Administration,2.8.1,normal,normal,Future Release,defect (bug),new,has-patch,2009-07-16T05:18:48Z,2012-09-17T19:50:52Z,"Hi there,

there is a short statistics ""Right now/At a Glance"" box in Dashboard, containing number of posts, pages, comments etc.

There is also a box with list of most recent comments in the Dashboard.

If a user answers to a comment in this ""Recent comments"" box in Dashboard, which uses AJAX, so it does not reload the whole page, it creates a new comment, but the number of comments in the ""Right now"" box is not updated.

I know this is not a critical bug, but it would be really nice if it works.

Take care, Honza

P.S.: As there is no ""Dashboard"" component in the Trac, I did not know whether to assign it to Administration or Comments component. I put it into Administration, if you think it better suits to Comments or any other component, please feel free to change it.",honza.skypala
Needs Early Attention,19206,Improve internal admin menu code,,Administration,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2011-11-08T17:53:44Z,2011-11-09T16:27:02Z,"The internal admin menu code is both hard to read and filled with several unnecessary branches. This makes maintaining the code quite difficult.

A few uses of list and smarter branching can considerably improve _wp_menu_output. Patch attached. Let's revisit this when we branch for 3.4.",koopersmith
Needs Early Attention,13655,Login/Install/User Edit should stripslashes() $_POST data,,Administration,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-31T11:33:17Z,2010-11-13T08:05:36Z,"Following on from #13654 All Login/Registration/Install/User Edit functionality should stripslash $_POST data.

At present, it seems that we do not stripslash at all.

For existing user passwords, we should migrate passwords to their non-stripslashed versions:

 [5/31/10 6:34:11 AM] Mark Jaquith: We could migrate people.[[BR]]

 [5/31/10 6:34:13 AM] Dion (dd32): Perhaps oughta just add proper stripslashing in 3.1, and add back-compat to change password from non-stripslashed to stripslashed.. similar to the md5->phpass implementation..[[BR]]

 [5/31/10 6:35:13 AM] Mark Jaquith: Yep. If the PW doesn't match, addslashes() and compare again. If that matches, set the new PW hash. Right?[[BR]]

 [5/31/10 6:35:19 AM] Dion (dd32): yep

",dd32
Needs Early Attention,19247,Add post type and taxonomy to admin body class,,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-15T08:19:35Z,2013-04-14T10:03:13Z,"I often have a need for targetted CSS selectors based on the current screen's post type (eg. to hide unwanted UI elements), so I usually end up adding `post-type-{$post_type}` with the `admin_body_class` filter. It'd be nice if this was in core.",johnbillion
Needs Early Attention,6286,"Proposed changes to ""E-mail me whenever"" Discussion Options",,Administration,2.5,normal,normal,Future Release,enhancement,new,has-patch,2008-03-18T19:14:55Z,2013-01-13T20:40:03Z,"WRT the ""E-mail me whenever"" options on the Discussion options page:

[[Image(http://img132.imageshack.us/img132/4215/picture1vf1.png)]]

 1. For ""a comment is helf for moderation,"" the ""me"" is ambiguous.  It should specify that it means the blog admin e-mail address.
 1. For ""anyone posts a comment,"" again, ""me"" is ambiguous.  In this case ""me"" means the author of the post.  The comment notification setting is personal, and therefore should be set in the profile options (where it can retain the ""me"").  Some authors may want e-mail notification, others might not.",markjaquith
Needs Early Attention,17906,Refactor submit box code,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-27T13:27:34Z,2011-06-28T16:01:10Z,"The code for the post submit metabox is a mess. It should be cleaned up, so that changes such as #17028 can be done more easily.

Will post a patch shortly.",scribu
Needs Early Attention,16774,Remember list view/excerpt view setting,,Administration,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-06T13:37:18Z,2012-07-03T19:43:23Z,"I love the new excerpt view, except that the next time I go to the Articles page, it shows me the list view again. The selected view should be retained as a setting.",texttheater
Needs Early Attention,17884,Remove redundant checks in settings API functions,,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-06-24T20:20:44Z,2013-01-03T19:25:30Z,"There are several isset() checks in some settings fields functions that are meant to prevent notices, but they're simply unnecessary.

PHP doesn't emit notices in those cases.",scribu
Needs Early Attention,18788,Remove redundant type attributes from script and style tags,,Administration,3.3,normal,normal,Future Release,enhancement,new,has-patch,2011-09-27T06:54:02Z,2013-04-15T10:28:35Z,"Now that the admin is using the HTML5 doctype everywhere, the `type=""text/javascript""` and `type=""text/css""` attributes on script and style tags are unnecessary (if they weren't anyway), and I think they can be safely removed to trim a few hundred bytes from core. Should be a simple search and replace exercise.",solarissmoke
Needs Early Attention,15384,wp-login.php refactor,,Administration,,normal,normal,Future Release,enhancement,new,early,2010-11-11T12:40:35Z,2012-05-31T21:40:02Z,"wp-login.php needs some serious work. When looking to do some improvements in #5919, I realized I literally needed a goto in order to achieve the goals outlined in this comment:

http://core.trac.wordpress.org/ticket/5919#comment:39

I am thinking a WP_Login class with some methods that can handle various different forms, POST handling, and rerouting.",nacin
Needs Early Attention,18179,WP_Meta_Box,,Administration,,normal,normal,Future Release,feature request,new,has-patch,2011-07-20T01:05:50Z,2013-03-08T16:31:47Z,"Ryan, Nacin, and I would like to see a Meta Box class in 3.3. Let's make it happen.

Attached is a first pass (in plugin form, for ease). It provides a basic API and supports multiple instances. Instances are stored in a static meta box registry, which should require minimal interaction.

Keep in mind that meta boxes are not just registered on CPT pages — they are also used on the dashboard, in menus, and in custom UIs. The parent class should be suitable for each of these cases.

I think we should move caps to the main Meta Box class (and allow subclasses/instances to specify/override the cap through $args), and also provide $args to enable/disable any checks we perform before saving (e.g. autosave, etc).

It would also be interesting to integrate this with the proposed metadata API improvements.

See #15066 for prior discussion.",koopersmith
Needs Early Attention,20729,Improve Admin Colors CSS enqueuing,,Appearance,3.1,normal,normal,Future Release,defect (bug),new,early,2012-05-22T17:19:58Z,2012-05-22T17:20:17Z,"The hacky way in which we enqueue the admin colors css means that you get different ordering of the CSS between the development version of the scripts and the script-loader sourced version of the scripts.

This can cause CSS bugs which don't show when developing but do when running with the script loader - e.g. #16827

It also makes it harder to implement a custom css concatenator.

We should do something like - http://core.trac.wordpress.org/attachment/ticket/16827/colors-hacked-fixed.diff

To make this properly enqueue the styles.

We should also make this kind of call fire a {{{_doing_it_wrong()}}} as {{{true}}} is not a url :)

{{{
$styles->add( 'colors', true, array('wp-admin') );
}}}

This code harks back from [7976]",westi
Needs Early Attention,20733,Theme customizer doesn't order sections based on order added,,Appearance,3.4,normal,normal,Future Release,defect (bug),new,early,2012-05-22T23:36:48Z,2013-01-21T15:16:04Z,"When adding sections to the theme customizer, sections with the same priority are given seemingly random order. From the [http://core.trac.wordpress.org/ticket/19910 original customizer ticket]:

> Settings and sections both contain priority parameters (you can specify these in the constructor or alter them afterwards) which serve as the primary means of sorting sections before they're rendered. The order settings/sections are added serves as a secondary sorting mechanism (tiebreaker) when multiple items share the same priority.

I was under the impression that if the priority was the same, the sections would appear in the order they were added. However, if you add sections A, B, and C (in that order) it seems to display them in order B, C, A.

To replicate, add this code to your theme:

{{{
add_action( 'customize_register', 'theme_customize_register' );

function theme_customize_register( $wp_customize ) {
	// Register Section A
	$wp_customize->add_section( 'theme_section_a', array(
		'title'    => 'Section A',
		'priority' => 35,
	) );
	$wp_customize->add_setting( 'theme_option_a', array(
		'type'              => 'option',
	) );
	$wp_customize->add_control( 'theme_option_a', array(
		'section'    => 'theme_section_a',
		'type'       => 'text',
	) );

	// Register Section B
	$wp_customize->add_section( 'theme_section_b', array(
		'title'    => 'Section B',
		'priority' => 35,
	) );
	$wp_customize->add_setting( 'theme_option_b', array(
		'type'              => 'option',
	) );
	$wp_customize->add_control( 'theme_option_b', array(
		'section'    => 'theme_section_b',
		'type'       => 'text',
	) );

	// Register Section C
	$wp_customize->add_section( 'theme_section_c', array(
		'title'    => 'Section C',
		'priority' => 35,
	) );
	$wp_customize->add_setting( 'theme_option_c', array(
		'type'              => 'option',
	) );
	$wp_customize->add_control( 'theme_option_c', array(
		'section'    => 'theme_section_c',
		'type'       => 'text',
	) );
}
}}}

'''Expected result:''' Sections show up in order A, B, C

'''Actual result:''' Sections show up in order B, C, A

Sorry if I'm doing something stupid, or if this isn't the intended functionality. I'm running trunk without any plugins.",andyadams
Needs Early Attention,21785,Add header image uploads with cropping to the customizer,,Appearance,3.4,normal,normal,Future Release,task (blessed),new,early,2012-09-04T04:56:41Z,2013-05-22T10:06:20Z,"See #21355 for an explanation for why header image uploads (sans cropping) was removed from the 3.4 branch. This ticket is about adding it back, with a crop step, to ensure proper support.",nacin
Needs Early Attention,15069,Autosave function assumes that there is only on tinyMCE on the page,,Autosave,3.0.1,normal,normal,Future Release,defect (bug),new,early,2010-10-08T10:28:12Z,2011-01-14T09:35:22Z,"Autosave javascript assumes there is only one tinyMCE instance on the post editor page, thus breaking autosave feature under the next circumstances:
1. Content editor is in HTML mode
2. Some custom tinyMCE instances are added to the page by some plugin or theme.

A patch that fixes that problem is attached.",karevn
Needs Early Attention,16993,wp-mail.php doesn't account for half-hour and quarter-hour timezones.,,Blog by Email,3.1,normal,trivial,Future Release,defect (bug),new,has-patch,2011-03-29T06:55:06Z,2012-11-07T22:14:58Z,"To reproduce the problem, install Wordpress and set it to post by email. Send a post from an email address which is configured to use a half-hour or quarter-hour timezone (like Afghanistan, +0430).

wp-mail.php calculates the timezone by multiplying the timezone offset by 36. This works fine for whole-hour timezones (Pacific Time -0800, -800 * 36 = -28800 seconds). For half-hour and quarter-hour time zones this does not work (Afghanistan +0430, 430 * 36 = 15480, should be 16200). The reason this happens is because an hour has 60 minutes as opposed to 100  minutes. 430 / 100 = 4.3 hours, not 4.5 hours. 450 * 36 result in 16200 minutes, but timezones are represented as hours and minutes, not fractional hours.

This results in posts that are posted via email from a half-hour or quarter-hour timezone to be posted in the future or in the past from when it was actually posted.",neoscrib
Needs Early Attention,24128,Twenty Eleven: add postMessage support for header_textcolor,,Bundled Theme,,normal,normal,Future Release,enhancement,new,has-patch,2013-04-18T17:43:32Z,2013-04-23T16:53:14Z,"Similar to Twenty Twelve and Twenty Thirteen, this would add immediate visual feedback in the Theme Customizer UI when header text is hidden, or its color value changes.",lancewillett
Needs Early Attention,20875,Introduce wp_cache_get_multi(),,Cache,,normal,normal,Future Release,enhancement,new,has-patch,2012-06-07T13:56:28Z,2013-04-16T17:12:29Z,"Both options (see #10274) and themes (see #20103) could benefit from a cache backend that implements get_multi(). For options, this means we can use individual keys. For both themes and options, we'd be able to make fast multiple gets.

Both APC and Memcached (but not Memcache) implement multiple-get. A fallback would be looping over get().

Separately, as this would be a new function we use in core, we probably need to start doing some kind of versioning for drop-ins like db.php and object-cache.php.",nacin
Needs Early Attention,15565,More context for clean_post_cache(),,Cache,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-11-24T17:41:07Z,2012-10-17T14:21:18Z,"I'd like more context to be available when the clean_post_cache hook is run.

Scenario: I have a plugin caches the post_IDs of most post queries that go through WP_Query.  Invalidating that cache is done via the clean_post_cache hook, but requires a bunch of fragile hacks to prevent cache invalidation for things like comment inserts, which update the post's comment_count (which could, in theory, affect a WP_Query, but that's another story).

Option 1: Add extra actions to provide context.  This is the simpler option.  Patch 1 does this for the above scenario.

Option 2: Add an optional context parameter to clean_post_cache().  This is more general, but I can't think of anyplace else WordPress uses as similar approach.  Patch two.",mdawaffe
Needs Early Attention,23327,Cache incrementors for get_bookmarks(),,Cache,3.5.1,normal,normal,Future Release,task (blessed),new,early,2013-01-30T18:24:08Z,2013-04-16T17:11:33Z,"Make use of a caching incrementor and store queries in individual cache buckets to avoid memory exhaustion.

Pattern this after #23167, which does the same thing for get_pages().

See #23173 for an explanation of the motivation behind this.",ryan
Needs Early Attention,15256,?cat=## permalinks do not redirect when category is a parent,,Canonical,3.0.1,high,normal,Future Release,defect (bug),reopened,needs-unit-tests,2010-10-30T05:44:18Z,2013-02-25T13:08:53Z,"One of my plugin users reported this while using dropdowns to display his categories: http://wordpress.org/support/topic/plugin-my-category-order-multiple-widget-support-broken

I was able to duplicate it on my own site in 3.0.1. Any category that has children displayed in the dropdown will redirect to /?cat=## instead of the the friendly /category-name permalink when selected. Select any other category or one of the children and they redirect correctly.

Any thoughts?",froman118
Needs Early Attention,18007,is_serialized trouble for multibytes encoding,,Charset,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-07-06T16:51:52Z,2013-04-10T12:47:42Z,"Possible bug in the ''is_serialized'' function, in a multibytes environment :

== Context ==

* ''utf-8'' encoded database fields
* auto overlaoding singlebyte functions from conf (see http://www.php.net/manual/en/mbstring.overload.php)

Retrieving an option from the database, the ''get_option'' function try to deserialize it.

== Bug scenario ==
 * the ''strlen'' call is actually a ''mb_strlen'' one
 * the ''$length'' var is the number of characters (not bytes)
 * using {{{ $data[$length-1] }}} don't retrieve the last char but one before, it's actual position is undefined, depending on the other content of the string
 * this ''$lastc'' is not '';'' or ''}'' 
 * the string is understood has not serialized

== Patch proposal ==

here is a fix i made to make it work with multibytes string :
Not tested it for single bytes, but there is no reason for it to not work.
{{{
--- a/wp-includes/functions.php
+++ b/wp-includes/functions.php
@@ -256,7 +256,7 @@ function is_serialized( $data ) {
                return false;
        if ( ':' !== $data[1] )
                return false;
-       $lastc = $data[$length-1];
+       $lastc = substr($data, -1);
        if ( ';' !== $lastc && '}' !== $lastc )
                return false;
        $token = $data[0];
}}}

",challet
Needs Early Attention,16134,Check capabilities/role before adding comment links to email,,Comments,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-07T10:23:06Z,2011-02-19T20:35:22Z,"Currently the Trash it, Delete it, Spam it are added to comment notifcation emails, which are sent to the author.

However, the author may have had their role changed down to a lower-role (or had capability removed) since they wrote the post, and no longer would have permissions to use the links added to the email. 

It may also be the case that a subscriber user was assigned as the Post Author (perhaps as a sort of Guest Author) for a post, and never had the permissions to use those links.

Can some sort of check be added, before these links be added to the email?",GaryJ
Needs Early Attention,14711,Indexes for comment_author_email and user_id,,Comments,3.0,normal,normal,Future Release,defect (bug),new,early,2010-08-27T07:18:30Z,2011-01-08T19:36:17Z,"There are currently no indexes on any of the author columns in wp_comments.  That means there's no efficient way to count the comments written by a given commenter, for example.

The enclosed patch adds two separate non-unique indexes, one each for comment_author_email and user_id.
",tellyworth
Needs Early Attention,13820,AJAX update the comment bubbles on edit-comments.php,,Comments,3.0,normal,normal,Future Release,task (blessed),assigned,has-patch,2010-06-10T13:45:27Z,2012-03-08T01:58:35Z,"We update the bubble in the Comments admin menu item. We should also update the counts in the ""In Response To"" bubbles, as well as the bubble color.",matt
Needs Early Attention,21870,@ error control operator hides fatal error on mysql_fetch_object,,Database,1.5,normal,normal,Future Release,defect (bug),new,has-patch,2012-09-11T14:59:36Z,2012-11-07T19:49:19Z,"I ran a get_posts() query that took me a while to track down to the @ error control operator on the mysql_fetch_object call (see wp-db.php:1219 in trunk), therefore PHP was silently die'ing on me because of a memory limit error.

I'm curious as to what use cases there are for the error control operator to be used here. In my case, I want to see these errors and fix my code accordingly, or tailor my query to the memory constraints, or rethink my data relations in the database.

",ericlewis
Needs Early Attention,23630,Simplify the DFW implementation,,Editor,,normal,normal,Future Release,enhancement,new,early,2013-02-26T16:44:57Z,2013-03-06T20:04:42Z,"I was sad to see that distraction free writing [http://make.wordpress.org/core/2013/01/08/wordpress-3-6-distraction-free-writing-improvements/#comment-7469 didn't get picked up] for 3.6.  I decided to play around with a rough proof of concept to see how difficult it would be to use the existing TinyMCE instance for DFW.

Benefits of handling it this way include:

- It eliminates the need (and complexity) of juggling multiple instances of TinyMCE
- We'll be able to remove a bunch of the old DFW code
- It makes the transition between regular mode and DFW mode much more smooth
- It can be as fully featured as we want it to be",lessbloat
Needs Early Attention,19307,"Need ability to export ""All content"" but limited to date range",,Export,3.1,normal,normal,Future Release,enhancement,new,early,2011-11-20T23:19:43Z,2012-07-11T07:39:18Z,"Need ability to export ""All content"" but limited to date range

==== ENV ====

 WP 3.3-beta3-19254 (trunk r19367)

==== Additional Details ====

For a larger site is a common scenario to need to export all content, but because of resource limitations or time constraints it cannot be done in a single export.

Exporting individual post types is not a work around, further you lose attachments on posts when exporting just ""posts"", and that breaks features including Featured Images.

==== Also Consider ====

Another common scenario for media and enterprise customer is wanting to export a period of time to further analysis that content, or stage it in their development environment for debugging an issue, or developing new designs and features.",lloydbudd
Needs Early Attention,10823,Bad handling of ampersand in post titles,,Formatting,2.8.4,normal,minor,Future Release,defect (bug),new,has-patch,2009-09-21T10:59:50Z,2013-01-23T22:12:06Z,"Titles with ampersand (&amp;) are not correctly handled:[[BR]]

1/ the_title_attribute() doesn't transform & to &amp; causing XHTML validation errors[[BR]]

2/ titles with & followed by ; generate truncated post name (slug)
e.g. ""Test this & believe ; what ?"" => ""test-this-what""",Commeuneimage
Needs Early Attention,10041,like_escape() should escape backslashes too,,Formatting,2.8,high,normal,Future Release,defect (bug),reopened,has-patch,2009-06-05T11:18:16Z,2013-04-16T17:04:06Z,"The like_escape() function doesn't escape backslashes.

source:trunk/wp-includes/formatting.php@11518#L2260
{{{
	return str_replace(array(""%"", ""_""), array(""\\%"", ""\\_""), $text);
}}}
should be ...
{{{
	return str_replace(array(""\\"", ""%"", ""_""), array(""\\\\"", ""\\%"", ""\\_""), $text);
}}}
or simply ...
{{{
	return addcslashes($text, '%_');
}}}

Considering multi-byte characters ...
{{{
	if (function_exists('mb_ereg_replace')) {
		$text = mb_ereg_replace('\\\\', '\\\\', $text);
		$text = mb_ereg_replace('%', '\\%', $text);
		$text = mb_ereg_replace('_', '\\_', $text);
		return $text;
	} else {
		return addcslashes($text, '%_');
	}
}}}",miau_jp
Needs Early Attention,15657,wp_strip_all_tags causes paragraphs to run together,,Formatting,2.9,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2010-12-03T06:05:40Z,2011-12-27T20:49:30Z,"If a post contains HTML like ""foo<p>bar"", the RSS feed ends up with the text ""foobar"" instead of the more appropriate ""foo bar"" or even ""foo\n\nbar"".

Here is a simple patch to wp-includes/formatting.php that fixes this: basically, convert <p>, <br> and certain similar tags to newlines before calling the PHP-builtin strip_tags() function.
",jwz
Needs Early Attention,13340,wpautop breaks inline MathMl,,Formatting,2.9.2,normal,normal,Future Release,enhancement,new,needs-unit-tests,2010-05-11T14:04:58Z,2012-04-07T01:41:16Z,"wpautop treats inline &lt;math&gt; tags as block; they in fact may be placed block or inline, with their flow model dependent on the mode or CSS display property.

Trivial to fix; just needs someone to commit the change. Remove ""|math"" from $allblocks in file wp-includes/formatting.php. math tags on their own will be wrapped in a paragraph, which is fine.

As a very convenient enhancement, please replace on line 210:

{{{
     if ($br) {
-        $pee = preg_replace_callback('/<(script|style). ....
+        $pee = preg_replace_callback('/<(script|style|math) ...
}}}

to prevent MathML being polluted with breaks (current required workaround people are using is to have the whole block on one line, which is very messy to edit).",nicholaswilson
Needs Early Attention,20569,We need addslashes_deep(),,General,3.4,normal,major,Future Release,defect (bug),new,has-patch,2012-04-29T08:08:28Z,2012-09-02T03:15:55Z,"
I don't imagine anyone still feels that having `update_metadata()` call `stripslashes_deep()` is still the Right Thing to do, but I understand why removing it is basically impossible for backward compatibility reasons.

That said, !WordPress as a platform does not currently provide a way for this data to be stored accurately as a meta value:

{{{
$data = array(
	'Check me out, I have backslashes \\'
);
update_post_meta($post->ID, 'my_key', $data);
}}}

I'm not saying that this is a great deal better from a code purity standpoint:

{{{
$data = array(
	'Check me out, I have backslashes \\'
);
update_post_meta($post->ID, 'my_key', addslashes_deep($data));
}}}

but it's at least explainable.

Telling people they have to do something like this:

{{{
$data = array(
	'Check me out, I have backslashes \\'
);
$slashed_data = array();
foreach ($data as $item) {
	$slashed_data[] = addslashes($item);
}
update_post_meta($post->ID, 'my_key', $slashed_data);
}}}

or this:

{{{
if (!function_exists('addslashes_deep')) {
/**
 * Navigates through an array and adds slashes to the values.
 *
 * If an array is passed, the array_map() function causes a callback to pass the
 * value back to the function. Slashes will be added to this value.
 *
 * @since 3.4.0? (oh please, oh please, oh please)
 *
 * @param array|string $value The array or string to be slashed.
 * @return array|string Slashed array (or string in the callback).
 */
function addslashes_deep($value) {
	if ( is_array($value) ) {
		$value = array_map('addslashes_deep', $value);
	} elseif ( is_object($value) ) {
		$vars = get_object_vars( $value );
		foreach ($vars as $key=>$data) {
			$value->{$key} = addslashes_deep( $data );
		}
	} else {
		$value = addslashes($value);
	}

	return $value;
}
}

$data = array(
	'Check me out, I have backslashes \\'
);
update_post_meta($post->ID, 'my_key', addslashes_deep($data));
}}}

is just indefensible.

FWIW, @rboren created this function as [http://core.trac.wordpress.org/attachment/ticket/12402/12402.2.diff part of a patch] a couple of years back (#12402), but it hasn't landed yet. Pretty please can we get just this bit in for 3.4?",alexkingorg
Needs Early Attention,17923,add_query_arg() should encode values,,General,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-28T22:55:50Z,2013-02-26T14:08:52Z,"One (or me at least) would expect that the result of

{{{
add_query_arg( 'foobar', 'this&that', 'index.php' )
}}}

would be

{{{
index.php?foobar=this%26that
}}}

since the whole purpose of the function is to build a URL. However the actual result is

{{{
index.php?foobar=this&that
}}}

You're asking to the function to create a URL in which `foobar` is `this&that` but instead it creates a URL in which `foobar` is set to only `this`. You shouldn't have to pre-encode values -- the function should take care of it for you.

The function to ""blame"" for this is our `build_query()` which for some reason does not encode by default.

Semi-related: #16943",Viper007Bond
Needs Early Attention,22781,setUserSetting cannot handle hyphens,,General,2.7,normal,normal,Future Release,defect (bug),new,early,2012-12-06T06:18:39Z,2012-12-06T18:25:43Z,"sanitize_key() can, setUserSetting should be able to as well. It's not that sanitize_key() plays a role, but it sets expectations for what is allowed in keys across core. Both keys and values should be able to accept a hyphen.

The post-thumbnail image size cannot be remembered, for example, if it is added to image_size_names_choose.",nacin
Needs Early Attention,22487,Adding priority to settings sections.,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-17T09:08:34Z,2013-02-05T10:35:14Z,"Currently there is no way (at least that I could find) to specify the order of settings sections on a settings page (for example, a theme options page). Use case: a child theme adding a settings section to the parent theme's ""Theme Options"" page has no way of specifying where on the page the new section should be placed.

I've modified the add_settings_section() function to allow for a priority to be set (much like when adding sections to the theme customizer). I also added `uasort($wp_settings_sections[$page], 'compare_priority');` to the do_settings_section() function, where 'compare_priority' is a slightly modified version of the compare function used to set the priority of the theme customizer sections. The patch is based on version 3.4.2, but I'd be happy to make another for the development version if that would help.

This is my first patch submitted, so please let me know if I need to do anything differently. Thanks!",alexmansfield
Needs Early Attention,21466,Allow post password cookie expiry to be customized,,General,3.4.1,lowest,minor,Future Release,enhancement,new,has-patch,2012-08-04T20:52:35Z,2013-04-16T11:23:29Z,"It'd be nice if you could customize the expiry time for the post password cookie that is set in `wp-login.php?action=postpass`.

The only solution right now is [https://gist.github.com/3259814 pretty ugly].",Viper007Bond
Needs Early Attention,18954,Automatically whitelist screen options added via add_screen_option(),,General,,normal,normal,Future Release,enhancement,new,early,2011-10-14T22:54:08Z,2011-11-25T19:27:18Z,"{{{set_screen_options()}}} currently maintains a hardcoded whitelist of screens that can set options.

The list is extendable via the filter:

{{{
apply_filters('set-screen-option', false, $option, $value);
}}}

but that's sort of a pain.  If a plugin calls {{{add_screen_option()}}}, it should be added to the whitelist automatically.

Also note that {{{set_screen_options()}}} is called so early, there's no convenient place for plugins to add to the {{{set-screen-option}}} filter.  The best workaround I've been able to come up with is to manually call {{{set_screen_options()}}} again inside the page's {{{load-$hook}}}.

Example naive plugin code that does not work in <=3.3.

{{{
# Inside a menu page's load-$hook
// Display per-page settings in screen options
add_screen_option( 'per_page', array( 'label' => __( 'Things' ) ) );
}}}",mdawaffe
Needs Early Attention,22405,Easier expression of file sizes and other data amounts,,General,3.5,normal,normal,Future Release,enhancement,new,has-patch,2012-11-10T08:42:05Z,2012-11-18T11:10:49Z,"In the spirit of #20987 writing {{{64 * 1024 * 1024 * 1024 * 1024}}} isn't very readable and cool.

Here is a patch, which adds a couple of constants like {{{KB_IN_BYTES}}}, {{{MB_IN_BYTES}}}, etc.",nbachiyski
Needs Early Attention,22400,"Remove all, or at least most, uses of extract() within WordPress",,General,3.4.2,normal,normal,Future Release,enhancement,new,early,2012-11-09T22:47:37Z,2013-03-13T15:19:56Z,"`extract()` is a terrible function that makes code harder to debug and harder to understand. We should discourage it's use and remove all of our uses of it.

Joseph Scott has [http://josephscott.org/archives/2009/02/i-dont-like-phps-extract-function/ a good write-up of why it's bad].",Viper007Bond
Needs Early Attention,7394,Search: order results by relevance,,General,2.6,normal,normal,Future Release,enhancement,assigned,has-patch,2008-07-24T02:54:18Z,2013-05-14T12:42:59Z,"I have 35 pages in my WordPress install.  My ""About"" page is on '''the second page of results''' when I search for ""about""

We should put hits on the title first in the results list.

I'm open to suggestions for possible technical implementations.",markjaquith
Needs Early Attention,13841,Some HTTP Transports do not respect transfer timeouts,,HTTP,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-11T04:48:30Z,2012-08-03T01:30:39Z,"While doing some testing I found that fopen, fsockopen and streams do not respect transfer timeouts.

Out fopen transport cannot support a transfer timeout properly because we do not pass the 3rd optional parameter to fopen for stream context.  We don't do this on purpose because the 3rd parameter was not added until php 5, and that is partially what the streams transport is designed to cover.  So in short, unless we want to conditionally use the streams context here for php versions > 5, we cannot reliably use transfer timeouts.

The streams timeout was missing the context for timeout, which does support ""microtime"".  However, unsure at this point why, but the timeout needs to be divided by 2, so that the timeout happens requested timeout.

With fsockopen, we need to actually test for the timeout during the while loop, because the stream_set_timeout applies to each pass of fread and not the total process.",sivel
Needs Early Attention,16606,WP_Http_Streams::test doesn't check enough to confirm if it can do HTTPS,,HTTP,3.0.5,high,major,Future Release,defect (bug),new,has-patch,2011-02-21T08:16:44Z,2013-01-20T20:44:55Z,"The WP_Http_Streams doesn't check for all it's prerequisites before saying it can process HTTPS request.

It seems to be common for the openssl extension to no be loaded.

Example Warnings:

{{{
[21-Feb-2011 08:06:48] PHP Warning:  fopen() [<a href='function.fopen'>function.fopen</a>]: Unable to find the wrapper &quot;https&quot; - did you forget to enable it when you configured PHP? in .../wp-includes/class-http.php on line 1063
[21-Feb-2011 08:06:48] PHP Warning:  fopen(https://example.com/feed/) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in .../wp-includes/class-http.php on line 1063
}}}

We need to at least check: {{{extension_loaded( 'openssl' )}}}
",westi
Needs Early Attention,23163,3.6 Network Admin Help Text,,Help/About,,low,normal,Future Release,enhancement,new,has-patch,2013-01-09T23:35:35Z,2013-03-09T03:19:18Z,"One of the [http://make.wordpress.org/docs Doc team's] action items for 3.6 is to work on overhauling the Network Admin help tabs, many of which contain outdated and, well, unhelpful information. 

Our goals:
* Focus on writing action vs description-based help text
* Aim for a consistent voice
* Pave the way for future Help UI changes in how we structure the information

Any Network Admin screen is fair game but by no means do we intend to change strings just for the sake of change. It was the consensus of the team to focus on this effort earlier in the release cycle than usual so that translators will have plenty of time to work on new strings and provide feedback.

Following some [https://twitter.com/DrewAPicture/status/295248525699190785 feedback] from @nacin, @markjaquith, and @aaroncampbell, it was decided the best format for concatenating help tabs strings should follow this format going forward:

{{{
$example_string = '<p>' . __( 'This is some help text' ) . '</p>';
$example_string .= '<p>' . __( 'This is some more help text' ) . '</p>';
 
get_current_screen()->add_help_tab( array(
'id'	=> 'example',
'title'	=> __( 'Example' ),
'content'	=> $example_string
) );
}}}",DrewAPicture
Needs Early Attention,21583,Improve discoverability and visual design of Screen Options and Help Panels,,Help/About,,normal,normal,Future Release,enhancement,new,early,2012-08-14T22:34:05Z,2012-11-03T05:36:33Z,"The Screen Options and Help panels are not very discoverable and, in part because of this, aren't very helpful to our users.

Here are the problems with them right now:

* Most users are blind to these tabs.
* The labels and positioning give little indication as to what these tabs actually do.
* For a lot of users, Help is not that helpful.
*They’re position in the admin creates yet another point of navigation for users to be aware of (and per #1, most of them aren’t).
* The very wide container for text makes a lot of the help text difficult to read.

Here are some proposals to improve the design and discoverability of these tabs (related images and mockups are here: http://make.wordpress.org/ui/2012/08/06/we-did-some-brainstorming-at-dev-day-today/) :
* Adding icons to these tabs would (hopefully) both make these tabs more visible and give a better indication as to what these tabs too.
* Moving these to the right side of the toolbar would give even more context to what these do, as they would be grouped with other user-specific settings.
* (6) The toolbar dropdown would allow for a slimmer content area for better readability.
* (7) The slimmer content area would let us make screen options read like a list for better scannability.
* (4/5) Putting the gear on the upper right would standardise with several other web apps (Twitter, etc).

Related: #21326",chexee
Needs Early Attention,22302,Multisite administration - default date format,,I18N,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-10-29T15:11:58Z,2012-11-07T18:17:39Z,"1) There is default non-translatable format for dates in multisite administration:

Sites - All sites (columns Last Updated and Registered)

Users - All users (column Registered)

Please see attached patch, I used existing localization format.

2) Sites - All sites - Edit any site. There are also Registered and Last Updated values in default date format, but I am not sure how to solve this issue...",pavelevap
Needs Early Attention,15534,Add more info to moderation emails,,Mail,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-11-21T23:43:41Z,2011-01-09T07:07:35Z,"When comments have been approved, include who approved it in the email that gets sent to admin saying there's a new comment. I.e.:

""Ryan approved this comment:
[current comment info in email]""",jane
Needs Early Attention,19730,"Death ""Add Media"" link after permanently deleting media items.",,Media,3.3,normal,minor,Future Release,defect (bug),new,has-patch,2012-01-04T10:30:13Z,2012-05-01T13:27:10Z,"After deleting a media item permanently and try to directly add a new one via the 'title-menu-link' (the button-link near the ""Media"" title in the admin screen) will result in a death link (""Invalid post type"").

Follow these steps to reproduce the death link(s):

If you have no '''unattachted''' media in your library, first do this:
- Media > Add New
- From the 'title' menu ""Add New"" (Button near ""Media Library"" at the top)
- Add a random image/file and press ""Save changes""
- You'll get redirected back to the overview of all your media.

If you already have one or more '''unattached''' media items in the library:
- Click on the ""Delete Permanently"" link of the file you just uploaded (the unattached file) (and press oke in the alert dialog)
- This is where something goes wrong: You'r now redirected to the edit.php page where you can read: ""Item permanently deleted."". Now click again on the ""Add New"" link in the title-menu near the title ""Media""
- You're now redirected to an invalid page: ""Invalid post type"".
",Jordi-Fun
Needs Early Attention,16330,"media_sideload_image() broken with filenames containing strange characters (e.g., +, %)",,Media,3.1,normal,major,Future Release,defect (bug),reopened,needs-unit-tests,2011-01-21T13:56:19Z,2013-03-17T10:31:55Z,"I'm using the {{{media_sideload_image()}}} method in the upcoming version of my [http://wordpress.org/extend/plugins/e107-importer/ e107 Importer script] (see: http://github.com/kdeldycke/e107-importer/blob/b7925fdac6aa43db4be5b7925265a83d95fc62ad/e107-importer.php#L277 ) to upload remote images into WordPress.

This method work as expected with lots of images from a lot of different sources, but fail on URLs containing spaces.

Let me illustrate this bug with an example.

When trying to upload the image located at
{{{
http://home.nordnet.fr/francois.jankowski/pochette avant thumb.jpg
}}}
the result looks like this on the file system: http://twitpic.com/3s0dk7 . As you can see, image file names are clean. But in the Media Manager, here is what you have: http://twitpic.com/3s0e5d . No thumbnails seems to have been created.

Now, trying to fix this, I modified the original URL before calling {{{media_sideload_image()}}} with the following code:
{{{
  $img_url = str_replace(' ', '%20', html_entity_decode($img_url));
  $new_tag = media_sideload_image($img_url, $post_id);
}}}
With this patch, here is the result on the filesystem: http://twitpic.com/3s0ets . I was surprised by WordPress not sanitizing URLs. Is that normal ?

But the most surprising stuff is in the Media Manager: http://twitpic.com/3s0hup . It looks like thanks to this hack, WordPress somehow succeeded downloading the remote file but messed with filesystem naming. What let me think this ? The Media Manager, get the right image thumbnail dimensions but not the binary payload of the thumbnail (contrary to the case above were no binary nor dimensions are available about the thumbnail).

All of this was tested in WordPress 3.1-RC2.

As for the idea of the patch above, it come from a very old version of my plugin (v0.9) that was based on WordPress 2.3.2. There, I somehow found the root cause of the problem, [http://github.com/kdeldycke/e107-importer/blob/e107-importer-0.9/e107.php#L410 according the comment I wrote 3 years ago]:
{{{
 // The fopen() function in wp_remote_fopen() don't like URLs with space chars not translated to html entities
}}}

I should have posted this bug report sooner, as now I've forgotten everything about this issue... :(",Coolkevman
Needs Early Attention,22768,"EXIF/IPTC captions should populate caption/post_excerpt on upload, not description/post_content",,Media,2.5,normal,normal,Future Release,enhancement,new,early,2012-12-06T00:24:39Z,2012-12-15T20:10:37Z,"It's been this way forever, but it is dumping data into the wrong field. Two schools of thought on this:

 * Plugins have used the description field, so we should not change this.

 * Users continue to struggle with moving *captions* from the description field to the caption field, so we should change this.

I am in the latter school of thought. A plugin can remain compatible by ensuring it checks either description or caption before falling back to the other.",nacin
Needs Early Attention,23331,Gmagick support,,Media,,normal,normal,Future Release,enhancement,new,has-patch,2013-01-30T22:33:53Z,2013-04-25T20:50:14Z,In 3.5 we added Imagick support. It would be great to also include Gmagick. Since Graphicmagick is just more awesome then ImageMagick.,markoheijnen
Needs Early Attention,19629,return option for media_sideload_image,,Media,3.3,normal,minor,Future Release,enhancement,new,has-patch,2011-12-21T09:14:50Z,2012-11-12T21:10:09Z,"An optional parameter to return the attachment id opposed to the html would be beneficial to those attempting to make use of this functionality outside of press this.

Ticket: #11993 has an enhancement suggestion to allow adding thumbnails from URL.  I have written a solution for this enhancement, and the result duplicates the functionality of media_sideload_image() setting the post thumbnail opposed to returning the image html markup.",slbmeh
Needs Early Attention,15214,Add class for menu items containing a sub-menu,,Menus,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-10-25T20:51:40Z,2013-04-23T02:12:41Z,"I wanted to add a class to the menu item LI elements for navigation menus that have sub menus. This would allow me to do some specific styling such as using a background that shows that a sub menu is available on hover.

I found that adding this support for both the wp_nav_menu and wp_list_pages functions was quite simple. So, I put together a patch in case it might be a good candidate for core.

The new classes are menu-item-with-sub-menu and page_item_with_children for wp_nav_menu and wp_list_pages, respectively. These class names were chosen to closely match the existing navigation classes of menu-item, sub-menu, page_item, and children.

I should note that while making this modification I found that the display_element method of the Walker class doesn't set has_children when $args is an object, just when it is an array. The patch also handles fixing this shortcoming of the Walker API.",chrisbliss18
Needs Early Attention,19949,Make update_post_thumbnail_cache() work for any instance,,Performance,,normal,normal,Future Release,enhancement,new,has-patch,2012-02-02T22:40:03Z,2012-11-27T00:32:47Z,"It would be useful if update_post_thumbnail_cache() [17883] would accept an optional $wp_query parameter, so that users aren't forced to use query_posts() in order to benefit from it.",scribu
Needs Early Attention,22828,Remove Duplicate Array Check,,Performance,3.4.2,normal,normal,Future Release,enhancement,new,has-patch,2012-12-08T18:33:52Z,2012-12-08T21:22:49Z,"I just stumbled across this silly bit of code in function get_core_updates()

{{{
if ( !isset( $from_api->updates ) || !is_array( $from_api->updates ) ) return false;
$updates = $from_api->updates;
if ( !is_array( $updates ) ) return false;
}}}
",miqrogroove
Needs Early Attention,17268,Use native gettext library when available,,Performance,,normal,normal,Future Release,enhancement,new,has-patch,2011-04-28T11:32:30Z,2012-11-10T07:57:24Z,"[http://codex.wordpress.org/Translating_WordPress Here] you say that the GNU gettext-Framework is used. Exactly, ""pomo"" (file: wp-includes/l10n.php) is a complete own php-implementation of the gettext-program.

I've added a patch to solve this problem. Maybe it is not very good, but it works. On my wordpress-sites, the used php-memory returns from about 65% to about 12% and the site is running much faster when patching wp-includes/l10n.php.

I know that gettext is not available on every wordpress-installation, but when it's available, it should be used.

Sorry for my bad english, I'm german.",linushoppe
Needs Early Attention,20419,get_sample_permalink() passes the wrong post_status to wp_unique_post_slug(),,Permalinks,3.3,normal,minor,Future Release,defect (bug),new,has-patch,2012-04-11T23:15:38Z,2013-05-09T04:19:10Z,"get_sample_permalink() fakes a 'publish' post_status so that it can create a pseudo-permalink for drafts and scheduled posts.  Also wp_unique_post_slug() bails when the post_status is 'draft', 'pending', or 'auto-draft', so faking a 'publish' post_status helps there too.

However, that means the incorrect post_status is passed to the 'wp_unique_post_slug' filter at times, creating unexpected behaviour -- namely sometimes the $post_status parameter of the wp_unique_post_slug filter will report a non-published post is published.  

The best approach here seems to be to let the wp_unique_post_slug() function know when a fake $post_status is being passed to it, what that status is so it can be passed to the wp_unique_post_slug filter.  That way anybody using the filter will always get the actual post status all the time without having to do anything special.

Related: #14111",mintindeed
Needs Early Attention,10535,_wp_filter_build_unique_id issues with the first time a filter is hooked by a class,,Plugins,2.9,normal,normal,Future Release,defect (bug),reopened,has-patch,2009-08-02T12:22:18Z,2013-01-10T20:02:38Z,"Ref #8723

The first time _wp_filter_build_unique_id is used to generate an ID the ID returned is different to the second time it is called. This presents a problem if the first ID is used when adding a filter which then needs to be removed later in the app flow... as the IDs don't match the filter is unremovable.

One workaround proposed is to set a wp_filter_id property before add the filter, and this will cause _wp_filter_build_unique_id to bypass the problem code and effectively forces the ""unique"" ID which is generated... this workaround feels unpoetic. ;)",simonwheatley
Needs Early Attention,14881,do_action should not pass empty string by default,,Plugins,,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-15T20:44:56Z,2012-05-17T21:09:41Z,"{{{
function test( $a = true ) {
   var_dump( $a );
}
add_action( 'test', 'test' );
add_action( 'test', 'test', 10, 0 );
do_action( 'test' );
}}}
Second example is bool(true) as expected, but the first is a zero-length string.

In this case, since do_action() is not passing any arguments, then no arguments should be passed to test() -- even if by default, one argument gets passed.

The issue here is how do_action() is defined: `function do_action( $tag, $arg = '' );`. There's our zero-length string. Of note, apply_filters() does not have this same issue.

The solution looks something like what I have attached. Has yet to be benchmarked.

Of note, this does not appear to have any direct implications for passing all args by default, as proposed in #14671, but I wanted to reference it anyway.",nacin
Needs Early Attention,21169,remove_action on a tag within do_action for that tag can cause actions to be missed,,Plugins,,normal,major,Future Release,defect (bug),new,has-patch,2012-07-05T21:08:22Z,2012-11-07T15:35:21Z,"'''Problem:'''

If an action (or filter) in a given priority for a given tag removes itself as part of its execution, and it was the only action/filter at that priority for that tag (or only one remaining), the next priority level is skipped.

'''Reproduction:'''

See the attached unit test.

'''Analysis:'''

This appears to possibly be a bug (or at least an undocumented feature) of PHP (tested up to 5.4.3), where next() falls over if the current array element is unset (but each() has no problem even if the /next/ array element is unset).  Example non-WP code demonstrating this is included.

'''Proposed solution / workaround:'''

Switch all uses of next() in plugin.php to use each() instead; I've included a proposed patch.

Props to smathiascrowdfavorite for bringing this bug to my attention.",devesine
Needs Early Attention,22080,add_theme_support should merge post-thumbnail post types by default (currently stomps),,Post Thumbnails,2.9,normal,normal,Future Release,enhancement,new,has-patch,2012-10-02T19:44:59Z,2013-05-22T23:11:39Z,"As documented in the Codex:

http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails

you can pass a second param to `add_theme_support( 'post-thumbnails' )` to specify the post types you want support enabled for. I expected any post types I passed in to be added to the currently specified post types, instead the passed value stomps the existing value. This means that if you create plugin that registers a post type and enables post-thumbnails for it, you need to write code like this:

https://gist.github.com/3822786

instead of a simple:

`add_theme_support( 'post-thumbnails', array( 'my-new-post-type' ) );`

The latter makes more sense to me, and I think it's likely other devs might make the same mistake and accidentally stomp on the previous value for post-thumbnails.

The attached patch enables a merge or stomp behavior for post-thumbnails. It defaults to ""merge"". Passing a `bool true` as a 3rd param will cause the second param to replace the existing value (current behavior).",alexkingorg
Needs Early Attention,24248,'guid' not properly escaped,,Post Types,2.5,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2013-05-02T14:03:35Z,2013-05-10T20:37:34Z,"Probably related issues: #18274 #19248

'guid' being saved in database not properly escaped, example:
{{{http://www.wordpress.dev/?post_type=changeset&#038;p=57}}} , see the ampersand encode {{{&#038;}}}
It supposed to be {{{&}}} or at least {{{&amp;}}}

Once 'auto-draft' saved, 'guid' is correct: {{{http://www.wordpress.dev/?post_type=changeset&p=57}}}

Once post is saved as 'draft' or published (triggered 'update post' on auto-draft), 'guid' gets malformed.

Source of issue: inappropriate usage of {{{get_post_field()}}} function in the {{{wp_insert_post()}}}

{{{get_post_field()}}} defaults to 'display' context, we not specify context while obtaining field, and in the {{{wp_insert_post()}}} we are not going to display it anywhere, just get, check, and save again, correct?

Attached patch adds the 'raw' context to usage of {{{get_post_field()}}} with 'guid'

",meloniq
Needs Early Attention,21963,Consolidate post insertion APIs,,Post Types,,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2012-09-22T03:46:24Z,2012-12-27T15:14:44Z,"In wp-includes, we have:
 * wp_insert_post()
 * wp_insert_attachment()
 * wp_update_post()
 * wp_publish_post()

For saving from the admin, we have:
 * edit_post()
 * wp_write_post()
 * write_post()

'''wp_publish_post()''' is, as of [21942], now wraps wp_insert_post().

'''wp_update_post()''' is a fairly mundane wrapper of wp_insert_post(), but we really should eliminate the differences between the two functions and make it a straight-up wrapper.

'''wp_insert_attachment()''' was a fork of wp_insert_post(), and wp_insert_post() has gotten a lot of improvements that haven't reached wp_insert_attachment(). It doesn't take much to merge these two, though, and make wp_insert_attachment() a wrapper.

'''wp_write_post()''' calls edit_post() if it has a post ID. And since we have had a post ID since the days of auto-drafts, this function is dead code. It's wrapper, '''write_post()''', can also be deprecated.

I'm attaching a patch that takes care of wp_insert_post(), wp_write_post(), and write_post(). wp_update_post() will require a bit more concentration.

Needs testing and unit tests.",nacin
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,16854,wp_query does not handle multiple exclude author properly,,Query,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-14T11:35:11Z,2013-04-25T17:07:03Z,"when making a query with $args containing 

{{{
'author' => '-2,-3,-4'
}}}

line 2008 of wp-includes/query.php only uses 1 element of the array that is created from the 
{{{
$q['author'] string
}}}

{{{
 $q['author'] = explode('-', $q['author']);
 $q['author'] = (string)absint($q['author'][1]);
}}}

I have attached a patch that works with 1 or more excluded authors

essentially it, implodes the array back into a string of author ID's rather than selecting only element [1] of the exploded array

{{{
$q['author'] = explode('-', $q['author']);
$q['author'] = implode('',$q['author']);
}}}
",commentluv
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,17646,wp_get_object_terms should return arrays of integers for IDs and tt_IDs,,Taxonomy,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-01T18:00:41Z,2013-05-14T11:39:18Z,"Currently when you use ```wp_get_object_terms``` to request an array of IDs or tt_IDs, the array returned contains strings representing the IDs, not integers. This then creates issues if you send the values back into ```wp_set_object_terms``` as it creates terms named as per those strings, rather than associating the term_ids as expected.

Code to prove the issue:

{{{
$term_ids = wp_get_object_terms( get_the_ID(), 'category', array( 'fields' => 'tt_ids' ) );
var_dump( $term_ids );
}}}

Results in:

{{{
array
  0 => string '1' (length=1)
  1 => string '5' (length=1)
}}}

I believe that the array should have all values cast to integers before they are returned. The attached patch does this by mapping a created function to utilise ```(int)``` for the desired result.",simonwheatley
Needs Early Attention,20930,register_taxonomy show_in_menu option,,Taxonomy,,normal,normal,Future Release,enhancement,new,has-patch,2012-06-12T23:07:30Z,2012-11-23T19:55:35Z,"Shouldn't taxonomies have a show_in_menu option for taxonomies as well. Of course, this would be the same as custom post types affecting the registration and the $parent_file.

The original attachment has the parent file logic via the filter, 'parent_file'.",wpsmith
Needs Early Attention,19373,wp_insert_post() should not contain current_user_can() checks,,Taxonomy,3.0,normal,major,Future Release,enhancement,new,has-patch,2011-11-27T17:02:31Z,2013-05-16T11:57:33Z,"wp_insert_post() is a utility function, it should not have a reliance on user capabilities. There are only two places in this function where there is a current_user_can() check - for updating custom taxonomies and for setting post slugs. All other checks (can user publish posts, etc.) are properly handled outside of the utility function.

wp_insert_post() should be safe to use in code that is run without a user context, for example via CRON. With the current code, this is the case *except* for the custom taxonomy feature. This inconsistency can cause a BrilliantDeveloperTM to lose a good deal of time debugging why the same data being passed in is coming back with different results.

For 3.4 (please!), perhaps we can figure out a way to move the checks for user capabilities on taxonomies out of the utility function and into the controller/procedural code. I'm happy to author and submit a patch once an approach has been determined.

For other developers who run into this and need to work around it, either of these 2 options work:

1. call wp_set_post_terms() to add your taxonomies after calling wp_insert_post()
2. set up a ""current user"" in your script before calling wp_insert_post()",alexkingorg
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,14955,Themes should support uninstall.php or uninstall hook,,Themes,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-09-23T22:59:57Z,2012-10-09T16:13:14Z,"Related tickets on extending Themes to have Plugin features: #7795 and #14849 but those deal primarily with activation and deactivation centering around 'switch_themes' action.

From looking at /wp-admin/includes/plugin.php, adding support for uninstall is a separate concern (and it doesn't have the issue blocking activation/deactivation).

Should is_uninstallable_plugin, register_uninstall_hook and uninstall_plugin be extended to check theme directory or should versions (is_uninstallable_theme, register_uninstall_theme_hook and uninstall_theme) be added to theme.php?

Advantage of the first method is that the register_uninstall_hook could be reused for Themes where in the second, a new, less attractive name would be needed (register_uninstall_theme_hook?) Also, there's no theme_basename as it was reverted/removed.",WraithKenny
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Early Attention,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
Needs Docs or Unit Tests,14485,Taxonomy hierarchy cache isn't properly refreshed,,Cache,3.0,high,normal,Future Release,defect (bug),new,needs-unit-tests,2010-07-31T03:11:13Z,2013-04-30T20:46:25Z,"I've developed a plugin that can create parent and children categories at the same time. It works well at 2.8.6 but it doesn't work as what I expect at 3.0.

When I create new parent and children categories at the same time, it only shows parent category in the Categories dashboard, but the children category is actually created. If I create another category or delete one category, the children category shows up. I think it should be a problem of wordpress cache, but I have no idea where to start tracing.

I use wp_create_category at wp-admin/includes/taxonomy.php to create categories. Besides, I have tried clean_term_cache but it didn't help. And I didn't activate other plugins when I tested this plugin.

It happened exactly when creating NEW parent and children categories.",thealien
Needs Docs or Unit Tests,18734,Subcategory archive does work with any name as parent category in URL,,Canonical,3.0.1,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2011-09-21T15:10:46Z,2012-10-22T23:10:00Z,"Parent category is ''parentcategory'' and his sub category is ''subcategory''.

The URL will be ''domain.com/category/parentcategory/subcategory''.

The problem is, that you will get the same page if you use any words as ''parentcategory''.

Examples:
- ''domain.com/category/xxx/subcategory''
- ''domain.com/category/subcategory''
- ''domain.com/category/foo/bar/subcategory''

IMO {{{redirect_canonical}}} should do his work here (and sometimes it does).

In 3.1 it does redirect.
In 3.1.4 it doesn't redirect; after r17549.
In 3.2.1 it doesn't redirect.
Duck_ found that it does redirect before r18079.
In current trunk it doesn't redirect.


",ocean90
Needs Docs or Unit Tests,21602,redirect_canonical can lead to infinite loop on index navigation if site url is not all lower case,,Canonical,,normal,normal,Awaiting Review,defect (bug),new,needs-unit-tests,2012-08-15T21:31:17Z,2013-04-23T07:53:55Z,"The function redirect_canonical in wp-includes/canonical.php (WordPress 3.4.1) on line 406 and 422 makes the following check:


{{{
if ( !$redirect_url || $redirect_url == $requested_url )
		return false;
}}}


This ensures that it does not attempt to redirect you to the page you requested in the first place. However this function is not case sensitive so if the redirect URL is in a different case than the requested URL then the user can enter an infinite redirect loop. (For example if the Site Address (URL) of the site is set to be in all upper case.) 

This function should do a case-insensitive string comparison since domain names are case-insensitive.


The issue only appears to happen with certain plugins installed (ShareThis and PilotPress both led to this issue,) I haven't figured out yet why it's only an issue with certain plugins but it should still be fixed in WordPress to make the proper string comparison. ",sreedoap
Needs Docs or Unit Tests,9993,Rss and atom feeds are dropping some characters,,Feeds,2.7.1,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2009-05-31T23:54:40Z,2012-10-17T19:40:12Z,"Blog post with title:

{{{
& > test <
}}}

has the less than ( < ) is stripped from the atom and rss feed.

",pm24601
Needs Docs or Unit Tests,8775,Numbers in quotation marks get wrong smart quotes,,Formatting,2.8,normal,normal,Future Release,defect (bug),reopened,needs-unit-tests,2009-01-01T18:05:14Z,2013-05-01T15:41:31Z,"Have a number in quotation marks, such as {{{""12345""}}} or {{{'12345'}}} and {{{wptexturize}}} converts the right quotation mark to double-prime and prime marks, respectively.

Patch fixes.",filosofo
Needs Docs or Unit Tests,20943,Paragraphs get removed in table cells when Visual editor is refreshed,,Formatting,3.2,normal,normal,Awaiting Review,defect (bug),new,needs-unit-tests,2012-06-13T19:06:04Z,2013-04-18T16:14:03Z,"As far as I know, this issue has been around since 3.1.  It's not a bug in 3.0.4.  I even stopped upgrading at 3.0.4 for any sites where I knew the client would need to edit tabular data.  For security reasons, it's time to upgrade these and I'd REALLY like this issue to be fixed.

The problem happens when using paragraphs in a table cell.  When I hit enter to create a new paragraph within a table cell, it looks fine.  If I then hit Update/Publish, when the page refreshes, WordPress converts that paragraph break into a single line break.  If I then click Update again, WordPress removes that linebreak entirely and the paragraphs are essentially merged.

I can also reproduce this behaviour without even clicking Update.  If you just switch to HTML mode and then back to Visual mode, the same issue occurs.",JboyJW
Needs Docs or Unit Tests,20304,Strikethrough does not work for multiple paragraphs in the post editor,,Formatting,3.4,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2012-03-25T20:13:00Z,2012-05-24T07:32:15Z,"'''Overview'''

If you have multiple paragraphs of text in the text editor and select all of them and push the strikethrough button, the text appears to be striked through; however, upon publishing/updating, only the first paragraph of text retains the strikethrough.

'''Steps to Reproduce'''

1) In a new post write screen add two paragraphs of text.

2) Select all of the text

3) Click the strikethrough button

4) Viewing the HTML of the rich text editor through web inspector (note that I am not toggling the visual/html tabs) shows:


{{{
<del>
	<p>text</p>
	<p>text</p>
</del>
}}}


5) Save post 

6) The text in the textarea only has strikeout for the first paragraph.

7) When viewing the source of the content on the front end, you get the following HTML:


{{{
<p>
	<del>text
</p>
<p>text</p>
<p>
	</del>
</p>
}}}


'''Other Information'''

I have tried these same steps on a clean install of 3.3.1. The strikethrough works as expected, and produces in all scenarios:


{{{
<p>
	<del>text</del>
</p>
<p>
	<del>text</del>
</p>
}}}

		
I first had this issue crop up for a .com client approximately 3-4 weeks ago, so this issue may have been introduced with a more recent patch.",tollmanz
Needs Docs or Unit Tests,23922,make_clickable() breaks when colon in hash,,Formatting,,lowest,minor,Awaiting Review,defect (bug),new,needs-unit-tests,2013-04-03T00:41:39Z,2013-04-03T19:31:00Z,"`make_clickable()` doesn't like this string:

{{{
<a href=""http://en.wikipedia.org/wiki/URI_scheme#tel:"">http://en.wikipedia.org/wiki/URI_scheme#tel:</a>
}}}

It results in this HTML:

{{{
<a href=""http://en.wikipedia.org/wiki/URI_scheme#tel:""><a href=""http://en.wikipedia.org/wiki/URI_scheme#tel"" rel=""nofollow"">http://en.wikipedia.org/wiki/URI_scheme#tel</a>:</a>
}}}

Specifically it's the colon that is causing the issue. It can be a part of the URL too, it doesn't have to be a part of an anchor.",Viper007Bond
Needs Docs or Unit Tests,2833,wpautop breaks style and script tags,,Formatting,2.0.3,low,normal,Future Release,defect (bug),reopened,needs-unit-tests,2006-06-17T20:36:00Z,2012-09-09T21:01:21Z,"When I create a post in which I want to include Javascript or some styles, WordPress 'breaks'when showing those posts, because all newlines in the SCRIPT and STYLE tag are converted into BR tags.

Example:
{{{
<style type=""text/css>
.matt { color: #FFFFFF; }
</style>
}}}
Becomes:
{{{
<style type=""text/css><br />
.matt { color: #FFFFFF; }<br />
</style><br />
}}}

And:
{{{
<script type=""text/javascript""><!--
google_ad_client = ""xxxxxxxx"";
google_ad_width = 120;
google_ad_height = 60;
google_ad_format = ""120x60_as_rimg"";
google_cpa_choice = ""CAAQ2eOZzgEaCD4zuVkdzt_CKI-293M"";
//--></script>
}}}
Becomes
{{{
<script type=""text/javascript""><!--<br />
google_ad_client = ""xxxxxxxx"";<br />
google_ad_width = 120;<br />
google_ad_height = 60;<br />
google_ad_format = ""120x60_as_rimg"";<br />
google_cpa_choice = ""CAAQ2eOZzgEaCD4zuVkdzt_CKI-293M"";<br />
//--></script><br />
}}}

This happens because wpautop adds those BR tags to the post. (As it should, just not within STYLE or SCRIPT tags.)

I've made a (temporary?) workaround for this by creating a pre and post event for wpautop, which substitute the necessary newlines by a temporary value in the pre event and placing them back in the post event. Although I think this should be incorporated in wpautop itself.

See also: http://wordpress.org/support/topic/76433 and http://wordpress.org/support/topic/76297

While searching trac I also found ticket #2346, which is about the same problem, but which was for 2.0 and self-closed by the submitter?

P.S. I have TinyMCE turned of.",Nazgul
Needs Docs or Unit Tests,8912,wptexturize malforms HTML comments that contain HTML tags,,Formatting,2.7,normal,normal,Future Release,defect (bug),reopened,needs-unit-tests,2009-01-21T20:16:08Z,2013-03-18T15:01:17Z,"Because it's replacing -- with #8211, a comment like <!-- whatever --> put into the HTML part of a post gets broken.

This makes it difficult for people writing special HTML in posts (like people putting in object tags, or javascript, or whatever) to do that sort of thing.

What is needed is to recognize --> as different from -- and not replace it with the en dash in that case.
",Otto42
Needs Docs or Unit Tests,19308,"C-style hexadecimal is incorrectly ""fixed"" to change the 'x' into a mathematical '×'",,Formatting,2.1,normal,normal,Awaiting Review,enhancement,new,needs-unit-tests,2011-11-21T00:39:00Z,2011-11-30T16:49:55Z,"Pretty much what the title says. I'm running trunk. ""0x07"" gets converted to ""0×07"".

I've attached a patch which fixes this issue by not performing the conversion if the first number starts with a zero -- this is not perfect, and I might have a go at something better when it's not 0030, if you guys decide this should be changed.

My $0.02 - since it's a bit odd to multiply zero by something, I don't think that very many people will expect/want this conversion to happen -- and the lack of conversion is unlikely to confuse those that do. 

On the other hand, this conversion is confusing for any blog post using this hex notation, and does make those posts actually wrong.

",harrym
Needs Docs or Unit Tests,20522,the sanitize_file_name_chars filter and ch(0),,Formatting,,normal,minor,Awaiting Review,enhancement,new,needs-unit-tests,2012-04-23T08:26:28Z,2012-04-24T00:41:12Z,"the sanitize_file_name_chars filter is tricky to use due to the chr(0) ending the array :

both 
{{{
special_chars[] = $my_char; 
}}}
and 
{{{
array_push($special_chars, $mychar);
}}}
have no effect.

so the only way to add some char to the array is to use array_unshift :
{{{
array_unshift($special_chars, $mychar);
}}}

adding 

this is mostly a php issue, but it could be useful to add some notice to the WordPress documentation.

",olivM
Needs Docs or Unit Tests,14754,add_query_arg() refactoring,,General,,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2010-09-01T16:32:20Z,2011-03-23T19:34:24Z,"The function add_query_arg() looks like that it could benefit from a refactoring. Especially the handling of optional parameters (did introduce PHP 4 that language feature?) can benefit by a sligh touch-up.

Attached patch reflects only the first few lines of the function.",hakre
Needs Docs or Unit Tests,23881,get_transient() could delete transient timeout options in an unexpected way,,General,2.8,normal,minor,Future Release,defect (bug),new,needs-unit-tests,2013-03-28T11:02:07Z,2013-04-22T21:17:24Z,"get_transient() could delete transient timeout options if a given transient name has the ""timeout_"" prefix.

To reproduce:
{{{
set_transient( 'test', 'test', 60*60 );
get_transient( 'timeout_test' ); // will delete the _transient_timeout_test option
}}}

Solution:

Check if get_option( $transient_timeout ) is not returning false.
{{{
if ( false !== get_option( $transient_timeout ) && get_option( $transient_timeout ) < time() ) {
}}}
",tenpura
Needs Docs or Unit Tests,16943,Code Cleanup add_query_arg() + friends,,General,3.1,normal,normal,Awaiting Review,enhancement,new,needs-unit-tests,2011-03-23T05:41:22Z,2011-03-23T07:11:27Z,"This should reduce the complexity of add_query_arg() a bit.

This is partially related to PHP 5 stuff (#16918,#16920) we can make use of now.

Originated in #16932 

Related: #16942",hakre
Needs Docs or Unit Tests,21959,No way to override the name of an image when that is being resized,,Media,3.4.2,normal,normal,Awaiting Review,enhancement,new,needs-docs,2012-09-21T16:34:23Z,2012-09-22T20:42:44Z,"The most obvious solution is to add a hook to allow the destination file name to be modified. 

The solution attached gives pretty much all the information you could possibly want to modify the filename as you might need to.",jkmassel
Needs Docs or Unit Tests,16282,PHP catchable error with get_term_link and WP3.1RC2,,Multisite,3.1,normal,major,Future Release,defect (bug),reopened,needs-unit-tests,2011-01-18T12:23:37Z,2011-03-08T23:10:45Z,"I recently updated my WP Network to 3.1RC2, and suddenly the get_term_link() I was using in the footer gave me this error:

  PHP Catchable fatal error: Object of class WP_Error could not be converted to string

It was working fine in 3.0.4",illutic
Needs Docs or Unit Tests,22192,update_metadata() and update_option() strict checks can cause false negatives,,Performance,,normal,normal,Future Release,defect (bug),new,needs-unit-tests,2012-10-15T03:19:23Z,2012-10-15T10:22:31Z,"Given this:

{{{
add_post_meta( $post_id, 'key', 1 );
update_post_meta( $post_id, 'key', 1 );
}}}

The update should not work, because they are the same. However, the meta cache will have ""1"" as a string, and then it will strict compare it to 1 as an integer. Thus, an unnecessary update will run.

Best I can tell, this could also affect update_option().

It is quite common to use integers and booleans directly into these functions. They should be smart enough to recognize that ""1"" == 1 == true and ""0"" == 0 == false, and that any numeric string is also equal to a properly cast integer.

Unit tests needed.

Ticket from which this was spun: #22189, saving navigation menus is slow.",nacin
Needs Docs or Unit Tests,22074,Very Large Query that Crashes the whole My SQL and site,,Performance,3.4.1,normal,normal,Future Release,enhancement,new,needs-unit-tests,2012-10-02T03:13:14Z,2013-05-16T11:59:00Z,"Hi David,

The problem is being caused by an extremely large mysql query. This is just a snippet of it. The full query is in /home/profithunters/query. You should have your dev look at it.

What user/pass are you using for mysql? You can login as the root mysql user by logging into https://profithunters.nmsrv.com/gadmin/ and then going to MySQL -> Launch phpmyadmin.
{{{
       | 370           | 371       |
| 1697 | profithu_wrdp2 | localhost | profithu_wrdp2 | Query   | 78   | statistics           | SELECT * FROM wp_posts  WHERE (post_type = 'page' AND post_status = 'publish')  AND ( ID <> 3778  AND ID <> 49911  AND ID <> 0  AND ID <> 20531  AND ID <> 3776  AND ID <> 3792  AND ID <> 3794  AND ID <> 3797  AND ID <> 3799  AND ID <> 3801  AND ID <> 3803  AND ID <> 3805  AND ID <> 3807  AND ID <> 3811  AND ID <> 5540  AND ID <> 6500  AND ID <> 8965  AND ID <> 9363  AND ID <> 10974  AND ID <> 11516  AND ID <> 11822  AND ID <> 12903  AND ID <> 12907  AND ID <> 12911  AND ID <> 13928  AND ID <> 13930  AND ID <> 14188  AND ID <> 14192  AND ID <> 14935  AND ID <> 14937  AND ID <> 14939  AND ID <> 14941  AND ID <> 15023  AND ID <> 15376  AND ID <> 19768  AND ID <> 20980  AND ID <> 20984  AND ID <> 21353  AND ID <> 21550  AND ID <> 21554  AND ID <> 21559  AND ID <> 21562  AND ID <> 21618  AND ID <> 21623  AND ID <> 21629  AND ID <> 21674  AND ID <> 21677  AND ID <> 21682  AND ID <> 21689  AND ID <> 21694  AND ID <> 21703  AND ID <> 21706  AND ID <> 21707  AND ID <> 21714  AND ID <> 21717  AND ID <> 21744  AND ID <> 21834  AND ID <> 21859  AND ID <> 21862  AND ID <> 21865  AND ID <> 21873  AND ID <> 21876  AND ID <> 21880  AND ID <> 21884  AND ID <> 21897  AND ID <> 21900  AND ID <> 21902  AND ID <> 21905  AND ID <> 21936  AND ID <> 21938  AND ID <> 21940  AND ID <> 21949  AND ID <> 21951  AND ID <> 21958  AND ID <> 21966  AND ID <> 21983  AND ID <> 21986  AND ID <> 21989  AND ID <> 21995  AND ID <> 22000  AND ID <> 22004  AND ID <> 22006  AND ID <> 22010  AND ID <> 22014  AND ID <> 22016  AND ID <> 22020  AND ID <> 22024  AND ID <> 22026  AND ID <> 22028  AND ID <> 22030  AND ID <> 22037  AND ID <> 22040  AND ID <> 22043  AND ID <> 22046  AND ID <> 22049  AND ID <> 22058  AND ID <> 22060  AND ID <> 22062  AND ID <> 22065  AND ID <> 22068  AND ID <> 22071  AND ID <> 22073  AND ID <> 22075  AND ID <> 22078  AND ID <> 22085  AND ID <> 22087  AND ID <> 22089  AND ID <> 22094  AND ID <> 22125  AND ID <> 22128  AND ID <> 22133  AND ID <> 22137  AND ID <> 22141  AND ID <> 22144  AND ID <> 22151  AND ID <> 22153  AND ID <> 22155  AND ID <> 22157  AND ID <> 22160  AND ID <> 22162  AND ID <> 22165  AND ID <> 22168  AND ID <> 22170  AND ID <> 22172  AND ID <> 22174  AND ID <> 22176  AND ID <> 22178  AND ID <> 22180  AND ID <> 22184  AND ID <> 22186  AND ID
}}}",adest
Needs Docs or Unit Tests,9064,URLs with commas are not pinged,,Pings/Trackbacks,2.7,high,major,Future Release,defect (bug),new,needs-unit-tests,2009-02-07T11:07:20Z,2013-05-20T12:01:23Z,"I use following permalink format on my blog:[[BR]]
/%category%/%postname%,%post_id%[[BR]]
Unfortunately Wordpress doesn't ping them correctly - URLs extracted from post content don't have suffix with comma and post id.[[BR]]
[[BR]]
Fix: in file wp-includes/comment.php change line 1400 from:[[BR]]
$punc = '.:?\-';
[[BR]]
to:[[BR]]
$punc = '.:?\-,';
",sirzooro
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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-01-14T11:35:22Z,"'''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
Needs Docs or Unit Tests,18962,Allow duplicate slugs for different content,,Rewrite Rules,,normal,normal,Future Release,enhancement,new,needs-unit-tests,2011-10-16T16:23:34Z,2012-11-29T18:12:01Z,"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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Needs Docs or Unit Tests,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
Has Patch / Needs Testing,16103,Blue Admin theme doesn't have enough contrast,,Accessibility,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-05T03:51:32Z,2013-05-14T13:21:17Z,"The beautiful blue theme has a few parts that lack sufficient contrast to be useable by someone with color deficiencies.   Specific parts to follow.


See attached screen shots to get a better idea.  Highlighted areas lack contrast.  ",jorbin
Has Patch / Needs Testing,15926,Give header and background images alt tags,,Accessibility,3.0,normal,minor,Awaiting Review,defect (bug),assigned,has-patch,2010-12-20T22:16:12Z,2013-01-11T11:42:52Z,"''Section 1194.22 Web-based Internet information and applications: (a) A text equivalent for every non-text element shall be provided (e.g., via ""alt"", ""longdesc"", or in element content).''

To meet accessibility guidelines, the header images and backgrounds (when supported by a theme) need to be given user-editable alt tags.",jane
Has Patch / Needs Testing,18900,Add a few more hide-if-no-js classes,,Accessibility,3.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-10-10T23:14:55Z,2013-05-14T21:21:36Z,"There are a few elements to which we could add the `hide-if-no-js` class, as their functionality or setting relies on JavaScript being available.",johnbillion
Has Patch / Needs Testing,24148,Add aria-labelledby attributes to comment form,,Accessibility,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-21T03:26:05Z,2013-04-22T14:03:52Z,"The aria-labelledby attribute provides a means for screen readers to get additional context for inputs when there is additional labeling information provided. In the default comment form, information such as the fact that email will not be published or that HTML tags and attributes can be used can only be viewed through a separate pass through the form not in forms mode. Adding these attributes means that a screen reader will read both blocks of text as the label for the field. ",joedolson
Has Patch / Needs Testing,24324,Placeholder support to login form,,Accessibility,,normal,minor,Awaiting Review,feature request,new,has-patch,2013-05-12T09:59:13Z,2013-05-14T14:44:34Z,wp_login_form isn't support placeholder attribute yet. It would be good. Isn't it?,m_uysl
Has Patch / Needs Testing,22254,"""Do you really want to log out"" message after already logged out",,Administration,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-10-22T16:21:06Z,2013-02-28T16:03:33Z,"1. Log into admin area
2. Open some page within admin area in a new tab (middle click or ""Open link in new tab"" or similar)
3. Select ""Log Out"" in menu in one tab
4. Normal ""You are now logged out."" screen appears
5. Select ""Log Out"" in menu in other tab
6. The following message appears:
{{{
You are attempting to log out of Blogname

Do you really want to log out?
}}}
The content of this message is wrong as the user is already logged out at this point.",Ov3rfly
Has Patch / Needs Testing,15827,AJAX paging breaks badly when json_encode can't encode,,Administration,3.1,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-12-15T14:27:33Z,2011-02-11T07:20:32Z,"If json_encode can't encode a response for some reason you get no feedback at all except for a blank list.

This seems most likely to trigger with invalid UTF8 sequences in spam comments.

With non-ajax paging you at least get all the comments displayed even if you do get a lot of ??? for the bad chars

Example Error seen:

{{{
[15-Dec-2010 14:18:38] Warning: json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /home/wpdev/public_html/wp-admin/includes/class-wp-list-table.php on line 839 [
}}}",westi
Has Patch / Needs Testing,13972,Add new category link - capability check needed,,Administration,3.0,normal,minor,Future Release,defect (bug),new,has-patch,2010-06-18T09:01:43Z,2012-06-29T18:18:58Z,"/wp-admin/link-add.php

If user doesn´t have ""manage_categories"" capability, add new link page, will show ""add new category"" link and form, 
it should be hidden.
",wjm
Has Patch / Needs Testing,24367,Admin login with correct password fails,,Administration,trunk,high,blocker,Awaiting Review,defect (bug),new,has-patch,2013-05-19T15:36:15Z,2013-05-20T14:57:30Z,"1. Clean blog with current WP 3.6 Beta3

2. Blog install page: Set the admin password to 
{{{
Tea7""Kou>9Bia7@Cio(4
}}}

3. After blog setup: The login with same password fails - every time.

'''Fix'''
Test for ''magic_quotes_gpc'' helps us.

{{{
Tea7\""Kou>9Bia7@Cio(4 !== Tea7""Kou>9Bia7@Cio(4
}}}


See also the Openwall notice: ''The ""Magic Quotes"" issue''
http://www.openwall.com/articles/PHP-Users-Passwords",sergej.mueller
Has Patch / Needs Testing,19069,Admin menu generation doesn't check whether default post types have 'show_ui' as true,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-10-27T19:47:06Z,2011-11-16T05:00:27Z,"While patching #19055, I found wp-admin/menu.php doesn't check whether default post types have 'show_ui' set to true. The Comments menu is also displayed regardless of whether available post types support comments or not.",kawauso
Has Patch / Needs Testing,16793,Bulk inline post edit doesn't show categories or tags if the CPT doesn't support titles,,Administration,,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-03-07T23:24:56Z,2011-05-22T17:04:59Z,"1. Register a CPT that doesn't support titles:

{{{
add_action( 'init', function() {
	register_post_type( 'foo', array(
		'show_ui' => true,
		'label' => 'Foo',
		'supports' => array( 'editor' ),
		'taxonomies' => array( 'category', 'post_tag' )
	) );
} );
}}}

2. Create a 'foo' post.

3. Go to wp-admin/edit.php?post_type=foo and choose the 'Edit' bulk action.

Expected behaviour: shows the category checkbox list and the tag textarea.

Actual behaviour: only the status dropdown is shown.
",scribu
Has Patch / Needs Testing,18048,Ctrl+S draft save causes prompt on exit,,Administration,,normal,normal,Awaiting Review,defect (bug),new,close,2011-07-09T12:25:25Z,2011-11-15T03:45:49Z,"When you use the ""save draft"" button and leave the edit page, the ""unsaved changes"" prompt doesn't show up. However, when you save using Ctrl+S and leave - the prompt appears.",jakub.tyrcha
Has Patch / Needs Testing,16475,Displaying submenus in custom taxonomy of active parent,,Administration,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-07T02:26:20Z,2011-07-22T09:27:13Z,"In a hierarchical taxonomy, if a top level item in the hierarchy is selected when editing a post, after save that item's orphaned children and grandchildren will also show as top level items. It flattens the hierarchy.",nick4fake
Has Patch / Needs Testing,15659,Entity escaping needed for comments list table,,Administration,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-03T07:05:52Z,2011-02-14T06:32:02Z,"Perhaps only as a result of the fact that the URL will be truncated for display, it is possible that URLs will have entities in URLs such as &amp; truncated, thereby creating a non-well-formed entity for application/xhtml+xml . The following patch fixes it (quotation escaping is not needed since this is element content).

This is an easy fix which I hope can be applied given that its lack breaks reviewing the important comments editing page. Thanks.",brettz95
Has Patch / Needs Testing,21947,Fix 3-column dashboard display,,Administration,3.4,low,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-20T20:06:46Z,2013-04-14T06:02:52Z,"Issue #20015 'enhanced' the dashboard with a pure-CSS based multi-column dashboard. Excellent.

The CSS used makes gross assumptions about how many columns are appropriate for different-sized displays. Double plus ungood.
Users should be left to decide how many columns they wish to use.

There was [http://wordpress.org/support/topic/three-column-dashboard/ considerable discussion] of this when 3.4 was released, but no remedy yet, other than to hack away at the CSS of one's install, precluding upgrades; I've changed {{{@media only screen and (min-width:800px) and (max-width:1200px){}}} to {{{@media only screen and (min-width:800px) and (max-width900px){}}} in wp-admin.css to get a usable interface.",belg4mit
Has Patch / Needs Testing,20848,Header images are cropped and resized with improper permissions.,,Administration,3.3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-05T17:41:45Z,2012-06-05T17:41:45Z,"On some systems the cropped and resized header images become unreadable by the web server.  

The attached patch makes the files inherit the permissions from the parent folder.


",gtenney99
Has Patch / Needs Testing,21015,Months dropdown should not show if only posts are 'auto-draft' status,,Administration,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-18T19:16:54Z,2012-09-28T14:42:09Z,"The months dropdown at the top of edit.php should only show if there are actually posts in the list.

Right now, if you click 'Add new' an auto draft post will be saved. Leave the post edit screen without saving the post (so no draft will be created) and go back to the edit.php screen. There is no post in the list, but the month drop down will be shown because the auto draft is counted.",CoenJacobs
Has Patch / Needs Testing,16696,"No synchronisation between ""most used"" and ""all categories"" in link edit",,Administration,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-02-28T07:14:37Z,2011-03-04T14:02:26Z,"There are issues with the ""all categories"" and ""most used"" tabs when editing links:

- Go to edit a link

- Click on ""Most used"" in the category section. All the listed categories are unchecked - including the ones that are checked in the ""All Categories"" tab. There is no sync between the two.

- Now check a category in the ""most used"" tab. Go to the ""all categories"" tab and you will find that the same category is now checked (as expected). Now uncheck it from the ""all categories"" tab. Go to ""most used"" and it is still checked there. The sync only works one way ( ""most used"" -> ""all categories"" ).

The first issue is because `wp_popular_terms_checklist()` assumes that you're using it in the context of a particular post, and sets checkedness based on whether the `$post` global has that term. If the `$post` global is empty (as when editing links), nothing is checked. I don't think we should be using `wp_popular_terms_checklist()` as it's context is for individual posts.

The second issue is because the IDs on the most used elements are wrong compared to what the Javascript is looking for.

Patch to follow. 

",solarissmoke
Has Patch / Needs Testing,22509,No-JS fallback for default color in color picker,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-19T19:42:19Z,2012-12-19T20:48:22Z,"The no-JS fallback for the color picker is just a plain input. Since the color picker implementation now includes the ability to reset to a specified default, it seems to make sense to include a no-JS fallback for the default, even just as a little bit of hidden descriptive text.

See #22461 for discussion stemming from the custom header screen.",helen
Has Patch / Needs Testing,18724,Non functioning 'paged' input on theme/plugin search,,Administration,3.1,normal,minor,Future Release,defect (bug),new,has-patch,2011-09-20T13:09:04Z,2011-11-08T20:56:31Z,"In the WordPress Admin -> Install Themes -> Search ... The page number input is not functional.

Same for plugin search.",kurtpayne
Has Patch / Needs Testing,16683,"Nonce failure error message causes a warning, and also ugly error.",,Administration,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-27T04:05:15Z,2011-02-27T07:25:36Z,"{{{
( ! ) Notice: Undefined offset: 4 in C:\www\wordpress-commit\wp-includes\functions.php on line 2624
Call Stack
#	Time	Memory	Function	Location
1	0.1991	455408	{main}( )	..\options-permalink.php:0
2	15.8632	23506944	check_admin_referer( )	..\options-permalink.php:69
3	15.8637	23507168	wp_nonce_ays( )	..\pluggable.php:839
4	15.8638	23507240	wp_explain_nonce( )	..\functions.php:2657


Your attempt to change your permalink structure to: has failed.
}}}

I left the permalink page open for a few hours, and just went to update it. Upon clicking update, I was given the above error (see attached jpeg). It feels pretty clunky and average to have a simple text like that.

The warning looks to be caused by the nonce error not being set possibly..",dd32
Has Patch / Needs Testing,24104,Remove duplicated separators in admin menu,,Administration,2.7,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-16T17:26:37Z,2013-04-17T02:37:08Z,"I'm working on WordPress admin menu, and I found that the code to remove duplicated separators in admin menu in `wp-admin/includes/menu.php` doesn't work correctly.

Assuming we have these items in the `$menu`:


{{{
$menu = array(
	100 => array(
		0 => 'Admin Style',
		2 => 'wp-admin-style.php',
		1 => 'read',
		4 => 'menu-top menu-icon-generic toplevel_page_wp-admin-style menu-top-first menu-top-last',
		6 => 'none',
	),
	110 => array(
		0 => '',
		1 => 'read',
		2 => 'separator1',
		3 => '',
		4 => 'wp-menu-separator',
	),
	130 => array(
		0 => '',
		1 => 'read',
		2 => 'separator2',
		3 => '',
		4 => 'wp-menu-separator',
	),
	140 => array(
		0 => '',
		1 => 'read',
		2 => 'separator-last',
		3 => '',
		4 => 'wp-menu-separator',
	),
	150 => array(
		0 => 'Hide Menu',
		1 => 'manage_options',
		2 => 'hide-admin-menu',
		3 => 'Hide Admin Menu',
		4 => 'menu-top toplevel_page_hide-admin-menu',
		5 => 'toplevel_page_hide-admin-menu',
		6 => 'http://localhost:8080/wp/wp-content/plugins/hide-admin-menu/img/icon.png',
	),
);
}}}

WordPress will remove only the 1st duplicated separator (130) and still keeps the 2nd one (140).

Another problem with current code is if separator menu item has classes like `'wp-menu-separator woocommerce'` (WooCommerce does this), it won't be recognized as a separator, because the function to check separator uses `strcmp`.

",rilwis
Has Patch / Needs Testing,22200,Require users to set a site title,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-10-15T18:52:14Z,2013-01-26T20:43:26Z,"Currently, users can get away with setting a blank site title under Settings -> General.

As a consequence, meta and title tags in both the front-end site and wp-admin may be empty, or contain extraneous spaces and separators. 

A common reason why users leave site titles blank is due to the misperception that the site title is necessarily displayed in the header on the front-end site. 

I suggest that we display an alert when users attempt to set a blank site title, and possibly suggest that if they don't want it to appear in their header, they can edit their CSS or hide header text under Appearance -> Header.",chrisrudzki
Has Patch / Needs Testing,17636,Search subtitles are handled inconsistently across admin,,Administration,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-01T12:15:48Z,2011-07-09T11:44:29Z,"Try the following strings in the Comments admin screen and any other:

`\'""\fs""\\\""` 

`imareallylongstringlookatmegoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgoandgo`

The Comments screen uses `strip_slashes()` and `wp_html_excerpt()` to limit search strings to 50 characters, while other screens do not.",kawauso
Has Patch / Needs Testing,16345,Some submit buttons shouldn't have names,,Administration,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-01-22T18:24:30Z,2011-02-13T14:38:59Z,"Technically a regression due to the submit_button implementation. What happens instead is the URL gets polluted.

Noticed especially after we moved back to GET on a bunch of screens.

In these cases, we just need the form to be sent. Don't need the context info.",nacin
Has Patch / Needs Testing,23886,Use set_url_scheme for draft Preview links in post table,,Administration,trunk,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-29T01:20:52Z,2013-03-29T01:23:03Z,"When using FORCE_SSL_ADMIN and this filter to prevent non-SSL preview of posts:

{{{
add_filter('secure_logged_in_cookie', '__return_true');
}}}

Preview links for unpublished drafts on `wp-admin/edit.php` do not use SSL and will 404.

This can be fixed by using `set_url_scheme` for the unpublished preview link. A similar unpublished preview link in `meta-boxes.php` was changed to use `set_url_scheme` in [21664]. For context, see #20759, #13328.",reidburke
Has Patch / Needs Testing,21249,WP_List_Table::single_row_columns() needs to do an exact comparison,,Administration,,lowest,trivial,Future Release,defect (bug),new,has-patch,2012-07-13T01:20:28Z,2012-11-07T22:05:29Z,"If for whatever reason you pass a column ID of `0` when dealing with a list table, !WordPress thinks it's a checkbox column because of the loose comparison, i.e. `==` instead of `===`.

Since I don't see why passing a number instead of a string shouldn'r be allowed, attached is a patch.",Viper007Bond
Has Patch / Needs Testing,16864,WP_Terms_List_Table doesn't call sanitize_term() on display,,Administration,2.9,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-03-16T12:54:07Z,2011-06-22T17:05:26Z,"Steps to reproduce:

Add this filter:

{{{
add_filter( 'category_slug', function() {
  return 'filtered';
} );
}}}

and go to {{{edit-tags.php?taxonomy=category}}}",scribu
Has Patch / Needs Testing,24328,blogname and blogdescription strip content between angle brackets,,Administration,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-05-13T09:12:06Z,2013-05-15T13:18:35Z,"I was trying to set my Site Title to '''<?= test ?>'''. On saving the settings, the field returned empty. The same problem occurred with the Tagline.

After looking into `wp-admin/options.php`, I noticed that there was no provision made for escaping the fields.",aniketpant
Has Patch / Needs Testing,13416,media for install.css missing (patch),,Administration,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-05-16T18:48:17Z,2013-01-22T07:40:13Z,In /core-root/wp-includes/general_template.php the function wp_admin_css is missing the @media definition. See patch.,F J Kaiser
Has Patch / Needs Testing,16865,'post' definition should use menu_position,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-03-16T15:03:00Z,2011-03-17T10:32:11Z,"Since WP 3.1, we don't need to hardcode the Posts $menu array, since register_post_type() is flexible enough to handle it.",scribu
Has Patch / Needs Testing,21938,"Add ""no-store"" to Cache-Control header to prevent history caching of admin resources",,Administration,3.4,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-09-20T10:54:27Z,2012-09-28T07:56:36Z,"The current implementation of [http://core.trac.wordpress.org/browser/trunk/wp-includes/functions.php#L891 wp_get_nocache_headers] does not take into account history caching, which results in a browser serving a cached copy of pages from history (by pressing the Back button) even if the user has long logged out.

[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2 RFC 2616 14.9.2 no-store] describes this cache directive.

To repoduce: login to dashboard, logout, press the back button.
Expected: the login screen.
Reality: a copy of the previous page.

By adding the ""no-store"" directive to all non-cachable resources the behavior was mitigated successfully in Chrome 21, Firefox 15. Fails on Opera 12 (they chose to disregard ""no-store"" when applied to history, RFC allows this).",soulseekah
Has Patch / Needs Testing,11164,Add Theme Sort Filter,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-11-17T16:03:18Z,2009-12-01T18:16:20Z,"I've run across the need for this in a few plugins. You can't adjust the order of themes in the theme browser as all filters are applied before the sort.

Aaron (for Incsub)",uglyrobot
Has Patch / Needs Testing,18357,Add action to do stuff before the admin menu is rendered,,Administration,3.2.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-08-08T22:08:23Z,2011-08-08T23:34:15Z,"Here is a trivial patch to allow users to inject some stuff in the Admin pages HTML body before the menu is rendered. The new action is called 'before_admin_menu_header', feel free to use a better name.",llucax
Has Patch / Needs Testing,21636,Add category dropdown to QuickPress in Dashboard,,Administration,3.4.1,lowest,minor,Awaiting Review,enhancement,new,has-patch,2012-08-19T20:14:09Z,2012-08-31T18:28:22Z,"This would make QuickPress more useful to people who use categories instead of tags, have been meaning to do this for years.


",jane
Has Patch / Needs Testing,11200,Add count for approved comments filter,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-11-20T15:17:04Z,2011-06-29T17:28:19Z,"On wp-admin/edit-comments.php, Approved is the only filter that doesn't have a count after it.",scribu
Has Patch / Needs Testing,15261,Add do_action to form tag in edit-tag-form.php,,Administration,3.1,normal,normal,Future Release,enhancement,reopened,has-patch,2010-10-30T16:07:46Z,2011-01-19T23:50:20Z,"How about adding additional actions to the form tags in admin taxonomy pages like ''edit-tag-form.php''?

An example can be found in ''user-edit.php'' line 183:


{{{
<form id=""your-profile"" ... method=""post""<?php do_action('user_edit_form_tag'); ?>>
}}}
",linguasite
Has Patch / Needs Testing,13605,Add filter for admin-ajax get-tagcloud's arguments for wp_generate_tag_cloud,,Administration,3.0,low,minor,Future Release,enhancement,new,has-patch,2010-05-28T20:30:43Z,2010-10-27T10:13:29Z,Patch attached.,mitchoyoshitaka
Has Patch / Needs Testing,13227,Add filters above forms in wp-login.php,,Administration,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2010-05-03T13:25:58Z,2013-01-22T02:00:35Z,"Sometimes I need more descriptive text to have above forms on wp-login.php (login, register, lost password).

This patch add filters above those forms.

Example usage:

{{{
function above_login_form_filter() {
	return '<p class=""message"">Tip: If you forgot your password, go to <a href=""wp-login.php?action=lostpassword"">Lost Password</a> page</p>';
}
add_filter('above_login_form','above_login_form_filter');
}}}


",dimadin
Has Patch / Needs Testing,16512,Add hook after set_current_screen(),,Administration,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-10T02:24:56Z,2011-02-10T03:00:55Z,"There needs to be a hook after {{{set_current_screen()}}} as it does a lot of work setting up the {{{$current_screen}}} global.. I'd hate to have to repeat it in {{{admin_init}}} as that's the last generic hook before {{{load-$pagenow}}}.

Patch adds new hook {{{admin_loaded}}} after {{{set_current_screen()}}}",ptahdunbar
Has Patch / Needs Testing,20007,Add option for new user registration notifications,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-10T06:15:35Z,2012-11-22T03:36:08Z,"This patch adds an single checkbox option to WordPress's Settings > Discussion page, allowing users to quickly toggle new user registration notifications/emails on or off.


While the notification function is currently pluggable, allowing non-technical users to easily toggle this feature themselves is both intuitively simple, and should prove generally advantageous to the community.",Veraxus
Has Patch / Needs Testing,20928,Add regular-text style to textareas,,Administration,,low,normal,Awaiting Review,enhancement,new,has-patch,2012-06-12T20:13:43Z,2012-06-12T20:14:38Z,The `regular-text` class style is only applied to input elements. It would be nice to get this on textareas too so my textareas are the same width as my single line text inputs.,johnbillion
Has Patch / Needs Testing,11469,Additional Admin UI hooks / filters,,Administration,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-17T05:54:04Z,2010-12-13T12:43:33Z,"Some might classify this as overkill, others as making Wordpress as completely extendable as people want it.

I'd like to propose the addition of numerou hooks to the Wordpress core Admin UI which would allow the addition of UI elements outside of the current constraints, such as meta boxes. 

If that doesn't make sense, I have an example to illustrate:

Given the ""Subtitle"" example from http://digwp.com/2009/10/ideas-for-plugins/, there would be a new hook named ""edit_post_form_after_title"" (or something along those lines) which would be placed directly after the post title is displayed on the screen and allow a plugin developer to insert a text field for a subtitle directly below the title field. See the attached patch.",johnl1479
Has Patch / Needs Testing,10652,Additional arguments required for page_template_dropdown,,Administration,2.8.4,normal,trivial,Future Release,enhancement,new,has-patch,2009-08-19T17:29:05Z,2010-08-13T12:23:56Z,"As a plugin/theme developer, it would be really useful to be able to call the page_template_dropdown function with a parameter string similar to [http://codex.wordpress.org/Template_Tags/wp_dropdown_pages wp_dropdown_pages].

For example, the current '$default' argument should accept a string of arguments where:

- 'selected' is the selected template (replaces the current $default)[[BR]]
- 'echo' can be set to 1 to return instead of output[[BR]]
- 'name' will set a name/id for the menu[[BR]]

This would make it easier to create plugin/theme options where you could select which templates you want to use for different content.

At the moment it is possible to do this by replicating and adapting this function but I think it would make more sense to use the same multi-parameter argument as [http://codex.wordpress.org/Template_Tags/wp_dropdown_pages wp_dropdown_pages] and [http://codex.wordpress.org/Template_Tags/wp_dropdown_categories wp_dropdown_categories] and include it in core?",husobj
Has Patch / Needs Testing,19958,"Allow custom post types as ""home"" and get_posts() to return results for more than one post type",,Administration,3.3.1,normal,major,Awaiting Review,enhancement,new,has-patch,2012-02-04T00:59:13Z,2013-03-08T17:32:39Z,"In
{{{
Wordpress admin > Settings > Reading
}}}
there is an option to define what the home page or the front page should be
{{{
Front page displays
}}}
Radio button
{{{
A static page (select below)
}}}
is followed by a dropdown containing a list of all pages.

I would request that custom page types be allowed in this dropdown. This way, I could make my bbPress forums or my All-in-one event calendar, etc my homepage.
",sooskriszta
Has Patch / Needs Testing,18504,"Allow filtering of ""Add New [Post Type]"" URL on edit.php",,Administration,3.2.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-08-24T00:54:56Z,2011-08-24T12:01:54Z,"I've recently attempted to use add_filter('admin_url','filter_function'), only to discover that there are many URLs in the admin area that are not passed through the admin_url() function. While there may be a good reason for that to happen, I figured it wouldn't hurt to check the possibility of changing one of them.

The one URL I haven't been able to find a workaround to is the ""Add New [Post Type]"" button on the edit.php screen, on top the post table, which also appears when editing an existing post. From what I gather, it is generated in the following file/line [http://core.trac.wordpress.org/browser/trunk/wp-admin/edit.php#L189] for the first case, and on this one [http://core.trac.wordpress.org/browser/trunk/wp-admin/edit-form-advanced.php#L198] for the second case.

Fixing this, assuming it's possible without compromising a functionality I'm not aware of, would be as simple as replacing this:

{{{
<a href=""<?php echo $post_new_file ?>"" ...
}}}

And this:

{{{
<a href=""<?php echo esc_url( $post_new_file ) ?>"" ...
}}}

With this:

{{{
<a href=""<?php echo admin_url($post_new_file); ?>"" ...
}}}

And this:

{{{
<a href=""<?php echo esc_url( admin_url($post_new_file) ) ?>"" ...
}}}",tbuteler
Has Patch / Needs Testing,17704,Automatically enqueue necessary scripts when custom meta boxes are used,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-06T05:53:43Z,2011-11-08T21:30:11Z,"Right now if you add_meta_box() to a custom page, like using add_submenu_page() and then calling do_meta_boxes(), the screen options and post box JS don't work automagically. They should.",mitchoyoshitaka
Has Patch / Needs Testing,17360,Change text from Options to Settings,,Administration,3.2,normal,minor,Future Release,enhancement,new,has-patch,2011-05-09T23:31:56Z,2011-12-06T04:47:31Z,"In various admin screens, change test from options to settings.

",michaelh
Has Patch / Needs Testing,18860,Chromeless metaboxes,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-05T14:28:14Z,2011-10-06T13:39:07Z,"On the post editing screen, the title and editor portions are just conditionally echoed based on post_type_supports().

Because of this, you can't add anything between them or above them, without using JavaScript.

The proposal:

 - wrap them in callbacks and inject them through add_meta_box()
 - add a $show_handle parameter to add_meta_box()

{{{$show_handle == false}}} would mean that the handle around the box would be invisible. This would mean that you wouldn't be able to drag the title and editor boxes around, which is ok, but you would be able to re-order them in PHP.",scribu
Has Patch / Needs Testing,17852,Collapsed menu fly-out headers should be clickable,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-20T03:13:00Z,2012-03-07T20:59:48Z,"When you hover over a collapsed admin menu icon, the extension of the icon is not clickable, only the submenu screens are.

This is the same behavior in 2.7 to 3.1, but I think it should be considered.",nacin
Has Patch / Needs Testing,15782,Consolidate header Javascript,,Administration,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-12T05:45:53Z,2011-03-24T08:48:43Z,"As a followon to #15781

Currently there is a block of Javascript required on all admin pages, this is stored directly within admin-header.php, and iframe_header(). Unfortunately, when someone changes/adds code to one, the other is not always updated.

This inline Javascript should be moved to a function and printed on a header action in order to reduce code duplication and prevent future issues.",dd32
Has Patch / Needs Testing,18641,Date and post status are the wrong way around in post lists,,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-11T20:31:41Z,2011-09-11T20:35:13Z,"On a post listing screen, a draft post that has been modified within the last 24 hours will show the following in the 'Date' column:

{{{
X hours ago
Last Modified
}}}

This doesn't make a lot of sense. Better would be:

{{{
Last Modified
X hours ago
}}}

Ideally the table cell should be treated as a whole to aid l10n and to improve the English presentation.",johnbillion
Has Patch / Needs Testing,23108,Deprecate add_object_page() and add_utility_page(),,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2013-01-03T02:47:52Z,2013-05-16T11:55:27Z,"`add_object_page()` and `add_utility_page()` are not used in core and are just wrappers which pass `$_wp_last_object_menu++` and `$_wp_last_utility_menu++`, respectively, to `add_menu_page()`.

This can lead to a conflict with other menu items added by plugins, see #23095.",SergeyBiryukov
Has Patch / Needs Testing,18030,Die with HTTP status 403 forbidden when capability check fails in wp-admin,,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-07-07T22:42:29Z,2011-07-07T22:42:29Z,"The default HTTP status code of [http://core.trac.wordpress.org/browser/tags/3.2/wp-includes/functions.php#L2740 wp_die()] is a [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1 500 Internal Service Error] communicating !WordPress encountered an ""unexpected condition which prevented it from fulfilling the request."" Multiple pages trigger wp_die() in wp-admin when a minimum user capability is not met (e.g. Cheatin', uh?). In these cases we know why the request failed and could better communicate the failure in the HTTP status code. We want to communicate the same request should not be repeated without a modification to permissions. We also would like to shift the error class from a server error (5xx) to a client error (4xx).

HTTP status [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4 403 Forbidden] communicates the authorization failure in HTTP status form. The server can be reached, we understood your request, but we declined access to the page.

A !WordPress install could catch this unique status code in its wp_die_handler and suggest further the viewer contact the IT department, admin, etc. for additional permissions.

Patch attached for wp-admin/edit.php. If the general idea behind the change is acceptable I can broaden the patch to other occurrences of wp_die() for failed capability checks in wp-admin.",niallkennedy
Has Patch / Needs Testing,17470,Display warning when editing the page_for_posts page,,Administration,3.2,normal,normal,Future Release,enhancement,new,has-patch,2011-05-17T06:27:13Z,2012-11-19T16:33:34Z,"I recently ran into a situation where someone was very confused by the page_for_posts setting and why their page edits were not being respected. It occurred to me that this feature is not terribly well described in the UI for users that don't already understand what it does.

The attached patch will simply add a warning as an admin_notice when you are editing the page that is specified as the page_for_posts page.

I used a class of error for the admin_notice, but updated might be more appropriate.",alexkingorg
Has Patch / Needs Testing,20345,Don't show Author column on posts screen for single author sites,,Administration,3.4,low,normal,Future Release,enhancement,new,has-patch,2012-04-02T20:42:56Z,2012-04-18T20:39:05Z,"The 'Author' column on post listing screens is a bit pointless for single-author sites.

To simplify this screen, I think it would make sense to remove this column for sites which only have one user, and possibly also remove it for sites with more than one user but still only one author (ie. `!is_multi_author()`).

I'm not sure how best to handle the column's visibility and a user's column visibility preferences at the point when a site goes from being a single-author site to a multi-author site.",johnbillion
Has Patch / Needs Testing,9931,Extra class for the wrap div's in custom-header.php,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-05-24T17:25:40Z,2010-08-13T11:41:15Z,"I'm using custom-header.php to complete the options section for my own themes but for some themes I only need the image section to be visible>

Would it be possible to add an extra class reference to the <div class=""wrap""> sections? This would make it possible for me (and others) to ''not'' display the irrelevant sections (and thus avoid questions from users about why changes aren't reflected).

My suggestions is to go for something like this:

{{{
<div class=""wrap custom-header-text"">
<div class=""wrap custom-header-image"">
<div class=""wrap custom-header-reset"">
}}}

And perhaps that:

{{{
<div class=""wrap custom-header-text"">
<?php screen_icon(); ?>
}}}

needs to be changed into something like:

{{{
<?php screen_icon(); ?>
<div class=""wrap custom-header-text"">
}}}

to keep the icon available when you choose to hide the text section.

Cheers :)",stgoos
Has Patch / Needs Testing,22650,Filter the Gravatars on credits.php,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-11-30T08:39:58Z,2012-11-30T08:51:59Z,"All Gravatars should be generated by get_avatar() or at least run through apply_filters('get_avatar', $avatar) for the sake of extensibility.

Related: #22329",miqrogroove
Has Patch / Needs Testing,21856,Hide category selection when no posts are available,,Administration,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-09T14:38:10Z,2012-11-13T20:18:02Z,"Just an idea that popped up while testing #21015. The months dropdown gets hidden when there are no posts available, so why not hide the category dropdown list too?

Might be a bit confusing though, when certain elements are not showing when you first start using the screens that these elements are used. But showing something that does not do what it looks like is even more confusing, I think.",CoenJacobs
Has Patch / Needs Testing,22139,Hooks for wp-login customization,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-09T14:18:07Z,2013-01-22T22:18:57Z,"I have an application that leverages wp-login.php as the login page (of course), however, the HTML on the wp-login.php doesn't have a way for my application to insert its navigational elements, branding, etc.

I propose the addition of two new action hooks: ''login_before_container'' and ''login_after_container'' which would come before and after the login div, respectively.  ",borkweb
Has Patch / Needs Testing,22183,"Input type=""email""",,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2012-10-13T19:01:18Z,2012-11-07T07:53:37Z,"Text inputs for email addresses were replaced with email inputs in [20168] but reverted in [20196] due to poor client-side validation by Chrome 17 and Firefox 10, however we've had input type=""email"" on the registration form since [18763].

We should:
 1. Test the current state of client-side validation.
 2. Either introduce email inputs in the admin area or revert [18763] depending on the results of point 1.

See http://core.trac.wordpress.org/ticket/17863#comment:25 for the email input validation issue.",johnbillion
Has Patch / Needs Testing,24209,Install Themes/Plugins Custom Page Hooks,,Administration,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-28T03:04:05Z,2013-04-28T05:45:40Z,"Upon trying to add a custom page to the '''Plugins > Add New''' section for private plugins, I realized there wasn't a hook that allowed overriding the plugin_api call.

The custom tab on the page could easily be added via the ''install_plugins_tab'' filter, but in the '''class-wp-plugin-install-list-table.php''' class method ''prepare_items()'', there isn't a hook to override the api call.

I checked the functions for the themes and it's the same thing, so I've added the patches containing the proposed filters for both classes in order to help future customization of WordPress by developers.

Here's an example of the custom tab and the desired results via the hooks in a plugin:

[[Image(http://i.imgur.com/iF9gbMf.png)]]

These filters can also be used to prohibit clients from adding 3rd-party plugins for security & performance reasons and even limit them to only using a private Repository API.

Thanks!",amereservant
Has Patch / Needs Testing,23432,Links in Setting pages to open in new window,,Administration,3.5.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-02-09T15:26:25Z,2013-02-10T16:02:57Z,"Some links in the Setting Pages (General, Discussion, Permalink) pages open in same window, which sometime can be awful. [[BR]]
While the users can press cmd/ctrl + click and click the link to open it in new tab but If the user does not open the link in new window, options (which are not saved) will be lost and one have to go through them again.[[BR]]
Also links in the Edit Profile page and all the links in the help tab open in new window except a few.(so it is possible that users may just click it thinking them to alike other links which open in new window)[[BR]]
So a consistency will be there and ux can be a little better.",theadityajain
Has Patch / Needs Testing,20335,Make Default Post Listing Mode Filterable,,Administration,3.3.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-03-30T15:54:23Z,2013-02-08T07:32:35Z,"Inspired by [http://wordpress.stackexchange.com/q/34956/46 a question] on the WordPress Answers Stack Exchange.

By default, WordPress displays the post list in the admin as a list view.  There's an option to switch to an excerpt view that many people use and some would like to set this as the default mode.

Unfortunately, the default is hard-coded into WordPress and is not filterable.  I propose we add a basic filter to allow developers to override the default ""list"" setting for the view mode.",ericmann
Has Patch / Needs Testing,8243,"Make draft pages to appear in ""recent drafts"" dashboard gadget",,Administration,2.7,normal,normal,Future Release,enhancement,new,has-patch,2008-11-16T11:08:50Z,2010-06-25T20:21:01Z,"In 2.7 beta 2, draft Pages do not appear in ""recent drafts"" dashboard gadget. It would be very nice to see draft pages there as well. Another option is to make it optional and allow one to select whether he/she wants to see draft pages in the gadget.
",asandler
Has Patch / Needs Testing,21516,Make the entire .check-column the click target for the checkbox,,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-08T03:34:38Z,2012-10-22T15:27:26Z,"Sometimes checkboxes are quite small. In various list tables, checkboxes are wrapped in a .check-column. Why not make the entire .check-column clickable, in case people (like me) miss?",mitchoyoshitaka
Has Patch / Needs Testing,20956,Navigation changes: Posts/Pages,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-14T14:42:25Z,2013-01-22T03:30:06Z,"1. Explaining the difference between Posts and Pages to new users is time consuming and often frustrating. We've all done it, have our best/fastest version of the talk down pat, but it still takes longer than it should to get many new users to the point of understanding the difference.

2. Back in 2.7, when we set up the left navigation we put Pages at the bottom of the content nav section because in testing 2.5/2.6 so many people complained about accidentally clicking Posts/Pages by accident because they were close together in the old UI and both started with P (blame it on capital_p). Because of this, Pages falls below the less-frequently accessed areas of Media and Links, and people don't necessarily see it right away because they expect it to be higher up.

I've been testing out two changes to the left navigation aimed at reducing these two issues on my test blog for some time now, and have been using it during demos with both new and existing users to great success, so I think it's time to propose it for core.

Change 1: Change the Posts label to Blog. All Posts can remain as is, or could be reduced to just Posts, since the reason we added the All in the first place was that Matt thought it looked weird to have the same word shown twice. 

This change reduces the amount of time it takes me to get a new user really understanding the difference between posts and pages by about 75% (very informal testing, have kept track with about 30 new users by just keeping an eye on the computer clock to see how long it is before we move on). The dynamic blog/static site difference is much easier to grasp when they see that familiar word Blog instead of Posts because ""posting"" is an action that applies even to static content, and even posts are displayed in web pages (vs Pages).

Change 2: move Pages up the menu to sit below Blog, so the two most important content types are at the top. Since they wouldn't look similar (ha ha capital_p) there would be much less risk of accidental misclick based on letter shape (poor manual dexterity would not be affected, but in that case those people are already clicking the wrong things, right?)

I've attached a screenshot showing what the navigation would look like with these changes. ",jane
Has Patch / Needs Testing,23091,Need to remove deprecated get_bloginfo('url') from _fix_attachment_links() function,,Administration,3.5,normal,normal,Awaiting Review,enhancement,new,close,2012-12-31T01:57:33Z,2013-01-29T21:51:19Z,"get_bloginfo('url'); is deprecated.
Should be home_url();",hexalys
Has Patch / Needs Testing,18596,Not possible to filter comment screen by post type,,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-05T16:50:33Z,2011-10-03T20:41:20Z,"The `post_type` query var has no effect on the Comments screen so it's not possible to filter this screen by post type.

I'll work on a patch.",johnbillion
Has Patch / Needs Testing,12694,"Orphan themes are listed as broken, but can't be deleted from wp-admin",,Administration,2.9.2,low,minor,Future Release,enhancement,new,has-patch,2010-03-24T21:40:44Z,2013-05-16T01:38:05Z,"I had been giving a set of ""mobile"" themes a tryout on my WordPress blog.  There's a parent theme and three child themes.  Didn't really like them.  

Not realizing they were parent/children(I thought they were 4 independent themes that were identical except for color schemes), I deleted the parent theme first through the WP-Admin's theme screen (/wp-admin/themes).

Now, the parent theme is gone.  But WordPress still lists the child themes as broken themes with the disclaimer: ""The following themes are installed but incomplete. Themes must have a stylesheet and a template.""

However, there's no option to delete them from the WP-Admin.  Being a longtime WordPress user, I know I can FTP into my server and manually remove those directories.  But I'll admit, I love how the newer versions of WordPress have made it possible to install/upgrade/delete themes and plugins right from the Admin system, without the need to open up the ol' FTP client and do it all manually.  I'm sure there are also newer users of WordPress who may or may not be aware they'd need to go through FTP to delete a broken theme.

Just saying it would be nice if we could delete broken themes right from the Admin system... but it's not a major/urgent request.

",pnaw10
Has Patch / Needs Testing,21774,Page attributes structure,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-02T14:58:57Z,2012-10-08T17:45:53Z,"Currently, the ""Page Attributes"" module is organized like this:

* Parent
* Template
* Order

Wouldn't it make more sense to put ""Parent"" and ""Order"" together, as both are closely similar and related to the site structure?

We could have:

* Template
* Parent
* Order

or maybe

* Parent
* Order
* Template",Lorangeo
Has Patch / Needs Testing,16122,Paging in link-manager,,Administration,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-06T10:11:07Z,2011-08-06T14:42:39Z,"I think it would be a good idea to have paging (""Show on screen"" option) in the link-manager like in pages, sites, media a.s.o.",jezze
Has Patch / Needs Testing,17891,Pass $post_type to 'restrict_manage_posts',,Administration,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-06-25T11:48:23Z,2013-05-23T12:07:23Z,"It would be nice if the 'restrict_manage_posts' hook received the post type as an argument, rather than having to check the global.",scribu
Has Patch / Needs Testing,17133,Register ctrl + s event for plugin/theme editor,,Administration,3.1,normal,minor,Future Release,enhancement,new,has-patch,2011-04-14T12:20:34Z,2011-12-06T04:07:54Z,Often when modifying code or writing a post using the wordpress editor I instinctively hit ctrl + s to save it. Up pops the save website dialog which I then have to close. In Gmail when I hit ctrl+ s it saves the email to drafts. I think a similar thing would be useful for wordpress.,jcnetsys
Has Patch / Needs Testing,10970,Remove 'siteurl' setting from options-general.php,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2009-10-17T18:52:10Z,2012-11-16T16:26:34Z,"From #10957:

azaozz:
> Better to fix the cause for this: ""WordPress address"" (siteurl) shouldn't be changeable from Settings->General at all as it cannot be set safely there. Most users would just break their blogs if they change it.

> It is set at install and only needs changing when WordPress is moved to another domain or (sub)directory. This happens very rarely and there are other (better?) ways to set siteurl.


Denis-de-Bernardy:
> in this case, we need to make sure the www. pref is passed on to the site_url. else we're bound to get massive bugs (e.g. #9873)
",scribu
Has Patch / Needs Testing,24387,Remove borders and styles on select elements,,Administration,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-22T20:16:44Z,2013-05-23T14:12:10Z,"The default admin CSS adds borders, background colors, and other styling to <select> elements that actually cause the default browser styling to become unstyled in Firefox on the Mac.

The default OS and browser styles actually handle select boxes pretty well.

I propose that these styles be removed from any global <select> element.  If borders need to stay, they should be applied using a more descriptive selector so if I wanted to use default browser styling in a plugin I can.

I tested this in Firefox (Mac), Safari (Mac), Chrome (Mac), Firefox (Win) and IE 8 by looking at various pages with select boxes (Posts, Settings, Quick Edit, Categories).  The only difference is that on Firefox (Win) the border is blue instead of gray and I believe if it's desired to keep this, then a targeted class can accomplish the same task without affecting other operating systems.

The patch doesn't apply to the blue theme at this time.",mmuro
Has Patch / Needs Testing,22827,"Remove profile page ""Visual Editor"" setting right margin",,Administration,3.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-08T16:31:58Z,2013-03-15T09:09:32Z,"I assume this once has been added to align with the profile page ""Admin Color Scheme"" setting, but for consistency with other settings my request to remove it.

Some screenshots:

http://cl.ly/image/3t3k1w3y2Q1D/8-12-2012%2016-26-26%20ltr%20after.png
[[BR]]
http://cl.ly/image/420C1i1c1f2n/8-12-2012%2016-21-26%20rtl%20before.png
[[BR]]
http://cl.ly/image/3H3R0u080I0Q/8-12-2012%2016-25-14%20ltr%20before.png
[[BR]]
http://cl.ly/image/183U2g3x381I/8-12-2012%2016-21-26%20rtl%20after.png

Please note this is my first patch, and thus I'll probably mess up something somewhere. Terribly sorry about that.",corvannoorloos
Has Patch / Needs Testing,17542,Remove upload file after deleting custom background,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-05-23T08:49:25Z,2011-05-23T14:40:13Z,"I came across a comment on custom-background.php that says 
//@todo: uploaded files are not removed here.

So, I thought I will come up with this codes for the upload file deletion if user remove background.

Attached custom-background.diff

I had tested on my localhost.

Hope this contribution is useful.

Thanks.",denzel_chia
Has Patch / Needs Testing,23427,Restore shift-click checkbox range selection,,Administration,3.5,normal,normal,Awaiting Review,enhancement,new,close,2013-02-08T19:35:32Z,2013-02-26T16:48:58Z,"It used to be possible to select a range of checkboxes in the post list by shift-clicking (see #6541). I'm not entirely sure when this feature disappeared, but it's been a while.

Patch restores the functionality using the [http://www.sanisoft.com/blog/2009/07/02/jquery-shiftcheckbox-plugin/ ​jQuery shiftcheckbox plugin].",sillybean
Has Patch / Needs Testing,19609,Show the 'Mine' filter on the manage posts screen for all users,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-19T08:01:36Z,2013-04-04T17:42:04Z,"Authors and Contributors get a handy filter on the manage posts screen called 'Mine' which shows just that user's posts. It's also the default view for those user roles.

Editors and Admins don't see this filter at all. It'd be nice if it was available, even if it's not the default view like it is for Authors and Contributors.

If no-one else wants to then I'll look at doing a patch after the holidays.",johnbillion
Has Patch / Needs Testing,7615,Show theme name when selecting page templates,,Administration,2.7,normal,normal,Future Release,enhancement,new,has-patch,2008-08-27T20:12:39Z,2009-11-20T20:33:10Z,"Currently, if a child theme inherits some templates from its parent theme and adds some itself, it's not clear when selecting a page template which templates are from which theme. The attached patch adds the theme name in parentheses after the template name.

This is just something that struck me might be an issue, so feedback on whether there is actually a real benefit to the added complexity would be welcome.",ionfish
Has Patch / Needs Testing,16346,Slug field too narrow in Post Edit,,Administration,3.1,normal,minor,Future Release,enhancement,new,has-patch,2011-01-22T18:56:24Z,2011-01-22T19:39:41Z,"When you edit a post, there is a Slug panel at the bottom where you can edit the slug. The field displaying the text of the slug is set inline to 13, which is not nearly wide enough to show more than 15 letters.",ABTOP
Has Patch / Needs Testing,20052,Support sprites for admin menu icons in register_post_type and add_menu_page,,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2012-02-15T23:14:45Z,2012-12-14T23:49:22Z,"We should encourage developers to maintain a consistent and beautiful admin UI by making it easier to register sprites with black and white and color versions of icons for the admin menu, namely in `register_post_type()` and `add_menu_page()` (and its wrappers).

Related: We should also do an education push and create an external web tool to make it easy to generate a properly sized, colored, and positioned sprite.

Related tickets: #20036, #19886",helen
Has Patch / Needs Testing,18590,"Swap out ""return false"" JS calls for preventDefault",,Administration,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-05T03:43:16Z,2012-12-10T23:12:00Z,"While trying to hook into someone clicking the expand/collapse arrow in the nav menu UI, I realized that the existing Javascript is using `return false;` to abort the hyperlink click from going through.

[http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/ This is bad and incorrect.]

We should be using `object.preventDefault()` instead so that other bound functions aren't aborted.",Viper007Bond
Has Patch / Needs Testing,16369,Tag to category and categories to tag converter links,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-25T10:44:06Z,2011-01-25T13:44:28Z,"In the Post Tags and Categories pages, links are made available to direct the users to the Categories and Tags Converter in Tools.

While it is normal that these links go to the Tools>Import page as long as the Categories and Tags Converter is not installed, once it is, the links should go one step further and bring the user directly inside the Categories and Tags Converter.",paolal
Has Patch / Needs Testing,21826,There should be more filters when displaying a theme in the list table,,Administration,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-06T22:54:43Z,2012-09-15T22:27:50Z,"In `WP_Themes_List_Table::display_rows()`, there is a filter for the theme actions, but no filters for the theme information itself: screenshot, title, author, version, and description. Why not fix that?

The attached patch introduces `theme_list_*` filters within the `display_rows()` method. Suppressing one of the pieces of information is simply a matter of returning an empty value through the filter.",ethitter
Has Patch / Needs Testing,16243,Unhelpful error messages when updating default category,,Administration,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-15T12:23:36Z,2011-12-07T07:15:45Z,"If we try and change the default category slug to one that has already been used we get conflicting error messages between quick edit and full edit.

If you use Full Edit you're simply told ''Item Not Updated'' however, if you use quick edit, you are informed that the slug has already been used.

The full edit error message is, I think, on line 223 of wp-admin/edit-tags.php - I'm unable to find where the error message for the quick edit functionality is, however.

Having correct and useful copy in error messages is vital, especially for relative newcomers to WP.

This oversight was found by Relly Annett-Baker (@RellyAB on twitter) - one of the best copy writers and content strategists out there. Perhaps we could look at overhauling the error messages and ask (someone like) Relly to give them a once-over or offer advice on them.",iamfriendly
Has Patch / Needs Testing,12914,Update the Right Now box when publishing via QuickPress,,Administration,3.0,lowest,trivial,Future Release,enhancement,new,has-patch,2010-04-08T08:03:32Z,2013-01-22T15:57:58Z,"When you publish a new post via QuickPress, it'd be cool for the Right Now box to then ++ the number of published posts.

Quick proof of concept patch attached.",nacin
Has Patch / Needs Testing,9777,"Usability : add delete button to ""edit category"" menu",,Administration,2.7.1,normal,minor,Future Release,enhancement,new,has-patch,2009-05-09T22:56:39Z,2012-05-22T16:56:47Z,"Add ""delete"" button to ""edit category"" menu so i can delete the category and not only edit it. this is a very useful feature that is missing in this menu.

'''LOCATION:'''

Admin -> Posts -> Categories -> Edit Category

'''URL:'''

http://www.site.org/wp-admin/categories.php?action=edit&cat_ID=302
",ramiy
Has Patch / Needs Testing,23601,Use ACE Code Editor for Theme and Plugin editors,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-25T06:56:00Z,2013-03-21T21:33:49Z,"Ace is an embeddable code editor written in JavaScript. It's the code editor used on GitHub and is actively developed by Mozilla. Its license is Modified BSD which is compatible with GPL. 

The plugin and theme editors in their current state are lame. Upgrading the experience with ACE could lead to a more robust file editing solution in the admin. Perhaps, ability to add files?

Here's the link to the project:
http://ace.ajax.org/",wonderboymusic
Has Patch / Needs Testing,16856,"When registering custom post type, menu_position isn't honored if it's a number passed as a string",,Administration,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-14T16:52:18Z,2013-03-31T02:52:15Z,"When registering a custom post type, if you use '50' instead of just 50, is_int() will fail and the position will be set to ++$_wp_last_object_menu. Seems safer to use isset() instead, since position doesn't technically need to be an integer. ($menu gets sorted before being output, and '50' is the same as 50 in that case)

This has the added benefit of allowing MANY more spaces in the $menu variable. For instance, if you passed '50.555' as menu_position, there's very little chance that this will conflict with another theme/plugin register a custom menu or custom post type, and will successfully go between 50 and 51 in the $menu array.

There are currently no checks on $position when using add_menu_page() ... but the checks on register_post_type() currently make this an invalid universal solution.

Personally, I don't see a downside to letting menu_position be a string. Anything other than a number (whole or decimal) will just go to the bottom of the $menu array, anyway, after the sort.

I'm submitting two patches ... one is type independent, and the other casts menu_position as (int) after the isset() check.",nathanrice
Has Patch / Needs Testing,24252,Windows Phones are ignored by wp_is_mobile,,Administration,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-02T21:49:13Z,2013-05-07T18:46:30Z,"Reported in the forums by vaibhav3 - http://wordpress.org/support/topic/wp_is_mobile-returning-false-values/

wp_is_mobile() doesn't have an 'If Windows Phone' clause which throws off some phones which apparently don't have a 'mobile' fall back.

Attached is a patch that adds it in.",Ipstenu
Has Patch / Needs Testing,17851,Wrapping Sections with add_settings_section,,Administration,3.1.3,normal,normal,Future Release,enhancement,reopened,has-patch,2011-06-20T03:09:34Z,2011-09-28T18:09:53Z,"This is my first time reporting, so excuse my ignorance. I just wanted to see about enhancing the add_settings_section function.

As of now, individual sections are not wrapper in any sort of container, which makes no sense to semantic sense to me. Sections should/need to be styled differently, but as of now, you really don't have much control of that.

I propose something similar to the register_sidebar function, looking like this:

add_settings_section( $id, $title, $callback, $page, $args )

$args would accept 3 parameters: before_section, after_section, and section_class.

This way you can style each individual section with relative ease. Just a thought and enhancement to the Settings API.

Thomas",griffinjt
Has Patch / Needs Testing,12506,admin-color-scheme.css already loaded on wp-login.php. why?,,Administration,2.9.2,low,minor,Future Release,enhancement,reviewing,has-patch,2010-03-03T21:55:21Z,2012-07-03T20:55:11Z,"On wp-login.php we are already on admin, because wp is loading the whole color-scheme for a user... which is wrong. It is senseless, because the color-scheme the user selected for admin cannot be loaded without his user-data. And that is not possible as long as he/she didn't enter any login-data.

REQUEST: get the ~30kB color scheme out of the wp-login.php and add the following to wp-admin/css/login.css:


{{{
body.login {
    border-top-color:#464646;
}
body, #wpbody, .form-table .pre {
    color:#333333;
}
a, /* All obsolete on wp-login.php - could here simply be h1 a */
#adminmenu a,
#poststuff #edButtonPreview,
#poststuff #edButtonHTML,
#the-comment-list p.comment-author strong a,
#media-upload a.del-link,
#media-items a.delete,
.plugins a.delete,
.ui-tabs-nav a {
    color:#21759B;
}
.submit {
    border-color:#DFDFDF;
}
textarea, /* All obsolete - could be #login #wp-submit */
input[type=""text""],
input[type=""password""],
input[type=""file""],
input[type=""button""],
input[type=""submit""],
input[type=""reset""],
select {
    background-color:#FFFFFF;
    border-color:#DFDFDF; /* Obsolete due to .submit-class above */
}
input.button-primary, button.button-primary, a.button-primary {
    -moz-background-clip:border;
    -moz-background-inline-policy:continuous;
    -moz-background-origin:padding;
    background:#21759B url(../images/button-grad.png) repeat-x scroll left top;
    border-color:#298CBA;
    color:#FFFFFF;
    font-weight:bold;
    text-shadow:0 -1px 0 rgba(0, 0, 0, 0.3);
}
.submit {
    border-color:#DFDFDF;
}
.login #nav a {
    color:#21759B !important;
}
.login #backtoblog a {
    color:#CCCCCC;
}
}}}
",F J Kaiser
Has Patch / Needs Testing,19828,allowing to insert help tab in specific position,,Administration,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-13T21:50:15Z,2012-03-01T17:22:32Z,"this enhancement of add_help_tab() would allow plugin developers to insert help tabs on existing screens at an arbitrary position, e.g. place it on the ""Writing Settings"" screen's help tab between the ""Overview"" and ""Press This"" tabs

the patch attached includes the bugfix from #19827, but this enhancement can be rewritten to work independently",tfnab
Has Patch / Needs Testing,21539,category_description filter not applied to Description field on Categories page,,Administration,3.4.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-10T13:53:03Z,2012-08-12T17:31:42Z,"The category_description filter is not applied to the Description field on the Posts > Categories page (wp-admin/edit-tags.php?taxonomy=category).

Need: I use very long category descriptions, which are displayed on the front end of the site. This means that the Posts > Categories page is blown out by the long descriptions. I wrote a plugin to filter the category_description to limit it's length in the admin area. However, I then discovered that the filter is not applied on this page.

I'm wondering if there is some reason this was left out by design, but I can't see any reason why the filter should not be applied at this point. If I've missed something, please let me know.

It is easy to fix - simply apply the category_description filter to the description field in column_description() in wp-admin/includes/class-wp-terms-list-table.php

I have applied this on my local install. Now I just need to work out how to create a patch and submit it for review (this is my first attempt).

Note: It may be sensible to limit the length of the category description displayed on this page, but that's outside the scope of this ticket, which is just about the filter not being applied.",StephenCronin
Has Patch / Needs Testing,17520,cite element used incorrectly,,Administration,,low,trivial,Future Release,enhancement,new,has-patch,2011-05-20T17:47:14Z,2011-10-18T21:16:34Z,"Here's what the HTML5 specification says about the cite element:
  The cite element represents the title of a work (e.g. a book, a paper, an essay, a poem, a score, a song, a script, a film, a TV show, a game, a sculpture, a painting, a theatre production, a play, an opera, a musical, an exhibition, a legal case report, etc). […]
  
  A person's name is not the title of a work — even if people call that person a piece of work — and the element must therefore not be used to mark up people's names. (In some cases, the b element might be appropriate for names; e.g. in a gossip article where the names of famous people are keywords rendered with a different style to draw attention to them. In other cases, if an element is really needed, the span element can be used.)

http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-cite-element

The element is used plugins/hello.php correctly to mark up the title ""Hello, Dolly"". But many more places it is used incorrectly to mark up an author's name.

The obvious fix would be to replace all but the one correct instance of the cite element with spans with an appropriate class.",holizz
Has Patch / Needs Testing,11705,get_media_item()'s $form_fields do not allow for <select>,,Administration,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-01-03T21:48:51Z,2010-02-18T12:19:45Z,"get_media_item() of wp-admin/includes/media.php does not allow for <select>-style fields. This makes extending the ""Edit Media"" screen via the ""attachment_field_to_edit"" filter difficult for plugin authors to extend.",johnl1479
Has Patch / Needs Testing,22590,get_post_class() do not set 'sticky' class in administration posts table,,Administration,3.4.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-11-26T09:31:54Z,2012-12-21T19:30:40Z,"get_post_class() does set a 'sticky' class to sticky post on the frontend but not in the administration. So, there's no way to differentiate a sticky post from another non-sticky post excepted the span element to its right.

Adding something similar to this fix the problem:
{{{
	// sticky for Sticky Posts in administration
	if ( is_sticky($post->ID) && is_admin() )
		$classes[] = 'post-sticky';
}}}",corsonr
Has Patch / Needs Testing,7422,"pass $post_id to filters in sanitize_post_field() on post updates - same for users, etc.",,Administration,,normal,normal,Future Release,enhancement,new,has-patch,2008-07-28T21:18:05Z,2010-07-15T12:17:01Z,"the function sanitize_post_field in wp-includes/post.php calls most of the ""database writes"" post filters (e.g. content_save_pre). if a post is updated or created, the function is called in a database context ('db' == $context) and the $post_id argument is not passed to the ""database writes"" filters. while i understand this behavior on post creation ($post_id not yet available) it seems to me that on a post update the $post_id is readily available and could/should be passed to the filters as well.

an example where this would be useful is a case where i want to access a custom field value of a post that is currently being updated from the function hooked into content_save_pre. in its current form without the $post_id argument this doesn't seem to be possible.",whoismanu
Has Patch / Needs Testing,16778,wordpress is leaking user/blog information during wp_version_check(),,Administration,,normal,minor,Awaiting Review,enhancement,reopened,has-patch,2011-03-06T18:57:43Z,2012-09-04T11:06:26Z,"Hi,
we've noticed that wordpress will send how many users and blogs are in a given installation during the GET to api.wordpress.org together with the installation URL in the headers.

Is there any reason why this is done? It seems quite a leak of information. Can it be turned into an option defaulting to off and admins can opt-in if they want to report how many users/blogs are currently there?

thanks.

PS. slightly related, WP will also leak which blog in MU mode is requesting any URL via the user-agent in the WP_Http class (for example while updating the news feed on the dashboard)",investici
Has Patch / Needs Testing,18287,wp-login.php - Logo URL should be relative (affects MultiSite),,Administration,3.2.1,normal,normal,Future Release,enhancement,new,has-patch,2011-07-29T00:31:49Z,2013-05-05T04:50:28Z,"If you go to your domain.com/wp-login.php page it has a WP logo that links back to domain.com

If you're using multisite and go to subsite.domain.com/wp-login.php, it links back to domain.com

If you're using multisite and you MAP a domain and go to mappeddomain.com/wp-login.php, it links back to domain.com

I can see why this would have been done.  It points to network_home_url() which is perfectly sensible for MOST situations.  But maybe we should just honor the site on which people are trying to login, so that it's all relative.  Given the link on the bottom (back to...) goes to the relative site, this is a logical change.  I would say to keep the EMAILS for password resets as is, since the network is in charge of it all, but the front end interface should be consistant.

I did a quick test and this works fine on Single and Multi (as expected). So ... here's my first diff!",Ipstenu
Has Patch / Needs Testing,19239,Combine WordPress News and Other WordPress News dashboard widgets,,Administration,3.3,normal,normal,Future Release,feature request,new,has-patch,2011-11-12T19:01:42Z,2013-05-14T19:49:51Z,"We could lighten the dashboard by making this one widget with configuration instead of two separate ones. Anything from WordPress.org official blog would get a highlight to designate it as such. Configure would allow to choose display of both feeds or jus one, and how many items to show.",jane
Has Patch / Needs Testing,16434,"Give site admin ability to upload favicon in Settings, General",,Administration,3.1,normal,normal,Future Release,feature request,new,has-patch,2011-02-01T16:57:34Z,2013-02-14T18:13:55Z,"WordPress has come a long way in terms of making it possible for someone completely non-technical to create a professional web site for a person or business. One of the little things that is still annoyingly technical is adding a favicon. WordPress.com does this via the Blavatar feature, a name I wouldn't really want us to adopt b/c this is more CMS-oriented, but the ease of uploading an image, scaling and cropping it, then having it become the favicon is something I do want to adopt. Keeping it a theme-based thing means the non-technical can't control it for their sites, which is lame.

",jane
Has Patch / Needs Testing,22231,Add action to provide additional options to the Custom Background page,,Appearance,3.4,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-10-19T23:27:02Z,2012-10-20T15:12:29Z,"The Custom Header feature of WordPress has an action to allow additional options to be attached to the Custom Header admin page. This patch allows the same functionality to be done for the Custom Background page.

'''Use case:''' I want to provide an option to allow the custom background image set to be responsive. If checked, the background image URL will be localized for use via the anystretch.js.",thelukemcdonald
Has Patch / Needs Testing,22182,Make core theme customizer section titles filterable,,Appearance,3.4.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-13T11:45:13Z,2013-04-19T17:11:01Z,"It would be very useful to be able to modify core theme customizer section titles by making them filterable, or by adding a setter class method to modify an existing section title.

At the moment you can't access a section title directly as it is set to protected.

Example user case scenario is if you needed to add sub controls to an existing section, then the title may need updating to reflect this.",dgwyer
Has Patch / Needs Testing,17557,"AtomPub service sends duplicate status headers, breaking FastCGI",,AtomPub,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-05-25T20:33:33Z,2011-08-08T01:00:38Z,"The AtomPub service (wp-app.php) sends duplicate Status headers when authorization is not provided, which breaks on FastCGI setups. This is seen when you attempt to connect to the service using e.g. [https://github.com/calavera/Ape Ape], resulting in the following error message in the Apache logs:

{{{
[Wed May 25 16:09:21 2011] [error] [client 10.5.62.176] FastCGI: comm with server ""/tmp/webadmin_test"" aborted: error parsing headers: duplicate header 'Status'
}}}

This results in a 500 Internal Server Error from Apache:

{{{
HTTP/1.1 500 Internal Server Error 
Date: Wed, 25 May 2011 20:09:21 GMT 
Server: Apache 
X-Powered-By: PHP/5.2.6RC4-pl0-gentoo 
Expires: Wed, 11 Jan 1984 05:00:00 GMT 
Last-Modified: Wed, 25 May 2011 20:09:21 GMT 
Cache-Control: no-cache, must-revalidate, max-age=0 
Pragma: no-cache 
WWW-Authenticate: Basic realm=""WordPress Atom Protocol"" 
Content-Length: 735 
Connection: close 
Content-Type: text/html; charset=iso-8859-1 

<!DOCTYPE HTML PUBLIC ""-//IETF//DTD HTML 2.0//EN""> 
<html><head> 
<title>401 Credentials required.</title> 
</head><body> 
<h1>Credentials required.</h1> 
<p>The server encountered an internal error or 
misconfiguration and was unable to complete 
your request.</p> 
<p>Please contact the server administrator, 
webmaster@ufl.edu and inform them of the time the error occurred, 
and anything you might have done that may have 
caused the error.</p> 
<p>More information about this error may be available 
in the server error log.</p> 
<p>Additionally, a 500 Internal Server Error 
error was encountered while trying to use an ErrorDocument to handle the request.</p> 
<hr> 
<address>Apache Server at test.news.ufl.edu Port 80</address> 
</body></html>
}}}

Patch attached to refactor Status headers in wp-app.php to use the {{{status_header}}} function like most of the code uses.  There's also a function that handles which I have refactored to use {{{wp_redirect}}}. Affects all versions back to 2.9.2, including trunk.

Examples of this issue (and corresponding fixes) include:
* #2628
* http://trac.symfony-project.org/ticket/3191",dwc
Has Patch / Needs Testing,18060,image upload handling between atompub and xmlrpc different,,AtomPub,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-07-10T12:33:27Z,2012-06-17T12:58:30Z,"Uploading images via XMLRPC generates different image sizes in addition to the original image. Uploading the same image through AtomPub will only create a single original file in the uploads/year/month/ directory, the thumbnail and different formats normally generated on upload are missing. It is probably because wp_handle_upload is missing from the wp-app.php create_attachment definiition - it only uploads the bits and creates an attachment, but neither handles metadata updates nor image thumbnail generation.",rfc1437
Has Patch / Needs Testing,19984,Issue with Default Post Format,,Blog by Email,3.3.1,normal,major,Awaiting Review,enhancement,new,has-patch,2012-02-07T20:29:41Z,2012-08-24T01:34:27Z,"I set my Default Post Format as Aside. So I expect all my posts via email will appear as Aside, same as Default Post Category does perfectly while post via email. But it is always posting as Standard whenever I post by email. Kindly fix this. Wordpress is Awesome :)",binarymag
Has Patch / Needs Testing,23662,Twenty Twelve: style.css with Table of Contents,,Bundled Theme,3.5,normal,normal,Future Release,enhancement,reopened,has-patch,2013-03-02T00:44:33Z,2013-03-15T18:08:49Z,"Hello, I really like the 2013 initiative with Table of Contents, because it helps new users understand where goes what, especially developing child themes.

I added Table of Contents to Twenty Twelve theme and renamed CSS comments titles accordingly.",TomasM
Has Patch / Needs Testing,24244,Clean post cache when post was moved to trash,,Cache,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-05-02T00:36:22Z,2013-05-02T00:36:22Z,Clean post cache when post was moved to trash,m_uysl
Has Patch / Needs Testing,22683,Don't load advanced-cache.php when running via CLI,,Cache,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-02T18:46:48Z,2012-12-03T20:05:29Z,"When you're loading WP via a command-line program, it doesn't make much sense for a plugin like WP Super Cache to take over. It's not like you have thousands of CLI users hammering the install.

Example issue in wp-cli: https://github.com/wp-cli/wp-cli/issues/164",scribu
Has Patch / Needs Testing,21267,Kill the serialization of $wp_filter in get_terms(),,Cache,,normal,normal,Future Release,defect (bug),new,has-patch,2012-07-13T21:35:11Z,2013-01-22T19:35:23Z,"We use this as part of a persistent cache key:

{{{
serialize($GLOBALS['wp_filter']['list_terms_exclusions'])
}}}

See [8225].

This is not good for two reasons. First, well, it's a not fun to reach into our internal API like that. But worse, it's broken whenever an object method is used, because spl_object_hash() will be unique to that object, thus rendering the cache invalidated on the next pageload.

As an aside, we should probably have _wp_filter_build_unique_id() create a delimiter when dealing with a static class method — `$function[0].$function[1]` can conflict with a legitimate function name.

I'm not sure how this should be fixed.",nacin
Has Patch / Needs Testing,21650,replace serialize() with print_r() in stats() function in wp-includes/cache.php,,Cache,3.4.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-08-21T13:42:29Z,2012-09-10T15:17:49Z,"In PHP 5.3 it is no longer possible to serialize data that contains a SimpleXMLElement object. It produces a fatal error. See https://bugs.php.net/bug.php?id=49800

The stats() function attempts to determine the allocated space for objects in the cache by using strlen() of the serialized object.

This can fail for the reason above.

Given that the figure returned is simply an estimation of the space 
I propose that the code is changed to use 
print_r( $cache, true ) instead of serialize( $cache )

ie. to become
`echo ""<li><strong>Group:</strong> $group - ( "" . number_format( strlen( print_r( $cache, true ) ) / 1024, 2 ) . 'k )</li>';`



This TRAC was raised after a longish chain of events starting with #18488 and the final response (today) which led to another chance discovery of a similar problem in the debug-bar plugin.

http://wordpress.org/support/topic/plugin-debug-bar-fatal-error-uncaught-exception-serialization-of-simplexmlelement-is-not-allowed



",bobbingwide
Has Patch / Needs Testing,21879,wp_count_posts() cache is not destroyed after post inserts and deletions,,Cache,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-13T01:23:38Z,2012-09-13T02:11:19Z,"`wp_count_posts()` caches its results, but that cache is not destroyed when posts are inserted, deleted, or transitioned. This can lead to incorrect counts.

The attached patch fixes that (although it doesn't destroy the cache set when `$perm='readable'` in `wp_count_posts()`, which would be more complex as we wouldn't know the name of the key(s), though it could be done with `preg_match`).

",mark8barnes
Has Patch / Needs Testing,19564,Helper function for getting/setting cache data,,Cache,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-15T15:02:09Z,2011-12-15T16:00:55Z,"Most of the time when we want something from the object cache we go through a routine of: wp_cache_get(); checking a result; setting a default; setting the cache with wp_cache_set(); returning. Core should offer a neat way to do this all in one fell-swoop.

Attached patch is a proposed solution.",johnjamesjacoby
Has Patch / Needs Testing,21401,Load packaged object cache when advanced-cache.php and object-cache.php don't implement wp_cache_init( ),,Cache,3.0,normal,normal,Future Release,enhancement,new,has-patch,2012-07-28T06:00:11Z,2013-05-14T13:22:25Z,"'''This ticket has 3 purposes:'''

1) introduces {{{wp_using_ext_object_cache()}}} - mimic {{{wp_suspend_cache_invalidation()}}} and disallow direct access to {{{$_wp_using_ext_object_cache}}}, cleans up importing of globals in functions and provides function to modify that global[[BR]][[BR]]
2) load the wp-packaged object cache when {{{object-cache.php}}} doesn't implement {{{wp_cache_init()}}}[[BR]][[BR]]
3) adds file_exists for advanced-cache.php

{{{wp_start_object_cache()}}}, at its core, is on the hunt for {{{wp_cache_init()}}} and then sets the toggle for the external object cache. We only care about the external object cache if it has that function. Rather than throwing a fatal error if their is a missing method, load the default object cache.

If someone installs Memcached properly, then nothing changes - file loads, all is good. If they install a blanks file, the default Object Cache will load. If they install an external object cache without {{{wp_cache_init()}}}, the default cache loads. 

IMO - there is no reason to turn off non-persistent caching or throw a fatal error if the author of a cache plugin sucks or the user made a mistake in moving the files.",wonderboymusic
Has Patch / Needs Testing,21402,"Remove PHP4 methods, format consistently",,Cache,,normal,normal,Future Release,enhancement,new,has-patch,2012-07-28T06:24:33Z,2013-05-14T13:16:42Z,"While I was looking around in cache.php, I noticed the TODO to remove the destructor that does nothing and the constructor that registers it to do nothing

Also, the whitespace was different for almost every function - yet the functions all have similar code, this cleans it up",wonderboymusic
Has Patch / Needs Testing,17661,Appending date & author based query vars to a permalink overrides the permalink,,Canonical,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-02T11:05:05Z,2012-09-09T20:14:26Z,"Some canonical code branches are not properly accounting for extra query variables being specified via the url.

For example, these url's are not handled properly:
{{{
/2008/?author=1 redirects to /author/admin/
/author/admin/?year=2008 redirects to /year/2008/
/category/uncategorized/?year=2008 redirects to /2008/
}}}

This happens with most date based branches, as once a higher priority canonical rule is hit, the permalink component is ignored.

The canonical code includes a branch to add any ""forgotten"" `$_GET` variables back onto the url, however this doesn't help when it's the rewritten variables are being lost.",dd32
Has Patch / Needs Testing,17718,Don't redirect if user is already on port 80,,Canonical,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-07T11:31:40Z,2012-10-16T16:36:46Z,"If user is already using port 80 but {{{$original['port']}}} is set to 80 anyway, do not send a needless redirect.

wp-includes/canonical.php line 324

change from

{{{        if ( !empty( $original['port'] ) )}}}

change to

{{{        if ( !empty( $original['port'] ) && $original['port'] != 80 )}}}

Fixes, for example, Nagios's check_http getting sent a redirect rather than the page content.

-davidc",davidcx
Has Patch / Needs Testing,16133,"Pagination issue with tag ""rss""",,Canonical,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-07T09:39:10Z,2012-09-04T21:50:34Z,"When posts use ""RSS"" as a tag, and the /tag/rss/ page has more posts than it is set to display on one single page, the link to page 2:

/tag/rss/page/2/

is redirected to:

/category/page/2/

Tested on Paolo Belcastro test WordPress.org :

http://test.belcastro.com/tag/rss/

Running 3.1-RC2-17229 with only Debug Bar plugin activated

This is not theme related, same behaviour with TwentyTen or Thematic on this install.",paolal
Has Patch / Needs Testing,14458,Create rel_canonical filter,,Canonical,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-29T21:48:34Z,2011-05-06T14:18:54Z,"Wouldn't it be nice to be able to set the canonical rel value.
This comes in handy when you create a duplicate page and be able to manipulate the cannonical value.

Usage:
{{{
add_filter( 'rel_canonical', 'childtheme_rel_canonical', 10, 2 );
function childtheme_rel_canonical( $link, $id ) {
  return get_permalink( 55 );
}
}}}
",wjm
Has Patch / Needs Testing,23087,Filter wp-register.php canonical redirect in single site too,,Canonical,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-30T16:02:06Z,2012-12-30T21:05:43Z,"in canonical registration location redirecting we have a filter for MS but none for WP Single Site. I'm unsure of how to convert Git patches to svn, so... yeah... Sorry.

patch:
https://github.com/ChrisClayton/WordPress/commit/449ac581ff45bfd68050280cdad6211d907ca12f",chrisclayton
Has Patch / Needs Testing,20496,Previews should redirect to the permalink if the post has been published,,Canonical,,normal,normal,Future Release,enhancement,new,has-patch,2012-04-20T21:55:08Z,2013-05-21T20:00:47Z,"If a post is saved as a draft and you visit the preview URL, even after the post is published, you will stay on the preview view (with preview=true in the URL).  This is confusing since you're not actually previewing anything, you're viewing a public post.",evansolomon
Has Patch / Needs Testing,15950,Tweak canonical redirect name requests,,Canonical,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-22T18:09:54Z,2010-12-22T22:28:38Z,"Scenario: A website has the following two pages:

 * `example.com/foo/amazing-thing/`
 * `example.com/amazing/`

Upon requesting `example.com/amazin` the canonical redirect should favour the top-most level page. This doesn't happen as the relevant SQL query doesn't have an `ORDER BY` clause, making the behaviour unpredictable.",johnbillion
Has Patch / Needs Testing,20319,$page value not being defaulted to 1 in the absence of cpage query var in get_next_comments_link()/get_previous_comments_link(),,Comments,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-29T09:23:19Z,2012-05-24T07:27:29Z,"get_next_comments_link() generates incorrect comment pagination links on the first page when used alongside a user-made call to wp_list_comments().

Currently, get_next_comments_link() doesn't take into account instances where there is no 'cpage' query var (which is the case when a user-made call to wp_list_comments() is performed). The intval() of the empty $page variable returns 0, and at this point should then be defaulted to 1 in order for the correct link to page 2 to be generated. Instead, it's left as 0, and the resulting link is self-referencing to page 1.

In wp-includes/link-template.php:

{{{
function get_next_comments_link( $label = '', $max_page = 0 ) {
    global $wp_query;

    if ( !is_singular() || !get_option('page_comments') )
        return;

    $page = get_query_var('cpage'); //RETURNS EMPTY IN ABSENCE OF A cpage VALUE ON PAGE 1 OF A USER-MADE CALL TO wp_list_comments()

    $nextpage = intval($page) + 1; //intval() RETURNS 0, 0+1=1, RESULTING IN THE ""Newer Comments"" LINK SELF-REFERENCING PAGE 1, INSTEAD OF POINTING TO PAGE 2

    ...
}}}

Coincidentally, in paginate_comments_links() (wp-includes/link-template.php) this situation is handled correctly, and $page does get correctly defaulted to 1. The same conditional used in paginate_comments_links() can be applied to both get_next_comments_link() and get_previous_comments_link(). The code to properly account for it is:

{{{
function get_next_comments_link( $label = '', $max_page = 0 ) {
    global $wp_query;

    if ( !is_singular() || !get_option('page_comments') )
        return;

    $page = get_query_var('cpage');
    if ( !$page ) //******** ADDED
        $page = 1; //******** ADDED

    $nextpage = intval($page) + 1; //intval() RETURNS 0, 0+1=1, RESULTING IN THE ""Newer Comments"" LINK NOT POINTING TO PAGE 2

    ...
}}}

The same addition should be made to get_previous_comments_link() as well, although it's obviously unnoticeable on the first page.",MomDad
Has Patch / Needs Testing,16430,"Comment 'Reply' button still present when comment max depth has been reached, just without text.",,Comments,3.0.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-01-31T22:12:56Z,2013-01-15T23:41:09Z,"With comment max depth set, in my case, to 5 on the admin panel, the div for the reply link would still appear even though the text that says 'Reply' would not. Basically, it was an empty div with class=""reply"". The fix is quite easy, which I implemented in test on one of my WP sites.

Around line 1372 of wp-includes/comment-template.php, there is the following is code:
{{{
<div class=""reply"">
<?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
}}}

This can simply be enhanced to this:
{{{
<?php if ( $depth < $args['max_depth'] ) : ?>
<div class=""reply"">
<?php comment_reply_link(array_merge( $args, array('add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
</div>
<?php endif; ?>
}}}

I just added a quick check to make sure our current comment depth did not meet (or somehow exceed?) our set max depth.",TheGremlyn
Has Patch / Needs Testing,22380,Consolidate the API hooks comment,,Comments,3.4,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-11-07T17:00:16Z,2012-11-13T01:09:24Z,"Many functions of API comments have hooks unusable because they do not provide parameters that provides the function. 

In general, these functions provides a $comment_ID argument, but it's not present in the hook...

Sample 
{{{
function comment_author( $comment_ID = 0 ) {
	$author = apply_filters('comment_author', get_comment_author( $comment_ID ) );
	echo $author;
}
}}}

Fixed sample :

{{{
function comment_author( $comment_ID = 0 ) {
	$author = apply_filters('comment_author', get_comment_author( $comment_ID ), $comment_ID  );
	echo $author;
}
}}}
",momo360modena
Has Patch / Needs Testing,12480,Moderated comments don't show blank links,,Comments,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-03-02T18:29:09Z,2010-11-13T07:48:54Z,"Comments caught in moderation won't show the blank links inserted into them unless you edit them.

A comment with html code like <a href='http://example.com/'></a> will not show that link on the moderation page.",donncha
Has Patch / Needs Testing,11248,Paged wp_list_comments() should always output something,,Comments,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2009-11-24T06:00:23Z,2010-03-13T22:04:21Z,"Enable comment paging on your blog and visit `http://yourblog.com/a/single/post/comment-page-999999/`. Note no comments will be displayed.

There's situations where the comment form will redirect you back to the wrong page (for example if you mess with the type parameter and exclude pings). The Walker should detect if there's no comments to be displayed on the requested page and if that's the case, then display the latest page that actually has comments.",Viper007Bond
Has Patch / Needs Testing,18762,Pagination does not work correctly on walker in reverse order.,,Comments,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-23T21:08:42Z,2012-05-02T17:26:33Z,"Steps to reproduce:
1. Go to Discussion and change Comments should be displayed with the  comments at the top of each page to ""newer"" (that is, set comment_order='desc'). 
2. Make sure your theme is paginating comments. Make sure you have more than the page limit of comments.
3. Note that the first page does not actually contain the newest comments (they're off by a page, or perhaps they're just sorted in one way for the pagination and a different way for the inner page sort).

If you check out the $start, $oldstart and $end variables, the way it was written before the patch, $start gets set to 11 (page limit + 1) on page = 1, the way it is written after the patch, start is 0, as it should be. 

All I've done is swapped the order of $start and $end being updated. This fixes the starting point. This needs to be tested in more detail before actually deploying it, but there is definitely a pretty serious bug here.",gburtini
Has Patch / Needs Testing,20050,Proper Cap check in edit_comments.php,,Comments,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-15T17:36:51Z,2012-02-15T17:56:25Z,"See #20025.
As in edit.php?post_type=custom_post_type
and edit-tags.php?taxonomy=custom_taxonomy

When filtering comments for a specific post type
The fix in cap is more appropriate",nprasath002
Has Patch / Needs Testing,23939,Wrong capability check in wp_ajax_replyto_comment,,Comments,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-04T18:39:21Z,2013-04-05T01:06:32Z,"The wp_ajax_replyto_comment function in the wp-admin/includes/ajax-actions.php checks the ""edit-post"" capability instead of the ""edit-comment"" capability.

Attached a tested patch. ",fgauthier
Has Patch / Needs Testing,11566,clean_comment_cache() does not clean $GLOBALS['comment'],,Comments,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2009-12-22T21:18:23Z,2011-04-28T22:55:15Z,"I am trying to add links to comment list, which will allow to delete comments directly without need to move them to trash first (and with trash enabled). For posts/pages I found working workaround: hook `trashed_post` and `call wp_delete_post()` again from. 

Unfortunately similar approach for comments does work. As I checked, `wp_trash_comment()` calls `get_comment()`. The latter function implements simple comments cache using `$GLOBALS['comment']`. When you change comment status to `trash`, `wp_set_comment_status()` clears cache by calling `clean_comment_cache()`, but it leaves that global set. As a result my workaround does not work. 

I think that `clean_comment_cache()` should clear that global too.",sirzooro
Has Patch / Needs Testing,17778,get_comment_pages_count() returns > 1 when pagination is disabled,,Comments,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-13T05:01:58Z,2011-07-09T11:10:47Z,"If pagination is disabled, get_comment_pages_count() will still return the number of pages possible if pagination was enabled.

As a workaround, themes & TwentyEleven are having to get to see if pagination is enabled first:
{{{
<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?>
}}}

I'd suggest that if comment pagination is not enabled, this function should return 0 or 1 (0 = no comments, 1 = 1 page).

The addition of an extra block after the [http://core.trac.wordpress.org/browser/trunk/wp-includes/comment.php#L740 empty comments check] would be:
{{{
if ( ! get_option('page_comments') )
	return 1;
}}}",dd32
Has Patch / Needs Testing,20006,get_comments (and WP_Comment_Query) does not accept multiple post_type,,Comments,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-10T05:46:52Z,2012-08-14T08:34:53Z,"Although get_comments was recently improved to support post_types, it does not seem to properly handle MULTIPLE post_types.

Suppose you need to get the most recent comments for posts, pages, and attachments (attachments don't seem to be included by default).  The following doesn't work, as it only returns comments on attachments (or whichever status is listed first):
 {{{
get_comments(array('number'=>20, 'status'=>'approve', 'post_type'=>array('attachment','post','page')));
}}}

The following doesn't work either, only returning the default post/page comments (taken from the example for multiple category handling at http://codex.wordpress.org/Class_Reference/WP_Query):
 {{{
get_comments(array('number'=>20, 'status'=>'approve', 'post_type__in'=>array('attachment','post','page')));
}}}

A quick look at wp-includes/comment.php, line 327 (WP v3.3.1) shows that the 2nd option will be array_filter'ed away.  Immediately below, all of the WHERE clauses are hardcoded as ""="", which is why there's no way to specify more than one.  As a result, it seems like the only way to get recent comments on posts,pages,and attachments (or any other subset of >1 post_type) is to do multiple calls to get_comments (i.e. one with default params and one for attachments) then merge the results together...effectively requiring twice the work.",Justin_K
Has Patch / Needs Testing,13939,get_page_of_comment returns wrong page number when changing threading level,,Comments,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-17T07:58:01Z,2010-11-13T10:04:51Z,"Initial discussion settings:
 * Enable threaded comments 2 levels deep
 * 5 top-level comments per page, first page by default
 * Older comments at top of each page

If I have comments on a post like:

'''cpage 1'''
 * comment-1
 * comment-2
 * comment-3
 * comment-4
 * comment-5
  * comment-6

{{{
$page = get_page_of_comment(6); // returns 1 which is the correct page
}}}

If I modify the initial discussion settings by disabling threading (e.g. changing the threading level to 1), the comments change to:

'''cpage 1'''
 * comment-1
 * comment-2
 * comment-3
 * comment-4
 * comment-5
'''cpage 2'''
 * comment-6

{{{
$page = get_page_of_comment(6); // returns 1 which is incorrect
}}}

This function doesn't follow the same algorithm as what is used to display the comments

This can potentially happen whenever you decrease the threading level from x to x-n",laceous
Has Patch / Needs Testing,21448,unfiltered HTML comments from a frame js fix breaks js in windowed comments,,Comments,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-01T21:58:53Z,2012-08-02T17:56:36Z,"Noticed this today.

We have comments loading up in a jquery colorbox on a site being developed and it loads the comment form via ajax.  When it's loaded, the fix in #20812 breaks javascript because the property ""name"" is null.

Attaching a patch after posting this for only executing when `document.getElementById(""_wp_unfiltered_html_comment_disabled"")` != null.",nerrad
Has Patch / Needs Testing,14279,wp_new_comment ignores comment_date_gmt and comment_date,,Comments,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-07-12T14:07:06Z,2011-01-27T08:08:52Z,"wp_new_comment takes in a $comment array, but then ignores the comment_date and comment_date_gmt passed into it, instead replacing them with the current time. 

It should only set them if the data passed in is empty or not a date/time. ",johneckman
Has Patch / Needs Testing,24054,(get_)comment_class() should include a is_user_member_of_blog() class,,Comments,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-11T22:35:04Z,2013-04-11T23:27:06Z,"On multi-site, there's no way to style comments that are members of the site. You can either style the post author or all registered users (who may not have access to the site's admin area). Example use case would be a multi-author site where you want comments from all authors highlighted.

I think it'd also be cool to include what role they are so that you could style say all authors, editors, and administrators but not style contributors or something like that.

I'm not sure if this would an information exposure issue though (does it matter if it is known what role a user is or that they are a member of the site?).",Viper007Bond
Has Patch / Needs Testing,11334,Add caching to get_page_of_comment(),,Comments,2.9,high,major,Future Release,enhancement,new,has-patch,2009-12-05T07:33:50Z,2013-02-05T05:10:21Z,"Ack. `get_page_of_comment()` lacks caching which means if you call `get_comment_link()` for the same comment ID on the same page multiple times (and outside of the loop), it will query multiple times. You also can't cache the result between page loads (the big ""uh oh"").

Attached patch introduces a cache that stores comment ID => older comment count (in short, the result of the function's query) on a per-post basis.

When any comment's status is changed, the entire cache for that comment's parent post is deleted as it will likely affect other comments (for example, deleting a comment can change the page of newer comments).

I opted to make a new cache flag (group), but I'm not sure if using an existing one would be better or not.

Oh, and this patch needs through testing and/or a good review.",Viper007Bond
Has Patch / Needs Testing,20446,Add comment form submit button class attribute,,Comments,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-15T07:34:55Z,2012-05-03T15:59:12Z,"The comment_form() is packed with filters all over the place to customize the from just the way you need, but one thing i find missing is a class on the submit input tag and if there was a class attribute then it should be filterable.

I know you can set the input ID and simply style based on the ID selector but when designing themes usually you have some kind of class defined for buttons, especially when using any of the html5/responsive theme frameworks and if the comment submit input had a class which was filterable then it would make our lives much easier.

",bainternet
Has Patch / Needs Testing,22922,Add filter 'comment_notification_email_to' in wp_notify_postauthor(),,Comments,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-13T17:53:32Z,2013-01-03T17:57:54Z,"Currently, mailto: address is not filterable in pluggable function `wp_notify_postauthor()`. Thus, in order to send replies to email addresses other than the post author, the entire function must be overridden.

Patch makes mailto: filterable for `wp_notify_postauthor()`, moving `$author->user_email` to an array, and applying the `'comment_notification_email_to'` filter.",chipbennett
Has Patch / Needs Testing,20353,Add filter for email recipients in wp_notify_moderator(),,Comments,3.3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-04-04T12:35:36Z,2013-01-03T17:57:33Z,"As administrator, I would like more control over email notifications when comments are marked for moderation without having to overwrite the pluggable function wp_notify_moderator. 

The function wp_notify_moderator sends emails to post authors (when they have sufficient roles) and the admin by hard coding the $email_to array. I'd like to see the $email_to array sent to a filter with $comment before wp_mail() is called. That would allow me to write a theme function to manipulate the $email_to array to add or delete recipients. 

My workaround was to write a site specific plugin that overwrote wp_notify_moderator() to manipulate the $email_to array.",lexhair
Has Patch / Needs Testing,16944,Add new 'bynetworkuser' CSS class to output from comment-template.php,,Comments,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-23T06:28:46Z,2011-06-08T05:23:43Z,"Currently, the comment-template.php file checks to see whether a comment author is in the wp_user table.

If they are, then WordPress will emit a 'byuser' class as part of the comment div markup.

However, this behaviour is not ideal from multisite installations. 'byuser' should be restricted on a per-blog basis.

I propose that the current behaviour be assigned to a new CSS class, 'bynetworkuser'.",jacques_chester
Has Patch / Needs Testing,16882,Add support for fetching comments posted since a specific date,,Comments,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-17T21:08:51Z,2011-03-22T14:30:12Z,"Adding a ""since"" option to wp.getComments and get_comments() could help reducing bandwidth used by mobile apps.

Probably useful for themes/plugins too",koke
Has Patch / Needs Testing,20597,Allow WP_Comment_Query::query to filter by category,,Comments,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-05-02T03:35:35Z,2012-05-02T03:45:58Z,"The attached patch allows WP_Comment_Query::query to accept three additional arguments:

* `cat`
* `category__in`
* `category__not_in`

The resulting comments are then filtered by these category arguments as well as any other arguments.

These arguments work the same way as their `WP_Query` counterparts.

I would appreciate advice on the appropriateness of using `INNER JOIN` (as I have done here) to join in the taxonomy tables to the query.",sambauers
Has Patch / Needs Testing,20302,Allow comment_form() to add attributes to <form> tag,,Comments,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-25T15:48:53Z,2012-04-01T18:23:56Z,"The standard method to allow Google Analytics to track comment submissions as a 'goal' is to add a piece of JavaScript code wrapped in an 'onsumbit' attribute:
http://www.optimisationbeacon.com/analytics/track-blog-comments-in-google-analytics/
http://code.google.com/apis/analytics/docs/tracking/eventTrackerGuide.html

We want something like the following:

{{{
<form action=""http://www.example.com/wp-comments-post.php"" method=""post"" id=""commentform"" onsubmit=""_gaq.push(['_trackEvent', 'Comments', 'Submit', 'POST TITLE']);"">
}}}

However the current arguments submitted to comment_form() do not provide for adding attributes to <form>
http://codex.wordpress.org/Function_Reference/comment_form

I was forced to perform a workaround in which the onsubmit code was inserted by JavaScript on the fly at runtime.

So this is request to alter comment_form() such that arguments accepted provide for 'onsubmit' or other custom attributes to be appended on the <form> tag.",psbook
Has Patch / Needs Testing,10569,Allow filtering of reply text with comment context,,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2009-08-08T13:55:54Z,2011-02-01T16:30:36Z,"I know you can specify the reply text for comments, but you can't make them specific to each comment such as ""`Reply to comment #1234 by Joe`"".  This will let you do that by adding a filter called `comment_reply_link_text` to `get_comment_reply_link()` that passes along $args, $comment, and $post (just like the existing `comment_reply_link` filter).

I know you COULD do this with some processing on the link, but it would require pulling comment and post IDs from the URL and/or onclick, then replacing the text in the link itself.  This way would be a lot simpler and only adds a single filter.",aaroncampbell
Has Patch / Needs Testing,23851,Can we get some classes on the comment form output?,,Comments,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-22T20:02:00Z,2013-04-04T03:32:41Z,"The `comment_form()` function is quite useful, but styling it pretty much requires that you target the IDs, since the the outermost div and the form itself don't have classes.

If you're trying to stay as low on the specificity scale when writing CSS, not having classes available to target pretty much stops you cold.

I don't really care about the class names, though something descriptive and somewhat semantic would be preferable.

Anybody have thoughts?",nathanrice
Has Patch / Needs Testing,21834,Comment History,,Comments,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-07T20:30:47Z,2012-09-08T03:37:40Z,"This ticket provides a simple patch for comment history in core.

''The Problem'':  

In at least a few  places:  ([comment:ticket:9117:10], [comment:ticket:15534:4], [comment:ticket:9495:3]) Nacin has mused about the desirability of introducing comment history to core, citing Akismet’s implementation as a model for how this might be done.

There are good reasons for wanting this, as comment history could serve as a solid underpinning for a variety of other features such as more informative moderation emails, some indication of why a message was marked as spam, and even comment versioning.

The idea is that to implement any of that, we really should have basic comment versioning in core, a la Akisment.


''The Solution'':

Our goal was to expand the API so as to reproduce and streamline the basic history functionality provided by Akismet, port and tweak Akismet’s nice history UI, and keep the change set minimal.

Comment history API:

* added simple functions to /wp-includes/comment.php to get and update comment history.  These in turn use existing comment_meta functions.

UI:  

* there’s now a comment history meta box on the comment edit screen.  It looks just like Akismet’s.  This was implemented as a real meta box.  A sorting function is also included.

History Events:

* this patch supports the following history events, each of which has a nice, plain-english (internationalizable) history message, which always includes the user responsible for the action and a timesince. 
 * edit_comment (“edited by user”)
 * trashed_comment (“trashed by user”)
 * untrashed_comment (“un-trashed by user”)
 * comment_unapproved_to_approved (“user approved this comment”)
* comment_approved_to_unapproved (“user unapproved this comment”)
* spammed_comment (“user marked this comment as spam”)
* unspammed_comment (“user marked this comment as ham”)

''Next steps'':

Here’s what we’d think of doing next if this were to be introduced into core:
* support more history events and provide more detail. In particular, support events where the comment is spammed as a result of a blacklist word or other reason.
* include some of this detail in moderation emails

''Note'':

* the Akismet plugin should be updated to use this new API instead of its own history functions
* meta boxes on edit comment did not work properly until this: http://core.trac.wordpress.org/ticket/21499 (in 3.5)

''Who we are'':

This patch comes from [http://profiles.wordpress.org/bbrooks Ben Brooks], [http://profiles.wordpress.org/mattoperry Matt Perry] and [http://profiles.wordpress.org/natebot Nathan Letsinger].  Enjoy",mattoperry
Has Patch / Needs Testing,20487,Comment search isn't customizable,,Comments,3.2.1,normal,normal,Future Release,enhancement,new,has-patch,2012-04-18T23:32:07Z,2012-07-12T16:05:07Z,"*cross-posted to the wp-hackers mailing list last night*


I work on a large news oriented WP site and first off, it actually scales remarkably well. We keep users, comments, and actual posts all in WordPress. However, due to our size, administering comments is causing us issues at the moment.

Our last outage was caused by one of our comment moderators doing a simple comment search in the admin. The query took 16 seconds to execute, the next query locked, and, with our traffic, the DB couldn't handle the resulting queued traffic.

Staying away from discussions of ""you should use Disqus"" or, ""you need more X for your mysql server,"" I think there is significant opportunity to improve the way WP handles comment searching. Every comment search takes the following form:

SELECT * FROM wp_comments  WHERE ( comment_approved = '0' OR comment_approved = '1' ) AND (comment_author LIKE '%TERM%' OR comment_author_email LIKE '%TERM%' OR comment_author_url LIKE '%TERM%' OR comment_author_IP LIKE '%TERM%' OR comment_content LIKE '%TERM%') ORDER BY comment_date_gmt DESC LIMIT #;

As we can all see, this is a beast of a query. Even when the term is clearly an specific term (say an email or IP), or when the intent of the admin is known (e.g. clicking the IP link on a specific comment). Furthermore, there are no hooks activated in this process for plugins to use to say create an advanced comment search plugin. One might expect hooks like those activated in post search to be activated here, like ""parse_request"" and ""get_search_query.""

Waxing philosophical, as posts, comments, and users are the three basic types of data to be stored and displayed in WP, one would expect them to have similar interfaces and functionality. They each have basic functionality of being able to retrieve a single item, a list (in full or in part), search for an element, or edit a single entry. For this reason I don't understand why each of their functionality isn't derived from something like an abstract class or an interface. The architecture here is also difficult in that you are not able to replace or extend a single class to change the functionality.

Back on target. I propose that we add functionality by which we'll be able to search by exact match in addition to the existing full wildcard (left, right, or full wildcard is probably excessive) as well as specifying the field to search. This would allow my earlier use case of searching by IP to look for an exact match in the ""comment_author_IP"" field only, not searching the fulltext of every comment.

This functionality can be created simply by:

1. Adding ""search_type"" and ""search_field"" to the WP_Comment_Query::query_vars data structure in wp_includes/comment.php
2. Replacing WP_Comment_Query::get_search_sql with something more robust, able to understand these new properties and construct the query on their basis
3. Upgrading WP_Comments_List_Table::prepare_items to accept the new queries and add them to the data structure it creates
4. Either modifying WP_List_Table::search_box to have some options of advanced search, or dropping a hook so that a plugin can easily modify it
5. Modifying the WP_Comments_List_Table::column_author to supply the correct query string to indicate an IP search

If I can figure out a way to make this more similar to the signature of posts and users, or at least add some hooks at the right places, I can do that as well.

This will add efficiency for everyone--particularly those who have lots of comments. I modified our core for this functionality today and we will fully QA it tomorrow. I made it on 3.2.1 as that is what we're running right now, and there are minimal changes in the affected files and functions between 3.2.1 and 3.3.1 and even the nightly.

I can submit a patch as long as it passes our QA--how should I do that, off the nightly?

Thanks,
-Kenton Jacobsen",brokentone
Has Patch / Needs Testing,7051,Delete blacklisted comments rather than mark them as spam,,Comments,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-05-28T11:37:11Z,2011-02-08T04:10:40Z,Comments that are blacklisted because of the Blacklist keys on options-discussion.php should be deleted immediately instead of being marked as spam. Patch attached.,donncha
Has Patch / Needs Testing,21758,Do not require a file in comments_template(),,Comments,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-31T20:22:16Z,2012-09-01T11:23:07Z,"comments_template() is a very useful and reliable way to set up comments for a page, but it has a major downfall: it forces a file to be included when, in reality, one does not need to be.

Numerous times it has been the case that I needed comments to be setup in the wp_query object, but did not want to output anything at that time. The hack I have used is simply to include an empty comments.php file. This method is less than desirable for obvious reasons.

So, I propose that we simply add a parameter I'm calling $require that will control whether or not a file is included at all.",mattonomics
Has Patch / Needs Testing,11360,Don't nofollow links within the site,,Comments,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-08T12:24:42Z,2010-04-04T06:48:37Z,"Relative links or links with the site's own domain shouldn't be nofollowed.

This use of nofollow is damaging to the site's search engine rankings.",caesarsgrunt
Has Patch / Needs Testing,13450,Filter Comments Link,,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2010-05-19T01:19:50Z,2010-10-28T12:12:51Z,"This filter allows a developer to modify a post's comments link.

Useful for situations where one needs to add or modify components of the URL such as on-click javascript, or changes to the anchor text, etc...",ikailo
Has Patch / Needs Testing,23870,Filter Glyph for Comment Required Fields,,Comments,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-27T16:57:51Z,2013-03-31T15:31:37Z,"Currently the `comment-template.php` file uses an asterisk (*) as the default glyph for required fields used in the `comment_form()` function. This glyph is not easily manipulated without having to essentially over-write the entire `comment_form()` function.

I suggest the glyph be filtered. Therefore if one wants to change it, for example, to a hash (#) symbol then they can simply filter the output; or, if for any other reason one might want to enhance the glyph visibility or utility the filter would then allow for this while minimizing the impact on the default comment form.",cais
Has Patch / Needs Testing,10863,Gravatars without email all end up looking generic,,Comments,,low,minor,Future Release,enhancement,new,has-patch,2009-09-26T19:26:36Z,2011-01-06T14:50:54Z,"When your blog has this option turned on

  ""Comment author must fill out name and e-mail""

and multiple users leave comments, if these users do not provide email addresses it will appear that they are all the same user as the identicon/monsterid/etc icons will be the same.

With two additional lines of code, you can substitute the IP address in place of the email to get a unique hash in order to distinguish one anonymous/non-emailed user from another.

Patch is attached",thecodepro
Has Patch / Needs Testing,22164,"Move comment ""keyboard shortcuts"" setting to comments -> screen options",,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2012-10-11T14:14:23Z,2012-11-22T03:31:45Z,"Seems like it would make more sense to move the comment ""keyboard shortcuts"" setting from ""Your Profile"" to the screen options pane of edit-comments.php.  Something like:

[[Image(http://f.cl.ly/items/1k210Z2V1o0b350I1n0V/keyboard-shortcuts.jpg)]]",lessbloat
Has Patch / Needs Testing,12431,Record comment meta in wp_new_comment,,Comments,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-02-28T21:29:43Z,2010-10-28T09:01:14Z,"Spam filter plugins usually trigger on the preprocess_comment filter, which obviously happens prior to storing the comment (and thus prior to knowing comment_ID).

Comment meta would be ideal for storing spam status information, but since the comment_ID isn't known at that point, doing so involves jumping through some hoops.

This patch provides a simple way for spam filters to include comment metadata from preprocess_comment.  They simply include values in a 'comment_meta' array like this:

{{{
add_action('preprocess_comment', 'my_spam_handler');

function my_spam_handler($comment) {
    $comment['comment_meta']['my_spam_status'] = 'not-spam';
    return $comment;
}
}}}

Each key/value pair in the comment_meta array is stored as comment metadata.
",tellyworth
Has Patch / Needs Testing,17159,Return meaningful HTTP response for comment submitted with no POST body,,Comments,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-04-17T19:45:03Z,2011-09-10T03:25:52Z,"A POST request to wp-comments-post.php currently returns a HTTP 200 response with an empty body if the body of the request was empty.

The server should die quickly and instruct the requesting agent not to repeat the request without modifications if minimum necessary key(s) are not present on $_POST.

I believe the possible creation of a comment requires at least a comment_post_ID. It's also the first $_POST key checked in the script. If the POST did not supply a comment_post_ID let's stop processing and provide a meaningful response. HTTP 400 Bad Request communicating the failure. Due to the spammy nature of the requestors we may or may not want to provide variable hints in the response.",niallkennedy
Has Patch / Needs Testing,17913,Site-level comment options may override individual post settings. Improve communication.,,Comments,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-06-27T20:46:43Z,2011-06-27T20:46:43Z,"Post comments may be automatically closed for a  site's posts if site option 'close_comments_for_old_posts' is true and the post was published before 'close_comments_days_old' days ago. These two options are set in options-discussion and override the 'comment_status' of an individual post.

The edit posts screen's comment meta box displays comments open/close status, allowing publishers to open or close comments for a single post. It's possible the site-level discussion settings will override the individual post yet we still might display a different post comment status than the site settings allow.

1. Enable site-level option to close comments on articles ( wp-admin/options-discussion.php#close_comments_for_old_posts )
1. Enter a days value of 1 for maximum impact
1. Edit a post published over a day ago
1. View the Discussion meta box ( #commentstatusdiv )
1. Interact with the 'comment_status' field

I would like to better communicate expected failure and let the post author or editor know this particular setting has been overridden at the site options level. If the current user can manage options I might you could link to the override in the options page.

I created a new test blog, set comments to auto-close after a day, and checked allow comments in the post screen. I was wondering why comments_open() was false for the post when I was looking at a checked box on the post screen.",niallkennedy
Has Patch / Needs Testing,17020,Some comment queries are not filterable,,Comments,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-04-02T16:56:32Z,2011-05-09T23:21:46Z,"Although WP_Comment_Query::query() is fully filterable, some supplemental comment queries are still unfilterable.  The submitted patch adds the following hooks:

 * function get_approved_comments() - query filter 'get_approved_comments_query'

 * function wp_dashboard_recent_comments() - query filter 'dashboard_recent_comments_query'",kevinB
Has Patch / Needs Testing,17862,The second argument for wp_notify_postauthor() is unnecessary,,Comments,,normal,normal,Future Release,enhancement,new,has-patch,2011-06-21T17:04:39Z,2011-06-21T17:04:39Z,Only the comment id is needed. See patch.,scribu
Has Patch / Needs Testing,17275,UI: Missing comments count in admin screen,,Comments,3.2,normal,normal,Future Release,enhancement,assigned,has-patch,2011-04-29T13:00:48Z,2013-02-23T11:29:14Z,See Attached image.,ramiy
Has Patch / Needs Testing,10653,Update comment_author when display_name changes,,Comments,,normal,normal,Future Release,enhancement,reopened,has-patch,2009-08-19T19:43:29Z,2010-12-18T11:08:18Z,One thing that has bothered me recently is the fact that your previous comments doesn't get updated when your display_name is being updated. Which could cause some confusion. I wrote a function (see attached file for further reference) that takes care of this but I would love to see a similiar feature in the WordPress core.,mptre
Has Patch / Needs Testing,19623,"Use Comment API in comments_template, rather than hardcoded SQL",,Comments,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-20T18:07:44Z,2012-08-14T08:36:00Z,"Currently the function {{{comments_template}}} uses hard-coded SQL queries, rather than {{{WP_Comment_Query}}} or {{{get_comments}}}. There's a note above the queries saying [http://core.trac.wordpress.org/browser/tags/3.3/wp-includes/comment-template.php#L888 /** @todo Use API instead of SELECTs. */].

To replace the queries using the API, the {{{WP_Comment_Query}}} class will need to be extended to allow querying for comments which are '''either''' approved '''or''' unapproved ({{{hold}}} status) but by a particular comment author email and comment author name ''or'' by a particular {{{user_id}}} to replace these two queries:

* {{{SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND (comment_approved = '1' OR ( user_id = %d AND comment_approved = '0' ) )  ORDER BY comment_date_gmt}}}
* {{{SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND ( comment_approved = '1' OR ( comment_author = %s AND comment_author_email = %s AND comment_approved = '0' ) ) ORDER BY comment_date_gmt}}}

If we change to use the API, there's also an opportunity to add a filter for the args, which would be lovely for plugin developers. :)",simonwheatley
Has Patch / Needs Testing,10931,Verify Comment Email Addresses of Registered Users,,Comments,2.8.4,normal,normal,Future Release,enhancement,assigned,has-patch,2009-10-08T14:34:44Z,2013-01-13T21:45:07Z,"When leaving a comment with an email address of a registered user, WordPress should force the visitor to login or change the email address in the comment form.

Anyone can impersonate a blog's user if they know the user's email address.",mtdewvirus
Has Patch / Needs Testing,17928,"When a comment is spammed/trashed, change the parent of it's children",,Comments,3.2,normal,normal,Future Release,enhancement,assigned,has-patch,2011-06-29T06:42:11Z,2012-03-08T02:17:19Z,"When removing (spam/trash) a comment that has children, everything goes to hell in terms of hierarchy and you're left with a bunch of orphaned comments.

See two attached images for what currently happens after removing a comment that has children.

When a comment is removed, all immediate children of the comment to be removed should have their parent changed that of the the parent of the comment being removed (or top level if the comment to be removed is top level). Each comment that has it's parent changed then gets that action logged to it's post meta so that it can be moved back in the case of it's previous comment being restored (on post un-delete/spam, find all matching comment metas).",Viper007Bond
Has Patch / Needs Testing,12104,edit-comments.php not available to roles with proper capabilities,,Comments,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-01-31T22:25:24Z,2012-10-12T15:49:22Z,"I tried to create a Comment Moderator role today and realized it wouldn't work. My intention was to create a role for people who can't write or edit posts, but can keep an eye on the comment threads. I created the role like so:

{{{
#!php
add_role('moderator', 'Moderator', array(
            'read' => 1,
            'moderate_comments' => 1,
        ));
}}}

... then created a new user with that role. When I logged in as my test user, I realized that it was for all intents and purposes a Subscriber. I couldn't see any admin panels but the Dashboard, my profile, and the Tools. I went poking around in edit-comments.php and discovered that it's checking for another capability altogether: 

{{{
#!php
if ( !current_user_can('edit_posts') )
	wp_die(__('Cheatin&#8217; uh?'));
}}}

I double-checked wp-admin/includes/menu.php and it agreed that 'edit_posts' was the minimum capability to see this page, so I tried adding 'edit_posts' to my new role, and I still couldn't get there.

Later on in edit-comments.php, when actually trashing a comment, there is a check for 'moderate_comments', but it's a moot point: this screen doesn't even show up in the admin menu, and if you navigate directly to it, you'll get the ""You do not have sufficient permissions to access this page"" message.

I thought it was entirely possible I'd missed some finer point of creating roles, so I redid it with Justin Tadlock's excellent Members plugin, and that didn't work either.

This behavior might be intentional, but if so, I'm not following the logic. I know roles are due for an overhaul in the next version or two.",sillybean
Has Patch / Needs Testing,19893,get_comments_link() doesn't link properly if there are no responses,,Comments,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-01-25T03:35:53Z,2012-01-25T13:13:12Z,"Since the current implementation of get_comments_link() simply returns the permalink with `#comments` appended to the end of it, and the HTML element with an ID of `comments` only exists when existing comments are wrapped inside of it, it doesn't lead to anything when there are 0 comments on the post.

I've attached a patch that checks whether there are any comments on the post or not; and, if not, it appends `#respond` to the end of the link; otherwise it appends `#comments`.",cgrymala
Has Patch / Needs Testing,14697,wp_list_comments not fully HTML5-friendly,,Comments,3.0.1,normal,minor,Future Release,enhancement,new,has-patch,2010-08-25T16:33:37Z,2012-07-04T09:47:48Z,"Currently, wp_list_comments supports ol, ul, and div as ""styles"" of nesting for threaded comments. While HTML5 is new enough that good markup practices are not entirely settled, the closest thing I've seen to a consensus is nested article elements.

This is currently not possible (except perhaps through a callback). Making it work right would also require inserting the comment classes as part of wp_list_comments' operation, which might require another parameter to turn it on.

I'm sure there are other WP functions that could use expanding to accommodate good HTML5 markup, but this is what jumped out at me.",adamrice
Has Patch / Needs Testing,16252,Allow comment reparenting to fix poor threading,,Comments,,normal,normal,Awaiting Review,feature request,new,has-patch,2011-01-15T23:12:25Z,2012-04-29T10:48:16Z,"For the OCD among us, it would be super nice to be able to edit the comment_parent, to properly thread comments made in the wrong place/threading order.

Choose your own UI, but even just a numeric editor in the Quick Edit area would be a huge enhancement.",Otto42
Has Patch / Needs Testing,12986,Enhancement to comments_popup_link(),,Comments,,normal,normal,Future Release,feature request,new,has-patch,2010-04-13T06:25:13Z,2010-04-18T05:53:20Z,"Currently ""Comments Off"" is wrap with <span> tag, but not ""Enter your password to view comments."" if post requires password. 

The idea is to wrap ""Enter your password to view comments."" with span tag, have its own css class e.g enter-password. Also adds $css_class if set. This way, theme author can easily style it based on post / comment status condition.

And add another paramater $password so that theme author can customize the text to display if post is password protected.

Need 2nd opinion with the attached patch.

",zeo
Has Patch / Needs Testing,18471,Add action hook after cron processed it's jobs,,Cron,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-18T12:30:19Z,2012-10-15T01:26:35Z,Sometimes it's hard to debug cron jobs or validate the results. A simple action fired after the wp-cron.php did his magic could help improve this experience.,tott
Has Patch / Needs Testing,21072,CRON often returns ambiguous values,,Cron,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-26T02:18:27Z,2012-06-26T06:18:34Z,"Many of the cron API functions return ambiguous values.  For example, `wp_cron()` [http://core.trac.wordpress.org/browser/tags/3.4/wp-includes/cron.php#L251 returns] `null` (explicitly) when cron doesn't run, but it also returns `null` (implicitly) every other time.  This can make debugging harder.

Whenever possible, I think it's valuable to return meaningful values.  The attached patch does that.",evansolomon
Has Patch / Needs Testing,15148,Cron Storage Abstraction,,Cron,,normal,normal,Future Release,enhancement,new,has-patch,2010-10-19T04:04:00Z,2011-06-02T07:03:36Z,Abstract cron storage to allow pluggable storage schemes.,ryan
Has Patch / Needs Testing,21504,Not checking if apply_filters exists before calling it in WP_DB,,Database,3.4.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-08-06T22:49:52Z,2012-10-25T21:17:48Z,"Prior to version 3.4, there was a check to verify that apply_filters existed before calling it in wp-includes/wp-db.php.  


{{{
// some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
if ( function_exists( 'apply_filters' ) )
  $query = apply_filters( 'query', $query );
}}}


In version 3.4 and above, that check doesn't exist anymore, and can throw an error. There is still a comment indicating that a check should be made, but the actual code to perform the check is now gone. This is around line 1081


{{{
// some queries are made before the plugins have been loaded, and thus cannot be filtered with this method
                 $query = apply_filters( 'query', $query );
}}}




Here is the github blame view to show when the code was remove (I'm not sure how to find this same view in your svn):

https://github.com/WordPress/WordPress/commit/81ed9a7563e5ad4c0edccd059bc4ea7d9c1a4a10

There's no explanation about why the code was removed, so would it be possible to add it back in?

Thanks!

Julia
",jdkoelsch
Has Patch / Needs Testing,16107,WordPress Database Error Logging Extravaganza,,Database,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-05T12:41:00Z,2011-01-05T14:33:05Z,"If PHP error logging is enabled, the wordpress database class will log errors to file by using the error_log() function. This is a PHP function.

While doing so, it does not reflect the PHP configuration setting for {{{log_errors_max_len}}} which defaults to 1024 (bytes).

While not doing so, the database class can log extremely long queries into the file creating multiple gigabytes quite quickly.",hakre
Has Patch / Needs Testing,14445,dbdelta do not handel FULLTEXT KEY correctly and generate MySQL errors,,Database,3.0,normal,minor,Future Release,defect (bug),new,has-patch,2010-07-28T17:36:36Z,2011-01-16T02:11:59Z,"When using dbdelta during the update of a plugin that a Fulltext index use, dbdelta generate a MYSQL error due to duplicate index.

This is due to the array_search return always false.

I attached a posible solution to address this issue. I added a key named 'index_type' to the $index_ary. This way, when 'index_type' == fulltext, I add to $index_string ""FULLTEXT"".",edirect24
Has Patch / Needs Testing,16762,wpdb::$base_prefix is not documented,,Database,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-05T16:17:01Z,2012-08-29T19:59:25Z,"Probably wpdb::$base_prefix has been merged into from MU and not further specified then.

It ''genereally'' can be replaced with {{{wpdb::get_blog_prefix(0)}}} when the MULTISITE constant is defined. That is are after wp-settings.php has been included (wp-config.php, wp-load.php), even on SHORTINIT.

It ''might'' be that this function call does not cover all cases needed because if MULTISITE is not defined when called, it will not return the {{{wpdb::$base_prefix}}}.

More insight into MU is needed, feedback appreceated. Some places look like that they are not aware of the wpdb::get_blog_prefix() function. Probably legacy MU code.

Related: #16756",hakre
Has Patch / Needs Testing,18736,Add REGEXP to 'compare' values in meta_query,,Database,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-21T15:39:51Z,2013-01-16T23:18:07Z,"I wish to sort some queries using the alphabet.

My current query:
{{{
#!php
$getPostIds = $wpdb->get_col(""
    SELECT p.ID
    FROM $wpdb->posts p, $wpdb->postmeta pm
    WHERE p.ID = pm.post_id 
    AND pm.meta_key = 'prod-id' 
    AND pm.meta_value
    REGEXP '^"" . $wpdb->escape($alpha) . ""'
    AND p.post_status = 'publish' 
    AND p.post_type = 'review'
    AND p.post_date < NOW()
    ORDER BY pm.meta_value ASC""
);

$posts = new WP_Query(array(
    'post__in' => $getPostIds,
    'post_type' => 'review',
    'post_status' => 'publish',
    'showposts' => 20,
    'paged' => $paged,
    'caller_get_posts' => 1, // do not order sticky posts at the top
    'orderby' => 'title',
    'order' => 'ASC'
));
}}}

It would be much simpler if I could use the equivalent with meta_query:
{{{
#!php
query_posts(array(
    'post_type' => 'review',
    'post_status' => 'publish',
    'showposts' => 20,
    'paged' => $paged,
    'caller_get_posts' => 1, // do not order sticky posts at the top
    'orderby' => 'metal_value',
    'order' => 'ASC',
    'meta_query' => array(
        array(
            'key'   => 'prod-id',
            'value' => '^'.get_query_var('letter'),
            'compare' => 'REGEXP'
        )
    )
));
}}}

I'd love to see it implemented :)
Thanks!",FlashUK
Has Patch / Needs Testing,18315,Add an index to the GUID column in the posts table,,Database,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-02T04:31:01Z,2011-08-02T05:09:12Z,"Running queries on the GUID column in the posts table is slow because the column is not indexed. The attached patch adds an index.

Note, this affects ticket #18286 - I will update that ticket with appropriate patches to reflect this request.",alexkingorg
Has Patch / Needs Testing,10404,dbDelta creates duplicate indexes when index definition contains spaces,,Database,2.8.1,normal,normal,Future Release,enhancement,new,has-patch,2009-07-14T10:59:54Z,2013-03-25T12:24:45Z,"I was adding a much needed index in wp_object_term_relationships, and testing revealed it was getting added multiple times.

This works as intended:

{{{
CREATE TABLE $wpdb->term_relationships (
 object_id bigint(20) unsigned NOT NULL default 0,
 term_taxonomy_id bigint(20) unsigned NOT NULL default 0,
 term_order int(11) NOT NULL default 0,
 PRIMARY KEY  (object_id,term_taxonomy_id),
 UNIQUE KEY reverse_pkey (term_taxonomy_id,object_id),
 KEY term_taxonomy_id (term_taxonomy_id)
) $charset_collate;"");
}}}


This doesn't:

{{{
CREATE TABLE $wpdb->term_relationships (
 object_id bigint(20) unsigned NOT NULL default 0,
 term_taxonomy_id bigint(20) unsigned NOT NULL default 0,
 term_order int(11) NOT NULL default 0,
 PRIMARY KEY  (object_id,term_taxonomy_id),
 UNIQUE KEY reverse_pkey (term_taxonomy_id, object_id),
 KEY term_taxonomy_id (term_taxonomy_id)
) $charset_collate;"");
}}}

the only difference between the two is a space in the reverse_pkey column list. we should remove spaces in there to avoid potential bugs.",Denis-de-Bernardy
Has Patch / Needs Testing,20634,dbDelta is unforgiving about field declarations,,Database,1.5,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-05-08T03:27:05Z,2012-05-24T07:31:40Z,"the variable type is case sensitive:
int(22) != INT(22)

the mysql type BOOL or BOOLEAN comes back from the db as tinyint(1):
tinyint(1) != BOOLEAN

Not a huge issue, just annoying. Makes dbDelta fire off unnecessary sql.
 ",SidHarrell
Has Patch / Needs Testing,20223,simulate mysql_real_escape_string when not yet connected to DB,,Database,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-13T09:16:53Z,2012-05-16T19:49:33Z,"Currently wpdb::_real_escape() falls back to addslashes() when you're not yet connected to the database

Instead, have it fall back to a closer mimic of mysql_real_escape_string():

Use this to make patch:
http://pastebin.com/5vMaBhQe

Reference: 
http://dev.mysql.com/doc/refman/5.0/en/mysql-real-escape-string.html
http://www.php.net/manual/en/function.mysql-real-escape-string.php",scottconnerly
Has Patch / Needs Testing,21987,function get_post_time -  if gmt  (unset),,Date/Time,,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-09-24T19:33:18Z,2012-12-05T08:47:55Z,"For no publish items and mode auto-draft = close 

if GMT is unset ('0000-00-00 00:00:00' == $post->post_date_gmt)
at wp-includes/general-template.php function get_post_time effect list table -> date column (Last Modified -> %s hours)

Effect code : wordpress\wp-admin\includes\class-wp-posts-list-table.php
class WP_Posts_List_Table -> function single_row  
Line 579 : $time = get_post_time( 'G', true, $post );


I don't know if it affects something else ...

",soficgr
Has Patch / Needs Testing,21653,Introduce current_date(),,Date/Time,,low,normal,Awaiting Review,enhancement,new,has-patch,2012-08-21T19:33:59Z,2013-01-07T09:25:24Z,"WordPress comes with a function called `current_time()` which returns the current time according to the timezone chosen on the General Settings screen. It's used when populating the post date, among other things.

It would be nice to have a date equivalent of this function for outputting the current date according to the timezone setting. Currently if you want to output the current date you need to do this:
{{{
echo date( 'd/m/Y', current_time( 'timestamp' ) );
}}}
I'd like to be able to use this instead:
{{{
echo current_date( 'd/m/Y' );
}}}

Note that just using `date()` doesn't give the desired effect as WordPress sets the default timezone (as used by `date()`) to UTC, not to the timezone chosen on the settings screen.",johnbillion
Has Patch / Needs Testing,16478,"""Get Shortlink"" button disappears if you edit the permalink",,Editor,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-02-07T08:44:02Z,2012-10-08T08:33:15Z,"Go to edit a post and change the permalink. The ""Get Shortlink"" button is overwritten by the AJAX response. I think it's a simple case of moving where the shortlink is added, see patch.",solarissmoke
Has Patch / Needs Testing,21563,"""Save as"" button disappearing on edit/new post screens",,Editor,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-13T15:15:58Z,2013-03-11T22:01:41Z,"When switching ""visibility"" from ""public"" to ""private"", the ""Save as (draft/etc.)"" button disappears. It doesn't come back when switching to ""public"" anymore.

[[Image(http://i.imgur.com/EExwB.png)]]",F J Kaiser
Has Patch / Needs Testing,20114,Posts and Pages w. private visibility don't show up in existing content,,Editor,3.3.1,normal,major,Awaiting Review,defect (bug),new,has-patch,2012-02-24T20:58:52Z,2012-03-07T13:12:29Z,"when inserting or editing a link in the editor (post or page) pages & posts with private visibility don't show up in the ""existing content"" section of the ""insert/edit link"" popup. All pages/posts with public visibility are shown. This doesn't make sense as I have all necessary privileges to see and edit these private pages/post. Even the admin doesn't see the private pages. Very annoying.",heinrichgeps
Has Patch / Needs Testing,22567,Preview button triggers popup blocker in some browsers if no title is set,,Editor,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-23T21:41:35Z,2012-12-05T21:31:33Z,"Steps to reproduce:

1. Click on Add New (for a post)
2. DO NOT enter a title.
2. Start typing in the post body.
3. Click Preview

Expected result:

New tab opens with preview.

Actual result:

If popup blocking is disabled, a new window opens with the preview.  On subsequent clicks of the Preview button, it reverts to opening a new tab as it should.

Found in WordPress 3.5-RC1.",miqrogroove
Has Patch / Needs Testing,20016,Spellchecker returns suggestions with wrong encoding,,Editor,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-10T17:59:00Z,2012-02-10T20:34:01Z,"Steps to reproduce:

* Create new post
* Type 'canamo'
* Set spellcheck language to Spanish
* Click on 'canamo' for suggestions

",koke
Has Patch / Needs Testing,19666,Switching from HTML to Visual editor removes some line breaks inside PRE,,Editor,3.3,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-12-25T21:34:59Z,2013-02-09T12:49:25Z,"All line breaks inside PRE elements used to transmit correctly when switching editor mode from HTML to Visual. Around WP3.1 or so, line breaks started to be removed if they happened to be inside an inline element. The common use case is a single CODE element in a PRE element:
{{{
<pre><code>Line 1
Line 2
Line 3</code></pre>
}}}
The above markup used to be handled correctly when switching between editor modes in either direction, but now the line breaks are converted to spaces when switching from HTML to Visual mode.

Many users have posts with a single CODE inside PRE, as it's semantically correct for source code, and is the convention required to support some syntax highlighters like Chili.",mrclay
Has Patch / Needs Testing,9716,WordPress Theme/Plugin editor adds blank lines,,Editor,2.7.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2009-05-03T20:32:01Z,2012-04-20T16:29:42Z,"When I edit theme css in theme editor in WP admin
!WordPress reformats my CSS and adds a blank life between entrys in css.
it adds a cr and line break ....
In other words if you have a 100 line css
download with FTP look at in text editor
it is now 200 lines
as WP added blank lines to css
it should not be adding things to the CSS?

It may only do this when it wraps window but I think not it appears to add blank lines.

Imagine the damage to a 1000 line CSS it spaces every entry by 1 line!!!!!!!!!!!!!! It stiil works but it messes it up.

THAT IS COFIRMED ONE EDIT DOUBLE SPACE ENTIRE CSS... VERY BAD 

Here is part of the problem but not the double space in total.
When you down load the file in FTP and it is in windows encoding
the line endings.
So you ftp back and all is fine.
Now you are at the coffee shop and what a quick change, so you login to WP admin and theme editor edit CSS.
Now you get home and download in ftp to continue your work on CSS.
The file is now mac formatted (or thinks it is) so when you edit the line endings do not contain the right line breaks for windows OR WP theme editor as it ignores them. This explains the wierd spacing though not the double spacing .... why is it converting to mac and yet ignores mac?!
weird.. it adds a CR tag
must be bug
again though its still double spacing on edit IN windows line ending though if you down load cSS its tagged mac format...


Use notepad 2 or Note pad plus to see the error.
When ever you edit with !WordPress editor it adds cr and says css is now mac formatted.

FTP download the file and now see all the extra CR's it adds.

So it likes CR only so I convert to CR only and it beaks CSS it wants CR LF to work but if that is the case why does the online editor add CR only????????????????????????? 
",Vistronic
Has Patch / Needs Testing,14808,Add Editor Documentation Functions URL for theme-defined functions,,Editor,,normal,normal,Future Release,enhancement,new,has-patch,2010-09-08T00:57:20Z,2011-08-25T00:15:44Z,"Currently, functions that are called within template files shown on the editor are included in the list of functions that you can try and lookup documentation for.

(The $ignore_functions array only seems to be for functions defined, not called, in a file.)

As the http://api.wordpress.org/core/handbook/1.0/?function=... seems to be hard-coded in, it's not possible for themes to overwrite it for functions they've defined.

Is it possible to allow themes to define where the documentation lookup should be for their own functions?",GamajoTech
Has Patch / Needs Testing,22924,Add filter to theme editor accepted files,,Editor,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-13T21:35:48Z,2013-02-22T20:41:09Z,"Proposing adding a filter to theme-editor.php so theme authors can add to the list of files that are editable. ie html/less/js files.

Hers an example of what could be possible:
{{{
add_filter( 'wp_theme_editor_filetypes', 'add_my_filetype', 10, 2 );
function add_my_filetype( $allowed_types, $theme ) {
	
	$extra = $theme->get_files( 'less', 1 );
	return $allowed_types += $extra;
}
}}}",pross
Has Patch / Needs Testing,11268,Allow Image Map in KSES,,Editor,2.9,low,minor,Future Release,enhancement,new,has-patch,2009-11-26T00:12:31Z,2010-03-31T08:50:20Z,Add image maps in allowed post tags.,mtdewvirus
Has Patch / Needs Testing,19992,Auto-fill URL field on Insert/edit link popup,,Editor,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-08T22:38:14Z,2012-11-26T00:14:21Z,"I'd like to see the following behavior: When I select a plain URL or email address in the editor and click on ""Insert/edit link"" the URL field is already populated with either the URL or with a ""mailto:<email-address>"". Any thoughts? I'd more than happy to write a patch.",tillkruess
Has Patch / Needs Testing,15631,Custom fields auto-focus,,Editor,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-01T19:02:16Z,2013-01-22T15:23:25Z,"When you are on the post editor (page editor, whatever), if you want to create a new custom field and click on Create New, it should auto-focus on the text input field that appears. ",jane
Has Patch / Needs Testing,14640,"Feature Requst:  Add Action Hook ""post_submitbox_end""",,Editor,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-08-18T21:09:53Z,2013-01-10T02:55:26Z,"I'd like to add a button UNDER the Publish button on an edit post page.  There is an action for adding a button (or other elements) BEFORE the Publish button (post_submitbox_start), but I'd like one at the end.  I know that I can address this w/ CSS if necessary, but it would be nice to be able to position my button in the HTML as well.",ancawonka
Has Patch / Needs Testing,22980,Get Shortlink button should be appended using the get_sample_permalink_html filter,,Editor,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-17T18:39:43Z,2012-12-17T18:49:00Z,"Currently the Get Shortlink button is appended directly to the output of get_sample_permalink_html(), which makes it impossible (without CSS/JS) to append items to the HTML.

The get_sample_permalink_html filter should be used inside of 
[source:/trunk/wp-admin/edit-form-advanced.php?rev=23180#L334 edit-form-advanced.php] so the user has complete control over the generated output.",coreygilmore
Has Patch / Needs Testing,18306,Make sample permalink clickable,,Editor,3.2,normal,normal,Future Release,enhancement,new,has-patch,2011-07-31T14:41:39Z,2012-11-01T20:02:13Z,"Following the lead from #17282, the ""View Post"" button next to the sample permalink is also just a link to another screen.

I propose we get rid of it and make the sample permalink itself clickable",scribu
Has Patch / Needs Testing,24381,A little more abstraction in the WP_oEmbed class,,Embeds,2.9,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-21T11:33:49Z,2013-05-21T20:54:01Z,"The logic for determining the oEmbed provider for a given URL is contained within the `get_html()` method of the `WP_oEmbed` class.

I'd like to be able to determine whether or not a given URL has a supported oEmbed provider. There's no method in the `WP_oEmbed` class to do this, and I've copied the logic from `get_html()` into my own function.

Patch coming up shortly.",johnbillion
Has Patch / Needs Testing,23171,Add Meetup.com oEmbed support,,Embeds,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-10T12:21:01Z,2013-04-25T23:19:37Z,"Given the number of meetups people are doing around the world I think it would be nice to add Meetup.com to the list of oEmbed providers.

http://www.meetup.com/meetup_api/docs/oembed/

Currently there is a ''minor issue'' with their oEmbed API as it fails when the Meetup group has a custom domain for the group. I've had to do some ''dodgy'' code for our Aussie custom domains to get around that:

https://github.com/BronsonQuick/wpaustralia/blob/master/plugins/wpoz-meetups/wpoz_meetups.php

Seeing their is a new agreement between http://make.wordpress.org/events/ and Meetup.com hopefully one of the Automatticians can let Meetup.com know that their API needs a patch for custom domains ;)",sennza
Has Patch / Needs Testing,23442,Allow wp_remote_get args to be filtered for oEmbed calls,,Embeds,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-10T21:48:10Z,2013-02-15T20:36:04Z,"Currently, the oEmbed code use wp_remote_get() to communicate with the oEmbedded service. However, there's no way to filter the arguments that get used - it simply uses the system wide defaults. 

Filtering the defaults (E.g. http_request_timeout) seems overkill when you know that you only want to change things for something specific like an oEmbed call that you know may take longer than 5 seconds (E.g. 
https://github.com/leewillis77/wp-github-oembed/blob/1.2/github-api.php#L35)

The attached patch adds a new filter oembed_remote_get_args which allows plugins to override the wp_remote_get args for oembed calls (Including discovery)",leewillis77
Has Patch / Needs Testing,22346,Add Videojug.com to internal whitelist,,Embeds,3.4.2,normal,normal,Awaiting Review,feature request,new,has-patch,2012-11-02T15:30:50Z,2012-11-05T10:48:00Z,"Dear Wordpress,

I am writing on behalf of Videojug. We create and distribute hiqh quality ""How-To"" online content, and have been producing professional, instructional, short-form video content since 2006. We receive many requests monthly from our Contributors and Users asking for assistance in embedding our videos in their Wordpress sites. Currently it is a convoluted process involving plugins adding complexities.  

Other video providers in our sector are already whitelisted. We would like to be added please to your internal whitelist, allowing any Wordpress blogger to embed our videos by copying the URL just like they would when embedding a Youtube video. Our own embed code has been stable for a long time.

We have our oembeds working in the following wordpress account:
[http://chloeluper.co.uk/index.php/embed-test-page/]

This is the add oembed provider code:

{{{
wp_oembed_add_provider( '#http://(www\.)?videojug.com/(film|interview)/.*#i', 'http://www.videojug.com/oembed.{format}', true );
}}}

I have attached the modified default theme.

Thank you
Imad Salhi
 ",Videojug
Has Patch / Needs Testing,23431,[embed] shortcode doesn't work with do_shortcode(),,Embeds,3.5,normal,normal,Awaiting Review,feature request,new,has-patch,2013-02-09T15:05:02Z,2013-02-10T15:35:37Z,"It would be preferable to use the [embed] shortcode through do_shortcode rather than apply_filters( 'the_content',... in order to avoid sharing plugins, related posts plugins etc appending content to something that could simple be post meta, i.e. looking to convert a youtube url to a video.",jtsternberg
Has Patch / Needs Testing,20206,WXR unnecessarily includes all post authors,,Export,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-09T01:06:58Z,2012-03-09T02:26:14Z,"If you're exporting just one post type (from Tools -> Export), the resulting WXR file still includes all authors from the posts table, regardless if they are the author of a post of the post type being exported. This can be particularly noticable for Pages (which are often only authored by a small number of different users on the site) and for custom post types.

This means when you subsequently import the file you'll be asked to map a complete list of all authors from the exported site, even if they have no posts in the WXR file being imported.",johnbillion
Has Patch / Needs Testing,17379,Filtered exports drop attachments and featured images,,Export,3.0,normal,normal,Awaiting Review,feature request,new,has-patch,2011-05-11T18:37:31Z,2013-01-29T06:46:59Z,"When using Tools>Export, targeting a specific author, the resulting XML file does not contain a reference/link to any Featured Image (thumbnail) associated with these posts.

On the other hand, Tools>Export ""all content"" (including all authors) produces an XML file that does contain reference/link to Featured Image.

Request: Have Tools>Export ""specific author"" generate the same metadata as the ""all content"" export, so that Export ""specific author"" will also include metadata reference to the Featured Image.

Many people (including myself) use ""specific author"" as a way to export some, but not all, posts. Full metadata would really help. Thanks.",billseymour
Has Patch / Needs Testing,18909,Bundled jQuery UI should have CSS,,External Libraries,3.3,normal,normal,Future Release,enhancement,assigned,has-patch,2011-10-11T18:53:57Z,2013-05-13T16:14:29Z,"Now that all of jQuery UI is in core, matching CSS should also be included for use in the admin in both color schemes.

Related: #17952",helen
Has Patch / Needs Testing,16668,SWFUpload 2.2.1,,External Libraries,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-02-25T20:38:07Z,2011-09-19T15:24:55Z,"Update SWFUpload to version ""2.2.1 2009-03-30"" from ""2.2.0 2009-03-25.""

Changes how settings are passed to functions, using function scope instead of object scope. Looks like some other code simplification during those five days.

[http://code.google.com/p/swfupload/source/browse/swfupload/trunk/core/ SWFUpload repo]

Updates the SWF as well. Looks like an ExternalInterface change based on project commits.

Files swfupload-all.js and handlers.js left as is since they are not part of the external repo. If swfupload-all.js is a rollup it should obviously be updated.",niallkennedy
Has Patch / Needs Testing,23944,Update to latest jquery.form,,External Libraries,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-04T21:16:51Z,2013-04-04T21:37:17Z,"Any chance of getting the included jquery.form update to the latest version?  We keep running into various script errors (mostly access) within jquery.form with IE.  Updating to the latest jquery.form corrects these errors.

WP using version 2.73 and the latest is 3.32

Thanks for consideration...",usermrpapa
Has Patch / Needs Testing,16747,'feedtype_enclosure' hooks not triggered without custom field,,Feeds,3.1,normal,trivial,Awaiting Review,defect (bug),new,has-patch,2011-03-04T13:42:07Z,2011-03-04T15:48:25Z,"file: '''wp-includes/feed.php''', functions: '''atom_enclosure()''' and '''rss_enclosure()'''

If a ""enclosure"" custom field is not provided, the ''atom_enclosure'' and ''rss_enclosure'' filters are never triggered (because they're inside an if statement).

Wouldn't it make sense to replace this  ...
{{{
function atom_enclosure() {
	if ( post_password_required() )
		return;

	foreach ( (array) get_post_custom() as $key => $val ) {
		if ($key == 'enclosure') {
			foreach ( (array) $val as $enc ) {
				$enclosure = split(""\n"", $enc);
				echo apply_filters('atom_enclosure', '<link href=""' . trim(htmlspecialchars($enclosure[0])) . '"" rel=""enclosure"" length=""' . trim($enclosure[1]) . '"" type=""' . trim($enclosure[2]) . '"" />' . ""\n"");
			}
		}
	}
}
}}}

... with this ...
{{{
function atom_enclosure() {
	if ( post_password_required() )
		return;

	$output = '';
	foreach ( (array) get_post_custom() as $key => $val ) {
		if ($key == 'enclosure') {
			foreach ( (array) $val as $enc ) {
				$enclosure = split(""\n"", $enc);
				$output = '<link href=""' . trim(htmlspecialchars($enclosure[0])) . '"" rel=""enclosure"" length=""' . trim($enclosure[1]) . '"" type=""' . trim($enclosure[2]) . '"" />' . '\n';
			}
		}
	}
	echo apply_filters('atom_enclosure',$output);
}
}}}

... so that those functions can be hooked via plugins, even if the custom field doesn't exist?

''In my particular case, I wanted to use a different--already existing--custom field name to pull the url from, but I couldn't hook '''atom_enclosure()''' because '''apply_filters()''' is only triggered if the ""enclosure"" custom field name exists.''",tcloninger
Has Patch / Needs Testing,14363,Atom feed is broken when WordPress is served as application/xhtml+xml,,Feeds,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-07-20T14:57:52Z,2011-05-10T18:54:37Z,"Atom feed is broken when WordPress is served as application/xhtml+xml because of the difference in html_type_rss().

The patch attached also deprecates the_excerpt_rss() with a new function called 'the_excerpt_feed'.",peaceablewhale
Has Patch / Needs Testing,10511,Enclosure Custom Fields are automatically deleted,,Feeds,2.8,high,major,Future Release,defect (bug),reopened,has-patch,2009-07-29T14:20:16Z,2012-02-02T16:36:06Z,"This bug was introduced by Ticket [http://core.trac.wordpress.org/ticket/6840 6840].  I and many other people only wanted specific fields added as an enclosure (like media files for podcasting) and have added those enclosures as custom fields.  Now any time we edit those hundreds of posts, or create a new post, those custom fields are deleted by this ""bug fix"" and there is no way around it without changing code in the functions.php file and then having to redo it anytime an update comes out.

Was there no thought put into the great idea of ""let's delete any enclosure field that doesn't have a link in the body of a post""?  Wasn't the whole idea of custom fields originally for things like enclosures?",animepulse
Has Patch / Needs Testing,19885,Feed wfw Namespace no longer valid,,Feeds,3.3.1,normal,normal,Awaiting Review,defect (bug),new,close,2012-01-24T16:00:06Z,2012-01-31T07:45:00Z,"Related to this post [http://wordpress.org/support/topic/rss-feed-wellformedweborg-offline?replies=2]

A broken link scan of our website revealed that the link in the feeds to http://wellformedweb.org/CommentAPI/ (for the wfw namespace) is invalid. Going to that website reveals that the site has been taken down by the hosting company.

I found 2 references to that namespace in /wp-includes/feed-rss2.php and /wp-admin/includes/export.php and removed them, and the instances to the wfw namespace within the feed content. This fixed my issue.

This begs the larger question: should this be removed/replaced in the core if the site that references the namespace is no longer available?

Verified here: [http://ww2.aaronwagner.net/feed/]",ajwagner777
Has Patch / Needs Testing,19998,Feeds can contain characters that are not valid XML,,Feeds,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-09T16:28:47Z,2013-02-12T03:11:21Z,"It is possible for any of the feeds to contain control characters which are not valid in XML e.g. http://www.fileformat.info/info/unicode/char/1c/index.htm

When outputting user supplied content in an XML context we should strip these control characters - they are unprintable and just break feed parsers.

http://en.wikipedia.org/wiki/Valid_characters_in_XML has a good list of what is and isn't valid.

I guess we need a {{{strip_for_xml()}}} function or something.",westi
Has Patch / Needs Testing,19017,No way to add XSL to Feeds,,Feeds,3.2.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2011-10-20T16:50:31Z,2011-10-26T06:17:45Z,"To add XSL to a feed, for nicer display of feeds in browser, a line needs to be inserted before the root RSS tag.
For a plugin to add the correct code, there should be an action between `<?xml?> and `<rss>`
Perhaps something like `<?php do_action('rss2_xsl'); ?>` on line 12 of `feed-rss2.php`?",pathawks
Has Patch / Needs Testing,17853,"Posts_per_page=-1 overwritten in query.php if is feed, (An ics feed needs all)",,Feeds,3.2,normal,normal,Awaiting Review,defect (bug),new,close,2011-06-20T03:58:29Z,2012-10-04T02:15:27Z,"Similar to [http://core.trac.wordpress.org/changeset/15852 15852], the posts_per_page argument to wp_query, is being overwritten in lines 1991 of query.php


{{{
if ( $this->is_feed ) {
    $q['posts_per_page'] = get_option('posts_per_rss');
}}}

In the case of an ics feed - ALL requested posts must be returned for a complete feed, so need to be able to pass posts_per_page=-1 as with other queries in the front end.

This is in wp 3.2 RC1 and earlier.

As far as I can make out, the only way around for now is to add a post_limits filter and remove the LIMIT in the query when it is a ics feed. (ie return empty string)

While the workaround works, it would make more sense of the post_per_page argument worked as in front end queries.

Possible workaround (use in custom feed function only)

{{{
...
	add_filter('post_limits', 'amr_remove_limits');
...
function amr_remove_limits () {
    return ('');   
// return an empty string so that NO limits are imposed in the query
}
}}}


",anmari
Has Patch / Needs Testing,20888,RDF Feed validation problems.,,Feeds,3.3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-08T11:05:19Z,2012-06-08T11:05:19Z,"The RDF feed produced by feed-rdf.php produced validation errors due to description either not encoded correctly or not wrapped in CDATA tags.

To reproduce view a RDF feed: http://en.blog.wordpress.com/feed/rdf/

To see the validation errors: http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fen.blog.wordpress.com%2Ffeed%2Frdf%2F


Attached is a patch to fix this issue.

",hootbah
Has Patch / Needs Testing,3260,"XML output (rss, atom, rdf ...) should always use UTF-8 or CDATA for user input",,Feeds,2.8.2,normal,normal,Future Release,defect (bug),new,has-patch,2006-10-18T02:33:58Z,2009-11-20T15:32:29Z,"If none UTF-8 is used, user generated text like titles or categories may contain unallowed entities. The elements <title>, <tagline>, <dc:subject>, <category> (there may be more) are not protected width <![[CDATA ]]>.

The conversion can be done width the PHP MulitByte function. If MB is not available, the <![[CDATA should be used instead.

Please contact me for development help.",deremder
Has Patch / Needs Testing,9134,cannot remove the link to comments in feeds,,Feeds,2.7,lowest,trivial,Future Release,defect (bug),new,has-patch,2009-02-15T03:24:36Z,2011-03-20T18:49:34Z,"In feed-rss2.php, '''etc.''' there is no easy to turn off the comments link, for blogs that
have no, and don't allow, comments. So the link
{{{
<comments><?php comments_link(); ?></comments>
}}}
is just a waste. Same with
{{{
<wfw:commentRss><?php echo get_post_comments_feed_link(); ?></wfw:commentRss>
}}}
Yes. I can turn off comments, and remove all comments, but I cannot
remove ''the link'' to comments (without hacking the core.)
",jidanni
Has Patch / Needs Testing,18056,dc:creator needs to be escaped in RSS feed,,Feeds,3.2,normal,major,Awaiting Review,defect (bug),new,has-patch,2011-07-10T03:46:15Z,2011-07-10T03:46:15Z,"If the author name contains any special characters, they might end up in the RSS feed unescaped, causing failed feed validation and thus causing problems for many readers.

The code now is:

<dc:creator><?php the_author() ?></dc:creator>

Shouldn't this be:

<dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>

Or: 

<dc:creator><?php htmlspecialchars(the_author()) ?></dc:creator>

This might be a result of a custom author plugin not escaping these characters on the way into the database, but Wordpress should handle this more robustly to prevent plugin authors from messing things up like this.",Nettsentrisk
Has Patch / Needs Testing,18505,http 404 sent for the RSS feed when there are no posts - should be 200,,Feeds,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-24T03:33:52Z,2011-08-25T00:13:02Z,"for sites with no posts, the HTTP status code returned for the RSS feed is 404, but since the address was a valid address and it just happens that the content is empty, a 200 status should be sent.

(It annoys link checkers which then report that there are broken link at the site because by default for most themes there is a link to the RSS feed in the header) ",mark-k
Has Patch / Needs Testing,2875,https enclosures fail on post.,,Feeds,2.0.2,normal,major,Awaiting Review,defect (bug),reopened,has-patch,2006-06-29T10:35:51Z,2012-05-17T19:20:25Z,"I was noticeing a problem in that when you post on a standard HTML site, enclosures get added into postmeta on publishing a post. When running off an HTTPS site, this no longer happens.

The reason is the regex only looks for HTTP. Line 1032 of wp-includes/functions.php

{{{
  preg_match_all(""{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x"", $content, $post_links_temp2);
}}}

Add the following under this line and it works.
{{{
  preg_match_all(""{\b https : [$any] +? (?= [$punc] * [^$any] | $)}x"", $content, $post_links_temp2);
  foreach($post_links_temp2[0] as $link) {
    $post_links_temp[0][] = $link;
  }
}}}
There may be a nicer way to regex that up, but I couldn't add it.

I have raised it as high/major because it is a bit of a hole that I cannot override the functionality of, and I use the RSS feed for podcasting - which WordPress does not support from an HTTPS site.",nigelkane
Has Patch / Needs Testing,17150,Atom category terms and labels,,Feeds,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-16T22:46:37Z,2011-04-16T22:46:37Z,"An [http://tools.ietf.org/html/rfc4287#section-4.2.2 Atom category] supports both machine-facing and human-facing text through its 'term' and 'label' attributes respectively. WordPress Atom template currently outputs category or tag name as the 'term' attribute. I would like to output the category or tag's slug as 'term' and its name as 'label'

Before:
<category scheme=""!http://wordpress.org/"" term=""Open Source"" />

After:
<category scheme=""!http://wordpress.org/"" term=""open-source"" label=""Open Source"" />

Attached is a patch for get_the_category_rss() inside wp-includes/feed.php. I constructed an associative array with slug as the key and name as the value. The slug column is a unique key on the terms table and can also be used to enforce uniqueness in the array.

A possible downside: it's possible two entry categories or tags might have the same name, which would produce two identical outputted lines in RSS 2.0 and RDF feeds while correcting the previous lossy behavior in the Atom feed.",niallkennedy
Has Patch / Needs Testing,19890,Filter auto enclosure links before processing,,Feeds,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-01-24T21:37:48Z,2012-01-24T21:44:05Z,"[http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/functions.php#L1182 The do_enclose() function] looks through post content for enclosure-worthy URLs, requests the URLs it finds, and stores in post meta.

I use sample code and dummy URLs in my posts: e.g. !http://example.com/song.mp3. Right now `do_enclose()` finds the mention of the MP3, adds it to post meta, which later outputs in `rss_enclosure()` or `atom_enclosure()`. If I want to remove the enclosure from final markup I can attach to the `added_postmeta` action to remove a value after it was requested and inserted or act on the markup generated by `rss_enclosure()` or `atom_enclosure()` by emptying the string.

I would like to filter out the auto-discovered enclosure link before it is processed by !WordPress, looked up in the database, and HEAD requested. If a filter existed on the parsed enclosure links I could remove links from dummy domains such as ""example.com.""",niallkennedy
Has Patch / Needs Testing,9510,Multiple feed fixes and enhancements,,Feeds,2.7.1,high,major,Future Release,enhancement,new,has-patch,2009-04-11T09:36:47Z,2009-11-17T20:28:06Z,"Currently, the feed always returns the same subtitle, self link, alternate link and replies link no matter what the page type is. I think they should be different for each page type.",peaceablewhale
Has Patch / Needs Testing,13867,New filter for comment RSS feed's title,,Feeds,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-12T21:53:07Z,2010-10-28T12:18:31Z,"I'd like to be able to customize comments titles in RSS feed.

Currently it's hardcoded and has no way to be changed, so I added 2 new filters so that plugins can edit them.

I've tested and patch is working for me.",shidouhikari
Has Patch / Needs Testing,7092,Should support separate setting for limiting comments feed,,Feeds,2.9,normal,normal,Future Release,enhancement,reopened,has-patch,2008-06-04T15:48:34Z,2010-05-14T13:07:07Z,"Right now the comments feeds are throttled by the same limiting number the user chooses for ""posts feeds"" (posts_per_rss).

It makes sense that a blog owner would want to set a higher threshold for comments than for posts, for these reasons:

- Readers who subscribe to comment feeds are fewer in number and less likely to burden the system in aggregate.

- Comments are typically shorter per entry than posts are.

- Comments are liable to expand much more quickly than posts, making it difficult for readers to ""keep up"" without wrapping past the limit.

For instance in my blog I limit post feeds to 10 entries, but I'd like to offer a much larger limit for comments subscribers.

Establishing a ""comments_per_feed"" variable that is used in place of the ""posts_per_rss"" would accomplish this.

",redsweater
Has Patch / Needs Testing,23845,Install new theme via FTP failed,,Filesystem,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-22T12:19:03Z,2013-04-10T21:12:23Z,"New theme installation via FTP has failed when we specified custom FTP_BASE folder.  If we try this theme installation , wordpress shows error message: ""Unable to locate WordPress theme directory"". This was because search_for_folder method do not respect FTP_BASE setting and allows to walking on parent directories.  All solutions I found in google is ugly hacks who only mask the problem but does not resolved it
I attached patch  example who resolve this problem. I hope is useful and  will help to repair this bug.",Przemyslaw Plewa
Has Patch / Needs Testing,21403,"Introduce wp_scandir, remove opendir / closedir code",,Filesystem,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-28T08:57:20Z,2012-07-29T18:29:23Z,"There is {{{@opendir}}} code all over the place that is not standardized. On top of that, there is plenty of code that is duplicated and could be condensed into one handy function. Plus, in all of the places we are using {{{opendir()}}}, we really want to be using {{{scandir()}}}. 

I have created a master function in {{{load.php}}} called {{{wp_scandir()}}} that does the basics:
* scans a directory for files / subdirectories
* filters list by extension(s)
* optionally returns ONLY files

This cleans up code in many places.",wonderboymusic
Has Patch / Needs Testing,22267,Make trailingslashit() and untrailingslashit() work with backslashes,,Filesystem,2.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-24T04:09:58Z,2013-02-24T22:19:38Z,"#20778 demonstrates that untrailinhslashit(), hence trailingslashit(), are unable to remove a trailing backslash from file paths on Windows.

As Windows accepts a slash as directory separator, DIRECTORY_SEPARATOR is not needed to make portable code, except when parsing or exploding a path that comes from the system [http://alanhogan.com/tips/php/directory-separator-not-necessary]. We neeed to tell trailingslashit() and untrailingslashit() that we want to remove the trailing slash a file path from system, not a generated one and not a URL path.

My idea is:
{{{
function untrailingslashit( $string, $is_path = false ) {
    if ( $is_path )
        return rtrim( $string, DIRECTORY_SEPARATOR . '/' );
    else
        return rtrim( $string, '/');
}

function trailingslashit( $string, $is_path = false ) {
    if ( $is_path )
        return untrailingslashit( $string, $is_path ) . DIRECTORY_SEPARATOR;
    else
        return untrailingslashit( $string ) . '/';
}
}}}

Expected results that is true:

{{{
  trailingslashit( '/mypath'  ) == '/mypath/'
  trailingslashit( '/mypath/' ) == '/mypath/'
  trailingslashit( '/mypath//') == '/mypath/'
untrailingslashit( '/mypath/' ) == '/mypath'
untrailingslashit( '/mypath//') == '/mypath'
  trailingslashit( '/usr/tmp/', true ) == '/usr/tmp/' // On non-Windows
  trailingslashit( '/usr/tmp',  true ) == '/usr/tmp/' // On non-Windows
  trailingslashit( '/usr/tmp//',true ) == '/usr/tmp/' // On non-Windows
  trailingslashit( 'C:\TEMP',   true ) == 'C:\TEMP\'  // On Windows
  trailingslashit( 'C://TEMP//',true ) == 'C://TEMP\' // On Windows
  trailingslashit( 'C:/TEMP/',  true ) == 'C:/TEMP\'  // On Windows
untrailingslashit( 'C:\TEMP\',  true ) == 'C:\TEMP'   // On Windows
}}}

On Windows, for making a path to $subdir one may use either

{{{
$path = trailingslashit( $path, true ) . $subdir;
$path = untrailingslashit( $path, true ) . '/' . $subdir;
}}}
according to preference in the situation, knowing that '/' is a valid separator in any case.

The added DIRECTORY_SEPARATOR in trailingslashit() code suggestion above could be '/', but it might produce an unexpected result, some someone when deliberately wants to make a true native path for the system.

The second parameter to rtrim() in untrailingslashit() should instruct rtrim() to remove both characters, as we cannot assume a Windows file path is always delimited or trailed with ""\"".

I will make the patch, and will test the all the expected results on Windows and Linux. That is, if I am not convinced this is no way to go (adding optional parameters and ""messing"" with an old formatting function).

== Alternatives ==

We could make untrailingslashpath() and trailingslashpath() which assumes a path string, and no extra argument. This would require, at least softly, a replace all over the code, where a path is to be (un)trailingslashed.

We could make untrailingbackslashit() and trailingbackslashit() instead, but this would force us to check either DIRECTORY_SEPARATOR or $is_win before selecting which function to use, bloating code all over the place. A good helper function should be a real help, especially in edge cases.
",knutsp
Has Patch / Needs Testing,14674,HR destroys HTML,,Formatting,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-08-23T15:03:15Z,2012-09-14T22:57:46Z,"if you add <hr /> to the post (via HTML editor, or via enhanced TinyMCE editor) followed by normal text id do not add the <p> for that paragraph, but add the finishing </p>

so it than looks like

<p>some text</p>
<hr>some other text</p>

it can be solved by adding extra line break after <hr> but after reediting the post, the linebreak disapears and must be added again. ",thomask
Has Patch / Needs Testing,23185,Hyphens surrounded by non-breaking spaces are not texturized,,Formatting,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-11T20:13:11Z,2013-01-14T01:45:52Z,"Thanks to Ticket #8161, a single hyphen or double hyphen surounded by space is converted to an en-dash or em-dash, respectively.

The problem is this conversion doesn't take place as expected when the space immediately before or after the affected hypehns is a non-breaking space.

Example paste the following into a post as HTML and view it in a browser after texturization:
{{{
Line 1&nbsp;-&nbsp;Non-breaking spaces around the hyphen.<br>
Line 2 - Regular spaces around the hyphen.<br>
Line 3&nbsp;- Non-breaking space before the hyphen.<br>
Line 4 --&nbsp;Non-breaking space after the double-hyphen.<br>
Line 5 -- Regular spaces around the double-hyphen.
}}}
Only the lines where ""Regular spaces"" are around the hyphens get converted as expected.Lines 1, 3, and 4 are not converted to match their regular-space counterparts.

It's reasonable to use non-breaking spaces in web content and I think that for situations where a non-breaking space is used it should imply the same kind of texturization for the hyphens as a regular space does.

The attached patch removes the static replacement rules for hyphens and adds dynamic rules to meet this expectation. I had to add a dynamic rule '--' to prevent it being prematurely converted in the static phase, when it was surrounded by appropriate spacing. Since I havd to move that one from static to dynamic, it made sense to me to just have all the hyphen-conversion behavior in one place in dynamic.
",redsweater
Has Patch / Needs Testing,16495,Make iso8601_to_datetime a bit more compliant,,Formatting,3.0.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-02-08T19:37:09Z,2011-03-16T07:21:44Z,"With a valid ISO 8601 date string with dashes in the date or decimal fractions for seconds, this function will fail to parse it correctly. The attached patch updates the regex to optionally accept dashes and decimal fractions for seconds (which are ignored). It also uses a variable for the regex since it was duplicated.",chrisscott
Has Patch / Needs Testing,20124,Smilies Fail Combinations,,Formatting,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-02-25T22:34:25Z,2012-02-26T12:37:54Z,"I have found that certain combinations of smilies break the monster of a regular expression that parses them.

{{{
8-O :-(]
8-) 8-O
8-) 8O[
8-) :-(
8-) :twisted:
8O :twisted: :( 8-( :(
}}}


...are some examples where the regular expression appears to be failing to match. Any smilie after a smilie with an 8 in it appears to be skipped. Will try to pinpoint the flaw in the regexp soon.",soulseekah
Has Patch / Needs Testing,22823,Texturize should handle apostrophes before primes,,Formatting,3.4.2,normal,minor,Future Release,defect (bug),new,has-patch,2012-12-08T04:48:06Z,2013-02-26T07:14:59Z,"Not sure if anyone else noticed this, but my recent post on make/core exhibited an odd bug in wptexturize() —

{{{
The new target for WordPress 3.5′s release is Monday
}}}

Note how that's a prime — `&#8242;` — rather than an apostrophe, `&#8217;`.

Switching the rules seems to work without breaking any unit tests.",nacin
Has Patch / Needs Testing,6297,Unbalanced tags across more and nextpage tags,,Formatting,2.5,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2008-03-19T09:55:50Z,2013-04-26T11:39:08Z,"It's easy to produce broken front page markup by including a --nextpage-- tag that breaks an enclosing bold or italic tag.  There's some code in get_the_content that fixes this for --more-- tags, but it doesn't handle --nextpage--, and it'd be more efficient to do it at post save time.

The enclosed patch fixes this by splitting the content into slices at those boundaries and separately balancing each slice.  Balancing happens in the content_save_pre action.  No filtering is needed on the output side for posts saved after this filter.

It was a bit of a struggle figuring out where to fit this but I think the solution is fairly clean.  It includes a new split_nextpage() function that can be used instead of ad-hoc regexps for splitting a post into pages.

",tellyworth
Has Patch / Needs Testing,17433,localhost is not accepted as email domain,,Formatting,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-05-14T16:55:52Z,2013-02-28T11:52:59Z,"Hi. Tried to install WordPress on a Debian machine not connected to Internet, only for testing purposes, so when the setup procedure asked me for an email address, I used mylogin@localhost. The setup procedure, however, rejected this as ""invalid"".

I think the bug is exactly in wp-includes/formatting.php, where it says:

        // Assume the domain will have at least two subs
        if ( 2 > count( $subs ) ) {
                return apply_filters( 'is_email', false, $email, 'domain_no_periods' );
        }

So: Could you please special-case ""localhost"" in is_email() so that it's allowed as email domain?

I guess the probability of someone using @localhost for email ""by mistake"" is extremely low, so this change will unlikely harm the average user.

Thanks.",sanvila
Has Patch / Needs Testing,15046,places where the_title is used instead of the_title_attribute,,Formatting,2.3,normal,minor,Awaiting Review,defect (bug),new,has-patch,2010-10-06T08:34:31Z,2011-03-19T15:09:52Z,"[context]
Semantic-web/metadata related plugins popups more and more.
There is no way to filter according to specific tasks (semantic, style, content, ...)
So monolithic the_title and the_author filters are increasingly used.

the_title_attribute [6132] and the_author_meta [11138] partly address the issue
[/context]

Here are the places where the 'content'-oriented function should be used instead of the 'display'
or 'semantic'-oriented versions (often in the 'title' attribute of <a>) :

default-widgets.php, author-template.php and twentyten/functions.php (patches attached)
",drzraf
Has Patch / Needs Testing,17039,the_excerpt() - <!--more--> handling,,Formatting,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-04-03T22:15:48Z,2011-12-23T17:13:50Z,"If a post has a manually inserted <!--more--> ''before'' the default break at the excerpt length, then the_excerpt() fails to generate any [...] or call the ""excerpt_more"" filter. Thus, there is no indication that there is more content to the post.",wpweaver
Has Patch / Needs Testing,17847,wp_kses_hair is too stringent,,Formatting,1.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-19T21:29:46Z,2011-11-17T20:38:47Z,"attributes from custom xml name spaces may use colons, but the regex used inside wp_kses_hair doesn't allow them through.  ",jorbin
Has Patch / Needs Testing,19877,wp_kses_stripslashes() should account for single quotes too,,Formatting,3.3.1,normal,normal,Awaiting Review,defect (bug),new,close,2012-01-23T14:17:48Z,2012-10-12T20:36:43Z,"Right now, wp_kses_stripslashes() only removes slashes before double quotes, but should do the same for single quotes. 

For example, if wp_kses() is applied to the following string (assuming <script> tags are permitted), the <script> tag's attributes are removed:

<script type='text/javascript' src='foo.js'></script>


If the single quotes are switched to double quotes, the attributes are properly sanitized against the list of allowed tags passed to wp_kses(). Updating wp_kses_stripslashes() to account for both types of quotes eliminates the need to strip slashes before applying wp_kses().",ethitter
Has Patch / Needs Testing,18575,wptexturize modifies code inside tag attributes,,Formatting,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-02T22:36:25Z,2011-11-16T00:10:37Z,"In certain circumstances, wptexturize() will try to smart quote things inside attributes, screwing up the markup. For example:

{{{
[hello <a href=""foo[bar]('baz')"">world</a>
}}}

The tokenizer that generates $textarr will split the text like this:

{{{
0: [hello <a href=""foo[bar]
1:('baz')"">world
2:</a>
}}}

and so element 1 gets treated like non-tag text even though it's from an attribute. the easy fix is to not allow starting braces inside a brace set:

old:
{{{
$textarr = preg_split('/(<.*>|\[.*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
}}}

new:
{{{
$textarr = preg_split('/(<[^<]*>|\[[^\[]*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
}}}

this happens on trunk. code is in wp-includes/formatting.php. after the patch, the tokenizer works as intended:


{{{
0: [hello
1: <a href=""foo[bar]('baz')"">
2: world
3: </a>
}}}
",iamcal
Has Patch / Needs Testing,10269,wysiwyg bug with shortcodes,,Formatting,2.8,low,minor,Future Release,defect (bug),reopened,close,2009-06-25T11:29:42Z,2012-10-01T17:40:41Z,"When inserting two consecutive shortcodes on separate lines, the wysiwyg editor will change the post's contents on save.

{{{
[caption /]

[caption /]
}}}

gets turned into:

{{{
[caption /] [caption /]
}}}

the odd thing is that only genuine shortcodes get changed, too. the following is left alone:

{{{
[notashortcode /]

[notashortcode /]
}}}

",Denis-de-Bernardy
Has Patch / Needs Testing,14102,Additional CSS class in wp_list_pages when a page has children,,Formatting,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-26T13:28:23Z,2010-12-06T20:35:17Z,"A great addition to the wp_list_pages function would be to add an extra CSS class of 'page_has_children' (or similar) to a list item for when it has child pages.

This would enable theme authors to style the list items with CSS to differentiate between those pages that have child pages, and those that don't at whatever depth you are viewing in really simple CSS.

Here is how it could be implemented in the WP3.0 codebase. I have simply amended the 'start_el' function as shown below.

'''FILE: wp-includes/classes.php - from line 1173'''

{{{

/**
 * @see Walker::start_el()
 * @since 2.1.0
 *
 * @param string $output Passed by reference. Used to append additional content.
 * @param object $page Page data object.
 * @param int $depth Depth of page. Used for padding.
 * @param int $current_page Page ID.
 * @param array $args
 */
function start_el(&$output, $page, $depth, $args, $current_page) {
	if ( $depth )
		$indent = str_repeat(""\t"", $depth);
	else
		$indent = '';

	extract($args, EXTR_SKIP);
	$css_class = array('page_item', 'page-item-'.$page->ID);
	
	//JA ADDITION START 1 of 2 - DETECT IF PAGE HAS CHILDREN START
	$has_children = wp_list_pages('&child_of='.$page->ID.'&echo=0');
	//JA ADDITION END 1 of 2 - DETECT IF PAGE HAS CHILDREN
	
	if ( !empty($current_page) ) {
		$_current_page = get_page( $current_page );
		if ( isset($_current_page->ancestors) && in_array($page->ID, (array) $_current_page->ancestors) )
			$css_class[] = 'current_page_ancestor';
		if ( $page->ID == $current_page )
			$css_class[] = 'current_page_item';

		//JA ADDITION START 2 of 2 - DETECT IF PAGE HAS CHILDREN START
		if ( !empty($has_children) )
			$css_class[] = 'page_has_children';
		//JA ADDITION START 2 of 2 - DETECT IF PAGE HAS CHILDREN END

		elseif ( $_current_page && $page->ID == $_current_page->post_parent )
			$css_class[] = 'current_page_parent';
	} elseif ( $page->ID == get_option('page_for_posts') ) {
		$css_class[] = 'current_page_parent';
	}

	$css_class = implode(' ', apply_filters('page_css_class', $css_class, $page));

	$output .= $indent . '<li class=""' . $css_class . '""><a href=""' . get_page_link($page->ID) . '"" title=""' . esc_attr( wp_strip_all_tags( apply_filters( 'the_title', $page->post_title, $page->ID ) ) ) . '"">' . $link_before . apply_filters( 'the_title', $page->post_title, $page->ID ) . $link_after . '</a>';

	if ( !empty($show_date) ) {
		if ( 'modified' == $show_date )
			$time = $page->post_modified;
		else
			$time = $page->post_date;

		$output .= "" "" . mysql2date($date_format, $time);
	}
}

}}}
",Jonnyauk
Has Patch / Needs Testing,20166,Function url_shorten() enhancement,,Formatting,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-03T23:03:47Z,2012-03-04T03:37:59Z,"The function url_open is included in the wp_admin/includes/misc.php and is not usable unless loaded. This is not loaded by default so not available site wide. Also, the function is very static as of right now in its use with no defined options. Options to set length of the shortened url and the ability to turn on off the cutting of the leading ""http://www"" and the trailing slashes are included in this patch.",mulvane
Has Patch / Needs Testing,16496,Make $sample_permalink_html human-readable on Edit Post screen,,Formatting,,normal,normal,Future Release,enhancement,new,has-patch,2011-02-08T19:40:23Z,2011-11-06T12:00:31Z,"If the permalink contains words with non-latin characters (for example the permalink structure is /%category%/%postname%/ and the assigned category is non-English) the $sample_permalink_html, which is echoed by [http://core.trac.wordpress.org/browser/branches/3.1/wp-admin/edit-form-advanced.php#L260 edit-form-advanced.php], is not human readable on Edit Post screen (below the title). The editable part of the permalink (the one that comes from the title of the post) ''is'' readable.

$sample_permalink_html should be urldecoded at some stage before echoed.

Screenshot attached.",linuxologos
Has Patch / Needs Testing,19550,Please provide option to disable wptexturize entirely,,Formatting,3.3,normal,minor,Awaiting Review,enhancement,reopened,has-patch,2011-12-14T20:42:52Z,2012-01-04T16:53:05Z,"I assume this is controversial, but I want wptexturize to *always* be a no-op.  I know I'm not alone on this.  There exists a 3rd-party ""wpuntexturize"" plugin, but it is insufficient; even using that plugin, I keep running in to places where texturization is happening anyway.

Rather than making us play whack-a-mole with all the places it gets turned back on, can't we please just have a checkbox to disable it globally?

Alternately, if you would make wptexturize be a pluggable function, I could just re-define it.

As it is, with each new release, I am forced to modify the source to add ""return $text"" as the first line of the function.",jwz
Has Patch / Needs Testing,24106,Simplify wp_slash(),,Formatting,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-16T19:37:12Z,2013-04-17T03:12:26Z,"[23416] added the function {{{wp_slash()}}} for the slashing sanitization in #21767.

[https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2013-04-16&sort=asc#m595515 According to ryan], it has been modelled after {{{$wpdb->prepare()}}}, and therefore uses a custom {{{foreach}}} loop with an {{{if}}}-check in it.
I suggest to instead model it after {{{stripslashes_deep()}}} and {{{urlencode_deep()}}} to simplify the function and make it better readable.

The attached patch also makes it clearer that this function works in a recursive manner.",TobiasBg
Has Patch / Needs Testing,16448,Smilies should not be placed inside of pre or code tags,,Formatting,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-03T04:00:52Z,2011-07-13T09:46:36Z,Smilies should ignore content inside of `<pre>` and `<code>` tags. The author likely is posting code and doesn't need smilies messing it up.,Viper007Bond
Has Patch / Needs Testing,12084,allow preserving HTML in the_excerpt (specify allowed tags for strip_tags in wp_trim_excerpt),,Formatting,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-01-29T22:36:40Z,2012-08-13T12:48:48Z,"Right now, `wp_trim_excerpt` is destructive. You can filter it, but once tags are stripped, you can't get them back without recreating the excerpt from the raw input. It would be nice if theme developers had an option to preserve at least some of the HTML formatting when using excerpts as post teasers (see #9260). ",sillybean
Has Patch / Needs Testing,10792,ampersands and slashes stripped out of slugs,,Formatting,,low,trivial,Future Release,enhancement,new,has-patch,2009-09-15T22:56:00Z,2012-01-05T06:42:43Z,"In slugs for taxonomies or post permalinks, slashes (/\) and ampersands (&) are stripped out. More useful URLs would be created by turning slashes into hyphens, and ampersands into the word ""and"".

e.g.:

""songs by Lennon/McCartney""[[BR]]
expected slug: ""songs-by-lennon-mccartney""[[BR]]
actual slug: ""songs-by-lennonmccartney""

""Us & Them""[[BR]]
expected slug: ""us-and-them""[[BR]]
actual slug: ""us-them""",alxndr
Has Patch / Needs Testing,5689,smilies should not wrap on line-break,,Formatting,,low,minor,Future Release,enhancement,new,has-patch,2008-01-19T10:49:42Z,2010-07-15T01:44:30Z,When smilies are not converted to images they still should not wrap on line-break.,gpoul
Has Patch / Needs Testing,14819,Gallery shortcode output does not validate.,,Gallery,3.0.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-09-09T14:17:28Z,2012-09-17T05:30:04Z,"I was validating a sites markup when I realized that the gallery shortcode output does not validate where know ""caption"" exists due to the lack of an associated value. Basically a <dt> must be followed by at least one <dd>.

Not sure if dl is the best tag to use for outputting galleries since I imagine lot's of people exclude captions from their galleries. Not sure what the best solution is at the moment.

Thoughts?

This is my first submission so be gentle.",jameslaws
Has Patch / Needs Testing,21082,"The Gallery shortcode relies on #gallery-instance to hook the CSS, but the id sometimes isn't specific enough",,Gallery,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-26T18:43:28Z,2013-01-24T09:14:02Z,"The Gallery CSS selector uses the id attribute, which is of the form #gallery-{instance}. On some scenarios (like infinite scroll) a follow up gallery on a another post can have the same #gallery-x selector, thus over-writing the previous gallery style.

Proposed solution: make the #id more unique by including the postid number. (Attached patch.)

(It could potentially impact some themes that used #gallery-1 to style galleries, but theme's shouldn't be using that in the first place, I believe.)

Furthermore, it may be good to change the whole style block to use classes instead of the id so that it's easier for themes to deal with CSS specificity—and helps them not fall back to the #id.",matveb
Has Patch / Needs Testing,11101,Gallery column width calculation needs more granularity,,Gallery,,normal,minor,Future Release,enhancement,new,has-patch,2009-11-08T07:36:13Z,2011-02-23T10:12:06Z,"In line 712 of wp-includes/media.php where the column width is calculated for the gallery css snippet:


{{{
$columns = intval($columns);
        $itemwidth = $columns > 0 ? floor(100/$columns) : 100;

        $selector = ""gallery-{$instance}"";

        $output = apply_filters('gallery_style', ""
                <style type='text/css'>
                        #{$selector} {
                                margin: auto;
                        }
                        #{$selector} .gallery-item {
                                float: left;
                                margin-top: 10px;
                                text-align: center;
                                width: {$itemwidth}%;                   }
}}}


itemwidth should be calculated as 

{{{
$itemwidth = $columns > 0 ? round(100/$columns,1) : 100;
}}}

This gives the width better precision. I've read that IE ignores the decimal, but it works on at least Firefox, so there is no reason not to let it have a decimal value. You could even increase the number of decimal points.",akozak
Has Patch / Needs Testing,11725,Add start and count attributes to gallery shortcode,,Gallery,2.9.1,normal,normal,Future Release,feature request,new,has-patch,2010-01-05T15:00:27Z,2012-08-05T22:58:23Z,"Add shotcodes COUNT for views full gallery after click on MORE. Home

Modify files ./wp-includes/media.php
Lines 699 (add COUNT => '-1')
Lines 767-798 (add ForEach ... )

Use in WP:

[gallery] ... show standard gallery

OR

[gallery count=3] ... show images 1-3
- more -
[gallery count=3+] ... show images 4-n",frymi
Has Patch / Needs Testing,12799,Allow gallery shortcode to accept a maximum number of items,,Gallery,2.9.2,normal,normal,Future Release,feature request,new,has-patch,2010-04-01T17:55:55Z,2012-08-27T21:59:51Z,"A ""would be nice"" feature of the gallery would be to allow for a maximum number of items to be displayed.

The main use of this feature would be to allow a page to show a ""preview"" of some of the images contained within one or more subpages, eg:

* Some event
[gallery link=""file"" columns=""4"" orderby=""rand"" maximum=""4"" id=""164""]
* Some other event
[gallery link=""file"" columns=""4"" orderby=""rand"" maximum=""4"" id=""200""]

",dtorbert
Has Patch / Needs Testing,16906,Bogus call to wp_kses_no_null(),,General,3.1,normal,normal,Awaiting Review,defect,new,has-patch,2011-03-20T21:44:21Z,2011-03-20T21:45:23Z,Nullchars and \ have been already replaced in string in question one line above. See [http://core.trac.wordpress.org/browser/tags/3.1/wp-includes/kses.php#L943 wp_kses_no_null()].,hakre
Has Patch / Needs Testing,16907,Redirecting w/o using wp_redirect();,,General,3.1,normal,normal,Awaiting Review,defect,new,has-patch,2011-03-20T22:00:28Z,2011-03-23T20:38:20Z,Some places in worpdress core do not make use of the wp_redirect() function.,hakre
Has Patch / Needs Testing,2877,A Slash too much @ get_pagenum_link(),,General,2.0.3,normal,normal,Future Release,defect (bug),reopened,has-patch,2006-06-29T17:47:30Z,2011-11-05T17:38:23Z," * File: template-functions-links.php
 * Function: get_pagenum_link()

The following code is at the end of the function:

{{{
	// showing /page/1/ or ?paged=1 is redundant
	if ( 1 === $pagenum ) {
		$qstr = str_replace('page/1/', '', $qstr); // for mod_rewrite style
		$qstr = remove_query_arg('paged', $qstr); // for query style
	}
}}}

If you work with the mod_rewrite style, you will get this URL for the first page:

http://www.example.com/wordpress/index.php/
This wont work (/ at the end).

Correx:
{{{
	// showing /page/1/ or ?paged=1 is redundant
	if ( 1 === $pagenum ) {
		$qstr = str_replace('/page/1/', '', $qstr); // for mod_rewrite style
		$qstr = remove_query_arg('paged', $qstr); // for query style
	}
}}}

Notes:

 * sry for my bad english...
 * i've downloaded a german translation of wordpress 2.0.3, so maybe its just in this version... ?!
",dave@…
Has Patch / Needs Testing,17157,Cannot preview changes to published multi-page posts,,General,3.0.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-04-17T17:41:50Z,2012-05-09T17:10:23Z,"Use Case: After publishing a post, an editor needs to make changes/update the post.  Editor would like to preview changes before publishing.  (Permalinks are turned on in this case)

To Reproduce:
1. Write a post. Make it paged by putting <!--nextpage--> somewhere in the post.
2. Publish the post 
3. Make changes to the post, somewhere on page 2
4. Click ""Preview Changes"" button

Browser will open a new page for the post: http://[domain]/yyyy/mm/dd/[post title]/?preview=true&preview_id=126507&preview_nonce=f0a2ecd9ae

5. Next page link will point to http://[domain]/yyyy/mm/dd/[post title]/   (Note: that preview, preview_id and preview_nonce are missing from the url)

Suggested fix is attached.
",akoyfman
Has Patch / Needs Testing,23862,Clean up old WP->public_query_vars and WP->private_query_vars,,General,,normal,trivial,Future Release,defect (bug),new,has-patch,2013-03-25T19:20:07Z,2013-05-20T12:03:20Z,"There are some old non-working public_query_vars still in the WP class that should be cleaned up.

* posts - broken 10 years ago http://core.trac.wordpress.org/changeset/182/trunk/blog.header.php
* search - hasn’t done anything since wp_query was created
* calendar - don’t see support since ‘b2’
* pb - don’t see support since ‘b2’
* static - only used in determining if is_page, though it no longer works correctly, added http://core.trac.wordpress.org/changeset/1527/trunk, but functionality was partially changed the next commit

Also, since 'post_type' is now a public_query_var, it can be removed from the private_query_vars.
",prettyboymp
Has Patch / Needs Testing,19555,Deprecate url_is_accessable_via_ssl(),,General,,normal,normal,Future Release,defect (bug),new,has-patch,2011-12-14T22:56:31Z,2012-04-27T16:10:44Z,"We can convert it to use wp_remote_get() when we do, or just stub it.",nacin
Has Patch / Needs Testing,14296,Don't show previous post link on orphaned attachments,,General,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-07-13T12:52:51Z,2010-07-14T04:43:32Z,"In function adjacent_post_link(), add check if post parent not empty.",zeo
Has Patch / Needs Testing,16167,FORCE_ADMIN_SSL broken if site runs on port different from 80,,General,3.0.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-09T15:49:44Z,2011-10-17T23:37:51Z,"I'm running a wordpress site (http://yoush.homelinux.org:8079/) hosted at my home server. Unfortunately mu ISP blocks incoming connections on port 80, so I have to use non-standard port.

With unmodified wordpress 3.0.4, I was unable to use FORCE_ADMIN_SSL, because it caused URLs starting with

http://yoush.homelinux.org:8079/

to be converted to

https://yoush.homelinux.org:8079/

Which is definitly broken since it is impossible to serve both http and https on the same port.

To fix this, I propose removing ':port' from URL when converting http url to https.
I've created a patch for this, that seems to work for me on my site.",yoush
Has Patch / Needs Testing,17632,HTML 5 Validation issues (theme independent),,General,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-01T07:52:09Z,2013-04-17T01:37:23Z,"Wordpress often adds the rel attribute to links.

For example rel=""category"" or rel=""attachment"" etc...

Apparently these keywords are not allowed in html 5 :

http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#linkTypes

So the validation fails :-/

These attributes are a bit hardcoded. You can use regex in filters or javascript solutions to remove them, but this is not a good solution.

I think this problem is now a bug, if you consider the importance of code validation.",amirhabibi
Has Patch / Needs Testing,14789,Inconsistency in 'all' hook invocation,,General,3.0.1,normal,normal,Awaiting Review,defect (bug),reviewing,has-patch,2010-09-07T01:41:33Z,2011-03-21T11:36:19Z,"The 'all' hook (catchall hook for any hook name) is getting inconsistently called depending on how the concrete hook is being invoked: by apply_filters, apply_filters_ref_array, do_action or do_action_ref_array.

In the simple cases (apply_filters, do_action), the hook will get all parameters passed, in the ..._ref_array cases, the hook will get only two parameters passed in which the first parameter is the name of the hook (a.k.a. tag) and the second parameter is an array of all other parameters.

Every 'all' hook-function-callbacks should be called in the same way regardless whether which of the four invocation functions have been used on that pointcut.

Additionally all four routines share a lot of the same code which could benefit of a refactoring.",hakre
Has Patch / Needs Testing,7267,Infinite recursion in get_category_parents() and _children(),,General,,normal,normal,Future Release,defect (bug),reopened,has-patch,2008-07-09T04:54:21Z,2010-12-07T18:41:17Z,"These two functions can get stuck in a recursion loop if there's an indirect category hierarchy loop like A -> B -> C -> A.

The patch keeps track of traversed IDs and prevents repetition - there's a name for the algorithm but it escapes me.  It increases memory usage but probably not too much - certainly less than infinite recursion does.


",tellyworth
Has Patch / Needs Testing,11697,Keep private posts in the admin area / Was: Make private posts a canonical plugin,,General,2.9,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-01-02T21:33:21Z,2011-04-11T23:15:01Z,"Said Matt:
> Also, a lot of the complexity of private posts could be avoided by a relatively simple change: saying they're only viewable in the dashboard. (Which I think is close to how people use them already.)

----

There are quite a few tickets related to private posts that can be viewed by users who should, and even more tickets related to private comments that can be viewed by users who aren't authorized to view the post.

There also is at least one ticket that highlights a performance issue related to private posts.

http://core.trac.wordpress.org/search?q=private

Would it be an option to turn this into a canonical plugin and begone with the problems?",Denis-de-Bernardy
Has Patch / Needs Testing,22625,Lone less than (<) characters foul up balanceTags(),,General,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-28T22:47:23Z,2012-12-11T20:34:57Z,"1. Turn on tag balancing.
2. Try this text:
{{{
This is < That.

<blockquote>foo</blockquote>

Text <a href=""#"">link</a>. Post-link text.
}}}
3. On save, the ending blockquote tag is stripped, and the subsequent text is blockquoted.

We should recognize lone {{{<}}} characters and entity encode them like we do for {{{<3}}}.",markjaquith
Has Patch / Needs Testing,13078,Make wp_register_style and wp_enqueue_style consistent,,General,3.0,normal,minor,Future Release,defect (bug),new,has-patch,2010-04-22T01:08:39Z,2013-03-31T05:06:56Z,"When fixing #13056, I noticed that wp_register_style and wp_enqueue_style had a few odd differences.

1. Enqueue truncates the $handle variable after the first '?' while register (and all other wp_style functions) accept any string.

2. Register set the default for $media to 'all', while enqueue set it to false. (fixed in the #13056 patch).

Moreover, since the two functions are practically the same, I've grouped them together in a private _wp_register_style function with an additional $enqueue boolean. Both enqueue and register call _wp_register_style.

I've omitted the truncate behavior mentioned above. If there's any reason for it in one, and not the other, or in both, feel free to correct me.

We could also just remove the truncate behavior from enqueue. It's a minor patch, and comes down to coding style.",koopersmith
Has Patch / Needs Testing,15732,Media Settings page description is unclear,,General,,normal,trivial,Future Release,defect (bug),new,has-patch,2010-12-08T15:26:37Z,2010-12-11T13:41:51Z,"This is pretty trivial, but it's an easy fix, so I thought I'd throw it out there.

Currently the Media Settings page reads, ""The sizes listed below determine the maximum dimensions in pixels to use when inserting an image into the body of a post.""

That isn't true, it should probably read ""The sizes listed below determine the maximum dimensions in pixels to use when adding an image to the Media Library.""

The only reason this came up, is a client of mine was confused when she changed the large dimensions to ""434x434"" and the image she had uploaded previously w/ the dimensions of 800x732 did not give her the ""Large"" option.

I'm not sure anyone else in the world has ever had this problem. So the severity is definitely trivial.",layotte
Has Patch / Needs Testing,16529,Missing quotes in DB_NAME on installation,,General,3.0.4,normal,normal,Awaiting Review,defect (bug),new,close,2011-02-10T23:41:47Z,2011-02-11T00:31:33Z,"A fresh installation of the database creates the file ""wp-config.php"".  This sets the MYSQL hostname.  When entering the proper information from the 5-minute installation into the MYSQL hostname field, this is incorrectly saved to the ""wp-config.php"" file *without* quotes around the host if the hostname is something other than localhost.

This makes installation problematic for users for which MySQL is not residing on the same host as their web server.  Specifically 1&1 users experience this issue.  This appears in the latest SVN pull.

see line 220 - 229 on /wp-admin/setup-config.php

patch attached.",beadon
Has Patch / Needs Testing,18824,Password protected pages don't work if site address is different from wordpress address,,General,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-30T13:15:08Z,2011-11-09T21:44:28Z,"Hi,

On a 3.2.1 wordpress site, we notices that password protected pages didn't work.

Site address is in another domain (x.com) than wordpress address (y.com).

If we set the same domain for both of them, protected pages work again.

I think I understood what was going on:

1. the browser gets the form for the password via siteurl.
2. however the forms posts data to wordpress address (wp-pass.php), and the browser gets the cookie within this domain (and not siteurl domain)
3. the browser is redirected to siteurl, but the cookie doesn't work (domain mismatch).

I corrected wp-pass.php, by replacing get_option('siteurl') by get_option('home'), and it worked.",3singes
Has Patch / Needs Testing,16555,Post format metabox shows duplicate 'standard' format,,General,3.1,low,normal,Future Release,defect (bug),new,has-patch,2011-02-13T23:01:55Z,2011-02-20T17:38:15Z,"Having 'standard' within add_theme_support makes the standard option show up twice within the post format metabox on the write/edit screen.

{{{add_theme_support( 'post-formats', array( 'standard', 'aside', 'chat', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio' ) );}}}

Patch fixes this by skiping over standard since it's hardcoded in the metabox.",ptahdunbar
Has Patch / Needs Testing,15424,Refresh post count when a post is deleted,,General,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-11-14T16:02:47Z,2012-03-24T14:15:48Z,"Hi Guys,

I am reporting a bug in the system. I have various users in WPMU. They have their posts and i am tracking their no of posts.

Now if i delete a post from users account post count isnt getting updated. It remains at what it was previously.

eg. If a user has 4 posts in his account and he deleted his one post still the ""post_count"" field in ""wp_options"" table remains 4 only. Its not getting updated to 3.

Is there any patch for this ??

Awaiting eagerly for response.

Samir",chouxpastry2002
Has Patch / Needs Testing,13418,Smaller Bits of Code Improvement,,General,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-17T02:44:52Z,2012-12-07T21:18:42Z,"This ticket is for smaller bits of code-improvements all over trunk whenever something pops into sight.

Descriptions are put in the Description field of the attachment. Feel free to add your own so this won't clutter up tac too much.

Discussion in IRC and/or wp-hackers.",hakre
Has Patch / Needs Testing,15965,Streamline exit call syntax,,General,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-23T13:20:09Z,2010-12-23T14:45:11Z,"After review of patches in #15518 it came to my attention that {{{exit}}} is sometimes called with and sometime w/o paranthesis.

As #15518 makes use of the {{{exit;}}} variant, all occurences of {{{exit();}}} can be replaced with it.",hakre
Has Patch / Needs Testing,15769,"WordPress ships with copyrighted ""Hello, Dolly!"" lyrics which could potentially terminate the GNU GPL of the package",,General,3.0.2,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-12-11T02:35:59Z,2012-02-15T22:27:02Z,"It is an industry standard practice to show licensing details when using someone else's copyrighted content. I can't find anything substantiating that WordPress has been granted a license to use the copyright Hello, Dolly! lyrics, so the ''prima facie'' appearance is that WordPress is infringing copyright of Jerry Herman, the song's composer.

Unless WordPress indemnifies users, Hello Dolly plugin users may be vulnerable to legal problems due to unauthorized use of Jerry Herman's intellectual property.

Please clarify WordPress's license of this copyrighted material in the module's source code or at wordpress.org.",novasource
Has Patch / Needs Testing,20712,"Wrong data type returned from get_option for ""page_on_front"" after update_option",,General,3.3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-05-20T08:29:35Z,2012-10-15T10:22:59Z,"
{{{
echo gettype(get_option(""page_on_front"")); // return string
update_option(""page_on_front"", ""123"");
echo gettype(get_option(""page_on_front"")); // return integer
}}}


You can repeat the steps and it give consistent result, so `get_option` return the wrong data type ONLY when it is after `update_option`",tszming
Has Patch / Needs Testing,21000,custom-background still include background-image: none; when setting background color,,General,3.4,normal,normal,Awaiting Review,defect (bug),new,close,2012-06-17T17:38:56Z,2012-10-08T17:52:30Z,"I am sorry I missed this after the last inclusion before release, but in the function _custom_background_cb() 

I overlooked testing logic in the callback before it was released.  

if background color was specified but no image, act as if image shouldn't exist

The original complaint was that when you removed (both) the $background and $color that it outputted the background-image: none;  However in 3.4 it's not account for $color in the function and !$background

This is the change I am requesting.

{{{
      if ($background) {
...
}}}

line: 1136 - wp-includes/theme.php

{{{
      } else $style .= ' background-image: none;';
}}}

This will make it handle the if ($color && !background) appropriately


",Frumph
Has Patch / Needs Testing,21613,"format_to_edit runs esc_textarea if $richedit param is set to false, not true",,General,,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-08-16T19:59:20Z,2012-08-17T15:35:26Z,"Currently, the docs on format_to_edit() indicate that it runs the content through esc_textarea (which in turn runs htmlspecialchars() ) if the $richedit param is set to true. The code, however, runs the filter if the param is not set (or passed as false, see line 1270). 

{{{
#!php
1255 /**
1256  * Acts on text which is about to be edited.
1257  *
1258  * The $content is run through esc_textarea(), which uses htmlspecialchars(
1259  * to convert special characters to HTML entities. If $richedit is set to t
1260  * it is simply a holder for the 'format_to_edit' filter.
1261  *
1262  * @since 0.71
1263  *
1264  * @param string $content The text about to be edited.
1265  * @param bool $richedit Whether the $content should not pass through htmls
1266  * @return string The text after the filter (and possibly htmlspecialchars(
1267  */
1268 function format_to_edit( $content, $richedit = false ) {
1269   $content = apply_filters( 'format_to_edit', $content );
1270   if ( ! $richedit )
1271     $content = esc_textarea( $content );
1272   return $content;
1273 }
1274 
}}}

My thought is the if statement should evaluate whether $richedit is true, rather than false, and therefore apply the esc_textarea function only when explicitly passed as a param. This would, however, result in unexpected behavior for anyone currently passing only the default $content param and getting sanitized output.",vhauri
Has Patch / Needs Testing,18356,get_bookmarks() indefinitely caches randomly ordered results,,General,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-08T18:12:45Z,2011-08-12T01:11:20Z,"The get_bookmarks() function caches the results of all requests to the function in a single cache result so it can clear all the items when a new book mark is added.  However, randomly ordered results shouldn't be cached indefinitely.  This specifically affects the Links widget as it never refreshes when set to random order.",prettyboymp
Has Patch / Needs Testing,15838,get_home_path() mixes PHP and server paths,,General,3.0.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-12-15T23:40:27Z,2011-12-16T03:15:52Z,"FYI: I've looked through the other get_home_path() tickets and believe this to be a different issue.

If the home and site urls are the same then you get a '''PHP relative''' path returned. i.e. it uses {{{ ABSPATH }}}, which is calculated using the PHP constant {{{__FILE__}}}
.

If the home and site urls are different you get a '''server relative''' path returned. i.e. one calculated via 
{{{$_SERVER[""SCRIPT_FILENAME""] }}}.


With web hosts who have the server and PHP paths configured consistently this is no problem.

But on 1and1 it could be if you are comparing the return value of this function against another path. If the function can either return a PHP or a server path then your code may not always work.

The server path (Apache) on 1and1 has an extra '/kunden' at the start. This means that PHP and Apache retrieve paths slightly differently.

Example.
Blog with same home and site urls

{{{
get_home_path =         /homepages/xx/dxxxxxxxx/htdocs/site1
}}}


Blog with different home and site urls

{{{
get_home_path = /kunden/homepages/xx/dxxxxxxxx/htdocs/site1
}}}


I'd suggest that as this is PHP the right thing to do is to always calculate the path using PHP relative paths - i.e. using 
{{{ __FILE__ }}} / {{{ ABSPATH }}} . Don't use the server relative paths at all as you can't rely on them being the same as the PHP ones. 

Certainly having a function returning a path that can be calculated from two different base paths is a bad idea.

For reference here's the current function:

{{{
function get_home_path() {
	$home = get_option( 'home' );
	$siteurl = get_option( 'siteurl' );
	if ( $home != '' && $home != $siteurl ) {
	        $wp_path_rel_to_home = str_replace($home, '', $siteurl); /* $siteurl - $home */
	        $pos = strpos($_SERVER[""SCRIPT_FILENAME""], $wp_path_rel_to_home);
	        $home_path = substr($_SERVER[""SCRIPT_FILENAME""], 0, $pos);
		$home_path = trailingslashit( $home_path );
	} else {
		$home_path = ABSPATH;
	}

	return $home_path;
}
}}}
",reviewmylife
Has Patch / Needs Testing,16863,get_terms hierarchical/hide_empty incompatible with include/exclude args,,General,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-16T12:37:06Z,2012-09-13T09:36:55Z,"{{{
$terms = get_terms('taxName', array(
    'hierarchical' => true,
    'hide_empty' => true,
    'include' => array(1, 2, 3)
));
}}}
$terms will not contain a meaningful result set. In order for get_terms to process 'hierarchical' correctly it must recieve in 'include' a full list of term ids for all child terms that may have count > 0, this obviously negates the point of 'include' here.
'include/exclude' is processed at query level, 'hierarchical' is processed post query and expects the results of the query to be unfiltered.
The following patch seems to fix the issue in my application, I think this approach would need to take in 'child_of' also, which I haven't done here.
{{{
diff --git a/wp-includes/taxonomy.php b/wp-includes/taxonomy.php
index 89532dc..2f51bea 100644
--- a/wp-includes/taxonomy.php
+++ b/wp-includes/taxonomy.php
@@ -1337,9 +1337,13 @@ function &get_terms($taxonomies, $args = '') {
 
 	// Make sure we show empty categories that have children.
 	if ( $hierarchical && $hide_empty && is_array($terms) ) {
+
+        $taxTerms = !(empty($include) && empty($exclude) && empty($exclude_tree)) ?
+            get_terms($taxonomies) : $terms;
+
 		foreach ( $terms as $k => $term ) {
 			if ( ! $term->count ) {
-				$children = _get_term_children($term->term_id, $terms, $taxonomies[0]);
+				$children = _get_term_children($term->term_id, $taxTerms, $taxonomies[0]);
 				if ( is_array($children) )
 					foreach ( $children as $child )
 						if ( $child->count )
}}}
",martinshopland
Has Patch / Needs Testing,10458,lighttpd/1.4.22 does not populate _REQUEST['action'] for wp-login.php,,General,2.8,normal,normal,Future Release,defect (bug),reopened,has-patch,2009-07-21T14:10:36Z,2010-05-10T08:50:09Z,"lighttpd/1.4.22 does not populate _REQUEST['action'] for wp-login.php, this in turn disabled any action in the switch statement breaking the ability to logout.

Symtoms of this bug are: clicking logout in wordpress 2.8 and going to the login page but not really logging out.  Clicking logout in wordpress 2.3 and being redirected right back to the /wp-admin page.

adding this code to wp-login.php, fixes the behavior and re-enables all features in wp-login.php.

I don't know the wordpress code but if there is a section which deals with idiosyncrasies of web servers that lighttpd be detected and this code be run to deal with it. 

//
// Main
//


if (strpos($_SERVER['SERVER_SOFTWARE'], 'lighttpd') !== false)
{
$_lighty_url = $base_url.$_SERVER['REQUEST_URI'];
$_lighty_url = @parse_url($_lighty_url);
$_SERVER['QUERY_STRING'] = $_lighty_url['query'];
parse_str($_lighty_url['query'], $_lighty_query);
foreach ($_lighty_query as $key => $val)
$_GET[$key] = $_REQUEST[$key] = $val;
}
",myrond
Has Patch / Needs Testing,19714,plugins which use the 'authenticate' hook unable to return errors,,General,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-03T00:31:35Z,2012-11-20T17:37:34Z,"The 'authenticate' hook is designed to allow functions to return either an authenticated `WP_User` object (which will cause the user to be logged in), or a `WP_Error` object, which will cause the errors to be displayed to the user.

In practice, most plugins that use this hook don't rely on the username and password at all, but instead on other means entirely.  So what is happening with these plugins (the OpenID plugin chief among them), is that they are returning a `WP_Error` object that describes the error, but then the `wp_authenticate_username_password` function is ignoring that and returning its own `WP_Error` object which rightfully shows that the username and password fields were left empty.  Unfortunately, this error object (containing both an empty username AND password) is explicitly checked for and removed in the `wp_signon` method.  This is normally the right behavior and handles the case of a user who simply clicks ""Log In"" without entering anything... we don't show them an error, we just redraw the login form.  However, in the case described above, an actual error did occur with an authentication plugin, but the user simply sees the normal login form with no error displayed.

(patch forthcoming)",willnorris
Has Patch / Needs Testing,15946,post_date_gmt ignored in wp_insert_post(),,General,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-22T00:41:40Z,2010-12-26T22:46:25Z,"If a post is inserted with `post_date_gmt` set and `post_date` not, `post_date` defaults to the current date/time, rather than being generated from `post_date_gmt`",kawauso
Has Patch / Needs Testing,16472,set_query_var() / get_query_var() does not work for NULL values,,General,,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-06T16:08:06Z,2011-02-09T16:54:38Z,"Setting a query var to NULL will convert it into an empty string:

{{{
$name = 'test';
$value = NULL;
set_query_var($name, $value);
$get = get_query_var($name);
echo $value === $get ? 'same' : 'different';
var_dump($get);
}}}

This will output ""different"" and showing that the query var now is an empty string.",hakre
Has Patch / Needs Testing,13208,shared code in get_mu_plugins() and get_dropins(),,General,,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-02T03:22:40Z,2010-11-13T07:56:26Z,"Aka code buplication.


FYI closedir() is not necessary in PHP. It only consumes runtime and memory if you use it especially with the @ operator.",hakre
Has Patch / Needs Testing,11683,update_metadata() passes only the first meta_id,,General,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2010-01-01T18:04:39Z,2013-05-14T13:18:38Z,"Code to reproduce:

{{{
function update_metadata_action_test($meta_id) {
	var_dump($meta_id);
}
add_action('update_post_meta', 'update_metadata_action_test');

add_metadata('post', 1, 'mykey', 'value1');
add_metadata('post', 1, 'mykey', 'value2');

update_metadata('post', 1, 'mykey', 'new value');
}}}

Expected result:

{{{
Array ( [0] => 101 [1] => 102 )
}}}

Actual result:

{{{
string(3) ""101""
}}}
",scribu
Has Patch / Needs Testing,17725,wp_convert_hr_to_bytes() fails on large numeric values,,General,2.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-08T12:24:41Z,2011-06-22T17:17:36Z,"The {{{wp_convert_hr_to_bytes()}}} function exists to convert values in form of a memory setting into it's value in bytes.

By doing so, the function modifies the input value in every case. This modification has an issue with integer limits.

Whenever a value of $size is passed to the function that is in it's numerical part larger than [http://php.net/manual/en/reserved.constants.php PHP_INT_MAX], the input value will be capped to {{{PHP_INT_MAX}}}.

This is an integer overflow.

This applies as well when size has a shorthand ending specifier and it's numerical part is greater than PHP_INT_MAX.

To illustrate the problem on a 32 bit system:

{{{
	$setting = '2147483648';
	echo ""'$setting' are "", wp_convert_hr_to_bytes($setting), "" bytes.\n"";
	// '2147483648' are 2147483647 bytes.
}}}

It shows that the last byte is missing. Every other byte on top will be capped as well. The number of bytes given are a value equally to '2G'.

Solution: Input values should not be capped to int but to float which has allows higher values.",hakre
Has Patch / Needs Testing,20450,wp_dropdown_categories - inconsistent use of single-quotes causes (javascript) assignment  issues,,General,3.3.1,normal,minor,Awaiting Review,defect (bug),new,close,2012-04-15T23:06:37Z,2012-06-18T23:02:05Z,"wp_dropdown_categories outputs double-quote characters for all options (value etc) BUT single-quote characters for main select attributes - which is inconsistent.

this causes a problem when assigning output to eg. a javascript string - meaning we must perform a separate 'replace' operation first.

similarly, we already have to do a replace of all newline-characters in output for newline-backslash - in order that its multi-line output can be assigned to a javascript variable.

please could we have double-quote characters used consistently  in output? ideally provision of a javascript friendly output format (ie. backslash-newline) would also be great - though my no means essential. 
 ",rcain
Has Patch / Needs Testing,19892,wp_fix_server_vars() mangles REQUEST_URI on some servers,,General,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-25T00:58:47Z,2012-01-25T06:53:04Z,"== Bug manifestation: ==

On some server setups, saving settings on any settings page which uses options.php - including the twentyeleven theme options pages - results in a ''You do not have sufficient permissions to access this page.''-error page, even if you are the (super-)admin of the website.[[BR]]

The changed settings *are* however saved, but the bug obviously causes a usability issue.[[BR]]
[[BR]]



== The cause of the issue: ==

The issue is ultimately caused by (shared-)hosting companies which - for security reasons - set the {{{$_SERVER['SERVER_SOFTWARE']}}} variable to MS IIS when in reality the server runs on a Linux variant.[[BR]]
[[BR]]

The {{{$_SERVER['SERVER_SOFTWARE']}}} variable being MS IIS causes ''wp_fix_server_vars()'' to double the query vars resulting in a mangled {{{$_SERVER['REQUEST_URI']}}}.[[BR]]

I.e.: ''""/wp-admin/themes.php?page=theme_options""'' becomes ''""/wp-admin/themes.php?page=theme_options?page=theme_options""''[[BR]]
[[BR]]


As the {{{$_SERVER['REQUEST_URI']}}} variable is used by the ''settings_fields()'' function to generate the hidden form fields for the option pages, this then in turn results in a mangled ''_wp_http_referer'' form value.[[BR]]

I.e.: {{{<input type=""hidden"" name=""_wp_http_referer"" value=""/wp-admin/themes.php?page=theme_options?page=theme_options"" />}}}[[BR]]
[[BR]]


As the '''''options.php''''' file, after saving the changed settings, uses the ''_wp_http_referer'' field value to redirect the page - which it then can't - , the user ends up on the ''You do not have sufficient permissions to access this page.''-error page.[[BR]]
[[BR]]



== Patch/fix for the issue: ==

In file '''''wp-includes/load.php''''' change '''''line 75''''' from:

{{{
if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
}}}
to
{{{
if ( ! empty( $_SERVER['QUERY_STRING'] ) && strpos ( $_SERVER['REQUEST_URI'], '?' ) === false ) {
}}}

N.B.: line number based on WP 3.3.1. trunk[[BR]]
[[BR]]




== Additional info: ==

This bug has been in the WP code base for a while. It might be useful to add this issue to the FAQ in the documentation for those users/webmasters who do not always upgrade to the latest & greatest WP version.[[BR]]


A user/webmaster who encounters this issue should probably get advice along the following lines:[[BR]]

a. Determine that the problem is really caused by this issue by verifying that they really run on Linux and by checking that the {{{$_SERVER['SERVER_SOFTWARE']}}} is a MS IIS variant - they can use ''phpinfo()'' to do so.[[BR]]

b. Upgrade to a WP version which includes the above patch once it has been released.[[BR]]

c. Contact their webhost to see if they are willing to change the {{{$_SERVER['SERVER_SOFTWARE']}}} variable to reflect reality.[[BR]]

d. If neither of the above is possible/works and they are sure that this bug is the cause of their problems, they can apply the following quick & dirty fix to solve it without touching the core files:[[BR]]


Add the following code to their wp-config.php file anywhere above the ''/* That's all, stop editing! Happy blogging. */'' line.
{{{
/**
 * Quick fix for server software bug
 */
$_SERVER['SERVER_SOFTWARE'] = 'Apache';
}}}
[[BR]]


== Related bug reports found: ==

* #15209 {{{$_SERVER['REQUEST_URI']}}} Doesn't always work correctly
* #12346 Saving settings in multiple plugins results in You do not have sufficient permissions to access this page.


This ticket has been opened as the previous two bug reports where too old to reopen.
",jrf
Has Patch / Needs Testing,13575,wp_max_upload_size() is not taking memory limit into account,,General,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-05-27T12:38:41Z,2011-03-08T15:14:43Z,"wp_max_upload_size() is not taking a memory limit into account while checking for the maximum upload size.

according to the official php documentation the memory limit is limiting file uploads as well (and post form operations).


> post_max_size - integer [[BR]][[BR]]
> Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesize. If memory limit is enabled by your configure script, memory_limit also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size.

[http://www.php.net/manual/en/ini.core.php#ini.post-max-size Source]",hakre
Has Patch / Needs Testing,17052,wp_sanitize_redirect() removes square brackets from URL,,General,3.1,normal,minor,Awaiting Review,defect (bug),reopened,has-patch,2011-04-05T07:12:16Z,2012-03-01T18:08:07Z,"The function wp_sanitize_redirect() removes square brackets from URLs.

PHP's functionality with arrays in the URL require square braces, stripping them from the URL means that pages (and plugins) that rely on them fail.

To Reproduce:

{{{
<?php
$url = 'http://example.com/my_url_array[1]=hello+world';
print wp_sanitize_redirect($url);
?>
}}}


Current Output:
http://example.com/my_url_array1=hello+world

Expected Output:
http://example.com/my_url_array[1]=hello+world

Whilst developers should be able to work around this as the function is pluggable I believe this should just work out of the box.
",bluntelk
Has Patch / Needs Testing,16686,$user argument of get_edit_profile_url() should be optional,,General,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-02-27T05:40:21Z,2011-02-27T09:54:36Z,It should default to the current user.,nacin
Has Patch / Needs Testing,17455,Add $post_type argument to get_lastpostdate/get_lastpostmodified/_get_last_post_time,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-05-16T15:05:59Z,2011-05-16T16:00:05Z,As title says. You can currently use these functions to only get the latest [modification] date of all publicly queryable content types.,duck_
Has Patch / Needs Testing,19514,Add Per Page Filter for Nav Menu Post Type Meta Box,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-12T15:40:53Z,2011-12-12T15:40:53Z,"Currently, there is a default (50) for paginating Post Type Entries on the wp_nav_menu_item_post_type_meta_box(). While there are other ways to filter this, it would be great for larger sites or larger number of post objects to be able to increase this for UX reasons.",wpsmith
Has Patch / Needs Testing,20357,Add Return Empty String Function,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-04T21:20:39Z,2013-03-07T16:53:39Z,"There's an easy way to return boolean, integer (0), and an empty array. But what about an empty string?
root\wp-includes\functions.php
{{{
/**
 * Returns an empty string.
 *
 * Useful for returning an empty string to filters easily.
 *
 * @since 3.0.0
 * @see __return_empty_string()
 * @return string Empty string
 */
function __return_empty_string() {
	return '';
}
}}}",wpsmith
Has Patch / Needs Testing,21089,Add admin url to install notification email,,General,3.4,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-06-27T21:50:40Z,2012-06-29T23:07:34Z,"I've seen a number of individuals inquiring as to the login url of their WordPress site for administration purposes.  Let's give it to them by changing:

Your new WordPress site has been successfully set up at:

http://wordpress.url

You can log in to the administrator account with the following information:

Username: admin
Password: The password you chose during the install.

We hope you enjoy your new site. Thanks!

--The WordPress Team
http://wordpress.org/

to

Your new WordPress site has been successfully set up at:

http://wordpress.url

You can log in to the administrator account with the following information:

Username: admin
Password: The password you chose during the install.
Location: http://wordpress.url/wp-admin

We hope you enjoy your new site. Thanks!

--The WordPress Team
http://wordpress.org/",georgestephanis
Has Patch / Needs Testing,18244,Add autoload flag to update_option,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-07-25T16:21:21Z,2011-07-25T16:21:21Z,I think having an autoload flag in update_option would be beneficial in terms of making sure developers aren't unknowingly autoloading every single option. I've created a patch that allows developers to define autoload using update_option and force a change if needed.,wpdavis
Has Patch / Needs Testing,14541,Add boolean at remove_meta_box action,,General,3.0.1,normal,normal,Future Release,enhancement,new,has-patch,2010-08-05T09:09:51Z,2010-11-18T10:09:59Z,"Add the possibility of getting the status of the remove_meta_box action by boolean.
Can be useful if you want to add/remove other metaboxes if one other is present or not.",Rahe
Has Patch / Needs Testing,11581,Add category description to wp_list_bookmarks(),,General,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-23T20:09:22Z,2010-07-15T09:02:13Z,Add a parameter to display the link category description under the category title in wp_list_bookmarks() in bookmark-template.php. Setting a link category description is an option in the manager panel but there is not a good way to display it without modifying the core function itself a la http://www.brainshitting.com/index.php/archives/241,nedsferatu
Has Patch / Needs Testing,23257,Add plural versions of Post Format strings,,General,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-22T00:59:30Z,2013-02-04T08:45:32Z,"To make it easier for theme authors to create meaningful titles for post format archive pages, we could extend `get_post_format_strings()` to also provide a standardized set of plurals.

I'm not entirely sure whether the plurals I used in the diff are the ones we actually want to go with (apparently there is no plural of 'Audio'?), but the change is fairly simple and is backwards compatible.

See [https://github.com/Automattic/_s/pull/137 this discussion] for additional context.",obenland
Has Patch / Needs Testing,16945,Add relative URIs containing a query in esc_url(),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-23T06:37:36Z,2011-03-23T08:18:14Z,"I'd like to enhance the esc_url function to accept an url starting with ? (query) to not require a protocol.

That's comparable with the # (fragment) case we already have in.

This is useful to create links to the current page that need a query only. Otherwise the php file must be added and for frontend pages it won't work with pretty permalinks.",hakre
Has Patch / Needs Testing,10946,Add set_post_field(),,General,,normal,normal,Future Release,enhancement,new,has-patch,2009-10-12T16:58:43Z,2009-11-17T15:05:33Z,"get_post_field() should have a matching function that updates a certain field.

Very useful both for Core and for plugins.",scribu
Has Patch / Needs Testing,23387,Adding priority to individual settings via the settings API.,,General,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-05T00:05:19Z,2013-02-05T11:54:36Z,"Currently there is no way (at least that I could find) to specify the order of settings on a settings page (for example, a theme options page). Use case: a child theme adding a setting to the parent theme's ""Theme Options"" page has no way of specifying the order in which the new setting should be inserted. 

I've modified the add_settings_field() function to allow for a priority to be set (much like when adding settings to the theme customizer). I also added uasort($wp_settings_fields[$page][$section], 'compare_priority'); to the do_settings_fields() function, where 'compare_priority' is a slightly modified version of the compare function used to set the priority of the theme customizer sections.

This patch is loosely related to #22487 which adds priority to settings sections, but not individual settings.",alexmansfield
Has Patch / Needs Testing,16886,Adding readonly function to wp-includes/general-template.php,,General,3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-03-18T16:00:34Z,2011-03-18T19:40:01Z,"A quite simple improvement, really. 

Just like the ''checked'', ''selected'' and ''disabled'' function, ''readonly'' would be a shortcut to ''__checked_selected_helper''.

I was doing a theme option page and realized that disabling fields removes the data from the data submission.

I have a bunch of fields that gets used (or not) in the theme, depending on a on/off switch. At first, depending on the switch, I was disabling the fields, but all the data is removed on submit if the switch is at off. Meaning that the user would have to reenter every fields if he wants to activate the functionality.

Putting the fields on readonly gives a nice feedback to the user that those fields are not use, depending on the switch, AND the data is kept if the user changes his mind.

So, here's the patch.

{{{
/**
 * Outputs the html readonly attribute.
 *
 * Compares the first two arguments and if identical marks as readonly
 *
 * @since 3.1.#
 *
 * @param mixed $disabled One of the values to compare
 * @param mixed $current (true) The other value to compare if not just true
 * @param bool $echo Whether to echo or just return the string
 * @return string html attribute or empty string
 */
function readonly( $readonly, $current = true, $echo = true ) {
    return __checked_selected_helper( $readonly, $current, $echo, 'readonly' );
}
}}}

",kakidcm
Has Patch / Needs Testing,24068,Allow absolute paths to be passed into content_url(),,General,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2013-04-12T20:13:59Z,2013-04-12T20:13:59Z,"It would be very useful if `content_url()` allowed an absolute path to be supplied just like `plugin_dir_url()` does. This would allow a script within a theme subdirectory to easily obtain the URL to that subdirectory, for example via `content_url(__DIR__)`, instead of having to add relative paths after `get_stylesheet_directory_uri()`. This would also allow code living somewhere else under `wp-content/` (not in plugins or themes) to likewise obtain its full URL.

http://codex.wordpress.org/Function_Reference/content_url
http://codex.wordpress.org/Function_Reference/plugin_dir_url
http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri",westonruter
Has Patch / Needs Testing,21930,Allow hooks to define avatar before Gravatar processing,,General,3.4,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-09-19T16:30:35Z,2012-09-28T08:13:29Z,"The get_avatar() function allows for developers to override avatar output in two ways. You can replace the function (pluggable) - not a good idea in my view, especially if you still want the ability to fallback and use Gravatar sometimes. You can also filter the output at the very end of the function with the 'get_avatar' hook. This works fine, but in highly common instances where a plug-in might want to override the avatar on a case by case basis, this forces each get_avatar call to needlessly process through the entire default avatar / Gravatar ""construction"".

Admittedly, that processing is mostly trivial string manipulation and conditionals with an md5 in the mix, but it still seems like needless overhead in instances where many avatars might get called in a comments thread or authors list.

Proposing a pretty trivial change that allows an avatar to be defined by a filter hook before proceeding through Gravatar / default avatar processing, skipping over all of that if one is, in fact, defined.

My inspiration for this is an attempt to improve the performance of my fairly popular Simple Local Avatars plug-in, that allows users to upload local avatars: http://wordpress.org/extend/plugins/simple-local-avatars/",jakemgold
Has Patch / Needs Testing,12721,Allow post_type's _edit_link to be outside of the admin.,,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-03-26T13:07:49Z,2010-05-15T10:06:36Z,get_edit_post_link runs the post_type's _edit_link through admin_url() always forcing the edit page to be within wp-admin.  There are times where this isn't desired.  I'm submitting a patch to check that the url of the _edit_link doesn't begin with http(s?): before running it through admin_url ,prettyboymp
Has Patch / Needs Testing,21472,Allow supplying a custom text to status_header(),,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-05T20:19:54Z,2012-08-05T20:19:54Z,"Problem: I'd like to issue a HTTP 500 error, but include a text different from Internal Server Error, so that the client knows what caused the error.

Currently for a known error code the {{{status_header()}}} function always uses the global array {{{$wp_header_to_desc}}} and the only way to have my own text is to set the value in the global array.

The patch adds a second a argument to {{{status_header()}}}.",nbachiyski
Has Patch / Needs Testing,14804,Allow the_title_attribute() to accept a post ID,,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-09-07T15:41:38Z,2011-01-14T03:48:09Z,"`the_title_attribute()` does not currently accept being passed a post object/ID and therefore, via its call to `get_the_title()` without an argument, always assumes the current post.  By simply allowing its `$args` array to accept and use a ""post"" value, then the function can be used to generate an attribute-friendly post title for any specified post.

Attached is the patch enabling this.  The `$args` array is amended with a ""post"" element, default of 0 (which maintains current default behavior).  Since `get_post()`, by way of `get_the_title()`, accepts a post ID or post object, either type can be assigned as value for the ""post"" element.
",coffee2code
Has Patch / Needs Testing,16185,Bulk Actions Dropdown Box JS Sync Ajax-Tables,,General,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-11T11:15:33Z,2012-07-26T19:25:41Z,"It would be an increase in usability - if JS is enabled - to sync the changes between the bulk-action-drop-down on top of the table with the one below the table.

In my scenario I increased the amount of entries to over 100. So you need to scroll. So to set the bulk action on top and then you might think twice, need to check something, scroll down to the list to check the last entry and you want to press the bulk submit down below.

That combo box is still on the default value right now. To spare additional clicks, it would be nice that it got synched with the one on top.

Related: #14579; #15580",hakre
Has Patch / Needs Testing,16792,"CategoryWalker, if cat_name is empty, do not append the empty a tag to the output",,General,3.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-03-07T22:36:29Z,2011-03-07T22:38:46Z,"If the theme is customized to skip some categories by doing something like add_filter('list_cats', 'hideSomeCatgory') and returning a null or an empty string as cat name, the CategoryWalker will append an empty html element to the output",samo9789
Has Patch / Needs Testing,16982,Deprecate post_permalink(),,General,,normal,minor,Future Release,enhancement,new,has-patch,2011-03-27T20:18:43Z,2011-03-28T06:10:47Z,"post_permalink() does nothing but call get_permalink() and already has a deprecated argument.

Let's deprecate it completely, since it's useless.",scribu
Has Patch / Needs Testing,21126,"Different ID on ""Set featured image"" link if there is already an image set",,General,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-30T22:02:55Z,2012-06-30T22:02:55Z,"I ran into a situation where I wanted to target the ""Set featured image"" link text in the featured image metabox. The ""Set featured image"" link displays and has an id of ""set-post-thumbnail"". When you set the thumbnail, the link still has an ID of ""set-post-thumbnail"" though now it is wrapping around the thumbnail image rather than the ""Set featured image"" text. Then a second link is added to remove the featured image with the id of ""remove-post-thumbnail"". 

In my situation I wanted to target the ""Set featured image"" link (with the text) and the ""Remove featured image"" link separately, but this was tricker than it needed to be because the ""Set featured link"" keeps the same id of set-post-thumbnail when it is wrapped around the thumbnail image.

Beyond my specific issue, I think it could be argued that this link deserves a specific id, since the action the link is performing is modifying the featured image more than it is setting it. 

So I've included a patch here that will modify the $set_thumbnail_link variable when the $thumbnail_id is present and change the link's id to modify-post-thumbnail. I'm not sure if it's the most elegant/clever way to achieve what I'm after, but I know it gets the job done.",ryanimel
Has Patch / Needs Testing,14078,Don't send notifications for comments too early,,General,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-24T19:22:26Z,2010-06-24T19:35:03Z,"Not sure if this classes as a bug or enhancement, will call it an enhancement for now. 

In  wp_set_comment_status the notifications are currently sent out before the work is done, and there is potential for the subsequent work to fail (due to database issue etc.)  

Attached patch (attempts to) move the notification so it is only sent after the work is done. ",mrmist
Has Patch / Needs Testing,21547,Enable 'delocalization' of scripts,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-11T04:04:27Z,2012-08-12T20:19:51Z,"I created a patch to enable developers to 'delocalize' a script they added. Currently if somebody localizes a script with wp_localize_script() there's no going back.

Can someone look at it and offer feedback? I'm not a regular WordPress contributor, so there may be stylistic issues.",gkb6891
Has Patch / Needs Testing,18653,Enhancement: Filter Taxonomy Show UI in post editor (edit-form-advanced.php),,General,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-13T16:03:49Z,2011-09-13T17:48:45Z,"I am working on a project that maintains a ""hidden"" taxonomy. I want to expose the taxonomy selectively on various custom post types.

The attached patch filters a taxonomy's show_ui value before deciding to create a meta_box. The filter also passes the taxonomy object as well as the current post type.",transom
Has Patch / Needs Testing,20125,Escape output in settings_errors,,General,3.0,normal,normal,Awaiting Review,enhancement,new,close,2012-02-26T17:26:26Z,2012-02-27T06:37:53Z,"'''The Problem'''

The ""settings_errors"" function does not escape data when outputting it from the $settings_errors variable, which either comes from the $wp_settings_errors global variable or the ""settings_errors"" transient. This data is not escaped at any point during retrieval or output. Additionally, the data is not sanitized or validated when adding it via ""add_settings_error"". 

'''Test Case'''

In the validation callback function for a setting, adding a settings error with HTML can badly break output:

{{{
add_settings_error( 'zdt-setting', '1023', 'An error occurred</div>' );
}}}

'''Solution'''

Escape the $type, $code, and $message variables on output.

'''Possible Issues'''

The $message variable is output wrapped in a 'p' and 'strong' tag. My patch tries to allow common, reasonable tags to be output. I use ""wp_kses_data"", which will only allow tags defined in the $allowedtags variable. Should a plugin or theme author need another element printed out, it will be stripped; however, there still is the potential that it could cause issues for plugins that were previously able to place anything in the $message variable. With that said, most other tags would lead to invalid HTML and probably shouldn't be allowed in this context anyway.",tollmanz
Has Patch / Needs Testing,16504,Faster maybe_unserialize,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-09T11:11:52Z,2011-05-11T11:46:49Z,"In #14429 many have taken care to optimize the is_serialized speed.

The function is of good general value and most often used to ""maybe"" unserialize.

It was [http://core.trac.wordpress.org/ticket/14429#comment:3 originally smabauers] who reminded that it's only about to check what it's about to check.

''Option values'', if serialized are only serialized Array, Objects or Strings. No exceptions. And they are ''always trimmed'' strings.

As is_serialized() is of general use and might be used by plugin authors, maybe_unserialize can get a new playmate.",hakre
Has Patch / Needs Testing,20279,Functions defined in wp-login.php should be moved to a separate file to make them re-usable,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-22T03:26:29Z,2012-10-06T07:35:29Z,"Currently, there are a series of functions defined at the top of wp-login.php:

{{{
login_header()
login_footer()
wp_shake_js()
retrieve_password()
check_password_reset_key()
reset_password()
register_new_user()
}}}

If these functions were moved to a separate file, they would be reusable by folks who are trying to do more advanced things involving the login flow.

As an example, if you want to create a page resembling wp-login right now, there's no easy way to do it without just duplicating everything from this file. Moving these functions means you can use login_header() and login_footer() to recreate the bulk of the page, then handle the ""content block"" yourself. This marginally improves the re-usability of the login system.

Patch attached which does this.",beaulebens
Has Patch / Needs Testing,6492,Guids No Longer Have Permalink Format,,General,2.5,normal,trivial,Awaiting Review,enhancement,reopened,has-patch,2008-03-31T06:03:30Z,2013-05-18T21:41:12Z,"When you create a new post using WordPress 2.5 the GUID is created in the http://siteurl/?p=<PostId> format even when permalinks are enabled.  This is because the _transition_post_status function in /wp-includes/post.php now checks if the guid is empty (which it never is) before resetting/creating it with the proper permalink structure.  Line 2841 should be removed.
",brianwhite
Has Patch / Needs Testing,22251,Helper function to simplify checking for constants,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-22T00:32:27Z,2012-10-31T21:33:33Z,"Love 'em or hate 'em, WordPress uses lots of constants.  As a result, this pattern is all over core and plugins, and occasionally themes:

`if ( defined( 'CONSTANT_NAME' ) && CONSTANT_NAME )`

Right now on trunk, it's used 57 times (excluding 2 in Akismet).

{{{
~/code/wptrunk $ ack ""defined\( ?('|\"")([^'\""]+)\1 ?\) \&\& \2"" -h --ignore-dir=wp-content/plugins/ | wc -l
      57
}}}

How about a new function to make that verbose logic a little bit less repetitive.

{{{
function wp_constant( $constant ) {
	return defined( $constant ) && constant( $constant );
}
}}}",evansolomon
Has Patch / Needs Testing,16973,Introduce get_multipage_link(),,General,,normal,normal,Future Release,enhancement,new,has-patch,2011-03-26T16:11:43Z,2012-09-15T14:25:39Z,"There currently is no function for retrieving the URL to a multipage part (a page with {{{<!--nextpage-->}}}).

The code is burried in a private helper function.

Let's bring it to light.",scribu
Has Patch / Needs Testing,19200,Introduce themes_url() and upload_url(),,General,,normal,normal,Future Release,enhancement,new,has-patch,2011-11-07T21:01:46Z,2012-09-22T14:26:12Z,"WordPress has some very usefull '''url tempalate tags''' in the ''wp-includes/link-template.php'' file, functions like:

{{{
home_url()      =>  ../
site_url()      =>  ../
admin_url()     =>  ../wp-admin/
includes_url()  =>  ../wp-includes/
content_url()   =>  ../wp-content/
plugins_url()   =>  ../wp-content/plugins/
}}}

we need 2 more functions:

{{{
themes_url()    =>  ../wp-content/themes/
upload_url()    =>  ../wp-content/upload/
}}}

they will make developers life easier.",ramiy
Has Patch / Needs Testing,21073,Main functions file (/wp-includes/functions.php) could use a coding standards cleanup,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-26T03:04:21Z,2012-06-26T03:04:21Z,"[http://core.trac.wordpress.org/browser/trunk/wp-includes/functions.php?rev=21113 This file] is very inconsistent in its coding standards, and as a result is difficult to read.

I had to find a couple things in here recently; after some frustration in reading the different styles I decided to take a pass at refreshing it.",evansolomon
Has Patch / Needs Testing,21119,Make WP_User_Query::prepare_query() public,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-30T07:57:47Z,2012-06-30T07:59:30Z,"WP_User_Query tries to follow the pattern from WP_Query, where if you don't pass any args, it won't run the query.

The problem is that you can't do anything with that instance afterwards; both prepare_query() and query() accept no parameters.",scribu
Has Patch / Needs Testing,18746,Make is_tag() accept a term name or term id,,General,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-22T13:05:15Z,2011-09-22T13:52:36Z,"The ''is_category()'' function recieves as a parameter Category ID, Category Name or Category Slug.

So is the ''is_tax()'' function, it recieves as a parameter Term ID, Term Name or Term Slug.

But the ''is_tag()'' function can recieve only Tag Slug.",ramiy
Has Patch / Needs Testing,16908,Normalize remove_accents() data,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-20T22:54:24Z,2011-09-10T22:25:30Z,"The remove_accents() functions contains the translitaration data in diverse formats. To normalize the code, a format of arrays containing key=>value replacements where the string value of key transposes into the string value of value.

That's already common for a large part of the function.",hakre
Has Patch / Needs Testing,22330,Optimize regexes to remove protocol from URL,,General,3.4.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-10-31T09:30:48Z,2012-10-31T09:30:48Z,"Regexes used to chop off the protocol of a URL should be anchored to the start of the string.

1. The regex fails faster and thus avoid useless work. No need to look further down the URL for strings like `""http://""`.
2. The regex should not alter any URLs that might be contained in the query string.",GeertDD
Has Patch / Needs Testing,16903,PHP5-Port - Superfluous code in _deep_replace(),,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-20T16:44:21Z,2011-03-20T21:47:44Z,"Since PHP 5.0.0 the count parameter was added, see [http://www.php.net/manual/en/function.str-replace.php str_replace].

(in earlier PHP 4.x versions, arrays were already supported)",hakre
Has Patch / Needs Testing,16756,PHP5-port - Access Violations on wpdb::$prefix,,General,3.1,normal,normal,Awaiting Review,enhancement,reviewing,has-patch,2011-03-05T12:01:09Z,2011-03-08T21:46:30Z,"The to be accessed privately member {{{wpdb::$prefix}}} is accessed publicly in multiple places.

This ''would'' do fatal errors ''if'' the property would be ported to PHP 5 ''with the documented behavior''.

The errorneous usage in the places in question ''might'' reveal that implementation details were missed because the prefix can differ on multi-site setups which is not technically guaranteed when accessing the private member.

The private member was only used ""read-only"" inside the class. Probably this is a documentation issue. It's set {{{set_prefix()}}} and {{{set_blog_id()}}} functions (only) and always to the result of {{{wpdb::get_blog_prefix()}}}.",hakre
Has Patch / Needs Testing,16753,PHP5-port - microtime() use,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-05T10:27:41Z,2011-03-08T21:31:20Z,"See [http://www.php.net/manual/en/function.microtime.php microtime()] for details.

In microtime() related code [http://www.php.net/manual/en/function.uniqid.php uniqid()] with more entropy does not need a prefix. And there is no need to seed the random number generator. See [http://www.php.net/manual/en/function.srand.php srand()] for details.",hakre
Has Patch / Needs Testing,16758,PHP5-port - move of wpdb::check_database_version(),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-05T14:04:56Z,2011-03-05T14:04:56Z,"The function {{{wpdb::check_database_version()}}} is doing a check of the database version against a needed database version. The database server version is returned from $this->db_version(), the required database version is in a global variable called `$required_mysql_version`.

This keeps the database code coupled to the global variable while the class is made to be replaced, e.g. for other database abstractions (compare #14508 which is made for ''extends wpdb''). Normally the database class is a singleton in a global variable already.

Therefore this mixes global with local space twice. I suggest to de-couple wpdb a bit from that hardencoded global variable name and move the code out of the wpdb class into that alread existing global function called wp_check_mysql_version().

This should make the database interface a bit more lightweight which could be a benefit when porting to PHP5.

",hakre
Has Patch / Needs Testing,16754,PHP5-port - srand(),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-05T10:42:18Z,2011-10-19T01:16:20Z,"No need to seed the random number generator.

See [http://www.php.net/manual/en/function.srand.php srand()] for details.

Related: #16753",hakre
Has Patch / Needs Testing,13937,Pass named arguments to add_meta_box(),,General,,normal,minor,Future Release,enhancement,new,has-patch,2010-06-17T06:18:33Z,2012-10-04T16:04:18Z,"add_meta_box() currently takes 7 arguments!

It should accept an associative array of arguments instead. Advantages:

 * more readable code
 * easier to deprecate arguments in the future",scribu
Has Patch / Needs Testing,21364,Pass post type to count_user_posts(),,General,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-24T08:22:14Z,2012-07-25T12:26:04Z,"Add $post_type argument to count_user_posts(). Defaults to 'post', as it is hard-coded now.",Caspie
Has Patch / Needs Testing,20513,Refactor $wp_scripts init checking code,,General,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-22T15:15:36Z,2012-04-24T09:56:05Z,"The functions in [http://core.trac.wordpress.org/browser/trunk/wp-includes/functions.wp-scripts.php functions.wp-scripts.php] seem to contain a lot of duplicate code in terms of checking and initializing the global `$wp_scripts` in each function.

Attached is rough first pass at creating a function to do this. I expect aspects of it could be done better.

I've included the first argument, to avoid relying on a global so that the function might be unit tested (pass something in, see what gets returned).",GaryJ
Has Patch / Needs Testing,19367,Remove unused _relocate_children(),,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-11-26T23:23:51Z,2012-03-24T14:30:12Z,It's from the days of negative post ids. Some history: #9471,scribu
Has Patch / Needs Testing,14657,Resync Boolean Type Case,,General,,normal,trivial,Future Release,enhancement,assigned,has-patch,2010-08-20T15:09:54Z,2012-06-28T13:44:30Z,"TRUE to true and FALSE to false.

It seems patches weren't inline with the lowercase usage of the boolean type. Depends on programmer preference.",jacobsantos
Has Patch / Needs Testing,15811,Self-referrent links should be made avoidable in wp_list_pages / wp_page_menu,,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-12-14T14:43:43Z,2011-01-15T04:55:31Z,"Having a page that links to itself is a well-recognized usability and accessibility problem.

Currently, wp_list_pages and wp_page_menu don't offer an option to avoid self-referrent links.

The patch attached to this report adds a ""self_link"" parameter to these two functions (defaulting to the current behaviour); when that parameter is set to false, the markup produced by these functions don't include a link to the current page.

Someone proposed a plugin to that effect:
http://clockinfo.com/posts/168
but it sounds like something that the core Wordpress should support.",lewebmobile
Has Patch / Needs Testing,17619,Soft 404 at /wp-content/plugins/,,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-05-30T16:31:30Z,2011-08-17T00:51:19Z,"/wp-content/plugins/index.php would be better written with a proper 404.

{{{
<?php
header('HTTP/1.0 404 Not Found'); // Silence is golden.
?>
}}}",miqrogroove
Has Patch / Needs Testing,23505,Some files still have closing PHP tags,,General,3.4,lowest,trivial,Awaiting Review,enhancement,new,has-patch,2013-02-18T23:33:19Z,2013-05-14T15:36:25Z,"[19712] removed EOF `?>` from nearly all the files, including `wp-content/index.php`: [[BR]]
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-content/index.php

In a couple of files, however, it's still there, which doesn't seem intentional: [[BR]]
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-content/plugins/index.php [[BR]]
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-content/themes/index.php

We should probably make the same change there for consistency.",SergeyBiryukov
Has Patch / Needs Testing,16471,Support default values for non-existant query vars in get_query_var() et al,,General,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-02-06T15:48:58Z,2011-03-07T02:43:46Z,"When using {{{get_query_var($var)}}} or {{{$GLOBALS['wp']->get($var)}}} and {{{$var}}} is the name of an unexistant query variable, those functions will return an empty string.

Next to that there is no function that provides information about whether or not a specific query variable has been set.

I therefore suggest to make both functions able to optionally return a chooseable default fallback value then the empty string we have.",hakre
Has Patch / Needs Testing,16914,Updated List of HTTP status codes for wp_header_to_desc (2),,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-21T12:54:46Z,2011-12-18T20:03:45Z,"http://www.iana.org/assignments/http-status-codes

Hypertext Transfer Protocol (HTTP) Status Code Registry 

(last updated 2010-11-05)

Related: #9297",hakre
Has Patch / Needs Testing,22234,"Use access modifiers in classes, not the var keyword",,General,1.5,normal,normal,Future Release,enhancement,new,has-patch,2012-10-20T21:23:39Z,2013-05-14T13:48:15Z,"The minimum required PHP version is 5.2.4. The {{{var}}} keyword is a relic of PHP 4. Let us open our hymnals to php.net:

  Note: The PHP 4 method of declaring a variable with the var keyword is still supported for compatibility reasons (as a synonym for the public keyword). In PHP 5 before 5.1.3, its usage would generate an E_STRICT warning.

PHP 5 has much better support for OO features like access modifiers in classes. WP also has a history of including PHPDoc blocks with code and using the {{{@access}}} tag. However, the tag is meaningless if it doesn't match the supplied access modifier.

PHPDoc blocks are present 1) for inline documentation, sure but mainly 2) to allow automatic generation of documentation when used with a command-line tool like phpDocumentor or (IMO, the far superior) ApiGen.

If I specify the following:

{{{
/**
 * @access private
 */
var $prop;
}}}

{{{$prop}}} will appear in the documentation as {{{public}}} because {{{var}}} means {{{public}}}. 

I have modified class properties throughout the codebase to use access modifiers instead of var. 

* If no PHPDoc was present, I made the property public, which it already was. 
* If the {{{@access}}} tag was present, I used its value for the property. 
* I then ran Unit Tests which produced some immediate fatal errors do to existing core code that was trying to access properties in a public way that had {{{@access}}} set to private. 
* I altered those properties to indeed be public and updated the PHPDoc",wonderboymusic
Has Patch / Needs Testing,20352,Use str_getcsv() to parse search terms in WP_Query,,General,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-04-03T23:05:25Z,2012-04-04T01:39:31Z,"We use an [http://core.trac.wordpress.org/browser/tags/3.3.1/wp-includes/query.php#L2183 ugly regex] to split search terms like these:

{{{
term1 term2 ""exact match""
}}}

We could use str_getcsv() instead, for better readability.",scribu
Has Patch / Needs Testing,18817,WP_List_Table nonce output moved to its own method,,General,3.2.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-09-29T17:55:33Z,2012-03-20T19:32:43Z,"A quick little patch to move the nonce field generation and output to its own field.  I ran across a need for this when implementing the class on a postmeta box on the post edit screen.  Both the post edit form and the WP_List_Table class were outputting a nonce field using the name ""_wpnonce"".  Upon submission this was prohibiting the post from saving.

I had to override the entire display_tablenav method whereas if the output of the nonce was its own method, I could override it there and change the name of the field it was outputting.",bigdawggi
Has Patch / Needs Testing,22470,WP_Scripts: output script element only if src not empty,,General,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-11-16T00:36:50Z,2012-11-16T00:36:50Z,"I was able to make async JavaScript loading work with existing !WordPress code by acting on the script_loader_src filter before the `<script>` element is output, returning an empty string. This results in an empty src attribute, creating technically invalid HTML while not immediately loading the external script. If the !WordPress code could check if a non-empty `$src` string exists before outputting I could avoid the invalid HTML nag. Attached diff only outputs the `<script src="""">` element if `$src` is not an empty string.

I'd like to be able to asynchronously load an enqueued script without needing to completely rework `WP_Scripts`. I'd like to take advantage of common handles indicating a script is set to be loaded, extra data attached to a handle, and other !WordPress script expectations while swapping out the `<script src="""">` echoed markup.

Why async? A script steps out of the way, offering progressive enhancement of the page or loading non-critical features such as stats or socal network sharing buttons. Async loading also helps prevent single points of failure in webpage loading caused by China blocking Facebook or resources hosted at Amazon Web Services going offline for a few hours.

* [http://www.stevesouders.com/blog/2012/01/13/javascript-performance/ Some info from Steve Souders] showing a 31% increase in load times.
* [https://developers.google.com/analytics/devguides/collection/gajs/ Google Analytics use case]
* [https://developers.facebook.com/docs/reference/javascript/#loading Facebook JavaScript SDK use case]",niallkennedy
Has Patch / Needs Testing,19742,WP_Styles should pass more info to the filter,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-04T21:49:30Z,2012-12-11T23:44:10Z,"Currently, if your working with wp_enqueue_style(), it's not easy to customize the output of the link element.

The current filter passes the full html along with the style handle. This isn't enough information if you're trying to rebuild the link element.

I'm currently changing rel=""stylesheet"" to rel=""stylesheet/less"" for lesscss suport. I'm currently able to achieve this, but I have to know the style handle.

This patch adds a third param which contains all of the style data available for that style.",ptahdunbar
Has Patch / Needs Testing,19211,WordPress should be properly capitalized in the HTML title,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-08T23:49:59Z,2011-11-09T04:59:43Z,"The HTML title element doesn't get properly capitalized P's, only the post title does.

For example: http://gigaom.com/2011/11/08/wordpress-founder-matt-mullenweg-to-speak-at-roadmap/",evansolomon
Has Patch / Needs Testing,23454,_deprecated_function Messages,,General,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-12T11:20:39Z,2013-04-01T09:28:58Z,"Unlike ''_deprecated_file'' and ''_deprecated_argument'', the ''_deprecated_function'' function has no option to append a message to the triggered notice.

I propose adding this to make it consistant with the other 2 functions. Patch to follow.",mikejolley
Has Patch / Needs Testing,16875,auth_redirect() minor code change,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-17T15:48:26Z,2011-03-17T15:48:26Z,While looking into #16858 I stumbled over some is_ssl() related code in auth_redirect(). Just a minor rewrite of the code to make it easier to read.,hakre
Has Patch / Needs Testing,11598,code improvements in wp_:dashboard_plugins_output(),,General,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-24T14:19:54Z,2010-10-28T11:36:02Z,"Smaller code changes to improve the function. Stumbeled over this while digging into #11597 and #11518.

",hakre
Has Patch / Needs Testing,16745,doubled replace in setup_postdata,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-04T11:36:53Z,2011-03-23T14:12:14Z,One less to go. Could be array'ed as well. Found in http://wordpress.stackexchange.com/questions/8031/is-it-necessary-to-use-wp-reset-query-in-a-wp-query-call,hakre
Has Patch / Needs Testing,22300,enhance urlencode_deep(),,General,3.4,normal,normal,Future Release,enhancement,new,has-patch,2012-10-28T14:53:43Z,2012-11-13T01:13:53Z,It would be handy if urlencode_deep() handled objects as well as arrays. Patch includes corresponding urldecode_deep(),wpmuguru
Has Patch / Needs Testing,21596,enhance wp_get_archives to support post types,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-15T18:13:53Z,2013-05-07T19:05:42Z,"I needed to populate an option list of a form with the titles of custom post types. It seemed like wp_get_archives would do the trick, except there was no way to tell it to grab a post_type. So I enhanced wp_get_archives to support and additional parameter.",jjminkle
Has Patch / Needs Testing,18613,get_adjacent_post() doesn't find private posts,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-07T15:52:25Z,2011-11-16T00:49:50Z,The status is always 'publish'.,scribu
Has Patch / Needs Testing,13771,get_the_date() to accept optional $post argument,,General,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-06-07T17:24:33Z,2012-10-10T21:14:09Z,Currently the get_the_date() function only utilizes the global $post.  Allowing this function to accept an optional $post object as an argument would be beneficial for getting the formatted date of any post.,bigdawggi
Has Patch / Needs Testing,16781,is_wp_error() simplification,,General,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-03-07T00:20:17Z,2011-03-09T18:18:46Z,"please review. see #2600, [3667], [http://php.net/manual/en/function.is-a.php is_a()], [http://www.php.net/manual/en/function.is-subclass-of.php is_subclass_of()]",hakre
Has Patch / Needs Testing,16938,list_files() refactoring,,General,3.1,low,normal,Future Release,enhancement,reviewing,close,2011-03-22T21:08:35Z,2011-03-23T19:34:13Z,I was taking a look into list_files(). I've seen that older code (Related: #16937) that's handling false and then false again and so on which can be just reduced + some clean-ups.,hakre
Has Patch / Needs Testing,17856,magic_quotes_gpc future-proof enhancements,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-06-21T01:13:44Z,2012-10-31T03:23:05Z,"As is well documented across the Internet, the magic_quotes_gpc feature is going away in future versions of PHP.  WordPress has historically automatically escaped _GET, _POST, _REQUEST and _COOKIE input from users, even if the server doesn't have magic_quotes_gpc turned on.  Regardless of the reasons for this, having a way to move forward seems absolutely necessary.

Current issues related to this include (among others):

* maintaining backwards compatibility for those plugin developers who depend on WordPress handling this escaping for them
* giving plugin developers a way to help put magic_quotes_gpc in the past
* giving developers access to the original super globals
* making these super global values read-only so that poorly written plugins/themes don't cause conflicts and problems for other plugins/themes

----

Attached is a patch which I believe handles this effectively without causing any backwards compatibility issues.

This patch introduces 5 new getter functions for wordpress:

* wp_input_get()
* wp_input_post()
* wp_input_get_post()
* wp_input_cookie()
* wp_input_server()

When WordPress first loads, these 5 functions grab the original copies of their respective super globals, undo magic_quotes if it's turned on and then makes the values accessible in a read-only way.

Moving forward, plugin developers can be encouraged to use, for example, wp_input_get('name') rather than $_GET['name'] .  In addition to giving developers a migration path away from the forced magic_quotes_gpc behavior, additional security filters could be done on the given values for further protection.",troydavisson
Has Patch / Needs Testing,21243,move password hint text to a function,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-12T16:56:24Z,2012-07-16T02:52:21Z,"The password hint text, noted below, is hard coded in four places:

{{{
wp-admin/install.php
wp-admin/user-edit.php
wp-admin/user-new.php
wp-login.php
}}}

{{{
Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! "" ? $ % ^ &amp; ).
}}}

This approach is prone to mistakes when changes are made.  In addition, plugins that want to override the text need to use the resource intensive and clumsy gettext filter.

Per nacin and westi, the attached patch moves the text to a function ({{{wp_password_hint()}}}) in {{{wp-includes/user.php}}} and adds a filter ({{{password_hint}}}).",convissor
Has Patch / Needs Testing,13592,script_loader_src and style_loader_tag filters,,General,,normal,normal,Future Release,enhancement,new,has-patch,2010-05-28T09:40:07Z,2013-02-07T21:53:06Z,"i'm trying to build a scripts and styles minifier.
( i don't like the way wp-minify does it ... )

thanks to the style_loader_tag filters, i'm pretty proud of my work for stylesheets.

but why don't we have a script_loader_tag ?

something like this in class.wp-scripts.php : 
{{{
   $src .= apply_filters( 'script_loader_tag', ""<script type='text/javascript' src='$src'></script>\n"", $handle );
}}}


ok i'll try to submit a real patch.
",olivM
Has Patch / Needs Testing,18518,suggest.js: don't store the URL in the options object,,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-25T20:35:21Z,2011-11-16T00:51:03Z,"...because it prevents re-using the same instance for different URLs:

{{{
var suggest_args = {
	multiple     : true,
	delimiter    : ',',
	resultsClass : 'qc-suggest-results',
	selectClass  : 'qc-suggest-over',
	matchClass   : 'qc-suggest-match',
};

$( '#ticket-assign input' ).suggest( QC_L10N.ajaxurl + '?action=qc-user-search', suggest_args );

$( '#ticket-tags input' ).suggest( QC_L10N.ajaxurl + '?action=ajax-tag-search&tax=post_tag', suggest_args );
}}}

With the above code, both inputs will look for items in the same URL: the second one.

Attached patch fixes this.",scribu
Has Patch / Needs Testing,19572,switch_to_post() stack implementation (similar to switch_to_blog()),,General,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-12-15T21:54:57Z,2012-01-23T20:21:14Z,"One of the challenges themes and plugins have is the balance between utilizing the core APIs that rely on global variables, while leaving things in a ""clean"" state for the next worker in the chain.

For example, I might have a shortcode that pulls content from another post, outputs a title or some other data, then needs to restore the previous post environment. The attached patch provides APIs for doing just this - using the same stack approach that switch_to_blog() takes in a multi-site instance.

To set up a post context, call: switch_to_post($post_id);

This can be called multiple times, diving deeper into the stack. Then each process is responsible for restoring the $post context by calling: restore_post();

This goes back to the stack, bumps out the current post and restores the previous post's context.

There is some test code for demonstration here:

https://gist.github.com/1309915",alexkingorg
Has Patch / Needs Testing,19097,use wp_register() in wp-login.php,,General,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-31T17:35:15Z,2012-10-01T00:33:09Z,"wp_register() calls a filter to change the registration link, but wp-login.php still has the link hardcoded to the default link.
",linuxarchitect
Has Patch / Needs Testing,21435,wp-includes/comment.php line85 causes slow query due to the non-indexed column,,General,3.4.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-08-01T00:31:47Z,2012-08-01T00:31:47Z,"Following query is causes slow query if  the wp_comment table is huge.
{{{
$ok_to_comment = $wpdb->get_var(""SELECT comment_approved FROM $wpdb->comments WHERE comment_author = '$author' AND comment_author_email = '$email' and comment_approved = '1' LIMIT 1"");                                                         
}}}

In my case, I have 600 thousand records in the wp_comments table and the query takes over 10 minutes to complete.

http://matsu.teraren.com/blog/wp-content/uploads/2012/08/a40b1291fd99413dc3057fbe0b792a93.png

To fix this issue, I added index on my running wordpress and returns 0.00sec.

I'll attach the patch for create table file.
",matsubobo
Has Patch / Needs Testing,14760,wp_get_shortlink not working on pages,,General,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-09-02T11:07:42Z,2011-08-16T18:46:32Z,"wp_get_shortlink doesn't return anything on pages.

reason:


{{{
2196   if ( isset($post->post_type) && 'post' == $post->post_type )
2197         $shortlink = home_url('?p=' . $post->ID);
}}}
",mattsay
Has Patch / Needs Testing,20359,wp_list_categories - Diff to make use_desc_for_title parameter more flexible,,General,2.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-04-04T22:57:44Z,2012-04-05T12:58:17Z,"Right now, the @use_desc_for_title is defined as a boolean parameter which outputs category link title attributes containing either:
- Category descriptions by default (''bool '''1''''');[[BR]]
- 'View all posts filed under [category-name]'.[[BR]]
Now, since the title attribute is not required for '''<a>''' tags in any HTML spec, I made a patch to turn this parameter into a string, with the following supported values:[[BR]]
- 'desc' => (default) Outputs category descriptions;[[BR]]
- 'viewall' => Same output as ''bool '''0''''' (''false'') before: 'View all posts filed under [category-name]';[[BR]]
- 'none' => Does not output any title attributes.[[BR]]

I have tested this thoroughly, but additional testing would not hurt.",Marventus
Has Patch / Needs Testing,16895,wp_list_pluck cannot be used with arrays of references,,General,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-19T11:47:37Z,2011-03-22T16:54:44Z,"Example code:

{{{
$one = array('num' => 1);
$two = array('num' => 2);
$input = array( &$one, &$two );

$nums = wp_list_pluck($input, 'num');

var_dump($nums, $input);
}}}

Example output:
{{{
array
  0 => &int 1
  1 => &int 2
array
  0 => &int 1
  1 => &int 2
}}}
Expected output:
{{{
array
  0 => int 1
  1 => int 2
array
  0 => &
    array
      'num' => int 1
  1 => &
    array
      'num' => int 2
}}}

This is caused by wp_list_pluck using the same variable name for the input array, and then overwriting it for the return.

One such real life example, is $wp_query->comments

See patch",dd32
Has Patch / Needs Testing,12955,Add get_post filter,,General,,normal,normal,Future Release,feature request,new,has-patch,2010-04-10T13:50:07Z,2011-12-01T19:18:07Z,This patch filters the return value of the get_post() function. I would find this very helpful for a plugin I'm developing.,JohnLamansky
Has Patch / Needs Testing,18729,No HTML Classes/IDs Associated With get_the_password_form() Output,,General,3.2.1,normal,normal,Awaiting Review,feature request,new,has-patch,2011-09-21T10:11:35Z,2011-09-28T06:08:31Z,"Currently get_the_password_form() outputs a password form that offers no HTML classes or IDs for proper styling:

{{{
/**
 * Retrieve protected post password form content.
 *
 * @since 1.0.0
 * @uses apply_filters() Calls 'the_password_form' filter on output.
 *
 * @return string HTML content for password form for password protected post.
 */
function get_the_password_form() {
	global $post;
	$label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID);
	$output = '<form action=""' . get_option('siteurl') . '/wp-pass.php"" method=""post"">
	<p>' . __(""This post is password protected. To view it please enter your password below:"") . '</p>
	<p><label for=""' . $label . '"">' . __(""Password:"") . ' <input name=""post_password"" id=""' . $label . '"" type=""password"" size=""20"" /></label> <input type=""submit"" name=""Submit"" value=""' . esc_attr__(""Submit"") . '"" /></p>
	</form>
	';
	return apply_filters('the_password_form', $output);
}
}}}

It would be quite useful to add classes to the form and input elements in this output so that we can properly style the password form without having to filter the output in, for example, a theme's functions.php file.
",philiparthurmoore
Has Patch / Needs Testing,21195,get_avatar_url,,General,2.5,normal,normal,Awaiting Review,feature request,new,has-patch,2012-07-08T18:51:40Z,2013-03-13T00:01:16Z,"There should be a separate function to just get an avatar URL, versus getting the image wrapped in an <img> tag. This function should pass the avatar URL through a filter before returning it.
'''get_avatar''' would then call this function, rather than generating a Gravatar URL on its own.


This way, a plugin can grab a user's avatar image without relying on regex to extract the image from the <img> tag, and in a way that is compatible with plugins that replace Gravatar.",pathawks
Has Patch / Needs Testing,20241,make it possible for plugins to activate other plugins,,General,,normal,normal,Awaiting Review,feature request,new,has-patch,2012-03-15T12:48:59Z,2012-06-30T11:36:05Z,"When creating a plugin that depends on other plugins, i would like to enable those plugins during activation of the main plugin.

This is currently not possible, as updates to active_plugins done by the other plugins get overwritten.

Please apply the attached patch to fix this.",magnus78
Has Patch / Needs Testing,16890,Mutliple Location response headers can trigger notices,,HTTP,,normal,normal,Awaiting Review,defect,new,has-patch,2011-03-18T17:08:33Z,2011-03-18T22:42:40Z,"The current implementation for manual cUrl redirects (safemode / openbasedir restrictions, see #11305) will do notices and fail if a response contains more than one location response header.

Technically this is possible.

In the RFC I have not found any definition so far wether or not this is violating any standard or not not. Next to that I could gather no information how a HTTP client should interprete such a response.

For my fix I will prefer the first location header over any additional one.",hakre
Has Patch / Needs Testing,13909,HTTP redirect should return a hypertext fragment,,HTTP,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-15T19:15:36Z,2010-06-26T02:55:59Z,"When !WordPress redirects via the API ({{{wp_redirect}}}), a useragent which does not automatically redirect (e.g. configuration because of usability or security considerations), get's a blank page delivered (which is of no use for the user). This is because only HTTP headers are set for the redirect, but not a HTTP body. Normally Webservers and Webapplications deliver a body as well.

'''Example: Redirect on the google.com domain'''

Command: {{{curl -i http://google.com/}}}

Output:
{{{
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Tue, 15 Jun 2010 18:11:12 GMT
Expires: Thu, 15 Jul 2010 18:11:12 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
X-XSS-Protection: 1; mode=block

<HTML><HEAD><meta http-equiv=""content-type"" content=""text/html;charset=utf-8"">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF=""http://www.google.com/"">here</A>.
</BODY></HTML>
}}}

Redirect of google.com to www.google.com; next to the headers a body is returned (some simple HTML containing the link to the redirected page).

This method is often used as a fall-back for automatic methods — if the visitor's browser does not support the automatic redirect method, the visitor can still reach the target document by following the link. [http://en.wikipedia.org/wiki/URL_redirection#Manual_redirect URL redirection (From Wikipedia, the free encyclopedia)]

'''Example: Redirect on a wordpress domain'''

This is against a trunk version wordpress setup. I made a setup with a domain www.webroot.loc and webroot.loc. The blog is w/o the www. so www.webroot.loc get's redirected to webroot.loc:

Command: {{{curl -i http://www.webroot.loc/wordpress/}}}

Output:
{{{
HTTP/1.1 301 Moved Permanently
Date: Tue, 15 Jun 2010 18:12:38 GMT
Server: Apache
X-Pingback: http://webroot.loc/wordpress/xmlrpc.php
Location: http://webroot.loc/wordpress/
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
}}}

There is no http body in the response.

To increase the overall usability of wordpress a body should returned as well.",hakre
Has Patch / Needs Testing,24156,If you submit file through wp curl it doesnt send boundary params for file mutlipart,,HTTP,3.5.1,normal,major,Awaiting Review,defect (bug),new,has-patch,2013-04-22T15:38:12Z,2013-04-25T14:05:33Z,"If you submit file through wp curl it doesnt send boundary params for file multipart, because in class-http.php at line 174 `$r['body']` array is converted to string:
{{{
$r['body'] = http_build_query( $r['body'], null, '&' );
}}}

And curl wants array to send file boundary to rest api , in that case it fails. 
ex.
{{{
$headers['Content-type'] = 'multipart/form-data';   
$args['file'] = '@/pathtofile';
$request = new WP_Http;
$result = $request->request($url,$args);
}}}
Let me know if you have questions ",samnani
Has Patch / Needs Testing,11888,The streams & fopen HTTP transport arn't sending headers that are passed to it,,HTTP,2.9.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-01-13T20:01:41Z,2012-06-05T13:09:20Z,"In particular, cookie headers. Related php bugs:

http://bugs.php.net/bug.php?id=41051

http://bugs.php.net/bug.php?id=45092

Based on the second PHP ticket, this would affect systems up to PHP 5.2.9.

I tried to replace $strHeaders with an $arrHeaders array based on the discussions in the second ticket, but it didn't make the slightest difference.

I'm running out of ideas, too...",Denis-de-Bernardy
Has Patch / Needs Testing,23463,WP_HTTP  HTTP/1.1 needs to send Connection Close + support Transfer-encoding better,,HTTP,,normal,normal,Future Release,defect (bug),new,has-patch,2013-02-13T06:15:45Z,2013-02-13T06:15:45Z,"WP_HTTP accepts a 'httpversion' argument, and supports some functions of it (such as Transfer-encoding).

However, there are 2 things which are rather broken
1. It doesn't send a `Connection: close` header, so the connection is held open and WP_HTTP never returns
1. Transfer-Encoding: chunked appears to be rather broken, causing it to returning the end of the document rather than the decoded document.

The attached patch goes some of the way towards making that work better, but is mostly untested, and could do with a unit test or two.",dd32
Has Patch / Needs Testing,9072,New Socket HTTP transport to use stream_socket_client,,HTTP,,normal,normal,Future Release,enhancement,assigned,has-patch,2009-02-09T05:45:50Z,2012-06-28T13:43:20Z,"Steams use of stream_socket_client:
 * Support SSL.
 * Better support for non-blocking.
 * Damn sexy.",jacobsantos
Has Patch / Needs Testing,21523,Add additional escaping to credit.php,,Help/About,3.4.1,normal,normal,Future Release,enhancement,new,has-patch,2012-08-09T01:13:41Z,2012-11-07T20:16:49Z,"`/wp-admin/credits.php` doesn't fully escape all of the data that it displays. It should be properly escaped like any other third party data.

What if WordPress.org were somehow compromised?",Viper007Bond
Has Patch / Needs Testing,20661,Add help text for search usage in Multisite User browsing,,Help/About,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-05-11T18:32:34Z,2012-05-12T04:40:21Z,"Search on the Network Users page defaults to wildcards disabled by default. This may not be expected functionality by a lot of end users, so I think some notes on how to use search should help.

Related: #20135",ericlewis
Has Patch / Needs Testing,21273,Automatically open help panel,,Help/About,,normal,trivial,Future Release,enhancement,new,has-patch,2012-07-14T19:04:20Z,2012-10-30T17:32:36Z,"The help screen is highly inaccessible. Developers are not able to link to content in the help panels if you need to point users to specific directions for your plugin.

This patch is a quick stab at it to see if it's worth while.

What it does it allow direct links to the help panel. Upon pageload, it'll automagically open up to the correct panel.

Usage:
1. Install the patch
2. Click http://wordpress.dev/wp-admin/index.php#tab-panel-help-layout

Again, this is a quick stab. The concept could definitely be improve/abstracted and DRYed up.

Let me know your thoughts :-)",ptahdunbar
Has Patch / Needs Testing,21341,Explain Site and User count update frequency in Network Admin contextual help,,Help/About,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-07-22T01:03:00Z,2012-07-22T01:03:00Z,"While adding a bunch of sites to a multisite install today, I noticed for the first time that the counts (option `blog_count`) for sites and users in the Right Now box don't update immediately. I was confused, but then saw [[ticket:15170]] which moved the count update to a twicedaily cron for scalability reasons.

It may be helpful to include this information in the contextual help for others who will find themselves confused. Attached patch is an attempt at that.",jeremyfelt
Has Patch / Needs Testing,23687,Filter Contextual Help Label,,Help/About,3.5,normal,normal,Awaiting Review,enhancement,new,close,2013-03-04T11:54:04Z,2013-03-04T17:40:07Z,"The contextual help feature is a great way to add help to themes and Plugins. However, we often find that our theme/Plugin users do not even notice the generic 'Help' button on the top right of the admin screen.

It would be useful to be able to customise this label to include the theme/Plugin name so users know this is help specific to that theme/Plugin and not just WordPress generated help.

Currently there is no way to filter the help label. It is fixed to 'Help'. I have included a patch that allows you to filter it to display your own custom help label such as 'Plugin Help', 'Theme Help' etc.

Usage is then:

{{{
function custom_label($label, $screen_id){

	global $options_page_id;
	
	if ($screen_id == $options_page_id)
		$label = __( 'Plugin Help' );

	return $label;
}
add_filter('contextual_help_label', 'custom_label', 10, 2);
}}}
",dgwyer
Has Patch / Needs Testing,16271,Better handling of translating comments notification,,I18N,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-17T17:26:03Z,2011-02-16T06:22:49Z,"Comments...


{{{
Author :
E-mail :
URL    :
Whois  :
Excerpt:
}}}

Pingback...


{{{
Website:
URL    :
}}}

It is not possible to manage translation with the same length of ""Excerpt"" and ""Website"" to have ""URL"" with the same number of spaces (required for ""URL"" which is the same for both types)...

BTW, Why it is ""Excerpt"" when there is the whole text of every comment in notification email?",pavelevap
Has Patch / Needs Testing,19689,Context for Dismiss,,I18N,3.3,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-12-29T20:37:46Z,2012-05-02T16:32:18Z,"In WP 3.3 there are some new occurences for ""Dismiss"". But in some languages there is not one ideal translation for this verb.

1) Dismiss - meaning Close (suitable for Welcome screen, Browser window and Pointers).

2) Dismiss - meaning Cancel or Stop (suitable for uploading media).

I created basic patch to better explain this idea.

I also could not find occurences for Dismiss in async-upload.php and script-loader.php anywhere in administration during upload, but maybe it is related to some special conditions? In which circumstances can users see string Dismiss during uploading media?",pavelevap
Has Patch / Needs Testing,22745,Missing number_format_i18n() on term counts,,I18N,2.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-12-04T23:51:06Z,2012-12-04T23:52:00Z,The `Walker_Category` and `Walker_CategoryDropdown` classes output term counts as-is. They should be wrapped in `number_format_i18n()`.,johnbillion
Has Patch / Needs Testing,17771,URL-encoded comment_author_url gets broken by MySQL varchar 200 length limit,,I18N,3.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-12T03:46:44Z,2012-04-06T11:38:41Z,"!WordPress sometimes pings back with long permalinks that exceed comment_author_url column length limit of 200, which  results in generating unusable broken links to the post. 
It easily reaches to the limit, especially if the permalink contains url-encoded multibyte title as postname. (e.g. 23 characters of UTF-8 Japanese become a 207 characters long url-encoded string. Incomplete url-encoded string may trigger 400 Bad Request too.)

'''Solution:'''
In pingback(), use shortlink instead of regular permalink if the URL is longer than 200 characters.
It seems to work ok with wp.me shortlinks.",tenpura
Has Patch / Needs Testing,23311,Enable internationalization in PHPMailer,,I18N,3.5,normal,minor,Future Release,enhancement,new,has-patch,2013-01-28T16:37:06Z,2013-05-16T12:12:28Z,"Per the discussion in #23291, we should enable PHPMailer's internationalization feature so that any error messages returned by it and displayed to the user will be translated.",iandunn
Has Patch / Needs Testing,7098,Multiple entity codes in POT file for the same character,,I18N,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-06-05T11:33:12Z,2012-01-07T03:27:15Z,"In the wordpress.pot file, two characters are represented by both their numbered and lettered HTML entities.  These are:

'''Em-dash:''' the POT file contains both &#8212; and &mdash;

'''Right angle quote:''' the POT file contains both &#187; and &raquo;

I'm not sure if it matters but it certainly is a little inconsistent.

",leuce
Has Patch / Needs Testing,17128,POMO library performance considerations,,I18N,,normal,normal,Future Release,enhancement,new,has-patch,2011-04-13T20:21:18Z,2012-11-10T07:57:38Z,"Profiling a localized WordPress instance with WPLANG defined as 'de_DE' on my testbed shows that loading the .PO files for WP core and TwentyTen increases the frontend runtime by about 45 percent and the backend runtime by about 30 percent.

This is the profiling environment:

* WordPress 3.2-bleeding r17633
* TwentyTen 1.1
* No active Plugins
* Idling webserver on localhost
* Apache 2.2.9
* PHP 5.2.6
* MySQL 5.0.67
* Xdebug 2.1.1
* webgrind 1.1
* Windows 7 SP1

Without WPLANG defined, runtimes for various code paths are as follows:

* Front page with 10 simple posts: 2300 ms
* Admin Dashboard: 3000 ms
* RSS XML feed output: 1130 ms

With the de_DE l10n in effect, runtimes increase as such:

* Front page with 10 simple posts: 4300 ms
* Admin Dashboard: 4280 ms
* RSS XML feed output: 2950 ms

I wonder whether anyone is able to reproduce this grave performance degradation. A sample output from webgrind showing various POMO functions as the top offenders is attached.
",wet
Has Patch / Needs Testing,16876,"Separate msgid ""Post"" from wp-includes/post.php:1154 for the administration menu and custom menu creation screen",,I18N,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-03-17T15:56:51Z,2011-11-15T00:34:32Z,"Hey! It seems that both the custom menu creation screen and the administration menu bar are using the same translation. Could you please separate them? Here's the relevant bit of tags/3.1/wordpress.pot:


{{{
 2700 #: wp-includes/post.php:1154
 2701 msgctxt ""post type singular name""
 2702 msgid ""Post""
 2703 msgstr """"
 2704 
 2705 #: wp-includes/post.php:1154
 2706 msgctxt ""post type singular name""
 2707 msgid ""Page""
 2708 msgstr """"
}}}



Cheers!
WJ",waclawjacek
Has Patch / Needs Testing,18218,Too many similar translation string,,I18N,3.2.1,normal,normal,Awaiting Review,enhancement,reopened,has-patch,2011-07-22T17:12:26Z,2012-06-06T18:30:59Z,"WordPress .po/.mo file is too big (3,312 strings). I know that we can't delete strings '''but''' we can reduce the file size by merging simmilar strings. WordPress has too many simmilar string. English developers don't notice this but non-english translators are frustrated by this when they have to translate the same string in 2 or 3 different variations.

I suggest to merge simmilar strings, this way will achive two things:

1. Smaller .po/.mo files.
1. Easier translation process as there will be less string to translate. I belive 200-300 strings less.

(Check out the bbPress ticket #BB1584 for more information and examples)

Few WordPress examples:

----

'''No login ID submitted'''
* wp-includes/class-pop3.php:168

'''no login ID submitted'''
* wp-includes/class-pop3.php:115

(change n->N)
----

'''You are not allowed to post as this user.'''
* wp-admin/includes/post.php:65

'''You are not allowed to post as this user'''
* wp-includes/class-wp-xmlrpc-server.php:2263

(add '.')
----

'''Log out'''
* wp-includes/general-template.php:189

'''Log Out'''
* wp-includes/admin-bar.php:92
* wp-admin/admin-header.php:165

'''Log out &raquo;'''
* wp-includes/theme-compat/comments.php:73

'''Log out of this account'''
* wp-includes/theme-compat/comments.php:73

(change all to ""Log Out"")
----

'''Log In'''
* wp-includes/general-template.php:261
* wp-login.php:627
* wp-login.php:646
* wp-admin/install.php:144
* wp-admin/install.php:238

'''Log in'''
* wp-includes/general-template.php:187
* wp-login.php:419
* wp-login.php:444
* wp-login.php:475
* wp-login.php:531

(change all to ""Log In"")
----

'''E-mail'''
* wp-includes/theme-compat/comments-popup.php:80
* wp-login.php:520
* wp-admin/user-new.php:229
* wp-admin/user-new.php:291
* wp-admin/comment.php:160
* wp-admin/includes/class-wp-users-list-table.php:165
* wp-admin/includes/template.php:356
* wp-admin/user-edit.php:329

'''Email'''
* wp-includes/comment-template.php:1525

'''E-mail address'''
* wp-admin/options-general.php:104
* wp-admin/options-general.php:123

'''Your E-mail'''
* wp-admin/install.php:128
",ramiy
Has Patch / Needs Testing,21023,Blogger Importer Draft Status not processed correctly,,Import,3.4,normal,normal,WordPress.org,defect (bug),new,has-patch,2012-06-20T09:48:55Z,2012-06-20T14:57:20Z,"The blogger importer is loading all drafts posts as published and/or scheduled.

This is caused by an incorrect schema used in blogger-importer-blogitem.php.

The correct schema is as follows

{{{
define('SIMPLEPIE_NAMESPACE_ATOMPUB', 'http://purl.org/atom/app#');
}}}

Ref:
* http://wordpress.org/support/topic/plugin-blogger-importer-blogger-draft-status-changed-to-published-in-wp
* https://developers.google.com/blogger/docs/1.0/reference#DraftEntries",Workshopshed
Has Patch / Needs Testing,15034,DotClear Importer doesn't work with DotClear version 2.2.x,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2010-10-05T00:28:01Z,2011-01-13T06:33:10Z,"This was reported to me by Benjamin GIGON. He has provided a patch, but I am not able/unsure how to test it.",briancolinger
Has Patch / Needs Testing,21007,Importing omits backslashes,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2012-06-18T08:11:16Z,2012-06-18T12:10:13Z,"If you try to import a previously-exported post containing backslashes, those backslashes will be omitted during the import process.",SeMeKh
Has Patch / Needs Testing,12885,LiveJournal importer uses GMT date/time as local date/time,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2010-04-07T02:07:25Z,2011-01-26T10:29:09Z,"The LiveJournal importer takes a comment's date/timestamp, which is in GMT, and inserts it into the database as the comment's local date/timestamp. In my timezone (U.S. Central, DST), a comment posted at 12:00pm local time (5:00pm GMT) will be imported to the database as having been posted at 5:00pm local time (10:00pm GMT).

I've attached a patch that I've successfully tested on Wordpress 2.9.2, and it appears to be easily ported to trunk. One caveat: it appears that there are two timezone settings in the Wordpress database (timezone_string and gmt_offset), but as my database has no value for gmt_offset, I don't know if I need to account for that, nor can I test that.",kurtmckee
Has Patch / Needs Testing,22171,Merge Blogger Importer description strings,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2012-10-12T00:47:35Z,2012-10-15T06:37:57Z,"In Blogger Importer 0.4, the description strings were:

* ""Import posts, comments, tags, and attachments from a Blogger blog."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.4/blogger-importer.php#L5
* ""Import posts, comments, and users from a Blogger blog."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.4/blogger-importer.php#L914

In Blogger Importer 0.5:
* ""Import posts, comments and tags from a Blogger blog and migrate authors to Wordpress users."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.5/blogger-importer.php#L5
* ""Import categories, posts and comments then maps users from a Blogger blog."" [[BR]]
 http://plugins.trac.wordpress.org/browser/blogger-importer/tags/0.5/blogger-importer.php#L1026

The core still says:
* ""Install the Blogger importer to import posts, comments, and users from a Blogger blog."" [[BR]]
 http://core.trac.wordpress.org/browser/tags/3.4.2/wp-admin/import.php#L35

I guess we should merge the strings or at least fix the capital P.",SergeyBiryukov
Has Patch / Needs Testing,13313,"WP import: ""Upload file and import"" should be deactivated until a filename is entered",,Import,3.0,low,minor,WordPress.org,defect (bug),new,has-patch,2010-05-09T22:10:55Z,2012-10-31T16:15:09Z,"WP import: ""Upload file and import"" should be deactivated until a filename is entered

ENV: WP trunk 3.0-beta2-14526 [[br]]
Mac OS / Firefox 3.6.3

== Additional Details ==

Same issue with wp-admin/media-new.php (browser upload)

",lloydbudd
Has Patch / Needs Testing,21597,WordPress Importer $base_url index failed,,Import,3.4.1,normal,minor,WordPress.org,defect (bug),new,has-patch,2012-08-15T18:30:11Z,2012-09-10T10:03:12Z,"When XRS file without the site url tag is imported, it throws a notice. This patch allow people to upload hand-made and not-attached-to-any-site XRS file.

I came across creating a XRS file to import names of cities from Portugal to a specific custom taxonomy to some sites. This can reflect the necessity of this patch.",lightningspirit
Has Patch / Needs Testing,23276,WordPress Importer: Update existing navs instead of new,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2013-01-23T17:00:06Z,2013-01-25T02:41:23Z,"A possible solution (reuses logic present in the code):
{{{
$menu_item_db_id = (int) $item['post_id'];
$original_object = get_post( $menu_item_db_id );
if ( is_null( $original_object ) )  {

	$post_parent = (int) $item['post_parent'];
	if ( $post_parent ) {
		// if we already know the parent, map it to the new local ID
		if ( isset( $this->processed_posts[$post_parent] ) ) {
			$post_parent = $this->processed_posts[$post_parent];
		// otherwise record the parent for later
		} else {
			$this->post_orphans[intval($post['post_id'])] = $post_parent;
			$post_parent = 0;
		}
	}

	// map the post author
	$author = sanitize_user( $item['post_author'], true );
	if ( isset( $this->author_mapping[$author] ) )
		$author = $this->author_mapping[$author];
	else
		$author = (int) get_current_user_id();

	$postdata = array(
		'import_id' => $item['post_id'],
		'post_author' => $author,
		'post_date' => $item['post_date'],
		'post_date_gmt' => $item['post_date_gmt'],
		'post_content' => $item['post_content'],
		'post_excerpt' => $item['post_excerpt'],
		'post_title' => $item['post_title'],
		'post_status' => $item['status'],
		'post_name' => $item['post_name'],
		'comment_status' => $item['comment_status'],
		'ping_status' => $item['ping_status'],
		'guid' => $item['guid'],
		'post_parent' => $post_parent,
		'menu_order' => $item['menu_order'],
		'post_type' => $item['post_type'],
		'post_password' => $item['post_password']
	);
	$menu_item_db_id = wp_insert_post( $postdata, true );

	if ( is_wp_error( $menu_item_db_id ) ) {
		$post_type_object = get_post_type_object( $item['post_type'] );
		printf( __( 'Failed to import %s “%s”', 'wordpress-importer' ),
			$post_type_object->labels->singular_name, esc_html($item['post_title']) );
		if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
			echo ': ' . $post_id->get_error_message();
		echo '<br />';
	}
}

$id = wp_update_nav_menu_item( $menu_id, $menu_item_db_id, $args );
}}}",WraithKenny
Has Patch / Needs Testing,23275,WordPress Importer: line-ending mismatch corrupts serialized meta,,Import,,normal,normal,WordPress.org,defect (bug),new,has-patch,2013-01-23T16:56:04Z,2013-01-25T02:36:14Z,"A possible solution:
{{{
if ( $key ) {
	// export gets meta straight from the DB so could have a serialized string
	if ( ! $value )
		$value = maybe_unserialize( $meta['value'] );
	// Occationally, line-endings break unserialize()
	if ( empty( $value ) ) // Try normalizing...
		$value = maybe_unserialize( str_replace( array(""\r\n"", ""\r"", ""\n""), ""\r\n"", $meta['value'] ) );
	if ( empty( $value ) ) // Adjust string length if needed
		$value = maybe_unserialize(
			preg_replace( // e flag deprecated in PHP 5.5.0 I think
				'!s:(\d+):""(.*?)"";!se',
				""'s:'.strlen('$2').':\""$2\"";'"",
				$meta['value']
			)
		);

	add_post_meta( $post_id, $key, $value );
	do_action( 'import_post_meta', $post_id, $key, $value );

	// if the post has a featured image, take note of this in case of remap
	if ( '_thumbnail_id' == $key )
		$this->featured_images[$post_id] = (int) $value;
}
}}}",WraithKenny
Has Patch / Needs Testing,15586,"movabletype-importer, trivial: fix no index upload_type warning",,Import,3.1,low,minor,WordPress.org,defect (bug),new,has-patch,2010-11-26T00:43:46Z,2010-12-11T14:06:54Z,"movabletype-importer, trivial: fix no index upload_type warning

ENV: http://plugins.svn.wordpress.org/movabletype-importer/trunk r315664",lloydbudd
Has Patch / Needs Testing,22994,Remove 'blogroll' from the import options,,Import,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-18T17:53:16Z,2012-12-18T20:52:24Z,"Now that we've dropped links (#21307), we shouldn't encourage importing them. It'll just confuse the newbies.

This will require a change to http://api.wordpress.org/core/importers/1.0/, so while we can clean up /wp-admin/includes/import.php (attached) it won't matter till that's scrubbed. Maybe upgrade that to 1.1 so people who are on older WP are left alone?",Ipstenu
Has Patch / Needs Testing,12578,import from movable type doesn't import tags or basename,,Import,3.0,normal,normal,WordPress.org,enhancement,assigned,has-patch,2010-03-11T00:58:46Z,2010-10-30T18:44:26Z,"The current movable type import script doesn't import tags from movable type and it doesn't import the basename (movable type's version of the post_name, which is necessary for a seemless transition). Adding support for importing these two important bits is not terribly difficult and I'm working on improving the import script to aid in my own upcoming migration. I'll attach a patch against the trunk.",stevecrozz
Has Patch / Needs Testing,16460,Category/tag converter should support all public taxonomies,,Import,3.0,normal,normal,WordPress.org,feature request,new,has-patch,2011-02-05T04:56:39Z,2013-01-17T17:09:40Z,"The category to tag converter should let you convert terms to custom taxonomies, if any are defined. I'm attaching a rewrite of the plugin based on 1.5.2, which included support for post formats.",sillybean
Has Patch / Needs Testing,20847,"Documentation references to ""digits"" should be ""characters""",,Inline Docs,,normal,trivial,Awaiting Review,defect (bug),new,has-patch,2012-06-05T14:49:08Z,2012-08-20T21:14:53Z,"Some documentation references to digits should really be called characters, since they refer to parts of a hexadecimal number, and therefore not strictly 0-9 only.",GaryJ
Has Patch / Needs Testing,21864,PHPDoc incorrect with the return value of add_*_meta functions,,Inline Docs,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-09-10T20:54:14Z,2012-09-10T23:37:28Z,"The PHPDocs for `add_comment_meta`, `add_post_meta` and `add_user_meta` all say that they return `true` on success. In fact, each calls `add_metadata`, which returns the metadata_id on success. 

In addition, `update_metadata` currently returns the metadata_id on success if the metadata did not already exist, but true on success if the metadata did already exist (the PHPDoc says simply that it is true on success).

The patch corrects the documentation, and additionally ensures consistency with the return value for `update_metadata`.",mark8barnes
Has Patch / Needs Testing,22573,esc_sql() works with arrays too,,Inline Docs,,low,normal,Awaiting Review,defect (bug),new,has-patch,2012-11-24T14:31:21Z,2012-11-24T17:50:11Z,... but the doc block only says string.,scribu
Has Patch / Needs Testing,23914,Document WP_Dependencies,,Inline Docs,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-31T05:58:42Z,2013-03-31T17:31:49Z,"The code in `wp-includes/class.wp-dependencies.php` needs better documentation. Three confusions in particular:

1. $args has a different meaning in WP_Dependencies and _WP_Dependency. In the first, it is a way to append query strings to the URL's. In the second it is a generic 5th parameter used by the API functions wp_register_*() and wp_enqueue_*(). In class WP_Styles it stands for $media. In class WP_Scripts it stands for $in_footer.

2. `$handle` sometimes means the registered `handle`, and other times means `handle?args`.

3. `$group` stands for page placement in WP_Styles (0=header, 1=footer), and is unused in WP_Scripts (false). But a prominent comment uses the word ""Groups"" to describe something entirely different, a registered item with dependencies but no src. In my proposed documentation I use the word ""Alias"" for this meaning. An example of an alias is in wp-includes/script-loader.php:
{{{
add( 'scriptaculous', false, array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls') );
}}}

Patch attached. No code changes.

An example of contributors not knowing about Confusion 2 is #13078.",kitchin
Has Patch / Needs Testing,19203,Fixed a couple of function descriptions in wp-includes/plugin.php,,Inline Docs,1.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-08T05:53:54Z,2012-09-17T21:28:25Z,"There were a couple of errors I found in the function docblocks while tinkering in the plugins.php file as well as a confusing example, so here's what I fixed:

'''add_filter()''':
It mentioned filters were for modifying ""strings"", which isn't correct since you can also use filters to modify arrays, etc., so I changed the docblock to reflect this.
I also changed the example code to {{{ var_dump($example); }}} instead of {{{ echo $example; }}} since echoing arrays/objects etc. will cause an error.

'''apply_filters()''':
The example code block was confusing since it specified a filter function, but didn't show it being added and then just called apply_filters(), which I didn't notice the relation at first.
I added the {{{add_filter()}}} function in the code example for a clearer example so the reader will better understand the usage of this function.

'''_wp_call_all_hook()''':
A mysterious '''$hook''' parameter was defined in the docblock, however the parameter simply doesn't exist.  Not sure if this was a passing thought or someone falling asleep while writing it, but I've removed it from the docblock.

Thanks!",amereservant
Has Patch / Needs Testing,16750,Improve inline docs for l10n functions,,Inline Docs,3.1,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-03-04T19:22:29Z,2011-07-15T21:43:09Z,"Changes to the inline documentation in WordPress 3.1.

These are documentation changes only.",CharlesClarkson
Has Patch / Needs Testing,23122,inline doc improvements in WP_Filesystem_Direct and WP_List_Table,,Inline Docs,3.5,normal,trivial,Future Release,enhancement,new,has-patch,2013-01-04T17:49:42Z,2013-05-16T12:07:16Z,A pass over `WP_Filesystem_Direct` and `WP_List_Table` classes to improve inline docs. Any suggestions/improvements/critiques are welcomed.,bananastalktome
Has Patch / Needs Testing,15281,Arin whois link is borked,,Mail,,lowest,normal,Future Release,defect (bug),new,has-patch,2010-11-01T21:33:14Z,2011-03-18T20:33:11Z,"http://ws.arin.net/cgi-bin/whois.pl?queryinput=72.233.56.138

I am tempted to propose an api.wordpress.org service, that way these links will never break, but more importantly because arin.net is one of like 7 services based on global regions, and requesting an Asian IP through arin.net doesn't work.

An IP/geo lookup in core would be prohibitive, but if we still want to keep a link (beyond the IP), then we could do this.

On the other hand, IP addresses are becoming less meaningful. Should we just kill the link?",nacin
Has Patch / Needs Testing,12584,Emails from WordPress Admin are html encoded,,Mail,2.9.2,normal,normal,Future Release,defect (bug),new,has-patch,2010-03-11T16:41:17Z,2012-07-03T16:55:00Z,"When a comment form is filled out that contains characters that are candidate for html encoding in the display of the comment on the web site, those comments are also html encoded in the display of the notification email send to the author.

Example comment left on my WordPress install:
Ampersand: &
Quote: ""
Registered: ®

Resulting email notification:
{{{
New comment on your post #168 ""Prevent iTunes from creating unnecessary clutter and cruft""
Author : --
E-mail : --
URL    : 
Whois  : --
Comment: 
Ampersand: &amp;
Quote: ""
Registered: ®
}}}

You can see all comments on this post here: 
http://example.com/prevent-itunes-from-unnecessary-clutter-and-cruft/#comments

Delete it: http://example.com/wp-admin/comment.php?action=cdc&c=xxxx
Spam it: http://example.com/wp-admin/comment.php?action=cdc&dt=spam&c=xxxx

It appears that only the ampersand has this issue.  I am not sure if it also applies to the subject of the email, but can confirm it applies to the body of the email.

The email headers show it was sent as plain text:
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=""UTF-8""",hexley
Has Patch / Needs Testing,15539,wp_mail() should allow using PHPmailer's SMTP feature,,Mail,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2010-11-22T16:51:55Z,2011-02-11T05:46:09Z,"{{{wp_mail()}}} is able to use an already existing instance of PHPmailer. Unfortunately, all settings from the existing instance are then reset.


While this makes sense for things like addresses and subject, it is very bad that {{{$phpmailer->IsMail()}}} is called.

This makes it impossible to create and configure an own instance for usage with a remote MTA.

Possible solutions:

1. Simply omit the call to {{{$phpmailer->IsMail()}}}, as {{{'mail'}}} is already the default value.

2. Move the call of {{{$phpmailer->IsMail()}}} into the {{{if}}} statement at the beginning of the {{{wp_mail()}}} function, so it will only be set if the instance is not set.

3. Add a parameter to the signature of {{{wp_mail()}}} which allows to set the desired MTA backend.
",mastermind
Has Patch / Needs Testing,16995,wp_notify_postauthor() pluggable behavior problem,,Mail,,normal,normal,Future Release,defect (bug),new,has-patch,2011-03-29T18:29:05Z,2011-03-31T04:25:05Z,"In my application  a notification must be issued even when an author comments on their own post; this is not allowed by the default WordPress implementation. Lines 1015 - 1025 in function wp_notify_postauthor reject the author's comments and moderations.
Since wp_notify_postauthor is a pluggable function, I can change this behavior by implementing my own function and replacing the default.

However, there is also a redundant test of post authorship in wp-includes/comment.php, function wp_new_comment, around lines 1344 - 1348. This means that my custom wp_notify_postauthor is never called. My specific problem can be solved by commenting out a line of code:

{{{
// $post = &get_post($commentdata['comment_post_ID']); // Don't notify if it's your own comment
}}}

A real fix for this problem should move all of the user_id validation rules out of wp_new_comment and put them in wp_notify_postauthor where they can be modified as needed.
",dglingren
Has Patch / Needs Testing,18926,Provide with the ability to monitor emailing failures,,Mail,3.2.1,normal,minor,Future Release,enhancement,new,has-patch,2011-10-12T21:11:28Z,2012-02-27T16:18:09Z,"Add an action hook in 'wp-mail' function on catching 'phpmailerException' and before returning 'false'.


This way, a plugin may track all email sending failures.",npetetin
Has Patch / Needs Testing,23291,wp_mail should handle phpmailer exceptions instead of ignoring them,,Mail,3.5,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-01-25T07:04:37Z,2013-03-04T07:12:02Z,"Right now code in wp_mail that call phpmailer looks like

{{{
	try {
		$phpmailer->Send();
	} catch ( phpmailerException $e ) {
		return false;
	}
}}}

or worse (not failing at all).

Yesterday had to hack core files to find out that an email address did not have a valid email format. Exceptions should either propagate in some way, or be reported to an error log.
",mark-k
Has Patch / Needs Testing,18412,"""%20"" in an uploaded image file name breaks thumbnails",,Media,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-15T13:54:48Z,2011-08-17T00:49:37Z,"When uploading an image file where the name contains %20, it will not show thumbnails. It is still possible to edit the image in the image editor, however.",ripperdoc
Has Patch / Needs Testing,17859,Can't attach media to private posts,,Media,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-21T11:54:43Z,2011-06-27T14:58:10Z,"In the Media -page on the WordPress admin, one can attach unattached media to posts and pages.

However, the search does not show private posts, even with the master account.

Reproduce:
1. Upload media
2. Try to attach to a private post or page",knome
Has Patch / Needs Testing,19858,Close comments on attached images,,Media,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2012-01-19T16:03:03Z,2012-08-01T12:46:32Z,"In posts, for gallery images and individual images which open in an attachment page when clicked, the image attachment page does not close comments after the designated xx days as the original post does. 

This creates a pile of spam to manage for users that rely on closed comments after xx days and post lots of images.

You can replicate the problem with these steps:
1) In Discussion Settings: set comments to close after 1 day. 'Automatically close comments on articles older than 1 days'

2)Create a post with publish date 2 days ago. Insert an image or gallery which opens in in an attachment page, not just as the image file.

3) The post will have comments closed.

4) The image attachment page will still have comments open.


Here's a test post of mine. Notice the comments closed on the post but still open for the images.
http://hackhappy.wordpress.com/2012/01/17/image-attachment-comment-test/

Bottom Line: Comments should also close after xx days for image attachments, just as the post does. Users reasonably expect this.

Check the post type for image attachment page. It may be marked as a regular page as pages are not controlled by this setting. 

",dohman
Has Patch / Needs Testing,16106,Error reading EXIF data from uploaded image,,Media,3.0.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-01-05T12:09:50Z,2011-02-14T06:13:22Z,"When the user uploads an image file with EXIF data, that data is saved to the database. exif_read_data() reads the EXIF headers from a JPEG or TIFF image file. This way you can read meta data generated by digital cameras.

In this case the EXIF 'ISOSpeedRatings' key had an array for a value, but a string was expected. So the subsequent trim() call failed.

Patch attached.",4D4M
Has Patch / Needs Testing,22793,Image Editor is jumpy when opening.,,Media,2.9,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-12-06T18:52:37Z,2012-12-06T19:58:08Z,"When clicking Edit Image in the attachment editor, there is a flickering - that is, the new stuff gets added to the page before the old stuff has been completely removed, so there is a fraction of a second when the page gets pushed down.

Simple fix. Patch included ( hopefully i created the patch correctly this time :p )",eddiemoya
Has Patch / Needs Testing,22813,"Media Uploader doesn't escape ""+"" in filenames and doesn't upload file",,Media,3.4.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-12-07T16:02:27Z,2013-04-23T03:48:58Z,"I downloaded a photo this morning with filename `Screenshot+2012-12-07+at+08.55.33.png` — when I upload it in the WordPress media uploader it acts like its uploading (progress bar, crunching) but then shows a broken image as the result.

1. Upload media with ""+"" in filename
2. Observe progress bar uploading and complete the upload

Expected: file is uploaded A-OK to server, attachment created, image loads as expected.

Actual: no file is stored in uploads (or blogs.dir/files) directory, attachment is still created, no error, file does not exist.

FWIW the filename that WordPress expects to have uploaded is `/2012/12/Screenshot+2012-12-07+at+08.55.33-150x150.png`

I'm on Media Temple, running trunk as of this morning. Not sure if a regression, specific to my server configuration, etc. so more testing here would be appreciated.",devinreams
Has Patch / Needs Testing,23292,"Media uploader loads full size image and slows down, please change to thumbnails.",,Media,3.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-25T09:31:11Z,2013-01-25T12:31:37Z,"The media uploader is really slow if you upload 1024 x 768 images, the reason for this is that the preview shows full size images. 

Underneath here is a quick fix to speed up the media uploader to thumbnails.
Please change line 1333 in ""wp-includes/media.php"" from:
{{{
$attachment_url = wp_get_attachment_url( $attachment->ID );
}}}
to:
{{{
$attachment_url = wp_get_attachment_thumb_url($attachment->ID );
}}}",mnrtjeR
Has Patch / Needs Testing,20672,Mime-Type Matching Error With Certain Added Mime-Types,,Media,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-05-14T09:50:10Z,2012-05-14T11:11:54Z,"I think I've found a bug in the handling of post_mime_types with certain legitimate file MIMEs. My suspicion is that the problem is related or similar to that reported in [http://core.trac.wordpress.org/ticket/17855 #Ticket #17855], and apparently fixed in Wordpress v3.2.

The particular problem I've been experiencing only becomes apparent when adding MIME-types to the $post_mime_types array via the ''post_mime_types'' filter hook. For example, the following is a legitimate MIME-type:

''application/vnd.google-earth.kml+xml''

However, if I add the MIME to post_mime_types array with:

{{{
function kml_modify_post_mime_types( $post_mime_types ) {
	$post_mime_types['application/vnd.google-earth.kml+xml'] = array(__('KML'), __('Manage KML'), _n_noop('KML <span class=""count"">(%s)</span>', 'KML <span class=""count"">(%s)</span>'));
	return $post_mime_types;
}
add_filter( 'post_mime_types', 'kml_modify_post_mime_types' );
}}}

in my plugin, I don't see a filter link at the top of the Media list (like the ones for Video, Audio etc.), as I should do. I may be wrong, but I think this is because the '+' character in the attachment MIME-type is not handled correctly.

To test this, I tried faking a new MIME, minus the '+'. I changed the MIME-type my plugin add to the post_mime_types array to

{{{
$post_mime_types['application/vnd.google-earth.kmlxml'] = array(__('KML'), __('Manage KML'), _n_noop('KML <span class=""count"">(%s)</span>', 'KML <span class=""count"">(%s)</span>'));
}}}

then changed the value in the MIME field of a previously-uploaded KML file to the same (''application/vnd.google-earth.kmlxml''). Now I DO see the filter link, and clicking on the link reveals the KML file as the only item in the filtered list, as it should.

I'm not sure if the problem manifests itself anywhere else. I've not found any evidence it does, but it may well do. From doing some multi-file searches on the WP system files, my suspicion is that the problem is with one or both of the following functions in post.php:

* wp_match_mime_types()
* wp_post_mime_type_where()


but I'm really not sure.

I'd be grateful if a more skilled coder than me could confirm if this is actually a bug. I'm afraid my regular-expression understanding is minimal, but I suspect this might be an easy fix for someone who knows their stuff.

I'm more than happy to run any tests anyone might suggest to help pin down the source of the problem and/or help fix it.

Thanks guys.

a|x",toneburst
Has Patch / Needs Testing,18798,Sanitizing post in get_attachment_fields_to_edit() can cause double encoding under certain circumstances,,Media,2.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-09-27T23:33:09Z,2012-01-05T14:27:44Z,"In get_attachment_fields_to_edit, the $post object is sanitized using the 'edit' flag, which converts HTML entities. Under some circumstances this can cause entities to be double-encoded (as in, &amp;quot;), because the html entities are already 

To fix this, sanitize the post using the 'raw' flag.",wpdavis
Has Patch / Needs Testing,17736,Undefined Index in image-edit.php,,Media,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-09T18:57:48Z,2013-03-29T21:59:24Z,"PHP Notice:  Undefined index:  thumbnail in wp-admin/includes/image-edit.php on line 649

{{{
			if ( $thumb = $meta['sizes']['thumbnail'] )
}}}

",miqrogroove
Has Patch / Needs Testing,21004,add_image_size hard crop messes up image editor rendering,,Media,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-17T23:48:51Z,2012-12-07T13:51:58Z,"When I add an image size with hard crop set to true ( ex: add_image_size('index-thumbnail', 420, 550, true); ) it makes it so that you cannot edit the full size of an image in the image editor - only a cropped version.

http://i47.tinypic.com/20h2dfr.png

(link to screenshot)

The left image in the screenshot is the editor when I removed 'true' from my add_image_size arguments. The right image is with 'true' added back in.

I also see that others had the same problem in this thread: http://wordpress.org/support/topic/help-add_image_size-and-image-cropping?replies=6

...but it was closed without any resolution.",geniepop
Has Patch / Needs Testing,20720,attachment_fields_to_save filter is called twice after initial image upload in post,,Media,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-05-21T16:18:41Z,2012-05-22T00:12:20Z,"I believe I found a bug in WordPress with the attachment_fields_to_save filter.  For some reason attachment_fields_to_save is called twice per image, but only if you ""Save all changes"" after uploading a new image to a post.  

How to reproduce:
1.  Add the below code to a plugin:

{{{
add_filter( 'attachment_fields_to_save', 'test_attachment_fields_to_save', 10, 2 );

function test_attachment_fields_to_save( $post, $attachment ) {

	echo 'Hi! </br >';

	return $post;
	
}
}}}

2.  Create a new post
3.  Upload a single image and click ""Save all changes""

You'll see ""Hi!"" displayed twice.  Now visit the Gallery tab and save the same image and you'll see ""Hi!"" is only displayed once.  This only happens when you save a new image uploaded to a post.  If you save an image under the Gallery tab, or via the Media Library, the filter is only called once as expected.

I confirmed this is happening in 3.3.1 and trunk",williamsba1
Has Patch / Needs Testing,18532,resized image dimensions incorrectly floored instead of rounded,,Media,2.5,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-27T16:14:29Z,2011-09-04T17:43:03Z,"Image dimensions are incorrectly floored instead of rounded to a proper number. Some attempt at ""fixup"" is done later in some processes to move them by a pixel, but still the way it's initially calculated is wrong.

'''For example:

A typical photo has a 3:2 (3/2 = 1.5) ratio.

If it's resized to 600px width, WP will make the height 399px - this is wrong.'''

It happens because of ''function wp_constrain_dimensions'' in ''media.php'' (~line 304) which floors the float using intval, which is wrong. 


{{{
	$w = intval( $current_width  * $ratio );
	$h = intval( $current_height * $ratio );
}}}

'''I propose'''

{{{
	$w = round( $current_width  * $ratio );
	$h = round( $current_height * $ratio );
}}}

Earlier in the function, both $ratio and $current_width are already handled as numbers, so they have to be valid numbers, no need to use intval for that reason, it's just being used to floor, which is bad in this case.

Using round is not a performance issue because this function is not used in realtime output for templates but typically in admin area.

Optionally while you are at it, put a filter on wp_constrain_dimensions and pass the filter all the values passed to the function before the array is returned at the end.
",_ck_
Has Patch / Needs Testing,19512,wp_read_image_metadata includes bitmap in description,,Media,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-12-12T13:47:40Z,2011-12-20T20:51:17Z,"After uploading a photo that includes (photoshop) bitmaps in the image data, the bitmap data is copied into the image description.




",macbrink
Has Patch / Needs Testing,12855,Add 2 filters on get_media_item(s) functions,,Media,,low,normal,Future Release,enhancement,new,has-patch,2010-04-05T11:04:08Z,2010-04-05T14:17:37Z,Allow plugin to add some content on media functions.,momo360modena
Has Patch / Needs Testing,18835,Add filter to image_resize_dimensions( ) return values,,Media,3.2.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-10-01T16:14:39Z,2012-10-03T01:00:57Z,"Requesting a filter on the values about to be returned, including access to the function's original arguments.

Use case:
Currently, any cropping happens to images always crops to the top-left corner (0,0). Want to be able to write a plugin that will allow cropping with more options (say, crop out at the middle of the image, etc).",scottconnerly
Has Patch / Needs Testing,20151,Add parameter for wp_embed_defaults(),,Media,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-03-01T20:08:17Z,2012-03-02T06:07:04Z,"If we can add a parameter (like $url) to wp_embed_defaults(), then people can filter more intelligently as WordPress extends to allow more and more oEmbed.

",wpsmith
Has Patch / Needs Testing,24019,"Allow user to specify image size when selecting ""Media File"" as ""Link To"" target for image attachments.",,Media,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-10T00:39:26Z,2013-04-15T15:43:33Z,"Currently selecting ""Media File"" as the ""Link To"" target causes an embedded image to link to the originally uploaded file.  These files can be very large and there is no way to non-destructively resize them on upload while retaining this ""Link To"" functionality.

This enhancement patch adds a drop down list of available image sizes to the form (defaulting to Full Size - the existing behaviour) when ""Media File"" is selected, allowing the user to link to custom image sizes as specified in their themes or plugins if desired.

[[Image(http://dfcowell.net/wp-content/uploads/2013/04/attachdisplay.png)]]


[[Image(http://dfcowell.net/wp-content/uploads/2013/04/attachdisplay2.png)]]

This is a significant improvement over default functionality, especially when used in conjunction with a lightbox plugin.  It allows the user to retain the full-size image on the server while being able to specify a link to a smaller size if desired.",dfcowell
Has Patch / Needs Testing,21329,Consolidate filters and functions in wp-admin/includes/media.php,,Media,,normal,normal,Awaiting Review,enhancement,new,close,2012-07-20T20:28:59Z,2013-01-28T23:50:11Z,"in wp-admin/media.php, there are several functions that do similar things and could be combined, simplifying how they get used.",martythornley
Has Patch / Needs Testing,17866,Copy adjustment in wp-admin/includes/media.php,,Media,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-06-22T02:54:50Z,2011-08-10T15:49:33Z,"""Link Image To:"" seems preferable to ""Link URL"" in wp-admin/includes/media.php (and it is more consistent as it is already used on the ""From URL"" tab when inserting an image).",hew
Has Patch / Needs Testing,22679,Ensure that unattached images inserted from media library get pretty url directly,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-02T11:24:19Z,2012-12-02T22:13:17Z,"When inserting an unattached image (with no parent) from the media library and setting the ""Link To"" option to ""Attachment page"", the URL at first gets the default query string format (with a '?'). Though after updating the post it gets the final ""pretty"" format (which seems to happen in the function _fix_attachment_links() in wp-admin/includes/post.php).
The provided patch, gives the URL the final pretty format directly.
See also #22085.",jond3r
Has Patch / Needs Testing,12120,Force Media Image Generation (for thumbnails),,Media,,normal,normal,Future Release,enhancement,new,has-patch,2010-02-03T17:53:32Z,2010-03-07T08:19:33Z,"It would be very useful to force the generation of a thumbnail images for uploaded files. With content being syndicated to feeds, e-readers, and mobile devices, the ability to have a working thumbnail is more important.

For example, if the original image has dimensions of 250x50, and the default thumbnail size in WP is 150x150, a thumbnail will not be generated because the 50 height is smaller than the 150 pixel minimum.

The fix would be to include an additional parameter to the image_resize_dimensions to allow the function the dimensions. A filter could be applied to allow the user to set which images should force the generation of a resized image (i.e. to exclude a medium and large image from being generated for a 250x50 image) by passing in the original width/height and max width/height.

in wp-includes/media.php

========

function image_resize( $file, $max_w, $max_h, $crop = false, $suffix = null, $dest_path = null, $jpeg_quality = 90 ) {

...

$force = apply_filters('image_resize_dimensions_force', $orig_w, $orig_h, $max_w, $max_h);
$dims = image_resize_dimensions($orig_w, $orig_h, $max_w, $max_h, $crop, $force);

========

function image_resize_dimensions($orig_w, $orig_h, $dest_w, $dest_h, $crop = false, $force = false) {
...

// if the resulting image would be the same size or larger we don't want to resize it
	if ( $new_w >= $orig_w && $new_h >= $orig_h && !$force )
		return false;
",atow
Has Patch / Needs Testing,16635,Handle grouped MIME-Types,,Media,3.1,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-02-24T13:41:14Z,2011-02-24T13:41:14Z,"I'm trying to add a filter in the Media Library for common archive file types. The problem is that there are a lot of MIME-Types for archive files and none have a common prefix. Wildcards are not a solution here.

POC:
{{{
add_filter('post_mime_types', 'modify_post_mime_types');

function modify_post_mime_types($post_mime_types) {
	$type = 'application/zip,application/x-tar';
	$labels = array(
		__('Archive'), 
		__('Manage Archives'), 
		__ngettext_noop('Archive <span class=""count"">(%s)</span>', 'Archives <span class=""count"">(%s)</span>')
	);

	$post_mime_types[$type] = $labels;

	return $post_mime_types;
}
}}}

I've tried using ""|"" (regexp) as a separator:
{{{
$type = 'application/zip|application/x-tar';
}}}
This works ok in wp_match_mime_types but fails in wp_post_mime_type_where.

I've found two possible solutions:

1) Change 
{{{
$post_mime_types = array_map('trim', explode(',', $post_mime_types));
}}}
to 
{{{
$post_mime_types = array_map('trim', preg_split('/,|\|/', $post_mime_types));
}}}
in wp_post_mime_type_where and use ""|"" as a separator;

2) Handle this in wp_match_mime_type (see code in attached file) and use "","" as a separator.

I'm aware that this is not a widely used filter but in my case this enhancement makes a lot of sense. If it works for images why shouldn't it work for archives? Also, why is wp_post_mime_type_where designed for comma-separated lists of MIME-Types if it's never used that way?",sergiu.paraschiv
Has Patch / Needs Testing,21221,Image title and alt attribute content should be texturized.,,Media,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-11T19:49:18Z,2012-07-11T22:11:44Z,"
gallery_shortcode() texturizes the caption shown underneath images in galleries.

For consistency, alt and title tags content should also be texturized.
This is also valuable for developers extending the gallery shortcode or output, such as with the WordPress.com (and Jetpack) [http://en.blog.wordpress.com/2011/11/08/new-photo-carousel/ Gallery Carousel feature], as it provides i18n'd texturization, for EG.

See attached patch, which:
 * uses wptexturize() in wp_get_attachment_image() directly (/wp-includes/media.php), which makes it work with gallries, attachment pages, etc.
 * also uses wptexturize() in get_image_tag() (/wp-includes/media.php), for consistency.
 * uses wptexturize() in wp_get_attachment_link() (/wp-includespost-template.php), for consistency",stephdau
Has Patch / Needs Testing,19181,Make image_link_input_fields filterable to add buttons,,Media,2.7,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-06T20:27:53Z,2012-07-07T10:31:15Z,"This patch makes the image_link_input_fields function filterable, so that additional buttons could be added to the Link URL section when inserting an image into a post.

In my case, I want to be able to link an image to the post it belongs to. It's a weird/tiny use case, but this filter will let me use a plugin to add it myself.",ryanimel
Has Patch / Needs Testing,23172,"Media Library - Rename the default ""Images"" in dropdown to something more clear",,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-01-10T17:05:32Z,2013-02-01T21:40:13Z,"I have a group of about 6 people on my team and after the upgrade to 3.5 not one of them could figure out how to filter down to only the images attached to a post. I'm assuming that other people out there are having similar trouble..
The label ""Images"" makes it seem like that is where you could switch to other media types like ""Audio"" instead of filtering search results. I think ""All Images"" would be much more clear as to what the dropdown changes..",jacopo.vip
Has Patch / Needs Testing,24380,Missing Compression Parameter in WP_Image_Editor_GD,,Media,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-21T02:37:06Z,2013-05-23T02:08:32Z,"Setting the image quality parameter has no effect on png files.

Going through the wp-includes/class-wp-image-editor-gd.php

I noticed that the compression parameter for the imagepng function call is missing.

the current quality parameter only affects jpeg files. 

for jpeg, quality goes from 0->100 from bad to good

for png, from 0->9 from good to bad.

in the elseif  block starting at line 337 i have added a variable called compression and changed the code as follow:
{{{
elseif ( 'image/png' == $mime_type ) {
			// convert from full colors to index colors, like original PNG.
			if ( function_exists('imageistruecolor') && ! imageistruecolor( $image ) )
				imagetruecolortopalette( $image, false, imagecolorstotal( $image ) );

			$compression = -((9/100*$this->quality)-9);
			
			if ( ! $this->make_image( $filename, 'imagepng', array( $image, $filename, $compression ) ) )
				return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
		}
}}}
This convert the scale 0->100 into a 0->9 scale that matches the parameters from imaging.

This gives back control to the user on image quality for png files...",MuViMoTV
Has Patch / Needs Testing,22949,More Accurate and Extensible MIME Type Handling,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-14T22:08:16Z,2012-12-17T21:42:22Z,"In the general case, a file extension may represent more than one MIME type. Currently, file extensions are married to a single MIME.

Specifically, let's look at the case of the ""ico"" file extension. Officially, the MIME type for this file should be ""image/vnd.microsoft.icon"". Unofficially, ""image/x-icon"" along with many others are usable.

The solution to this problem is extremely simple.

First, allow key => value pairs in the exhaustive MIME list located in wp_get_mime_types to be arrays so we can account for cases such as ico.

Second, add the proper handling for this change in wp_check_filetype. The way I have written it should not interfere with existing uses of this function (as they were all passing strings and now can pass a string or array).",mattonomics
Has Patch / Needs Testing,22822,New media: 'Create a new gallery' button should indicate that it's the first of two steps,,Media,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-12-08T00:35:34Z,2013-01-22T01:57:11Z,"When creating a gallery, the primary action button at the bottom of the screen says 'Create a new gallery'. This button is actually the first of two steps, but this button doesn't make that clear.

It should either have an ellipsis appended, which is a standard UI convention for a non-immediate action, or it should say something like 'Next »'",johnbillion
Has Patch / Needs Testing,19990,Separate ID and display name for add_image_size,,Media,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-02-08T17:19:01Z,2012-12-31T02:05:50Z,"Currently, the first argument in `add_image_size()` is used as both the id (and key in the global array `_wp_additional_image_sizes`, and as the displayed name, since nothing else is available.

As such, the `$name`, when it is displayed, is not translatable, since some other code might be hard-coded to use a specific image size.

Instead of adding a 5th argument to the function, one solution might be to allow the first argument to be a string or array, and if it is an array, passing that as a new item in the array that is set. Theme or plugin authors could then check for the existence of this array value item, before falling back to using the key as per now.

Current Usage:
{{{
add_image_size( 'primary-sidebar', 150, 100 );
}}}

New Optional Usage:
{{{
add_image_size( array( 'primary-sidebar' => __( 'Primary Sidebar', 'my-textdomain' ) ), 150, 100 );
}}}",GaryJ
Has Patch / Needs Testing,22100,Treat built-in image sizes the same as custom image sizes,,Media,,normal,normal,Future Release,enhancement,new,has-patch,2012-10-04T15:39:44Z,2013-05-14T13:50:34Z,"Goals:

0. Have a solid API for working with intermediate image size definitions.

1. Don't hardcode default image sizes; register them like any other.

2. ~~Introduce a 'pregenerate' arg, which will allow defining an image size that will not be automatically generated right after upload.~~

Related tickets: #15311, #21810",scribu
Has Patch / Needs Testing,20046,Unnecessary default category code remains in wp_insert_attachment,,Media,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-02-15T00:13:30Z,2012-02-16T06:46:13Z,"After the default arguments are set, post_type is forced to 'attachment', negating any requirement for default categories to be added.

Quick patch removes:

(1) The test performed for 'post' post_type in order to assign default categories to an array. Result was always an empty array.

(2) The call to wp_set_post_categories with this empty array, which sends the post_ID through a bunch of taxonomy related code that passes over it. This does cause the action 'set_object_terms' to be skipped, which should be okay as attachments don't have terms.",jeremyfelt
Has Patch / Needs Testing,15309,Updating Attachments will always set post_modified[_gmt] to the post_date[_gmt],,Media,,normal,normal,Future Release,enhancement,new,has-patch,2010-11-03T17:40:31Z,2012-04-20T05:31:51Z,"When updating an attachment the post_modified and post_modified_gmt are always set to post_date and post_date_gmt respectively. 

Is there a specific reason for this or can we allow attachments to properly set a modified time?

Attached is a proposed patch (which just copies code directly from `wp_insert_post`).",shawnparker
Has Patch / Needs Testing,17857,WP_Embed - Split shortcode() function into two for increased flexibility,,Media,2.9,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-06-21T01:52:41Z,2011-06-21T03:33:55Z,"Currently, the WP_Embed class is restricted to posts; it takes a post ID as a parameter and checks the post meta table.

What I'd like to propose is to apply a filter to the post ID and split WP_Embed::shortcode() into two functions (at http://core.trac.wordpress.org/browser/trunk/wp-includes/media.php#L1177).

In a nutshell, let the link parsing be one function and if the link is oEmbed-worthy send it to the second function for parsing.  The second function could then be easily extended for usage in 3rd-party plugins not using WP posts (like BuddyPress).

Also, the patch checks the URL against each registered WP oEmbed provider's URL scheme if oEmbed discovery is false.  This is designed to prevent unnecessary external pinging of an oEmbed provider and avertible meta caching for failed attempts.  Andy Peatling primarily wrote this part of the code, which he sent to me awhile ago.

Attached patch is against r18324.",r-a-y
Has Patch / Needs Testing,21668,WordPress still does not save jpeg as progressive jpeg,,Media,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-23T16:44:06Z,2013-04-08T12:52:45Z,"Every time WordPress does `imagejpeg` it should be doing `imageinterlace` beforehand to set progressive mode, but it's not.

http://php.net/manual/en/function.imageinterlace.php

Progressive jpeg has been supported by ALL browsers since 2001 or so.

progressive demo: http://bbshowcase.org/progressive/

Note that even if an ancient browser is listed somewhere as not rendering progressive, progressive jpeg still will be displayed, simply showing it all at once rather than gradual. 

IE6 for example WILL load progressive jpeg, it will just not render it progressively, instead it will load the entire image and then render all at once at the end.

Progressive algorithm will also make slightly smaller jpeg as a side effect in most cases.

ie. in `media.php`  
`
imageinterlace($newimage,1);
imagejpeg( $newimage, ...
`

This update is years overdue.

It might be possible to futureproof this by adding a filter to `$newimage` before the final `imagejpeg`. I am uncertain if that would work since filters would not pass `$newimage` by reference and instead make a copy - while newimage is only a pointer to php/gd memory. Can apply_filters be forced to work somehow by reference instead of a copy? Maybe that should be another feature idea.
",_ck_
Has Patch / Needs Testing,17023,add hook for media_upload_library_form(),,Media,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T17:19:35Z,2011-04-02T18:24:05Z,"The ""Media Library"" tab of the Upload Media dialog includes a date filtering dropdown.  The query which populates it returns only month/year combinations in which attachments were uploaded.  However, that query is not filterable.

Plugins which filter backend access to attachments via standard WP_Query hooks need a way to make the month/year dropdown match those filtered results.

The corresponding patch adds query filter 'media_upload_year_month_query'
",kevinB
Has Patch / Needs Testing,15149,image_get_intermediate_size partly ignores 'path' and 'url' fields and has inconsistent return values,,Media,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2010-10-19T13:13:32Z,2013-04-08T14:44:35Z,"the current implementations of image_get_intermediate_size and image_downsize in wp-includes/media.php have several inconsistencies.

image_get_intermediate_size() returns the following information about an attachment for registered sizes: file, width, height, path, url. for ad-hoc sizes (if the size argument is an array) it returns: file, width, height.

in the second case, path and url information that may have been set by a plugin is lost.

further, the calling function, image_downsize(), in any case regenerates the url like this


{{{
$img_url = str_replace(basename($img_url), $intermediate['file'], $img_url);
}}}

this means that now also for the registered sizes, the 'url' information is discarded. further, this means that for registered sizes, the url is computed twice, once inside image_downsize as detailed above, once in image_get_intermediate_size() like this


{{{
$data['url'] = path_join( dirname($file_url), $data['file'] );
}}}


to me, a cleaner approach would be to return the full information (file, width, height, path, url) independent of whether an image size is registered or not. all these fields can then also be directly calculated inside image_get_intermediate_size() and the caller does not have to bother with, e.g., generating paths and urls. further, this would allow to accept path and url information that is already present in the db, also in the case of ad-hoc image sizes.

i put together a patch that provides a potential solution. 

 ",whoismanu
Has Patch / Needs Testing,17071,wp_count_attachments() is not filterable,,Media,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-07T05:05:10Z,2011-04-07T05:12:06Z,"The Media Library attachments listing and edit links can be filtered via existing WP_Query and has_cap hooks. However, corresponding attachment counts are not cleanly filterable.",kevinB
Has Patch / Needs Testing,11895,Allow more specific image size editing,,Media,,normal,normal,Future Release,feature request,new,has-patch,2010-01-14T15:12:28Z,2013-05-07T11:54:00Z,"Instead of allowing only some combinations of 'thumbnail', 'medium', 'large', 'full' I would like to have the ability to select which of these I would like to crop. So for example, only 'thumbnail' and 'medium'. With the current trunk this is not possible. I created a patch that adds this ability by changing the radio boxes of ""apply changes to"" in the image-edit page to checkboxes for each of the 4 possible sizes.",frankgroeneveld
Has Patch / Needs Testing,16787,Removing title from a page (blank title) results in collapsed UI element in menu builder,,Menus,3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-03-07T17:43:29Z,2013-04-22T03:21:45Z,"This minor issue has to do with the custom menu interface and titleless pages pages - this is handled somewhat gracefully when you initially create a titleless page using (pending) placeholder text, so I thought I would report it.[[BR]]
 

'''Issue preconditions'''

* WordPress 3.1
* Page created with title and body text
* Page added to a custom menu and saved[[BR]]

'''Steps to recreate'''
* remove title from the page from one of the ""edit page"" UIs
* visit the Menus interface
* you should now see a collapsed menu item in the menu creation interface (screenshot attached[[BR]]

Tested In: Chrome OSX 10.0.648.127 | Firefox OSX 3.6.13
",jafoca
Has Patch / Needs Testing,14439,Unable to get a post associated menu items for a specific menu,,Menus,3.1,normal,major,Future Release,defect (bug),new,has-patch,2010-07-28T03:32:06Z,2011-01-15T01:23:21Z,"Hello,

The actual wp_get_associated_nav_menu_items function works well but gets menu items associated with an object from ANY menu. So a parameter needs to be added to specify a specific menu to get menu items associated with an object from a specific menu.

Patch is attached. The use of get_term() is needed because of the bug #14438",DreadLox
Has Patch / Needs Testing,14551,menu item : current_page_parent : issue with Front page displays,,Menus,3.0.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2010-08-06T12:46:24Z,2010-08-10T07:46:17Z,"Settings > Reading > Front page displays: set to your latest posts
Settings > Reading > Posts page: set to anything

When the menus are building, they are only checking that something was set by the dropdown for posts page, even though the parent setting says the posts are to be on the home page.  The pages on the site have the correct logic, however the menu adds ""current_page_parent"" to the item selected in the ""Posts page"" menu, even though it's not really the parent.

The work around is to just remember if you switch from having posts on a different page back to having them on the front, you need to set the ""Posts page"" back to ""select"" and everything works correctly, but getting users in my multi-site install to do that might be asking a bit much.",hughestm@…
Has Patch / Needs Testing,23805,wp_ajax_add_menu_item() closed to user-created menu item types,,Menus,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-03-18T01:41:52Z,2013-03-19T11:53:02Z,"I'm building a new Menus meta box, that can add a new type of menu item, lets call it 'foobar'.

The conditional inside `wp_ajax_add_menu_item()` is slightly off. It checks that the menu item type is not 'custom', then proceeds to assume that it's either post-type or taxonomy so it can do some DB look-ups and create an `$_object` variable which is then used. This means it's closed to other types of menu items.

I've chosen 'foobar', so I can distinguish those items later on when walking through the front-end output.",GaryJ
Has Patch / Needs Testing,17821,wp_get_nav_menu_object() doesn't check when passing to get_term(),,Menus,3.1.4,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-17T00:02:14Z,2012-05-01T13:27:40Z,"`wp_get_nav_menu_object()` initially passes the menu string to `get_term()` to see if it's an ID. However, `get_term()` expects an integer or object and type-casts any non-objects passed into integers. This results in a menu name i.e. '10-ton elephant' being reduced to '10', which it then uses as a term ID, potentially producing unexpected results.",kawauso
Has Patch / Needs Testing,18232,wp_nav_menu - Setting walker parameter affects fallback_cb,,Menus,3.2.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-07-24T08:14:35Z,2012-07-17T17:20:50Z,"When using the walker parameter with wp_nav_menu and there is no menu present, wp_nav_menu falls back by default (set with fallback_cb) to wp_page_menu. It appears that the set walker also affects wp_page_menu, which in most cases breaks the output.

wp_nav_menu usage:
{{{
<?php wp_nav_menu(array('walker'=> new Walker_Nav_Menu)); ?>
}}}

Output when no menu is present (falling back on wp_page_menu):
{{{
// Formatted for readability
<div class=""menu"">
	<ul>
		<li id=""menu-item-1"" class=""menu-item-1""><a></a></li>
		<li id=""menu-item-2"" class=""menu-item-2""><a></a></li>
		<li id=""menu-item-3"" class=""menu-item-3""><a></a></li>
	</ul>
</div>
}}}

Expected output:
{{{
// Formatted for readability
<div class=""menu"">
	<ul>
		<li class=""page_item page-item-1""><a href=""/first/"" title=""First"">First</a></li>
		<li class=""page_item page-item-2""><a href=""/second/"" title=""Second"">Second</a></li>
		<li class=""page_item page-item-3""><a href=""/third/"" title=""Third"">Third</a></li>
	</ul>
</div>
}}}

As you can see, the output from wp_page_menu is getting filtered through the walker, but since the walker was designed for menus specifically, it renders the default output from wp_page_menu useless (empty tags..etc).",bryanjwatson
Has Patch / Needs Testing,20275,wp_update_nav_menu hook is not fired when nav menu item is auto-added,,Menus,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-21T19:30:59Z,2012-09-27T14:12:45Z,"WP calls the action hook 'wp_update_nav_menu' when a navigation menu is updated. For example, go to Site Design -> Custom Menus -> Click the ""Save Menu"" button on a menu.

Next to the Menu title, the Custom Menus provide the user to ""Automatically add new top-level pages"". When this option is checked, and a new top-level page is created, the 'wp_update_nav_menu' hook is not fired. So the attached nav-menu-hooks.diff patch fixes that.



I would also suggest that we do not use the same hook 'wp_update_nav_menu' twice (as it is currently being done) with different amount of arguments, because this causes a PHP Warning 

{{{
PHP Warning:  Missing argument 2 for x_save_footer() in /var/www/branches/x.trunk/wp-content/themes/x/functions.php on line 815, referer: http://x.com/x/wp-admin/nav-menus.php
}}}

for code:
{{{
add_action('wp_update_nav_menu', 'x_save_footer', 10, 2);
}}}

So, the hook call at nav-menu.php:255 has 2 parameters and the call at nav-menus.php:383 has 1 parameter.

As a fix, the action hook in nav-menu.php should be named something else, like 'wp_update_nav_menu_object' (because it is updating the object), as done in the attached nav-menu-hooks.diff patch. This will also prevent the same hook from being fired twice when updating the nav menus.",inderpreet99
Has Patch / Needs Testing,21652,wp_update_nav_menu_items returns false instead of WP_Error for non-existent menu items,,Menus,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-21T16:57:45Z,2012-08-25T14:49:33Z,"'''Use case:'''
Calling wp_update_nav_menu_items with a non-existent menu_item_id as the first parameter

'''Expected return value:''' WP_Error object (as per the method's documentation)

'''Actual return value:''' Boolean false

'''Fix:''' wp-includes/nav-menu.php#L279 - This line should check for a false value first, and if `$menu == false`, set it equal to a `new WP_Error` object - then check `is_wp_error($menu)`",mltsy
Has Patch / Needs Testing,19272,Add Filter to Nav Menu Support Themes Text,,Menus,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2011-11-16T22:47:52Z,2011-11-16T22:47:52Z,"Frameworks could use a filter here to customize the message: _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ). For example, it may be the child theme that doesn't support the menus. Also, if none are supported (say via add_theme_support), then when it's zero, it says: ""Your theme supports 0 menus. Select which menu appears in each location."" (which doesn't make much sense). So adding a filter can enable theme developers to further customize.

An example use case:
add_filter( 'nav_menu_theme_support_text' , 'wps_nav_menu_theme_support_text' );
function wps_nav_menu_theme_support_text ( $num_locations ) {
	if ( $num_locations == 0 )
		$text = 'Your child theme does not support custom menus.';
	else
		$text = _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations );
	return $text;
}",wpsmith
Has Patch / Needs Testing,16075,Add Post Type Archives support in Nav Menus,,Menus,3.1,normal,normal,Awaiting Review,enhancement,assigned,has-patch,2011-01-02T17:25:58Z,2013-03-29T13:32:54Z,"The setup: Take a post type (be it default or custom, in my case custom)

I wish to be able to add the archive page to the menu without adding the menu entry as hardcoded link (in my case /artists/) 

The problem: Adding it as hardcoded link does not bring the page up as current page in the menu when visiting the link. 

Example: 
http://www.blowmeup.ro/artists/ vs http://www.blowmeup.ro/crews/ ",matzipan
Has Patch / Needs Testing,19264,Add get_nav_menu_item_children(),,Menus,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-16T19:09:23Z,2011-11-16T19:09:23Z,"Just as get_page_children() exists, it would be good to have get_nav_menu_item_children(). Since the object is different the code get_page_children() needs to be slightly modified.",wpsmith
Has Patch / Needs Testing,17221,Adopt a selected page hierarchy to a custom menu,,Menus,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-04-23T11:14:12Z,2011-05-26T15:40:33Z,"I don't know if this is a bug or a FR but I think it would be handy to have a option that when you make a costum menu that the parent and child pages stay in order. In other words: when you made a game page as parent and WoW as childpage that when you add those two pages at the costum menu editior that is automatic orderend as the parent child page

ps: sorry for bad english",JonezJeA
Has Patch / Needs Testing,23627,"Allow plugins to short-circuit wp_nav_menu, good for performance",,Menus,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-26T12:49:28Z,2013-02-26T14:44:22Z,"We already have short-circuit filters for [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/widgets.php#L180 widgets], [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/option.php#L40 options], [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/link-template.php#L115 links] that all can be used for retrieving items from non-persistent data store. It would make a lot of sense if this feature was also available to `wp_nav_menu` which is particularly DB heavy. 

My suggestion is to add `pre_wp_nav_menu` right after `wp_nav_menu_args`, like so:

{{{
	$args = wp_parse_args( $args, $defaults );
	$args = apply_filters( 'wp_nav_menu_args', $args );
	$args = (object) $args;

	// Allow plugins to short-circuit menu output
	$nav_menu = apply_filters( 'pre_wp_nav_menu', '', $args );

	if ( ! empty( $nav_menu ) && $args->echo )
		echo $nav_menu;
	elseif ( ! empty( $nav_menu ) )
		return $nav_menu;

	// Get the nav menu based on the requested menu
	$menu = wp_get_nav_menu_object( $args->menu );
}}}",kasparsd
Has Patch / Needs Testing,24101,Argument for separating wp_nav_menu items,,Menus,trunk,normal,normal,Awaiting Review,enhancement,new,close,2013-04-16T09:50:37Z,2013-04-17T06:59:01Z,"There is no proper way to add separators between menu items without generating custom walkers for menus.

The use of menu elements with separators are great for page styling where one doesn't need a menu container like in common primary navigation areas, but rather just want a quick list for example in a page footer.

I feel having to use a custom walker for this purpose is more work then need be, for a feature that would make sense to include with core, the below patch introduces the `separator` argument to the mix to address this.

{{{wp_nav_menu( array( 'separator' => ' | ' ) );}}}

The above would output a menu as `Menu item | Menu item 2 | Menu item 3`",Clorith
Has Patch / Needs Testing,18527,Duplicate Menu Option or Add a Hook for Plugins,,Menus,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-08-26T21:09:21Z,2011-09-04T10:25:22Z,"It would be great to add a hook for plugins to be able to add options, etc, to Appearance > Menus. One thing would be to have the option to duplicate a menu.

I have worked up a patch that accomplishes this, which would serve as a good starting point for adding duplication functionality.",wpsmith
Has Patch / Needs Testing,23832,Nav menu screen text tweaks,,Menus,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-20T22:38:08Z,2013-03-21T17:23:57Z,,johnbillion
Has Patch / Needs Testing,19365,Pages listed under Most Recent and Search tabs of Page meta box in Appearance -> Menus should be filterable,,Menus,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-26T09:10:41Z,2013-03-04T17:30:09Z,"On the '''''Appearance''''' -> '''''Menus''''' administration page, pages listed under the '''''Most Recent''''' and '''''Search''''' tabs of the '''''Page''''' meta box on the left are not filterable. Since the pages listed under the '''''View Al'''l'' tab of the said metabox are already filterable via the '''''nav_menu_items_page''''' hook, why not do the same for these 2 tabs?

I have a plugin that generates a number of pages that are accessible by registered users only, and I do not want administrators to be able to put these pages on the menu in any way.",onokazu
Has Patch / Needs Testing,16594,inconsistency in wp_nav_menu_items,,Menus,3.0,normal,normal,Future Release,enhancement,new,has-patch,2011-02-19T10:43:12Z,2012-06-28T04:29:51Z,"Not sure if it is a bug: when I create a menu, e.g.
wp_nav_menu(array( 'theme_location' => 'footer' ));
and put there a menu (E.g. named ""My menu"") using nav-menu.php editor and then try to call wp_nav_menu_items filter to see all arguments, e.g.
{{{
add_filter('wp_nav_menu_items','my_test', 10, 2);
function my_test($items, $args) {
print_r ($args);
}
}}}
the resulting object is

{{{
(
    [menu] => 
    [container] => div
    [container_class] => 
    [container_id] => 
    [menu_class] => menu
    [menu_id] => 
    [echo] => 1
    [fallback_cb] => 
    [before] => 
    [after] => 
    [link_before] => 
    [link_after] => 
    [items_wrap] => <ul id=""%1$s"" class=""%2$s"">%3$s</ul> 
    [depth] => 0
    [walker] => 
    [theme_location] => menu
)
}}}

But if I put the same ""My menu"" to the same place using widget, I got object with extended 'menu'

{{{
    [menu] => stdClass Object
        (
            [term_id] => 4
            [name] => My menu
            [slug] => my-menu
            [term_group] => 0
            [term_taxonomy_id] => 4
            [taxonomy] => nav_menu
            [description] => 
            [parent] => 0
            [count] => 3
        )
 
    [container] => div
    [container_class] => 
    [container_id] => 
    [menu_class] => menu
    [menu_id] => 
    [echo] => 1
    [fallback_cb] => 
    [before] => 
    [after] => 
    [link_before] => 
    [link_after] => 
    [items_wrap] => <ul id=""%1$s"" class=""%2$s"">%3$s</ul> 
    [depth] => 0
    [walker] => 
    [theme_location] =>
}}}

I guess that they should be the same (except 'theme_location') - the problem is, that using the first scenario, i got no way to find ""My menu"" details - id, name, slug ... of the menu, so i even cannot filter by them in my functions (e.g. apply filter just for a specific menu).",thomask
Has Patch / Needs Testing,14687,"Add ""collapsible"" class to menu items that have children",,Menus,3.0.1,normal,normal,Future Release,feature request,new,has-patch,2010-08-24T21:50:25Z,2012-03-07T15:49:30Z,"Items from custom menus in WP 3 have classes like:

{{{
menu-item
menu-item-type-TYPE
menu-item-ID
}}}


and if the current menu item is active, also:

{{{
current-menu-item
}}}

or

{{{
current-menu-ancestor
}}}

It would useful for theme developers if you also added another class on menu items that have children, like ""collapsible"", or ""menu-with-children"" :)

this will allow designers to add things like arrows in menus easier, without having to resort to javascript hacks to check if the list element has children...",digitalnature
Has Patch / Needs Testing,21306,"Archived blogs should return HTTP ""404 Not Found"", not ""410 Gone""",,Multisite,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-07-18T19:39:51Z,2012-07-18T19:39:51Z,"In a multisite network, if a site is archived, ms_site_check() currently serves up a HTTP 410 status code. Here's what the [http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html HTTP spec] has to say about 410:

  The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. Clients with link editing capabilities SHOULD delete references to the Request-URI after user approval. If the server does not know, or has no facility to determine, whether or not the condition is permanent, the status code 404 (Not Found) SHOULD be used instead. This response is cacheable unless indicated otherwise.

It's acceptable to serve a 410 if the site is marked as deleted or spam, but I don't think that archiving the site is an indication that the site is permanently and irrevocably gone. Although a case can be made for changing it to 404, my contention is that a 403 is more appropriate for semantics and for bots. From the same HTTP spec:

  403 Forbidden: The server understood the request, but is refusing to fulfill it.

vs

  404 Not Found: The server has not found anything matching the Request-URI.",amattie
Has Patch / Needs Testing,16328,Auto redirect to home when www is in the URL in MU,,Multisite,3.0.4,normal,major,Awaiting Review,defect (bug),new,close,2011-01-21T04:46:08Z,2012-11-02T22:28:36Z,"I have come across a problem on my MU installation where my primary blog will automatically redirect to the home page when www is in the URL and a virtual subfolder is being called. 

Ex. http://www.domain.com/virtual_subfolder/ would redirect to http://domain.com/. 

This problem does not effect the domains that I added on with MU, only the primary site is effected. ",lelandmcfarland
Has Patch / Needs Testing,20983,Change phrasing for 'Network Activate' newly installed plugins,,Multisite,3.0,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-06-15T21:25:05Z,2012-06-16T02:28:39Z,"Not everyone is clear what 'Network Activate' means and after installing a plugin, a lot of people just assume that activate will turn it on for one site only. Then they complain that the plugin turned it self on automagically!

While it would make the link longer, I think changing it to the same wording we have in the title might actually catch their eye: ''Activate this plugin for all sites in this network''

(The other thought was to put 'Return to Plugins Page' in front of Network install, but that would annoy single site people, of whom there are a majority)",Ipstenu
Has Patch / Needs Testing,18186,Default registration assumptions in WP Multisite,,Multisite,3.2.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-07-20T18:43:06Z,2013-05-20T11:58:53Z,"By default, when you create a new site, it does not set the ""registration"" site meta key.  However, in wp-signup.php by default it assumes it to ""all"" and allows users and sites to be created (line 381): 

{{{
// Main
$active_signup = get_site_option( 'registration' );
if ( !$active_signup )
        $active_signup = 'all';
}}}

However, in the network settings page, by default it sets it to none (line 75):

{{{
if ( !get_site_option( 'registration' ) )
        update_site_option( 'registration', 'none' );
}}}

With the new simple flow from a standalone to multi-site installation, new blogs should likely have it set to none by default or it should be an option during set up.

Props to leenewton for discovery.",terryjsmith
Has Patch / Needs Testing,15855,Dropdown isn't shown when doing a user 'removal',,Multisite,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-16T23:38:12Z,2012-04-27T18:14:51Z,"Steps to reproduce:

0. Have a MultiSite install
1. Go to wp-admin/users.php and delete a user
2. A confirmation screen appears, with only a ""Confirm"" button.

Expected behaviour:

The user dropdown is shown, asking to assing the user's posts to a different user.

Currently, you end up with authorless posts.",scribu
Has Patch / Needs Testing,20774,Flag an user as spam with any rol become a sub site flagged as spam (Multisite),,Multisite,3.0,normal,major,Future Release,defect (bug),new,has-patch,2012-05-29T12:25:52Z,2012-11-08T21:02:31Z,"Hi,

Since many weeks, many WangGuard users were contacting me because they say WangGuard were flagging the sub sites as spam.

Thats not a WangGuard bug, is a WordPress issue.

Steps:

- Create a Subsite, you can add the Super Admin like site admin.
- Add a user like subscriber.
- Flag that user as spam in /network/users.php

That site will be flagged as spam although the owner were the Super Admin.

I think WordPress has to look for the user rol and only flag the sub site as spam if the rol is Administrator.



This issue is in WP 3.3.1 and 3.4",j.conti
Has Patch / Needs Testing,14867,HTTPS related issues in ms-blogs.php (with fix),,Multisite,,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-09-14T15:09:14Z,2011-10-13T19:18:53Z,"Two functions in ms-blogs.php have issues due to hard-coding ""http://"" versus using the is_ssl() check. I have corrected them below. Just copy and paste these over the ones in your ms-blogs.php.


function get_blogaddress_by_id( $blog_id ) {
        $protocol = is_ssl() ? 'https://' : 'http://';

        $bloginfo = get_blog_details( (int) $blog_id, false ); // only get bare details!
        return esc_url( $protocol . $bloginfo->domain . $bloginfo->path );
}

function get_blogaddress_by_domain( $domain, $path ){

        $protocol = is_ssl() ? 'https://' : 'http://';

        if ( is_subdomain_install() ) {
                $url = $protocol.$domain.$path;
        } else {
                if ( $domain != $_SERVER['HTTP_HOST'] ) {
                        $blogname = substr( $domain, 0, strpos( $domain, '.' ) );

                        $url = $protocol . substr( $domain, strpos( $domain, '.' ) + 1 ) . $path;

                        // we're not installing the main blog
                        if ( $blogname != 'www.' )
                                $url .= $blogname . '/';
                } else { // main blog
                        $url = $protocol . $domain . $path;
                }
        }
        return esc_url( $url );
}",mareck
Has Patch / Needs Testing,20204,Incorrect links to SSL sites in Multisite,,Multisite,3.0,low,normal,Future Release,defect (bug),new,has-patch,2012-03-08T16:05:19Z,2012-11-08T00:00:19Z,"If I create a site in Multisite that has an SSL URL then a few links in Network Admin incorrectly use a non-SSL URL for the site.

Opening this ticket so I don't forget about it. Patch coming up when I have some time.",johnbillion
Has Patch / Needs Testing,19375,Make BLOG_ID folder deleted on site-deletion,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-11-28T00:41:57Z,2012-02-07T00:00:09Z,"It would be appreciated that the BLOG_ID folder get deleted on site-deletion, in the future..

My reference is the discussion at, 

http://wordpress.org/support/topic/wpmu_delete_blog-not-deleting-blogsdir-folder",momotombopuro
Has Patch / Needs Testing,17376,Multisite Subfolders and bunk /wp-admin areas,,Multisite,,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-11T15:07:38Z,2012-04-19T01:37:52Z,"On a multisite installation with subfolders, navigating to:

www.mysite.com/i-dont-exist/wp-admin

loads a dashboard and maintains the i-dont-exist in the url.  That part exists if i navigate to themes and/or plugin pages.  However, I'm actually altering the base site.
This can be quite confusing if someone makes a typo in a sitename and they end up changing the base site (like happened to us) :(",MadtownLems
Has Patch / Needs Testing,17905,Multisite doesn't delete a user's posts/links upon removal,,Multisite,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2011-06-27T12:59:43Z,2011-06-27T17:06:44Z,"When the ""Delete all posts and links."" radio is selected all that happens is the user is deleted but their posts are left in tact but without a visible user. The posts should be moved to trash as well.

This is caused by removal from the blog in `network/edit.php` before the user is actually deleted where trashing of posts occurs. Since the user no longer has any assigned blogs wpmu_delete_user() doesn't call wp_delete_post().

Patch attached also cleans up confirm_delete_users slightly by using the array passed as an argument instead of $_POST['allusers'].

Related: [13918]",duck_
Has Patch / Needs Testing,20846,Multisite: Network Users can post comments without being members of the site,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-05T14:35:41Z,2012-11-02T23:02:52Z,"This is probably an 'ever since inception' issue and I can replicate it on 3.4

Setup:

Have a user added to your network but '''not''' to a site (domain.com/test).

Set up domain.com/test to only allow registered users to comment. Remember, we've not added this new user to the site, just the network.

Log in as that user and go to domain.com/test

Oh look! You can comment as a 'registered' user.

This should be check for 'Is this a user ''and'', if multisite, is this user a member of the site?'

It's that or the wording needs to be clearer that anyone registered on the network can comment.",Ipstenu
Has Patch / Needs Testing,21573,NOBLOGREDIRECT interfering with 404 errors,,Multisite,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-14T07:32:06Z,2013-04-16T05:36:08Z,"When the `NOBLOGREDIRECT` constant is defined, 404 pages on the main site will not work and instead redirect to URL defined in `NOBLOGREDIRECT`. This is the cause of the `maybe_redirect_404` action/function, which is not needed and should be removed.",bungeshea
Has Patch / Needs Testing,16568,Network install disables site when blog_id is not 1,,Multisite,3.0.5,normal,normal,Future Release,defect (bug),new,has-patch,2011-02-15T20:07:03Z,2011-02-16T01:31:33Z,"This is an edge case and only occurs when MySQL is configured to skip numbers in auto number fields.

The network install inserts the blog record and allows MySQL to assign the blog_id. The blog prefix logic in wpdb depends on the blog_id of the main blog being 1.

The manual fix for this is to edit the DB and change the blog_id of the main blog to 1. Between being an edge case and a relatively easy fix, this isn't severe, imo.

Forum thread: http://wordpress.org/support/topic/database-error-when-enabling-mutlisite",wpmuguru
Has Patch / Needs Testing,15956,Remove user link should be red,,Multisite,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-22T23:10:02Z,2012-05-01T14:07:04Z,"On MultiSite, a user has a 'Delete' action link, which erases them from the system completely. It is red.

When going to `Network Admin -> Sites -> Edit Site -> Users` there is a 'Remove' link, which only erases a user from a certain site in the network. This is currently blue.

Since it's still a destructive action (no trash), the 'Remove' link should be red as well.",scribu
Has Patch / Needs Testing,19724,Sites with IDN domains can't be created (bug #15554 continuation),,Multisite,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2012-01-03T17:44:08Z,2012-04-17T04:02:31Z,"registration of new site with idn domain by unknown/new users themselves is not possible.
(though creation of new site in wp-admin/network/site-new.php page is possible, by patch given in bug #15554 , i have just now tested it.)

also let i mention that site domain is written (and would be requested to enter, if would be fixed without punycode to unicode conversion) in punicode form in wp-signup.php page, that is not acceptable for wordpress.

i have attached differences i made to wp 3.0.4 to make idn domains working and also to show and accept them in human readable format in wp-signup.php page . link to the differences file i attached to/in previous bug report on/to this topic: http://core.trac.wordpress.org/attachment/ticket/15554/diff304-blogo.txt .",qdinar
Has Patch / Needs Testing,20825,User activation in multisite should happen in the main blog..,,Multisite,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-04T11:00:41Z,2012-11-02T22:52:08Z,"In multisite mode ( subdomain ) , when a user activates his account, it should happen in the main blog ( or not ? ) .

In ms-settings.php ( line 118 ) , we assume that the main blog is always blog=1 ( which may be wrong ) . 

The attached patch uses the constant BLOG_ID_CURRENT_SITE if defined instead.",rahal.aboulfeth
Has Patch / Needs Testing,20116,Welcome User Email in Multisite Can't Be Changed,,Multisite,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2012-02-24T21:44:28Z,2012-05-02T20:32:08Z,"Reproduced this on 3.3 and 3.4-aortic.

Go to /wp-admin/network/settings.php

Add 'New' to the sentance 'Welcome User' to make it 'Welcome New User'

Hit update.

Page refreshes, text does not change.",Ipstenu
Has Patch / Needs Testing,20589,domain_exists should add trailing slash to path,,Multisite,3.0,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-05-01T16:49:18Z,2012-07-03T00:36:37Z,"{{{insert_blog}}} runs {{{trailingslashit}}} on the path, however, {{{domain_exists}}} uses whatever is passed in. If WP is enforcing the trailing slash on blog insertion, it really should when checking existence. It should probably also cast the site_id as an int per {{{insert_blog}}}.",ejdanderson
Has Patch / Needs Testing,17168,redirect loop when accessing wp-admin/network/,,Multisite,3.1.1,normal,normal,Awaiting Review,defect (bug),reopened,has-patch,2011-04-18T17:59:55Z,2012-08-10T06:31:44Z,"As of 3.1.1 administrators are getting redirect loops when accessing wp-admin/network/. I run a multi-site multi-domain network and we've noticed that this bug is effecting new and old sites. One super admin reported clicking Update Network put's it in a redirect loop as well.

For new sites if this bug occurs the quick solution is to delete / recreate. I checked _options siteurl, _blogs blog_id domain, and _sitemeta siteurl. Nothing out of the ordinary in the db.",chaos1
Has Patch / Needs Testing,23637,wp-signup.php has overly aggressive CSS,,Multisite,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-27T14:33:46Z,2013-02-27T18:25:15Z,"The CSS added through wp_head by wp-signup.php stops Multisite form fields from being styled through inheritance. Allowing inheritance will result in more consistent styling with the active theme (for example, field font-size).",kwight
Has Patch / Needs Testing,21662,wp-signup.php says there's no limit to the number of blogs even when that is not desired or impossible,,Multisite,3.4.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-08-22T20:48:26Z,2012-12-29T16:53:04Z,"Please remove the statement in '''wp-signup.php''' that exclaims that there's no limit to the number of blogs one can create. It's on line 169.

I ask for two reasons:
1. Hosters of WordPress Networks may not wish to encourage users to open a ton of blogs. I don't because I don't want to encourage a support nightmare.
2. We might use a plugin that limits the number of blogs that users may create, like [http://buddydev.com/buddypress/limit-blogs-per-user-plugin-for-wpmu/ Limit Blogs per User].

For #2, an acceptable alternative may be to make it a string that can be overridden by a plugin. But the current situation, where it's a one-size-fits-all string, is bad because I have to manually edit it each time I (frequently) upgrade WordPress.",novasource
Has Patch / Needs Testing,21143,Add a hook for when no blog is found (in addition to NOBLOGREDIRECT),,Multisite,,normal,normal,Future Release,enhancement,new,has-patch,2012-07-03T01:20:45Z,2012-11-07T22:18:40Z,"(Related to #21142)

'''Background'''

On a multisite install, we allow users to change their subdomain name (or domain name).

We keep a list of their previously used subdomains/domains, and if there is a HTTP request for one of their old domains, we automatically perform a 301 redirect to the new domain name.

'''Problem'''

In order to perform a 301 redirect from and old domain to the new domain, we currently have to use wp-content/sunrise.php.

However we would like to take advantage of the logic at the top of wp-includes/ms-settings.php, rather than re-inventing that logic in our sunrise.php file.

The NOBLOGREDIRECT constant can be used for this, but it does not allow us to perform a 301 redirect.

'''Solution'''

Adding a simple hook to ms-settings.php would allow a sunrise.php file to determine what should happen if a HTTP request on a Multisite install does not correspond to one of the existing sites/blogs.
See attached patch.",jamescollins
Has Patch / Needs Testing,19451,Cannot distinguish which WordPress Signup stage I am,,Multisite,3.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-12-05T23:35:02Z,2011-12-06T20:30:15Z,"As a plug-in developer under WordPress MS I would like to recognize at which stage I am of the signup:
1. first page because of some errors
2. blog confirmation page in case of no errors

Unluckily as today we have:
<input type=""hidden"" name=""stage"" value=""validate-blog-signup"" />

that is the same for the whole process instead would be nice to have a different value there.

Plus we have:
<?php do_action( 'signup_hidden_fields' ); ?>

But even this action is called in both stages.

So how about start naming the stages differently and also call different actions?
For example I want to include some hidden fields only when I am sure all errors are gone and I am already on confirmation of blog name stage.
I don't see this possible right now.",Cimmo
Has Patch / Needs Testing,22383,Combine Domain and Path UI,,Multisite,,normal,normal,Future Release,enhancement,new,has-patch,2012-11-07T22:30:08Z,2012-11-08T01:03:40Z,"When editing a site in /network/site-info.php?id=123 you get two fields: one for the site's domain and another for the path.

It would make more sense from a UX perspective to have a single URL field, which would be intelligently parsed on save.",scribu
Has Patch / Needs Testing,24061,Introduce blog-archived.php and blog-spam.php,,Multisite,,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-12T16:54:46Z,2013-04-13T08:54:29Z,"When Multisite is active and an archived or spammed site is loaded, WordPress first looks for a file in the content directory called `blog-suspended.php` and loads it if it's found.

Two problems:

 1. The file name is counter-intuitive because 'suspended' isn't the name of a status that a site can have.
 2. It's not possible to serve a different file for spammed and archived sites.

The upcoming patch introduces support for `blog-spam.php` and `blog-archived.php` for sites with the respective status. It will fall back to `blog-suspended.php` for backwards compatibility.",johnbillion
Has Patch / Needs Testing,19753,Network admin pages don't show network name in page title,,Multisite,3.0,normal,trivial,Future Release,enhancement,new,has-patch,2012-01-05T22:24:18Z,2012-04-27T18:47:27Z,"When you're on network admin screens, the page `<title>` doesn't contain the network name, unlike site admin screens which contain the site name.",johnbillion
Has Patch / Needs Testing,19996,New function get_blog_metadata for ms-functions.php,,Multisite,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-02-09T10:20:20Z,2012-02-09T10:20:20Z,"Hi!

I think that the ms-functions are very useful for WP multisite developers, for example: get_blog_post where you can select the blog_id and post_id to return the post info of a blog.

But I'm missing an important one: get_blog_post_metadata. With the function that I'm proposing, you can select the blog_id, the post_id and the meta_key and the function will return the metadata for those values.

I have attached in the file get_blog_metadata.txt the function that I have made and I think it would be very useful to have it in the core.

Cheers! :)",_DorsVenabili
Has Patch / Needs Testing,18292,"Not interrupting the network update, even if errors are detected",,Multisite,3.2.1,normal,normal,Future Release,enhancement,new,has-patch,2011-07-29T10:24:41Z,2012-04-18T21:00:28Z,"'''My installation'''[[BR]]
3.2.1 multi-site installation with almost 8000 sites.

'''The issue'''[[BR]]
During the network update, I kept getting this error message :[[BR]]
''Warning! Problem updating http://username.example.com. Your server may not be able to connect to sites running on it. Error message: 0: Empty reply from server.''[[BR]]
The problem is that the network update script (/wp-admin/network/upgrade.php) dies every time an error is detected, so I had to reload the page every time. With nearly 8000 sites to update, it was impossible, so I modified that script.

'''Suggested enhancement'''[[BR]]
Enhance the network update script so that it doesn't die at each error, logs the error and continues. A second run on the unsuccessful upgrades would also be nice.",luuzan@…
Has Patch / Needs Testing,17630,Redirect wp-signup.php to wp_signup_location,,Multisite,3.1.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-05-31T23:03:15Z,2012-11-17T15:43:47Z,"I noticed that if wp-signup.php is accessed directly and wp_signup_location is not the default ""site_url( 'wp-signup.php' )"", it does not redirect to the signup location.

I've attached a potential patch. It works for me.",dwieeb
Has Patch / Needs Testing,23709,Relax wildcard restrictions for populate_network() when installing in subdomain mode,,Multisite,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-06T20:03:49Z,2013-04-01T09:25:14Z,"I ran into the issue while trying to use wp-cli install-network command with --subdomains support.

Underlying core issue is that populate_network is trying to check if wildcard subdomain is accessible. This makes sense for large networks, but might not work with certain setups, or not needed for small sites.

Proposed solution is to add extra arg for populate_network() $wildcard_check with default to true. See attached patch",rinatkhaziev
Has Patch / Needs Testing,21546,Site Settings page is a hot mess,,Multisite,3.0,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-10T21:44:07Z,2012-08-20T16:50:59Z,"I found out just how bad this page is when debugging an issue related to {{{WPLANG}}}. {{{WPLANG}}} is an option for a blog in your network (overrides {{{WPLANG}}} in {{{wp-config.php}}}), but if you delete the option on purpose or accidentally, there is no way of restoring it in the admin.

Site Settings just loads your options table and POSTs back to itself. The only reference to the original options map (the defaults) is in schema, which WP has zero access to outside of upgrade.

I have abstracted the default options and the default ""fat"" options into functions in {{{ms.php}}}. Also, when loading your Site Settings options - if a default option is missing, I display it in the admin so you can save it (it is populated with its default value).

I have also streamlined and condensed some code that was happening in and around {{{populate_options()}}}",wonderboymusic
Has Patch / Needs Testing,18910,get_blog_details query alteration for root-relative url plugin support...,,Multisite,3.2.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-11T23:39:05Z,2011-10-28T22:28:13Z,"After reading through this ticket http://core.trac.wordpress.org/ticket/17048 and all of its referenced links / discussions I decided to write my own plugin to do root-relative urls.

However there is a core issue that prevents such a plugin from working when using path-based MU installs (versus subdomain installations where as it stands cannot support root relative urls... yet.)

Looks like the logic for path-based site detection was copied wholesale from the subdomain-based detection logic in the if-block just below it.  

I don't see a need to query both the path and the domain if the domain isn't going to change for a MU path-based install.  This fix proposes checking explicitly for is_subdomain_install == false and then only querying the database on the path column.  

If this patch doesn't account for some scenario in which path-based installs could actually have multiple domain addresses in the database then please add a filter to the $fields variable so that a plugin can handle the variance there.

I'm not here to start a root-relative vs absolute uri debate (I'm saving that for another day ;)  But basically the recommendation from the WP Core team is to do this in a plugin, yet we can't until this is fixed.

Thanks!
-Marcus

(ps - if you'd like to have the absolute uri / relative root debate I'm totally game! just email me :D)",MarcusPope
Has Patch / Needs Testing,23650,make get_space_allowed() filterable,,Multisite,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-01T00:38:34Z,2013-03-01T00:57:30Z,"When the `blog_upload_space` option is set to `0`, instead of returning `0`,  `get_space_allowed()` returns the default value which is currently hardcoded to `50` in core.

As discussed in #18119 and committed in [19314], the function should return `0` if the option is set to `0`. However this was reverted in [19654] (see #19538). So I am not sure which is the desired behaviour.

The attached patch adds filters for the default value and for the returned value. This is useful for scenarios where you don't want it to fallback to `50` if the option is accidentally set to `0`, and you want to set your own default.

I can adjust the patch if the consensus is that an option of `0` should in fact return `0`.",jkudish
Has Patch / Needs Testing,14511,new function - wp_get_sites($args),,Multisite,,normal,normal,Future Release,enhancement,new,has-patch,2010-08-02T22:02:54Z,2012-09-18T17:24:15Z,"With the deprication of get_blog_list (and the dire warnings), we had a need for a function to retrieve a list of blogs. At first blush, it appears that one could use get_blogs_of_user. It seems to assume that the same admin (userid 1) is going to create all sites. If you have multiple network_admins, then a search for a single user's sites won't return a full list.

So I have adapted the code from wp-admin/ms-sites.php and with a nod to wp_list_pages - am submitting wp_get_sites for a future release.

This function accepts an argument list to filter the results, modify the order, and limit the range of results. I wrote it with an eye to provide an interface consistent with other wp functions, as well as potentially replacing the sql query in wp-admin/ms-sites.php.

The initial set of arguments include:
{{{
			'include_id' 		,				// includes only these sites in the results, comma-delimited
			'exclude_id' 		,				// excludes these sites from the results, comma-delimted
			'blogname_like' 	,				// domain or path is like this value
			'ip_like'			,				// Match IP address
			'reg_date_since'	,				// sites registered since (accepts pretty much any valid date like tomorrow, today, 5/12/2009, etc.)
			'reg_date_before'	,				// sites registered before
			'include_user_id'	,				// only sites owned by these users, comma-delimited
			'exclude_user_id'	,				// don't include sites owned by these users, comma-delimited
			'include_spam'		=> false,		// Include sites marked as ""spam""
			'include_deleted'	=> false,		// Include deleted sites
			'include_archived'	=> false,		// Include archived sites
			'include_mature'	=> false,		// Included blogs marked as mature
			'public_only'		=> true,		// Include only blogs marked as public
			'sort_column'		=> 'registered',// or registered, last_updated, blogname, site_id
			'order'				=> 'asc',		// or desc
			'limit_results'		,				// return this many results
			'start'				,				// return results starting with this item
}}}
The usual warning are provided. It works for me but I haven't tested it completely yet. But I am assuming this could be helpful to others and I have no doubt about getting comments back <grin>",transom
Has Patch / Needs Testing,20019,wpmu_validate_blog_signup(): Allow '.' and '-' in blog names,,Multisite,3.3.1,normal,normal,Future Release,enhancement,new,has-patch,2012-02-10T23:04:29Z,2012-04-26T12:33:25Z,"Canonical uses Wordpress 3.x multisite as part of voices.canonical.com, for employees who do not have or wish to list their personal blog.  The code is stock, except for one patch we maintain, which allows blog names (currently in WP as lowercase alphanumeric only) to also include '.' and '-'.  This matches our global username format.

Attached is a patch extending wpmu_validate_blog_signup() to allow '.' and '-', with a tweak for the error text.  We have been running the patch for awhile, and have not run across any problems with the rest of the code accepting this.",fo0bar
Has Patch / Needs Testing,21674,"Please add ""plugins"" link under ""my sites > network admin"" in toolbar",,Multisite,3.4.1,normal,normal,Awaiting Review,feature request,new,has-patch,2012-08-23T19:13:46Z,2012-08-24T15:43:16Z,This would remove a click and I think a lot of people would enjoy the addition. I know I go to the plugins page more than users or sites combined.,archonic
Has Patch / Needs Testing,18079,WP has dropped support of the path field in the site table,,Multisite,3.0,normal,normal,Awaiting Review,feature request,new,has-patch,2011-07-12T05:06:31Z,2012-11-03T14:25:50Z,"I've had inquiries about sites that used to work in WordPress Mu that no longer work in WordPress 3.1.  

The idea is to have a path based network for each state/province and sites for each city under that, all networks hosted under the same domain. 

Like so
{{{
Network 1:
Network domain: example.com Network path: /ohio/
    site domain: example.com path: /ohio/akron
    site domain: example.com path: /ohio/canton
    site domain: example.com path: /ohio/uniontown

Network 2:
Network domain: example.com Network path: /pa/
    site domain: example.com path: /pa/pittsburgh
    site domain: example.com path: /pa/greensburg
    site domain: example.com path: /pa/erie

Network 3:
Network domain: example.com Network path: /indiana/
    site domain: example.com path: /indiana/indianapolis
}}}
There are two things that are preventing this. First, in new_site, instead of including the path from the sites table for the current network, it uses the global $base variable which is always / in this scenario. Using $current_site->path resolves that. 

The second issue is that the .htaccess code is too restrictive. It will the paths on two levels. /network/site/wp-admin/ doesn't work but /site/wp-admin/ does.

Adjusting lines similar to 
{{{
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1
}}}
over to 
{{{
RewriteRule  ^[_0-9a-zA-Z/-]+/(wp-(content|admin|includes).*) $1
}}}
resolves that.

The attached patch addresses both of these requirements.
",brianlayman
Has Patch / Needs Testing,17890,"""Add New Site"" screen reports invalid email addresses as missing",,Network Admin,3.1.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-06-25T11:32:41Z,2011-06-25T11:40:07Z,"The new site user's email is passed through `sanitize_email()` and the screen dies with 'Missing email address.' if it's `empty()`.

`sanitize_email()` returns an empty string (subject to filtering) on invalid email addresses however, so the following `is_email()` check for invalid email addresses is never even reached.

'''Steps to reproduce:'''
1. Add a new site with an email address such as foo@bar",kawauso
Has Patch / Needs Testing,17394,Network Admin -> Sites -> Users not report correctly,,Network Admin,3.1.2,normal,normal,Future Release,defect (bug),reopened,has-patch,2011-05-12T14:10:29Z,2012-04-23T00:12:23Z,"The Network Admin -> Sites -> Users screen does not list all users in the site. I see the symptom of this issue has been reported before, but I have found the cause (in my case anyway).

'''Example Scenario:'''
In my set up I have added plugins that add user roles: a registration plugin that adds ""Registration Admin"" and a event management plugin that adds ""Office"" and ""Committee"". I have the registration plugin installed in all sites (root and test), but the event plugin in only installed in the test site. 

When I add a user to the root site, I can choose the normal roles or ""Registration Admin"", when I add a user to the test site I can choose the normal roles or any of the 3 new roles that have been added.

'''Problem:'''
When I view the list of users on the Network Admin, not all users are displayed in the list. It appears the Network Admin screen works in the context of the root site, where the event plugin is not installed. As a result, the Office and Committee roles are not available in the root site, and users of the sub-site with the those roles do not show in the user list. 

The filters show the correct total number of users beside All, but the additional roles unique to the sub-site are not listed. In the sub-site Dashboard, they show correctly, and if I install the other plugin to add the Office and Committee roles to the root site they will show in the Network Admin -> Sites -> Users screen for the sub-site. 

It would appear the user list for a sub-site will ignore users that are assigned a role that doesn't exist in the root site, even though they are assigned a valid role in the site displayed. 

This bug is reproducible by adding roles to sub-sites.

I would a happily help with more clarification or resolving this issue as needed. I know it's not critical, but it is very frustrating when administering a large multi-site network.",whiteatom
Has Patch / Needs Testing,18088,Network Admin Email setting in wp-admin/network/settings.php fails silently,,Network Admin,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-07-12T19:56:26Z,2012-01-12T00:47:37Z,"'''Steps to reproduce:'''
1. Go to wp-admin/network/settings.php
1. Try setting your email to support@localhost
1. Page reports success but email remains the same


The check in wp-admin/network/edit.php consists of:
{{{
if ( is_email( $_POST['admin_email'] ) )
	update_site_option( 'admin_email', $_POST['admin_email'] );
}}}

which doesn't account for anything not passing `is_email()`

I know network admins should know what they're doing, but failing silently is a pretty sure-fire way to generate confusion.",kawauso
Has Patch / Needs Testing,17545,Pagination Broken on Network Admin > Edit Site > Themes,,Network Admin,3.2,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-23T17:27:45Z,2011-11-22T17:11:53Z,"Pagination is broken in network admin on pages such as https://example.com/wp-admin/network/site-themes.php?id=XXXXX

You can navigate through pages using the arrow buttons, but entering a page number just reloads the page you’re currently on.

Steps to reproduce:

- From network admin, ""search sites""
- Edit site
- Click ""themes"" tab
- Enter any valid page number in the text field
- Hit enter",pmaiorana
Has Patch / Needs Testing,16096,editing permalink structure in edit site causes 404s on site,,Network Admin,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-01-04T16:15:53Z,2012-11-07T22:19:10Z,"If you edit a sites permalink structure in the network admin edit site screen, the site's rewrite rules do not get updated. The permalink_structure option is used to generate the permalinks on the front end of the site. Hence the rewrite rules will not match the permalinks until the permalink settings screen is visited in the site's dashboard.

The two alternatives are remove the permalink setting from the edit site screen or clear the rewrite rules.

I'm attaching a patch to clear the rewrite rules. The patch uses update_option instead of delete_option because update_option leaves the empty option in the object cache. If the option is deleted then WP will query the DB, add rewrite_rules to the notoptions cache, generate the rules, update the DB & remove rewrite_rules from the notoptions cache.",wpmuguru
Has Patch / Needs Testing,19765,site-users.php in network admin doesn't display users with custom roles,,Network Admin,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-06T18:04:20Z,2012-01-07T14:03:30Z,"In the network admin when looking at the users of a specific site, if the site has a custom role the users with that role will not show up. The patch attached ensures that switch_to_blog() is used at the correct places so that data is being gathered from the correct site, not from the main site.",wpdavis
Has Patch / Needs Testing,19862,"""My Sites"" menu should include ""Create a new site"" if enabled in Network settings",,Network Admin,3.3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-20T16:58:14Z,2012-02-13T04:22:49Z,"The ""My Sites"" menu should include ""Create a new site"" if blog registration is enabled in Network settings.",ebellempire
Has Patch / Needs Testing,18777,Add new site valid domain filter,,Network Admin,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-26T11:41:32Z,2011-09-26T12:02:50Z,"I've a client who wanted to add subdirectory sites in a multisite install e.g.:

example.com/department1/johnjoe

example.com/department2/fredbloggs

etc. But to do this, they had to add the site without the slash, then go back, and edit the sites URL.

So to allow support for this, ( coupled with the obligatory custom sunrise.php ) and to allow error checking ( e.g. not allowing depoortment1, and only allowing a preset number of subfolders ), I added a filter.

You'll find attached a small patch to site-new.php adding this filter",TJNowell
Has Patch / Needs Testing,23462,Add top Save Settings button for MU Site settings,,Network Admin,3.0,normal,trivial,Awaiting Review,enhancement,new,has-patch,2013-02-13T05:21:47Z,2013-02-13T23:03:47Z,"It's quite a long list, and it'd be awesome to have a button at the top to use, as well as at the bottom, so that one doesn't have to scroll all the way down just to save.",tw2113
Has Patch / Needs Testing,15389,Make New Site & New User Network form pluggable.,,Network Admin,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-11-11T16:43:32Z,2011-01-13T05:31:13Z,"'''Problem:''' Currently the only way to add additional fields to the new site & new user network form is by dynamically injecting them using javascript.

'''Solution:''' They should either have action hooks or use the settings API. I'll provide patches for both methods.

In addition, I've added semantic ids to the current form fields so they can be selectively hidden.
",ptahdunbar
Has Patch / Needs Testing,21994,Subdomains may not exceed 63 characters in length,,Network Admin,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-25T22:31:44Z,2012-09-28T07:57:15Z,"According to section 3.1 ""Name space specifications and terminology"" of  [http://www.faqs.org/rfcs/rfc1034.html RFC1034], domain names are nodes in a tree structure and ""Each node has a label, which is zero to 63 octets in length.""

WP should help to correctly enforce this requirement, so I've attached a patch that adds a maxlength=""63"" attribute on the input field on line 126 of wp-admin/network/site-new.php. This should help sites and network admins prevent the creation of blogs hosted on subdomain installs that will not resolve properly, and at the same time allow for maximum length subdomains.",humanshell
Has Patch / Needs Testing,20459,Super admin should be able to bypass banned/limited domains when creating users,,Network Admin,,normal,minor,Awaiting Review,enhancement,new,has-patch,2012-04-16T16:12:25Z,2012-04-16T16:12:25Z,"The function `wpmu_validate_user_signup()` is run whenever a new user is created, either through self-registration (wp-signup.php) or through manual user creation by an admin. `wpmu_validate_user_signup()` does two different kinds of validation: 
(1) validation that is more or less technically required by WP, like spaces in usernames, email/login uniqueness, etc.
(2) checks against some admin-set membership restrictions, namely, email domain whitelist (limited_email_domains) and blacklist (`is_email_address_unsafe()` and banned_email_domains).

The second kind of validation is problematic in the following use case: An MS install might restrict open membership based on email domains, but the admin might occasionally want to make exceptions to the rule and manually create an account. Currently, there are two ways to bypass the built-in checks: to temporarily remove the domain restrictions at Network Admin > Settings, or to filter `'wpmu_validate_user_signup'` and remove the error messages. 

Having to manually change settings for this purpose is pretty hackish. The filter method works, but my experience (from consulting with a fairly large number of MS network admins) is that this is a pretty common use case, so it seems like it should be supported by default. 

So I'm proposing that the domain checks be skipped when `is_super_admin()`. Patch attached.",boonebgorges
Has Patch / Needs Testing,16383,Width of Site Address input box in network/site-new.php,,Network Admin,3.1,normal,normal,Future Release,enhancement,new,has-patch,2011-01-27T02:47:20Z,2012-11-01T05:32:42Z,See screenshots,garyc40
Has Patch / Needs Testing,15691,Network admin should have its own settings API,,Network Admin,,normal,normal,Future Release,feature request,new,has-patch,2010-12-05T19:31:17Z,2013-05-21T18:11:06Z,"preferably using options.php and the same API as normal admin, this way making a plugin multisite compatible (ie. adding a Network admin screen to it) would be much easier.",joostdevalk
Has Patch / Needs Testing,10545,_publish_post_hook (adding to postmeta existing hooks),,Optimization,2.8.1,normal,normal,Future Release,defect (bug),new,has-patch,2009-08-04T21:22:57Z,2010-05-14T08:14:57Z,"The problem that each time yuo press publish (assuming this is a save button) wp add to postmeta table new records even thay already exist now.


{{{
if ( get_option('default_pingback_flag') )
		$wpdb->insert( $wpdb->postmeta, $data + array( 'meta_key' => '_pingme' ) );
	$wpdb->insert( $wpdb->postmeta, $data + array( 'meta_key' => '_encloseme' ) );
}}}

shoud be (something like)
 

{{{
if ( get_option('default_pingback_flag') ){
		get_post_meta($post_id, '_pingme') ? update_post_meta($post_id, '_pingme', 1) : add_post_meta($post_id, '_pingme', 1);
		
	get_post_meta($post_id, '_encloseme') ? update_post_meta($post_id, '_encloseme', 1) : add_post_meta($post_id, '_encloseme', 1);
}}}
",butuzov
Has Patch / Needs Testing,11381,display_page_row() generates boat loads of needless queries,,Optimization,,normal,normal,Future Release,defect (bug),new,has-patch,2009-12-10T12:41:45Z,2010-05-16T06:12:50Z,"on sites with many static pages that are spread across multiple parents, display_page_row() triggers multitudes of calls to the db.

specifically, it's repeatedly calling get_pending_comments_num(). it's also calling get_editable_user_ids() and wp_dropdown_users(), both of which do not seem to cache their results in case they're used several times on the same page.",Denis-de-Bernardy
Has Patch / Needs Testing,8885,get_posts() should default orderby post_date_gmt,,Optimization,2.7,normal,normal,Future Release,defect (bug),new,has-patch,2009-01-19T13:03:12Z,2011-04-27T17:40:37Z,"the function get_posts() in posts.php is defaulted to orderby post_date.  The problem with this is if entries are added in differing timezones (e.g., I changed my system timezone after x number of posts have been made), then the sorting is incorrect.  Since post_date_gmt is correct despite the timezone you are in, sorting based on this should be the default behavior.",caorongjin
Has Patch / Needs Testing,12996,"Clean up some redundant options from new blog setup, and remove legacy wp-hacks support",,Optimization,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-04-14T11:45:31Z,2013-05-14T12:35:41Z,"In the process of updating some plugins for WP 3.0 I came across a few things that look like remnants of old WP versions that don't need to be there any more:

The following options are created during installation, but are  redundant:

- gzipcompression (see [http://core.trac.wordpress.org/ticket/10365 #10365])

- advanced_edit (no idea what this was for)

- hack_file

With regard to hack_file - it's been deprecated since 1.5 and there is no longer an admin option for it - isn't it about time to remove it completely? See also [http://core.trac.wordpress.org/ticket/9551 #9551]

Proposed patch to follow.",solarissmoke
Has Patch / Needs Testing,6860,Make clean_post_cache child cleaning optional,,Optimization,2.5.1,normal,normal,Future Release,enhancement,new,has-patch,2008-04-27T22:13:40Z,2010-07-15T02:17:42Z,"clean_post_cache() makes a MySQL query in every call to clean the cache for child posts. This should be optional if the caller knows that there are no child posts or they're not cached.

Background: I need to query all posts have to clean the post cache to stay within the memory limits. Before 2.5 this was fine with clean_post_cache, but since the update the php execution time increased extremely because of this additional db query.",arnee
Has Patch / Needs Testing,10683,White space cleanup in atomlib.php,,Optimization,2.9,low,minor,Future Release,enhancement,new,has-patch,2009-08-25T13:53:51Z,2009-11-17T15:20:20Z,White space cleanup and unnecessary braces deleted in atomlib.php,Simek
Has Patch / Needs Testing,12491,"add a pre_template_include filter, so as to allow caching of the template file",,Optimization,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-03-03T00:29:22Z,2010-10-28T11:38:14Z,"rather than running file exists all over the place in the template loader, we should offer the possibility for a plugin to cache the information for use in subsequent pages.",Denis-de-Bernardy
Has Patch / Needs Testing,11384,rewrite->flush() needlessly deletes the rewrite_rules option,,Performance,2.9,normal,normal,Future Release,defect (bug),new,has-patch,2009-12-10T13:39:52Z,2010-11-13T07:30:14Z,"All sorts of cache-related plugins hook into the update_option_rewrite_rules and force-flush whatever they're caching when rewrite_rules are updated.

When a page is saved, WP_Rewrite::flush() mindlessly deletes the rewrite_rule option, triggering all sorts of cache flushing that may or may not be necessary.

The attached patch keeps the rewrite_rules option intact when a soft refresh occurs.

Tests done:

 - non-verbose rules used, page changes parent: no refresh
 - verbose rules used, page changes parent: refresh

Dunno what else needs to be testing...",Denis-de-Bernardy
Has Patch / Needs Testing,19867,wp_dropdown_users() still not scalable,,Performance,3.3.1,normal,normal,Future Release,defect (bug),new,has-patch,2012-01-20T22:04:27Z,2013-02-11T13:31:09Z,"#14572 made huge improvements to the performance of wp_dropdown_users(), however, on certain sites that have an unusually large set of authors, wp_dropdown_users() still isn't usable.  It either causes a memory error on the server, or potentially crashes the client browser due to content size.",prettyboymp
Has Patch / Needs Testing,24044,Add index to wp_options to aid/improve performance,,Performance,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-04-11T11:26:54Z,2013-05-07T21:34:09Z,"I work for a hosting company and we manage many '000s of WP sites for people. In order to improve the performance of all of these instances I find myself adding an index onto wp_options autoload many times daily.

I'm aware this is a small gain, but any gain is good.

This index will be hit on every single page load.",DanBUK
Has Patch / Needs Testing,13580,Ajax Tag Search crashes browsers on databases with large tag lists or slow connections,,Performance,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-05-27T16:54:01Z,2013-05-10T12:44:04Z,"In short, many conditions can cause the ajax-tag-search to take a long time. This is not just limited to database size or speed but is also dependent upon the speed of the author's connection. When a browser JS call times out, the user can hit stop script, however the script is usually triggered again almost immediately. The end result currently seems to be the browser session crashing. At best, when these delays happen, getting suggestions for tags can take 30+ seconds be a very tedious process.

This simple backwards compatible patch addresses the issue by allowing site by site customization of the variables involved.

This patch references two new option values:[[BR]]

ats_min_chars - Allows you to specify how many letters must be typed before the search is done. Currently, this number is hard coded at ""2"". That is the default for the patch..[[BR]]

ats_min_count - Allows you to eliminate tags that are used infrequently. This uses the count column on the already included term_taxonomy table; so it does not expand the query at all. It defaults to ""0""

The code in this patch has been running live at b5media for a while now with the defaults of 3 for min chars and either 10 or 20 for the post count dependent upon which site is involved.",brianlayman
Has Patch / Needs Testing,19372,Don't call wp_count_comments() when we don't need to,,Performance,3.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-11-27T16:37:27Z,2012-09-03T16:20:09Z,"Comments get counted on every admin screen with `wp_count_comments()`. We can skip a database call by not counting them if the user doesn't have the `edit_posts` capability.
----
''Side note:'' With a persistent object cache it's possible to have admin screens with zero database queries with this patch applied. As an exercise you could write a database class that lazy loads MySQL and you'll get an admin screen that doesn't load MySQL. Almost completely pointless, but interesting nonetheless.",johnbillion
Has Patch / Needs Testing,12641,Move comment-reply to the bottom of the page,,Performance,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-03-18T23:46:25Z,2013-03-15T20:17:30Z,"The general rule for browser performance is to load JavaScript as late in the page as possible.  The TwentyTen theme makes use of the comment-reply JavaScript code that comes with WordPress, and includes in the header.  From what I can tell there's no need to include it in the header, since it deals with the comment reply form, generally at the bottom of the page.

So I did some tests.  I removed the

{{{ <?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?> }}}

in header.php and replaced it with 

{{{ <?php if ( is_singular() ) wp_print_scripts( 'comment-reply' ); ?> }}}

at the very bottom of footer.php, just after the wp_footer() call and before the closing BODY and HTML tags.  The idea being to allow browsers to load the comment-reply JS as late as possible.

I then used webpagetest.org to run load tests (IE8).  Here's the waterfall chart before my changes - http://www.webpagetest.org/result/100318_63M1/1/details/ - and after my changes - http://www.webpagetest.org/result/100318_63M3/1/details/

You'll notice that the after chart has more parallel downloads of page resources.  Specifically in the before chart all other downloads are blocking until it finished getting comment-reply.js.

I also looked at the charts in Chrome (resource inspector) and Firefox (firebug), both show similar results, with more parallel downloads happening with comment-reply JS moved to footer.php.

I haven't seen any downsides to this move so far.  If this breaks something or causes other problems let's see what we can do to deal with them.  In the mean time I'm including a simple patch to make this change.
",josephscott
Has Patch / Needs Testing,23473,Performance Improvement in three JavaScript Source Codes,,Performance,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-14T02:44:14Z,2013-02-15T17:19:29Z,"By performance profiling in Internet Explorer 10, Firefox 17 and Chrome 25, I found performance improvement in wp-admin/js/post.js, wp-includes/js/media-views.js and wp-includes/js/utils.js. Function clean() at line number 17 in post.js, function set() at line number 98 in util.js and function visibility() at line number 2767 in media-views.js can be improved with same functionality.

I measured inclusive execution times of original code and improved code. The image is the result. The machine I used to measure execution times has Intel Core i5 1.6GHz CPU and 4GB RAM. 

I also attached a patch file.",yongbae
Has Patch / Needs Testing,16706,"Queries using ""category__and"" are slow on large databases",,Performance,3.1,normal,normal,Future Release,enhancement,assigned,has-patch,2011-02-28T22:20:52Z,2012-11-12T16:22:40Z,"Summary: Using ""category!__and"" in query_posts() generates a dependent subquery in MySQL with extremely poor performance (""Using temporary, Using filesort"") when one of the categories has a large number of posts. The result is so slow that WordPress appears to completely hang. Changing the query structure avoids the filesort and solves it.

Details:

We have a customer doing this as part of a theme in WordPress 3.1:

{{{
query_posts(array(
  ""category__and"" => array(1, 461),
  ""posts_per_page"" => 6
));
}}}

The database is fairly large. There are 45,610 posts in category 1, and 167 posts in category 461. The resulting database query runs for so long that it effectively hangs (it doesn't finish within 30 minutes).

The generated MySQL query looks like:

{{{
SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  WHERE 1=1  AND ( wp_posts.ID IN (
  SELECT object_id
  FROM wp_term_relationships
  WHERE term_taxonomy_id IN (1,461)
  GROUP BY object_id HAVING COUNT(object_id) = 2
) ) AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 6;
}}}

An ""explain"" on this query shows that it generates a dependent subquery that devolves to a filesort:

{{{
+----+--------------------+-----------------------+-------+------------------+------------------+---------+-------------+-------+-----------------------------------------------------------+
| id | select_type        | table                 | type  | possible_keys    | key              | key_len | ref         | rows  | Extra                                                     |
+----+--------------------+-----------------------+-------+------------------+------------------+---------+-------------+-------+-----------------------------------------------------------+
|  1 | PRIMARY            | wp_posts              | ref   | type_status_date | type_status_date | 44      | const,const |  8177 | Using where; Using index                                  |
|  2 | DEPENDENT SUBQUERY | wp_term_relationships | range | term_taxonomy_id | term_taxonomy_id | 8       | NULL        | 25665 | Using where; Using index; Using temporary; Using filesort |
+----+--------------------+-----------------------+-------+------------------+------------------+---------+-------------+-------+-----------------------------------------------------------+
}}}

I've tried adding indexes, optimizing, and so on to get the filesort to go away, but I can't get it to do so, at least not with MySQL 5.0.x.

The filesort comes from the ""GROUP BY ... HAVING"". Changing the query to avoid those fixes this. For example, this appears to produce the same results:

{{{
SELECT SQL_CALC_FOUND_ROWS  wp_posts.* FROM wp_posts  WHERE 1=1  AND
(
  SELECT COUNT(1)
  FROM wp_term_relationships
  WHERE term_taxonomy_id IN (1,461)
  AND object_id = wp_posts.ID
) = 2
AND wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish') GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 6;
}}}

But it finishes in a fraction of a second and generates cleaner ""explain"" output with no filesort:

{{{
+----+--------------------+-----------------------+------+--------------------------+------------------+---------+----------------------+------+--------------------------+
| id | select_type        | table                 | type | possible_keys            | key              | key_len | ref                  | rows | Extra                    |
+----+--------------------+-----------------------+------+--------------------------+------------------+---------+----------------------+------+--------------------------+
|  1 | PRIMARY            | wp_posts              | ref  | type_status_date         | type_status_date | 44      | const,const          | 8177 | Using where              |
|  2 | DEPENDENT SUBQUERY | wp_term_relationships | ref  | PRIMARY,term_taxonomy_id | PRIMARY          | 8       | database.wp_posts.ID |    1 | Using where; Using index |
+----+--------------------+-----------------------+------+--------------------------+------------------+---------+----------------------+------+--------------------------+
}}}

So my suggestion is that the ""category!__and"" query be changed to something like this that avoids filesorts. (I could provide a patch if people agree that this change is a reasonable approach.)",tigertech
Has Patch / Needs Testing,18968,Remove some term cache misses,,Performance,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-10-17T01:44:42Z,2011-10-17T15:47:43Z,"On post listing screens a database query is performed for each taxonomy on each post. We can hit the term cache instead by using `get_the_terms()` in place of `wp_get_object_terms()` and `wp_get_post_terms()`.

By default, this change won't impact performance because the term cache isn't primed at this point, but on a site using a persistent object cache it'll hit the term cache each time instead of performing a database query. This saves `{numberofposts} × {numberoftaxonomies}` queries which can be quite a few on custom post type screens which display several taxonomy columns.",johnbillion
Has Patch / Needs Testing,15805,get_page_by_title() lacks caching,,Performance,3.1,normal,normal,Future Release,enhancement,new,has-patch,2010-12-13T21:25:18Z,2011-01-13T07:25:17Z,`get_page_by_title()` always does a database query. It should use the object cache.,Viper007Bond
Has Patch / Needs Testing,23229,Pagination Links Broken,,Permalinks,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-17T23:11:04Z,2013-01-19T04:47:55Z,"Currently, if the request URL ends with ""page/[\d]+/?"" it will always assume that it is the pretty version of the paged parameter, and rewrite that section of the URL.

This breaks in any condition where a numeric value follows that string at the end of a URL. An example that can be easily reproduced is as follows:

1) Set theme to TwentyEleven

2) Modify the theme to output the results of get_pagenum_link(2) anywhere.

3) Change permalink structure to ""/daily-page/%year%/%monthnum%/%post_id%/""

4) Go to a year archive for the permalink structure above.

5) The result of the get_pagenum_link will look like this: ""/daily-/page/2/"", breaking pagination within this context.

I've attached a patch against current trunk code that addresses this, providing the following features:

1) Pagination links functional in the scenario above, along with custom rewrite rules.

2) Updated to allow numeric post names for hierarchical post types (currently always rewritten with ""-2"")

3) Updated get_pagenum_link filter to include pagenum parameter as it was passed in.

",ssmathias
Has Patch / Needs Testing,15928,wp_get_attachment_url does not check for HTTPS,,Permalinks,3.0.3,normal,normal,Future Release,defect (bug),assigned,has-patch,2010-12-21T00:19:48Z,2013-04-29T21:57:41Z,"wp_get_attachment_url, via wp_upload_dir, uses get_option('siteurl') to construct attachment URLs. If you're viewing your blog via HTTPS, the attachment URLs will all use HTTP. leading to mixed secure/non-secure content problems.

the_permalink function handles this nicely, by calling get_permalink, then home_url, then  get_home_url; get_home_url does an is_ssl check and changes the scheme accordingly.

The wp_upload_dir function should probably be changed, so that instead of calling get_option('siteurl') directly, it uses something like get_home_url (or even get_site_url) which check for HTTPS.



",atetlaw
Has Patch / Needs Testing,21112,Add pre_wp_unique_post_slug to override post slug handling,,Permalinks,3.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-29T14:38:32Z,2012-11-08T02:00:49Z,"As originally [http://core.trac.wordpress.org/ticket/20480#comment:4 proposed] in the comments of #20480 (and in fact further back in a [http://core.trac.wordpress.org/ticket/14111#comment:4 comment] for #14111), a `pre_wp_unique_post_slug` filter early in `wp_unique_post_slug()`could be useful and justified for some use cases rather than relying on the existing and late-firing `wp_unique_post_slug` filter for a couple reasons:

* `wp_unique_post_slug()` (and thus this new filter) is not high use, so won't impact performance
* `wp_unique_post_slug()` performs database queries (perhaps repeatedly until a unique slug is found), fires other filters, etc, all of which may be rendered moot if a hooking function's intent is to fully implement its own slug generation/handling logic. The pre slug could short-circuit that unnecessary effort.

The attached patch introduces the new filter in addition to adding related phpDocs.",coffee2code
Has Patch / Needs Testing,20905,Allow rewrite endpoints to specify a different query variable name,,Permalinks,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-06-11T13:53:40Z,2012-08-24T07:02:34Z,"Using `add_rewrite_endpoint()` we can add an endpoint such as `/foo/bar/` which maps to `foo=bar`. I'd like to be able to map an endpoint to a query variable of a different name. Currently the query variable name always matches the endpoint name.

Example: I'd like to use `/p/{number}` as a nice short endpoint for some custom functionality, but the 'p' query variable is used by core. I'd like to be able to map `/p/3/` to `my_query_var=3`.",johnbillion
Has Patch / Needs Testing,21266,Enhancements for page numbers links API,,Permalinks,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-13T20:59:17Z,2012-07-14T21:47:23Z,"Currently WordPress provides few functions to create links with page numbers embedded. Unfortunately they have some limitations:[[BR]]
- `get_pagenum_link()` - works on `$_SERVER['REQUEST_URI']` only;[[BR]]
- `get_comments_pagenum_link()` - works on current post only;[[BR]]
- `_wp_link_page()` - works on current post only, returns HTML code and is private.

Because of these limitations in the past I have reimplemented these functions in my SEO plugin. Now I decided that it will be better if WP core will provide needed functionality.

Attached path introduces following changes for functions:[[BR]]
- `get_pagenum_link()` - added new `$url` param, which can be used to pass any URL to function;[[BR]]
- `get_comments_pagenum_link()` - added two new params: `$post` and `$add_anchor`. The former one allows to pass any post object to function, the latter one tells function if it should append `#comments` at the end of URL;
- `get_post_page_link()` - new function. I moved code from `_wp_link_page()` here and modified it so it can work on any post. Additionally it calls new filter `get_post_page_link` before returning value.[[BR]]

Additionally these functions passes new argument(s) to filter at the end, so it will be easier for plugins to generate different pagination URLs.

I also modified `_wp_link_page()` function (now it calls `get_post_page_link()`) and removed `@access private` from `wp_link_pages()` (as I checked, it is called from themes code only).",sirzooro
Has Patch / Needs Testing,23882,"get_the_permalink() accepts an ID, the_permalink() does not",,Permalinks,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-28T17:12:06Z,2013-04-07T02:48:26Z,"I always found it odd that the_permalink() doesn't accept a post ID passed into it, when get_the_permalink() does, and the_permalink() just calls get_the_permalink().

After scouring trac for a duplicate (and not finding one) I've attached a patch to improve this.

Related: #1271",johnjamesjacoby
Has Patch / Needs Testing,21285,"Don't ping yourself, especially on localhost",,Pings/Trackbacks,1.2,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-07-16T03:33:32Z,2013-01-22T22:53:19Z,"This may just be a conversation starter, but I know these things to be true:

1) there is duplicated code spread between pingback( ) and do_enclose( )[[BR]]
2) If your post contains a bunch of links to your own site, and you save your post in the admin, you will ended up with memory leaks all over the place / seg faults / etc when you get hammered by HEAD requests triggered by the immediate cron that is spawned by the post being saved[[BR]]
3) you probably don't need to trackback yourself anyways

I moved some dupe code into functions and added some checks so we don't ping ourself when saving",wonderboymusic
Has Patch / Needs Testing,23350,Pingback Denial of Service Fix - filter_var based IP validation,,Pings/Trackbacks,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-01T02:24:57Z,2013-02-01T02:44:04Z,"Just a small improvement upon review of [23330] (some points were not clear to me, especially colons in hostnames and trimming of the hostnames for dots; left them as-is).

Also used {{{strcasecmp}}}.

BTW, what about #4137, can it be closed now?
",hakre
Has Patch / Needs Testing,20214,Pingback discovery doesn't strip fragment identifiers from URL,,Pings/Trackbacks,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-03-11T08:34:46Z,2012-05-14T20:44:41Z,"To reproduce:

1. Insert a link containing a fragment identifier into a post, e.g., `http://localhost/wp/helloworld/#comments`.
2. Save post.
3. Observe the URL which !WordPress attempts to retrieve in `discover_pingback_server_uri()` - the requested path contains the `#fragment_identifier`, which it shouldn't, and in most cases will result in a 404, thus the pingback fails.",solarissmoke
Has Patch / Needs Testing,19805,Pingback not sent to https sites,,Pings/Trackbacks,3.3.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-01-11T16:02:45Z,2012-01-11T16:20:42Z,"Wordpress does not attempt to send pingbacks to https sites.  I have tracked this problem to the regular expression used to find links to ping inside a post that is being published.  The regular expression currently will only filter out links to http sites and not https sites.  I have modified the regular expression to include https sites and included a patch with this ticket.

how to reproduce the problem:
* enable sending and receiving of pings/trackbacks on your site
* create a post with with a link to an https site
* publish the post
* no ping will be sent to the https site",norocketsurgeon
Has Patch / Needs Testing,21172,Adding the first filter/action in an earlier priority during a later priority causes the earlier priority to run (last),,Plugins,3.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-07-05T23:30:54Z,2012-07-07T22:41:11Z,"During testing of #21169, it occurred to me that [http://core.trac.wordpress.org/ticket/5338#comment:1] might present a problem with each rather than next/current, but that turns out not to be the case.  Instead, this exposed a different bug:

If you add a new filter at priority 9, when priority 9 did not previously have any filters, during the priority 10 execution, the priority 9 filter will run (!) after all other priorities (since the filters are not resorted after each priority).

(Generally, if you add an earlier priority that did not previously have any filters during a later priority...)

The attached unit test demonstrates this behavior.",devesine
Has Patch / Needs Testing,20944,Changing plugin filename causes Fatal error on automatic activation after update,,Plugins,3.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-06-13T19:43:38Z,2012-07-08T20:56:03Z,"In a new version of a (my) plugin in the WordPress repository, I changed the filename of the main plugin file (to match the folder name).  When an old version of the plugin is activated, doing an automatic update to the latest version of the plugin (with the new filename), the following error message is displayed:  ""The plugin jonradio-display-kitchen-sink/jonradio-kitchen-sink.php has been deactivated due to an error: Plugin file does not exist.""

An immediate manual Activation completes successfully.

Observed on sites with WordPress Network turned off and on, including when the plugin was Network Activated.

Plugin is jonradio Display Kitchen Sink, and update was from Version 1.0 to 1.1.",adiant
Has Patch / Needs Testing,19986,Issue with add_filter() and add_action() when using anonymous functions.,,Plugins,3.3.1,normal,minor,Awaiting Review,defect (bug),new,has-patch,2012-02-07T23:44:49Z,2012-02-08T06:16:26Z,"Referencing File: /wp-includes/plugin.php :: function add_filter()
{{{
function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
	global $wp_filter, $merged_filters;

	$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
	$wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args);
	unset( $merged_filters[ $tag ] );
	return true;
}
}}}

When registering a function with add_filter() and add_action(), a unique id ($idx) is generated to be used as an array key in:

{{{
$wp_filter[$tag][$priority][$idx]
}}}

The function that creates this unique key ($idx) returns the function name passed into the $function_to_add parameter.
{{{
$idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
}}}

If the $function_to_add parameter is a string, the function _wp_filter_build_unique_id() returns the original function name.

{{{
function _wp_filter_build_unique_id($tag, $function, $priority) {
	global $wp_filter;
	static $filter_id_count = 0;

	if ( is_string($function) )
		return $function;
   ...
}
}}}

Returning a string value for the unique id is a problem when the function is an anonymous function generated using create_function(). The reason is anonymous functions are named as ""special character + lambda_XX"" or as ""ºlambda_XX"" where the first character cannot be displayed.

See attached file: anonymous_function_name.jpg

Since array keys can only be integers or strings, the following array is invalid and causes inconsistent behaviors.

{{{
$wp_filter[$tag][$priority]['ºlambda_XX']
}}}

Although I've seen instances where this will still work, I've also observed strange issues with inconsistent results where plugins should work and sometimes do not. One example is with Otto's Simple Facebook Connect plugin.  

See file: sfc-widgets.php
{{{
add_action('widgets_init', create_function('', 'return register_widget(""SFC_Fan_Box_Widget"");'));
}}}

I have not been able to isolate the conditions that allow this to work in one WordPress installation and not in others. However, I have been able to apply a patch to my installation with consistent and successful results.

See attached patch: plugin.php.diff

While this is an obscure and possibly very isolated issue, it could resolve unexplained issues related to using anonymous functions with add_filter() elsewhere.",pagesimplify
Has Patch / Needs Testing,24049,Make Plugin Editor's file list alphabetical by full path,,Plugins,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-04-11T18:24:43Z,2013-04-15T23:07:29Z,"The files under Plugin Editor's (plugin-editor.php) Plugin Files header should be shown in alphabetical order of their full path. Currently their order seems completely random, which makes the list cumbersome to use.",Daedalon
Has Patch / Needs Testing,14060,"Misleading ""You do not have sufficient permissions to access this page.""",,Plugins,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-23T14:46:16Z,2012-06-27T21:50:39Z,"When accessing a page of a plugin in the admin that does not exists any longer, you're told by an error message, that:

> You do not have sufficient permissions to access this page.

This message is a little misleading, because there is no such page.

A message that better reflects the decision to display it would be less misleading, e.g.:

> The requested page is not accessible.


",hakre
Has Patch / Needs Testing,22898,No validation of update_plugins site transient,,Plugins,2.3,normal,normal,Awaiting Review,defect (bug),new,close,2012-12-12T20:50:13Z,2012-12-15T05:55:34Z,"When retreiving available plugin updates, no checks are done on update_plugins site transient. Adding a filter on pre_set_site_transient_update_plugins means any developer can modify the update_plugins transient for a plugin to contain incorrect data.

The attached diff has code which is 'reactive', but performs the minimal checks.

This has been tested on trunk.",warrenholmes
Has Patch / Needs Testing,17552,Plugin editor incorrectly calls some files inactive.,,Plugins,3.1,normal,normal,Future Release,defect (bug),new,has-patch,2011-05-24T23:26:48Z,2013-04-23T02:48:13Z,"The plugin editor has a helpful bit of text at the top to specify if the current file is active on the site or not; This works fine in most cases, however, I've noticed that it only works for the ''plugin file itself''. 

Ie. Editing akismet/akismet.php will specify it's active, Editing akismet/admin.php will show as inactive.

This is due to the use of is_plugin_active() from memory. The solution to this would be to run is_plugin_active() on {{{$_GET['plugin']}}} instead of the file being edited.

{{{$_GET['plugin']}}} has it's own bug however, It's set to whichever file was edited before you loaded the current file (when you switch between files in a plugin that is), which in some cases will be correct, in many others when you're editing multiple files, It'll be incorrect.",dd32
Has Patch / Needs Testing,20920,Removing all hooks too aggressive if a priority number is given,,Plugins,3.3.2,normal,normal,Future Release,defect (bug),new,has-patch,2012-06-12T13:01:13Z,2012-06-13T13:24:30Z,"When you call `remove_all_filters()` or `remove_all_actions()` with a priority number (second parameter), all hooks get removed if none is found with the given priority.

Example:

{{{
#!php
<?php
global $wp_filter;

add_action('my_action', 'callback_foo');
add_action('my_action', 'callback_bar', 20);
var_dump($wp_filter['my_action']);

// At this point only callback_foo is left. Fine.
remove_all_actions('my_action', 20);
var_dump($wp_filter['my_action']);

// Exactly the same function call as above,
// but now all hooks bound to my_action are removed!
remove_all_actions('my_action', 20);
var_dump($wp_filter['my_action']);
}}}

Calling `remove_all_filters()` or `remove_all_actions()` with a priority should never remove hooks with another priority.",GeertDD
Has Patch / Needs Testing,24122,"When opening a file in Plugin Editor, show correct plugin in the dropdown selector",,Plugins,,normal,minor,Awaiting Review,defect (bug),new,has-patch,2013-04-18T12:19:55Z,2013-04-23T02:48:31Z,"When opening a file in Plugin Editor, the reloaded page shows the first plugin according to alphabetical order in the dropdown next to ""Select plugin to edit:"". It should default to the plugin the loaded file belongs to.

Steps to reproduce

1. Open wp-admin/plugin-editor.php
2. Select any plugin from the ""Select plugin to edit:"" dropdown except the alphabetically first one, eg. WordPress Beta Tester, and click Select.
3. The page reloads and WordPress Beta Tester is shown as the default value in the dropdown, as expected.
4. Click any file under Plugin Files, eg. wordpress-beta-tester/readme.txt

-> The page reloads and shows the file in editor. However, ""Select plugin to edit:"" doesn't have a value set and shows the first plugin in alphabetical order by default.

-> However, if you chose the main plugin file, eg. wordpress-beta-tester/wp-beta-tester.php, ""Select plugin to edit:"" shows the correct plugin as the default value.

Any clicked file should lead to its plugin used as the default value for ""Select plugin to edit:"".",Daedalon
Has Patch / Needs Testing,15595,add_menu_page position conflict,,Plugins,3.1,normal,normal,Future Release,defect (bug),reopened,has-patch,2010-11-27T19:42:27Z,2011-04-08T17:42:57Z,"If add_menu_page() gets called more than once using the same value for $position, only one menu item is added while the other is overwritten.",vegasgeek
Has Patch / Needs Testing,9968,dynamically adding/removing filters breaks plugins,,Plugins,,low,normal,Future Release,defect (bug),reopened,has-patch,2009-05-28T23:43:11Z,2013-05-17T09:35:08Z,"noticed this while doing something similar to this:

{{{
add_action('foo', 'bar1', 10);
add_action('foo', 'bar2', 20);

function bar1() {
  remove_filter('foo', 'bar1', 10);
}
}}}

in the above, bar2() doesn't get called. it is because of the usage of next()/current() to loop through filters.

attached patch uses a foreach loop instead, to make it work.",Denis-de-Bernardy
Has Patch / Needs Testing,14159,menu_page_url not returning correct URL for custom submenus,,Plugins,3.0,normal,normal,Future Release,defect (bug),new,has-patch,2010-06-30T18:10:08Z,2010-12-10T03:34:34Z,"When using the menu_page_url() function to determine the URL to a submenu of a custom top-level menu it's not returning the correct URL. 

The function returns:
http://example.com/wp-admin/cpt_main_menu?page=cpt_sub_add_new

The correct URL is:
http://example.com/wp-admin/admin.php?page=cpt_sub_add_new

For reference my submenu is registered like so:

{{{
add_submenu_page('cpt_main_menu', 'Add New', 'Add New', 'administrator', 'cpt_sub_add_new', 'cpt_add_new');
}}}

I tested this on the custom top level menu and the URL returned is correct.  It only appears to be an issue with submenus of a custom top level menu",williamsba1
Has Patch / Needs Testing,18501,plugin_dir_path() returns unsanitized path on Windows installs,,Plugins,2.8,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-08-23T18:40:29Z,2012-06-15T09:33:11Z,"Currently plugin_dir_path() only returns the result of dirname( $file ), which can produce mixed results on local Windows installations.

Attached patch takes pieces from plugin_basename() and plugins_url() to guarantee a working and accurate plugin directory path is returned in all operating systems.

See #BB1596 (and associated revisions) for back-story.",johnjamesjacoby
Has Patch / Needs Testing,15906,validate_plugin needs all_plugins filter,,Plugins,,normal,normal,Future Release,defect (bug),new,has-patch,2010-12-20T03:13:12Z,2011-01-13T06:13:54Z,"If a plugin adds plugins to the plugin list in the plugin admin screens using the all_plugins filter, the added plugins will not validate. If the all_plugins filter is added to the validate function, then the plugin validates and activates fine.


",wpmuguru
Has Patch / Needs Testing,16399,Add a hook to the plugin editor page when the write is successful,,Plugins,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T20:06:30Z,2011-02-01T09:34:54Z,"Add an action or filter to the end of plugin-editor.php's processing when the write is successful. 

The use case is for managing a Wordpress install on an SVN-controlled server. Whenever the CMS changes a file's contents (particularly in the wp-content folder) I need to be able to trigger an svn commit. 

See also: Ticket # 16396",scottconnerly
Has Patch / Needs Testing,16400,Add hook to delete_plugins() on successful delete,,Plugins,3.0.4,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-01-28T20:16:18Z,2011-02-01T09:09:25Z,"Add an action or filter to the end of /wp-admin/includes/plugin.php delete_plugins()'s processing when the write is successful.

The use case is for managing a Wordpress install on an SVN-controlled server. Whenever the CMS changes a file's contents (particularly in the wp-content folder) I need to be able to trigger an svn commit.

See also Ticket # 16399 ",scottconnerly
Has Patch / Needs Testing,14671,"Deprecate the ""accepted args"" argument in add_filter() and add_action()",,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-08-22T20:00:17Z,2013-05-18T16:04:04Z,"There is no harm in passing additional arguments to action/hook callbacks. Why do we force developers to explicitly ask for additional arguments to be passed? It is a maximum, and it doesn't matter if the maximum is exceeded. We can just pass all the arguments, all the time. Callbacks can use them, or ignore them. {{{add_action()}}} and {{{add_filter()}}} can lose their 4th argument.

Ran this by koopersmith and beaulebens, they couldn't find any reasons this would be a problem.",markjaquith
Has Patch / Needs Testing,14994,Introduce a way to identify a hook in progress,,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-09-30T11:22:32Z,2012-08-29T23:36:06Z,"We have did_action() and current_filter() but I've come across a use case for a hybrid of sorts, doing_action().

Problem is, did_action() returns true the moment the hook is fired. Thus if you need to wait until after the hook is done executing, you need to also check current_filter(). The problem arises when there was another hook called since thne, because current_filter() does not traverse back up the stack.

I considered adding an argument to either of the two other functions mentioned, but I think a new function makes the most sense. did_action() only works for actions. While current_filter() works for all hooks, it does one thing and that is to return the current hook. A new function makes the most sense here.

doing_action() might not be the best name because did_action() only works for actions, but this would work for filters as well. At that point, I might recommend doing_hook().

{{{
function doing_action( $action ) {
   global $wp_current_filter;
   return in_array( $action, $'wp_current_filter );
}
}}}

The use case was that a plugin was applying the_content on wp_head. That was messing with my footnotes plugin. So I needed to make sure I had completely processed wp_head first, but there was no way to do that. Now I would be able to check `if ( did_action('wp_head') && ! doing_action('wp_head') )`.",nacin
Has Patch / Needs Testing,10046,"Show ""Go to"" link when update or install plugin.",,Plugins,2.8,normal,minor,Future Release,enhancement,new,has-patch,2009-06-06T09:22:05Z,2013-01-22T01:23:22Z,"Show additional ""go to"" link to plugins page/installer depends on actual situation. Also minor style fix for URL when plugin directory already exist.",Simek
Has Patch / Needs Testing,15515,content_save_pre et al don't supply context,,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-11-20T06:19:48Z,2010-11-21T03:17:29Z,"All of the `{field}_save_pre` filters don't provide any additional parameters with context. The `{field}_edit_pre` (when editing) and `post_{field}` (when displaying) filters pass the $post_id variable as a second parameter. The `{field}_save_pre` filter is the odd one out.

Currently if a plugin uses (for example) the `content_save_pre` filter and needs to know anything about the post (eg. the post type) then it has to use the global $post object directly. It works, but it's not ideal.

Can we add some context to these hooks? All they need is a second parameter containing the $post_id variable to bring them in line with the other field filters.",johnbillion
Has Patch / Needs Testing,15929,plugin_action_links filter does not include page & search context,,Plugins,,normal,normal,Future Release,enhancement,new,has-patch,2010-12-21T03:31:34Z,2010-12-21T15:16:59Z,"The default links in the plugin list tables return the user to the same context (search, page, etc.) that they clicked a link on. A plugin adding links via either of the plugin_action_links filter doesn't have access to either the page or search context.

Patch is attached.",wpmuguru
Has Patch / Needs Testing,19388,plugin_basename returns full directory in URL,,Plugins,3.3,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-11-29T00:36:36Z,2011-11-29T01:25:50Z,"If a trailing slash is specified on either then WP_PLUGIN_DIR or WPMU_PLUGIN_DIR settings, the plugin_basename function returns the whole directory path in the URL.

The documentation does state not to use a trailing slash, however I think this function could be improved.

By removing the explicit / in the preg_replace the correct plugin name will be returned even if a trailing slash is specified on the WP_PLUGIN_DIR or WPMU_PLUGIN_DIR constants.

This should not affect the relative path as the trim before the return takes care of stripping off the first slash if it exists (effectively duplicating the remove in this case).

While this is a very trivial change that won't affect most people (who read the docs properly) it was quite annoying to track down.

Please see the attached diff.",damianzaremba
Has Patch / Needs Testing,19306,"remove_all_filters() should set to array(), not unset",,Plugins,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-11-20T19:11:49Z,2011-11-21T10:01:56Z,"Consider this use case: You want to hook into priority 0 of an action and run remove_all_actions() for all other callbacks.

Since we use current() and next() to iterate, rather than making a copy of $wp_filter to loop through it, this should work.

Unfortunately, current() and next() expect an array, and only stop when next() returns === false. remove_all_filters() does an unset() on $wp_filter[$tag], which means next() returns A) a warning, and B) null. The null causes an indefinite loop.

Test code:
{{{
add_filter( 'test_filter', function() { remove_all_filters( 'test_filter' ); return 0; }, 0 );
add_filter( 'test_filter', function() { return 1; }, 1 );
add_filter( 'test_filter', function() { return 2; }, 2 );
var_dump( apply_filters( 'test_filter', -1 ) );
}}}",nacin
Has Patch / Needs Testing,24378,Filter to hide post format icons in list table,,Post Formats,trunk,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-20T23:32:20Z,2013-05-23T17:48:11Z,"True to form of being able to hide the Post Formats UI, we should have a like-filter to hide the post format icons in the list table.

Patch attached.",DrewAPicture
Has Patch / Needs Testing,20534,Featured Image (Post Thumbnail) SSL Issue,,Post Thumbnails,2.9,normal,normal,Awaiting Review,defect (bug),new,has-patch,2012-04-24T15:46:37Z,2013-05-17T04:41:50Z,If the wp-config FORCE_SSL_ADMIN constant has been set to true then the Featured Image within the Edit Post page will still load without HTTPS. This isn't a huge deal but it breaks the SSL on the page. Patch fixes this.,justindgivens
Has Patch / Needs Testing,11571,Provide easy way to return url of thumbnail image,,Post Thumbnails,2.9,normal,normal,Future Release,enhancement,new,has-patch,2009-12-23T06:01:07Z,2012-03-28T20:56:27Z,"I'm sure that there is probably a hack for doing this, but for those who aren't interested in custom functions, etc., I would like a simple built-in function for referencing the thumbnail image url (or a size version of it) without bringing in the predefined image tag. I tried applying a workaround, but it collided with a plug-in I was trying to use, and hacking a pre-2.9 plug-in to use the post plugin has not gone so well because of the image tag that the get_post_thumbnail function returns. ",braindrain
Has Patch / Needs Testing,18067,update_post_thumbnail_cache - accept WP_Query instance,,Post Thumbnails,3.2,normal,minor,Awaiting Review,enhancement,new,has-patch,2011-07-11T15:03:21Z,2011-07-11T15:03:21Z,"Following what [http://core.trac.wordpress.org/ticket/15447#comment:26 scribu said in another ticket];
> ...What would be nice would be to allow update_thumbnail_cache() to be used for custom loops too. 
> 
> I'm thinking of adding an optional $_wp_query parameter. Then, knowledgeable developers could call it before rolling their custom loop.

I agree - it would be dead handy to be able to just call {{{update_post_thumbnail_cache( $my_query )}}} - see revision.",TheDeadMedic
Has Patch / Needs Testing,23603,Custom post password form label,,Post Types,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-02-25T08:46:38Z,2013-02-26T05:42:45Z,"[http://core.trac.wordpress.org/browser/trunk/wp-includes/post-template.php?rev=23416#L1214 get_the_password_form()] hardcodes the password protected message.

{{{#!php
__(""This post is password protected. To view it please enter your password below:"")
}}}

This results in misbehavior, wherein all post types (including Pages) do not make a distinction between what is password protected.
Considering the difficulty of chunking up that string to be dynamic and more importantly easily localizable, I attach a draft patch which makes that message a label instead.",soulseekah
Has Patch / Needs Testing,23302,Feeds or Feed - add_permastruct missunderstanding.,,Post Types,3.5.1,normal,normal,Awaiting Review,defect (bug),new,has-patch,2013-01-27T16:00:59Z,2013-01-27T16:19:00Z,"In case of register_post_type you ""can"" specify to add feeds to permalink structure or not. You actualy [http://codex.wordpress.org/Function_Reference/register_post_type can do that] by specifing a 'feeds' element to '''false''' in rewrite array.

But add_permastruct doesn't accept feeds element of rewrite argument. Its accept 'feed' element which default is true. So in this case  its not posible to disable feeds for any post type via register_post_type API.",butuzov
Has Patch / Needs Testing,20462,Shouldn't have to pass 'post_category' to wp_update_post(),,Post Types,,low,minor,Future Release,defect (bug),new,has-patch,2012-04-16T23:35:53Z,2013-05-20T11:59:32Z,"Custom post types don't usually have the 'post_category' field set, which means that wp_update_post() throws an Undefined Index notice when we don't pass it explicitly.",scribu
Has Patch / Needs Testing,19286,Users without access to Comments screen can see links to it,,Post Types,3.0,normal,normal,Awaiting Review,defect (bug),new,has-patch,2011-11-18T11:09:17Z,2011-12-02T04:42:09Z,"The comments bubble that shows on up next to each post on post listing screens doesn't check for the `edit_posts` capability. This means on post type screens where a user has the `edit_{post_type}` capability but not the `edit_posts` capability, the comment bubble links to the Comments screen which they do not have access to.

We should still show the comment bubble in this case but not link it to the Comments screen.
",johnbillion
Has Patch / Needs Testing,19954,wp_insert_post should look if default category is nessesary,,Post Types,,normal,normal,Future Release,defect (bug),new,has-patch,2012-02-03T14:58:14Z,2012-10-18T14:31:27Z,"When creating an post object with get_default_post_to_edit(), wp_insert_post() will ignored the set category.
It doesn't look if the post has already a good category.",markoheijnen
Has Patch / Needs Testing,23399,Add filter wp_insert_attachment_data mirroring wp_insert_post_data,,Post Types,3.5,normal,minor,Awaiting Review,enhancement,new,has-patch,2013-02-05T21:36:26Z,2013-02-05T21:56:44Z,"In commercial applications it's handy to use the wp_insert_post_data filter in wp_insert_post() to control attributes of a post being inserted based on the user's role and other variables.  We're using this to force content to go through a complex approval process which runs off of the post status.

wp_insert_attachment() does not have a similar filter, which makes content approval processes difficult to implement.

This patch adds a filter named wp_insert_attachment_data filter to wp_insert_attachment() which mirrors the form and functionality in wp_insert_post().",israelshirk
Has Patch / Needs Testing,14077,Add support for removal of multiple features from a post type in remove_post_type_support,,Post Types,3.0,normal,minor,Future Release,enhancement,new,has-patch,2010-06-24T18:10:59Z,2012-07-12T00:52:41Z,"From [http://groups.google.com/group/wp-hackers/browse_thread/thread/1843101eba1f29fc this thread]

add_post_type_support allows an array to be passed as the 2nd parameter, but remove_post_type_support doesn't.

The patch attached adds the functionality.",Utkarsh
Has Patch / Needs Testing,19257,"Allow post types to override the phrase ""Featured image""",,Post Types,3.0,normal,normal,Future Release,enhancement,new,has-patch,2011-11-16T04:59:02Z,2012-08-30T15:44:50Z,"It would be nice if the phrase ""Featured image"" could be filtered so it could be tailored to fit its post type. For example:

 * A post type of 'person' could set it to 'Mugshot'
 * A post type of 'album' could set it to 'Cover art'
 * A post type of 'company' could set it to 'Company Logo'

Patch upcoming.",johnbillion
Has Patch / Needs Testing,23458,"Implement filters on post_status, check get_post_status() instead of the object's post_status in get_post_permalink()",,Post Types,3.5,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-02-12T17:16:35Z,2013-02-12T17:20:50Z,"We have some custom post types that we wanted to implement the `inherit` post_status on, using the pattern created by attachments that allows child posts to inherit their status from the parent. In our case we have a top-level custom post that has a number of children of a different post type, and we wanted to make it easy to publish the entire set simply by publishing the parent.

In implementing this, however, we discovered some hard coded assumptions in `get_post_permalink()` and `get_post_status()` that got in our way. Examples:

`get_post_status()` has specific support for `inherit` as a post status, but only for `attachment` post types. Everything else can pound sand. To work around this we added a filter to the return value, which seemed to be both the most compatible and lowest-cost way to implement such a change. It looks like this: `return apply_filters( 'get_post_status', $post->post_status, $post );`.

And in `get_post_permalink()` we found that it's checking `$post->post_status`, making it impossible to ascend the hierarchy and get the status of the parent. The change there was also pretty straightforward: `$draft_or_pending = get_post_status( $id ) && in_array( get_post_status( $id ), array( 'draft', 'pending', 'auto-draft' ) );`.

I believe this is compatible with #23169 and #23168, which seek to improve support for custom `post_status`es. The only other recent ticket/changeset I found mentioning post_status was r22963, which changed from `get_post_status( $id )` to `$post->post_status` for compatible, but opposite reasons.",misterbisson
Has Patch / Needs Testing,23759,Pass $update to save_post and wp_insert_post actions,,Post Types,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-03-13T15:14:35Z,2013-04-04T04:23:44Z,For now it's hard to check if the post is updated or publish for the first time when using save_post and wp_insert_post hooks,alex-ye
Has Patch / Needs Testing,21253,Replaces deprecated get_delete_post_link in class-wp-posts-list-table.php,,Post Types,3.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-07-13T04:41:31Z,2012-07-13T04:41:31Z,Changing the ajax nonce actions from post-post_type_ to post_ in #21194 allows us to change deprecated get_delete_post_link() to wp_nonce_url() in class-wp-posts-list-table.php.  Patch requires #21194 to work on custom post types.,c3mdigital
Has Patch / Needs Testing,16264,Add function get_pages_by_template(),,Post Types,3.1,normal,normal,Awaiting Review,feature request,new,has-patch,2011-01-16T19:38:15Z,2011-10-22T03:14:18Z,"This patch adds a function `get_pages_by_template()` to `/wp-includes/post.php`. It accepts a page template string and returns an array of post objects keyed by the pages that use the template:

{{{
$pages = get_pages_by_template( 'page-about.php' );
}}}

Using WordPress for CMS I've been finding a need to provide links to specific pages in a more robust way than hardcoding their `post_id` or even referencing their `post_name`/`URL slug` and the way I've identified that works well is to locate a page by it's page template. Here a function that a theme might write that would use the function I'm proposing be added:

{{{
function get_about_page_link() {
  $pages = get_pages_by_template( 'page-about.php' );
  if ( count( $pages ) )
    return get_page_link( get_post( $pages[0] )->ID);
  return false;
}  
}}}

Unfortunately WordPress does not have efficient functionality  in core that would allow a themer to lookup a page or a list of pages by their templates thus requiring the theme developer to resort to SQL which is ideally avoided. 

Thus I'm providing this patch to enable a themer to do this lookup without having to resort to SQL.
The patch also fixes a typo that affects phpdoc in the same file: @parem => @param.
",mikeschinkel
Has Patch / Needs Testing,19569,Press This Editor shows separate media icons,,Press This,3.3,normal,normal,Future Release,defect (bug),new,has-patch,2011-12-15T19:01:07Z,2012-10-18T14:28:37Z,"Press This still shows multiple media upload icons: Add Image and Add Video (the third is from Grunion, and should be ignored for the purposes of this ticket).

[[Image(http://f.cl.ly/items/1g0f0s0N3E0B0c3f142l/press-this.jpg)]]",Ipstenu
Has Patch / Needs Testing,16940,Prevent 403 errors in Press This,,Press This,,normal,normal,Future Release,defect (bug),new,has-patch,2011-03-22T23:54:38Z,2011-03-30T22:44:12Z,"The problem: 

Some hosts have lame mod_security rules that block unencoded urls, making Press This unusable.

Source: http://forums.hostgator.com/apache-upgrade-broke-feature-wordpress-t40603.html

The fix:

Replace:

{{{u='+e(l.href)+'}}}

With:

{{{u='+e(l.href.replace(/\//g,'\\/'))+'}}}

Source: http://wordpress.org/support/topic/press-this-results-in-404?replies=22#post-1008326",scribu
Has Patch / Needs Testing,7824,Add referral link in Press It,,Press This,,low,minor,Future Release,enhancement,new,has-patch,2008-10-02T05:27:08Z,2010-07-15T02:01:24Z,"I'm the developer of a feed aggregator and a feature we'd love is to have something like ""(via feed reader) after the normal ""via"" section in the Press This panel.

I'm willing to make the patch myself if it would be accepted.",rmccue
Has Patch / Needs Testing,18843,Add unique admin_head action to Press This,,Press This,3.3,normal,normal,Future Release,enhancement,new,has-patch,2011-10-02T15:42:11Z,2011-11-15T03:25:06Z,The Press This page should have its own admin_head-foo action.,sillybean
Has Patch / Needs Testing,21551,Press This Structural Rewrite,,Press This,3.4.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-08-11T19:59:54Z,2013-01-24T12:25:37Z,"This is a ticket to tidy up and abstract some of the Press This code into wp-admin/includes/press-this.php to make it simpler to work with and use functionality in plugins and such.

Once this structural change is done, I've got a couple enhancements coming down the pipes including reading OG/Twitter/Meta tags from the source page, simpler upgrades to the JS (jorbin's suggestion) better image pulling, etc.

This patch below, however, is merely structural, not adding in any new functionality, merely tidying up what we've got so far.",georgestephanis
Has Patch / Needs Testing,14164,do_meta_boxes on press-this.php,,Press This,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-01T02:16:51Z,2010-10-28T06:10:16Z,"Right now, there is no way of add meta boxes to the Press This bookmarklet. A simple call of `do_meta_boxes()` allows plugin/theme authors to easily hook into the bookmarklet. 

{{{
do_meta_boxes( 'press-this', 'normal', '' );
}}}

That seems to work like a charm.",SpencerFinnell
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,11330,Empty search takes you to homepage instead of empty search page,,Query,2.8.5,low,minor,Future Release,defect (bug),new,has-patch,2009-12-04T21:57:23Z,2013-03-05T19:55:11Z,"1. In the admin tool, if you go to ""Settings->Reading"" then choose ""A static page (select below)"" and choose a page for your ""Front page"" and a different page for your ""Posts page"". 
2. Visit your blog (http://localhost/ in my case) and you will see your static page. 
3. Navigate to your blog (http://localhost/blog/ in my case). 
4. Enter a search string (e.g. ""test"") and click ""Search"". This will take you to the search results page (http://localhost/?s=test in my case). Notice that it is located at the base of your site.
5. Return to your blog, leave the search textbox blank and click ""Search"". This _should_ take you to the search results page but takes you to the _Homepage_ instead (http://localhost/?s= in may case).

IMHO, a blank search string _should_ take you to the search page and state ""No posts found. Try a different search?"" as it does when you enter an invalid search. At the very least, it should take you to the blog page.

The reason it takes you to the homepage is due to how the get_search_form() function in the /wp-includes/general-template.php file creates the Action url for the search form:

{{{
$form = '<form role=""search"" method=""get"" id=""searchform"" action=""' . get_option('home') . '"" >'
}}}



I propose a change in the code that will do the following:
{{{
if(get_option('show_on_front') == 'page'){//if the blog is not the front page
	$searchAction = get_page_link(get_option('page_for_posts'));//get the link to the blog
}else{//if it is the front page
	$searchAction = get_option('home').""/"";//get the link to the home
}

$form = '<form role=""search"" method=""get"" id=""searchform"" action=""' . $searchAction . '"" >
}}}

That way, at the very least, you know the search is landing where it belongs.

This, however, does not _fix_ the issue where a blank search does not land you on the search page. My guess is, wherever it is determined what page is displayed, there is a check for something like:
{{{
if($_REQUEST['s']!=''){
  //if the request var 's' is not blank, this is a search
}
}}}

If that is indeed the case, a simple change of the code to something like this should do the trick:
{{{
if(isset($_REQUEST['s'])){
  //if the request var 's' isset, this is a search
}
}}}",jacobfogg
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,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
Has Patch / Needs Testing,23329,Deprecate is_main_query(),,Query,,normal,normal,Future Release,enhancement,new,has-patch,2013-01-30T21:04:29Z,2013-05-14T13:48:58Z,"The function `is_main_query()` is misleading, and rather useless. In practical situations, it is necessary to reference the method in the current query object, such as when used at the `pre_get_posts` action. 

The example in the Codex is even wrong:
{{{
  add_action( 'pre_get_posts', 'foo_modify_query_exclude_category' );

  function foo_modify_query_exclude_category( $query ) {
      if ( ! is_admin() && is_main_query() && ! $query->get( 'cat' ) )
          $query->set( 'cat', '-5' );
  }
}}}
I propose deprecating the function as an encouragement for users to refer to the query object method instead.",ethitter
Has Patch / Needs Testing,20044,Enable search for pages by slug,,Query,,normal,trivial,Awaiting Review,enhancement,new,has-patch,2012-02-14T22:17:58Z,2012-10-31T22:56:13Z,"Would be nice to be able to search a page by its slug. Might need to be a bit different depending on the permalink-strategy. 

Steps to reproduce(with Post name-permalinks enabled):
1. Create a new page with a specific slug
2. Save page
3. Search for the exact slug-name
",ekitomat
Has Patch / Needs Testing,18748,Generalize 'tag_id',,Query,3.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-09-22T15:29:19Z,2011-09-22T15:56:38Z,"Currently, there's special handling for the 'tag_id' query var.

It would be nice to be able to define an equivalent query var for custom taxonomies. Example use case: #18747",scribu
Has Patch / Needs Testing,21986,Roll sticky posts into MySQL query,,Query,3.4.2,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-09-24T19:10:09Z,2012-12-19T19:53:55Z,"The way that WP currently queries for sticky posts is quite long winded and prone to error. Sticky posts output behaviour is erratic when using pagination or ordering. I suggest that the sticky posts feature would be better served by being rolled into the MySQL query rather than trying to reconstruct the result set after the main query has run.

I have tested the attached patch against 3.4.2 and it works as expected. The query additions are performed on every page of home, rather than just the first, so that page boundaries behave as expected and that the sticky posts don't appear on subsequent pages. ignore-sticky-posts is honoured.",martinshopland
Has Patch / Needs Testing,22209,Simplify logic to generate home path when parsing request,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-10-17T03:37:24Z,2012-10-17T04:25:45Z,"In `WP::parse_request()` we go through a few steps to generate the `$home_path` variable.  Since we now require PHP 5.2, we can use `parse_url()`'s second argument to get the path directly.",evansolomon
Has Patch / Needs Testing,17093,Validation and context parameter for query filter application,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-09T13:54:45Z,2011-04-09T19:47:21Z,"One improperly implemented query filter can easily crash a site, and this risk only increases with use of filterable get_posts() calls throughout wp-admin.

In the most common scenario, a posts_where or posts_request filter fails to return a value. Even if the filter was intended for wp-admin but was not added selectively based on is_admin(), the site front end is crashed.  It's the plugin's fault, but leaves the end user wondering why WP can't be more robust.

The associated patch eliminates that scenario by checking is_null() before accepting a filtered value.  If null, the filter is ignored, with a warning triggered if WP_DEBUG is defined.  Since this validation is performed in apply_query_filters() rather than the heavily-used apply_filters(), new overhead is minimal.

Another benefit of a dedicated apply_query_filters() function is the ability to apply filters selectively based on a query_context specified by supplemental get_posts() calls.  This will also tend to mitigate the scope of query filtering errors if use of the context parameter becomes standard practice for get_posts() execution and filtering.",kevinB
Has Patch / Needs Testing,17019,add hooks for Media Library attachment counts,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T16:48:24Z,2011-04-09T06:00:38Z,"The Media Library attachments listing and edit links can be filtered via existing WP_Query and has_cap hooks.  However, corresponding attachment counts are not cleanly filterable.

The submitted ticket adds the following filters:

 * function wp_count_attachments() - result filter 'count_attachments'

 * WP_Media_List_Table::get_views() - query filter 'attachment_orphans_query'

 * function update_gallery_tab() - query filter 'gallery_attachment_count_query'",kevinB
Has Patch / Needs Testing,15033,ajax find_posts should use get_posts(),,Query,,normal,normal,Future Release,enhancement,new,has-patch,2010-10-04T22:12:08Z,2012-02-13T04:56:01Z,"Currently, the find_posts action uses a direct SQL query instead of using the available API.",scribu
Has Patch / Needs Testing,19705,better taxonomy query URL syntax,,Query,3.3,normal,normal,Awaiting Review,enhancement,new,has-patch,2012-01-01T00:30:36Z,2012-01-04T00:45:56Z,"Problem: WP's native taxonomy URL syntax supports logical OR/IN and AND operations, but not NOT IN. Blog post with more rambling: http://maisonbisson.com/blog/post/16074/better-taxonomy-query-syntax/ .

Solution: the attached patch extends the URL syntax to support these logical operators.

- Taxonomy terms are separated by commas (it preserves support for the old +separated syntax).

- Terms prepended with a + are required (AND)

- Terms prepended with a - are excluded (NOT IN)

- All other terms are simply IN

Examples:

- http://site.org/tag/term-one,term-two/ : posts containing one or more of the named terms

- http://site.org/tag/+term-one,+term-two/ : posts containing both of the named terms

- http://site.org/tag/term-one,-term-two/ : posts containing term-one, but excluding term-two

Working examples (at least until I revert my site):

- http://maisonbisson.com/blog/post/tag/wordpress,+mysql/ : IN and AND syntax (it's an accident of how the query is handled internally that it doesn't require a + to be AND'd in this case)

- http://maisonbisson.com/blog/post/tag/wordpress+mysql/ : old-style AND syntax

- http://maisonbisson.com/blog/post/tag/wordpress,mysql/ : IN syntax

- http://maisonbisson.com/blog/post/tag/wordpress,-mysql/ : NOT IN syntax for the second term

- http://maisonbisson.com/blog/post/tag/-wordpress,+mysql/ : NOT IN the first term, AND the second term

About the patch:

The patch disables the special handling of tags. This is just to narrow the scope of work necessary to demonstrate a working patch.",misterbisson
Has Patch / Needs Testing,9256,clean up the global variables when moving out of the loop,,Query,2.7.1,normal,normal,Future Release,enhancement,reopened,has-patch,2009-03-01T19:07:38Z,2010-07-23T11:47:00Z,"On a theme, that I am developing, the sidebar has a new WP_Query to get only one post from a specific category. All works well (index, single, archive, pages) displaying correctly the result of the_content() of the main column (the main query) and the result of the_content() of my custom query in the sidebar.

The problem is that only on pages and articles that have pagination (using the <!--nextpage--> construct), the function ""the_content()"" of the sidebar displays the same content of the main column on pages 2, 3, 4 (and so on) of those pages/articles, while on page 1 the various contents are displayed properly.

Is it a bug?

[http://wordpress.org/support/topic/248632 As MichaelH reported], using ""echo $post->post_content;"" fixes the issue temporarily.",aldolat
Has Patch / Needs Testing,24257,is_attachment() should accept $attachment parameter,,Query,3.5.1,normal,normal,Awaiting Review,enhancement,new,has-patch,2013-05-03T16:23:32Z,2013-05-03T17:11:45Z,"Like is_single(),is_page(),is_author() ... etc I can't see any reason why we is_attachment() function accept $attachment parameter to make easy checks.",alex-ye
Has Patch / Needs Testing,14368,"make the 'orderby' argument in get_posts() accept all ""post"" fields",,Query,3.0,normal,normal,Future Release,enhancement,new,has-patch,2010-07-20T23:58:41Z,2012-08-28T19:12:46Z,"Right now, some post's fields were not accepted when retrieving posts (even though they were documented in codex . for example ""name"" (slug)  was missing).

this patch sorts the elements in the $allow_keys array (in the same order as the db' s columns) and adds the missing ones, I added every field except the ones that were long text fields (content, excerpt, etc)
",wjm
Has Patch / Needs Testing,17022,months_dropdown() is not filterable,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T17:11:08Z,2011-04-02T18:22:20Z,"The months_dropdown() function used on the Edit Posts and Media Library listing forms is not filterable.  This causes invalid month items when a plugin uses the WP_Query API to filter editable posts.

The corresponding patch adds the query filter 'months_dropdown_query'",kevinB
Has Patch / Needs Testing,17026,parent_dropdown() is not filterable,,Query,,normal,normal,Awaiting Review,enhancement,new,has-patch,2011-04-02T17:35:40Z,2011-04-07T15:37:16Z,"The parent_dropdown() function is no longer used by the WP core, but is not deprecated and remains in use by some plugins.  Since other plugins may mod