__group__ ticket summary owner component _version priority severity milestone type _status workflow _created modified _description _reporter
Next Release 17376 Multisite Subfolders and bunk /wp-admin areas Bootstrap/Load normal normal 4.2 defect (bug) new needs-unit-tests 2011-05-11T15:07:38Z 2015-03-02T18:31:51Z "On a multisite installation with subfolders, navigating to:
www.mysite.com/i-dont-exist/wp-admin
loads a dashboard and maintains the i-dont-exist in the url. That part exists if i navigate to themes and/or plugin pages. However, I'm actually altering the base site.
This can be quite confusing if someone makes a typo in a sitename and they end up changing the base site (like happened to us) :(" MadtownLems
Future Releases 10543 Incorrect (non-UTF-8) character handling in tag's name and slug westi* Charset 2.8.2 normal normal Future Release defect (bug) accepted needs-unit-tests 2009-08-04T05:26:11Z 2014-10-09T23:44:38Z "Incorrect (non-UTF-8) character tag's name and slug are handled in different way: name is truncated on 1st such character, and in slug they are just removed (no truncation). WP should handle both in the same way - drop invalid characters, instead of truncation.
I found this issue recently. One of the Polish programs for adding posts to the Wordpresses does not encode tags in UTF-8 - it left them in ISO-8859-2. I notified author of this bug. Unfortunately there are many copies around, so it may take a long time before everyone upgrade." sirzooro
Future Releases 18792 Wrong FROM email when using wp_mail and built in mail() function westi* External Libraries 3.2.1 normal major Awaiting Review defect (bug) accepted needs-unit-tests 2011-09-27T16:35:28Z 2014-01-04T16:08:46Z "When using wp_mail in combination with mail() function, then From: envelope passed through -f parameter to sendmail is not set correctly.
Here is simple patch, that fixes the problem:
{{{
--- pluggable.php 2011-09-26 20:54:02.219330702 +0200
+++ pluggable.fixed.php 2011-09-27 18:19:21.283454810 +0200
@@ -394,8 +394,7 @@
}
// Plugin authors can override the potentially troublesome default
- $phpmailer->From = apply_filters( 'wp_mail_from' , $from_email );
- $phpmailer->FromName = apply_filters( 'wp_mail_from_name', $from_name );
+ $phpmailer->SetFrom(apply_filters('wp_mail_from', $from_email),apply_filters('wp_mail_from_name', $from_name));
// Set destination addresses
if ( !is_array( $to ) )
}}}
" pigster
Future Releases 26868 Function 'make_clickable()' doesn't make hyperlinks from explicit URLs using the `mailto:`, `tel:` and other schemes that do not start with `//` Formatting 3.8 normal normal Future Release enhancement new needs-unit-tests 2014-01-18T16:00:14Z 2014-01-27T16:57:47Z "Function `make_clickable()` tries to recognise URLs and convert these into clickable hyperlinks. The function is by default configured as a filter for comment text.
Unfortunately, the function assumes that all explicitly declared URLs begin with the string `//` after the scheme and colon parts which is not the case for the `mailto:`, `tel:` and many other schemes. Such URLs could usefully be made clickable, especially for use on smartphones and tablets.
This also leads to inconsistencies between explicitly and implicitly declared URLs. For example, the string `myemail@mydomain.com` is converted into a clickable hyperlink whilst the string `mailto:myemail@mydomain.com` is not.
By contrast, the TinyMCE post editor correctly and automatically makes both implicit and explicit `mailto:` links clickable but does nothing with `tel:`.
For reference, the syntax of URLs is defined by http://tools.ietf.org/html/std66, the `mailto:` scheme by http://tools.ietf.org/html/rfc6068 and that for `tel:` by http://tools.ietf.org/html/rfc3966.
As #16892 has illustrated, parsing URLs can be hard. The use of `wp_allowed_protocols()` may help in detecting which strings we wish to make clickable.
Found whilst testing #22946." mdgl
Future Releases 29069 Proposal: wp-pluggable.php patch to send email through SMTP, not mail() Mail 3.9.1 normal normal Awaiting Review enhancement new needs-unit-tests 2014-07-30T10:21:00Z 2014-10-22T17:38:31Z "Hereby I provide you with a patch to WordPress 3.9.1's wp-includes/pluggable.php file, to enable the use of SMTP as email option. This patch provides several advantages:
* it allows website owners to send email thought their ISP's SMTP server, instead of using the mail() function and localhost.
* TLS and SSL encrypted connections are supported, as are alternative SMTP ports
And all this makes it even possible to mail though Gmail's SMTP server.
I dediced to put the email configuration in wp-config.php, so there is a patch for that file too.
The story beind the patches is: I found it kinda strange the WordPress core lacks this functionality out-of-the-box, now more and more hosting providers require to use SMTP and TLS for sending mail from websites. Not to mention beter privacy protection due to the SMTP pipe being encrypted. The in WordPress included PHPMailer version supports these options by default.
The patches are open for improvement.
Regards,
Jan," JanR
Future Releases 23932 Support for remove_post_type_support() in attachment post type antpb Media 3.5.1 normal normal Awaiting Review enhancement assigned needs-unit-tests 2013-04-03T22:07:02Z 2014-10-28T17:42:50Z "In the past it was possible to remove certain fields from the media editor by hooking ""attachment_fields_to_edit"" and unset'ing the fields you didn't want included (e.g. caption).
After the media library got the major rework in WP3.5 its longer possible to remove those fields.
I believe that since the attachment post type has been more closely lined up to normal posts it should support remove_post_type_support() et al.
The easiest (and probably popular) case for this is removing the editor. I believe this code should do the trick:
{{{
#!php
remove_post_type_support( 'attachment', 'editor' );
}}}
" flyingtrolleycars
Future Releases 28156 In date-containing permalink structures, /dddd/dd/comment-page-d/ urls don't work Permalinks 3.9 normal normal Awaiting Review defect (bug) new needs-unit-tests 2014-05-06T22:42:17Z 2015-02-25T09:10:09Z "I was in the process of writing a plugin to allow people to test their rewrite rules as they develop a site, and when I setup examples of core rewrite rules, one of them was failing.
If you set your permalink structure to one containing dates, e.g. ""Day and Name"", one of the generated rewrite rules for posts is:
{{{
'([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)(/[0-9]+)?/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]'
}}}
And later on, another rule is:
{{{
'([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/comment-page-([0-9]{1,})/?$' => 'index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&cpage=$matches[4]'
}}}
The URI /2014/5/6/comment-page-2/ would end up matching the earlier rule, looking for a post named ""comment-page-2"" published on 2014-05-06, instead of looking for comment page 2 in the... I actually don't even know what the comment-page URLs do. For me, the ones that work just redirect to the date archive.
I'm happy to patch this, but would like to hear from someone else on what exactly should be done done. Do the comment-page-n rules do anything? Can they just be removed?" mboynes
Future Releases 10249 Page slug in cyrillic = Error 404 - Not Found! westi* Permalinks 2.7 normal major Future Release defect (bug) accepted needs-unit-tests 2009-06-23T19:44:34Z 2012-04-27T19:04:18Z "When I create a page with page slug for example ""киро""
then when I try to open domain/киро - Error 404 - Not Found
The permalinks are %postname%
Post slug with this slug is working just fine, the same BUG exists in 2.7, 2.7.1 and 2.8" kalifi
Future Releases 21941 Remove get_post_format_slugs() Post Formats normal minor Awaiting Review enhancement new needs-unit-tests 2012-09-20T14:40:52Z 2014-10-29T23:53:00Z "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
Future Releases 10852 improve get_page_children westi Posts, Post Types 2.9 normal normal Future Release enhancement reviewing needs-unit-tests 2009-09-25T22:30:34Z 2015-02-22T14:15:42Z "In #5303, mihai pointed out that get_page_children is very slow with 7000 pages. It's indeed slow, since the algorithm has O^2 complexity.
We should improve it to O(N) complexity. " hailin
Future Releases 31126 wp_register_script() should return boolean success/failure value Script Loader trunk normal minor Awaiting Review enhancement new needs-unit-tests 2015-01-25T18:36:52Z 2015-01-31T16:21:58Z "`wp_register_script()` currently returns no value. When registering a script fails, it fails silently.
The `wp_register_script()` function is essentially a wrapper for `$wp_scripts->add()`, so `wp_register_script()` should return the same boolean ""True on success, false on failure."" value." katzwebdesign
Future Releases 12981 odd behavior of exclude_tree parameter in wp_list_categories() tott Taxonomy 3.0 normal normal Future Release defect (bug) assigned needs-unit-tests 2010-04-12T20:10:50Z 2014-08-14T21:28:26Z "When running a query such as
{{{
}}}
the exclude_tree parameter is not obeyed as [10276] introduced a change that would overwrite it with the exclude parameter.
" tott
Future Releases 18778 Add filters to transform_query() to allow caching of queries created by this function. Taxonomy normal normal Awaiting Review enhancement new needs-unit-tests 2011-09-26T12:02:08Z 2014-10-11T01:53:25Z [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
Future Releases 15086 get_template_part() should let you specify a directory westi* Themes 3.0 normal normal Future Release enhancement accepted needs-unit-tests 2010-10-10T21:36:45Z 2014-11-23T11:52:16Z "IT would be nice for `get_template_part()` to allow you to specify a directory to look for a file in. Right now you actually *can* do this, but it requires passing a 'slug' to the function like `directory/slug`. Since everywhere else in the code slugs are sanitized, this seems like an unexpected way to allow this functionality (I didn't realize this worked until @nacin pointed it out). Since this slug isn't actually sanitized at all, you can currently do `get_template_part( '../../../test' );` which seems rather unsafe (`get_template_part` should be able to include from outside the themes directory).
I suggest sanitizing $slug and adding a third [optional] parameter that allows you to specify the directory to look in. The directory parameter should be sanitized enough to not allow it to start with a . or a / (although this more likely belongs in `locate_template()` as something done to $template_name inside the foreach).
What does everyone think about this approach?
How many themes do we think are currently using the $slug parameter to specify a directory?
Right now the optional $name parameter is set up as a fall through, so if $slug-$name.php doesn't exist $slug.php is used. Should $directory be set up similarly ($directory/$slug-$name.php -> $directory/$slug.php -> $slug-$name.php -> $slug.php)?" aaroncampbell
Future Releases 22363 Accents in attachment filenames should be sanitized Upload 3.4 normal normal Future Release defect (bug) new needs-unit-tests 2012-11-05T15:51:12Z 2014-03-25T20:49:53Z "There is an inconsistency in the way WP is sanitizing post slugs and attachment filenames.
Sanitizing the post slugs is a Good Thing(tm) for non-english users who use diacritics in their post titles.
Example: If I write a post with the title ""Moiré patterns"", the actual page slug will be: ""moire-patterns"". The space is replaced with a hyphen, the ""é"" becomes ""e"". Even if I try to change the slug manually into ""moiré"", WP won't let me (for my own good, since that URL would break in lesser capable browsers).
For some reason, WP doesn't apply that error-correction to attachment filenames.
Example: If I attach a file named ""moiré pattern.png"", it gets renamed into ""moiré-pattern.png"".
We can see that the space (and some other forbidden characters) are corrected by `sanitize_file_name()`, but diacritics such as ""é"" or ""ä"" are left as they are.
Currently, most modern browsers are capable of displaying files with diacritics, but some of them still fail (most prominently, Safari).
For the sake of cross-browser compatibility, attachment filenames should benefit from the same safety measures that we apply for the post slugs (I guess that's the `remove_accents()` function)." tar.gz
Future Releases 8828 Tags and Categories are undifferentiable in Atom and RSS feeds Feeds 2.7 low minor Future Release enhancement new needs-review 2009-01-09T11:48:18Z 2014-03-01T19:07:32Z "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
Future Releases 7543 Import TypePad data using AtomPub. westi* Import normal normal WordPress.org enhancement accepted needs-review 2008-08-19T02:44:26Z 2014-10-10T05:24:56Z "First off, I want to mention that TypePad updated their AtomPub server a few days ago, and their server does not seem to be sending comments. With a little luck, my current code should work fine once that server starts functioning again, but for the time being I would highly recommend not committing this into core.
Instead, I'm hoping people can look over the code and offer suggestions for improvement, test results, etc. While the Summer of Code is officially over today, I will be working on this until the job is done.
Alright, now to what this is. As some of you may know, I've been working on an Atom Publishing Protocol ([http://www.rfc-editor.org/rfc/rfc5023.txt RFC 5023]) based importer this summer for the Google Summer of Code. The diff attached is the latest version of my work.
The advantages of using the Atom Publishing Protocol are as follows:
* Nothing has to be done in the old blogging software to prepare for import (no export files, etc). Users just enter their blog URL, username, and password and the importer grabs all of the data using AtomPub.
* More data is imported compared to the old importers, especially with TypePad. Post slugs, comments, trackbacks, tags, categories, excerpts, etc are all imported. Everything used for posts in MT/TypePad is imported using AtomPub.
* The Atom Publishing Protocol is an established standard. With the exceptions of tag additions (which don't necessarily need updates), the importer should not have to be changed and should continue working well into the future.
I should mention there is one drawback to using the Atom Publishing Protocol. For the time being, it appears pages can not be retrieved using AtomPub. They were retrievable a few weeks ago, and I'm currently talking with Six Apart to see what happened.
I would greatly appreciate any and all feedback. Let me know your suggestions, and I'll be happy to incorporate them." cavemonkey50
Next Release 16365 Comment transition for new comments Comments 3.1 normal minor 4.2 enhancement new needs-docs 2011-01-24T21:07:46Z 2015-02-27T21:30:10Z "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
Next Release 17817 do_action/apply_filters/etc. recursion on same filter kills underlying call Plugins 2.2 normal normal 4.2 defect (bug) reopened needs-docs 2011-06-16T18:04:04Z 2015-02-25T21:46:05Z "Affects @wp-includes/plugin.php: do_action, do_action_ref_array, apply_filters, apply_filters_ref_array, _wp_call_all_hook
When calling a specific hook from a function that was called through that same hook, the remaining hooked functions from the first iteration will be discarded.[[BR]]
This is due to the handling of the array of registered functions using internal array pointers instead of a more robust approach.
In my example, this problem arose when I tried to programmatically delete a menu in reaction to the removal of a category. I hooked into the delete_term action to do so, upon which another function hooked into delete_term would no longer fire.[[BR]]
The obvious workaround is to adjust the priorities accordingly, but it shouldn't be necessary.
The current implementation as in apply_filters is:
{{{
reset( $wp_filter[ $tag ] );
if ( empty($args) )
$args = func_get_args();
do {
foreach( (array) current($wp_filter[$tag]) as $the_ )
if ( !is_null($the_['function']) ){
$args[1] = $value;
$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args']));
}
} while ( next($wp_filter[$tag]) !== false );
}}}
Using the following method instead, both iterations would develop properly:
{{{
if ( empty($args) )
$args = func_get_args();
foreach ( $wp_filter[$tag] as $filters )
foreach( (array) $filters as $the_ )
if ( !is_null($the_['function']) ){
$args[1] = $value;
$value = call_user_func_array($the_['function'], array_slice($args, 1, (int) $the_['accepted_args']));
}
}}}" kernfel
Future Releases 17447 Add 'register_post_type_args' hook Posts, Post Types 3.1 normal normal Future Release enhancement new needs-docs 2011-05-15T21:37:32Z 2015-01-26T19:25:03Z "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
Next Release 30666 Add a comment to RTL and minified files for new contributors Build/Test Tools normal normal 4.2 enhancement new dev-feedback 2014-12-10T23:12:08Z 2015-03-03T01:37:37Z Can we add a small header to RTL and minified files explaining that they are autogenerated and should not be patched directly? This might reduce some confusion for new contributors. SergeyBiryukov
Next Release 31250 Twenty Fifteen editor styles look weird on mobile Bundled Theme 4.1 normal normal 4.2 defect (bug) new dev-feedback 2015-02-06T16:16:10Z 2015-03-01T16:15:58Z "It doesn't look at all like what the front-end looks like.
Text is padded too much to the right.
Images are not resized to fit which causes the iframe to expand (off screen). There's no way to scroll horizontally and the editor is completely useless." iseulde
Next Release 16557 Ability to disable redirect_guess_404_permalink() Canonical 3.1 normal minor 4.2 enhancement new dev-feedback 2011-02-14T12:37:02Z 2015-02-27T17:30:57Z "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
Next Release 26553 Remove title attributes: comment-template.php joedolson Comments high normal 4.2 defect (bug) reopened dev-feedback 2013-12-11T21:05:58Z 2015-02-24T15:44:01Z "Related: #24766
{{{
// comment-template.php
comments_popup_link()
comment_form()
}}}" joedolson
Next Release 15015 Customisable submit button for comment form Comments 3.0.1 normal normal 4.2 enhancement new dev-feedback 2010-10-02T16:38:10Z 2015-03-02T18:04:25Z "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 =
'' .
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
Next Release 28603 "Improve ""previously approved comment"" test for logged-in users" Comments 4.0 normal normal 4.2 enhancement new dev-feedback 2014-06-20T20:34:16Z 2015-03-01T06:16:26Z "In order to restrict spam, my site uses the following settings to restrict the ability to comment (from /wp-admin/options-discussion.php):
1: Other comment settings / Users must be registered and logged in to comment
2: Before a comment appears / Comment author must have a previously approved comment
This generally works as expected, however the second requirement appears to test the user's profile information rather than user ids. This means that whenever a user changes either their nickname or e-mail, their next comment is held for moderation.
In my view, a better implementation would allow comments from logged-in users with previously approved comments immediately after a change to whatever profile information is currently tested.
Apologies if this issue has been discussed before, I certainly couldn't find that discussion." nevermoor
Next Release 28636 Add functions for working with local dates and times Date/Time 2.9 normal normal 4.2 enhancement new dev-feedback 2014-06-25T18:53:31Z 2015-02-27T17:41:42Z "Since WordPress sets `date_default_timezone_set( 'UTC' )`, working with local dates and times can sometimes be a bit of a nuisance. I'd like to propose adding a couple of functions to replace at least `date()` and `strtotime()`. We can add replacements for others too, like `mktime()` if the interest is there.
I've put together two proposals for accomplishing this, one using `date_default_timezone_set()` to temporarily change the timezone, and another (far more complicated version) using `DateTime`/`DateTimeZone`. I think the former is preferable, unless anyone has any reasons, performance or otherwise, why resetting the default timezone might be a bad thing?
I'm not married to the function names I chose (`wp_date()` and `wp_strtotime()`), so if it would be preferable to name them e.g. `wp_local_date()` and `wp_local_strtotime()`, I'm open to it." mboynes
Next Release 16276 Default value for search field - (#11420 Easy within-site linking from new content) helen Editor 3.1 low minor 4.2 enhancement reopened dev-feedback 2011-01-17T20:14:42Z 2015-02-09T20:57:57Z "The within-site linking available in the current release candidate looks like a great idea, but I'm wondering if it might make sense to pre-popular the search box area with the selected text that is highlighted.
Currently the search box (which is actually more of a filter box) is empty by default, but it seems to me that most of the time if you are linking to internal content, you will be linking to the material you are highlighting which will have a similar title." jamie.richard
Next Release 24879 Sourcemaps should be provided for use with minified javascript libraries External Libraries normal normal 4.2 enhancement new dev-feedback 2013-07-29T15:49:33Z 2015-02-27T16:40:52Z "Sourcemaps make it possible to debug minified files.
Supported in Chrome:
https://developers.google.com/chrome-developer-tools/docs/javascript-debugging#source-maps
Landing in Firefox in v23:
https://wiki.mozilla.org/DevTools/Features/SourceMap
When this feature is enabled, the Chrome console currently shows a 404 when the script specifies a sourcemap file and it isn't found." jblz
Next Release 30947 wp-includes files should not contain hooks General trunk normal normal 4.2 enhancement reopened dev-feedback 2015-01-08T04:36:06Z 2015-01-19T11:23:56Z "It is general good practice to have 2 types of PHP files: those that declare symbols, and those that cause side effects (vars, functions calls, class invocations, includes, etc).
There are some random `add_action()` and `add_filter()` calls littered around some files in `wp-includes/`. These should be moved to `wp-includes/default-filters.php` with the rest of the registered hooks. It seems like this was the best practice for awhile and then we randomly stopped. This file loads way before any of the includes, so the hooks will be registered for any request that loads WordPress, even `SHORTINIT` - a lot of the hooks registered won't run anyways (that's already the case).
I made sure the hooks are in the same order - corresponding to the order their files load.
Almost all static analysis tools + `hackificator` (see Hack) complain about this. Also a requirement of PSR-2, which I know we don't care about, but doesn't hurt.
" wonderboymusic
Next Release 30807 Font family titles in Arabic SergeyBiryukov* I18N 4.1 normal normal 4.2 enhancement accepted dev-feedback 2014-12-21T11:57:49Z 2015-03-02T18:49:50Z "Titles should look differently from the rest of the text.
In Arabic, the font Arial (bold) is the most appropriate font for titles (H1, H2, H3, H4, H5, H6).
Is it possible to apply this rule to all the titles/headings?
" rasheed
Next Release 28185 Expose image attachment title and/or filename in the image details modal Media 3.9 normal normal 4.2 enhancement new dev-feedback 2014-05-08T23:46:33Z 2015-03-02T18:37:30Z "I ran into a case where I had a post with an image I wanted to set as the featured thumbnail. My Media library is very large and I didn't know the file name so I clicked the edit icon on the image to view the Image Details. Nowhere within the image details does it show either the image title, or file name. My suggestion would be to place it next to the words ""Image Details"", but i'm not married to the idea.
The search field in the media library looks for these attributes to filter the library list, it would be convenient if it were clearly labelled within the ""Image Details"" modal.
Additionally, once you do find the image in the media library, both the file name and image title are clearly visible.
I created an annotated video to clearly explain the issue:
https://www.youtube.com/watch?v=lS55abTV7qc" drrobotnik
Next Release 29213 Introduce capability for access to nav-menus.php ocean90 Menus 3.0 normal normal 4.2 enhancement reviewing dev-feedback 2014-08-14T16:22:16Z 2015-02-06T16:33:07Z "Management of the nav menus currently requires `edit_theme_options` capability, a capability associated with administrators which grants the power to make many wide sweeping changes. There should be a discrete capability `edit_nav_menus` just for managing menus, one that is inherited for anyone who has `edit_theme_options` by default. This was done for Customizer access in #28605 with the introduction of a `customize` capability.
Originally brought up in #14386.
For introducing a `manage_widgets` capability, see #31020." westonruter
Next Release 25698 Speed up slow Menus Panel for menus with many items Menus 3.6 normal normal 4.2 enhancement new dev-feedback 2013-10-25T15:14:46Z 2015-02-27T17:46:18Z "'''Overview'''
When the [https://core.trac.wordpress.org/ticket/14045 new accessibility enhancements] ([https://github.com/WordPress/WordPress/commit/9bd740f6165f26ee44f8bd19a3a8a565c640742b relevant commit]) were added to the Appearance > Menus Panel in WordPress 3.6, it added a lot of extra javascript processing per menu item. For large menus (say, > 50 menu items), this creates a bottleneck and slows down both the menu panel load time and the ability to manage the menu, resulting in a poor user experience - for a menu with 100 items, the lag is around 6 seconds in my tests (and in extreme cases, users have experienced browser crashing due to not being able to handle the javascript load). Basically, the processing time for these accessibility enhancements increases linearly with each new menu item, slowing things down considerably once there are many menu items in play.
'''Details & Demonstration'''
I've written up a detailed article on the issue here: [http://sevenspark.com/wordpress/speeding-up-the-appearance-menus-screen-in-wordpress-3-6 Speeding up the Appearance > Menus Screen in WordPress 3.6 ]
I've also created a screencast demonstrating the issue: [http://www.youtube.com/watch?v=P1wOPN5zJz Video] - which shows and times the lag, as well as demonstrates the performance improvement using my ""lazy"" solution.
(Please note I also tested in WordPress 3.7, and the same issue/solution applies.)
'''Issue Source Synopsis'''
After doing some troubleshooting, I believe that the issue occurs in wp-admin/js/nav-menu.js, in the function refreshAdvancedAccessibility(). The problem is that both on page load and any time a change is made, the entire set of menu items needs to be reprocessed, causing the page to become unresponsive for several seconds until the processing completes. (Please see linked article and video above for more detailed explanation)
'''Potential Solution (including available plugin)'''
I've outlined my solution in the article I linked to above. Instead of processing every menu item every time, this solution takes a ""lazy"" approach and only processes menu items when the item is about to be interacted with (triggered on hover, focus, or touch). This greatly reduces the processing load and allows the page to become immediately responsive, improving user experience. The lag when moving menu items is also eliminated. I am not an accessibility expert, but I believe triggering the processing on focus will ensure that the accessibility features are present for those interacting with the site without a pointer device.
I've also written and released a plugin - [http://wordpress.org/plugins/faster-appearance-menus/ Faster Appearance - Menus] (also on [https://github.com/sevenspark/faster-appearance-menus github]) which implements this solution by replacing the default nav-menu.js with my modified version. The plugin was released about 2 months ago, and has received positive feedback from many users who were encountering slow Menus Panel speeds (as someone who writes plugins dealing with the creation and management of menus with many items, I've encountered this issue with a lot of customers). That being said, I'm sure it could be improved and needs more stringent testing and code review.
Thanks! This is my first ever submission to trac, so I do apologize if I have done anything wrong here. " sevenspark
Next Release 30501 Prevent flushing rewrites during page load SergeyBiryukov Permalinks normal normal 4.2 defect (bug) reopened dev-feedback 2014-11-25T22:15:16Z 2015-01-14T07:22:26Z Flushing rewrites during the pageload breaks a lot of plugins. They might not have registered their rewrite yet which would cause issues. I propose preventing the flushing from working and forcing it to be run on shutdown instead. joostdevalk
Next Release 29539 Plugin viewer not displaying video tutorials. Plugins 4.0 normal normal 4.2 defect (bug) new dev-feedback 2014-09-05T16:19:32Z 2015-03-02T18:07:41Z "In the WordPress 4.0 plugin page viewer, my video tutorials for my plugins are not displaying.
[[Image(http://www.redeemerdanceacademy.ca/wp-content/uploads/2014/09/Ticket.png)]]" kidsguide
Next Release 31433 Add docs for paginate_links $args argument DrewAPicture Posts, Post Types trunk normal normal 4.2 enhancement reviewing dev-feedback 2015-02-24T13:09:39Z 2015-02-24T18:57:48Z "paginate_links has a lot of documentation in words as to what values are possible to send in the $args array but it's all natural text, there is no overview of arguments for a quick reference.
Compare https://developer.wordpress.org/reference/functions/paginate_links/
With http://codex.wordpress.org/Function_Reference/paginate_links" atimmer
Next Release 28272 Image loses link after drag and drop TinyMCE normal major 4.2 defect (bug) new dev-feedback 2014-05-15T21:40:25Z 2015-02-27T16:05:54Z To reproduce, insert an image with a link, drag it to another paragraph. The link is gone. iseulde
Next Release 30619 The wpView toolbar is not accessible by keyboard azaozz TinyMCE high normal 4.2 defect (bug) reviewing dev-feedback 2014-12-07T00:01:53Z 2015-03-02T18:52:11Z The (new) image toolbar is fully accessible by keyboard (Alt+F8 to focus, then arrow keys to move to the next button, etc.). However the wpView toolbar is not build in the same way so it is still not accessible. azaozz
Next Release 31251 Show username in wp_dropdown_users when deleting users, not display name Users 4.1 normal normal 4.2 defect (bug) new dev-feedback 2015-02-06T19:54:20Z 2015-03-02T18:20:29Z "
`wp_dropdown_users`, by default, shows the display name for a user.
The function is used in `users.php` to show a list of users, so that you can attribute posts to someone when deleting an existing user. It should show the username so that the exact list shows up. I just had a situation trying to delete a user where I had multiple ""Tom""s show up as display names, with no idea which to delete.
[[Image(https://cldup.com/RSlM9jG45g.png)]]
We can easily use the `show` parameter where `wp_dropdown_users` is used in `users.php` to delete a user to make this actually usable when deleting users." krogsgard
Next Release 24633 Allow admins to generate and send new passwords for users Users normal normal 4.2 enhancement new dev-feedback 2013-06-24T03:07:39Z 2015-03-02T18:17:18Z "For sites that have a lot of user accounts (such as community forums), it'd be really nice for admins to be able to manually generate a new password for user accounts and then automatically send that new password via email. The option to flag the user's account so they are encouraged to reset their password (exactly as they are when using an auto-generated password) would be excellent.
The [http://wordpress.org/plugins/simple-user-password-generator/ Simple User Password Generator] plugin by 10up does this superbly. I'd propose it be implemented exactly like they have done.
Any reason not to do this?" mordauk
Next Release 30998 Widgets helper position incorrect after moving out of the sidebar Widgets trunk normal normal 4.2 defect (bug) new dev-feedback 2015-01-13T07:42:15Z 2015-02-27T16:35:43Z "How to replicate:
1) drag a widget to the sidebar in the widgets.php page without dropping on the sidebar
2) move the helper (widget clone) to somewhere else, moving out of the sidebar and you will see that the helper is in far from the mouse cursor.
Current version: 4.2-alpha-31007-src
The bug is present in the 4.1 version too.
Chrome 39.0.2171.95 m version, Windows 7 32bit.
I uploaded a video with my camera on youtube of the screen of my pc where I show the problem - https://www.youtube.com/watch?v=WzKMaY0VhNg" alexvorn2
Next Release 31020 Introduce discrete capability for managing widgets ocean90 Widgets normal normal 4.2 enhancement reviewing dev-feedback 2015-01-15T07:11:15Z 2015-02-25T20:40:53Z "As with management of nav menus (#29213), managing widgets currently requires `edit_theme_options` capability, a capability associated with administrators which grants the power to make many wide sweeping changes. There should be a discrete capability `manage_widgets` just for managing widgets, one that is inherited for anyone who has `edit_theme_options` by default. This was done for Customizer access in #28605 with the introduction of a `customize` capability.
Originally brought up in #14386.
The same is proposed for menus in #29213." westonruter
Future Releases 28821 Admin page registered with add_menu_page() allows access through wrong URls and hightlights wrong top level menu item Administration 3.9.1 normal normal Awaiting Review defect (bug) new dev-feedback 2014-07-10T21:05:19Z 2014-09-29T11:05:59Z "'''Steps to reproduce:'''
* Add a top level admin menu page (with the plugin provided below).
* Access the new top level admin menu via the menu item (bottom of menu)
* Try to access it via one of the following URLs
{{{
http://example.com/wp-admin/options-general.php?page=trac
http://example.com/wp-admin/tools.php?page=trac
http://example.com/wp-admin/admin.php?page=trac
http://example.com/wp-admin/edit-comments.php?page=trac
http://example.com/wp-admin/edit.php?post_type=page&page=trac
http://example.com/wp-admin/upload.php?page=trac
http://example.com/wp-admin/edit.php?page=trac
http://example.com/wp-admin/index.php?page=trac
... etc ...
// Sub menu items that have the same behavior
http://vagrant.local/wp/wp-admin/plugin-install.php?page=trac
http://vagrant.local/wp/wp-admin/themes.php?page=custom-header&page=trac
http://vagrant.local/wp/wp-admin/themes.php?post-new.php?post_type=page&page=trac
... etc ...
}}}
'''Bug description:''' Every of the above links will (falsely) work and bring you to the registered page. The top level menu item will be hightlighted while the sub menu item does not exist.
The following URls will work (with above bug) as well, but ''not'' highlight any menu item:
{{{
http://example.com/wp-admin/edit-tags.php?taxonomy=post_tag&page=trac
http://example.com/wp-admin/edit-tags.php?taxonomy=category&page=trac
}}}
I would not really consider this a ''""feature""''.
----
'''Test Plugin'''
{{{

Hello Trac!

Enter Trac ID line 810
But only when $this->has_items() returns false.
And function no_items() is defined here:
1) /wp-admin/includes/class-wp-ms-themes-list-table.php -> line 162
There is no need for condition because only string ""No themes found"" will be shown everytime.
2) /wp-admin/includes/class-wp-plugins-list-table.php -> line 167
There is no need for condition because only string ""You do not appear to have any plugins available at this time."" will be shown everytime.
I am not sure if we should only remove not used strings or make also other logic fixes." pavelevap
Future Releases 27747 Inconsistent type default between `submit_button()` and `get_submit_button()` Administration 3.5 normal normal Awaiting Review defect (bug) new dev-feedback 2014-04-10T08:03:52Z 2014-09-29T10:56:18Z "One defaults to `$type = 'primary'` while the other defaults to `$type = 'primary large'`.
Shouldn't that last one be `$type = 'primary'` too?" Denis-de-Bernardy
Future Releases 12825 Largest minimum text size in FF prefs makes admin display terrible Administration 2.9.2 normal normal Future Release defect (bug) new dev-feedback 2010-04-02T22:25:59Z 2014-10-26T22:57:38Z "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
Future Releases 17675 Masked Domain Issue Introduced with New Update Administration 3.1.3 normal normal Awaiting Review defect (bug) new dev-feedback 2011-06-03T18:09:03Z 2013-08-11T20:48:36Z "Hi,
I'm experiencing an issue accessing my wp-admin login page, only when using a masked domain.
My root setup is configured as so:
http://rootdomain.com/othersite/wordpress/
The domain I'm using to access it is located here:
http://redirect.com
When I use the root domain to access the login page directly, there's no problem. But, when I go to http://redirect.com/wp-admin, or click on any login links while at the redirect.com site, the page doesn't load. The title bar will load, but nothing else.
This is a new issue introduced with the 3.1.3 update. The masked domain was working prior to 3.1.3.
I've tried this both on Safari & Firefox (latest versions), using Mac OS X." ital_dj
Future Releases 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
Future Releases 29030 Screen Options Poor Update/Rendering Causes Many things to Break Administration 3.9.1 normal normal Awaiting Review defect (bug) new dev-feedback 2014-07-26T01:21:46Z 2014-07-28T05:14:37Z "Screen options dont work properly in many different situations. I noticed the first issue when trying to create a sticky header plugin for the wp_list_table. When scrolling down the page the headers stick to the top by cloning the header with javascript and hiding the other original at the same time. However, If screen options are updated the tables break completly even after the plugin is disabled. Wordpress checks the current table headers to determine which ones are hidden and should be added to the `manageedit-{$post_type}columnshidden` field in the `user_meta` table. So since the cloned table header the plugin created is hidden visually while scrolling up, wordpress thinks that all columns aredisabled and adds all the columns to `manageedit-{$post_type}columnshidden`.
[[Image(http://i.stack.imgur.com/wrYin.png)]]
This is poor practice because it doesn't seperate presentation well enough from the logic used to render screen options. Any user who has access to `wp-admin/edit.php`can completly break their tables if any html/css visually hides the `

` or a column-header perhaps by a plugin, or maybe the browser doesn't load a certain script, or perhaps they are just messing with the dev-tools. Beginers that don't know how to properly [remove columns][5], could run into this issue if they ever try to use css instead. `manageedit-{$post_type}column` should not rely on the visibility of

and only the actual checked input fields. Also `cb` and `title` should not be allowed to be added to the `manageedit-{$post_type}column`. They should only be able to be removed with `unset`.
----------
**To recreate this issue:**
1. open up firebug/chrome dev tools/etc. on http://www.example.com/wp-admin/edit.php
2. add `thead {display: none;}` to the style editor
3. On the page screen options uncheck at least one column ( this is to ensure `manageedit-{$post_type}columnshidden` is a database field for the current user and if not it creates it )
4. Hit apply to refresh the page
*The tables will now be broken....*
----------
To chck the columns I used the `get_user_meta();` function to print the array of `hiddencolumns` on each post types `edit.php` admin screen notices:
{{{
post_type)
return $post->post_type;
elseif ($typenow)
return $typenow;
elseif ($current_screen && $current_screen->post_type)
return $current_screen->post_type;
elseif (isset($_REQUEST['post_type']))
return sanitize_key($_REQUEST['post_type']);
return null;
}
function get_current_user_manageedit_pagecolumnshidden() {
$current_ptype = get_current_post_type();
$user_id = get_current_user_id();
$key = 'manageedit-'.$current_ptype.'columnshidden';
$single = true;
if(get_user_meta($user_id, $key, $single))
return get_user_meta($user_id, $key, $single);
}
function echo_current_user_manageedit_pagecolumnshidden() {
global $pagenow;
if ( $pagenow !== 'edit.php' )
return;
$columnshidden= get_current_user_manageedit_pagecolumnshidden();
echo '

}}}
Sadly I have not yet come up with a solution. PHPs urlencode() does not escape a double dash - which is ok as its usually perfectly valid. Maybe someone with RDF experience has a good idea.
bye,
-christian-
[1] http://en.wikipedia.org/wiki/Internationalized_domain_name#Example_of_IDNA_encoding
[2] http://htmlhelp.com/reference/wilbur/misc/comment.html
" lathspell
Future Releases 26841 Add Filter for Comment Form Action Comments 3.8 normal normal Awaiting Review enhancement new dev-feedback 2014-01-15T16:51:37Z 2014-03-21T12:26:22Z Integrating with some services (including Pardot) requires changes to the form action—unfortunately, this can't be done without hacking core or an experienced developer. Let's add a simple filter here, while keeping the default as it is. cliffseal
Future Releases 15520 Break date/time into a separate column in Comments views Comments normal normal Future Release enhancement new dev-feedback 2010-11-20T15:30:35Z 2014-10-26T20:40:37Z "Now that column sorting is in, it makes sense to break the date and time a comment was made into a separate column in the Comments view so they can be sorted chronologically.
Currently, the time is part of the content column, which can be confusing as if someone sorts by that column it becomes an alphabetical sort." markel
Future Releases 7051 Delete blacklisted comments rather than mark them as spam Comments 2.5.1 normal normal Future Release enhancement new dev-feedback 2008-05-28T11:37:11Z 2015-02-19T05:32:39Z Comments that are blacklisted because of the Blacklist keys on options-discussion.php should be deleted immediately instead of being marked as spam. Patch attached. donncha
Future Releases 24648 Don't exclude uneditable comments in wp_ajax_get_comments Comments 3.3 normal normal Awaiting Review enhancement new dev-feedback 2013-06-26T19:53:19Z 2013-06-27T11:54:53Z The editing links will not be shown in the row actions anyway, if the user cannot edit that comment. Why not display the comment? jfarthing84
Future Releases 16979 Extra hooks needed in comment process Comments normal normal Future Release enhancement new dev-feedback 2011-03-27T06:06:54Z 2015-02-10T22:53:47Z "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
Future Releases 26755 Fix and improve the comment moderation keyboard shortcuts Comments normal normal Future Release enhancement new dev-feedback 2014-01-02T00:02:18Z 2014-03-05T17:43:36Z "The shortcuts for approve (a), spam (s), bulk approve (shift+a) and bulk spam (shift+s) are too close together (on qwerty keyboards). That can result in mistyping them.
The toggle-checkboxes shortcut (shift+x) doesn't work.
If the user clicks a checkbox, all shortcuts stop working until the user clicks somewhere else." azaozz
Future Releases 10863 Gravatars without email all end up looking generic Comments low minor Future Release enhancement new dev-feedback 2009-09-26T19:26:36Z 2014-10-08T19:51:35Z "When your blog has this option turned on
""Comment author must fill out name and e-mail""
and multiple users leave comments, if these users do not provide email addresses it will appear that they are all the same user as the identicon/monsterid/etc icons will be the same.
With two additional lines of code, you can substitute the IP address in place of the email to get a unique hash in order to distinguish one anonymous/non-emailed user from another.
Patch is attached" thecodepro
Future Releases 16219 If you can edit comments on the post, 'Slow down Cowboy' shouldn't kick in garyc40 Comments normal normal Future Release enhancement assigned dev-feedback 2011-01-13T19:05:44Z 2014-10-08T21:37:55Z Currently it's for administrators only. That doesn't make much sense for those who can already moderate comments. nacin
Future Releases 10856 Move unessential comment fields to the comment meta table Comments 2.9 normal normal Future Release enhancement new dev-feedback 2009-09-26T03:07:47Z 2014-10-10T03:05:27Z "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
Future Releases 7532 Need comment_modified_date_gmt for approvals and edits Comments 2.6 low minor Future Release enhancement new dev-feedback 2008-08-17T04:45:49Z 2014-10-08T18:10:42Z "Summary:[[BR]]
Currently there is only one date field for comments, comment_date_gmt. This is insufficient, because it represents only the creation date, not the approval date. The function get_lastcommentmodified can only check comment_date_gmt, which means that it can return an earlier date than the approval date. This can lead to RSS feeds wrongly returned HTTP 304 Not Modified responses. There needs to be comment_modified_date_gmt in addition to comment_date_gmt.
Steps to Reproduce:[[BR]]
(1) First comment is submitted.[[BR]]
(2) First comment is mistakenly marked as spam by Akismet.[[BR]]
(3) Second comment is submitted and posted.[[BR]]
(4) Check comments feed in RSS reader. Second comment appears in feed, first comment does not.[[BR]]
(5) Mark first comment as not spam.[[BR]]
(6) Check comments feed in RSS reader again.
Expected results:[[BR]]
Comments feed returns HTTP 200, because there is a new comment in the feed.
Actual results:[[BR]]
Comments feed returns HTTP 304.
Notes:[[BR]]
The same bug could occur in other circumstances. For example, if a comment was held for moderation.
" lapcat
Future Releases 12431 Record comment meta in wp_new_comment Comments 3.0 normal normal Future Release enhancement new dev-feedback 2010-02-28T21:29:43Z 2014-10-09T14:51:09Z "Spam filter plugins usually trigger on the preprocess_comment filter, which obviously happens prior to storing the comment (and thus prior to knowing comment_ID).
Comment meta would be ideal for storing spam status information, but since the comment_ID isn't known at that point, doing so involves jumping through some hoops.
This patch provides a simple way for spam filters to include comment metadata from preprocess_comment. They simply include values in a 'comment_meta' array like this:
{{{
add_action('preprocess_comment', 'my_spam_handler');
function my_spam_handler($comment) {
$comment['comment_meta']['my_spam_status'] = 'not-spam';
return $comment;
}
}}}
Each key/value pair in the comment_meta array is stored as comment metadata.
" tellyworth
Future Releases 19901 Speeding up Dashboard and Comment moderation SQL load markjaquith* Comments 3.3.1 normal major Future Release enhancement accepted dev-feedback 2012-01-26T21:32:43Z 2014-01-24T05:41:16Z "The standard Wordpress function for counting the comments for Admin Bar and Dashboard named wp_count_comments is using a single SQL query with GROUP BY clause. That makes it slow on a large site with hundreds of thousands of comments.
{{{
SELECT comment_approved, COUNT(*) AS num_comments FROM wp_comments GROUP BY comment_approved;
}}}
This takes 0.3 seconds on our site with 400,000 comments. When there are 10 editors logged in, we can see increasing server load.
Our solution is to run 5 faster queries instead:
{{{
SELECT COUNT( comment_ID ) FROM wp_comments WHERE comment_approved = 'trash'
SELECT COUNT( comment_ID ) FROM wp_comments WHERE comment_approved = 'spam'
SELECT COUNT( comment_ID ) FROM wp_comments WHERE comment_approved = '0'
SELECT COUNT( comment_ID ) FROM wp_comments WHERE comment_approved = 'post-trash'
SELECT COUNT( comment_ID ) FROM wp_comments
}}}
Takes 0.042144 on the same site. The last query gets the number of all the comments, then we subtract the previous query totals to get number of approved comments.
On a database of 4 million comments the difference is 1.52 seconds for the original wp_count_comments and 0.01 seconds for our alternative count with 5 queries.
Here is a link to our quick piece of code which hooks to the required filter hook and replaces the original slow function wp_count_comments: http://foliovision.com/downloads/fv_wp_count_comments.php.txt
But this is a hack - it would be much better to fix this in core by replacing the existing slow queries with 5 fast ones and subtraction to get total approved comments.
This speedup can be very important on large sites, as often there are 10 or more writers and moderators working at the same time. What can happen with the existing code is that the slow count comments query can back up MySQL and then writers can no longer save or open posts to edit. They get very, very frustrated and even angry.
This fix will allow Wordpress to scale much larger on relatively modest hardware (no separate MySQL dual quad server).
Thanks for listening.
Martin" FolioVision
Future Releases 16576 comment_form() fields being displayed only for non logged in users Comments 3.0.5 normal normal Awaiting Review enhancement new dev-feedback 2011-02-16T18:15:44Z 2014-11-20T02:19:19Z "I've just noticed this - When using the '''comment_form()''' function and adding some comment meta fields,using the fields array in the $args, these fields are being showed in the front-end only for non logged in users.
In this case, the registered users can never use these comment fields.
Look at wp-includes/comment-template, lines 1561-1573 (WP 3.0.5), it parse the $args['fields'] in the else block -
{{{
$field ) {
echo apply_filters( ""comment_form_field_{$name}"", $field ) . ""\n"";
}
do_action( 'comment_form_after_fields' );
?>
}}}
I think it is better that added meta fields should be displayable for all users (logged in and not logged in), or even to add a parameter to let the developer decide which extra fields are shown to logged or not logged users.
" maorb
Future Releases 14510 comment_notes_before does not work. Comments 3.0.1 normal normal Future Release enhancement reopened dev-feedback 2010-08-02T18:39:34Z 2014-10-10T02:27:44Z "I am unable to get the comment_notes_before to work.
Using the code:
{{{
comment_form(array( 'comment_notes_before' => 'some text' ));
}}}
... does not work. it just leaves the default text there.
{{{
comment_form(array( 'comment_notes_after' => 'some text' ));
}}}
... does work. It allows you to put whatever text you want." hotforwords
Future Releases 17763 comments_popup_link() need a get_* version Comments 3.2 normal normal Future Release enhancement new dev-feedback 2011-06-11T06:20:09Z 2014-12-24T01:07:04Z "Currently `comments_popup_link($zero = false, $one = false, $more = false, $css_class = '', $none = false)` has no get_*() version.
Usage situation: Where the link needs to be used within a larger string being concatenated." dd32
Future Releases 30965 "get_comment_statuses() - does not contain the ""Trash"" comment status" Comments 2.7 normal normal Awaiting Review enhancement new dev-feedback 2015-01-09T11:21:30Z 2015-01-17T16:43:40Z The `get_comment_statuses()` function is expected to retrieve all of the available comment statuses, however it does not return the `trash` status. tyxla
Future Releases 19893 get_comments_link() doesn't link properly if there are no responses Comments normal normal Awaiting Review enhancement new dev-feedback 2012-01-25T03:35:53Z 2014-10-26T21:02:03Z "Since the current implementation of get_comments_link() simply returns the permalink with `#comments` appended to the end of it, and the HTML element with an ID of `comments` only exists when existing comments are wrapped inside of it, it doesn't lead to anything when there are 0 comments on the post.
I've attached a patch that checks whether there are any comments on the post or not; and, if not, it appends `#respond` to the end of the link; otherwise it appends `#comments`." cgrymala
Future Releases 27631 "make ""comment-page"" slug configurable" Comments 3.8.1 normal normal Awaiting Review enhancement new dev-feedback 2014-04-02T10:46:36Z 2014-04-05T04:54:05Z "make ""comment-page"" slug configurable" qdinar
Future Releases 19903 wp_count_comments() and get_comments_count() both do SQL queries Comments 3.3.1 normal normal Future Release enhancement new dev-feedback 2012-01-26T22:16:42Z 2014-10-25T22:50:12Z "{{{wp_count_comments()}}} and {{{get_comments_count()}}} are similar functions, with a few differences:
* Their results are returned in different formats:
* {{{wp_count_comments()}}} returns an object of:
* spam
* approved
* moderated
* total_comments
* trash
* post-trashed
* {{{get_comment_count()}}} returns an array of:
* spam
* approved
* awaiting_moderation
* total_comments
* {{{wp_count_comments()}}} caches, but {{{get_comment_count()}}} always hits the database.
* {{{get_comment_count()}}} is used nowhere in WordPress core.
I propose that we add 'trash' and 'post-trashed' reporting to {{{get_comment_count()}}}, and then have {{{wp_count_comments()}}} use {{{get_comment_count()}}} instead of doing its own SQL queries.
See #6884 and #19901" markjaquith
Future Releases 12986 Enhancement to comments_popup_link() Comments normal normal Future Release feature request new dev-feedback 2010-04-13T06:25:13Z 2014-10-08T17:02:58Z "Currently ""Comments Off"" is wrap with tag, but not ""Enter your password to view comments."" if post requires password.
The idea is to wrap ""Enter your password to view comments."" with span tag, have its own css class e.g enter-password. Also adds $css_class if set. This way, theme author can easily style it based on post / comment status condition.
And add another paramater $password so that theme author can customize the text to display if post is password protected.
Need 2nd opinion with the attached patch.
" zeo
Future Releases 20537 Don't spawn cron requests for suspended blogs Cron API 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
Future Releases 8923 cron timeout is too short Cron API normal normal Future Release defect (bug) reopened dev-feedback 2009-01-22T23:50:57Z 2015-01-19T08:06:09Z "Many users have reported that 2.7 cron sometimes fails to publish future post.
And it is further reported that it depends on the number of jobs on the cron queue - when the queue is too long, it will miss some.
I believe this is because we set the timeout value too short:
wp_remote_post($cron_url, array('timeout' => 0.01, 'blocking' => false));
When making a request to wp-cron.php, it won't return until all cron jobs are executed. And 0.01 is just too short time span. It doesn't hurt to give it sufficent time, such as 10 minutes. It will return as long as the mature crons are fired up and executed (in most cases, it's going to be at most a few seconds ).
" hailin
Future Releases 11800 doubled execution of cron jobs westi Cron API 2.9.1 normal normal Future Release defect (bug) new dev-feedback 2010-01-07T11:17:53Z 2014-10-10T05:03:20Z "Hi,
as I've already mentioned in ticket #11505 , cron-jobs occasionally get executed twice (e.g. daily backup arrives two times).
I've changed the code according to the patch attachment:ticket:11505:ticket-11505-stop-gap.patch (which derives from [http://wpengineer.com/ping-problem/]) after my comment:ticket:11505:49 and had no doubles within this time period. This week I've upgraded to WP 2.9.1 and since then backups arrive two, sometimes three times, again.
Looking at the changes from 2.9 to 2.9.1, I have no other explanation for this behavior. - Maybe we should consider having a closer look again on this patch attachment:ticket:11505:ticket-11505-stop-gap.patch .
Greetz,
Berny" neoxx
Future Releases 15148 Cron Storage Abstraction Cron API normal major Future Release enhancement new dev-feedback 2010-10-19T04:04:00Z 2015-02-10T07:40:30Z Abstract cron storage to allow pluggable storage schemes. ryan
Future Releases 23133 Display a warning in the admin if cron tasks fail due to blocked HTTP requests Cron API 3.5 normal major Future Release enhancement new dev-feedback 2013-01-07T08:33:05Z 2014-11-25T04:42:42Z "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@…
Future Releases 31014 Blank space above widgets in Customizer Customize 4.1 normal normal Future Release defect (bug) new dev-feedback 2015-01-14T18:12:44Z 2015-01-14T21:35:45Z "When using ""Manage in Cutomizer"" link on Widgets admin page, there is strange blank space above.
See attached screenshot." pavelevap
Future Releases 16919 style.css can sometimes conflict with custom background image Customize 3.1 normal normal Future Release defect (bug) new dev-feedback 2011-03-21T21:54:10Z 2014-02-02T07:59:48Z "Steps to repeat:
1. Theme with the following body style (or something similar):
{{{
body {
background: url(images/texture.jpg) #fff;
}
}}}
2. Use `add_custom_background();` in functions.php
3. Select custom bg color, but no custom bg image.
4. View site. Custom bg color shows under the default background image, looks strange. No way to eliminate the use of textured or patterned background without editing style.css.
Intended result would be that if no bg image is chosen, none is needed.
Attached patch should address this." nathanrice
Future Releases 18959 Allow choosing multiple header images Customize 3.3 normal normal Awaiting Review enhancement new dev-feedback 2011-10-15T21:32:15Z 2015-01-17T22:15:07Z "Please, see small screenshot :)
[[Image(http://trueimages.ru/img/0f/5b/b7cf5f11a2786fc804521503268.png)]]
Description: This is the theme TwentyEleven. I want choose multiple header images, (for example 4,5,6), but i cannot. Only random or only one. Thanks." wikicms
Future Releases 31021 Introduce discrete capability for managing custom background and header Customize normal normal Awaiting Review enhancement new dev-feedback 2015-01-15T07:18:54Z 2015-01-16T15:36:52Z As with Customizer (#28605), management of nav menus (#29213), and managing widgets (#31020), the management of the Custom Header and Custom Background currently requires `edit_theme_options` capability, a capability associated with administrators which grants the power to make many wide sweeping changes. There should be a discrete capability `manage_custom_header` and `manage_custom_background` which is inherited for anyone who has `edit_theme_options` by default. westonruter
Future Releases 18623 Allow themes to pre-register multiple custom backgrounds Customize 3.3 normal minor Awaiting Review feature request new dev-feedback 2011-09-08T21:53:35Z 2014-02-12T23:56:02Z 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
Future Releases 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
Future Releases 26858 Comment duplicate check has a slow query Database 2.0 normal normal Future Release defect (bug) new dev-feedback 2014-01-17T04:38:22Z 2014-03-18T22:55:42Z "When checking for duplicate comments, the query is pretty slow:
{{{
SELECT comment_ID FROM wp_comments WHERE comment_post_ID = '1' AND comment_parent = '0' AND comment_approved != 'trash' AND ( comment_author = 'foo' OR comment_author_email = 'foo@bar.com' ) AND comment_content = 'some content' LIMIT 1;
}}}
This will use the comment_post_ID index, which means it will scan all comments on that post. For a post with thousands of comments, this starts to get slow.
Instead, we should change `KEY comment_post_ID (comment_post_ID)` to `KEY comment_post_ID (comment_post_ID,comment_content(255))`, to cover this case.
Props [http://www.mysqlperformanceblog.com/2014/01/16/analyzing-wordpress-mysql-queries-query-analytics/ MySQL Performance Blog] for finding this." pento
Future Releases 14581 No magic numbers Database normal normal Future Release defect (bug) new dev-feedback 2010-08-10T15:57:59Z 2014-07-08T17:17:02Z Add defines for the numeric user_status and comment_status values. ryan
Future Releases 12257 wpdb Scales Badly Due to Unnecessary Copies of All Query Results Database normal critical Future Release defect (bug) assigned dev-feedback 2010-02-17T03:08:06Z 2015-02-19T07:43:55Z "While working on #11726, I encountered a reproducible crash in wpdb::query()
The following code causes memory exhaustion on large result sets:
{{{
while ( $row = @mysql_fetch_object($this->result) ) {
$this->last_result[$num_rows] = $row;
$num_rows++;
}
}}}
The memory exhaustion message is error-controlled, causing a white screen of death even in debug mode.
I searched wp-db.php for references to $this->last_result, and I found no justification for these object reference copies. $this->last_result '''should''' be maintained as a MySQL resource and properly optimized using the MySQL client layer instead of this PHP nonsense.
Tagging for dev-feedback to discuss which Milestone is appropriate." miqrogroove
Future Releases 11717 Access to automatic database repair/optimize with admin rights Database 2.9.1 normal normal Future Release enhancement assigned dev-feedback 2010-01-05T07:35:10Z 2014-07-11T13:22:14Z "Hi,
I read somewhere that the reason for using a constant as enabler for the automatic repairing/optimizing database functionality was, that some people are not able to access their back-end in case certain tables are broken.
Anyway, as db optimization (and not only repairing) is also included in ''/wp-admin/maint/repair.php'', it would be helpful, if we could avoid setting the constant and in addition grant users with the admin role the right to access the functionality.
I've added the necessary two lines and attached a patch to this ticket. - Hopefully this will make it into core, because it would really ease access and increase usability.
My Best,
Berny" neoxx
Future Releases 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 2015-02-15T15:07:40Z "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
Future Releases 18315 Add an index to the GUID column in the posts table Database 3.2.1 normal normal Future Release enhancement reopened dev-feedback 2011-08-02T04:31:01Z 2014-07-28T15:33:46Z "Running queries on the GUID column in the posts table is slow because the column is not indexed. The attached patch adds an index.
Note, this affects ticket #18286 - I will update that ticket with appropriate patches to reflect this request." alexkingorg
Future Releases 29710 Add hooks to wpdb's insert(), update(), delete() and similar methods Database 2.5 normal normal Awaiting Review enhancement new dev-feedback 2014-09-19T13:52:35Z 2014-12-05T12:34:49Z "The `wpdb` class currently offers a `query` filter in its `query()` method which supplies ''unstructured'' data to its handlers (a string with an SQL query). In our plugin we need to work with ''structured'' data provided to the `insert()`, `update()` and similar methods. It would be great if these methods provided hooks both before and after the actual work happens.
For instance, the `insert()` method would become:
{{{
function insert( $table, $data, $format = null ) {
do_action( 'db_before_insert', $table, $data, $format );
$result = $this->_insert_replace_helper( $table, $data, $format, 'INSERT' );
do_action( 'db_after_insert', $table, $data, $format, $result );
return $result;
}
}}}
" borekb
Future Releases 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%s""),
$last_info['file'], $last_info['line'], $last_info['func'], join( ', ', array_reverse( $caller ) ) );
else
return $caller;
}
}}}" msolution
Future Releases 25559 Enhance prepare method to better support SQL IN operator Database 3.8 normal normal Awaiting Review enhancement new dev-feedback 2013-10-10T19:47:36Z 2013-12-18T23:24:48Z "When querying the database for rows that have fields that match any of several values, you typically use the IN operator. For example:
{{{
$wpdb->prepare(""select a from b where c in (%d, %d, %d, %d)"", $values);
}}}
I propose that the sprintf-like formatting allowed by the prepare method be extended to additionally accept markers such as ""%#3s"", which would be expanded to ""%s, %s, %s"". So, the previous example could be rewritten as:
{{{
$wpdb->prepare(""select a from b where c in (%#4d)"", $values);
}}}
To be more clear, the syntax I'm proposing is a ""%"", followed by a ""#"", followed by a 1 or more digit number specifying how many times to repeat the marker, followed by the type of the marker (d, s, or f). Other markers would continue to work as usual.
The other part of this proposal is that the requirements for the 2nd and all following parameters would be relaxed, so that the user could pass single values, arrays of values, or some combination of the above, and the arrays would be flattened into a single array of values. For example, the following calls to prepare would be equivalent:
{{{
$wpdb->prepare(
$query,
1,
2,
3,
4,
5
);
$wpdb->prepare(
$query,
array(
1,
2,
3,
4,
5,
)
);
$wpdb->prepare(
$query,
1,
array(
2,
3,
),
4,
array(5,)
);
// or even
$wpdb->prepare(
$query,
array(
1,
array(
2,
),
3,
),
4,
5
);
}}}
The reason I am making this proposal is that, while I do try to avoid raw SQL whenever practical, I often find myself forced to resort to it, and when I do, it is not uncommon for me to have to use the IN operator. So far, I've had to build my format string via a loop, which usually adds a placeholder for each item in an array. It's not a very complex bit of code, but because, at least in my experience, this situation is not super uncommon, it would be nice if the prepare method could make this a bit easier.
I have created a draft version of a patch which will add the above functionality.
Comments and questions are appreciated." cannona
Future Releases 28625 Enhancement: Add constants to support SSL connections for mysqli Database 4.0 normal normal Future Release enhancement new dev-feedback 2014-06-24T22:39:12Z 2014-12-03T18:57:09Z "In order to support SSL'ed MySQL connections with the `mysqli_*` functions introduced in WordPress 3.9 / PHP 5.5 `mysqli_ssl_set()` must be called to set the path to the SSL certs and keys to be used by the MySQL client before `mysqli_real_connect()` is called.
We should add the following optional constants to allow for users to configure secure connections to the database.
* `MYSQL_SSL_KEY`
* `MYSQL_SSL_CERT`
* `MYSQL_SSL_CA`
* `MYSQL_SSL_CA_PATH`
* `MYSQL_SSL_CIPHER`
In addition this should only be set if the feature flag `MYSQLI_CLIENT_SSL` is set for the existing `MYSQL_CLIENT_FLAGS` constant." hypertextranch
Future Releases 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 2015-01-25T10:41:33Z "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
Future Releases 10883 db-error.php not used for all DB failures Database 2.8.4 normal normal Future Release enhancement assigned dev-feedback 2009-10-01T02:45:28Z 2014-07-11T13:22:14Z "db-error.php (the optional custom DB error message file to be placed in wp-content) does not get included all the time. Sometimes wp-db.php will use its {{{bail()}}} method to spit out its own message. This code needs to be there too:
{{{
if ( file_exists( WP_CONTENT_DIR . '/db-error.php' ) ) {
require_once( WP_CONTENT_DIR . '/db-error.php' );
die();
}
}}}" markjaquith
Future Releases 26114 Auto prepare utilities for wp-db.php Database 3.7 normal normal Awaiting Review feature request new dev-feedback 2013-11-19T16:55:47Z 2013-12-01T13:08:21Z "This is a feature I've adapted from my kissMySQL class that I use on non-WordPress projects that use a database. It's a handful of non-intrusive utility methods to add to the wpdb class.
Simply put, I personally find it tedious writing this:
{{{
$wpdb->get_results( $wpdb->prepare( $query, $args... ) );
}}}
I'd prefer to write this:
{{{
$wpdb->get_results( $query, $args... );
}}}
The idea is any additional arguments are taken to be values to be escaped and inserted into the query. It also intelligently detects and shifts/pops off the $object argument if it's the first or last one passed in the list. So I could easily do this:
{{{
$wpdb->get_results( $query, ARRAY_A, $args... );
// is equal too this
$wpdb->get_results( $wpdb->prepare( $query, $args... ), ARRAY_A );
}}}
Now, my patch however simply adds alternate methods that alias to the proper ones after doing the auto preparation. The only real downside is that you can't pass x/y args to the get_var/row/col methods. My solution would be to add methods like get_var_x_y and get_row_y, but obviously this would be too drastic an API change.
This patch adds the following new methods (naming schemes leave something to be desired):
- auto_prepare()
- get_var_prepared()
- get_row_prepared()
- get_col_prepared()
- get_results_prepared()
This patch also adds a few lines to wpdb::query() so it can use the auto_prepare method, should multiple arguments be passed to it. Since query() only takes one argument, it seemed safe to modify it directly rather than create a query_prepared() method.
In addition, I've had to make some changes to the values of the $object constant values; I've appended a random string to the end so as to greatly minimize the chance of confusion between what a prepare argument and an object format constant. I'd like feedback on this handling in particular if possible; pretty sure I'm missing a better way to do this.
I've tested this and as expected it doesn't appear to cause any problems. More testing will be needed of course; I'm applying it to a number of my installs to see if anything breaks, but so far so good." dougwollison
Future Releases 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
Future Releases 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
Future Releases 20973 date_i18n() produces invalid output for shorthand formats Date/Time 3.4 normal normal Awaiting Review defect (bug) reopened dev-feedback 2012-06-15T13:39:50Z 2013-10-30T11:11:29Z "date_i18n() function relies on parsing passed format to make adjustments. However shorthand formats are not handled and produce invalid output.
Example:
{{{
var_dump( date_i18n( 'Y-m-d\TH:i:sP', time() ) ); // 2012-06-15T13:34:03+03:00 << ok
var_dump( date_i18n( DATE_W3C, time() ) ); // 2012-06-15T13:34:03+03:00 << ok
var_dump( date_i18n( 'c', time() ) ); // 2012-06-15T13:34:03+00:00 << broken time zone!
}}}
Hook-level fix:
{{{
add_filter( 'date_i18n', 'fix_c_time_format', 10, 3 );
function fix_c_time_format( $date, $format, $timestamp ) {
if ( 'c' == $format )
$date = date_i18n( DATE_W3C, $timestamp );
return $date;
}
}}}
See [http://wordpress.stackexchange.com/q/54700/847 Why time functions show invalid time zone when using 'c' time format?]
Possibly related (can't say for sure from description) #13538" Rarst
Future Releases 28988 Detect Time Zones automatically at installation Date/Time normal normal Awaiting Review enhancement new dev-feedback 2014-07-22T19:19:50Z 2014-08-27T12:10:46Z "Currently, upon installing Wordpress, one of the steps I always take is to go to Settings > General > Timezone to manually set my time zone. I've been using Wordpress for eight years, so I know to do it and how to do it, and it's just a minor inconvenience. However, I have seen people new to this platform be confused and/or not know how to change this.
Is it technologically possible to use a geolocation service to query the IP address of the computer installing Wordpress and automatically set that service's best guess as to time zone, perhaps during the setup process?
I would envision the UI option remaining in settings, in case, for example, a developer in one time zone builds a site for a client in another. But automatic detection would be perfect for the average new user. It would be one more element that just works out of the box for those who aren't particularly tech savvy.
I did some searching in Trac to see if I could find a similar ticket and couldn't find any." danielmount
Future Releases 26183 Calling quicktags *after* initial setup results in an empty toolbar Editor 3.7.1 normal minor Future Release defect (bug) new dev-feedback 2013-11-23T22:32:44Z 2014-12-19T18:23:24Z "Quicktags.js has a limitation in that if you call quicktags on a textarea after it has been previously been initialized it fails to attach buttons.
To reproduce this bug, go to a post editing page and bring up the console and attempt to call quicktags on a textarea, like:
{{{
quicktags({id:""metavalue"", buttons: ""strong,link,em""});
}}}
The expected result is a quicktags toolbar with buttons, instead you get an empty toolbar. This is because of the following lines:
{{{
if ( !qt.instances[0] ) {
qt.instances[0] = qt.instances[id];
_domReady( function(){ qt._buttonsInit(); } );
}
}}}
Because qt.instances[0] has been set, it fails to continue on to rendering the buttons on a new textarea.
This strikes me as a bug, or at least an unnecessary limitation. I stumbled against this when trying to add a quicktag enabled textarea dynamically." PeterRKnight
Future Releases 27391 Editor: Word count should exclude ellipsis Editor 2.3 normal minor Awaiting Review defect (bug) new dev-feedback 2014-03-13T08:54:32Z 2014-03-26T22:12:35Z "The ""Word count"" shown below the post editor counts a ellipsis ""…"" as a word at the moment. As a ellipsis is more punctation than a word, it should be excluded from the ""Word count"".
Steps to reproduce:
* Add a new post
* Add a ellipsis (Mac: Alt + .) ""…""
* See ""Word count""
[[Image(editor_word_count_ellipsis.png)]]
I think this is a good first bug since the fix should be relatively easy. Extend the ""clean"" regular expression with ellipsis match in https://core.trac.wordpress.org/browser/trunk/src/wp-admin/js/word-count.js#L8." bassgang
Future Releases 27386 Editor: Word count should exclude shortcodes Editor 2.3 normal minor Future Release defect (bug) new dev-feedback 2014-03-12T23:41:14Z 2014-04-15T20:01:39Z "On the post edit screen the Word count includes shortcodes, but they should not be considered as normal words and so not increase the count.
Steps to reproduce:
* Add a new post.
* Add a gallery to the newly created post.
* Save the post.
* Reload the page.
* Check ""Word count"" under the content textarea, it says ""2"".
[[Image(word_count_shortcodes.png)]]
As pointed out by azaozz: ""to make that work properly we need to output an array of shortcode ""names"", then exclude them in the word count"".
Who can provide guidance to show which is the most likely way to get this information available in JS?" bassgang
Future Releases 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 2014-03-27T14:28:52Z "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
Future Releases 27555 Make tag post meta box more accessible joedolson Editor 3.0 normal normal Awaiting Review defect (bug) assigned dev-feedback 2014-03-27T18:20:37Z 2015-01-26T23:05:10Z "The tag post meta box has a couple of issues:
1) Current tags are not keyboard-navigable, so can't be deleted.
2) If a tag is added from quicklinks, no confirmation of adding is read.
This patch makes the tag delete link focusable, by adding an href attribute value; adds a :focus state equivalent to the existing :hover state for keyboard users; adds aria-live=assertive to the container where tags are injected, and replaces the 'X' currently used for the link text with off-screen text stating ""Delete [tag name]"".
Known issues with this patch:
- Adding the href value causes the usual moving window problem; I couldn't find where to attach the default event prevention in post.js
- 'Delete val' is not translatable as is; do we use wp_localize_script with core? Not sure what to do with that. " joedolson
Future Releases 28403 Multiple wp_editor's with different settings Editor 3.9.1 normal normal Awaiting Review defect (bug) new dev-feedback 2014-05-30T09:25:13Z 2014-11-13T02:23:01Z "Hello,
I found a bug in when using multiple wp_editor's with different settings.
Sample:
{{{
wp_editor('', 'field_1', array(
'textarea_name' => 'field_1',
'tinymce' => true,
'default_editor' => 'tinymce'
)
);
wp_editor('', 'field_2', array(
'textarea_name' => 'field_2',
'tinymce' => false,
'default_editor' => 'html'
)
);
}}}
Result: I see tinymce editor for 2nd editor
Excepted result: should be html editor for 2nd editor
Conjecture:
you have the following code in WP:
{{{
if ( 'html' === $default_editor ) {
add_filter('the_editor_content', 'wp_htmledit_pre');
$switch_class = 'html-active';
} else {
add_filter('the_editor_content', 'wp_richedit_pre');
$switch_class = 'tmce-active';
}
}}}
For the first editor (field_1) system creates filter add_filter('the_editor_content', 'wp_richedit_pre');
but we don't need it for the 2nd editor (field_2). But he has already been initialized and will be applied for both editors when calling apply_filter('the_editor_content',...). So, please apply filters only to necessary editors which have related settings, not to everyone." madeinua
Future Releases 29076 The Minor Publishing Actions (Buttons) need some breathing room Editor 3.8 normal normal Awaiting Review defect (bug) new dev-feedback 2014-07-31T16:25:21Z 2015-01-12T23:21:01Z "Both the Save Draft and Preview Buttons may look good in their current state above Status, Visibility, etc. But when you remove the misc. publishing actions (like it is done in bbPress) the Minor Publishing Actions tend to look a bit odd. The buttons come out odd when you use #misc-publishing-actions and display: none. The main place I see this is in bbPress's create new form editor. I also think just in general it would be nice to just have a bit more white space around the minor publishing actions. I am also not sure if this may work as a WordPress bug. Perhaps I should take it to the bbPress trac?
I have attached an image of how it looks like in bbPress. I have also attached the two diff files that change it.
" NikV
Future Releases 21934 Title field on Insert/edit link form shouldn't allow autosuggest Editor 3.4.2 normal normal Future Release defect (bug) new dev-feedback 2012-09-19T21:10:18Z 2014-02-03T00:49:58Z "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
Future Releases 29733 Unable to insert image using drag-and-drop on custom wp_editor Editor 4.0 normal normal Awaiting Review defect (bug) new dev-feedback 2014-09-23T13:16:37Z 2014-11-13T01:06:12Z "'''Steps to reproduce:'''
1) Create a page with an instance of wp_editor using a non-standard ID (i.e. anything other than ""content"")
2) When viewing the page, drag and drop an image into editor (on fresh page reload, not having opened media library prior to dragging)
3) Click ""Insert into post""
'''Expected outcome:'''
Uploaded image is inserted into post
'''Actual outcome:'''
Uploaded image is not inserted into post
'''Cause:'''
The ""drop"" event handler creates a new ""workflow"" instance if one does not already exist using a hard-coded ""content"" ID despite the custom ID being used." aduth
Future Releases 27076 double newlines inserted before captions Editor 2.6 normal normal Awaiting Review defect (bug) new dev-feedback 2014-02-09T13:35:31Z 2014-02-18T16:38:54Z "Steps to reproduce:
- Upload some picture in the library and add some caption to it
- Edit a post/page using the visual editor and, after some text, insert the picture using the add media button, so a ""caption"" shorttag is created
- Go into text editing
- Suppress the two newlines that appeared before the ""caption"" shorttag
- Go into visual mode
- Go into text mode: the newlines reappeared
It is important to put something before the picture inserted in order to reproduce the bug, because the two newlines are not inserted if it is at the very beginning of a post/page.
This is annoying for example in a table with top-aligned cells, if in a cell you have some text, and in the cell just to the right you have a ""caption"", then the two won't be aligned, since the newlines are converted to an empty paragraph during the rendering.
From what I saw, the issue could be fixed by just removing the line n° 124 in wp-admin/js/editor.js:
{{{content = content.replace( /\s*\[caption([^\[]+)\[\/caption\]\s*/gi, '\n\n[caption$1[/caption]\n\n' );}}}" arupqfjm
Future Releases 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 2014-02-21T19:14:29Z "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
Future Releases 30468 wplink modal accessibility Editor 4.0 normal normal Awaiting Review defect (bug) new dev-feedback 2014-11-23T18:00:20Z 2015-01-15T10:45:58Z "After #28897, mainly focused on keyboard accessibility, I'd like to propose a second accessibility round for the wplink modal, this time more focused on screen readers. In the proposed patch:
- added aria live region, aria roles, aria attributes
- use role ""application"" on the link listings to avoid key strokes conflicts with screen readers, focus is handled
- better focus management
- avoid to move focus in one potentially confusing case
- changed two non-links in buttons
- use CSS class 'modal-open' on the body
- CSS refinements
- wplink.js braces
Tested with Firefox + NVDA and (quickly) with Chrome + ChromeVox.
Seems almost everything gets read out nicely. Accessibility Team and everyone interested, please test everything :) Any thoughts more than welcome.
Please remember to test when ""link to existing content"" is open and:
- showing recent items (default view)
- doing a search with results
- doing a search with no results
" afercia
Future Releases 30407 Add keyboard shortcut for switching between Visual & Text editors Editor normal normal Awaiting Review enhancement new dev-feedback 2014-11-19T15:06:23Z 2015-01-26T23:16:04Z I propose adding a keyboard shortcut for switching between the visual editor and the text editor which would benefit those who prefer to use the visual editor, but need to momentarily switch to the text editor to check classes, customize code, and perform similar tasks. UaMV
Future Releases 25471 Allow wp_link_dialogue to open in contexts outside of the editor Editor 3.6.1 normal normal Future Release enhancement new dev-feedback 2013-10-02T22:35:38Z 2014-02-02T20:53:05Z "I use wp_link_dialogue within metaboxes to provide a nicer way for users to enter URL's. Its handy for say slideshows, or profiles that point to external sites.
wp_link_dialogue works perfectly on pages where an editor instance exists, but on pages that don't have editor instances it fails due to wplink.js looking for the global wpActiveEditor var, which of course doesn't exist as there is no editor. Aside from the js error, invoking the dialogue on pages with no editor involves calling _WP_Editors::wp_link_dialog(); directly to output the required html which isn't ideal, or calling wp_editor and using css to hide it, which just seems lame.
Ideally wp_link_dialogue should function independently of the editor.
Approaches
1. Amend wplink.js to allow wpActiveEditor to be undefined and pass in a seperate value for textfield to the open method. Con is that wp_link_dialog() still has to be invoked with a call to _WP_Editors::wp_link_dialog()
2. Move wp_link_dialog into a seperate class, amend _WP_Editors to call this class and allow for a user defined textfield within wplink.js
" we_tell
Future Releases 26267 Do action before #minor-publishing-actions in publish meta-box Editor normal normal Awaiting Review enhancement new dev-feedback 2013-11-26T15:37:26Z 2014-02-28T08:34:50Z "I've stumble on a use case where we would have to create a custom preview button on the publish meta-box.
There is currently no hook to add custom content at the end of the #minor-publishing-actions div.
I propose adding a hook right before the division is closed.
" jonathanbardo
Future Releases 18820 Formatting bar loading experience is subpar azaozz Editor 3.2.1 normal normal Future Release enhancement reopened dev-feedback 2011-09-29T21:51:41Z 2014-10-25T22:26:09Z "When you save a post, the way the formatting bar loads in (Visual and HTML both) is subpar. It pops in really late, and shoves your post content down.
Screencast: http://s3.amazonaws.com/txfx/screencasts/Formatting-Toolbar.mov
Let's make this better." markjaquith
Future Releases 29923 Improve the writing experience on mobile Editor normal normal Future Release enhancement new dev-feedback 2014-10-11T01:01:50Z 2014-10-11T01:01:50Z "Maybe something like the screenshot attached.
Problems:
* In iOS, position fixed doesn't work when the keyboard is open. And that's exactly when we need it. But there are workarounds. We can absolute position everything and make only the iframe scrollable. Oh wait...
* `overflow: hidden;` doesn't work on `html` and `body`. Can be worked around by using `#wpwrap` instead. We can also block scrolling completely with JS since the content we want to scroll is in an iframe. But...
* For some reason Apple decided to automatically adjust the height of iframes to its content. So for this we'll need to force a specific height on the iframe, `html` and `body` tags, and make the `body` scrollable. Seems to work.
* There are no events fired when the keyboard shows or hides. Also no resize event. The keyboard kind of floats over the window. This means that the window height doesn't change and that we can't detect the height of the visible area and keyboard. But it's possible to work around that too. :)
The screenshot is from a working prototype.
Ideally there should be a left and right arrow on the toolbar so you can browse the tools.
The post.php screen stays mostly the same, with a preview of the content. When you click on it, it goes ""fullscreen"". When you hide the keyboard or tab away, it goes back to the original screen.
The alternative is to leave things as they are, with the toolbar unpinned on top of the editor, but we could still move all the buttons to one row with arrows to browse them." iseulde
Future Releases 14946 Only enforce OEmbed whitelisting for dangerous types Embeds 3.0.1 normal normal Future Release enhancement new dev-feedback 2010-09-23T08:23:48Z 2013-08-09T13:23:45Z 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
Future Releases 22435 Export API Export normal normal Future Release enhancement new dev-feedback 2012-11-13T16:41:55Z 2014-12-18T12:52:33Z "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
'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
Future Releases 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 2013-11-27T09:46:49Z 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
Future Releases 16026 Stop using ereg() and eregi() NorwayFun External Libraries normal minor Future Release enhancement new dev-feedback 2010-12-29T16:48:39Z 2014-10-10T03:34:49Z "see attached file. ereg(), eregi() and so on deprecated functions was replaced by mb_ suffix ones. also, checker for set_magic_quotes_runtime
disabler for 5.2 and 5.3 series PHP included" NorwayFun
Future Releases 28909 Update PHPMailer to 5.2.8 External Libraries 4.0 normal normal Future Release enhancement new dev-feedback 2014-07-15T11:43:31Z 2014-09-11T11:24:53Z "PHPMailer 5.2.8 was released in May, we should review the updates and consider updating the PHPMailer libraries bundled with WordPress.
https://github.com/PHPMailer/PHPMailer/releases/tag/v5.2.8
We also need to bear in mind previous discussions and WordPress amendments to PHPMailer as already discussed: #25560, #25014." MattyRob
Future Releases 26913 Update json2.js External Libraries 3.8 normal normal Awaiting Review enhancement new dev-feedback 2014-01-23T14:33:17Z 2014-01-23T16:32:01Z "'''json2.js''' and '''json2.min.js''' were sync'ed from the official GitHub repo:
https://github.com/douglascrockford/JSON-js
The most noticeable difference is a check to ensure that JSON is an object. There's also readability improvements to some of the ternary operators." mgibbs189
Future Releases 15610 Comments on attachments don't appear in site-wide comments RSS feed Feeds 3.1 normal minor Future Release defect (bug) new dev-feedback 2010-11-29T21:05:37Z 2014-12-06T19:42:19Z "Tested against r16950.
Comments that are entered against an attachment do not appear in the site-wide comments RSS feed (e.g., http://sitename.com/comments/feed/).
To test:
1. Add an attachment of any kind (usually image), then View the attachment.
2. Post a comment on the attachment page.
3. Check the site's comments RSS feed - the comment will not appear." markel
Future Releases 13066 Last-Modified headers for individual comment feeds are incorrect jgci* Feeds 3.0 low normal Future Release defect (bug) accepted dev-feedback 2010-04-21T07:32:34Z 2014-10-09T23:13:56Z "The WP::send_headers function currently uses get_lastcommentmodified() to set the Last-Modified header for all comment feeds. This is a problem when used for individual post comment feeds. The function gets the last modified comment across all blog posts. That means that every time a comment is posted anywhere, the Last-Modified header for ALL comment feeds is refreshed. Issues:
1. This is technically incorrect, since only the global comment feed and one specific post's comment feed have changed with the last comment (not all possible comment feeds); and
2. It means that If-Modified-Since requests for other post comment feeds will not receive a 304 response when they should do (since their content hasn't changed). On blogs with many posts and many comment feeds, this will have a large impact on bandwidth because lots of requests will receive 200 responses where 304's would have done, just because a comment was posted on some other post.
If I've understood the flow correctly, $wp_query hasn't been fully set up at the time this function is called, so changing this behaviour would require some change in the flow of things (e.g., the handling of last modified headers for feeds moves into the do_feed() function). But doing so would mean that Last-Modified headers are correct/meaningful and that many more 304 responses can be served.
Any thoughts?" solarissmoke
Future Releases 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
Future Releases 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
Future Releases 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 2013-07-07T02:50:43Z "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:
{{{
A Sandbox » Page not foundhttp://my.blog.tld
Just another WordPress weblogMon, 19 Apr 2010 11:17:05 +0000http://backend.userland.com/rss092en
}}}
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
Future Releases 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 2013-07-07T02:50:38Z "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
Future Releases 9510 Multiple feed fixes and enhancements Feeds 2.7.1 high major Future Release enhancement new dev-feedback 2009-04-11T09:36:47Z 2014-10-08T17:58:28Z Currently, the feed always returns the same subtitle, self link, alternate link and replies link no matter what the page type is. I think they should be different for each page type. peaceablewhale
Future Releases 23692 feed_links should have a parameter to choose which feed to display joostdevalk Feeds normal minor Awaiting Review enhancement assigned dev-feedback 2013-03-05T14:02:12Z 2014-11-12T02:45:38Z "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('»', '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 '\n"";
echo '\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
Future Releases 19643 Allow array for $extra_fields in request_filesystem_credentials dd32 Filesystem API 3.0 normal minor Awaiting Review defect (bug) reviewing dev-feedback 2011-12-22T07:47:38Z 2015-01-15T00:29:54Z 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
Future Releases 16400 Add hook to delete_plugins() on successful delete Filesystem API 3.0.4 normal normal Awaiting Review enhancement new dev-feedback 2011-01-28T20:16:18Z 2013-08-15T23:51:10Z "Add an action or filter to the end of /wp-admin/includes/plugin.php delete_plugins()'s processing when the write is successful.
The use case is for managing a Wordpress install on an SVN-controlled server. Whenever the CMS changes a file's contents (particularly in the wp-content folder) I need to be able to trigger an svn commit.
See also Ticket #16399 " scottconnerly
Future Releases 19879 Better caching for get_dirsize Filesystem API 3.3.1 normal normal Future Release enhancement new dev-feedback 2012-01-23T15:42:59Z 2014-01-24T05:39:52Z "In a multisite install, when trying to determine whether a site has exceeded its storage quota, WordPress will scan through a blog's upload directory and sum up the file sizes, by running {{{filesize}}} against each one. With a large number of files, this can significantly slow down the upload process or certain portions of the Dashboard.
{{{get_dirsize}}} has transient caching in place but this is a single cache entry for all folders. It might be better if WordPress has a separate cache entry for each folder and was invalidated based on context so that get_dirsize does not need to be run constantly on older, unchanged directories as frequently." batmoo
Future Releases 21537 Email address sanitisation mangles valid email addresses Formatting 3.4.1 normal normal Awaiting Review defect (bug) new dev-feedback 2012-08-10T11:24:50Z 2015-01-07T07:50:33Z "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&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 & => & afterwards." westi
Future Releases 27350 Invalid HTML Output Formatting 3.8 normal normal Awaiting Review defect (bug) new dev-feedback 2014-03-11T08:19:48Z 2014-11-18T16:47:17Z "Paste into editor's Text tab:
{{{

hello

test

world

}}}
Preview output:
{{{

hello

test

world

}}}
Seen in 3.8 and in trunk. Doesn't seem to be an editor bug because switching tabs will improve the output. Something wrong with wpautop()?
" miqrogroove
Future Releases 16859 esc_url eats square brackets. westi* Formatting 3.1 normal major Future Release defect (bug) accepted dev-feedback 2011-03-15T17:28:32Z 2014-12-31T05:08:01Z "When adding a link to the blogroll (using wp-admin/link-add.php), square brackets in the link are removed, breaking the link.
Example:
{{{
http://lokale-wochenzeitungen.de/index.php?id=485&tx_ttnews[pointer]=6&tx_ttnews[tt_news]=132583&tx_ttnews[backPid]=741&cHash=ee9c87874b
}}}
becomes
{{{
http://lokale-wochenzeitungen.de/index.php?id=485&tx_ttnewspointer=6&tx_ttnewstt_news=132583&tx_ttnewsbackPid=741&cHash=ee9c87874b
}}}
Workaround: Use URL-encoded links (%5B and %5D instead of [ and ]).
This also affects urls which are made clickable by {{{make_clickable}}" f00f
Future Releases 21613 format_to_edit runs esc_textarea if $richedit param is set to false, not true Formatting normal minor Awaiting Review defect (bug) new dev-feedback 2012-08-16T19:59:20Z 2014-01-20T04:40:39Z "Currently, the docs on format_to_edit() indicate that it runs the content through esc_textarea (which in turn runs htmlspecialchars() ) if the $richedit param is set to true. The code, however, runs the filter if the param is not set (or passed as false, see line 1270).
{{{
#!php
1255 /**
1256 * Acts on text which is about to be edited.
1257 *
1258 * The $content is run through esc_textarea(), which uses htmlspecialchars(
1259 * to convert special characters to HTML entities. If $richedit is set to t
1260 * it is simply a holder for the 'format_to_edit' filter.
1261 *
1262 * @since 0.71
1263 *
1264 * @param string $content The text about to be edited.
1265 * @param bool $richedit Whether the $content should not pass through htmls
1266 * @return string The text after the filter (and possibly htmlspecialchars(
1267 */
1268 function format_to_edit( $content, $richedit = false ) {
1269 $content = apply_filters( 'format_to_edit', $content );
1270 if ( ! $richedit )
1271 $content = esc_textarea( $content );
1272 return $content;
1273 }
1274
}}}
My thought is the if statement should evaluate whether $richedit is true, rather than false, and therefore apply the esc_textarea function only when explicitly passed as a param. This would, however, result in unexpected behavior for anyone currently passing only the default $content param and getting sanitized output." vhauri
Future Releases 26803 get_bloginfo() doesn't sanitize URLs, even when $filter is 'display' Formatting 1.5.1.1 normal normal Awaiting Review defect (bug) new dev-feedback 2014-01-09T22:01:09Z 2014-01-20T04:51:52Z "The `get_bloginfo()` function returns two main types of content: URLs, and everything else. The function has a `$filter` parameter, and when this is `'display'` the returned info is automatically sanitized, by being passed through the `'bloginfo'` filter (which [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/default-filters.php#L93 by default] applies `wptexturize()`, `convert_chars()`, and `esc_html()`). However, the URLs are treated separately (via #1410), and are passed through the `'bloginfo_url'` filter instead (as noted by @dd32 [https://core.trac.wordpress.org/ticket/16408#comment:3 here]).
In short, the URLs returned by `get_bloginfo()` are unsanitized (and should be passed through `esc_url()`) even when the `$filter` is `'display'`, as when the info is being directly output by [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/general-template.php#L410 bloginfo()].
Related:
#1410
#2643
#16408" jdgrimes
Future Releases 23308 "make_clickable problem with multiple ""Punctuation URL character""" Formatting 3.5.1 normal normal Future Release defect (bug) new dev-feedback 2013-01-28T15:09:59Z 2014-06-08T00:13:44Z "make_clickable problem with multiple ""Punctuation URL character""
E.g.
{{{
http://www.wordpress.org/some-(parentheses).html
}}}
Results in this html code:
{{{
http://www.wordpress.org/some-(parentheses).html
}}}
But obvious should be:
{{{
http://www.wordpress.org/some-(parentheses).html
}}}
I suggest to replace:
wp-includes/formatting.php:1603
{{{
[\'.,;:!?)] # Punctuation URL character
}}}
with
{{{
[\'.,;:!?)]{1,} # Punctuation URL character
}}}" DrPepper75
Future Releases 17039 the_excerpt() - handling Formatting 3.1 normal normal Future Release defect (bug) new dev-feedback 2011-04-03T22:15:48Z 2014-01-17T20:16:26Z "If a post has a manually inserted ''before'' the default break at the excerpt length, then the_excerpt() fails to generate any [...] or call the ""excerpt_more"" filter. Thus, there is no indication that there is more content to the post." wpweaver
Future Releases 2833 wpautop breaks style and script tags Formatting 2.0.3 low normal Future Release defect (bug) reopened dev-feedback 2006-06-17T20:36:00Z 2014-07-08T16:01:02Z "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:
{{{
}}}
Becomes:
{{{
}}}
And:
{{{
}}}
Becomes
{{{
}}}
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
Future Releases 11678 wpautop() fails on uppercase closing tags Formatting 2.9 normal minor Future Release defect (bug) new dev-feedback 2009-12-31T11:26:11Z 2014-02-01T07:02:29Z "To reproduce, in a post enter:
{{{

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

}}}
View the post (source) and you get:
{{{

Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!

}}}
Because I (incorrectly) entered an uppercase closing tag, wpautop() thinks there is no closing tag so adds a , which then often renders as a double

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
Future Releases 12134 Add image dimensions to smiley img element nacin Formatting 3.0 normal normal Future Release enhancement reviewing dev-feedback 2010-02-05T02:55:19Z 2014-03-31T00:54:24Z All smileys are 15x15. Add dimensions to the img element to avoid a double paint by web browsers during page load. niallkennedy
Future Releases 10792 Forward Slashes convert to hyphens in post slugs Formatting 3.8 low minor Future Release enhancement new dev-feedback 2009-09-15T22:56:00Z 2015-02-03T18:42:38Z "In slugs for taxonomies or post permalinks, slashes (/\) and ampersands (&) are stripped out. More useful URLs would be created by turning slashes into hyphens, and ampersands into the word ""and"".
e.g.:
""songs by Lennon/McCartney""[[BR]]
expected slug: ""songs-by-lennon-mccartney""[[BR]]
actual slug: ""songs-by-lennonmccartney""
""Us & Them""[[BR]]
expected slug: ""us-and-them""[[BR]]
actual slug: ""us-them""" alxndr
Future Releases 19100 Introduce esc_color() Formatting normal normal Future Release enhancement new dev-feedback 2011-11-01T12:16:14Z 2014-03-30T18:30:46Z 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
Future Releases 27583 Move color sanitize function to wp-includes/formatting.php Formatting 3.4 normal normal Future Release enhancement new dev-feedback 2014-03-29T18:47:31Z 2015-02-25T08:23:42Z "{{{sanitize_hex_color()}}}, {{{sanitize_hex_color_no_hash()}}}, and {{{maybe_hash_hex_color()}}} are excellent functions for sanitizing color values. Unfortunately, they are defined in wp-includes/class-wp-customize-manager.php which is only included when the customizer is initialized. I recommend that the functions be moved to wp-includes/formatting.php, where other similar functions are located, so that they can be used everywhere in WordPress.
As an example, if you use a color input for adding a color option in a theme or plugin, you should be properly sanitizing/escaping the value when output in the HTML. Having these three functions available makes this process easy and consistent. Additionally, it provides a level of consistency between projects as different developers will be using the same function for sanitizing data." tollmanz
Future Releases 26759 New Generic Sanitize Functions for Core Formatting 3.8 normal normal Awaiting Review enhancement new dev-feedback 2014-01-02T17:54:48Z 2014-03-21T12:24:41Z "Core currently supplies a number of sanitize functions:
{{{
sanitize_email()
sanitize_file_name()
sanitize_html_class()
sanitize_key()
sanitize_meta()
sanitize_mime_type()
sanitize_option()
sanitize_sql_orderby()
sanitize_post_field()
sanitize_text_field()
sanitize_title()
sanitize_title_for_query()
sanitize_title_with_dashes()
sanitize_user()
}}}
They all sanitize by usage, not by data type.
As such, I (and I suspect others) wind up using these to escape things they weren't initially meant for -- for the sake of brevity, and it's just quicker and leads to tidier code.
I believe it could result in better and simpler sanitizing if we were to include sanitize-by-format functions in core. For example,
{{{
wp_sanitize_numeric( $raw ); // [\d]
wp_sanitize_numeric_float( $raw ); // [\d\.,] allowing both commas and periods as decimal indicator and thousands seperator
wp_sanitize_hex( $raw ); // [\da-f] case-insensitive
wp_sanitize_alphanumeric( $raw ); // [\da-z] case-insensitive
wp_sanitize_letters( $raw ); // [a-z] case-insensitive
wp_sanitize( $raw, $regex ); // uses passed in regex to determine what to strip.
}}}
The specific functions to use are up for discussion. I'm just hoping to make it simpler for users to sanitize data by expected type.
As a side note, this will let folks use `wp_sanitize_numeric()` to sanitize integers larger than `PHP_INT_MAX` -- which tumblr and twitter IDs often happen to be for imports and feeds and the like (as casting to `(int)` isn't a good idea)." georgestephanis
Future Releases 17780 Use PHP native double encoding prevention in htmlspecialchars() Formatting low minor Future Release enhancement new dev-feedback 2011-06-13T08:03:13Z 2014-10-11T19:02:44Z "Since PHP 5.2.3 the {{{htmlspecialchars()}}} function has an optional {{{$double_encode}}} parameter, which we could use. This can save us a few expensive kses/html decoding calls.
We need to make sure it works the same way as our implementation." nbachiyski
Future Releases 29807 add support for picture element and srcset attribute on img in wp_kses Formatting normal normal Future Release enhancement new dev-feedback 2014-09-30T12:39:10Z 2015-02-22T12:24:45Z "Related to #28993 - ( srcset attribute is stripped when switching from text to visual tab in the editor)
If support for srcset attribute and picture element (and source element) is to be added to tinyMCE, they should also be allowed in wp_kses. " mattheu
Future Releases 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
Future Releases 20771 esc_url() instead of esc_html() in wp_nonce_url() SergeyBiryukov Formatting 3.4 normal normal Future Release enhancement reopened dev-feedback 2012-05-29T06:21:37Z 2013-03-18T19:44:48Z "The `wp_nonce_url()` function currently uses `esc_html()` in its output, which doesn't really seem to be the appropriate escaping function since it's generating a URL.
Attached patch changes the output to use `esc_url()`" jkudish
Future Releases 29717 wp_check_invalid_utf8 - pcre tricks and failsafes, +mb_convert_encoding, iconv fix, performance Formatting normal normal Awaiting Review enhancement new dev-feedback 2014-09-20T17:18:13Z 2015-03-01T11:15:31Z "Used in core in these 4 functions.
* esc_attr()
* esc_js()
* esc_html()
* sanitize_text_field()
It's the first function to execute for all 4, and especially for sanitize_text_field it gets called quite a bit and is pretty important.
It's purpose is to check a string for invalid utf. It utilizes preg_match with the '/u' modifier to parse both the pattern and subject for utf. PCRE automatically checks both the pattern and subject for invalid utf, upon which it will exit with an error code/constant.
The changes here: Normally pcre is compiled with utf support. It can also be compiled to disallow utf support, and it can be compiled without utf support. If utf is compiled and enabled the '/u' modifier for preg_match is available which turns on the automatic utf validation.
For older dists or those with utf support turned off at compile, there is a trick to enable the same functionality as the '/u' provides.
http://www.pcre.org/pcre.txt
In order process UTF-8 strings, you must build PCRE to include UTF-8
support in the code, and, in addition, you must call pcre_compile()
with the PCRE_UTF8 option flag, or the pattern must start with the
sequence (*UTF8). When either of these is the case, both the pattern
and any subject strings that are matched against it are treated as
UTF-8 strings instead of strings of 1-byte characters.
So the first change to this function was to allow a fallback to that pattern option trick in case '/u' wasnt supported.
1. `@preg_match( '//u', '' ) !== false`
2. `@preg_match( '/(*UTF8)/', '' ) !== false`
3. Fallback to a regex that doesn't require UTF support, instead of using pcre utf validation it searches for it
I also wanted it to have better performance, especially due to its use in those 4 core functions I use often. I benchmarked it pretty thoroughly to try and gain more speed. This patch is about 10-20% faster.
Many gains were from refactoring the logic and control structures, chaining within if statements using bools, and utilizing the static variables to the fullest. This is especially crucial since this function gets called repeatedly. I also gained some cycles by replacing an in_array() check with a `stripos`.
One of the bigger gains came from replacing the `strlen( $string ) == 0` that ran on every run with. Since the $string variable was already casted to a string, that should always work and keep things a little cheaper.
{{{
$string = (string) $string;
// if string length is 0 (faster than strlen) return empty
if ( ! isset( $string[0] ) )
return '';
}}}
The final change was to the 2nd parameters $strip, which if true is supposed to strip the invalid utf out of the string and return the valid. In core nowhere is that parameter being used (yet), which explains the deprecated looking iconv. Also added a fallback to use mb_convert_encoding in case iconv is missing.
{{{
// try to use iconv if exists
if ( function_exists( 'iconv' ) )
return @iconv( 'utf-8', 'utf-8//ignore', $string );
// otherwise try to use mb_convert_encoding, setting the substitue_character to none to mimic strip
if ( function_exists( 'mb_convert_encoding' ) ) {
@ini_set( 'mbstring.substitute_character', 'none' );
return @mb_convert_encoding( $string, 'utf-8', 'utf-8' );
}
}}}
Here are some of the test strings I used, I also used the utf-8-test file at http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt. I did testing on 4.0 using php 5.6, 5.4, 5.3, and 5.4. I verified the output and the strip feature as well. For all tests I had php error_reporting set to the max:
{{{
ini_set( 'error_reporting', 2147483647 );
}}}
{{{
$valid_utf = array(
""\xc3\xb1"", // 'Valid 2 Octet Sequence'
""\xe2\x82\xa1"", // 'Valid 3 Octet Sequence' =>
""\xf0\x90\x8c\xbc"", // 'Valid 4 Octet Sequence' =>
""\xf8\xa1\xa1\xa1\xa1"", //'Valid 5 Octet Sequence (but not Unicode!)' =>
""\xfc\xa1\xa1\xa1\xa1\xa1"", //'Valid 6 Octet Sequence (but not Unicode!)' =>
""Iñtërnâtiônàlizætiøn\xf0\x90\x8c\xbcIñtërnâtiônàlizætiøn"", // valid four octet id
'Iñtërnâtiônàlizætiøn', // valid UTF-8 string
""\xc3\xb1"", // valid two octet id
""Iñtërnâtiônàlizætiøn\xe2\x82\xa1Iñtërnâtiônàlizætiøn"", // valid three octet id
);
$invalid_utf = array(
""\xc3\x28"", //'Invalid 2 Octet Sequence' =>
""\xa0\xa1"", //'Invalid Sequence Identifier' =>
""\xe2\x28\xa1"", //'Invalid 3 Octet Sequence (in 2nd Octet)' =>
""\xe2\x82\x28"", //'Invalid 3 Octet Sequence (in 3rd Octet)' =>
""\xf0\x28\x8c\xbc"", //'Invalid 4 Octet Sequence (in 2nd Octet)' =>
""\xf0\x90\x28\xbc"", // 'Invalid 4 Octet Sequence (in 3rd Octet)' =>
""\xf0\x28\x8c\x28"", //'Invalid 4 Octet Sequence (in 4th Octet)' =>
chr(0xE3) . chr(0x80) . chr(0x22), // Invalid malformed because 0x22 is not a valid second trailing byte following the leading byte 0xE3. http://www.unicode.org/reports/tr36/
chr(0xF8) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80), // Invalid UTF-8, overlong 5 byte encoding.
chr(0xD0) . chr(0x01), // High code-point without trailing characters.
chr(0xC0) . chr(0x80), // Overlong encoding of code point 0
chr(0xF8) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80), // Overlong encoding of 5 byte encoding
chr(0xFC) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80), // Overlong encoding of 6 byte encoding
chr(0xD0) . chr(0x01), // High code-point without trailing characters
""Iñtërnâtiôn\xe9àlizætiøn"", // invalid UTF-8 string
""Iñtërnâtiônàlizætiøn\xfc\xa1\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn"", // invalid six octet sequence
""Iñtërnâtiônàlizætiøn\xf0\x28\x8c\xbcIñtërnâtiônàlizætiøn"", // invalid four octet sequence
""Iñtërnâtiônàlizætiøn \xc3\x28 Iñtërnâtiônàlizætiøn"", // invalid two octet sequence
""this is an invalid char '\xe9' here"", // invalid ASCII string
""Iñtërnâtiônàlizætiøn\xa0\xa1Iñtërnâtiônàlizætiøn"", // invalid id between two and three
""Iñtërnâtiônàlizætiøn\xf8\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn"", // invalid five octet sequence
""Iñtërnâtiônàlizætiøn\xe2\x82\x28Iñtërnâtiônàlizætiøn"", // invalid three octet sequence third
""Iñtërnâtiônàlizætiøn\xe2\x28\xa1Iñtërnâtiônàlizætiøn"", // invalid three octet sequence second
);
}}}
----
Notes and more info:
{{{
In order process UTF-8 strings, you must build PCRE to include UTF-8
support in the code, and, in addition, you must call pcre_compile()
with the PCRE_UTF8 option flag, or the pattern must start with the
sequence (*UTF8). When either of these is the case, both the pattern
and any subject strings that are matched against it are treated as
UTF-8 strings instead of strings of 1-byte characters.
UTF-8 was devised in September 1992 by Ken Thompson, guided by design
criteria specified by Rob Pike, with the objective of defining a UCS
transformation format usable in the Plan9 operating system in a non-
disruptive manner.
Char. number range | UTF-8 octet sequence
(hexadecimal) | (binary)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
A UTF-8 string is a sequence of octets representing a sequence of UCS
characters. An octet sequence is valid UTF-8 only if it matches the
following syntax, which is derived from the rules for encoding UTF-8
and is expressed in the ABNF of [RFC2234].
UTF8-octets = *( UTF8-char )
UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
UTF8-1 = %x00-7F
UTF8-2 = %xC2-DF UTF8-tail
UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) /
%xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail )
UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) /
%xF4 %x80-8F 2( UTF8-tail )
UTF8-tail = %x80-BF
}}}
* http://www.pcre.org/pcre.txt
* http://us1.php.net/manual/en/pcre.constants.php
* http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
* http://en.wikipedia.org/wiki/Unicode
* http://unicode.org/faq/utf_bom.html
* http://www.unicode.org/versions/Unicode6.1.0/ch03.pdf
* http://www.pcre.org/pcre.txt
* http://tools.ietf.org/rfc/rfc3629.txt
* http://www.unicode.org/faq/utf_bom.html
* http://www.unicode.org/versions/Unicode5.2.0/ch03.pdf
* http://www.unicode.org/reports/tr36/
* http://tools.ietf.org/rfc/rfc3629.txt
Related Tickets:
* https://core.trac.wordpress.org/ticket/11175
* https://core.trac.wordpress.org/ticket/28786
" askapache
Future Releases 11023 Gallery Category Doesn't change with article Gallery normal normal Future Release defect (bug) new dev-feedback 2009-10-24T01:49:09Z 2014-02-19T21:48:51Z Lets say I have a default category setup called Drafts that all articles go into at first by default. Then on completing the article before posting it live, I movie it to another category called News (no longer having the draft category ticked also). If I've added an image with that article that I click to view a bigger picture of in the gallery page (image.php). It still shows it as being listed under the Drafts category, while the article itself is listed under just News category. mrgtb
Future Releases 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 2015-02-02T10:38:18Z "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
Future Releases 29237 Add Link Size Parameter to Gallery Shortcode Gallery 3.9.2 normal normal Awaiting Review enhancement new dev-feedback 2014-08-16T20:36:48Z 2014-09-02T19:21:43Z "You can't currently choose what image size that each gallery image should _link to_ without some filtering hackery. This allows a `linksize` parameter to be passed in the shortcode.
If this works, we could easily add it as a parameter in the modal when ""Link to"" is set to ""Media File""." cliffseal
Future Releases 30989 Additional audit for recent documentation changes General 4.1 normal normal Awaiting Review defect (bug) new dev-feedback 2015-01-12T11:15:59Z 2015-01-19T08:49:12Z "Some of the documentation changes in #30224 need an additional audit for consistency:
* [30673] added `null` as a possible `@return` value for `set_user_setting()` and `delete_user_setting()`, but it's not explained in the comment when it can be returned.
* [30674] removed `int` as a possible `@return` value for `get_the_time()`, `get_post_time()`, and `get_post_modified_time()`, but they all depend on `mysql2date()` and can return an integer if `'U'` or `'G'` is passed. [30682] added `int` back, but only for `get_post_time()`.
* [30678] added `string` as a possible `@return` value for `WP_Filesystem_SSH2::chown()`, but it's not explained in the comment when it can be returned.
* There are probably more, these are just the ones that stood out to me." SergeyBiryukov
Future Releases 13779 Preview doesn’t work - WP installed in its own directory General 2.9.2 normal normal Awaiting Review defect (bug) reopened dev-feedback 2010-06-08T01:32:04Z 2013-07-29T00:16:40Z "1. Wordpress is installed on /wp/ subdirectory.
2. Then it was set up to be visible from the site root according to http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory
3. Site works fine
4. [BUG] Preview for posts & pages isn’t working.
When I press preview it goes to url like:
http://example.com/?preview=true&preview_id=235&preview_nonce=aa28f04
and says ""You do not have permission to preview drafts."".
5. If I type subdirectory name “/wp/” in that url by hands, it shows correct preview: http://example.com/wp/?preview=true&preview_id=235&preview_nonce=aa28f04
6. The situation is getting worse if i'm using permalinks. In that case - there is nothing i can do to see preview.
ps: I’ve tested that on clean install. " antares19
Future Releases 26558 Remove title attributes: bookmark-template.php General normal normal Future Release defect (bug) new dev-feedback 2013-12-11T21:10:09Z 2014-10-17T00:25:47Z "Related: #24766
{{{
// bookmark-template.php
_walk_bookmarks()
}}}" joedolson
Future Releases 30213 Zlib does not work on fresh ubuntu installations... General 4.0 normal normal Awaiting Review defect (bug) new dev-feedback 2014-10-31T11:58:41Z 2015-01-06T06:09:17Z "And maybe the same issue on other Linux installations. The function 'gzopen' has been renamed to 'gzopen64', zo I suggest that in the future the class-pcllib.php should be extended with the following code just before the class declaration :
{{{
if (!extension_loaded('zlib'))
{
die('Abort '.basename(__FILE__).' : Missing zlib extensions');
}
if (!function_exists('gzopen') && function_exists('gzopen64'))
{
function gzopen( $filename , $mode, $use_include_path = 0) {
return gzopen64($filename, $mode, $use_include_path);
}
}
}}}
Thanks in advance for the update.
Wilko van der Ploeg
WordXPression" wvdploeg
Future Releases 9930 is_serialized() returns false on serialized doubles westi General normal minor Future Release defect (bug) reopened dev-feedback 2009-05-24T17:23:43Z 2014-10-10T03:58:21Z "Test case:
{{{
}}}
Expected: true
Got: false
serialize(1.2E+150) returns something like 'd:1.200000000000000013344651621705194036153934411236609269391465806550823148718924258603522328009361549E+150;', the plus sign after 'E' is not taken into account by the regexp" vladimir_kolesnikov
Future Releases 27799 json_last_error is not provided by JSON compatibility layer General normal normal Awaiting Review defect (bug) new dev-feedback 2014-04-14T14:39:56Z 2014-10-11T22:47:49Z "The [http://php.net/json_last_error json_last_error] function isn't provided in `wp-includes/compat.php` with the rest of the JSON compatibility functions, despite being available in PHP's JSON since 5.3.
Looking into this, it *should* be trivial to add error handling, but possibly non-trivial for exact compatibility with PHP." rmccue
Future Releases 24541 wp_is_mobile() includes tablets General 3.4 normal normal Awaiting Review defect (bug) new dev-feedback 2013-06-08T12:41:08Z 2014-02-02T13:37:19Z "Android tablets have ""Android"" in user agent and Android mobile phones have ""Android"" and ""Mobile"". I use this to distinguish what is tablet and what is a mobile phone.
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/vars.php" Looimaster
Future Releases 21667 Add some user agent to wp_is_mobile General 3.4.1 normal normal Awaiting Review enhancement new dev-feedback 2012-08-23T12:35:29Z 2014-02-02T13:38:42Z "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
Future Releases 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
Future Releases 24068 Allow absolute paths to be passed into content_url() General normal trivial Awaiting Review enhancement new dev-feedback 2013-04-12T20:13:59Z 2014-10-14T18:52:11Z "It would be very useful if `content_url()` allowed an absolute path to be supplied just like `plugin_dir_url()` does. This would allow a script within a theme subdirectory to easily obtain the URL to that subdirectory, for example via `content_url(__DIR__)`, instead of having to add relative paths after `get_stylesheet_directory_uri()`. This would also allow code living somewhere else under `wp-content/` (not in plugins or themes) to likewise obtain its full URL.
http://codex.wordpress.org/Function_Reference/content_url
http://codex.wordpress.org/Function_Reference/plugin_dir_url
http://codex.wordpress.org/Function_Reference/get_stylesheet_directory_uri" westonruter
Future Releases 27628 Discourage search engines setup/config inconsistency General 3.8.1 normal normal Awaiting Review enhancement new dev-feedback 2014-04-02T09:51:11Z 2014-04-02T10:25:35Z "When setting up your WordPress site, you are provided with a checkbox stating `Allow search engines to index this site`, often unchecked during setup while preparing your site (or at least this is how I personally use this feature).
Once under `Settings > Reading` the same option occurs, but in reverse, here it states `Discourage search engines from indexing this site`, this time checking it to achieve the same behavior.
I can see that both wordings are used if the `blog_privacy_selector` hook is triggered, here it makes sense to have both wordings since it is a set of radio inputs, one to allow and one to discourage, but for the (now) default checkbox it feels like keeping the wording consistent would be beneficial." Clorith
Future Releases 26673 Enhance wp_parse_args() by adding filters before/after the array_merge() General normal normal Awaiting Review enhancement new dev-feedback 2013-12-18T17:38:57Z 2014-02-03T02:07:17Z "I'd like to be able to modify existing WordPress core functionality without needing to:
* Rewrite functions
* Make a child theme to replace one template file
* Searching through code and finding there is no filter where I need one
We use `wp_parse_args()` to parse an `$args` parameter against default known parameters for some functionality. bbPress's `bbp_parse_args()` function applies filters before and after the `array_merge()` which allows for just-in-time or brute-force filtering of parsed arguments. Each call to `bbp_parse_args()` includes a unique string so each call has unique filters applied to them.
The incoming patch introduces invisible flexibility for each call to `wp_parse_args()` when a unique string is passed. If no string is passed, no filters are applied, meaning it's completely backwards compatible and allows for filters to be rolled in on a case by case basis later." johnjamesjacoby
Future Releases 30798 Ideas for improvements to to wp_die() usages General normal normal Awaiting Review enhancement new dev-feedback 2014-12-20T19:34:16Z 2015-01-08T00:57:18Z "When a visitor to or a user of a WordPress powered site encounters a `wp_die()` message (traditionally handled by the `_default_wp_die_handler()` function) it is (likely intentionally) a very jarring experience. Having `wp_die()` produce human readable results is the least amount of assistance we could possibly provide when a not-completely-unanticipated event occurs, and I think in many instances we can provide a more positive experience.
Of our current 230 approximate usages, 33 appear to be `Cheatin’; uh?`'s which, while cute and full of personality, aren't particularly helpful to the innocent user who encounters them, nor are they stern enough to deflect any guilty parties from continuing to seek out unauthorized access.
The remaining 200 approximate usages typically drop an authorized user into a limbo state where their only option is going back in their browser history and hope their drafted content isn't bungled or lost. Maybe tucking some of these requests behind ajax actions would reduce that redirection? Or maybe enabling themes to have a template hierarchy for handling various error messages would be more user friendly?
I don't have a real improvement plan, and don't feel wholly qualified to solve this issue for the entire WordPress community, rather I'm hoping this ticket can foster some discussion about improving this trusted, though somewhat antiquated, piece of WordPress core." johnjamesjacoby
Future Releases 30188 Introduce utility functions to check constants General normal normal Awaiting Review enhancement new dev-feedback 2014-10-29T23:31:14Z 2014-10-30T00:19:24Z "At the moment it's pretty obnoxious to check the various DOING_* constants throughout core and within plugins and elsewhere. The annoyance is compounded whenever we need to verify multiple constants, for example on the save_post hook:
{{{#!php
function do_some_post_stuff_the_current_way() {
// Bail if doing autosave
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
// Bail if doing AJAX
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
return;
}
// Bail if running cron
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
return;
}
// Maybe some other checks...
// Do my stuff..
}
add_action( 'save_post', 'do_some_post_stuff_the_current_way' );
}}}
I initially set out to solve this problem exclusively for saving posts, but became waylaid just in naming such a function (What are we checking exactly? The environment state/context? The mechanism that triggered save_post? etc). I spent the whole day thinking about it and realized the solution reaches beyond just saving post.
Enter `wp_check_constants()` and `is_constant_true()`.
The former accepts a single or array of constants, the latter only validates one. In these we confirm first that the constant is defined and then that it is explicitly set to `true`. Full stop.
I've written a few different tests to support that the function works as advertised. If the general consensus here is that these functions are useful I'd also be happy to submit patches that introduce them throughout core in place of the current `defined( 'FOO' ) && FOO` conditions.
Related: #25669
" rzen
Future Releases 31206 Move AJAX action parameters out of the method body and into the declaration. General trunk normal normal Awaiting Review enhancement new dev-feedback 2015-02-01T23:09:49Z 2015-02-03T21:15:14Z "`admin-ajax.php` has several methods that require an `$action` parameter, then immediately set that parameter in the body of the method to the desired string if it's not set, which seems a bit counter-intuitive.
I propose removing the conditional check completely (since it's not checking for a value, just the presence) and move the desired string into the method declaration as a default value." morganestes
Future Releases 12254 Move show_message() into WP_Error class and add support for various WP_Error features that are missing jeremyclarke General normal normal Future Release enhancement new dev-feedback 2010-02-16T19:31:05Z 2014-11-22T23:22:20Z "Revisiting an old ticket about the mass upgrader (#11232) after working on my ticket for the Settings API (#11474) makes me think both cases are running into a wider problem related to the way WP_Error messages are handled system-wide. There just isn't a way to show them that fits with the detailed system that exists around logging errors with WP_Error. In both cases having a built-in way to display all messages logged in a WP_Error object would simplify their code and make their use of WP_Error much more logical and less haphazard.
== WP_Error is intense ==
WP_Error objects can have an infinite number of messages logged inside them into $code groups which themselves can even have multiple message values/
{{{
WP_Error::add($code, $message, $data = '')
}}}
You can then retrieve error messages for a specific code using WP_Error::get_error_messages()
== show_message() is weak ==
In contrast to this useful maleability is the show_message() function used by various updater scripts to access WP_Error messages:
{{{
/**
* {@internal Missing Short Description}}
*
* @since unknown
*
* @param unknown_type $message
*/
function show_message($message) {
if( is_wp_error($message) ){
if( $message->get_error_data() )
$message = $message->get_error_message() . ': ' . $message->get_error_data();
else
$message = $message->get_error_message();
}
echo ""

$message

\n"";
}
}}}
Living in misc.php, this is clearly not the most loved function in WordPress, but beyond its lack of documentation and arguments it also actually doesn't make sense when combined with the nature of WP_Error, and I'd argue that it should be a first-class citizen of the WP_Error API.
=== Deal with the input as WP_Error class by default ===
For one thing its argument is named $message, which is a misnomer since it also supports complex WP_Error objects. I think it should be called $error and it should attempt to handle the error object in as much detail as possible. If this function is given a string instead of an error_object it should just show the text with the default formatting.
=== Move it into the class defintion ===
The function logic should also be moved to be inside WP_Error as ::show_message() as well as maybe adding a ::show_messages() to differentiate between forcing the first message in the object and showing any relevant messages. The original function can be kept as a shell for the class method.
=== Support $code and $data better ===
The updated function should allow $code values to be specified to show only messages related to a specific error $code (from WP_Error::add()) as well as some kind of option specifying whether the contents of the $data value for the results should be displayed.
=== Add support for 'types' of errors for display purposes ===
To really have valuable visual cues linked with error display the system needs to be adapted to handle error types like 'error', 'updated' and something green like 'success'. Having this be part of hte API would increase the likelihood of people using the system because it will make it easier to quickly add visual errors to a plugin. IMHO the easiest way to achieve this would be to link 'types' with CSS classes expected to exist in wp-admin. 'updated' and 'error' classes already exist, yellow and red respectively, and can be a starting point. This way marking an error as 'error' or 'updated' automatically controls the color it will be when show_messages() is run.
This would probably require modifying the WP_Error::wp_error() and WP_Error::add() methods to accept a 4th argument, but would be a great step forward.
=== Use nice formatting ===
I think the formatting should be the same as the 'settings updated' message from after you save a settings page. It is malleable and stands out in the admin:
{{{

MESSAGE

}}}
== Lets make showing errors easy ==
Even though these functionalities aren't needed for the current uses of show_message() in the upgrader process I think they will inform and improve those systems when the changes are taken into account. WP_Error is fairly powerful but not used enough because it is incomplete and awkward. Improving show_message() to fill this hole will mature the API and hopefully get plugin authors using it in more detail. It would definitely make integrating WP_Error into the Settings API much easier.
== Thoughts on this before I make a patch? ==
I'll try to work on this soon but am interested in feedback. Anyone had this idea before and ran into a wall? Something else you think should be included?" jeremyclarke
Future Releases 31387 New core API for adding Meta tags to the header General normal normal Awaiting Review enhancement new dev-feedback 2015-02-19T19:08:23Z 2015-02-26T00:01:54Z "There is often a conflict between one or more plugins about registering meta tags in the header. Meta tags that shouldn't be duplicated, it's difficult to know which one should 'win'. A lightweight framework in core that multiple plugins could use to register meta tags seems like it would be useful.
It would need to handle several different attributes for all use cases -- `name` `property` `http-equiv` `charset` -- possibly generic `data-*` attributes? Uncertain.
Twitter discussion: https://twitter.com/nacin/status/562109983069061120 (up and down the thread)
My first swing at it:
https://gist.github.com/georgestephanis/0f0cca2c5f1a6cd4aab2" georgestephanis
Future Releases 27122 Optimization for PHP FPM General 3.8 normal normal Future Release enhancement new dev-feedback 2014-02-13T22:59:21Z 2014-06-27T19:43:45Z "This patch make {{{ wp_ob_end_flush_all }}} calling {{{ fastcgi_finish_request }}} instead of {{{ ob_end_flush }}} when php-fpm is used.
{{{ fastcgi_finish_request }}} flush the buffers '''and''' close the connection. This tweak increases page speed.
It also allows to run heavy tasks such as sending mail, writing logs or making complex calculations after the end of the request without slowing down the whole page load.
Symfony uses this tweak too, see this PR FOR further details: https://github.com/symfony/symfony/issues/1180" dunglas
Future Releases 17619 Soft 404 at /wp-content/plugins/ General normal normal Awaiting Review enhancement new dev-feedback 2011-05-30T16:31:30Z 2014-10-11T23:22:50Z "/wp-content/plugins/index.php would be better written with a proper 404.
{{{
}}}" miqrogroove
Future Releases 16895 wp_list_pluck cannot be used with arrays of references General 3.1 normal normal Future Release enhancement new dev-feedback 2011-03-19T11:47:37Z 2014-10-08T21:53:16Z "Example code:
{{{
$one = array('num' => 1);
$two = array('num' => 2);
$input = array( &$one, &$two );
$nums = wp_list_pluck($input, 'num');
var_dump($nums, $input);
}}}
Example output:
{{{
array
0 => &int 1
1 => &int 2
array
0 => &int 1
1 => &int 2
}}}
Expected output:
{{{
array
0 => int 1
1 => int 2
array
0 => &
array
'num' => int 1
1 => &
array
'num' => int 2
}}}
This is caused by wp_list_pluck using the same variable name for the input array, and then overwriting it for the return.
One such real life example, is $wp_query->comments
See patch" dd32
Future Releases 21170 JavaScript actions and filters koopersmith General 3.4 normal normal Future Release feature request new dev-feedback 2012-07-05T21:34:03Z 2014-06-28T11:01:03Z "The concept of adding JavaScript actions and filters has been tossed around for some time. We've experimented with various configurations of actions in both the fullscreen and customizer APIs, and they've proven their utility enough to graduate them to a core feature in their own right.
----
I think that a good events API should satisfy these parameters:
1. '''Support jQuery-style dot namespacing''' to allow functions to be easily removed.
2. '''Should (likely) support priorities.''' While seemingly random numbers aren't fun to use, it allows plugins to cooperate without having to know of each other's existence. We can't expect plugin authors to rearrange the array of callbacks.
3. '''Should ''not'' force functions to have unique IDs.''' Anonymous functions are extremely common in JavaScript — forcing them to be named is contrary to the nature of the language.
4. '''Should be structured as a mixin.''' The global event loop should be an instance of the core Events object. Using a mixin will allow developers to easily create event loops for their own plugins (to prevent polluting the global namespace — think about large plugins, like bbPress). An events mixin will also enable developers to create more powerful abstractions, such as observable values, collections, and pretty much any structural JS object you can dream up.
5. '''Should allow the looping process to be overwritten.''' This will result in less code and added flexibility. The only difference between actions and filters is how they handle the callbacks object. There are other types of looping processes that could be beneficial in JS. One example would be returning false if any callback returns false, which could be used to stop a process, much like the native event.stopPropagation method.
----
'''Why not use custom jQuery events?'''
Custom jQuery events are great when we need to trigger actions on a DOM element. Triggering plain events on the body element (or any other hidden element) is not performant — every jQuery event normalizes an DOM Event object, which we then completely ignore.
'''Should we require jQuery to use the API?'''
I'm not sure. jQuery.Callbacks may be a helpful solution here, provided we can properly integrate priorities and namespacing. jQuery.Callbacks also only requires jQuery.each and jQuery.extend, so writing a shim that doesn't use the rest of jQuery would not be exceptionally difficult. Either way, switching between one and the other as we develop should not be exceptionally difficult." koopersmith
Future Releases 29619 Make WP_HTTP_BLOCK_EXTERNAL more easy to use HTTP API 2.8 normal normal Awaiting Review enhancement new dev-feedback 2014-09-10T17:46:54Z 2014-09-10T17:50:29Z "Currently when defining WP_HTTP_BLOCK_EXTERNAL it blocks all requests which would mean that WordPress itself becomes unusable because it then will also blocks it own requests to WordPress.org. Also oEmbeds stop working because they can't get their data.
My idea is to make an if statement like the localhost check to allow those requests. I do get that this constant is mainly for local development but would be great to have a easy way to have a semi locked down installation. So I'm curious what you guys think about this." markoheijnen
Future Releases 20907 About screen text assumes user has update privileges Help/About 3.3 normal normal Awaiting Review enhancement new dev-feedback 2012-06-11T17:59:18Z 2014-02-22T01:19:56Z "From the 'About' screen in WordPress:
> Thank you for updating to the latest version!
But I didn't! I am just a lowly editor. My administrator probably updated the site for me.
We shouldn't show this sentence if the user doesn't have the `update_core` capability." johnbillion
Future Releases 24567 Add help to media modals Help/About 3.5 normal normal Awaiting Review enhancement new dev-feedback 2013-06-12T08:06:29Z 2013-06-12T16:52:29Z They are far from simple screens but there is no help available for them. mark-k
Future Releases 11740 Sorting tags and towns does not work well for utf-8 nbachiyski I18N 2.9 normal normal Future Release defect (bug) new dev-feedback 2010-01-06T12:42:24Z 2014-10-12T12:40:48Z "There are problems with sorting special Czech characters:
1) Options - General - Timezone selection.
Evropa (Europe)
First item should be Amsterdam, but instead of it there is ""Řím"" (Rome in Czech). And this is not right, character Ř should be between R and S.
2) Editing posts - Select from most used tags.
You can create tags ""Rome"", ""Amsterdam"" and ""Řím"".
Tags are also sorted in a bad way, first is ""Řím"".
It is very problematic for Czech users when there are many tags, because it does not help them..." pavelevap
Future Releases 21616 add-textdomain doesn't conform to WP coding standards ocean90 I18N normal normal WordPress.org defect (bug) reviewing dev-feedback 2012-08-17T03:07:19Z 2015-02-22T11:06:13Z I used add-textdomain.php from http://i18n.svn.wordpress.org/tools/trunk on my plugin code, but it does not include a space before the closing parenthesis of the gettext function call it alters, which violates http://codex.wordpress.org/WordPress_Coding_Standards#Space_Usage groovecoder
Future Releases 21319 is_textdomain_loaded() returns true even if there are no translations for the domain nbachiyski* I18N 3.0 normal normal Future Release defect (bug) accepted dev-feedback 2012-07-20T03:48:56Z 2012-11-06T23:15:36Z "#10527 introduced is_textdomain_loaded(). It returns true if load_textdomain() has been called, even if no translations were loaded for that domain. I think it should return false if no translations were loaded. As the documentation says, ""@return bool Whether there are translations"". In this case, no, there are not translations.
Attached patch also does the following:
* Does not store instances of NOOP_Translations inside the $l10n global. Previously, we instantiated NOOP_Translations once for each domain that was missing translations; since we are no longer storing NOOP_Translations instances inside $l10n, we need to avoid instantiating it for every call to get_translations_for_domain(). Thus, NOOP_Translations is now instantiated only once, using a static variable.
* Removes by-references for get_translations_for_domain(), which are no longer needed in PHP5." nacin
Future Releases 7098 Multiple entity codes in POT file for the same character I18N 2.5.1 normal normal Future Release enhancement new dev-feedback 2008-06-05T11:33:12Z 2014-10-26T22:46:53Z "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 — and —
'''Right angle quote:''' the POT file contains both » and »
I'm not sure if it matters but it certainly is a little inconsistent.
" leuce
Future Releases 22229 Plurals in JavaScript nbachiyski* I18N low normal Future Release enhancement accepted dev-feedback 2012-10-19T19:25:40Z 2014-11-22T20:11:11Z This is something koopersmith needs in the media modal, and I've seen a few other recent use cases. nacin
Future Releases 27786 Suggested x Default images for header I18N 3.9 normal trivial Awaiting Review enhancement new dev-feedback 2014-04-13T10:48:16Z 2014-09-29T13:19:03Z "We talk about ""Suggested images"" in Customizer but ""Default images"" in Custom Header page. It should be consistent..." pavelevap
Future Releases 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.
{{{
}}}
on translated/localized page page, the month name is translated (F) but the ordinal suffix no.
Not browser/OS/environment dependent." mihaimihai
Future Releases 21642 language_attributes() print WP lang instead content lang. I18N 2.1 normal normal Awaiting Review enhancement new dev-feedback 2012-08-20T18:15:37Z 2013-08-09T09:03:24Z "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
Future Releases 25280 wp_localize_script unexpectedly converts numbers to strings I18N 3.2 normal normal Future Release enhancement new dev-feedback 2013-09-11T16:15:53Z 2014-10-26T16:32:36Z "Running wp_localize_script on an an array has the unexpected result of converting numbers into strings. Core WordPress files work around this issue by explicitly casting variables to int, for example in [http://core.trac.wordpress.org/browser/trunk/src/wp-admin/js/revisions.js#L36 revisions.js].
Although it is easy to work around the issue (if you are expecting it), JavaScript is loosely typed and will merrily add numbers as strings without any warning - introducing potential [http://core.trac.wordpress.org/changeset/23247 bugs] when code that expects a number is instead passed a string. Properly passing numbers as numbers would resolve this issue.
The root of the problem is that in PHP versions before 5.3.3, json_encode encoded numbers as strings. PHP 5.3.3 includes an option [http://php.net/manual/en/function.json-encode.php#refsect1-function.json-encode-changelog JSON_NUMERIC_CHECK] that eliminates this issue.
For example & testing this bug, add the following code to your template's setup function:
{{{
wp_enqueue_script( 'localize_test', get_template_directory_uri() . '/localize_script.js', array(), '1.0.0', true );
$array_to_localize = array(
'a_string' => __( 'Some String' ),
'a_number' => 10,
);
wp_localize_script( 'localize_test', 'localized_variable', $array_to_localize );
}}}
Then add a file named localize_script.js in your theme folder containing the following code:
{{{
console.log(localized_variable);
}}}
Reloading shows that the number has been converted into a String ([http://cl.ly/image/243R3C3X0H2S console screenshot]).
The attached patch corrects the issue by checking for the presence of the JSON_NUMERIC_CHECK constant and if present, passes it to json_encode - telling it to encode numbers as numbers and resulting in the expected behavior ([http://cl.ly/image/1V3O0v1T0R0D console screenshot]). I checked this under PHP 5.2.17 verifying that no errors are created (although the old behavior of converting numbers still occurs). Under PHP 5.3.3 the variable is now properly passed as a number. The [http://codex.wordpress.org/Function_Reference/wp_localize_script Codex documentation] needs to be updated if this patch is accepted.
" adamsilverstein
Future Releases 12477 Search with special characters and similar terms nbachiyski I18N normal normal Future Release feature request new dev-feedback 2010-03-02T17:42:46Z 2014-10-08T17:44:32Z "I did:Tried searching for terms Metis and Métis
I saw:Those two searches turned up different sets of results.
I expected:The same set of search results, or at least everything when
I searched for Metis.
Can search be smarter when special characters are involved?" mrroundhill
Future Releases 29783 User Admin Language I18N 4.0 normal normal Future Release feature request reopened dev-feedback 2014-09-29T09:37:45Z 2014-12-05T12:11:58Z "How possible is it to enable a language switcher in the user profile for the admin area?
My reason for this (and I am not alone) is I work with a lot of international clients and they use a whole raft of different languages, from chinese to Russian.
We can use plugins to change the frontend language but if a Chinese client asks me to look into an issue in their site admin, I need to change the default WP language in WP config to English, do what I need to do and then change it back.
Another example, lets say I run a blog (similar to Mashable) where there are loads of different contributors from around the world, it would be much easier for them to see the admin in their native language.
Is this something WP would be looking at adding in the future (I think it would be a great benefit to the internalisation of WP)." faevilangel
Future Releases 15760 "LiveJournal Importer mishandles some and expressions" westi Import normal normal WordPress.org defect (bug) assigned dev-feedback 2010-12-10T04:45:17Z 2014-10-08T19:25:43Z "There is a note on plugins.trac ticket 1231 that says this should be handled in core.trac instead, so I'm cross-posting it here. The patch and ticket were originally added by a-bishop:
http://plugins.trac.wordpress.org/ticket/1231
Reproduction steps: 1. Create a LiveJournal? entry that has in it. Note that this is XML-ish 2. Try to use the livejournal-importer on this post.
Bug The gets ignored because the regular expression is too strict.
I've attached a patch that makes LiveJournal? Importer recognize the XML-ish version.
Patch:[[BR]]
http://plugins.trac.wordpress.org/attachment/ticket/1231/livejournal-importer.patch" designsimply
Future Releases 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 tag as opposed to , I noticed that WP's RSS import doesn't strip the CDATA tags as it does for the .
=========Code Lines (83-87)===============
{{{
if (!$post_content) {
// This is for feeds that put content in description
preg_match('|(.*?)|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('|(.*?)|is', $post, $post_content);
$post_content = str_replace(array (''), '',$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
Future Releases 24373 WordPress Importer - Strict Standards compatibility Import 3.6 normal normal WordPress.org defect (bug) reopened dev-feedback 2013-05-20T19:02:00Z 2015-02-25T19:55:45Z "I am seeing the following errors on wp-admin/import.php, running 3.6-beta3-24300 and PHP 5.4.7, in my single and multisite test installs:
'''Strict Standards:''' Redefining already defined constructor for class WXR_Parser_Regex in xxxxx\wp-content\plugins\wordpress-importer\parsers.php on line 408
'''Strict Standards:''' Declaration of WP_Import::bump_request_timeout() should be compatible with WP_Importer::bump_request_timeout($val) in xxxxx\wp-content\plugins\wordpress-importer\wordpress-importer.php on line 38
" kpdesign
Future Releases 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
Future Releases 31039 Move retrieve_password() from wp-login.php Login and Registration normal normal Awaiting Review defect (bug) new dev-feedback 2015-01-16T20:26:08Z 2015-01-16T20:27:08Z Once considered in #20279, I am able to propose a sane way to separate {{{retrieve_password()}}} from {{{wp-login.php}}}. jfarthing84
Future Releases 17904 Multisite has more restrictions on user login character set Login and Registration 3.0 normal normal Future Release defect (bug) new dev-feedback 2011-06-27T11:09:12Z 2015-01-30T18:19:55Z "Multisite has more restrictions on the characters allowed in a user's login name compared to single site. This seems unnecessary and confusing. It was also the root of a recent bug in the importer, see [http://wordpress.org/support/topic/invalid-author-importing-single-wordpress-to-mulitsite-wordpress?replies=21#post-2186667 this forum thread] and the [http://plugins.trac.wordpress.org/changeset/401649 workaround].
I haven't worked up a patch yet since there seem to be a few locations where these restrictions are enforced and I don't know if I have found them all yet:
- wpmu_validate_user_signup() uses the regex `/[a-z0-9]+/`
- ms-default-filters.php adds `strtolower` to `sanitize_user`
Relevant: http://mu.trac.wordpress.org/changeset/1689 [12948]" duck_
Future Releases 16482 Visibility: password-protected breaks with redirected domains Login and Registration 3.0.4 normal minor Future Release defect (bug) new dev-feedback 2011-02-07T18:58:45Z 2014-03-26T20:04:36Z "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
Future Releases 26474 Add Filter to Username/Password Fields on Login Form? Login and Registration 3.8 normal normal Awaiting Review enhancement new dev-feedback 2013-12-07T18:06:49Z 2014-06-27T05:46:53Z "As a state institution, we are required to remain PCI-compliant. One of the areas we've been dinged in scans in the past, albeit an area that they consider ""low risk"", is the fact that the username and password fields allow autocomplete.
I understand that it's probably not preferable for everyone using WordPress to have autocomplete turned off on those fields, but it would be nice if it was simple to at least filter those fields to turn it off (or, at the very least, add that as one of the ""args"" that are used when the form is built).
This should obviously be used both in wp-login.php and in the `wp_login_form` function within wp-includes/general-template.php
I'm happy to work up a patch for this if this is something that might be supported. Thanks." cgrymala
Future Releases 17630 Redirect wp-signup.php to wp_signup_location Login and Registration 3.1.3 normal normal Future Release enhancement new dev-feedback 2011-05-31T23:03:15Z 2014-01-24T05:31:32Z "I noticed that if wp-signup.php is accessed directly and wp_signup_location is not the default ""site_url( 'wp-signup.php' )"", it does not redirect to the signup location.
I've attached a potential patch. It works for me." dwieeb
Future Releases 14108 Unify registration between single site and network configurations Login and Registration 3.0 normal normal Future Release enhancement new dev-feedback 2010-06-26T22:14:40Z 2014-01-24T05:27:09Z "The registration processes in 3.0 differ between single site registration and network signup. We should look at unifying the registration process. One way we could do this is
- keep the existing registration process for single sites
- in a network, users register first using the same process as single sites
- in a network, once registration is complete, direct the new user to the site creation page (which could be somewhere in the dashboard) where they could create their site
There are also several open tickets related to issues with the network signup process:
#13827
#12022
#12030
#12032
(There may be more.) We could clean up/eliminate these in process. I'd like to see this included in the discussions once we get closer to the 3.1 dev cycle.
" wpmuguru
Future Releases 20019 wpmu_validate_blog_signup(): Allow '.' and '-' in blog names Login and Registration 3.0 normal normal Future Release enhancement new dev-feedback 2012-02-10T23:04:29Z 2014-01-30T13:28:01Z "Canonical uses Wordpress 3.x multisite as part of voices.canonical.com, for employees who do not have or wish to list their personal blog. The code is stock, except for one patch we maintain, which allows blog names (currently in WP as lowercase alphanumeric only) to also include '.' and '-'. This matches our global username format.
Attached is a patch extending wpmu_validate_blog_signup() to allow '.' and '-', with a tweak for the error text. We have been running the patch for awhile, and have not run across any problems with the rest of the code accepting this." fo0bar
Future Releases 25239 $_SERVER['SERVER_NAME'] not a reliable when generating email host names Mail 3.8 normal normal Awaiting Review defect (bug) new dev-feedback 2013-09-06T14:05:28Z 2014-05-23T01:30:26Z "For quite some time I have been having an issue with my comment notifications. The From address has been wordpress@_. I haven't paid much attention to this, but I had some spare time and decided to pursue the issue. Here it is...
I am running WPMS w/ domains (latest stable) with Nginx and PHP5-FPM. In WordPress the comment notifications from email addresses are being generated using `$_SERVER['SERVER_NAME']` to get the current site's domain name.
e.g.
{{{
$wp_email = 'wordpress@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));
}}}
However, because of my environment my Nginx config for my site has the server_name set to ""_"" (underscore). Which is a catchall -- http://nginx.org/en/docs/http/server_names.html.
Site config in Nginx:
{{{
# Redirect everything to the main site.
server {
listen [::]:80 default_server;
listen [::]:443 ssl;
ssl_certificate /etc/nginx/ssl.crt/xxx.com.2012.crt;
ssl_certificate_key /etc/nginx/ssl.key/xxx.com.2012.key;
server_name _;
root /var/www/xxx.com;
access_log /var/log/nginx/xxx.com.access.log;
error_log /var/log/nginx/xxx.com.error.log;
client_max_body_size 100m;
if ($http_host = ""www.xxx.com"") {
rewrite ^ http://xxx.com$request_uri permanent;
}
include global/restrictions.conf;
# Additional rules go here.
include global/wordpress-ms.conf;
}
}}}
The default fastcgi_params has this set:
{{{
fastcgi_param SERVER_NAME $server_name;
}}}
Thus, `$_SERVER['SERVER_NAME']` is outputting ""_"" (underscore).
I propose we move away from `$_SERVER['SERVER_NAME']` when generating the from email addresses and use the available $current_site global object which stores the domain variable ($current_site->domain). I have implemented this change on my own site and have included the patch here.
In the meantime, anyone else facing this problem can change their fastcgi_param to $host instead of $server_name. In my opinion, not the best solution, but it works for now." layotte
Future Releases 15281 Arin whois link is borked Mail lowest normal Future Release defect (bug) new dev-feedback 2010-11-01T21:33:14Z 2015-01-28T22:46:42Z "http://ws.arin.net/cgi-bin/whois.pl?queryinput=72.233.56.138
I am tempted to propose an api.wordpress.org service, that way these links will never break, but more importantly because arin.net is one of like 7 services based on global regions, and requesting an Asian IP through arin.net doesn't work.
An IP/geo lookup in core would be prohibitive, but if we still want to keep a link (beyond the IP), then we could do this.
On the other hand, IP addresses are becoming less meaningful. Should we just kill the link?" nacin
Future Releases 17491 Make is_email() compliant with RFC2822 Mail 3.1.2 normal minor Future Release defect (bug) reopened dev-feedback 2011-05-18T14:48:52Z 2014-10-10T08:47:01Z is_email('toto.@toto.com') returns true arena
Future Releases 21554 Problem with determining e-mail charset in wp-mail.php lizhenry Mail 3.4.1 normal normal Awaiting Review defect (bug) assigned dev-feedback 2012-08-12T11:06:52Z 2014-02-02T06:10:04Z "In wp-mail.php the charset of the incoming e-mail message is determined on line 77 by taking the string between the second ""="" in the line and the end of line/second "";"" respectively.
'''The problem'''
If the header line in question looks like any of the following that method is perfectly fine:
{{{
Content-Type: text/plain; charset=UTF-8; format=flowed; delsp=yes
Content-Type: multipart/alternative;
}}}
However in messages sent from e.g. Gmail or Goolge Reader this header line usually looks like this:
{{{
Content-Type: multipart/alternative; boundary=f46d044516dd9cd71f04c70e55e8
}}}
I this case ""f46d044516dd9cd71f04c70e55e8"" is determined as the charset and the iconv function further down on line 187 returns false which causes the post content to be emptied.
'''Suggested solution'''
I personally think that it is better to have the post published with an ""incorrect"" charset than with no content at all.
Therefore I suggest that on line 76 in wp-mail.php...
{{{
if ( ! empty( $content_type[1] ) ) {
}}}
...is replaced by...
{{{
if ( ! empty( $content_type[1] ) && stripos( $content_type[1], 'charset' ) !== FALSE ) {
}}}
...in order to check if there is actually a charset definded.
Alternatively/additionally the return value of the iconv function on line 187 should be checked and the $content variable only modified if the return value doesn't equal FALSE." mighty_mt
Future Releases 19847 wp_mail $from_name field is removing an extra character from the name Mail 3.3.1 normal normal Future Release defect (bug) new dev-feedback 2012-01-17T05:13:18Z 2013-08-08T09:32:00Z "If the headers are sent as a string to wp_mail, parsing of $from_name field removes one required character at the end of the name. Hence causing a name field of ""Hakan"" to show up as ""Haka"" in the received email.
Line 257 of pluggable.php is causing this error.
$from_name = substr( $content, 0, strpos( $content, 'Replying to [comment:4 bramd]:
>> I had some thoughts about this and discussed it on the WP a11y mailinglist, where people seem to agree.
>>
>> Currently, we use aria to indicate the list as a group of checkboxes, I propose we make that a listbox with multiselection if applicable (role=""listbox"", aria-multiselect). Then it also makes sense to mark the whole thing with aria role application to indicate we handle focus inside. We can rely on the arrow key navigation and make the list focusable by tabbing to it. This means the individual items will get a tabindex of -1. As an added bonus, we get the screenreader reading indexes for freee (e.g. ""Testfile"" item 1 of 3).
First try to apply @bramd idea, the attachment grid has now an ARIA role of ""application"" and seems it's working nicely. Added ARIA roles, attributes, improved keyboard accessibility and screen readers feedback. It's complex so please bear with me :) It's just a first try and there are still many things to refine.
Any thoughts more than welcome, please test extensively.
Basically, when in the attachment grid:
- use arrows to navigate through attachments in any direction
- use tab to navigate sequentially
- once an attachment is selected, additional controls ""Deselect"" and ""Edit details"" will be announced, use tab to focus and activate them
- arrows navigation will skip the additional controls so it's possible to navigate quickly through attachments even when many of them are selected
Focus is no more automatically moved to the Details sidebar. The idea is to have a dedicated control to move to the Attachment Details that will be revealed just when the attachment is selected.
Many other details, TL;DR
Some things to improve:
- labels refinements
- add a control to go back from Attachment Details to the currently selected image
- better ""saved"" feedback message after editing attachment details
- inline help
- visual: designers feedback welcome
" afercia
Future Releases 23398 "Media Gallery - Clicking ""Restore Original Image"" in ""Scale Image"" pane loses 'Thumbnail Settings' pane." Media 3.4 normal normal Future Release defect (bug) new dev-feedback 2013-02-05T21:11:36Z 2013-07-05T16:46:15Z "Reproduce the problem thusly:
Click ""Edit image"" in the ""Edit Media"" interface for any image.
`/wp-admin/post.php?post=1119&action=edit`
Scale the image a couple times in the 'Scale Image' pane. Update.
Click ""Restore Original Image"" in the 'Scale Image' pane.
Try to crop just the thumbnail.
The 'Thumbnail Settings' Pane is '''''gone'''''.
The image has to be deleted and re-uploaded to gain thumbnail control once again." gr33nman
Future Releases 30401 Media Library Crashes Browser Frequently Media 4.0 normal normal Awaiting Review defect (bug) new dev-feedback 2014-11-19T07:39:02Z 2015-02-12T19:03:09Z Since the updates to Media Library issue of Chrome crashing 1) as I scroll through the many images that auto-scroll when it would be better to paginate the sheer number, and 2) when users uploaded very large files, Media Library crashed just trying to load. leedman
Future Releases 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
Future Releases 22135 Special characters in caption lead to failure of inserting images Media 3.4.2 lowest normal Future Release defect (bug) new dev-feedback 2012-10-08T21:25:46Z 2014-03-27T20:58:37Z "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""}}} 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
Future Releases 11477 UX issues in the Image Editor Media 2.9 normal major Future Release defect (bug) reopened dev-feedback 2009-12-17T23:45:56Z 2014-05-22T15:31:46Z "There appear to be several bugs in the Image Crop input fields. I'll let you decide which of these symptoms are valid.
1. Go to the Edit Media screen for an image.
2. Click & Drag to highlight an area of the image.
3. Enter an Aspect ratio of 4:3. '''The image selection changes but the Selection fields are not updated.'''
4. Attempt to change the Aspect ratio to 4:7. '''Input is erased as soon as I type it in.''' This makes no sense at first, but appears to be some kind of boundary feedback?
5. Attempt to change the Aspect ratio to 10:11. '''Input is impossible unless the second field is empty.'''
6. Change the Aspect ratio to 7:8 and then change it to 7.9:8. '''Nothing happens.'''
7. In common graphics vocabulary, ""Selection"" always refers to a pair of rectangular coordinates. '''Using the word ""Selection"" where ""Size"" is what you meant''' to say is confusing.
8. Scale Image is collapsed by default, with no indiciation that it can be expanded except for a slight difference in text color, and the cursor changes on mouse over. This is inconsistent with the Image Crop area, which is '''not collapsible'''.
9. There is '''no way to enter a decimal coefficient''' for the Aspect ratio. Even 1.67:1 doesn't work. Unless the user wants to always use 1:1, 16:9, 8:5, 5:4, or 4:3, the existing Aspect Ratio fields will be useless. The interface would make more sense with a limited set of radio options.
10. '''The original image Aspect Ratio is not displayed.''' If my image has an Aspect of 1.39847, and I want to ""lock it in"" while cropping, there is no obvious way to do it.
11. '''The new image Aspect Ratio is not displayed.''' If I crop by click & drag, or by typing in the Selection fields, there is no way to know the resulting Aspect Ratio without pulling out a calculator.
12. The original image '''dimensions are not displayed''', unless the Scale Image area has been expanded. Cropping is just that much more awkward as a result." miqrogroove
Future Releases 24815 get_the_post_thumbnail() fetches full sized image if 'post-thumbnail' custom size not defined in theme Media 2.9 normal normal Awaiting Review defect (bug) new dev-feedback 2013-07-22T09:43:42Z 2014-06-23T16:20:31Z "In wp-includes/post-thumbnail-template.php the $size default value is set as 'post-thumbnail' in the following function:
- get_the_post_thumbnail()
'''Expected behaviour'''
Expected behaviour would be to return the image at 'post-thumbnail' dimensions - however, if this is not set in the theme via:
- set_post_thumbnail_size() function
- add_image_size() function
it returns the full sized sized image begin displayed. I'd expect this to return the image at standard 'thumbnail' size, as some people will just add add_theme_support( 'post-thumbnails' ) and not set (or even need) custom dimensions.
'''Proposal and patch'''
$size default value should default back to 'thumbnail' for normal expected function behaviour if 'post-thumbnail' specific dimensions have not been set.
I'm not sure if it would be more efficient to test against the global variable that holds these values, or use get_intermediate_image_sizes() as I've used in the patch attached - 2nd opinion please?" Jonnyauk
Future Releases 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 2014-06-27T20:13:24Z "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
Future Releases 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 2014-06-10T16:31:03Z "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
Future Releases 22075 Allow custom attributes to be set in `wp_get_attachment_link` Media 3.4 normal normal Future Release enhancement new dev-feedback 2012-10-02T04:29:05Z 2014-05-24T12:51:41Z "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
Future Releases 25249 Change directory of re-sized images / manipulated media Media normal normal Awaiting Review enhancement new dev-feedback 2013-09-07T07:57:09Z 2014-02-22T00:14:40Z "Re-sized images currently stores next to the uploaded image. This creates lots of mess at single place.
== Situation ==
If there are 1000 images in library, as after upload WP will automatically create 3 re-sized versions so 3000 images near the origanl is really messy.
Right now there is no way to separate out original images.
Re-sized images should be kept separately as those are not important for backup purposes if you have original images.
== Idea ==
We can have directory called ""manipulated"" or ""manip"" where we can replicate exact path to main image.
'''Original Image Path:'''
{{{/wp-content/uploads/2013/09/awesome-image.jpg}}}
'''Resized Image Path:'''
{{{/wp-content/uploads/manip/2013/09/awesome-image-1024x472.jpg}}}
{{{/wp-content/uploads/manip/2013/09/awesome-image-300x300.jpg}}}
{{{/wp-content/uploads/manip/2013/09/awesome-image-150x150.jpg}}}" valllabh
Future Releases 21221 Image title and alt attribute content should be texturized. Media 3.4.1 normal normal Awaiting Review enhancement new dev-feedback 2012-07-11T19:49:18Z 2014-11-15T21:32:14Z "
gallery_shortcode() texturizes the caption shown underneath images in galleries.
For consistency, alt and title tags content should also be texturized.
This is also valuable for developers extending the gallery shortcode or output, such as with the WordPress.com (and Jetpack) [http://en.blog.wordpress.com/2011/11/08/new-photo-carousel/ Gallery Carousel feature], as it provides i18n'd texturization, for EG.
See attached patch, which:
* uses wptexturize() in wp_get_attachment_image() directly (/wp-includes/media.php), which makes it work with gallries, attachment pages, etc.
* also uses wptexturize() in get_image_tag() (/wp-includes/media.php), for consistency.
* uses wptexturize() in wp_get_attachment_link() (/wp-includespost-template.php), for consistency" stephdau
Future Releases 16165 Media Library Bulk Delete: Error in deleting... nacin Media 3.1 low normal Future Release enhancement assigned dev-feedback 2011-01-09T14:20:39Z 2014-02-02T09:58:26Z "While Bulk Deletion, when a user gets the ""Error in deleting..."" message, there is no information given of how many elements have been deleted so far.
Let's say there was a bulk of N deletions, getting this error can mean up to N-1 items have been deleted already.
Same is the case if for some item, no permissions are granted to delete it. The number of successfully deleted items is missing as well." hakre
Future Releases 22744 Media search doesn't include file name wonderboymusic Media 3.0 normal normal Future Release enhancement reviewing dev-feedback 2012-12-04T22:56:45Z 2014-08-13T18:21:20Z "Upload a file called `foo.png` and then do a search for `foo.png` (either on the Media screen or in the new media modal) and it won't find the file.
Probably existed since forever. Marking as 3.0." johnbillion
Future Releases 24380 Missing Compression Parameter in WP_Image_Editor_GD wonderboymusic Media 3.5.1 normal normal Future Release enhancement reopened dev-feedback 2013-05-21T02:37:06Z 2014-08-01T18:45:22Z "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
Future Releases 23205 New Media Uploader slow for sites with many images Media 3.5 normal normal Future Release enhancement new dev-feedback 2013-01-15T17:17:02Z 2014-07-14T21:32:15Z "The new media uploader added in 3.5 looks very nice. Unfortunately, its functionality is worse for sites with thousands of images. I think this can be combated by allowing us to select the ""Upload Files"" page as our default after clicking ""Add Media,"" and rather than ""All Media Items"" be the page it jumps to after the image is uploaded, instead have it jump to ""Uploaded to this Post."" Is there any way the WordPress team can make this default? Or add the option to make it default? It's made posting on my site 10 times more annoying, especially for those posts with 40-50 images. And I'm sure there are others who feel the same." salromano
Future Releases 22938 Presentation of hierarchical taxonomy in Media modal should be checkboxes rather than comma-separated tag list wonderboymusic Media 3.5 normal normal Future Release enhancement assigned dev-feedback 2012-12-14T14:10:16Z 2014-11-20T04:40:08Z Since 3.5, using register_taxonomy_for_object_type on attachments, if the taxonomy used is hierarchical, whereas in the edit attachment UI you see the normal list of checkboxes, in the corresponding modal it is presented as a comma-separated list of slugs, as if it were a non-hierarchical taxonomy (tags rather than categories). I'm sure this is not a bug / mistake / oversight, but at best it's a little unintuitive (you need to have memorised the category slugs to add new ones) and worst a bit dangerous (risk of adding unwanted categories), and it would be great if in future it was presented here too as a list of checkboxes. yeswework
Future Releases 28868 Remove unused media.view.ButtonGroup Media 3.5 normal normal Future Release enhancement new dev-feedback 2014-07-13T00:49:08Z 2014-10-20T21:40:45Z media.view.ButtonGroup isn't used anywhere. Let's get rid of it. ericlewis
Future Releases 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 2014-04-06T17:44:30Z "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
Future Releases 10390 attachments should store the WP uploads path that was configured when they were uploaded Media 2.8.1 normal normal Future Release enhancement reopened dev-feedback 2009-07-12T10:34:51Z 2014-05-24T14:29:57Z "When you upload an image, currently, the uploads path (defaults to wp-content/uploads) is not stored.
If you change this later on to something else, previously inserted galleries no longer work, among multitudes of other problems." Denis-de-Bernardy
Future Releases 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 2015-02-12T22:04:57Z "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:
*
*
* "" width="""" 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
Future Releases 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
Future Releases 11895 Allow more specific image size editing Media normal normal Future Release feature request new dev-feedback 2010-01-14T15:12:28Z 2015-02-22T21:08:15Z "Instead of allowing only some combinations of 'thumbnail', 'medium', 'large', 'full' I would like to have the ability to select which of these I would like to crop. So for example, only 'thumbnail' and 'medium'. With the current trunk this is not possible. I created a patch that adds this ability by changing the radio boxes of ""apply changes to"" in the image-edit page to checkboxes for each of the 4 possible sizes." frankgroeneveld
Future Releases 28908 Adding a menu custom link during autocompletion does not add the full text in firefox Menus 3.0 normal normal Awaiting Review defect (bug) new dev-feedback 2014-07-15T09:59:51Z 2014-11-17T18:35:55Z "Tested on Firefox 30.0
In Appearance => Menus, creating a menu and adding custom links does not save the full link text under the condition that you have selected an auto complete value and hit the enter key.
Presumably, the auto complete value should be inserted, then the field should be saved with that value.
Entering:
[[Image(http://s.nessworthy.me/2014071509500201.png)]]
Submitting/Saving (via enter key):
[[Image(http://s.nessworthy.me/20140715095111549.png)]]
Result:
[[Image(http://s.nessworthy.me/20140715095033870.png)]]
This applies to both the link URL and the link name. Didn't add the link URL screenshots to save screen space." Nessworthy
Future Releases 12945 Constrain wp_page_menu() technosailor* Menus normal normal Future Release defect (bug) accepted dev-feedback 2010-04-09T19:39:51Z 2013-08-15T23:32:11Z "The wp_page_menu() function is the default callback for wp_nav_menu(). IOW, when a user is not using the new menu system, it defaults to this function. While that is good, any number of pages over, say 10, will make a theme puke in many cases.
As a workaround, I suggest we make a default of wp_page_menu() to exclude all pages() except home. It's a stupid idea, I think, but something needs to be done to make this manageable so I'm looking for feedback.
The Pro of taking this approach is that it encourages customization of menus via the WP menu system. It also does not lock theme devs into a particular approach because this stuff can be overidden via arguments and filters.
The con is that the default callback becomes pretty benign and useless. Almost pointless.
Ideas?" technosailor
Future Releases 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 = '';
$(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
Future Releases 18271 Item hierarchy should be maintained when adding to menu Menus 3.2.1 normal minor Future Release defect (bug) new dev-feedback 2011-07-27T20:13:35Z 2015-02-07T12:58:15Z "Situation:
Create a hierarchy of categories or pages and go to create a custom menu. In the meta boxes on the left hand side, the categories and pages are shown in hierarchical arrangement. Select all categories (for example) and add to menu.
Expected behaviour:
All links are added to custom menu and the hierarchy is maintained appropriately
Actual behaviour:
Hierarchy is lost and all menu items are top-level
This was originally raised by Jane in #17029 however the changeset in the ticket only applies to showing hierarchy in the meta boxes and doesn't cover maintaining hierarchy when adding to menu." JohnONolan
Future Releases 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 2015-01-30T11:01:09Z The linked menu item for a page isn't removed when the page is trashed. jeremyatignition
Future Releases 24975 Scheduled Page on Menu showing before Schedule time Menus 3.6 normal minor Future Release defect (bug) new dev-feedback 2013-08-07T02:23:55Z 2014-12-02T06:31:18Z "Hi all,
I think I have found a bug.
Wordpress 3.6 on Xampp server
Scenario: I create a page (today) and schedule it (example tomorrow, 1 month, several months). When I go to Menus, the page is not in 'Most Recent' or 'View All' tabs. When I search by Page Title I can locate the page & add the page to the Menu. The page is now on the menu and set to schedule on the Dashboard.
Should the page be showing on the menu when it is set to Schedule? Or should the 'Search' only search published pages?" nellyshark
Future Releases 27042 Use of the_post() in _wp_admin_menu_quick_search() is making in_the_loop = true Menus 3.0 normal normal Awaiting Review defect (bug) new dev-feedback 2014-02-06T20:54:27Z 2014-05-11T10:56:10Z "In /wp-admin/includes/nav-menu.php the menu quick search results are transfered to a json response by doing a search and looping over the results with a 'regular' have_posts(): the_post() construction.
As a side-effect the in_the_loop gets set to true in the_post() function.
This being an admin facing display of (custom)posts titles, I didn't suspect this behavior.
If this is indeed not meant to be, then I can think of 2 solutions:
1) Quick (and dirty?) add an if ( is_admin() ) check to the_post(), to prevent accidental setting of 'in_the_loop' while in the admin.
2) Don't use the_post() in _wp_admin_menu_quick_search().
For the latter I did some looking around in the admin for other similar situations and cooked up the attached patch.
While in this function I did some further code tidying.
" ruud@…
Future Releases 24548 _wp_menu_item_classes_by_context assumes $queried_object->ancestors is an array Menus normal normal Awaiting Review defect (bug) new dev-feedback 2013-06-09T19:08:16Z 2014-10-25T18:14:25Z "Recently, on a site using [http://wordpress.org/plugins/cpt-onomies/ CPT-onomies], I ran into an interesting error with _wp_menu_item_classes_by_context().
In this function, when setting the parent class, there is a large if statement that assumes that `$queried_object->ancestors` and `$possible_taxonomy_ancestors[ $parent_item->object ]` are arrays." wpsmith
Future Releases 15533 wp_get_nav_menu_items order doesn't work Menus 3.0 normal minor Awaiting Review defect (bug) reopened dev-feedback 2010-11-21T22:18:01Z 2014-01-26T21:22:40Z "Argument order doesn't work when output is ARRAY_A since on the end of function wp_get_nav_menu_items there is a usort on the $items array what will be returned.
Since out ARRAY_A is the default output this can give strange behaviour.
The code that gives the problem:
{{{
if ( ARRAY_A == $args['output'] ) {
$GLOBALS['_menu_item_sort_prop'] = $args['output_key'];
usort($items, '_sort_nav_menu_items');
$i = 1;
foreach( $items as $k => $item ) {
$items[$k]->$args['output_key'] = $i++;
}
}
}}}" markoheijnen
Future Releases 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 2014-10-25T21:53:50Z "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
Future Releases 18816 Add 'offset' parameter and 'ancestral' boolean to wp_nav_menu Menus normal normal Awaiting Review enhancement new dev-feedback 2011-09-29T16:13:42Z 2014-10-17T17:06:29Z Since we can now call wp_nav_menu multiple times and there is the very useful 'depth' parameter, I believe adding an 'offset' parameter would be very beneficial in many situations. This would allow you to start at the children of the main pages for example and combined with depth it becomes very powerful. An 'ancestral' => 'true' option could output only menu items that the current page is a descendant of. Currently if you want to display a main menu in the header and then a submenu on page.php you either need a tricky custom walker or terrible CSS 'visibility:hidden' or 'display:none' situations. signyourbikeout
Future Releases 22364 Add Theme Location Arg to Custom Menu Widget Menus normal normal Awaiting Review enhancement new dev-feedback 2012-11-05T19:43:21Z 2015-02-03T02:51:09Z Currently, there is no way to differentiate between a custom menu placed in two different widget areas with wp_nav_menu_args. Since there is no real effect on themes or the use of wp_nav_menu, I propose that WP_Nav_Menu_Widget applies the widget ID as the theme location. wpsmith
Future Releases 27120 Add object cache to wp_nav_menu() items Menus 3.8 normal normal Future Release enhancement new dev-feedback 2014-02-13T07:47:58Z 2014-03-05T01:31:56Z "Leveraging `$menu_items` in the wp_nav_menu() function call with the Object Cache shows a drop in queries by 2 for each consecutive call for a specific `theme_location`
Might need a bit more intense testing to ensure it doesn't negatively impact anything else using the function, but from a front facing side of things it has s ofar not showed any negative effect in my tests." Clorith
Future Releases 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
Future Releases 13273 "Allow ""'non-clickable"" menu items" Menus 3.0 normal normal Future Release enhancement new dev-feedback 2010-05-06T10:58:50Z 2014-06-11T15:52:52Z "In the new menu generator I'm missing the option to create ""non-clickable"" menu items.
What I'm after is that I want to create for example a main menu item with the title ""Links"" which is non-clickable (no url attached to it) and basically only acts as an umbrella item for the actual links I want to locate as subitems of the item ""Links"".
- Home
- Something else
- Links (this one should be non-clickable)
- external link 1
- external link 2
- etc
I think that an optional tickbox in the add link section will do the trick. Basically, all it has to do is to ""disable"" the check whether or not a valid URL format has been submitted and, of course, it has to trigger some modified html output.
Hope you guys can add this in the 3.0 release because this would basically complete the menu generator :)
Keep up the good work and I'm really looking forward to the 3.0 release!" stgoos
Future Releases 19499 Allow wp_nav_menu to return just the links (no

tags) nohalfpixels Menus 3.2.1 normal normal Awaiting Review enhancement new dev-feedback 2011-12-10T12:15:35Z 2013-08-12T14:27:09Z "every now and again i find im in the need of the wp_nav_menu function where i only want a list if links, not the outer ul, or the li tags.
there is already scope to remove the outer ul.
but no support for removing the

$#' ), '', $foot_nav2 );
echo $foot_nav2;
}}}
this isnt very clean, it would be nice to just be able to pass a parameter the wp_nav_menu function which just returns the links.
i propose something like:
{{{
'return_links' => true,
}}}
the main reason for this is styling centered links in the footer.
its much easier to just center links than it is to center a

and results in much cleaner html with less dom elements." nohalfpixels
Future Releases 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
Future Releases 27286 create menu page for custom post types Menus 3.8 normal normal Awaiting Review enhancement new dev-feedback 2014-03-05T21:13:20Z 2014-03-21T12:40:30Z Currently, there are dedicated functions for adding new items to a top-level navigation item, such as `add_posts_page`, `add_media_page`, `add_links_page`, and so on. These all act as a wrapper for the `add_submenu_page`. However, there is no dedicated function for custom post types. I am proposing to add a new function called `add_post_type_page` that works in the same way. It's basically a copy of `add_posts_page` with an additional parameter for the registered CPT. norcross
Future Releases 14969 "menu element ""all (direct) child pages""" Menus 3.0.1 normal normal Future Release enhancement new dev-feedback 2010-09-26T20:16:39Z 2014-10-10T01:23:30Z One of the things I am missing in the current menu-system is the ability to assign parts of the page tree to, say, a sub-menu, so, say, all child pages of a parent will be listed instead of having to add them manually to the submenu once the menu has been created. youngmicroserf
Future Releases 31218 nav-menu.js menu item added event Menus trunk normal normal Awaiting Review enhancement new dev-feedback 2015-02-03T02:52:43Z 2015-02-20T13:59:56Z "I am writing a plugin that adds a checkbox to each item in the admin Menu that is being edited. The checkbox is used to either bulk delete items in the menu or to insert a new one after it. Here is the plugin on github - [https://github.com/ryanwelcher/Bulk-Remove-Menu-Items]
Currently, I am overriding the addMenuToBottom() method in nav-menu.js to achieve the goal. I would love to see an event be triggered after the item is added. This seems like a much more efficient and elegant - not to mention less hacky - way of approaching this.
I have attached a patch with an initial approach that passes the markup of the item as a parameter. Any input is welcome." welcher
Future Releases 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 2013-08-20T16:33:13Z "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

Static menu name

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
Future Releases 15801 Network Admin: Deactivated / Deleted inconsistency nacin Networks and Sites 3.1 normal normal Future Release defect (bug) assigned dev-feedback 2010-12-13T18:12:54Z 2015-02-06T05:42:49Z "Under the Sites screen, there are distinct inline links for Deactivate and Delete. However, when a site is deactivated, it is referred to as deleted in:
* Sites screen inline status
* Edit Site screen attributes section
* Error page for non-admins visiting the site" kawauso
Future Releases 28530 WPMU Creating new user does not use welcome notification template Networks and Sites normal normal Awaiting Review defect (bug) reopened dev-feedback 2014-06-13T16:36:27Z 2014-06-27T05:18:36Z "In a multisite setting adding a new user to the network should send a welcome notification to the user with a template defined in '''Settings > 'Welcome User Email''''. But the template is not used.
When creating a new user via {{{/network/user-new.php}}} the method {{{wp_new_user_notification}}} gets called. Instead {{{wpmu_welcome_user_notification}}} should get called." jokr
Future Releases 26855 get_blogaddress_by_id used in wp-activate.php limits functionality in MU Domain Mapped Sites Networks and Sites 3.0 normal normal Awaiting Review defect (bug) new dev-feedback 2014-01-17T00:28:20Z 2014-03-19T21:45:15Z "Is there any reason that wp-activate.php uses get_blogaddress_by_id() to fetch the URL of a multi-site blog? Line 98, wordpress/wp-activate.php.
Most areas in WordPress that need to get a site URL will get it using get_site_url() - from wordpress/wp-includes/link-template.php.
If you have the blog_id, you could switch to the blog in question, and get the URL with get_site_url(). Or even, call:
{{{
$url = get_site_url($blog_id);
$login_url = get_site_url($blog_id, 'wp-login.php');
}}}
I point this out because get_site_url passes the result to a filter, which allows plugins to manipulate the ""home page"" of a blog. Anyone who uses a domain mapping plugin for their child sites (http://wordpress.org/plugins/wordpress-mu-domain-mapping/) does not want their home URL to be http://basesite.com/fakechildpath, but rather http://childsite.com.
This in itself isn't a huge problem, as http://basesite.com/fakechildpath will eventually map to the right place, but it doesn't look nice.
The real problem occurs when you combine a domain mapping plugin with a WordPress security plugin (which forces users to login with a security argument in the querystring which is checked in the Referrer). Here, you'd want to rewrite any request for get_site_url with path='wp-login.php' to contain the additional querystring.
There's no rewriting if get_blogaddress_by_id is passed, and so the initial login page is forced to be:
{{{

}}}
Where $url is http://basesite.com/fakechildpath and the login page looks like http://basesite.com/fakechildpath/wp-login.php which will fail, given the requirements placed on the login page (to keep out spambots!)
Not having the ability to do this is forcing me to modify WP Core, which will just get clobbered the next time I update WordPress.
Thoughts? I went ahead and created the following patch off of SVN (attached):
{{{
Index: wp-activate.php
===================================================================
--- wp-activate.php (revision 26845)
+++ wp-activate.php (working copy)
@@ -106,7 +106,7 @@
}
} else {
extract($result);
- $url = get_blogaddress_by_id( (int) $blog_id);
+ $url = get_site_url( (int) $blog_id);
$user = get_userdata( (int) $user_id);
?>

Log in or go back to the homepage.' ), network_site_url('wp-login.php', 'login'), network_home_url() ); ?>

Edit Site pages. These are statically defined as an array in the files:
{{{
wp-admin/network/site-info.php
wp-admin/network/site-options.php
wp-admin/network/site-themes.php
wp-admin/network/site-users.php
}}}
It would be nice if there was a filter that allowed us to add more tabs to this bar. This would enable us to add more user friendly, site specific, option pages for super administrators." PuffyThePirateBoy
Future Releases 13504 Create cookie name hash option Networks and Sites normal normal Future Release enhancement new dev-feedback 2010-05-23T16:45:47Z 2014-01-30T12:55:41Z "I put this on future release but we should do it early in 3.1. Currently, by default,
an upgraded MU install has an empty string as a cookie name hash
a single WP site uses the siteurl option as the seed for a MD5 hash
a WP -> WP 3.0 network uses the main site's siteurl option + '/' as the seed for a MD5 hash
We should move these to a common more appropriately name option/site option and give the super admin(s) the ability to change it and/or generate a new one." wpmuguru
Future Releases 16853 Error 500 when a user has too many sites PeteMall* Networks and Sites 3.0.1 normal minor Future Release enhancement accepted dev-feedback 2011-03-14T11:15:57Z 2015-02-06T16:11:16Z "'''My installation'''
[[BR]]
3.0.1 multi-site installation with more than 7500 blogs, with one user each. I also have one moderation user that can administer each of the blogs.
[[BR]]
[[BR]]
'''The issue'''
[[BR]]
In the admin interface, when I go to Super-Admin -> Users, and when I display the page that contains my moderation user, I get ""''An error (500 Internal Server Error) has occured in response to this request''"". The page tries to display all the sites administered by him (around 7500 of them), hence the error.
[[BR]]
[[BR]]
Updating to 3.1 didn't resolve the problem.
[[BR]]
[[BR]]
'''Recommended enhancement'''
[[BR]]
For each user in the list, display only a certain number of sites, with a possibility to see all of that user's sites, if needed." luuzan@…
Future Releases 31148 Extend wp_get_sites() to support queries on domain and path Networks and Sites normal normal Awaiting Review enhancement new dev-feedback 2015-01-27T22:39:21Z 2015-02-10T20:17:41Z "`wp_get_sites()` was introduced in [25445]. At that time @nacin [https://core.trac.wordpress.org/ticket/14511#comment:30 noted]:
>I think the roadmap for this function, by the way, should be to replace all direct queries to $wpdb->blogs in WP_MS_Sites_List_Table, and ideally any other non-complex direct queries to $wpdb->blogs elsewhere.
In order to do this, it needs to be extended to be able to support queries on both `domain` and `path` as well as across all networks.
This could also be the first step toward replacing `domain_exists()` in #30233." earnjam
Future Releases 15389 Make New Site & New User Network form pluggable. Networks and Sites 3.1 normal normal Future Release enhancement new dev-feedback 2010-11-11T16:43:32Z 2014-03-03T22:06:38Z "'''Problem:''' Currently the only way to add additional fields to the new site & new user network form is by dynamically injecting them using javascript.
'''Solution:''' They should either have action hooks or use the settings API. I'll provide patches for both methods.
In addition, I've added semantic ids to the current form fields so they can be selectively hidden.
" ptahdunbar
Future Releases 17164 More elegant handling of site 'archive' options for MultiSite Networks and Sites 3.1 normal normal Future Release enhancement new dev-feedback 2011-04-18T15:08:50Z 2014-11-19T07:54:56Z "Right now you have a few options with MultiSite blogs
1) Spam
2) Deactivate
3) Archive
4) Delete
Spam is easy to understand, and should be marking the admin and site as spam. Delete ditto, hi.
Deactivate and Archive are weird though and almost seem backwards. Deactivate means to turn OFF (like deactivating a plugin). Archive implies that you're making a site read-only.
Right now, if you change a site to 'deactivated' it actually shows up as DELETED and the front end has the message ""This user has elected to delete their account and the content is no longer available."" Clearly the verbage on the network/sites.php page needs to be updated (and perhaps the front end to 'This site has been deactivated.' to be consistant).
If you 'Archive' a site it kicks it to a paler pink in the sites.php page (though the 'Archived' text is white and nigh impossible for me to read) and the front end says ""This site has been archived or suspended.""
It's rather illogical there. Archive SOUNDS like it should be making things read-only (and turning off commenting and posting if possible). Otherwise it should just be 'Suspend', and at that point, why have two options that pretty much do the same thing from the front-end perspective?" Ipstenu
Future Releases 27224 Multisite upload settings are inconsistent jeremyfelt* Networks and Sites normal normal Future Release enhancement accepted dev-feedback 2014-02-27T19:22:04Z 2014-10-24T05:49:06Z """Site upload space"" is indicated in MB whilst ""Max upload file size"" is indicated in KB.
It would be useful to standardize on MB." danielbachhuber
Future Releases 30233 Replace or rewrite domain_exists() for more accurate usage Networks and Sites 3.0 normal normal Awaiting Review enhancement new dev-feedback 2014-11-02T01:47:25Z 2015-01-30T03:00:54Z "`domain_exists()` was added in [https://mu.trac.wordpress.org/changeset/543 MU:543] in almost its current form. The enforcement of trailing slashes on paths was added in #20589 and a filter was added in #21442.
A few notes:
* The lookup for a domain and path combination is restricted to one network. This allows the same domain and path combination to be used on multiple networks, which should not be default behavior.
* The name, `domain_exists()`, implies a check for domain. It is really checking for a full site URL.
* While it is entirely possible to ignore the result by providing your own in the filter, it would be nice to not always require this for multi-network configurations.
My **guess** is that the original intent was to ensure a subdomain or path was not present when creating a site on an open network.
In thinking of how to address this, these two possibilities came to mind.
* Deprecate `domain_exists()` and wrap a new function that does a larger check. `wp_get_site()` could work alongside `wp_get_sites()` and support domain/path lookup.
* Allow the current `$site_id` argument to be `null` (for all), or an array (for many), in addition to the current `int` expectation.
" jeremyfelt
Future Releases 21432 Deprecate *_blog_option() Options, Meta APIs 3.4.1 normal normal Future Release defect (bug) assigned dev-feedback 2012-07-31T21:53:06Z 2014-07-11T13:23:37Z "Deprecate get_blog_option(), add_blog_option(), update_blog_option(), and delete_blog_option(). The regular *_option() functions wrapped with switch_to_blog() and restore_current_blog() should be used instead.
Previous discussion:
http://core.trac.wordpress.org/ticket/21270#comment:11" ryan
Future Releases 27935 "Multisite get_site_option() does not cache empty string values in ""SITE_ID:notoptions""" Options, Meta APIs 3.7 normal major Awaiting Review defect (bug) new dev-feedback 2014-04-20T08:37:07Z 2014-04-21T05:05:04Z "In a multisite configuration the `get_site_option()` function in `wp-includes/option.php` does not cache `meta_key`s with `meta_value`s of empty strings resulting in a database query being run on every request. Checking for a `meta_value` matching an empty string to trigger an entry into the `notoptions` cache will correct this behavior.
from:
{{{#!php
if ( is_object( $row ) )
}}}
to:
{{{#!php
if ( is_object( $row ) && $row->meta_value !== '' )
}}}" doublesharp
Future Releases 17375 Serialized option values broken for classes with Serializable interface markjaquith Options, Meta APIs 2.0.5 normal normal Awaiting Review defect (bug) reviewing dev-feedback 2011-05-11T11:42:09Z 2015-02-13T05:46:40Z "Wordpress has a feature build in to store arrays and objects into option values.
This is done by transparently serializing on storing and unserialize on retrieving.
The implementation is broken.
Wordpress is unable to unserialize serialized option values if they contain a serialized representation of classes implementing the [http://www.php.net/manual/en/class.serializable.php PHP serializeable interface] (C instead of O).
This is because the is_serialized() does not recorgnize that type of value." hakre
Future Releases 20712 "Wrong data type returned from get_option for ""page_on_front"" after update_option" Options, Meta APIs 3.3.2 normal normal Awaiting Review defect (bug) new dev-feedback 2012-05-20T08:29:35Z 2014-01-19T15:45:31Z "
{{{
echo gettype(get_option(""page_on_front"")); // return string
update_option(""page_on_front"", ""123"");
echo gettype(get_option(""page_on_front"")); // return integer
}}}
You can repeat the steps and it give consistent result, so `get_option` return the wrong data type ONLY when it is after `update_option`" tszming
Future Releases 20853 get_post_custom show directly serialized data from the post_meta arrays. Options, Meta APIs 1.5 normal minor Awaiting Review defect (bug) assigned dev-feedback 2012-06-06T05:39:23Z 2014-01-19T07:37:06Z "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
Future Releases 22192 update_metadata() and update_option() strict checks can cause false negatives Options, Meta APIs normal normal Future Release defect (bug) new dev-feedback 2012-10-15T03:19:23Z 2015-01-20T20:17:58Z "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
Future Releases 21989 update_option() calls sanitize_option() twice when option does not exist Options, Meta APIs normal normal Future Release defect (bug) new dev-feedback 2012-09-25T05:04:34Z 2014-07-28T15:21:02Z "
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
Future Releases 26895 Deprecate recently_edited option Options, Meta APIs 3.8 normal minor Awaiting Review enhancement new dev-feedback 2014-01-21T08:33:53Z 2014-12-26T16:31:37Z "recently_edited option is being set when a plugin or a theme file is edited by the builtin Editor.
A search, in the WordPress 3.8 source code, tells me that the option is never being read.
I suggest that we deprecate that option and replace it by an action where plugins can hook and get the value of the edited file." yani.iliev
Future Releases 14125 Seperate out non-editable options in edit site sorich87* Options, Meta APIs normal normal Future Release enhancement accepted dev-feedback 2010-06-28T04:11:36Z 2014-02-04T21:16:34Z "In the edit site screen, blog options which are arrays are shown as SERIALIZED and the textbox is disabled. The attached patch pulls those options out of the options metabox and displays the option name in another metabox below.
Related: #14120" wpmuguru
Future Releases 29786 read_post_meta should be a meta capability Options, Meta APIs normal normal Awaiting Review enhancement new dev-feedback 2014-09-29T11:19:31Z 2015-01-23T17:40:11Z "Right now, we have `edit_post_meta`, `delete_post_meta`, and `add_post_meta`. In order to be able to expose metadata publicly, we need to be able to check if we can access individual keys.
`is_protected_meta` only controls whether it's prefixed and should default to being protected (by default, prefixed with `_`). This isn't adequate to check for read permission on a key, because it's not filterable." rmccue
Future Releases 19686 404 - File or directory not found Permalinks 3.3 low normal Awaiting Review defect (bug) new dev-feedback 2011-12-29T19:47:45Z 2014-01-24T05:57:12Z "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
Future Releases 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-08-15T18:25:05Z "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
Future Releases 17170 Attachment slugs are not unique Permalinks 2.8 normal major Awaiting Review defect (bug) new dev-feedback 2011-04-18T21:02:52Z 2014-01-20T04:41:38Z "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_
Future Releases 19918 Attachments are viewable from any permalink that matches their slug Adrian (designmodo.com) Permalinks 3.2 normal normal Awaiting Review defect (bug) new dev-feedback 2012-01-29T11:02:27Z 2014-10-25T21:45:18Z "I see one problem in WordPress, for example if you upload an images with name comments.png, all your url contain hide url like: /comments
example:
original post: yourdomain.com/myarticle
if you have in media gallery file with name comments.png url will be: yourdomain.com/myarticle/comments
or
yourdomain.com/myarticle2/comments
or
yourdomain.com/myarticle3/comments
and all this url's contain the same comment box.
my users report this problem, because if i share in twitter or g+ one link, many users redirect not to the post but to url with /comments in the end.
Adrian,
designmodo.com
" prorock
Future Releases 13459 Conflict between post and page slugs/permalinks when permalink setting is set to /%postname%/ Permalinks 2.9.2 normal normal Future Release defect (bug) assigned dev-feedback 2010-05-20T04:56:27Z 2015-01-23T16:27:47Z "If Dashboard -> Settings -> Permalinks is set to /%postname%/, it is possible to create both a page and a post with the same slug. When viewing via the frontend, the page is always displayed.
I would have thought that WordPress should prevent a post and a page from having the same permalink.
Steps to reproduce:
1. Create and publish a page with any slug. eg. http://domain.com/test/.
2. Create and publish a blog post with the same slug. Wordpress says the permalink for the blog post is http://domain.com/test/, but when you visit that URL it displays the page instead.
I can reproduce this on my 2.9.2 install, as well as 3.0 trunk. I'm guessing the bug is present in earlier versions of WordPress as well.
Possibly related: #11863" jamescollins
Future Releases 15936 IPv6 literal support in multisite broken Permalinks 3.0.3 normal major Future Release defect (bug) new dev-feedback 2010-12-21T16:00:25Z 2014-01-24T06:31:54Z "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
Future Releases 10786 Implementation of %my_taxonomy% in permastructs is incomplete Permalinks 2.9 normal minor Future Release defect (bug) assigned dev-feedback 2009-09-15T03:30:56Z 2014-07-11T13:22:14Z "The `register_taxonomy()` function includes a call to `add_rewrite_tag()` which should allow for a site's permastruct to include a %my_taxonomy% tag just like you can include a %category% tag or a %tag% tag, however this implementation is incomplete and doesn't work.
Example:
`register_taxonomy('genre','post');`
should allow you to create a permastruct (from the Settings->Permalinks screen) which includes %genre% in it.
The problem is that `get_permalink()` doesn't check for custom taxonomies and the replacement of %genre% with your post's genre in the permalink doesn't happen.
Patch upcoming." johnbillion
Future Releases 10483 Change post_name's length from 200 to 400 Permalinks low minor Future Release enhancement assigned dev-feedback 2009-07-25T06:31:52Z 2014-07-11T13:23:37Z "Hello, guys! Thank you very much for providing such a great piece of software! I love WordPress very much! :)
I use WordPress in Russian language and the URLs on my [http://www.ielnur.com blog] consist of Russian characters. There is a [http://www.ielnur.com/blog/2009/05/снова-бросить-курить-30-тидневное-испытание/ post] with not such a long URL in Russian, but since it gets encoded to special characters it becomes too long to get fit into `post_name` field of `post` table.
I've found what code needs to be changed to increase the length. I make these changes every time a new version is released. I think it would be better to submit a patch here so that others people can benefit from it and I will not need to make those changes every release.
I'm attaching the patch to this ticket and asking you to apply it to the code.
Thank you very much again, guys! You do a great job! :)
Cheers,
Elnur" elnur
Future Releases 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 2014-10-08T13:04:10Z "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
Future Releases 9825 Enforce permalink history, outright Permalinks 2.8 normal normal Future Release enhancement assigned dev-feedback 2009-05-15T01:06:37Z 2014-10-09T14:19:52Z "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
Future Releases 19023 Images in Edit Comments break SSL nacin Permalinks 3.2.1 high normal Awaiting Review enhancement reviewing dev-feedback 2011-10-21T11:19:43Z 2014-02-02T08:04:28Z "In trunk, when I'm on my edit comments page, the SSL get's broken because of an attachment image that isn't served over SSL:
[http://uploads.yoast.nl/Comments-20111021-131843.png]" joostdevalk
Future Releases 10425 Improvements to IIS7 Rewriting Code Permalinks 2.8.1 low normal Future Release enhancement assigned dev-feedback 2009-07-16T14:12:09Z 2014-07-11T13:22:14Z "#8974 introduced a set of functions and changes which allow to automatically generate Rewrite Rules for Wordpress installs running on IIS7.
There are some issues with that implementation that I think are worth being written down and discussed somewhere so here we go:
1) There's no '''""Verbose"" option''' for IIS rules; while I can't say when it would make sense to have a verbose listing of all WordPress rewrite rules in `.htaccess`/`web.config` it might be something that should be available for both systems?
2) IIS does not add '''non wordpress rules''' (`$non_wp_rules`) to the `web.config` file (`iis7_url_rewrite_rules()`) which means that any custom rewriting which plugins/users can do on apache don't work on IIS.
3) At the moment it's assumed that there is only ONE single rule needed for IIS. Especially when looking at the merge with WPMU this is going to become a problem because WPMU uses '''multiple rules'''. Every rule has to have a unique name and functions like `iis7_rewrite_rule_exists()` and `iis7_delete_rewrite_rule()` only look for one rule with name ""wordpress"". Custom Rules (see 2) also won't work without a change here. For a partial fix see misc.php in [http://trac.mu.wordpress.org/attachment/ticket/991/991-webconfig.patch Patch on MU #991])
Any comments?" bforchhammer
Future Releases 1914 Permalinks for unattached uploads/attachments Permalinks 1.6 normal normal Future Release enhancement reopened dev-feedback 2005-11-19T09:21:26Z 2014-11-04T22:43:38Z "Currently attachement links are in the form:
{{{
http://www.example.com/?attachment_id=1
}}}
Would look much neater if these matched the permalinks of regular posts (depending on what it is configured to) eg:
{{{
http://www.example.com/attachement/1/
}}}" dlhau@…
Future Releases 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
Future Releases 24776 Need Filter Hooks on Creating Slug - Check Availability of Slug if That is Used for Post, Page, Taxonomy or any Plugin Permalinks normal normal Awaiting Review feature request new dev-feedback 2013-07-16T21:06:09Z 2014-02-02T07:18:19Z "I did not find any '''filter hook''' for choosing slug for any object. I have a plugin that creates its own URLs. eg. example.com/my-campaign . If someone hits on this url then he will see my plugin generated page. But if there is already a page ""'''My Campaign'''"" then WP is unable to show that page because that '''permalink''' already taken by my plugin. So Before creating my plugin slug I need to check '''WP posts, pages and taxonomies''' if any of those already used my slug. I also need to check Root directory of WordPress installation if there is a '''directory with same name''' of my slug.
WP Core checks available slug in its own database and reserved words. But it doesn't check slugs those are used by any plugin. If there is a post name ""'''my-campaign'''"" then my plugin don't let to chose this slug but If my plugin took this before and user want create a page ""my-campaign"" then WordPress will take the same slug. And here is the main problem.
In the same way my plugin is conflicting with other plugins. My plugin can check WordPress core slugs but not other plugins.
""'''Pretty Link'''"" is one of the most popular plugin. It also creates its own url. It also checks available slug in wordpres db but not in other plugin.
Any plugin may have custom rewrite rule, then my plugin can not handle that.
So I think we need a standard rule that will be followed by WordPress core and all plugins.
I have three different plugins those need own slugs. I made a universal process that I am using in all of my plugins.
I am explaining my process bellow.
I am using a filter hook ''''onetarek_is_slug_available'''' all of my plugin use this filter before choosing a slug.
MY CODES:
{{{
get_var($wpdb->prepare(""SELECT post_name FROM {$wpdb->posts} WHERE post_name=%s LIMIT 1"",$slug));
$has_taxonomy = $wpdb->get_var($wpdb->prepare(""SELECT taxonomy FROM {$wpdb->term_taxonomy} WHERE taxonomy=%s LIMIT 1"",$slug));
if( $has_postname or $has_taxonomy )return false;
#Check if any same named file or directory exists in the root of wordpress installation
$root_directory = opendir(ABSPATH);
$slug_lower=strtolower($slug); #we consider wp-content and Wp-ContENT and WP-CONTENT are same.
while (($file = readdir($root_directory)) !== false)
{
$filename = strtolower($file);
if($filename == $slug_lower) return false;
}
#Check same slug is exists in click jacker database.
#if same slug exists and associate for given id then return slug . We allow this
if($id){$id=intval($id);}
if($id)
{
$SQL = $wpdb->prepare(""SELECT slug FROM "".CLICK_JACKER_CAMPAIGN_TABLE."" WHERE slug=%s AND id =%d"", $slug, $id);
$has_slug = $wpdb->get_var($SQL);
if( $has_slug == $slug ){return $slug;}
}
#if same slug exists and no id given then we don't accept this.
$SQL = $wpdb->prepare(""SELECT slug FROM "".CLICK_JACKER_CAMPAIGN_TABLE."" WHERE slug=%s"", $slug);
$has_slug = $wpdb->get_var($SQL);
if( $has_slug == $slug )return false;
return $slug;
}
add_filter('onetarek_is_slug_available', 'otk_filter_available_slug', 10, 2); ?>
}}}
I am calling above filter where I need
{{{
}}}
My technique is limited.
In my filter function I run 2 SQL query to check WP slugs , but that is limited. WordPress has reserved words also, those are not being checked in this process. And my other 2 plugins also run the same. Now if any website uses my 3 plugins then same process will be run 3 times and 6 SQL query will be run to check WP slugs. My function is unable to check the slug of ""Pretty Links"" plugin.
But if '''WORDPRESS core''' would have a '''FILTER HOOK''' and run a function with this filter to check any kind of WP slugs then my plugins would search only its own database once. AND other plugin developer would attach a function with this filter. And they would check only their own database. Plugins don't need to check WP slugs because core function already fired with this FILTER HOOK.
In the same way WP core should respect other plugin slugs and '''custom url rewrite rules'''. When WP check available slug for post, page, taxonomies then it should use this FILTER also.
I THOUGHT THIS WAY BECAUSE I DON'T FIND ANY WAY. IF ANYTHING ALREADY EXISTS IN WP PLEASE LET ME KNOW.
Regards
Jahidul Islam (oneTarek)
[http://onetarek.com]
" onetarek
Future Releases 19902 blog_url() and get_blog_url() template tags Permalinks 3.3.1 normal normal Awaiting Review feature request new dev-feedback 2012-01-26T21:44:13Z 2014-09-15T17:32:57Z "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
Future Releases 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 2014-03-01T10:40:32Z "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
Future Releases 3491 new hooks for pingback, trackback? markjaquith* Pings/Trackbacks normal normal Future Release enhancement accepted dev-feedback 2006-12-21T22:13:25Z 2014-10-08T17:50:22Z "I'd like to propose two more hooks for Wordpress, one in pingback_ping()
and the other in wp-trackback.php.
background: http://redmonk.net/archives/2006/12/21/voteback/
The first hook would allow plugins to have access to the full text of a
hyperlink on a site that is pinging this site, before the comment is
built for a ping.
The second would allow plugins to have access to the full post data for
a trackback before the comment is built.
" monkinetic
Future Releases 25733 Cannot activate a plugin with a plus (+) symbol in the plugin name Plugins 3.8 normal normal Awaiting Review defect (bug) new dev-feedback 2013-10-27T17:01:33Z 2013-11-24T21:41:25Z "I created a plugin having ""+"" in filename (allowed in windows) and found an error to activate the plugin. After searching a lot, it seems that the problem is in .php, you can find how this problem was reported in drupal community and their thoughts here: [https://drupal.org/node/615418]
To repeat this bug you just need to rename a plugin with ""+"" symbol in the filename and try to activate. The activation url becomes:
{{{http://localhost/wordpress/wp-admin/plugins.php?action=activateplugin=hello+dolly%2Fhello.php&_wpnonce=XXXXXX}}}
I tried to replace the {{{+}}} symbol in query string with %2B (its unicode value), this activated the plugin but also said: ''A fatal error occured, the plugin cannot be activate''.
----
I messed up the process to repeat, so writing again:
1. Rename a folder with + character in its filename
2. Try to activate
3. An error will occur, = '''First observation of error'''
4. Now replace the + symbol with %2B and try again
5. The plugin will be activated but in the status it will say it was not activated and an error occured = '''Second observation of error'''
----
In my opinion, although it might be an issue with the programming language, but wordpress can obviously inform coders about this." godhulii_1985
Future Releases 14789 Inconsistency in 'all' hook invocation Plugins 3.0.1 normal normal Awaiting Review defect (bug) reviewing dev-feedback 2010-09-07T01:41:33Z 2014-01-19T17:48:27Z "The 'all' hook (catchall hook for any hook name) is getting inconsistently called depending on how the concrete hook is being invoked: by apply_filters, apply_filters_ref_array, do_action or do_action_ref_array.
In the simple cases (apply_filters, do_action), the hook will get all parameters passed, in the ..._ref_array cases, the hook will get only two parameters passed in which the first parameter is the name of the hook (a.k.a. tag) and the second parameter is an array of all other parameters.
Every 'all' hook-function-callbacks should be called in the same way regardless whether which of the four invocation functions have been used on that pointcut.
Additionally all four routines share a lot of the same code which could benefit of a refactoring." hakre
Future Releases 28994 Install plugin by upload file not check file type Plugins 3.9.1 normal normal Awaiting Review defect (bug) new dev-feedback 2014-07-23T05:08:46Z 2014-07-25T04:43:03Z "Upload installs of plugins not check file type. If hacker bruteforce or get admin level access, they can run php script on my site.
To reproduce:
1. Upload a php file via Plugins->Add New->Upload after upload it ask ftp login detail. please leave it and do 2.
2. Use browser goto http://mysite/wp-content/uploads/[CURRENT YEAR]/[CURRENT MONTH]/filename.php" mix5003
Future Releases 24050 Plugin Editor doesn't show all plugin files, only 64 Plugins normal normal Awaiting Review defect (bug) reopened dev-feedback 2013-04-11T18:27:17Z 2014-07-29T21:37:28Z "Plugin Editor (plugin-editor.php) does not allow viewing or editing of all the files of larger plugins, such as [http://wordpress.org/extend/plugins/events-manager/ Events Manager]. Under the Plugin Files header there is a list of only 64 files. The plugin has 165 .php files and many more .txt, .js and .css files.
All editable plugin files should be shown in this list." Daedalon
Future Releases 27188 deactivated_plugin behaves improperly Plugins 2.9 normal normal Future Release defect (bug) new dev-feedback 2014-02-23T05:36:00Z 2014-10-26T22:11:43Z "Currently, if someone were to hook into `deactivated_plugin`, one should expect that the `$plugin` actually be deactivated.
So if, for example, I hook into it with the following code, deactivating Addthis, I don't get the expected behavior.
{{{
add_action( 'deactivated_plugin', 'dtat_deactivate_self', 10, 2 );
/**
* Deactivate ourself if Premise is deactivated.
*/
function dtat_deactivate_self( $plugin, $network_deactivating ) {
if ( 'addthis/addthis_social_widget.php' == $plugin ) {
die( 'Addthis: ' . print_r( is_plugin_active( $plugin ), 1 ) );
}
}
}}}
The plugin still shows that it is active. So if I hook in here to check if plugin has been deactivated, then it fails. Instead, the `deactivated_plugin` hook should appear after the `update_option` call, which is where the plugin is actually deactivated.
OR, the docs are wrong and should be updated.
Attached is a sample addthis plugin extension that deactivates after Addthis is deactivated by being forced to use `update_option_active_plugins` and `update_option_active_sitewide_plugins`.
See [https://gist.github.com/wpsmith/26c2e07370ee8b4c3e3f Github Gist sample plugin] for [http://wordpress.org/plugins/addthis/ Addthis]." wpsmith
Future Releases 28226 menu_page_url does not return correct URL on network admin Plugins 3.0 normal normal Future Release defect (bug) new dev-feedback 2014-05-12T18:54:57Z 2015-01-31T17:27:48Z the `menu_page_url` function calls `admin_url` to build the URL returned. it should check for network admin first and use `network_admin_url` if present norcross
Future Releases 30662 "verify if $the_['function'] is not an empty string """"" Plugins normal normal Awaiting Review defect (bug) new dev-feedback 2014-12-10T18:22:41Z 2014-12-12T02:02:42Z "Fix for the error on line 214 because `$the_['function']` was an empty string `""""`" kidsguide
Future Releases 30114 "Add ""Review"" link into the plugin_row_meta" Plugins normal normal Awaiting Review enhancement new dev-feedback 2014-10-26T22:27:17Z 2014-12-10T19:26:19Z "Add link to ""Review"" page on the wordpress.org into the plugin_row_meta.
[[Image(https://www.evernote.com/shard/s21/sh/278c4b04-a941-446d-a49d-c64858fb7b9c/50e98462d41b995cdc70dc425c281c3b/deep/0/Plugins---test---WordPress.png)]]" miyauchi
Future Releases 21488 Add Default Callback Functions for add_settings_field() Plugins normal normal Future Release enhancement reopened dev-feedback 2012-08-05T23:22:00Z 2014-02-02T07:53:24Z "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:
{{{

The description of the field (if present)

}}}
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
Future Releases 28085 "Add a ""Recently Updated"" Plugins' view" Plugins 3.9 normal normal Awaiting Review enhancement new dev-feedback 2014-05-01T00:04:19Z 2014-07-27T03:20:35Z "Hello
I will propose a new ""view"" in the plugins list. Like ""Recently Active"", a ""Recently Updated"" can be useful to know which plugins have been .... recently updated, obviously.
I did this as a plugin, but i think it could be logical to get this in core, here come my (first) core patch.
Also, i add you this snippet, i don't know where to put this function i use each time before the 'upgrader_process_complete' hook.
{{{
function wp_set_recently_updated( $array ) {
$recently_updated = get_option( 'recently_updated' );
foreach ( $array['plugins'] as $plugin ) {
$recently_updated[ $plugin ] = time();
}
update_option( 'recently_updated', $recently_updated );
}
}}}" juliobox
Future Releases 31136 Allow plugin authors to register an additional 'Uninstall Notification' plugin header and to display back to the user during plugin uninstall flow Plugins normal normal Awaiting Review enhancement new dev-feedback 2015-01-26T06:14:19Z 2015-02-27T17:35:09Z "In wp-admin/plugins.php wordpress displays to the user information about the plugins you are attempting to uninstall. Currently it only displays the name of the plugin name ($plugin[ 'Name' ]) and the plugin author ($plugin[ 'AuthorName' ]). In V4.1 this output is generated around lines 289-304.
Is it possible to add another field that contains a short piece of information from the plugin author, that can be presented to the user for each plugin? The plugin would need to register this information with wordpress when it was installed or updated.
Specifically, I envisage this being used for details that the user might need to follow to preserve any data that they might have before they actually delete the plugin.
An example string that I can see being used by a plugin:
If you wish to uninstall without losing your data, see the details at http://example.com/plugin-uninstall.
Notes:
- Such a string should of course be optional to preserve backward compatibility.
- Appropriate filtering and length checks should be done on the string to ensure that the uninstall plugin UI isn't easily broken or disturbed. This avoids the plugin author filling the field with a string that stops the user from being unable to uninstall the plugin." cefiar
Future Releases 20578 Allow users to delete a plugin without uninstalling Plugins normal normal Awaiting Review enhancement new dev-feedback 2012-05-01T01:18:35Z 2014-02-14T18:29:33Z Sometimes, a user may need to delete plugin files without deleting all the plugin data. scribu
Future Releases 12718 Better structure for admin menu Plugins normal normal Future Release enhancement reopened dev-feedback 2010-03-26T01:05:37Z 2015-02-12T20:40:40Z "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
Future Releases 27994 Erroneous plugin deactivation should be a manual action Plugins 2.5 low normal Awaiting Review enhancement new dev-feedback 2014-04-23T16:00:01Z 2014-05-28T22:48:29Z """The plugin `foo.php` has been deactivated due to an error: Plugin file does not exist.""
This seemingly harmless behaviour on the Plugins screen can end up being a royal pain for developers. Consider the scenario where you've renamed your plugins directory or any of the plugins within it (ie. to do some debugging with plugins disabled), and then you visit the Plugins screen. BAM, your plugins have been deactivated.
I think this behaviour should be removed, and instead a list of erroneous plugins displayed, with the option to manually deactivate them.
Thoughts?" johnbillion
Future Releases 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
Future Releases 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 2015-01-29T12:41:39Z "''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
Future Releases 29102 Plugin Installer: Autofocus search field Plugins 4.0 normal normal Awaiting Review enhancement reopened dev-feedback 2014-08-03T15:06:28Z 2014-10-22T20:48:02Z Prior to 4.0 the search field had an autofocus (see [21143]), but with the new filter bar the search field is no longer auto-focused. paulwilde
Future Releases 20104 Show network-activated plugins on site plugins screen Plugins normal normal Future Release enhancement new dev-feedback 2012-02-22T22:05:35Z 2015-01-12T05:58:37Z "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
Future Releases 30976 When selecting multiple plugins and performing deactivate, keep selected for next bulk action (if any) Plugins trunk normal minor Awaiting Review enhancement new dev-feedback 2015-01-11T05:16:01Z 2015-01-19T09:01:45Z aubreypwd
Future Releases 22141 add_submenu_page file callback Plugins 3.4.2 normal normal Awaiting Review enhancement new dev-feedback 2012-10-09T16:11:11Z 2014-02-02T07:53:24Z "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
Future Releases 10441 Show warning when deprecated hook is registered nacin* Plugins normal normal Future Release feature request accepted dev-feedback 2009-07-18T14:48:47Z 2013-05-27T08:48:58Z At this moment WP shows warning when someone tries to use deprecated function or file. It will be good to do the same for deprecated hooks. My suggestion is to do this check in add_action()/add_filter() functions. They should compare hook name against list of deprecated ones and show warning if necessary. sirzooro
Future Releases 23863 Post Formats: allow filtering content_width per format in wp-admin Post Formats normal normal Future Release defect (bug) new dev-feedback 2013-03-25T20:55:33Z 2013-06-19T20:43:30Z "On front-end a theme can filter {{{$content_width}}} like so:
{{{
function twentythirteen_content_width() {
if ( has_post_format( 'image' ) || has_post_format( 'video' ) ) {
global $content_width;
$content_width = 724;
}
}
add_action( 'init', 'twentythirteen_content_width' );
}}}
But ... functions called in wp-admin that use the global {{{$content_width}}} variable won't be changed.
For example, using trunk and Twenty Thirteen theme:
1. Create a new post, set to Image post format
2. Click Add Media to insert an image
3. Upload an image at least 800 px wide
4. You'll see in ""Attachment Display Settings"" that width for the ""large"" size to insert to the post is 604 pixels and not 724.
Also, even if detecting a Post Format this way worked correctly on edit, it wouldn't work on first post creation because of how the UI uses JS to switch between the formats." lancewillett
Future Releases 27425 Templates For Posts Formats Post Formats normal normal Awaiting Review enhancement new dev-feedback 2014-03-15T18:16:18Z 2014-09-01T12:37:50Z "If I opt to use Custom Post Templates, then I can easily put a custom post template by putting a file named single-[name of the custom post], but that same feature is not available for the post formats.
I love the post format feature in WordPress, and people just don't want to use that for some reasons, but this would really attract some of the audience to use the post formats.
For example, a post with Audio format will first look for single-audio.php or single-audioformat.php or anything cuz it single-audio.php may effect the Audio Custom post type.
What do you guys think of this idea?" hardeepasrani
Future Releases 14106 Post-processing of post thumbnails Post Thumbnails 3.0 normal normal Future Release enhancement assigned dev-feedback 2010-06-26T20:45:24Z 2014-10-09T23:18:17Z "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
Future Releases 18402 Confused page ordering if filter drops parent pages nacin Posts, Post Types 3.2.1 normal normal Future Release defect (bug) reviewing dev-feedback 2011-08-14T15:34:07Z 2014-02-02T09:48:12Z "= Problem =
In Wordpress's page management section, the page ordering is confused if a page filter drops a page parent.
Originally, I experienced this with the User Access Manager Plugin:
http://wordpress.org/extend/plugins/user-access-manager/
This plugin only shows allowed pages to the user.
= Example =
{{{
Page A
- Page A1
-- Page A1.1
-- Page A1.2
}}}
By dropping page A, the ordering becomes for example:
{{{
-- Page A1.1: Parent Page is Page A1
-- Page A1.2: Parent Page is Page A1
- Page A1: Parent Page is A
}}}
But should become:
{{{
Page A1: Parent Page is A
-- Page A1.1
-- Page A1.2
}}}
= Solution =
The confusion results from the function `_display_rows_hierarchical`
in `wp-admin/includes/class-wp-posts-list-table.php` which only adds pages to $top_level_pages whose parent is 0 – the wrong assumption here.
By adding pages to $top_level_pages whose parent is either 0 or doesn't exist in $pages we get a usable order:
So I added to the above-mentioned file:
{{{
#!php
function is_parent_in_pages( $parent, $pages ) {
foreach ( $pages as $page ) {
if ( $page->ID == $parent ) return true;
}
return false;
}
}}}
and changed `_display_rows_hierarchical`
from
{{{
#!php
if ( 0 == $page->post_parent )
$top_level_pages[] = $page;
else
$children_pages[ $page->post_parent ][] = $page;
}}}
to
{{{
#!php
if ( 0 == $page->post_parent || !$this->is_parent_in_pages( $page->post_parent, $pages ))
$top_level_pages[] = $page;
else
$children_pages[ $page->post_parent ][] = $page;
}}}
And finally - in order to remove the leading dash of $top_level_pages - I removed
the $level++ in function `single_row` (same file) below ""`case 'title':`""
Small change, better user experience :)
" erdnah
Future Releases 16949 Custom post types: error on page if query contains multiple post types Posts, Post Types 3.1 normal normal Future Release defect (bug) new dev-feedback 2011-03-23T17:19:22Z 2014-02-21T17:34:38Z "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
Future Releases 15963 Don't try to add orphaned pages' parents' slugs to the page URL Posts, Post Types 3.1 normal normal Future Release defect (bug) new dev-feedback 2010-12-23T11:08:55Z 2014-01-19T07:54:35Z "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
Future Releases 22214 Inconsistency in the show_ui parameter for register_post_type Posts, Post Types 3.4.2 normal normal Awaiting Review defect (bug) new dev-feedback 2012-10-17T20:58:42Z 2014-02-02T09:48:12Z 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
Future Releases 21699 Losing post status Posts, 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@…
Future Releases 29640 Pages sorted by date: No hierarchy dashes Posts, Post Types 4.0 normal normal Awaiting Review defect (bug) reopened dev-feedback 2014-09-12T10:58:40Z 2015-02-19T22:16:50Z When I sort my pages by date, the hierarchy dashes disappear. let me see...
Future Releases 9864 Performance issues with large number of pages Posts, Post Types 2.7.1 normal normal Future Release defect (bug) assigned dev-feedback 2009-05-18T19:20:59Z 2014-10-08T19:04:02Z "'''Environment:'''
- Default install, default theme, no plugins, reasonable server configuration (typical execution, memory limits). In my particular case, that was set to 30 seconds, 384 MB.
'''To reproduce:'''
- Create a large number of pages (5,000+)[[BR]]
- Try to edit a page
'''What happens:'''
- Maximum execution time error
{{{
Fatal error: Maximum execution time of 30 seconds exceeded in \wp-includes\post.php on line 1998
}}}
'''Workaround to prevent error:'''
- set_time_limit to 0 as server admin
'''My diagnosis:'''
Suspect that the immediate problem is that get_pages() inside wp-admin/post.php, line 2173, performs a query that selects EVERYTHING:
{{{
$query = ""SELECT * FROM $wpdb->posts $join WHERE (post_type = 'page' AND post_status = 'publish') $where "";
}}}
Now, in this case this query (AFAIK) is just supposed to pull up the page list (with IDs, titles and parents). What it actually does is it pulls up ALL of the post data. This works fine for low number of pages, but on a larger data set this causes a chokepoint. After all, the end result is just supposed to be a dropdown with a list of pages.
'''Workaround to improve performance:'''
- comment out line 273 in wp-admin\edit-page-form.php and skip displaying the page parent in the edit screen
'''The bigger picture:'''
Well, the ENTIRE list of pages is queried in this 'edit page' screen (see screenshot # 2 - with a dropdown that contains 5,000+ entries.) I think this is a design limitation and it looks clumsy once the list gets larger. Rather than patch the display routines, I think this thing needs to be replaced with something that can search / paginate piecemeal server-side.
" pp19dd
Future Releases 27494 Posts page appears into search results Posts, Post Types 3.8.1 normal normal Awaiting Review defect (bug) new dev-feedback 2014-03-23T14:27:23Z 2014-12-26T06:19:45Z "Hi,
if you set a static home page, so then a page for posts, this page is just a virtual page, because it doesn't have any content, just the title. But, if you search on the site for this title, the virtual page will be shown as search result. In my opinion this should be hidden." SGr33n
Future Releases 17115 Publishing an empty post results in success Posts, Post Types 3.1 normal normal Awaiting Review defect (bug) new dev-feedback 2011-04-12T11:32:50Z 2015-01-28T21:13:08Z "'''Steps to reproduce:'''
1. Go to Add New post screen
1. Publish post
1. Success message is displayed with link to initial auto-draft of post
The issue can be traced back to the `editpost` switch case in `post.php` (line 204), which calls `edit_post()` and `redirect_post()`.
`edit_post()` saves any meta values passed with the post to the auto-draft, which isn't necessarily desirable, and returns the auto-draft post ID.
`redirect_post()` then defaults to status message code 6 which incorrectly reports success in publishing." kawauso
Future Releases 25493 Sorting posts in ascending order of date at admin side Posts, Post Types 3.1 normal normal Awaiting Review defect (bug) new dev-feedback 2013-10-06T08:57:14Z 2014-02-02T09:48:12Z Posts are displayed in descending order of date in the admin side but if we click on date column header to sort it then again it is sorted in descending order of date instead it should be sorted in ascending order of date. vinod dalvi
Future Releases 26832 Unable to force delete using get_delete_post_link() Posts, Post Types 3.8 normal normal Awaiting Review defect (bug) new dev-feedback 2014-01-14T16:56:06Z 2014-02-02T06:26:59Z "I seem to be unable to force delete when using {{{get_delete_post_link()}}}
Doing the following inside the loop sends the post to trash.
{{{
get_delete_post_link( $post_id, '', true );
}}}
Shouldn't passing {{{true}}} as the third parameter cause the post to be permanently deleted?
http://codex.wordpress.org/Function_Reference/get_delete_post_link" henry.wright
Future Releases 30452 _wp_translate_postdata() aggressively checks current_user_can( $ptype->cap->edit_others_posts ) on update Posts, Post Types normal normal Future Release defect (bug) new dev-feedback 2014-11-21T23:13:46Z 2014-11-21T23:14:18Z "The product use-case is that the creator of a post should always be able to edit the post, even when they've assigned someone else as a byline. To do so, I'm storing their user ID to post meta:
{{{
public function action_wp_insert_post_persist_author( $post_id, $post, $update ) {
$post_obj = Post::get_by_post_id( $post_id );
if ( $update
|| ! in_array( $post->post_type, Fusion()->get_post_types() )
|| ! $post_obj
|| ! $post->post_author ) {
return;
}
$post_obj->set_first_author_id( $post->post_author );
}
}}}
And then filtering `map_meta_cap`:
{{{
/**
* Filter map meta cap to do whatever custom caps we need
*/
public function filter_map_meta_cap( $caps, $cap, $user_id, $args ) {
switch ( $cap ) {
case 'edit_post':
$post_obj = Post::get_by_post_id( $args[0] );
if ( ! $post_obj ) {
break;
}
$post_type = get_post_type_object( $post_obj->get_post_type() );
// Allow first authors to always edit the post
if ( $post_obj->get_first_author_id() && $user_id == $post_obj->get_first_author_id() ) {
// Don't require editing others' posts
if ( false !== ( $key = array_search( $post_type->cap->edit_others_posts, $caps ) ) ) {
unset( $caps[ $key ] );
}
// If the post is published...
if ( 'publish' == $post_obj->get_status() ) {
$caps[] = $post_type->cap->edit_published_posts;
} elseif ( 'trash' == $post_obj->get_status() ) {
if ( 'publish' == get_post_meta( $post_obj->get_id(), '_wp_trash_meta_status', true ) ) {
$caps[] = $post_type->cap->edit_published_posts;
}
} else {
// If the post is draft...
$caps[] = $post_type->cap->edit_posts;
}
}
break;
}
return $caps;
}
}}}
This approach generally works — except the original author isn't able to save an update to a post because `_wp_translate_postdata()` aggressively checks `current_user_can( $ptype->cap->edit_others_posts )` ([https://core.trac.wordpress.org/browser/tags/4.0.1/src/wp-admin/includes/post.php#L67 ref]).
A check for `current_user_can( $ptype->cap->edit_post, $post_data['ID'] )` was added to `_wp_translate_postdata()` in r22950, but the changeset also leaves in the `edit_others_posts` check.
Given `current_user_can( 'edit_post' )` falls back to `edit_others_posts` behind the scenes ([https://core.trac.wordpress.org/browser/tags/4.0.1/src/wp-includes/capabilities.php#L1114 ref]), I'd expect we could remove the second check." danielbachhuber
Future Releases 11699 adjacent_post_link fails to strip anchor tags from post titles Posts, Post Types 2.9 normal normal Future Release defect (bug) new dev-feedback 2010-01-03T01:01:00Z 2014-02-01T07:37:37Z "If you create a post with a title of ""Started using WordPress"", 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

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
Future Releases 12016 get_calendar can output a calendar when there are no posts Posts, Post Types 3.0 normal normal Future Release defect (bug) reviewing dev-feedback 2010-01-25T17:54:31Z 2014-02-01T07:37:37Z "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
Future Releases 8107 get_next_post, get_previous_post do not work for posts posted within same second Posts, Post Types 2.7 low minor Future Release defect (bug) new dev-feedback 2008-11-08T12:34:22Z 2014-03-10T18:36:55Z "if you have posts that are published shortly one after the other (e.g. through a script or plugin that posts several posts at once) several of them may end up having the same post_date in the wordpress database table. this is due to the fact that mysql datetime seems to only maintain a precision of one second (see also this discussion: http://bugs.mysql.com/bug.php?id=8523).
the problem now is that wordpress functions like get_next_post/get_previous_post (get_adjacent_post resp.) will no longer work correctly if something like this happens as they solely rely on a comparison of the post_date field and they don't treat the case where these timestamps are the same for several posts. the result is that e.g. get_next_post will pick one of the posts having the same timestamp and ""jump"" over the others, so the user will never see them.
i see two possibilities around this 1.) treat cases with the same post_date by e.g. looking also at the post id (assuming it is always strictly increasing) or probably preferably 2.) make sure that no two posts have the same post_date timestamp by e.g. increasing post_date artificially when publishing the post and if another post already has the same timestamp.
" whoismanu
Future Releases 17374 get_pages() with child_of forgets sort Posts, Post Types 3.1.2 normal normal Future Release defect (bug) new dev-feedback 2011-05-11T10:06:17Z 2014-02-21T22:25:11Z "If you call {{{get_pages()}}} with both the {{{child_of}}} and {{{sort_column}}}, the sorting is not applied.
{{{child_of}}} makes it select all pages (sorted) and later applies a subselect via {{{get_page_children()}}}. This subselect can mess up the sort order.
An example was reported on http://wordpress.stackexchange.com/questions/16921/get-pages-not-ordering-as-it-should
Related: #12821" janfabry
Future Releases 15946 post_date_gmt ignored in wp_insert_post() Posts, Post Types 3.1 normal normal Future Release defect (bug) new dev-feedback 2010-12-22T00:41:40Z 2014-02-21T10:27:34Z If a post is inserted with `post_date_gmt` set and `post_date` not, `post_date` defaults to the current date/time, rather than being generated from `post_date_gmt` kawauso
Future Releases 25273 wp_link_pages shouldn't be able to use a negative page number Posts, Post Types 0.71 normal trivial Awaiting Review defect (bug) new dev-feedback 2013-09-11T02:05:00Z 2014-03-21T12:19:13Z Even though the page number shouldn't be able to get to negative anyway, it would still be good to check and not allow the previous link to go to -1. betzster
Future Releases 15230 Action hook before the inserting post into the database Posts, 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
Future Releases 23207 Add $labels argument to register_post_status() Posts, Post Types normal normal Awaiting Review enhancement new dev-feedback 2013-01-15T19:32:54Z 2014-10-05T11:05:52Z "WordPress functions '''register_taxonomy()''' and '''register_post_type()''' has '''labels''' argument. Why not add labels to '''register_post_status()'''?
The current way to add status:
{{{
$args = array(
'label' => __( 'draft', 'text_domain' ),
'label_count' => _n_noop( 'Draft (%s)', 'Drafts (%s)', 'text_domain' ),
'public' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'exclude_from_search' => true,
);
register_post_status( 'draft', $args );
}}}
The new way (using labels):
{{{
$labels = array(
'name' => __( 'Draft', 'text_domain' ),
'singular_count' => __( 'Draft (%s)', 'text_domain' ),
'plural_count' => __( 'Drafts (%s)', 'text_domain' ),
'any_other_label' => __( 'Any Other Label', 'text_domain' )
);
$args = array(
'labels' => $labels,
'public' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'exclude_from_search' => true,
);
register_post_status( 'draft', $args );
}}}" ramiy
Future Releases 9911 Add new filter to control content splitting into multiple pages Posts, Post Types 2.7.1 normal normal Future Release enhancement new dev-feedback 2009-05-22T22:11:02Z 2014-02-01T07:37:37Z Currently the only way to create multi-page post is to use `` 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
Future Releases 26877 Allow get_post() to accept a custom post object instead of only WP_Post Posts, Post Types normal normal Future Release enhancement new dev-feedback 2014-01-20T04:27:05Z 2014-10-10T10:16:54Z "I'm refactoring a poorly coded theme that I want to use for it's design and I am finding it very helpful to be able to create a theme-specific Post class that encapsulates theme-specific behaviors related to Posts that the theme currently has ''""littered""'' over many different templates. ''(I usually build plugins and (almost?) never build themes but it seems this would be useful when ''building'' themes too.)''
So I created a class that looks like this for my refactoring efforts ''(the following is only a small segment of the class but I've only included the relevant portions for this ticket):''
{{{
/**
* Class MyTheme_Post
*/
class MyTheme_Post {
private $_post;
private $_post_stack = array();
/**
* @param int|WP_Post $post
*/
function __construct( $post ) {
if ( is_numeric( $post ) ) {
$post = get_post( $post );
}
$this->_post = $post;
}
/**
* Get the title by using the_title() function.
*
* @param string $before
* @param string $after
*
* @return string
*/
function title( $before = '', $after = '' ) {
$this->_push_post();
$title = the_title( $before, $after, false );
$this->_pop_post();
return $title;
}
/**
* Set global $post to contain the inner WP_Post and push the prior onto an internal stack.
* We need this so that get_post() will work correctly.
*/
function _push_post() {
global $post;
array_push( $this->_post_stack, $post );
$post = $this->_post;
}
/**
* Pop the prior post off the internal stack.
* We need this so that get_post() will work correctly.
*/
function _pop_post() {
global $post;
$post = array_pop( $this->_post_stack );
}
/**
* Delegate any property requests to the contained post.
*
* @param string $property
*
* @return array|mixed
*/
function __get( $property ) {
return $this->_post->$property;
}
}
}}}
And then at the top of my theme template I do the following:
{{{
$post = new MyTheme_Post( $post );
}}}
This works '''brilliantly''' ''except'' **unfortunately** whenever `get_post()` is called by any template tag or other function, and lots of functions call it; `get_post()` throws away the custom instance and creates a new instance of `WP_Post` for use instead. You see how I get around this in `$post->title()` above, but I can't always do that.
I can envision two (2) fixes for this:
1. Remove `final` from the `WP_Post` class so I can really subclass it, or
2. Have `get_post()` inspect a special property ''(maybe `$post->is_custom`)'' and if it's set to `true` then assume it's an object the developer wants to keep.
I know that subclassing [https://core.trac.wordpress.org/ticket/21309#comment:14 was not wanted for WP_Post when it was being implemented] so if that's still the case I'm hoping we could at least do option 2.
Patch attached." MikeSchinkel
Future Releases 23022 Always set posts to draft status when untrashing Posts, Post Types 2.9 normal normal Future Release enhancement new dev-feedback 2012-12-20T15:00:43Z 2014-02-25T22:19:59Z "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
Future Releases 23458 Implement filters on post_status, check get_post_status() instead of the object's post_status in get_post_permalink() Posts, Post Types 3.5 normal normal Awaiting Review enhancement new dev-feedback 2013-02-12T17:16:35Z 2013-12-02T20:11:09Z "We have some custom post types that we wanted to implement the `inherit` post_status on, using the pattern created by attachments that allows child posts to inherit their status from the parent. In our case we have a top-level custom post that has a number of children of a different post type, and we wanted to make it easy to publish the entire set simply by publishing the parent.
In implementing this, however, we discovered some hard coded assumptions in `get_post_permalink()` and `get_post_status()` that got in our way. Examples:
`get_post_status()` has specific support for `inherit` as a post status, but only for `attachment` post types. Everything else can pound sand. To work around this we added a filter to the return value, which seemed to be both the most compatible and lowest-cost way to implement such a change. It looks like this: `return apply_filters( 'get_post_status', $post->post_status, $post );`.
And in `get_post_permalink()` we found that it's checking `$post->post_status`, making it impossible to ascend the hierarchy and get the status of the parent. The change there was also pretty straightforward: `$draft_or_pending = get_post_status( $id ) && in_array( get_post_status( $id ), array( 'draft', 'pending', 'auto-draft' ) );`.
I believe this is compatible with #23169 and #23168, which seek to improve support for custom `post_status`es. The only other recent ticket/changeset I found mentioning post_status was r22963, which changed from `get_post_status( $id )` to `$post->post_status` for compatible, but opposite reasons." misterbisson
Future Releases 14017 "New template ""tag"": get_custom_field()" filosofo Posts, Post Types 3.0 normal normal Future Release enhancement new dev-feedback 2010-06-21T04:13:03Z 2014-05-27T04:28:30Z "It would be helpful to have a way to retrieve a custom field value that is somewhat agnostic of current context.
'''Current way to do this'''
In the header (i.e., before the Loop), one has to access the currently-queried object to get a custom value, with something like this:
`$value = get_post_meta($GLOBALS['wp_query']->get_queried_object_id(), 'field', true);`
In the Loop:
`$value = get_post_meta(get_the_ID(), 'field', true);`
And, lots of tutorials out there tell people to do things like the following, with varying degrees of success (depending on variable scope):
`$value = get_post_meta($id, 'field', true);`
or
`$value = get_post_meta($post->ID, 'field', true);`
'''My proposed function (or ""template tag"")'''
mixed '''get_custom_field''' ( string ''$fieldname'' [, int ''$post_id'' ] )
`$value = get_custom_field('field');`
It picks the current object like so:
{{{
Passed post object ID?
/ \
yes no
| |
use it |
|
within Loop?
/ \
yes no
| |
use current |
Loop ID |
|
currently queried
object is singular?
/ \
yes no
| |
use its ID ID = 0
}}}" filosofo
Future Releases 19055 Post type check on top of wp-admin/edit.php enhancement Posts, Post Types normal normal Awaiting Review enhancement new dev-feedback 2011-10-26T10:04:48Z 2014-10-25T22:08:39Z "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
Future Releases 18375 Post type templates Posts, Post Types normal normal Awaiting Review enhancement new dev-feedback 2011-08-10T20:37:46Z 2014-03-24T17:54:59Z "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
Future Releases 8592 Private Pages not listed in the Parent dropdown nacin Posts, Post Types 2.7 normal major Future Release enhancement reopened dev-feedback 2008-12-12T16:22:24Z 2015-02-28T23:38:42Z "Private pages are not available as a choice in the Parent dropdown of the Attributes module.
You should be able to create a hierarchy of private pages if you want to.
Tested with r10194." mtdewvirus
Future Releases 23559 Sticky single post page doesn't have .sticky class Posts, Post Types 2.7 normal normal Awaiting Review enhancement new dev-feedback 2013-02-20T11:34:44Z 2014-10-01T13:12:15Z "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
Future Releases 14761 unregister_post_type() Posts, Post Types 2.9 lowest normal Future Release enhancement new dev-feedback 2010-09-02T12:00:17Z 2013-11-20T16:50:47Z "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
Future Releases 24705 wp_link_pages() does not showing active current element Posts, Post Types 2.2 normal major Awaiting Review enhancement new dev-feedback 2013-07-07T22:19:44Z 2015-02-10T20:18:56Z "By full analogy of all wp functions, wp_link_pages must generate active class element too.
{{{
1
234
}}}
but should be
{{{
1234
}}}
" Alexufo
Future Releases 24991 Add 'instantiated_post' hook to WP_Post->_construct() Posts, Post Types 3.6 normal normal Awaiting Review feature request new dev-feedback 2013-08-08T14:37:51Z 2013-08-08T16:53:25Z "Please consider adding an `'instantiated_post'` hook to the end of `WP_Post->_construct()`.
Such a hook would allow doing so would allow plugins to add custom fields or child posts to the post object, would allow for instrumentation to aid in debugging.
See #14958 for some background." MikeSchinkel
Future Releases 28463 Need core concept of the first publication of a post/comment. Posts, Post Types normal normal Awaiting Review feature request new dev-feedback 2014-06-05T17:21:56Z 2014-10-11T22:53:14Z "Because status transitions are permitted to occur in a cyclic fashion, it is possible to publish a post/comment more than once. The first publication event has unique significance, e.g. to push-based subscription delivery systems, but this concept is not represented anywhere in WordPress.
Restricting status transitions to a directed acyclic graph is a non-starter.
What I have done in plugins (and Nacin also suggests) is to mark the initial publication in meta: if transitioning to publish/approved, try adding the meta; if the add succeeds, this is the initial publication. I suspect that a significant number of plugins duplicate this.
It would be even more useful to keep the history of changes to post_status in revisions rather than put ""inherit"" in that field. This would have repercussions in the already complex system for revisions, which has no facility for dealing with changes to non-content fields. It may also conflict with the existing uses of the ""inherit"" status, such as calling get_post_status() on a revision with the intention of getting the parent's status.
Status revisions may have other uses as well (see #23314, #12706) but comment revisions don't exist yet. Ultimately what I want is a hook that fires only on the initial publication of a post or comment. The add_post_meta/add_comment_meta system can accomplish this much more easily." andy
Future Releases 7605 Press This: Edit URL noel Press This normal normal Future Release enhancement new dev-feedback 2008-08-26T20:35:04Z 2014-10-08T17:56:37Z It'd be nice if the Press This bookmarklet had the same edit URL capabilities as the Wordpress administration. awayken
Future Releases 12017 Press This multiple blog support Press This normal normal Future Release feature request new dev-feedback 2010-01-25T17:57:19Z 2013-08-15T22:32:54Z "MU Trac Ticket: http://trac.mu.wordpress.org/ticket/1092
A WordPress MU user may wish to pass external content into the MU authoring interface. Authoring interfaces such as Press This currently do not support the selection of a target blog for which the currently logged in user has edit_posts capability.
Internet Explorer 8, Google Reader, and bookmarklet functions currently help pass new post information into an authoring tool such as Press This, but requires a pre-determined URL template to pass along new actions.
Good: http://wordpress.org/wp-admin/press-this.php
Bad: http://*.wordpress.org/wp-admin/press-this.php
Currently a user can add a bookmarklet or IE Accelerator on a per-blog basis. It would be a much better user experience if he or she could target a predictable URL endpoint on the MU install.
New URL ¶
adminurl/press-this.php
Point to the MU install's main admin handlers and let it handle user state.
Possible handling ¶
* Redirect user to Press This interface of their primary blog with query params intact.
* Add a new stuffbox to the post interface sidebar with a