ticket summary owner component _version priority severity milestone type _status workflow _created modified _description _reporter Comments
36263 When building a shortcode with `wp.shortcode.string()` the `attrs` property is finnicky. yale01 Shortcodes 3.5 low minor Awaiting Review defect (bug) assigned dev-feedback 2016-03-16T17:48:06Z 2017-06-26T18:10:57Z "If you pass it in as:
{{{
wp.shortcode.string({
tag : 'short',
type : 'single',
attrs : {
named : { foo : 'bar' },
numeric : [ 'abc123' ]
}
});
}}}
it works fine -- resulting in `[short abc123 foo=""bar""]`, but if you flip the order so that numeric comes before name, like so:
{{{
wp.shortcode.string({
tag : 'short',
type : 'single',
attrs : {
numeric : [ 'abc123' ],
named : { foo : 'bar' }
}
});
}}}
the output is `[short numeric=""abc123"" named=""[object Object]""]`
This is because we're doing an overly basic array comparison of the keys in which order matters --
https://core.trac.wordpress.org/browser/trunk/src/wp-includes/js/shortcode.js?rev=34933#L218
{{{
// Identify a correctly formatted `attrs` object.
} else if ( _.isEqual( _.keys( attrs ), [ 'named', 'numeric' ] ) ) {
this.attrs = attrs;
}}}
I wonder if we could do something as simple as using `_.difference` instead --
{{{
} else if ( _.difference( _.keys( attrs ), [ 'named', 'numeric' ] ).length === 0 ) {
this.attrs = _.defaults( attrs, { named : {}, numeric : [] } );
}}}
or something?
Open to suggestions." georgestephanis 9
12756 WPMU does not handle files with two or more dots in the filename wpmuguru Upload 2.9.2 normal minor Future Release defect (bug) reopened has-patch 2010-03-29T07:23:50Z 2015-01-13T16:51:35Z "* WPMU does download images that have two or more dots in the file name
> E.g., One..jpg One...jpg One....jpg
rewrites do work (checked)
* this is clearly a WP issue:
> /wp-content/blogs.php
...
$file = BLOGUPLOADDIR . str_replace( '..', '', $_GET[ 'file' ] );
if ( !is_file( $file ) ) {
status_header( 404 );
die('404 — File not found.');
}
...
> WPMU removes two dots!!!
> workaround:
$file = BLOGUPLOADDIR . $_GET[ 'file' ]; // name.ly: workaround for files with two or more dots
tested and works fine
" Namely 13
39633 No HiDPI version for avatar in post locked modal wpdesk Posts, Post Types 4.2 normal normal Future Release defect (bug) assigned has-patch 2017-01-18T21:23:08Z 2017-06-26T18:09:56Z "The image tag is generated in JavaScript, see https://core.trac.wordpress.org/browser/trunk/src/wp-admin/js/post.js?rev=38893&marks=203#L202, without a srcset attribute.
`wp_refresh_post_lock()` should probably return both versions. Also, consider switching to `get_avatar_url()`.
Related: #22329" ocean90 1
17948 Enhancements to the login and registration forms wpdavis Login and Registration 3.2 normal normal Future Release enhancement new 2011-06-30T16:25:01Z 2015-12-03T17:10:34Z "I would like to propose a significant overhaul of the registration and login forms for 3.2, which I'd be happy to take on. A few things that I think would be helpful:
Combine registration processes for multisite and single-user into one form on one page.
Allow the registration and login to be templatized — no reason this should be for MS only.
Standardize filters, actions and variables between MS and single-user when at all possible.
A few related tickets:
#17904
#17306
#17085
#16866
#16411
#17630" wpdavis 19
18449 List Table Factory Needs to be Pluggable wonderboymusic Administration 3.1 normal normal Future Release defect (bug) assigned has-patch 2011-08-16T19:51:33Z 2015-11-04T18:09:14Z "Better design planning should have been considered for http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/list-table.php
function _get_list_table() is identical to an object factory pattern, which would make more sense as a static member of WP_List_Table. In other words...
{{{
$wp_list_table = _get_list_table('WP_Terms_List_Table');
}}}
... which looks simple, is actually confusing because it would be more intuitive if written as ...
{{{
$wp_list_table = WP_List_Table::factory('Terms');
}}}
Further, the factory hasn't offered any extensibility. Locking edit-tags.php against WP_Terms_List_Table makes it unusable for custom taxonomies that need a custom UI. Despite all of the great API improvements for taxonomies, this case still necessitates duplicating the entire category editing UI within a plugin just to tweak a table column or a link path.
Please adjust the ticket Type and Component as necessary. It could be a taxonomy design flaw or an administration enhancement, depending how you look at it." miqrogroove 11
30017 Many automated tests are unnecessarily slow wonderboymusic Build/Test Tools normal normal Future Release task (blessed) assigned 2014-10-17T02:07:19Z 2016-11-10T01:53:09Z "Our test suite is getting bigger (that's good!). But many of our tests are, of necessity, integration and functional tests that require lots of setup: creating factory data, resetting globals, etc. This process can be slow (that's bad!).
Poking around in the tests, it looks like some of the worst offenders are those who create lots of database content in the `setUp()` method. Creating more dummy data than is absolutely necessary to test an assertion is - at best - wasteful. At worst, it actually introduces unnecessary variables into what is supposed to be a narrowly defined test. (Fake but illustrative example: if you create 25 posts to test some default value in `WP_Query`, you now have to worry about pagination in addition to whatever value you're testing.)
Changing existing tests is a tedious and potentially dangerous task - you don't want to introduce regressions into our regression-preventing tests. But if we can shave 10-20% off of the execution time of our suite (which I think is a pretty conservative estimate), it'd be a huge step toward getting more people to actually run the dang things, as well as things like continuous integration.
Opening this ticket for discussion and/or patches." boonebgorges 64
12363 Comment permalink wrong when only listing one comment type wonderboymusic Comments 3.0 normal normal Future Release defect (bug) assigned dev-feedback 2010-02-24T14:31:51Z 2015-11-04T17:48:31Z "If you pass the `type` parameter to `wp_list_comments()` (for example, to show comments only and no pings), then comment permalinks can easily use the wrong page number as they expect there to be pings included. This is apparent after leaving a comment and WordPress attempts to redirect back to your new comment.
At first I was thinking you could tell WordPress that you're filtering to a type and it could compensate when determining the page number, but then I realized perhaps it'd just be better for `wp_list_comments()` to check if there were 0 comments returned for the query and if so, see if there are any of that type of comment available. If so, then we know we're on too high of a page number and can instead display the highest existing page. Then again this introduces SEO issues.
Ideas on what to do are welcome." Viper007Bond 4
13363 Edit Comments: Pending > Approving shouldn't make them disappear from screen wonderboymusic Comments 3.0 normal normal Future Release enhancement assigned has-patch 2010-05-11T23:35:45Z 2015-10-02T06:03:28Z "Edit Comments: Pending > when clicking Approve the comments shouldn't just disappear from the screen.
They should collapse and have an undo status like when you trash or spam a comment.
ENV: WordPress trunk r14573 (3.0-beta2-14565)
" lloydbudd 3
37868 Avoid default width styles in the markup of the audio player wonderboymusic Embeds 4.6 normal normal Future Release enhancement assigned has-patch 2016-08-29T18:51:47Z 2016-10-03T22:37:28Z "The markup for every audio player contains inline styles for setting its width to 100%, like below (simplified):
{{{

}}}
Why not move that style to a stylesheet? It is the default style for ''every'' audio player, so let’s not repeat ourselves each time. Moreover, style attributes in the HTML make it hard to override styles. If you don’t want your audio player to be 100% wide you’re left with two ugly options:
a) Use `!important` declarations in your own stylesheet to override it.
b) Filter out the default width like this:
{{{
add_filter( 'shortcode_atts_audio', 'my_shortcode_atts_audio', 10, 4 );
function my_shortcode_atts_audio( $out, $pairs, $atts, $shortcode ) {
$out['style'] = preg_replace( '~(?:^|\s)width\s*+:\s*+100%;?~i', '', $out['style'] );
return $out;
}
}}}
" GeertDD 5
31390 Investigate static analysis errors wonderboymusic General normal normal Awaiting Review defect (bug) assigned 2015-02-19T22:14:38Z 2015-04-06T05:03:49Z "I'm the author of hussar, a tool that leverages the static analysis functionality of HHVM. I ran the tool against Wordpress master and it found ~200 errors. Some of these look like false-positives, but I figured I'd let you guys decide.
https://gist.githubusercontent.com/caipre/feb7f9fe46dc2fa90a79/raw/0b0556b65b490b3c7e12f5399dda049d9e71679b/gistfile1.txt
More details about hussar here: https://github.com/wayfair/hussar" Caipre 1
33837 We should avoid Superglobals when possible wonderboymusic General normal normal Future Release enhancement assigned dev-feedback 2015-09-11T19:53:44Z 2015-09-17T20:57:09Z "We can probably add some helper functions that complete common tasks around Superglobal access
Examples of accessing here:
https://codeclimate.com/github/WordPress/WordPress/wp-admin/edit-comments.php
Something like `wp_verify_action( $action )` could replace the many instances of things like:
`isset( $_REQUEST['action'] ) && 'upload-attachment' == $_REQUEST['action']`
Without having to architect something like `Symfony/HttpFoundation`, we can make accessing them more rare." wonderboymusic 24
25076 CSS issue with native video player and flash fallback on full screen wonderboymusic Media 3.6 normal minor Future Release defect (bug) assigned 2013-08-18T21:02:34Z 2015-08-22T00:14:01Z "Hi,
I noticed there's a bug with the CSS and the new native video player introduced in v3.6.
This is how it looks when not using full screen:
[[Image(http://img11.imageshack.us/img11/1374/g0n.png)]]
And this is how it looks when using full screen:
[[Image(http://img823.imageshack.us/img823/7278/qna.png)]]
It automatically changes the color of the bar.
This is the shortcode I'm using to show the video:
{{{
[video src=""video.mp4"" width=""640"" height=""360"" autoplay=""true"" loop=""true""]
}}}
I tested this on a fresh WP 3.6 installation with Twenty Thirteen theme. This is the CSS:
{{{
.mejs-container, .mejs-embed, .mejs-embed body {
background: #464646;
}
.mejs-controls .mejs-time-rail .mejs-time-loaded {
background: #21759b;
}
.mejs-controls .mejs-time-rail .mejs-time-current {
background: #d54e21;
}
.me-cannotplay {
width: auto !important;
}
}}}
I also tested it on a post and on a page, happens the same on both." leandroprz 10
32654 Denying upload_files cap makes Customizer and Media modal act oddly wonderboymusic Media 4.3 normal normal Future Release defect (bug) assigned has-patch 2015-06-15T17:40:05Z 2015-07-06T15:10:55Z "This is an unusual one, so labeling it as an enhancement rather than a bug. Somebody more familiar with the Customizer classes and Media modal might know the right way to handle this properly.
If you disable the upload_files capability, with the intent of not allowing file uploads by anybody (duh), then the customizer acts very odd in the assorted image-related controls.
Example code:
{{{
add_filter('user_has_cap', 'no_file_uploads');
function no_file_uploads( $caps ) {
$caps['upload_files'] = false;
return $caps;
}
}}}
The ""Header Image"" section still has an ""Add New Image"" button, which gives you the Media Library popup, with a spinner that never stops spinning. Also, the Upload Files tab still exist.
The ""Background Image"" section has a Select Image button, with the same broken Media Library popup as the other one.
Expected behavior: Media chooser that works, no Upload Files tab.
This may be an issue both with the Customizer showing incorrect buttons, or which more properly belongs to the Media modal in that it should still be possible to select an image even if you cannot upload one.
Alternatively, disabling upload_files in this way may be the wrong way to do it, although it is the most obvious approach.
" Otto42 4
30154 Improve Media Modal UI at small-screen sizes: Redux wonderboymusic Media 4.0 normal normal Future Release defect (bug) assigned has-patch 2014-10-29T00:01:47Z 2017-04-11T20:28:36Z "Whereas various issues were resolved in #27423, the Image Flow group proposes a realignment of the approach regarding the Media Modal UI, and in particular the Edit Image modal on small screen sizes.
The following relates to current behaviour in 4.1-alpha-30080 as it appears in the flow on small screens (tested on vertical Nexus 4 and iPhone 5):
The Edit Image modal is by and large not functional on small screens. The crop function does not work and the remaining buttons (rotate, flip, etc) as well as the preview image are largely covered by the right-hand tool panel.
Considering the current work being done on Image Flow and the fact that the cropping will not work in mobile our proposal is to make the Edit Image function unavailable on smaller screens by hiding the link / button that takes the user to the modal. The guiding philosophy here is that we provide only tools that can actually be used to the user. Since editing for all practical purposes is non-functional it is disabled when appropriate.
Alternatively the design pattern from the Image Details modal can be carried over: Leave the button row and image preview at the top (image scaled to fit available screen space, crop button removed) and move the right-hand panel down below.
In relation to other issues referenced in #27423 on single-image selection from the library:
- On selecting an image to add the metadata panel slides in from the right. Once the panel is visible it cannot be collapsed making the images on right hand column unavailable.
- When closing and re-opening the modal the pane remains extended.
- To regain access to the full grid the post must be closed and reopened.
" mor10 8
31139 Allow editing of video embed parameters in the media modal wonderboymusic Media normal normal Future Release enhancement reopened 2015-01-26T18:53:55Z 2017-07-10T17:33:41Z Unsure if this is possible, but it would be pretty sweet if you could adjust available video embed parameters, such as height/width, straight from the media modal. It could fit pretty well on this screen: https://cloudup.com/caoYOVuWM41 melchoyce 27
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 2016-04-25T16:41:38Z "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 38
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 2012-12-14T14:10:16Z 2017-07-01T15:11:40Z 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 20
30775 Delete empty post problem wonderboymusic Posts, Post Types 3.3 normal normal Future Release defect (bug) reopened dev-feedback 2014-12-19T02:20:16Z 2016-06-04T13:39:20Z "If empty post was created it cannot be deleted
Details are here http://arul.ru/pages/writings/delete_post_problem.htm" axdr 11
25493 Sorting posts in ascending order of date at admin side wonderboymusic Posts, Post Types 3.1 normal normal Future Release defect (bug) reopened 2013-10-06T08:57:14Z 2015-12-07T20:29:49Z 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 15
14477 get_pages with child_of only works with uninterrupted hierarchies wonderboymusic Query 3.0 high normal Future Release enhancement reopened 2010-07-30T19:00:50Z 2014-12-04T00:24:19Z "I have a page X with several children and grandchildren. Some of the grandchildren have a certain meta key and value. I now want to fetch all pages under page X that have this meta key. After reading the documentation of ''get_pages'', I expected this to work with a single call of ''get_pages''.
But if I use get_pages like this:
{{{
get_pages('child_of=X&meta_key=A&meta_value=B');
}}}
it returns no pages at all (hierarchical=0 has no effect). It seems that's because ''child_of'' triggers a call of ''get_page_children'' which only returns uninterrupted hierarchies. Since the query returns only some grandchildren and no direct descendants, the function fails. IMHO, that's a bug.
" vividvisions 19
18897 query_posts / WP_query parameter 'offset' should play nicely with 'paged' wonderboymusic Query 3.2.1 normal normal Future Release enhancement reopened has-patch 2011-10-10T22:18:29Z 2015-06-22T21:01:54Z "
Setting the offset parameter with WP_query ignores the paged parameter. Thus offset can only be used as if on page 1. This is unfortunate and seems worth fixing.
See prior #2558 ""query_posts() should support offset""" here 26
18298 deprecate TEMPLATEPATH and STYLESHEETPATH wonderboymusic Themes 3.0 normal normal Future Release enhancement reopened 2011-07-29T18:43:02Z 2016-08-05T03:20:40Z As part of #15086 we wanted to add unit tests, but we came across a problem in #UT22. Basically `locate_template()` uses these constants instead of `get_template_directory()` and `get_stylesheet_directory()` which makes it impossible to use `switch_theme()`. It looks like the constants are only used in about 20 places through core, so I recommend we fix those places and deprecate the constants. aaroncampbell 26
21165 Make categories widget work with custom taxonomies wonderboymusic Widgets normal normal Future Release enhancement reopened has-patch 2012-07-05T14:15:13Z 2016-02-29T02:09:52Z "The tag cloud widget already has a taxonomy dropdown.
We should add one for the categories widget as well." scribu 28
16980 Empty Values are ignored by class-ixr.php wonderboymusic XML-RPC 3.1 normal normal Future Release defect (bug) reopened has-patch 2011-03-27T12:34:47Z 2015-12-31T04:06:17Z "I tried to fix the following bug #10599
Found out when you send and empty value via xmlrpc it converts it to null value.
Say you send and array of arguments for mw_editpost, set
{{{
$content_struct[mt_keywords] = '';
}}}
IXR client passes a null value instead of an empty value.
In mw_post method consider this statement
{{{
$tags_input = isset( $content_struct[mt_keywords] ) ? $content_struct[mt_keywords] : null;
}}}
Even if you send an empty value this statement fails because
{{{
$content_struct[mt_keywords]
}}}
is set to null by IXR client." nprasath002 25
30429 wp.newPost gets non-GMT date calculation wrong wonderboymusic XML-RPC 3.4 normal critical Future Release defect (bug) reopened needs-unit-tests 2014-11-21T00:04:01Z 2016-03-16T02:08:41Z "In class-wp-xmlrpc-server.php, there is a bug with the calculation of dates if a post_date is set.
{{{
if ( ! empty( $dateCreated ) ) {
$post_data['post_date'] = get_date_from_gmt( iso8601_to_datetime( $dateCreated ) );
$post_data['post_date_gmt'] = iso8601_to_datetime( $dateCreated, 'GMT' );
}
}}}
`get_date_from_gmt` assumes the parameter passed is a GMT string. `iso8601_to_datetime( $dateCreated )`, however, is the local time. It should have the GMT parameter as per the next line to ensure the two dates are always in sync; currently the first one is always incorrect." smerriman 15
27671 wp_die() handler for admin-post.php whyisjake Administration normal normal Future Release enhancement assigned has-patch 2014-04-04T15:21:00Z 2016-12-04T21:43:45Z Similar to how `admin-ajax.php` has `_ajax_wp_die_handler`, it would be nice if `admin-post.php`had a custom `wp_die()` handler for errors. danielbachhuber 4
38899 Deletion of auto-drafts and trashed posts never gets scheduled unless user accesses admin pages westonruter* Administration normal normal Future Release defect (bug) accepted dev-feedback 2016-11-22T03:55:27Z 2017-05-18T14:32:53Z "As [https://core.trac.wordpress.org/ticket/38615#comment:37 noted] in #38615:
It turns out that the cron event that does `wp_delete_auto_drafts()` is only scheduled when a user lands on `post-new.php`:
{{{#!php
Customize -> Site Identity` and then right-click in the ""Site Title"" field and select `Paste` from the menu (having some text on the clipboard), the `Save` button remains greyed out and cannot be clicked. If I click it anyway, nothing happens and my changes aren't saved.
Ironically, only if I click anywhere ''outside'' both the `Site Title` and the `Save` button, the button suddenly updates and now shows ""Save & Publish"" and performs the expected operation when clicked.
This occurs with Firefox 40+ on both Windows and Linux platforms. It occurs both with singleline text fields and multiline text areas. It occurs with other themes too." xkr47 11
39254 When in Customizer Preview, starter content posts are not displayed in the loop westonruter* Customize 4.7 normal normal 4.9 defect (bug) accepted needs-unit-tests 2016-12-12T21:03:24Z 2017-07-10T18:28:35Z "As discussed in [https://wordpress.slack.com/archives/core-customize/p1481567934000409 Slack], posts in Starter Content aren't appearing in the posts list.
Being able to display the bundled content, specifically posts, is key for an improved user experience when configuring a new theme. Posts give structure to the theme, allowing users to see exactly how the theme will look with content.
This would also allow theme developers to completely match the content bundled with the theme to the content on the theme’s demo site. This helps address the popular complaint amongst WordPress users that a newly installed theme looks nothing like the demo." tiagonoronha 24
37964 Allow customizer controls to be encapsulated by accepting pre-instantiated settings westonruter* Customize 3.4 normal normal 4.9 enhancement accepted needs-unit-tests 2016-09-07T06:31:49Z 2017-06-08T22:43:53Z "In #35926 the ability to add setting-less controls was made possible. The work here only went halfway, however. Consider wanting to re-use a control in a standalone context (see #29071), where the settings used in the control are just plain `wp.customize.Value` instances. Controls should allow pre-instantiated `Value` (`Setting`) objects to be passed in as `params.settings`. And when this is done, there would be no `api( settingId... )` deferrals.
So one should be able to create a new control like this:
{{{#!js
var control = new wp.customize.Control( 'product_color', {
type: 'color',
params: {
settings: {
'default': new wp.customize.Value( '#000000' )
}
}
} );
}}}
Instead of having to do:
{{{#!js
wp.customize.create( 'product_color', 'product_color', '#000000', {} );
control = new wp.customize.Control( 'product_color', {
type: 'color',
params: {
settings: {
'default': 'product_color'
}
}
} );
}}}
The goal is to allow controls to be encapsulated and to be able to use them in standalone contexts or embedded inside of other controls.
Related:
* #30738
* #37275
* #29071" westonruter 18
38077 Facilitating embedding customizer controls outside of sections westonruter* Customize normal normal Future Release enhancement accepted 2016-09-16T20:14:50Z 2017-05-07T02:46:53Z "Controls are currently assumed to be always contained within sections in the customizer. This makes it difficult to reuse the controls in other contexts, such as embedding multiple controls inside another control or embedding a control outside the context of the customizer entirely. This will facilitate embedding customize controls on the frontend for contextual editing without having to have the customizer sidebar open or even having to go into `customize.php` at all.
Some of the hacks required to get controls to appear outside of the customizer can be seen in https://github.com/xwp/standalone-customizer-controls
The Media control in particular needs to be updated to remove the logic resize the player controls when the section is expanded. The `embed` method (used by widgets) also needs to not wait generally for a contained section to expand.
Key dependency for #29071 (Make it easier to include an instance of the Customizer outside of customize.php)
Depends on or is closely related to #37964 (Allow customizer controls to be encapsulated by accepting pre-instantiated settings)" westonruter 6
30738 JS content templates for base WP_Customize_Control westonruter* Customize 4.1 normal normal 4.9 enhancement accepted needs-unit-tests 2014-12-17T02:33:15Z 2017-07-24T16:37:05Z "This will make it possible to create all of the base Customizer control types directly in JS, and will allow them to share a single template passed from the server on Customizer init for all controls with the basic types (following up on #28709).
I think we may need to explore adjusting how register_content_type works since this control handles multiple types and all fallback types. But more likely we'll just do something a bit different, probably adding fallback handling on the other side and hard-coding these types into the Customizer Manager somewhere.
Follow-up to #29572. Related to several tickets I'm currently creating." celloexpressions 37
32183 Widget ID auto-increments conflict for concurrent users westonruter* Widgets 2.8 normal normal Future Release defect (bug) accepted 2015-04-29T09:20:46Z 2017-06-07T00:20:40Z "Each WP_Widget 2.0 “multi-widget” gets an index number associated with each instance of a give type. When you add a widget, this number gets incremented (`widget.set( 'multi_number', widget.get( 'multi_number' ) + 1 );`). The initial multi-number is calculated from the `next_widget_id_number()` function which takes the max number currently used, and increments it by one. The same approach is used in the widgets admin page and the Widget Customizer.
For frequently-used widgets, the above problem will happen frequently where two users will try to add the same widget at the same time, and thus they will start out with the same initial `multi_number`, resulting in the same widget ID. When they both save their changes, one user's widget will override the other user's widget: whoever saves last. Likewise, it is possible for multiple widgets to be deleted in one session (from the widgets admin page, since Customizer only removes widgets by moving them to the Inactive Widgets sidebar) then new ones added back in other sessions and the initial `multi_number` will not be consistent. In other words, the `multi_number` for each widget type needs to be synced across each Customizer session along with the actual setting values.
For concurrent editing of widgets, see:
#31436: Handle conflicts in concurrent Customizer sessions
#12722: Concurrent editing of widgets (on admin page)" westonruter 3
33507 Allow widget controls to be JS-driven westonruter* Widgets 3.9 normal normal Future Release enhancement accepted 2015-08-22T05:30:02Z 2017-03-14T18:00:13Z "Widgets currently have an almost complete reliance on PHP for all aspects of their behavior:
* Generating the control form via `WP_Widget::form()`
* Validating the instance data via `WP_Widget::update()`
* Rendering the widget into the template via `WP_Widget::widget()`
The dependence on PHP can make managing widgets in WordPress relatively slow. In the Customizer, it can be excruciatingly slow since the widget form control is presented alongside the widget in the preview, and so the slow roundtrip time for sanitization and rendering is clear (especially with full-page refreshes of the Customizer, which is to be mitigated in #27355 via partial refreshes).
In the Customizer, making a change to a widget form field results in an `update-widget` Ajax call to pass the full form data to WordPress to pass it through the widget’s `update` callback for sanitization. The Ajax handler then passes this updated instance through the `form` callback, and the HTML output of the `form` callback then gets sent back in the Ajax response. (Look at the number of Ajax requests triggered when typing into a widget field.) The Customizer widget logic then tries to apply the sanitized instance data by aligning the input fields in the widget form shown in the Customizer with the input fields sent in the Ajax response. When the input fields are aligned (when the same inputs are present), then the inputs’ values will be updated to their sanitized values and a `widget-synced` jQuery event is triggered. But if the inputs cannot be aligned (which can happen easily if any of the fields are created dynamically), then it falls back to showing an Update button which will do a full replacement of the widget form, just as is done on the widgets admin page (and a `widget-updated` jQuery event is triggered). Then finally, once the widget instance is updated, then the Customizer preview can do its full page refresh with the widget instance previewed in the template.
Most of the above logic can be eliminated entirely if widget controls handled rendering of the controls and sanitization of the instance data purely with JavaScript, just like every other Customizer control normally behaves.
Widgets would hugely benefit from a revamp following patterns laid down in Customizer controls. Customizer controls were designed to be JS-driven from the start. A Customizer control gets associated with a Customizer setting, the control then applies the setting data onto the control’s template and the inputs are automatically synced back to the setting—this is accomplished via two-way data bindings provided by `wp.customize.Element`. So controls in the Customizer handle UI validation purely with JavaScript. There is no need for an Ajax request because the logic is in the client. (True this means that the sanitization logic has to be duplicated in PHP and JS, but this can be minimized by adopting a common schema for the input types.)
Naturally these new JS-driven widgets would need to be backwards compatible with existing widgets. We can allow a widget to opt-in to indicate it is JS-driven by supplying a new flag to the seldom-used `$control_options` param to `WP_Widget::__construct()` (which is used to pass the infamous width/height for wide widget form controls), for example:
When this is present, the Customizer would disable the existing update mechanism and defer to the control’s own logic.
Note that these new JS-driven widget controls in the Customizer would be implemented in a very similar way to how nav menu item controls have been implemented in the Customizer in 4.3. The overall widget control would be associated with a single widget instance setting. The widget’s setting would be just the JSON-serializable instance array (object) as opposed to a scalar value, and each property in the setting value would then get mapped to a different `wp.customize.Element` in the widget control: the inputs’ values would then get synced back into property of the setting object value by means of `wp.customize.Element` instances.
Some widget controls would still depend on the server for UI validation, for instance the RSS widget. However, only specific fields would need to be validated as opposed to the entire form. Note again that full server-side validation of the widget instance data would still be required. Ideally the duplication of logic here could be reduced by having a schema that both the JS and PHP validation logic could read from.
While the above focuses specifically on making the `WP_Widget::form()` and `WP_Widget::update()` both JS-driven, there may also be an opportunity to allow widgets to opt-in to JS-driven rendering of a given widget (i.e. implementing `WP_Widget::widget()`, in JS). This would make a lot of sense if the widget defined its template in Mustache (or Twig) and then allowed the instance array to be applied to that template either server-side or client-side. The effect for client-side would be postMessage instant previews of changes to widgets in the Customizer. The PHP-driven performant alternative to this would be partial-refresh as outlined in #27355.
By using JS-driven widgets, we will be able to use control templates for the widget controls as opposed to having to include a separate copy of the widget form with each control's params. This can drastically reduce the page weight, since the control template only needs to be included once.
By implementing JS-driven widget controls, the user experience of managing widgets would be vastly improved and the server load would be greatly reduced.
Depends on #35574 (Add REST API JSON schema information to WP_Widget)
See feature plugin: https://github.com/xwp/wp-js-widgets" westonruter 18
38796 Customize media control button labels should automatically reflect the specified mime type westonruter Customize 4.7 normal normal 4.9 defect (bug) reviewing has-patch 2016-11-15T03:33:59Z 2017-06-19T15:19:59Z "[39234] updated the button labels for the header video control to reflect that it's used for videos, rather than media in general. However, this approach only fixes this one control instance, and is something that should be brought to all media controls.
For 4.7, we should add an inline note where [39234] is referencing this ticket and explaining that in the future all media controls will default to labeling the buttons based on the mime type (and as a reminder to remove those overrides). Then, this ticket can transition to a future release/4.8 enhancement for updating the default button labels to use the `mime_type` where possible, and fall back to the existing defaults with `media`. We'll need an array of known mime types mapped to the corresponding media type labels and should be able to substitute those into each of the default button label strings in the control constructor." celloexpressions 11
33085 Customizer: controls description inside labels are not real labels nor descriptions westonruter Customize 4.2 normal normal 4.9 defect (bug) reviewing 2015-07-22T22:45:01Z 2017-07-24T16:32:31Z "Splitting this out from #32493 (which changed its scope)
I'd propose to investigate about the Customizer controls descriptions. Currently, they're inside the label element. The result is they're not a proper form label, since labels should be short. Longer descriptions should be associated with form controls using `aria-describedby`.
As consequence for accessibility: as soon as a form control is focused, its label gets read out. In the following example from the new ""Site Icon"" functionality in 4.3, all the text highlighted in the blue box will be read out but the actual button text ""Select File"" won't. [http://www.w3.org/TR/html5/forms.html#category-label Buttons can have labels], that's correct HTML, but of course the label text will override the button text.
Not to mention all the label text is clickable and will activate the button when clicked.
[[Image(https://cldup.com/YrBf73CbMo.png)]]
Same for input fields, the control description used as label will be read out as... a label.
[[Image(https://cldup.com/cgetk_WbNT.png)]]
Related: #31540" afercia 29
31334 Customizer JS API should handle container removal from document westonruter Customize 4.1 normal normal Future Release enhancement assigned needs-unit-tests 2015-02-14T22:28:07Z 2017-03-21T18:22:10Z "When we do
`wp.customize.section.remove('my_section')`
or
`wp.customize.control.remove('my_control')`
The API should handle removing their container from document, too. The current process requires you to execute this before removing a section (or control):
`wp.customize.section('my_section').container.remove()`" Aniruddh 13
36582 Export main query from Customizer preview westonruter Customize normal normal Future Release enhancement assigned 2016-04-18T20:45:09Z 2016-09-26T18:10:10Z "Controls, sections, and panels in the Customizer support the concept of an active state (#27993) which controls whether or not the control is contextual to the current query. Controls may want more information than whether to hide/show, but to show contextual information based on which kind of query is loaded in the Customizer preview, such as if it `is_singular` or which post specifically was queried. This information should be exposed from the Customizer preview to the pane as well.
An initial implementation of this has been implemented in the Customize Posts feature plugin: https://github.com/xwp/wp-customize-posts
When the preview syncs the `WP_Query` data from the preview to the pane, the data should get sent along with the `ready` message along with the `activeControls`, `activeSections`, and `activePanels` data. When the data is received by the pane, it should get populated into a model which can have events attached to it. For example, a `wp.customize.Values` instance could be used as a collection to represent the query_vars. Or there could be one single `wp.customize.Value` that stores the exported `WP_Query` data in like `wp.customize.previewedQuery` which plugins could then listen to changes on. For example:
{{{#!js
wp.customize.previewedQuery.bind( function( newQuery, oldQuery ) {
if ( newQuery.is_singular !== oldQuery.is_singular ) {
if ( newQuery.is_singular ) {
// We switched to a singular template!
} else {
// We switched to a non-singular template!
}
}
} );
}}}
Some thought will need to be given to how a JavaScript object is used to represent `WP_Query`.
See Slack: https://wordpress.slack.com/archives/core-customize/p1461011732000103" westonruter 7
28570 Introduce pretty permalinks for Customizer westonruter Customize 3.4 normal normal Future Release enhancement assigned 2014-06-18T06:15:03Z 2017-02-14T19:12:14Z "In #28536, celloexpressions [https://core.trac.wordpress.org/ticket/28536#comment:3 suggests]:
> it would be nice if users could see the URL being previewed in a readable manner. And it would be cool if the url was more contextual to the page being customized. What about implementing support for http://example.com/sample-page/customize-like URLs, similar to what the front-end editor does?
Currently, when previewing a specific URL, this URL appears in the `url` query parameter and is URL-encoded—making it unreadable. While a `customize` rewrite endpoint is one approach, for example:
{{{
/2014/04/01/hello-world/customize/
}}}
This could potentially introduce conflicts with existing rewrite rules. Another approach would be to introduce a new rewrite base, for example:
{{{
/wp-customize/2014/04/01/hello-world/
}}}
Special care will be needed when the domain of the admin is different than the domain for the site appearing in the preview.
Note that any `return` or `theme` query parameters would need to remain attached to the above URL:
{{{
/wp-customize/?return=http%3A%2F%2Fexample.com%2Fwp-admin%2F
}}}
See also #25457" westonruter 14
37269 Introduce removed event for wp.customize.Values collection westonruter Customize 3.4 normal normal Future Release enhancement reviewing commit 2016-07-04T16:46:05Z 2016-11-05T14:55:09Z "Notifications were added to Customizer controls in #34893. Notifications are re-rendered when the `control.notifications` collection (a `wp.customize.Values`) has a `wp.customize.Notification` added or removed with the code as follows (via `wp.customize.Control#initialize`):
{{{#!js
// After the control is embedded on the page, invoke the ""ready"" method.
control.deferred.embedded.done( function () {
/*
* Note that this debounced/deferred rendering is needed for two reasons:
* 1) The 'remove' event is triggered just _before_ the notification is actually removed.
* 2) Improve performance when adding/removing multiple notifications at a time.
*/
var debouncedRenderNotifications = _.debounce( function renderNotifications() {
control.renderNotifications();
} );
control.notifications.bind( 'add', function( notification ) {
wp.a11y.speak( notification.message, 'assertive' );
debouncedRenderNotifications();
} );
control.notifications.bind( 'remove', debouncedRenderNotifications );
control.renderNotifications();
control.ready();
});
}}}
Notice the multi-line comment. We can't re-render the notifications at a `remove` event because this event gets triggered just ''before'' it is removed, somewhat unexpectedly. We should therefore introduce a `removed` event that gets triggered ''after'' the removal so that workarounds using `debounce` or `defer` aren't required.
Submitted patch should include unit test." westonruter 7
32816 No or inadequate Custom Link URL validation westonruter Customize 4.3 normal normal 4.9 enhancement assigned has-patch 2015-06-28T14:09:19Z 2017-06-27T13:47:44Z "When you add a Custom Link through the Menu Customizer, an invalid URL (non existing protocol for instance) is allowed, but stripped on the front page (by {{{esc_url_raw}}}?). An example of such an invalid URL protocol is: hhttps://myurl.com or http://;.
I would expect some some input validation and alert on error. The Menu location doesn't matter (Primary or Social Links). Please see attached images." JanR 21
41596 New Text Widget recognizes HTML but does not render it in the front end westonruter Widgets 4.8 normal normal 4.8.2 defect (bug) reopened commit 2017-08-09T17:08:49Z 2017-08-17T23:39:29Z "If you paste HTML code into the visual tab on the new text widget and press ""save"" it will automatically recognize it and render it properly inside the widget (including any inline CSS styles). The error comes when you go to the front end, where it will show the original HTML code instead of interpreting it.
Here is a short video showing the error:
https://youtu.be/KsCYbX5LSzM
I first noticed this happening on wp.com (that´s where I made the video) but I was able to reproduce later it on a clean 4.8.1 installation (no plugins and using TwentySeventeen)" mrfoxtalbot 12
41622 Text widget can show DOMDocument::loadHTML() warnings in admin when is_legacy_widget method is called westonruter Widgets 4.8.1 normal normal 4.8.2 defect (bug) reopened commit 2017-08-12T23:19:15Z 2017-08-14T05:59:22Z "Have a number of sites that use html in widgets, so waited to upgrade from 4.7.5 to 4.8.1 - a few of the sites would not load /wp-admin/widgets.php after upgrading
error occurred in the function that evaluates whether this widget should use legacy text mode or the visual editor.
errors like:
PHP Warning: DOMDocument::loadHTML(): Tag footer invalid in Entity, line: 3 in ---\wp-includes\widgets\class-wp-widget-text.php on line 121
PHP Warning: DOMDocument::loadHTML(): Tag lorem invalid in Entity, line: 3 in --- \wp-includes\widgets\class-wp-widget-text.php on line 121
PHP Warning: DOMDocument::loadHTML(): Unexpected end tag : div in Entity, line: 6 in --- \wp-includes\widgets\class-wp-widget-text.php on line 121
I temporarily changed the function is_legacy_instance( $instance ) in that file to always return true. The widget page opens with all widgets in legacy more; I found some test widgets (haven't updated any production sites yet) that had html5 elements (), text that looks something like tags (some text).
Updating these widgets to remove/fix these items and replacing the original file, everything works fine.
I've also found instances where client added html that was not clean, but worked as old text widget. In 4.8.1 parts of that code and the text in the tag (tag that doesn't have end tag for example) disappear in the visual editor and the text view in the new widget. reverting the site back to 4.7.5 shows that the original values are still in the database.
" codezen8 10
39909 Make title behaviours consistent across all widgets on first load westonruter Widgets 2.8 normal normal Future Release enhancement reopened dev-feedback 2017-02-17T19:17:20Z 2017-05-19T20:45:48Z "On first load the word 'Archives' outputs as the Widget title but it doesn't appear in the input field. If there is a default text, perhaps it should show. This could also assist by users making the connection with the words and where they can edit.
For example:
[[Image(https://cldup.com/EK1v0wxGX1.png, 50%)]]
Another example, the Calendar widget has no title and compared to the examples above this feels weird. What I think should happen is that the same title behaviour occurs for all widgets when you first load them." karmatosed 31
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 2015-12-03T20:03:42Z "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 20
33371 Undefined Indexes for Movable Type and TypePad Importer. westi* Import normal normal Awaiting Review defect (bug) accepted reporter-feedback 2015-08-14T08:25:25Z 2016-01-24T22:34:42Z "Display notice in ""Assign Authors"" ( WP_DEBUG = true ) .
{{{
Notice: Undefined index: upload_type in movabletype-importer/movabletype-importer.php on line 233
Notice: Undefined index: id in movabletype-importer/movabletype-importer.php on line 248
}}}" mt8.biz 1
7543 Import TypePad data using AtomPub. westi* Import normal normal WordPress.org enhancement accepted needs-review 2008-08-19T02:44:26Z 2015-12-03T15:36:00Z "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 5
11465 custom field duplicated westi* Options, Meta APIs 2.8.4 normal minor Future Release defect (bug) accepted has-patch 2009-12-16T21:09:23Z 2016-01-08T20:01:33Z "When I enter the information for a custom field and click on Preview without first clicking Add Custom Field, the custom field is saved. But then when I click Publish, it is saved again, appearing in the post twice.
If I click Add Custom Field before Preview, subsequent Publish does not duplicate the custom field. But it is very convenient and efficient to be able to avoid a separate save of the custom field.
" ericr23 9
11903 insert_with_markers is not threadsafe westi* Permalinks 2.9 normal major Future Release defect (bug) accepted has-patch 2010-01-15T06:27:45Z 2015-11-01T16:57:13Z "From wp-admin/includes/misc.php the function insert_with_markers may be called multiple times on a busy server and if the htaccess is already in the process of being written it is possible that two PHP threads could attempt to write to it causing corruption such as the following:
{{{
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
s
}}}
Notice the dangling 's' at the last line" strings28 18
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 2015-09-23T23:41:49Z "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 44
17541 Blogger-XMLPRC API does not work with Multisite/SSL/DMZ combination westi* XML-RPC 3.2 normal major Future Release defect (bug) accepted has-patch 2011-05-23T07:26:29Z 2016-10-07T16:26:40Z "I have the following setup:
My WordPress Blogs (multisite) are set up behind a firewall that exposes the public address via SSL. Inside my DMZ I'm only using HTTP, so that's what WordPress sees. When I now try to access the blogger.getUsersBlogs XMLPRC-API, I get an empty result back.
I analyzed the WordPress source code and found out that the blogger.getUsersBlogs method in the file wp-includes\class-wp-xmlrpc-server.php uses another XMLRPC call to the wp.getUsersBlogs method in case of the multisite. I further checked and found out that this appears to be the only case in which WordPress executes a remote call itself to sevice the request. I then replaced the logic in _multisite_getUsersBlogs with the multisite part from wp_getUsersBlogs and it worked.
I aso found an issue that might be related: http://core.trac.wordpress.org/ticket/16402
But since the source code in the trunk still uses the regular IXR_Client, I'm not sure if this would fix the issue.
I attached my fix as a patch, but it's not refactored to remove code duplication since I don't have a dev-environment set up for WordPress.
Michael" michael_k 6
19487 Remove useless calls to set_time_limit() westi Bootstrap/Load 1.5 normal normal Awaiting Review defect (bug) new has-patch 2011-12-09T14:53:08Z 2015-10-03T22:01:38Z "Calls to set_time_limit() were introduced in http://core.trac.wordpress.org/changeset/1812 and have remained in core ever since. The call occurs in code that makes network connections and is designed to allow time for the network calls to complete before the script execution stops.
But set_time_limit() won't take network time into account, so it actually will not do what it seems designed to do. From php docs:
The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running.
Further, calls to set_time_limit() can cause unexpected results in code that relies on any functions that call set_time_limit(). For example, if some code (in a cron job, say) sets the time limit to 0 (unlimited) because it knows it needs some time complete, then a subsequent call to a function that resets the time limit will halt the long-running execution once the new limit has been reached. Also from php docs:
When called, set_time_limit() restarts the timeout counter from zero. In other words, if the timeout is the default 30 seconds, and 25 seconds into script execution a call such as set_time_limit(20) is made, the script will run for a total of 45 seconds before timing out.
Since the call to set_time_limit() does not here do anything useful, it should be removed." dllh 3
13473 comment_status should be set to default_comment_status when commentstatusdiv is removed westi Comments normal normal Future Release defect (bug) reopened 2010-05-20T23:36:24Z 2016-05-26T23:45:58Z "When the Comment Status box is removed from the Add/Edit Post screens, posts should be created with the comment_status set to the value of the default_comment_status option.
-----
I had hidden the Comment Status box via:
remove_meta_box('commentstatusdiv','post','normal');
and made sure that default_comment_status was set to open:
update_option('default_comment_status', 'open');
After adding a new post it displayed ""Comments Off"" when I was assuming that it should have honored the value of default_comment_status." jimmcq 12
13158 Cron : some events may not be scheduled westi Cron API 3.0 normal normal Future Release defect (bug) new 2010-04-27T23:29:46Z 2017-06-23T07:36:55Z "the problem appears when two different events are scheduled at the same time
what happens in code is :
1st event : _get_cron_array();
2nd event : _get_cron_array();
1st event : _set_cron_array( $crons );
2nd event : _set_cron_array( $crons );
1st event is lost." arena 12
11831 Warning when wp-cron fails westi Cron API 3.0 normal normal Awaiting Review defect (bug) reopened 2010-01-09T00:59:05Z 2015-10-04T02:43:35Z "Running 3.0 alpha I sometimes get this warning just at the top of admin pages:
{{{
Warning: fopen(http://localhost/wp/wp-cron.php?doing_wp_cron) [function.fopen]: failed to open stream: HTTP request failed! in /home/cristi/svn/wp/wp-includes/http.php on line 1009
}}}
I didn't notice it in WP < 2.9. Perhaps it should be suppressed?" scribu 26
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 2015-12-03T19:42:41Z "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 6
20903 Exporter gets stuck in a loop a loop/break in the category hierarchy westi Export 3.1 normal normal Future Release defect (bug) new has-patch 2012-06-11T11:26:07Z 2015-09-02T00:56:08Z "Ideally it should be impossible for a loop/incorrect parentage in a category hierarchy to exist.
But sometimes they do.
If one does exist then {{{export_wp()}}} gets stuck :(
It gets stuck in this code:
{{{
// put categories in order with no child going before its parent
while ( $cat = array_shift( $categories ) ) {
if ( $cat->parent == 0 || isset( $cats[$cat->parent] ) )
$cats[$cat->term_id] = $cat;
else
$categories[] = $cat;
}
}}}
Similar to #20635 but different." westi 3
9930 is_serialized() returns false on serialized doubles westi General normal minor Future Release defect (bug) reopened needs-unit-tests 2009-05-24T17:23:43Z 2015-10-30T20:16:15Z "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 29
15760 "LiveJournal Importer mishandles some and expressions" westi Import normal normal WordPress.org defect (bug) assigned dev-feedback 2010-12-10T04:45:17Z 2017-05-23T15:16:47Z "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 2
15706 Allow wildcarded domains in multisite limited email domains westi Login and Registration normal normal Future Release enhancement reviewing 2010-12-06T18:59:24Z 2015-10-13T03:25:48Z "Here at blogs.law.harvard.edu, we want to allow all harvard.edu subdomains to create blogs in our multisite install. There are hundreds of domains and it would be difficult to get a complete list because of the complexity of our DNS infrastructure.
I propose allowing the inclusion of a single prefix wildcard character in the limited email domains feature. If a limited email domain contains a ""*"", we would create a regex and match that specific entry via a wildcard. So ""*.harvard.edu"" would match ""cyber.law.harvard.edu"", ""fas.harvard.edu"", etc. To match the root TLD, you'd just manually enter ""harvard.edu"".
We have a variant of this applied as a core hack to our wordpress install at http://blogs.law.harvard.edu and it's been working fine for years. I will package it up as a patch if there's interest. Thoughts?
I don't think it'd make sense to allow embedded wildcards (dom*ain.org)." djcp 34
18493 HTML emails westi Mail 3.2 normal normal Future Release enhancement reviewing needs-refresh 2011-08-22T00:29:44Z 2017-01-24T08:52:12Z "Wojtek worked on the Enhanced E-Mails project for GSoC this summer. It's definitely something that would be nice to have in core. The plugin already exists in the repository - [http://wordpress.org/extend/plugins/enhanced-emails/ Enhanced Emails]. There are still some things that need to be cleaned up in the code, but it works pretty well.
I'm hoping we can clean it up, test it, and get it in core. " aaroncampbell 26
17450 Almost pretty permalinks with non-ASCII characters do not work in Apache westi Permalinks 3.1 normal normal Future Release defect (bug) reopened needs-unit-tests 2011-05-16T05:53:14Z 2015-05-12T05:15:56Z Almost pretty permalinks (using PATH_INFO) with non-ASCII characters do not work in Apache; a not found error is returned. The same permalink works in IIS when UTF-8 is used for server variables. It also works when mod_rewrite is used. peaceablewhale 10
10249 Page slug in cyrillic = Error 404 - Not Found! westi Permalinks 2.7 normal normal Future Release defect (bug) reopened needs-unit-tests 2009-06-23T19:44:34Z 2016-03-31T16:09:29Z "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 58
10384 Make IIS Permalink support enabled based on capability not on version number westi Permalinks 2.8 normal normal Future Release enhancement new needs-refresh 2009-07-11T08:37:44Z 2015-12-03T15:38:47Z "At the moment we enable the IIS permalink support based on checks for IIS7 and then some capabilities.
We should remove the version checking and work solely on capabilities so that we don't have to revisit when IIS8 is released." westi 10
13266 Admin page hooks change when plugin is translated (tied to $menu_title) westi Plugins 3.0 normal normal Future Release defect (bug) new 2010-05-05T21:07:11Z 2015-10-03T20:42:22Z "WP3 is using the title of the parent menu item in a menu block to fire the load-hooks for the lesser menu items? Lost me? Ok an example -
Plugin Membership has this menu structure (simplified)
Membership – main heading
Membership – Top inner
Edit Member – inner
Edit Levels – inner
Edit Subs – inner
etc…
The page load hooks for the non-translated plugin are as follows:
Membership – load-toplevel_page_membership
Membership – load-toplevel_page_membership
Edit Member – load-membership_page_members
Edit Levels – load-membership_page_membershiplevels
Edit Subs – load-membership_page_membershipsubs
etc…
Now, if I use a language translation on the plugin, which for the sake of clarity here, translates the word Membership to Aaargh the page load hooks become.
Membership – load-toplevel_page_membership
Membership – load-toplevel_page_membership
Edit Member – load-aaargh_page_members
Edit Levels – load-aaargh_page_membershiplevels
Edit Subs – load-aaargh_page_membershipsubs
etc…
Thus any actions you are running on the inner pages aren’t called." uglyrobot 4
11282 Bizarre Behavior When wp-content Missing westi Themes 2.8.4 normal normal Awaiting Review defect (bug) reopened has-patch 2009-11-29T02:19:13Z 2015-10-03T20:46:04Z "Steps to reproduce:
1. Begin and complete a normal installation, but skip or remove the wp-content directory.
2. Try to view the Dashboard and the Visit Site link.
Expected Result: WP did not install, wp-content is missing.
Actual Result: Dashboard is visible, site's front page is not. In /wp-admin/error_log
PHP Warning: array_keys() [function.array-keys]: The first argument should be an array in /wp-includes/theme.php on line 481" miqrogroove 28
15627 wp_insert_user should not assume a default role westi Users 3.1 normal normal Future Release defect (bug) reopened close 2010-12-01T16:33:13Z 2015-12-12T22:10:07Z In a MS install, creating new users can add them to the main blog with the default role, resulting in hundreds, thousands, millions of users on that blog. Instead of assuming the default role, a role should be supplied by the calling function if one should be set. nickmomrik 10
10457 Parse shortcodes in text widgets by default westi Widgets 2.8 normal normal Future Release enhancement reopened 2009-07-21T11:27:06Z 2017-06-07T00:34:36Z Currently, shortcodes are only parsed within post content. It would, to my mind, be a nice enhancement to allow them to be parsed from within text widgets as well. The implementation is trivial, so the only real question is what problems this might throw up. ionfish 49
37893 Implementation of is_registered_sidebar() doesn't match its documented signature welcher Widgets 4.4 normal normal Awaiting Review defect (bug) assigned 2016-08-31T11:26:35Z 2017-05-23T11:29:37Z "Function `is_registered_sidebar()` was added in release 4.4 but the documentation for its function signature was changed after the initial commit and now no longer matches the implementation (see #24878).
The implementation of the function requires the string kind of sidebar ""id"" and will not accept a numeric ""id"" which would first need converting to a string of the form ""sidebar-$id"".
The simplest fix would be to just change the documentation, but if this function is considered useful for themes/plugins (as I suspect it is), additional code would be needed to convert a numeric parameter appropriately (see the beginning of existing function `is_active_sidebar()` for example).
If this code change is applied, then for consistency a similar change should probably be made to function `unregister_sidebar()` which also only accepts a string sidebar ""id"" and confusingly refers to it as the ""name"" (this more properly refers to the displayable name/title for the sidebar).
Suggested patch incoming, although in the patch I didn't rename the parameter to `unregister_sidebar()` as I'm not sure whether there are any backwards-compability issue with that." mdgl 15
38079 Add hooks before output for each action in wp-login.php voldemortensen Login and Registration 4.7 normal normal 4.9 enhancement assigned dev-feedback 2016-09-17T19:13:19Z 2017-07-17T15:53:28Z "7 years ago, in #9682, `wp-login.php` was made more pluggable. The thing is, if you just want to change the look (as my plugin ""Theme My Login"" does), you also have to replicate the logic.
Having an action that fires just before the `login_header()` call in each case of the action handler switch should be sufficient. One such hook is already present for one action: `lost_password`.
However, the hook `register` is already in use for the register link as is the format `{$action}_form`. So, I propose using `pre_{$action}_form`.
Patch incoming." jfarthing84 8
28352 New filters in wp-activate.php voldemortensen Login and Registration 3.0 normal normal Future Release enhancement assigned has-patch 2014-05-25T08:54:00Z 2016-06-26T15:19:47Z "Added two new filters to filter content being displayed on activation confirmation or error.
`signup_activation_success` and `signup_activation_error`, it allows to change the default activation message being displayed" UmeshSingla 9
37522 reset password and lost password form functions voldemortensen Login and Registration 4.5.3 normal normal 4.9 feature request assigned has-patch 2016-07-30T09:07:07Z 2017-06-05T15:45:49Z "Wordpress provides the {{{wp_login_form}}} function that can be placed anywhere on our wordpress site through shortcodes, etc. But I couldn't find a function for the ''reset password'' and ''lost password'' form.
Would it be possible to create those functions as part of Wordpress itself?
I'd like to avoid copying code from the wp core files (wp-login) into my own code. I prefer to use Wordpress built-in functions as much as possible.
" mireillesan 8
11946 Ensure image MIME type matches extension Viper007Bond Upload 3.0 normal minor Future Release defect (bug) reopened has-patch 2010-01-19T08:02:17Z 2017-01-11T16:35:21Z "Take a bitmap (BMP) and rename it to `.png`. WordPress will say it's an `image/png` everywhere you look. This can cause issues if you're trying to manipulate it (thumbnail it, etc.).
We should either fix the extension or reject it." Viper007Bond 30
32728 Customizer Menus: Accessibility: reordering menu items should have some indication about the item level valendesigns Customize 4.3 normal normal Future Release enhancement assigned 2015-06-19T19:23:39Z 2016-12-12T17:26:17Z "/hat tip @afercia for the original report at https://github.com/voldemortensen/menu-customizer/issues/105
> Splitting this out from the users test post on Make WordPress Accessible:
> https://make.wordpress.org/accessibility/2015/06/12/accessibility-usertest-menu-customizer/
>
> When reordering menu items, there should be an audible indication of their level.
>
> NVDA
> When reordering menu items, NVDA announces “menu is now a submenu item” or “menu item moved out of submenu”, which is useful, However, when reviewing the list while reordering, there is no indication at what level any given menu item is currently set to.
>
> Supernova
> When using the reorder feature, there is no screen reader feedback to indicate the menus level, perhaps a level indicator can be added after the page title that says something like “top”, “level 1″, “level 2″, etc to show how far down the tree each menu item is. As this is only really to benefit screen reader users, it could be visually hidden using the CSS clip method." designsimply 10
32768 Customizer Widgets and Themes search improvements valendesigns Customize 4.2 normal normal Future Release enhancement assigned early 2015-06-23T18:06:29Z 2016-12-12T17:29:21Z "Widgets and Themes search would need the same improvements done for the Menu Customizer.
Widgets:
- activating ""Add a Widget"" with the Space bar doesn't prevent the default action, as a result the search field gets a space character and the placeholder text is gone. See https://github.com/voldemortensen/menu-customizer/issues/107
Both:
- the search results (or no results) should be announced to assistive technologies, possible use case for wp.a11y.speak see #32720
- a short description of the ""live"" search functionality could help, see the Menu items search in core, i.e.: aria-describedby=""menu-items-search-desc""" afercia 4
12254 Move show_message() into WP_Error class and add support for various WP_Error features that are missing valendesigns General normal normal Future Release enhancement assigned 2010-02-16T19:31:05Z 2015-09-18T19:28:27Z "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 10
15384 wp-login.php refactor valendesigns Login and Registration normal normal Awaiting Review enhancement assigned needs-unit-tests 2010-11-11T12:40:35Z 2016-09-17T19:50:18Z "wp-login.php needs some serious work. When looking to do some improvements in #5919, I realized I literally needed a goto in order to achieve the goals outlined in this comment:
http://core.trac.wordpress.org/ticket/5919#comment:39
I am thinking a WP_Login class with some methods that can handle various different forms, POST handling, and rerouting." nacin 25
36259 Switching language should update date and time formats vagios I18N normal normal Future Release defect (bug) assigned has-patch 2016-03-16T07:43:07Z 2017-06-26T17:56:50Z "Previously: #11226
1. Install WordPress in English.
2. Switch language to Russian.
3. Date and time formats in General Settings are still `F j, Y` and `g:i a`, which doesn't make sense for Russian and doesn't match the locale defaults (`d.m.Y` and `H:i`, respectively)." SergeyBiryukov 7
40428 Introduce best practices to hide CSS generated content from assistive technologies trishasalas Administration normal normal Future Release defect (bug) assigned 2017-04-12T18:43:44Z 2017-05-11T22:47:00Z "This ticket is part of [https://core.trac.wordpress.org/query?keywords=~a11y-task the a11y-task series], which aims to start discussion and research on broad accessibility issues that probably can't be solved so soon. In the accessibility team, we've discussed a few times these topics and decided as first step to try to make everyone aware of them. This could help in trying to improve future implementations and avoid to introduce new issues.
As the CSS 3 spec states, in the near future [https://www.w3.org/TR/css-content-3/#accessibility CSS generated content will be treated as actual content] (Safari and VoiceOver already does that).
Specifically for assistive technologies:
> Generated content should be searchable, selectable, and available to assistive technologies. The content property applies to speech and generated content '''must''' be rendered for speech output.
Some interesting data about browsers and screen readers support (i.e. which ones announce CSS generated content) here: http://tink.uk/accessibility-support-for-css-generated-content/. Please consider these data are from March 2015, so they're probably a bit outdated.
'''What this means in practice'''
In the best case, screen readers will try to read the generated content as a character, and if there's no character that matches, they may announce `You are currently on a text element`. See #37513 for a specific use case.
[[Image(https://cldup.com/xOaq2xSczn.png)]]
In the worst case, when the generated content maps to an actual recognisable character, screen readers will just announce the character. A couple simple examples:
`content: ""\00d7"";` gets read out as ""times""
`content: ""\25BA"";` gets read out as ""black right pointing pointer""
Maybe in the future it will be possible to use a CSS-only solution, see:
Alternative Text for Speech
https://www.w3.org/TR/css-content-3/#alt
which will (hopefully) introduce the ability to specify alternative text for the CSS generated content property, after a slash:
`content: ""\25BA"" / """";`
There's no browser support so far.
'''A possible solution'''
When CSS generated content is ''not'' intended to be available for speech output, then it should always be wrapped by an element (for example a ``) with an `aria-hidden=""true""` attribute. At the moment, this is the only reliable way to hide CSS generated to assistive technologies.
Of course, trying to apply this solution to all the CSS generated content currently used in core would be a huge task. There may be better solutions, worth researching a bit. Worth also considering there's an ongoing effort to replace the CSS font icons currently used in core with SVG icons. That could help mitigating the issue, but it will still stand for any other non-icons generated content.
Any thoughts and feedback welcome!
" afercia 6
10303 Provide better user feedback when content is changed by filters. tott* Formatting normal normal Future Release enhancement accepted needs-refresh 2009-06-30T10:37:01Z 2015-05-08T08:31:34Z "When filtering content via kses, adjusting bad nested xhtml or similar no feedback is given to the user. The content is just stripped and the user is not informed about the changes made and why they happened.
Presenting a diff in the admin message should increase the UX. " tott 5
7813 export function does not preserve encoding tott Export 2.7 normal minor Future Release defect (bug) new has-patch 2008-09-30T20:07:25Z 2015-12-03T18:31:59Z "when exporting strings are always converted to utf-8 while header and encoding is set to encoding used in blog.
this causes trouble when importing later." tott 2
37430 Add Plugins: Improve the error messages displaying tinkerbelly Plugins 4.0 normal normal 4.9 enhancement assigned dev-feedback 2016-07-21T07:49:02Z 2017-07-09T22:30:34Z "Minor visual improvements: in the Add Plugins screen, some error messages could use some love. For example, some messages can be very long: setting a max-width and increasing a bit the line-height could help. Also, on the responsive view, maybe the messages should not be displayed in the middle of the page but moved to the top.
[[Image(https://cldup.com/y_aJ3wOFF6.png)]]
For comparison, this is how the same message gets displayed in the Themes screens, so maybe worth considering also introducing a bit of consistency:
[[Image(https://cldup.com/ZaBx-VyufE.png)]]" afercia 11
12945 Constrain wp_page_menu() technosailor* Menus normal normal Future Release defect (bug) accepted dev-feedback 2010-04-09T19:39:51Z 2015-09-01T23:54:14Z "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 5
8994 Incorporate MediaRSS Plugin into core technosailor Feeds normal normal Future Release feature request new dev-feedback 2009-01-29T18:00:20Z 2017-02-01T23:59:58Z Per conversation on the hackers list, this ticket is a working area for incorporation of the MediaRSS plugin (http://wordpress.org/extend/plugins/mrss) into core for WP 2.8. technosailor 15
18801 Accessibility Enhancements to Settings API taupecat* Options, Meta APIs 3.2.1 high normal Future Release enhancement accepted has-patch 2011-09-28T14:59:44Z 2017-07-24T16:56:48Z "I've only started working with the Settings API, but right off the bat I noticed two fairly major, but should be not too difficult to fix, accessibility issues.
1) The label/input field pairs are missing the HTML tags that link the two.
Example: Field One
Should be rendered: Field One
2) The settings pages themselves are laid out using a table. Tables should be reserved for tabular data, and not for page layout. CSS should be used for layout instead.
Thanks for your attention." taupecat 20
38017 Add widget instance to remaining widget argument filters Takahashi_Fumiki Widgets normal normal 4.9 enhancement assigned has-patch 2016-09-10T13:38:28Z 2017-06-08T22:43:53Z "In #20788 and #33944, the `$instance` argument was added to these filters:
* `widget_nav_menu_args`
* `widget_links_args`
For consistency, other widget argument filters should have it too:
* `widget_archives_dropdown_args`
* `widget_archives_args`
* `widget_categories_dropdown_args`
* `widget_categories_args`
* `widget_pages_args`
* `widget_comments_args`
* `widget_posts_args`
* `widget_tag_cloud_args`" SergeyBiryukov 6
33717 Send Notification Email When a Comment is Approved From Moderation swissspidy Comments normal normal Future Release feature request assigned has-patch 2015-09-04T00:43:09Z 2016-08-21T19:45:22Z Currently in WordPress, commenters have no idea their comment is approved unless they visit the page often. When a comment is held for moderation, WordPress should send the commenter an email notification when their comment is approved. I'm using the [http://wptavern.com/an-easy-way-to-notify-users-when-their-comment-is-approved Comment Approved] plugin to add this functionality to WordPress but I really think it should be a core feature. jeffr0 46
21072 CRON often returns ambiguous values swissspidy Cron API normal normal Future Release enhancement reviewing has-patch 2012-06-26T02:18:27Z 2017-02-05T20:18:23Z "Many of the cron API functions return ambiguous values. For example, `wp_cron()` [http://core.trac.wordpress.org/browser/tags/3.4/wp-includes/cron.php#L251 returns] `null` (explicitly) when cron doesn't run, but it also returns `null` (implicitly) every other time. This can make debugging harder.
Whenever possible, I think it's valuable to return meaningful values. The attached patch does that." evansolomon 3
16478 """Get Shortlink"" button disappears if you edit the permalink" swissspidy Editor 3.0 normal normal Future Release defect (bug) reviewing has-patch 2011-02-07T08:44:02Z 2017-02-05T18:29:26Z "Go to edit a post and change the permalink. The ""Get Shortlink"" button is overwritten by the AJAX response. I think it's a simple case of moving where the shortlink is added, see patch." solarissmoke 11
34335 URL shorteners ( redirects) should to be supported by the embed handling for couple of hops swissspidy Embeds 2.9 normal normal Awaiting Review defect (bug) reviewing 2015-10-16T22:35:15Z 2016-09-24T16:21:50Z "It should be possible to use URL shorteners ( redirects) to load embeds.
I have been testing the new embeds feature and have found that a Bit.ly link doesn't work, but the resolved link does
I believe we should support at least one hop if not two
" pbearne 10
40673 WP Oembed in Multisite fails when embedded post comes from a different site of a network. swissspidy Embeds 4.5.3 normal normal 4.9 defect (bug) reviewing has-patch 2017-05-05T02:27:02Z 2017-08-07T17:32:01Z "Steps to reproduce:
1/ Create a post in main site.
2/ Create a new site
3/ Go the dashboard of this site
4/ Create a new post and paste in it the permalink of the post created at step 1.
This happens when the post we're trying to embed comes from a different site. I've added some unit tests to illustrate the issue. Without the patch, these two unit tests are failing:
- test_wp_filter_pre_oembed_result_multisite_sub_othersub
- test_wp_filter_pre_oembed_result_multisite_sub_main" imath 2
39373 url_to_postid() returning post ID for external URL swissspidy Embeds 4.5.3 normal normal 4.9 defect (bug) assigned dev-feedback 2016-12-22T17:07:14Z 2017-08-04T16:05:13Z "One our site has a post that has a SoundCloud embed in it. The WP embed is embedding the post instead of the SoundCloud content. See bug#37359 as another person reported but flagged the wrong function.
Unfortunately I dont have a fix. This is what I see, the post (https://bedrosian.usc.edu/podcast/drown/) embed eventually makes this call:
url_to_postid ('https://soundcloud.com/uscbedrosian/drown')
This is obviously (to human eyes) an external url but url_to_postid() returns the postid of the post itself. This site uses rewrites, I see url_to_postid() make this database call:
SELECT wp_334_posts.* FROM wp_334_posts WHERE 1=1 AND wp_334_posts.post_name = 'drown' AND wp_334_posts.post_type = 'post' ORDER BY wp_334_posts.post_date DESC "" [""posts""]
Due to rewrites, all it has to match is 'drown' to be flagged as an internal url... and returns the original post. Happens to all SoundCloud embeds on the same site." jkhongusc 8
38181 Add oEmbed support for Amazon Kindle Instant Previews swissspidy Embeds 4.7 normal normal 4.9 enhancement assigned has-patch 2016-09-28T16:43:05Z 2017-07-14T10:51:47Z "[https://www.amazon.com/b?ie=UTF8&node=13489836011 Kindle Instant Previews] is a service that allows authors, media outlets and bloggers to embed a fully functional preview of a Kindle book into their site.
On September 10th, we launched our oEmbed endpoint. This patch allows Wordpress users to embed book previews from existing Kindle Instant Previews URLs as well as amazon.com URLs." jsepia 37
34115 oEmbed not working on author page without posts swissspidy Embeds 2.9 normal normal 4.9 enhancement assigned has-patch 2015-10-01T14:25:49Z 2017-07-14T17:40:52Z "Hi All.
We're working on a project for a client at the moment. It's a content publishing platform. They have multiple authors. all with their own detail page. At the profile edit page, they can fill their biography, they can also insert a youtube link.
At the front-end, we disply the biography as:
{{{
}}}
The strange thing is, that when they have authored one post, the oEmbed class does the job perfectly, but, when they don't have authored any post, the oEmbed doesn't work.
I've looked inside the core and that led to the file ""wp-includes/class-wp-embed.php|"" at line 181. It checks if there's a post, when not, it's not embedding.
When i delete this line, it works for authors without and with posts." dannydehaan 28
36934 Use of get_the_excerpt($post) is broken if post has no excerpt and you are inside a loop swissspidy Formatting 4.5 normal normal 4.9 defect (bug) reviewing dev-feedback 2016-05-24T16:00:12Z 2017-07-28T18:26:55Z "In changeset [36319] (and [36321]), a `$post` parameter was added to `get_the_excerpt()` in `post-template.php`. I was really excited when I discovered this but:
a) It's behaviour is inconsistent
b) It doesn't quite do what I'd hoped
c) It's broken in some circumstances
There are a few things wrong:
1) The behaviour is inconsistent depending on usage.
If you call `get_the_excerpt()` within the loop and if the post has no excerpt, then the post content will be stripped and truncated.
If you call it with the `$post` parameter and the post has no excerpt then nothing is returned.
Well...sometimes...
2) If you are inside a loop - say you're using `get_the_excerpt($post)` in a shortcode in a post - then you will actually get back the truncated content of the post from the loop that you are in.
This is because `wp_trim_excerpt( $text )` does `get_the_content('')` if `$text` is empty.
I think that the fix for this is to add an optional `$post` parameter to `wp_trim_excerpt()` and process it accordingly.
We'll also need to update `default-filters.php` to pass the extra parameter on the `get_the_excerpt` filter hook.
This change has the added benefit that `get_the_excerpt($post)` works consistently, fetching and trimming the post content if the post has no defined excerpt. Hooray!! (Been wanting this for YEARS!)
I'm working on a patch. It would be good to write a test for this too but I have no idea how. Happy to take feedback." magicroundabout 38
31387 New core API for adding Meta tags to the header swissspidy General normal normal Awaiting Review enhancement assigned dev-feedback 2015-02-19T19:08:23Z 2017-02-06T09:07:52Z "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 8
20491 Introduce some JavaScript i18n functions swissspidy I18N normal normal Future Release enhancement assigned has-patch 2012-04-19T18:50:24Z 2017-06-05T18:32:59Z "There's JavaScript code dotted around core that handles i18n in JavaScript (for example, localised thousands separators in the pending comment count). We should bring this together into a wpL10n JavaScript library that can be reused by plugins.
I've done some work on this and I'll get a patch up in the next day or so." johnbillion 62
35069 Allow short-circuiting wp_mail swissspidy Mail low normal 4.9 enhancement assigned has-patch 2015-12-14T08:41:45Z 2017-07-12T03:43:50Z "Much like `schedule_event` and several other functions in the WP codebase, it would be cool if `wp_mail` could be short circuited by returning a `falsey` value as the return value of the `wp_mail` filter.
The function is already pluggable right now, but I think this would make for a neat addition to the default function as this will allow plugins to perform things as queueing emails to be processed in the background (as sending email tends to be slow).
It will also allow for easier disabling of all emails in local / staging / development environments.
" DvanKooten 22
29872 Permalink Structure Tags buttons swissspidy Permalinks normal normal 4.9 feature request reopened has-patch 2014-10-06T14:37:34Z 2017-08-02T17:16:20Z "I think it would be interesting, in the customization of permalinks screen, display a box with all the available structures, where the user could drag and drop them.
With that, he would not need to open a new page, view the documentation and check what are the available structures. He could already build your own structure on the page by dragging and dropping.
I made a mockup:
[[Image(http://i.imgur.com/25U4K5Y.png)]]" Apiweb 33
41080 Clear List for recently active plugins requires selecting at least one item swissspidy Plugins 4.6 normal normal 4.9 defect (bug) assigned has-patch 2017-06-15T20:26:23Z 2017-08-07T19:58:02Z [37714] broke the `Clear List` button on the `Recently Active` tab of the plugins screen. The user now needs to select at least one plugin, otherwise the action is prevented with the message `Please select at least one item to perform this action on.`. johnbillion 1
38112 Deleting an Active Plugin via Bulk Actions Fails Silently swissspidy Plugins normal normal Future Release defect (bug) assigned 2016-09-20T17:43:26Z 2016-10-19T17:07:13Z "With the introduction of shinier updates in 4.6, it appears that the error messaging around deleting an activated plugin wasn't ported into the new system properly.
'''To reproduce:'''
1. On Plugins Screen, select an activated plugin.
2. From ""Bulk Actions"" select ""Delete""
3. Click Apply
'''Result:'''
Nothing happens. Silent failure (to delete).
'''Expected Result:'''
Error message explaining that you can't delete activated plugins.
In one case, I actually saw the expected error message after refreshing the plugins page, but I haven't been able to replicate that since." mrwweb 7
29559 Incoming Plugin Updates Not Handled Consistently in Admin Plugin Page swissspidy Plugins 4.0 normal normal Awaiting Review defect (bug) assigned reporter-feedback 2014-09-06T17:44:37Z 2017-02-05T09:06:47Z "When viewing the admin plugin page, I've noticed that sometimes, especially when a plugin was very recently update (eg: I just promoted my own plugin minutes ago then go to update on one of my sites), the message ""There is a new version of available."" is not displayed. This is *not* due to Core not being aware of the update yet, because the colored left border is red (indicating incoming update).
This has been around for a while (well before 4.0), but I only just now got around to reporting." dan.rossiter 4
28085 "Add a ""Recently Updated"" Plugins' view" swissspidy Plugins 3.9 normal normal Future Release enhancement assigned has-patch 2014-05-01T00:04:19Z 2017-02-05T20:08:19Z "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 8
20578 Allow users to delete a plugin without uninstalling swissspidy Plugins normal normal Future Release enhancement reviewing 2012-05-01T01:18:35Z 2016-12-11T10:26:02Z Sometimes, a user may need to delete plugin files without deleting all the plugin data. scribu 42
16841 Manually created user roles not showing in author dropdown regardless of assigned capabilities swissspidy Role/Capability 3.1 normal normal Future Release defect (bug) assigned needs-unit-tests 2011-03-12T23:39:39Z 2017-08-14T12:46:37Z "I posted the below on wp-testers hoping to verify or gain experiences from others in order to confirm this prior to reporting it as a bug, but, haven't received any further input, and it's just becoming more evident to me that perhaps it should be posted here, so, I hope I'm not creating a false report here. Please excuse me if I am.
I'm posting this as a link so that it will translate more clearly rather than just cluttering up this message with more text than necessary.
http://lists.automattic.com/pipermail/wp-testers/2011-March/014130.html
Upon further investigation I have also come across the following: #16451
I'm not an expert at debugging this sort of thing, but, I have attempted all within my knowledge thus far, and in looking at all of the returned objects and entries, the only difference I can spot between how the default user roles ( which show up properly in the dropdown ) and the custom created roles ( which do not ) are being returned is that the default user roles, editor for instance, correctly show the deprecated level_7 entry, and the custom user role ( with more assigned privileges than the editor ) does not show user levels in the capabilities array at all, and shows level_0 in the object.
This is leading me to think that perhaps there is something happening with those user levels in creating the author dropdown on the post editor that is blocking the custom user roles from showing up as expected.
When running the following code:
{{{
echo '

}}}" GrahamArmfield 7
37513 Admin bar sub menu items dashicon and screen readers afercia Toolbar normal normal Future Release defect (bug) reopened 2016-07-29T16:09:47Z 2016-11-07T18:28:54Z "Some screen readers may try to read out CSS generated content. For example, Safari and VoicOver get the admin bar menu sub-items `dashicons-arrow-right` as a text element and try to read it. There's nothing to be announced so VoiceOver just says ""You are currently on a text element"".
[[Image(https://cldup.com/xOaq2xSczn.png)]]
A minor but nice improvement could be refactoring these arrows, either using CSS borders or some other CSS technique, or using a `` and targeting the span for the generated pseudo element.
Either ways, it could be a good opportunity to improve a bit also the visual, maybe these arrows look a bit ""old style"".
Designers welcome!" afercia 33
37013 "Minor Fixes: ""Toggle indicator"" in pages have focus color while the same in widgets/menus have none." afercia Widgets normal normal 4.9 defect (bug) assigned has-patch 2016-06-03T10:13:45Z 2017-08-02T19:15:53Z "Toggle indicator in pages/post has visible focus color(blue border radius) on indicator but this is not present on Widget and Menus. It should display same focus effect on ""Toggle Indicator"" in Widgets and Menus.
Testing Environment:-
OS: Windows 10
Browser: Chrome 50.0.2661.102 , IE-11 , Firefox 46.0.1
WP : 4.5.2
Server-Environment : VVV" monikarao 22
23328 While editing widgets in accessibility mode the position can be indicated by widget titles instead of numbers afercia Widgets normal normal 4.9 enhancement assigned has-patch 2013-01-30T18:32:33Z 2017-08-13T13:34:16Z "Guess it title says it all. Right now you need to figure out the position you want the widget to be at and try remember it while editing the widget.
I suggest to change the text text of the position column header from ""position"" to ""position after"" and use labels in the drop down
1 => ""top""
2 => top widget title
3 => second widget title[[BR]]
etc" mark-k 36
38268 WP_Comment_Query Pagination AdamWills Comments 4.7 normal normal Future Release enhancement assigned has-patch 2016-10-09T09:21:18Z 2017-08-04T17:06:33Z "Is it possible to build pagination into WP_Comment_Query so previous & next page of comments can be easily added when listing comments using this function & get_comments?
Something like paged and comments per page parameters?" wordpresssites 7
33030 Admin menu update/comment count notification accessibility adamsoucie Administration 4.2 normal normal Future Release defect (bug) assigned has-patch 2015-07-17T21:56:58Z 2017-06-09T15:51:27Z "In the admin menu, when there are updates or pending comments, they're notified to users with a small number in a colored circle. Red or blue depending which is the current active menu item.
From an accessibility point of view I can see three issues here:
- color contrast (both #d54e21 and #00b9eb are under the required 4.5:1 ratio)
- the numbers font size is really too small
- the numbers are just... numbers and would need a more descriptive aria-label
About colors and font size, any change here would require design feedback so: designers welcome!
Screenshot for reference:
[[Image(https://cldup.com/DmVt4KVWJM.png)]]
Tracking label: #a11y-color" afercia 12
34957 #a11y-focus: Standardizing the handling of :focus and :hover adamsoucie Administration 4.4 normal normal Future Release enhancement assigned 2015-12-09T23:47:22Z 2017-02-06T17:54:16Z "After the discussion of [ticket:34876] with @mor10 and @michaelarestad, we've realized there are two main cases:
* Times when the :focus and :hover states can be the same
* Times when they need to be different
In order to tackle the general :focus problem we'll need to:
1. Define which elements fall into which category
1. Establish a standard implementation for each category
1. Implement the new standards
This could quickly evolve into a larger project, but we want to start resolve the :focus/:hover to make sure that gets addressed. This ticket is intended to start the conversation and put the attention on :focus.
This is an important a11y issue, as [ticket:34876] shows there are still elements that lack a :focus state completely. As part of this plan, we'll identify those elements lacking :focus and address both the lack of :focus and the correct implementation at the same time." adamsoucie 7
40071 Relative path used in test suite forces tests to be ran from tests dir adamsilverstein* Build/Test Tools 4.7.3 low normal Awaiting Review defect (bug) accepted reporter-feedback 2017-03-08T13:43:48Z 2017-03-14T17:51:46Z "In the wordPress test suite for version 4.7.3, inside `tests/phpunit/tests/rest-api/rest-schema-setup.php` line 303 a relative path is used for writing into a file.
Our use case is that the WordPress tests are cloned into our project and they run alongside our own test suite from an upper level directory in an automated build. That makes this specific test to fail since it cannot resolve the relative path correctly and thus the whole build fails.
The suggestion would be to use absolute paths here in order to let others include this test suite as a subset of a bigger test suite and run all of them from top level, without `cd`-ing into every subset.
" PressLabs 4
2691 HTML comments in posts aren't handled properly. adamsilverstein* Formatting 2.8.5 normal normal 4.9 defect (bug) accepted dev-feedback 2006-04-25T03:16:37Z 2017-07-12T12:59:27Z "When an HTML comment is added in a post, autop adds paragraph (

) tags around the comment and for multi-line comments line breaks ( ) are added after every line. This should not happen in HTML comments.
This ticket is similar to #712 which was closed with wontfix. I would like to know why this isn't seen as an issue? It prevents the addition of RDF and other metadata, not to mention just plain old HTML comments in posts." gord 16
35476 Allow posts to be filtered before return when `fields` parameter is used with `WP_Query` adamsilverstein* Query normal normal Awaiting Review enhancement accepted dev-feedback 2016-01-15T16:46:59Z 2016-04-05T06:21:47Z "Right now, when the '''fields''' parameter is used with '''WP_Query''' (""ids"" or ""id=>parent""), the returned posts are not filterable at all. Later in WP_Query, the_posts can be used to filter returned posts. This functionality should be mimicked with fields queries.
The use case for this is in plugins that bypass MySQL in WP Query (Elasticsearch). Fields queries right now can not be bypassed.
Patch attached." tlovett1 5
40894 Use Webpack instead of Browserify for build process adamsilverstein Build/Test Tools 3.5 normal normal Future Release enhancement assigned dev-feedback 2017-05-31T12:16:26Z 2017-07-27T23:02:31Z "#40834 kicked off a discussion of JavaScript modules in WordPress core.
In a recent [https://make.wordpress.org/core/2017/05/24/javascript-chat-summary-for-may-23rd/ JavaScript Core chat ] the decision was made to move in the direction of using Webpack (and ES6 imports) as our bundler of choice, and to work first on switching out browserfy in our current build chain.
Since we split the media files in #28510, the core build process [https://core.trac.wordpress.org/browser/tags/4.7.5/Gruntfile.js#L160 has used Browserify] to combine the media files. While browserify has served us well, Webpack is probably a better long term choice for the project, especially with the introduction of a new JavaScript framework that may require a build.
" adamsilverstein 16
35501 "Dashboard page: incorrect work of ""Activity"" group box bottom counters" adamsilverstein Comments 4.4.1 normal normal Future Release defect (bug) assigned has-patch 2016-01-17T21:22:17Z 2016-09-01T15:32:29Z "STEPS TO REPRODUCE
Create new post, add comment through front end, go to dashboard page, click showed up menu items Approve/Unapprove/Spam/Trash in different combinations:
- click ""Approve"" and quick click ""Trash"",
- click ""Unapprove"" and quick click ""Trash""
- quick click ""Approve"" twice
EXPECTED RESULT: bottom counters ""All"", ""Pending"", ""Approved"", ""Spam"", ""Trash"" counts correct.
ACTUAL RESULT: see attachment." antonrinas 15
36884 Customizer child menus incorrectly resize the site to an incorrect minimum-width adamsilverstein Customize 4.4 normal normal Awaiting Review defect (bug) assigned has-patch 2016-05-19T00:10:29Z 2016-05-31T09:48:17Z "On Chrome for Android, creating a child menu in the Customizer expands the width of the page to a `min-width: 950px, !important` (at least on my device)
Repro steps:
1) Go to dashboard > Themes >Customize.
2) Go to Menus > click 'Add a Menu' > Create Menu
3) Add Items (at least two) and back out
4) Drag one of the items to the right to be a child menu.
5) Screen resizes
" kwonye 7
14356 Better string for onbeforeunload event dialog adamsilverstein Editor low normal Future Release enhancement assigned dev-feedback 2010-07-19T18:53:15Z 2017-08-07T16:04:43Z "The WP string for this now is:
''The changes you made will be lost if you navigate away from this page.''
The resulting dialog is:
''Are you sure you want to navigate away from this page?
''The changes you made will be lost if you navigate away from this page.
''Press OK to continue, or Cancel to stay on the current page.
''[OK] [Cancel]
Which is repetitive and, it seems to me, confusing.
I was thinking we could change our string to something not repetitive that complements better the default strings. E.g.:
''You have unsaved changes that will be lost!
Patch available upon request." demetris 7
39691 wpLink autocomplete search improvement adamsilverstein Editor 4.8 normal normal Awaiting Review enhancement assigned 2017-01-25T18:39:54Z 2017-07-18T01:30:40Z "This patch offers a small improvement to wpLink (and tinymce plugin) autocomplete search in order to reduce requests to the server.
It normalizes the search terms by make it lowercase (based on DB collate setting) and trims / removes redundant blank spaces before to send a new one search.
I know, this way (for example by putting two words separate by several blank spaces), it can skip the first `CASE`/`WHEN` in the `ORDER BY` clause, since the exact query is used into a `LIKE` statement to determine the order value.
The patch also exposes `dbcollate` JavaScript variabile in the admin header that is used to check case insensitive DB setting. I think that it could be useful also in other situations.
Feedback and suggestions are appreciated
Regards
PS: I haven't seen any tests (phpunit/qunit) related to wpLink so currently I haven't provided a new one." enrico.sorcinelli 9
39824 Gallery doesn't show images being uploaded adamsilverstein Gallery 4.0 normal normal Future Release defect (bug) assigned dev-feedback 2017-02-09T16:18:43Z 2017-03-26T03:26:09Z "When you insert a gallery with images being uploaded in Edit Post page, the gallery doesn't show the images.
'''How to Reproduce'''
1. Open Edit Post page.
2. Insert a gallery with one uploaded image.
3. Select the gallery in tinyMCE then click on Edit.
4. Upload a big image file and/or slow down the internet to buy time for the following actions.
5. Choose Edit Gallery tab then click on Update Gallery button while the big image is uploading.
6. The gallery shows an empty element instead of the image.
7. If you edit the gallery and open Edit Gallery tab after the image uploaded, you'll see it has gone." gonom9 2
40811 Gallery drag and drop breaks layout adamsilverstein Gallery 3.5 normal normal Future Release defect (bug) reviewing 2017-05-18T23:40:24Z 2017-05-24T15:19:03Z "Starting with an example gallery:
[[Image(https://cldup.com/hcwGa3LYIW-3000x3000.png)]]
1) If I start dragging the nth item in a row, n blank spaces are created in the next row, eg:
[[Image(https://cldup.com/_Fbgdjcs1w-3000x3000.png)]]
2) The exception is when I start dragging the last item in a row - as soon as I start to drag, a blank space appears where the current item / the mouse is, and the actual item I am dragging appears a long way from the mouse (in the first position in the next row).
[[Image(https://cldup.com/8j0d3aCFrk-3000x3000.png)]]
This occurs in Firefox in Windows on a clean WordPress installation with no plugins installed. Testing in Chrome, I get the same results with the exception of dragging the 2nd or 4th item in a row, which work perfectly (1st and 3rd cause gaps; last breaks).
I expect this is due to rounding in some way, and it appears to differ based on the width of your browser. If I go into Firefox responsive view and set a width of 1366px, everything works perfectly. 1367px works for all but the last image in a row, while 1369px has everything broken." smerriman 3
29606 Reorder images via drag and drop is not working in WP 4 adamsilverstein Gallery 4.0 normal normal Future Release defect (bug) assigned close 2014-09-09T19:56:57Z 2017-05-05T01:29:40Z "When I create a gallery and then try to reorder the images via drag and drop, it does nothing. In WordPress 3.9 it was working, but not in WP 4.
I have tried this with Firefox in a fresh WP installation with no plugins, using both twenty-fourteen and _s theme." gsarig 58
33704 Reduce reliance on wp_is_mobile() adamsilverstein General 3.4 normal normal 4.9 enhancement assigned has-patch 2015-09-03T09:29:47Z 2017-07-12T03:35:32Z "User agent sniffing is bad. `wp_is_mobile()` isn't very reliable. In core it's actually used to detect if the device is a touch device (so that, among other things, elements that normally appear on hover are shown persistently and JavaScript for touch functionality is loaded).
We should audit the use of `wp_is_mobile()` in core to see if replacing it in favour of client-side feature detection is possible. If so, `wp_is_mobile()` should be deprecated.
Reported bugs with `wp_is_mobile()`: #24541, #21667, #24252.
History: #20014" johnbillion 23
41055 WP-API JS Client: Improve support for meta adamsilverstein General 4.7 normal normal 4.9 enhancement assigned needs-unit-tests 2017-06-15T08:08:42Z 2017-06-16T12:02:17Z "The wp.api JavaScript client support for meta needs some attention:
* Meta helper isn't available for comments, terms and users
* Meta pieces haven't been updated for the new-style meta model
The `getMeta` helper should work correctly for all object types that support meta. We should also consider adding a matching `setMeta` helper.
See https://github.com/WP-API/client-js/issues/168." adamsilverstein 1
21170 JavaScript actions and filters adamsilverstein General 3.4 normal normal 4.9 feature request assigned has-patch 2012-07-05T21:34:03Z 2017-08-11T18:07:47Z "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 108
33167 Reset password screen lacks the Hide button and Confirm use of weak password checkbox adamsilverstein Login and Registration 4.3 normal normal Future Release defect (bug) assigned reporter-feedback 2015-07-29T01:36:22Z 2017-05-02T19:29:56Z "When resetting my password, the ""Hide"" button isn't available, and the ""Confirm use of weak password"" checkbox isn't shown if I enter a weak password.
[[Image(https://i.imgur.com/52BGcEM.png)]]" johnbillion 19
35449 Add ability to filter back to blog link on login page adamsilverstein Login and Registration normal normal Future Release enhancement assigned dev-feedback 2016-01-13T20:38:13Z 2016-04-05T06:21:39Z "There is currently not a way to filter the ""Back to {site_name_here}"" link at the bottom of the `/wp-login.php` page.
Depending on context, a user may want to change the text that is displayed in that link as well as the link itself. One example would be that on WordPress.com, we use this wording: ""Return to {site_name_here}"".
I propose that we add a filter that will allow developers to customize that link depending on context." ebinnion 2
30155 Fix crop image functionality within edit flow adamsilverstein Media 2.9 normal normal Awaiting Review defect (bug) assigned reporter-feedback 2014-10-29T00:50:27Z 2017-06-27T17:14:04Z "The Image Flow team has done some user testing and the cropping functionality within the image editing flow is basically unusable, and not at all intuitive even for tech savvy users.
Several things would need to be fixed in order to make it more usable and user friendly:
1. When the user clicks on ""Edit image"" in the image flow, NO tool should be selected in the initial state of editing mode
2. Upon selection of Crop tool, dotted crop lines should be around the edges of the full image (currently user needs to make the selection and most of the users didn't realize that)
3. User should be able to scale crop area with handles and reposition crop area by dragging it
4. Aspect ratio should be a visual representation with text (see mockup attached), and an option to input custom aspect ratio should be available (original, custom, 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16)
5. Selecting an aspect ratio should lock selection, so when user resizes selection it contains the aspect ratio
6. When a user clicks on ""Original"" aspect ratio, it should reset selection to full image and lock in the aspect ratio of the image aspect ratio
7. ""Selection"" numbers inside ""Image Crop"" shouldn't be an input field, but rather just reflect the selected image size without the ability to manually edit it (confuses users)
7. When user chooses to use a custom aspect ratio, we should add an ""Apply"" button to set the custom ratio (currently it doesn't work properly with pressing tab)
8. To save and apply the crop there should be one prominent button called ""Apply crop"" (currently the user needs to click on the crop tool again, which makes no sense and none of our test users could figure it out)" sonjanyc 21
36925 "Media views: introduce a ""Heading"" view for better accessibility" adamsilverstein Media normal normal Future Release defect (bug) assigned has-patch 2016-05-23T23:45:50Z 2016-08-06T06:18:14Z "See #30512.
One of the main accessibility issues in the media views is that they're difficult to navigate using only the keyboard. Consider for example the ""Add Media"" modal, see the screenshot below. Potentially, there can be hundreds of attachments. There's no easy way to ""jump"" through the main areas of the modal.
A new approach to improve the media accessibility was recently discussed and it was agreed to propose small changes. Headings could greatly help, especially screen reader users who can use shortcuts to jump through headings.
New headings on the main workflow areas, together with the already existing headings, would give screen reader users the ability, for example, to ""jump"" from the attachments grid to the Insert button without being forced to tab through all the attachments.
Heading details can be discussed, but first of all there's the need to build a new ""Heading"" Backbone view. I guess it should be flexible enough to allow to set the heading level at runtime and an optional CSS class to show or visually hide the heading.
Any thoughts and help very welcome. Especially, help from someone with great Backbone knowledge :)
[[Image(https://cldup.com/9mhj8uA7-W.png)]]
Side note: working on the screenshot, I've noticed for the first time there's maybe some terminology inconsistency. Maybe the usage of the terms ""Media"" and ""Attachment"" should be reviewed a bit." afercia 7
36982 Add image attributes and additional context to the wp_calculate_image_srcset and wp_calculate_image_sizes filters adamsilverstein Media 4.6 normal normal Awaiting Review enhancement assigned needs-unit-tests 2016-05-31T17:39:55Z 2017-04-07T19:27:55Z "Because the srcset and sizes attributes try to give the browser guidance on how CSS is going to handle images, we should be able to take into account image class attributes (and other attributes that could be used as CSS selectors) when using the {{{wp_calculate_image_srcset}}} and {{{wp_calculate_image_sizes}}} filters to set the appropriate srcset and sizes.
It would also be helpful to be able to supply a context to functions like {{{wp_image_add_srcset_and_sizes}}} and {{{wp_make_content_images_responsive}}} so we can calculate different srcset and sizes attributes if a medium sized image is in the main content section vs. in an aside or other section." kylereicks 4
39667 Improve showing metadata in media view adamsilverstein Media normal normal Future Release enhancement assigned dev-feedback 2017-01-23T04:17:01Z 2017-05-02T11:32:52Z "I'd like to see units after numbers here, see screenshot.
This is the view you get after clicking a video in media gallery (Attachment Details) and then click on ""Edit more details""" Presskopp 18
40130 On mobile make media search full width adamsilverstein Media normal normal Future Release enhancement reopened has-patch 2017-03-12T12:48:42Z 2017-07-10T05:31:17Z "Visually this could be made full width.
[[Image(https://cldup.com/lShPIi60NO.PNG, 50%)]]
Note: the header here full stop needs some work but that is something to iterate on, lets start with this." karmatosed 9
38211 Interference of AJAX search with input field auto-complete adamsilverstein Plugins 4.6 normal normal Future Release defect (bug) assigned has-patch 2016-10-02T12:09:55Z 2017-01-10T06:47:38Z "In WordPress 4.6 new feature was introduced in ""Add Plugin"" page - user input in ""Search Plugin"" field triggers AJAX search. That's great but it also makes browser's auto-complete of this field to disappear (at least in Chrome).
Therefore it's difficult to select an already existing option of plugin name that browser's auto-complete offers because AJAX search gets triggered very soon after you type a letter in input field.
So, in most cases I need to type full name of the plugin or try to select auto-complete option before AJAX gets triggered.
I'm not sure what the solution for this would be but I don't think it's difficult to press Enter or tap Search button after you have written everything you wanted without system interfering with the process without user wanting it.
In addition, the fact that button Search disappeared some time ago made it impossible to add a plugin on touch devices. I see that AJAX search perhaps tries to fix this but it breaks auto-complete as I mention above." armandsdz 18
39672 REST API: Backbone URLs don't work correctly without pretty permalinks adamsilverstein REST API normal normal Awaiting Review defect (bug) reviewing close 2017-01-24T06:38:17Z 2017-04-11T13:58:40Z Looks like permalinks are built incorrectly when using ugly URLs (base is `http://example.com/?rest_route=/`) rmccue 4
40672 Undefined property `requireForceForDelete` prevents deleting terms in Backbone.js client adamsilverstein REST API 4.7.4 normal normal 4.9 defect (bug) assigned needs-unit-tests 2017-05-05T00:38:01Z 2017-07-11T17:14:19Z "The REST API Backbone.js client makes it possible to delete terms using Backbone Model's `destroy()` function. However, when it comes to models that can't be trashed (like `Category` and `Tag`), an additional `force=true` URL parameter is required to avoid a `rest_trash_not_supported` error. When the Models are created from endpoints in the `constructFromSchema()` function, a `requireForceForDelete` property is set to `true` to have the required `force` parameter later added to the URL.
Problem is, the `requireForceForDelete` property is only set for Models that have a parent in their route, overriding the Model's default `wp.api.WPApiBaseModel.initialize()` function; if the Model does not have a parent, the default `wp.api.WPApiBaseModel.initialize()` function is used, `requireForceForDelete` is `undefined`, and the `DELETE` API request fails because of the missing `force` parameter.
Not sure exactly why there's a difference between Models based on whether or not they have parents, but the end result is that it's not possible to properly delete terms without having the `requireForceForDelete` added to the Model before calling `destroy()`." caercam 6
40422 REST API JavaScript Client: refresh nonce when a new nonce is available adamsilverstein REST API 4.7 normal normal 4.9 enhancement assigned has-patch 2017-04-12T14:30:58Z 2017-07-31T00:58:41Z Since [37905] the REST API returns a fresh `wp_rest` nonce in the headers of (authenticated) requests. The JavaScript client uses nonces for (cookie based) authenticated requests and should keep its internal nonce up to date with the returned nonce. This will be especially useful for long-running JavaScript applications that need to make authenticated requests. adamsilverstein 10
41111 WP-API JS Client: Add a helper to get model or collection by route adamsilverstein REST API 4.7 normal normal 4.9 enhancement assigned reporter-feedback 2017-06-21T09:51:02Z 2017-07-31T16:13:25Z "In the process of adding page/custom post type support to Gutenberg, the need arose to identify the models based on their route - the code passes the route from PHP to JavaScript, and the JavaScript needs to know which model to use. See [https://github.com/WordPress/gutenberg/pull/1276 this pull requst] for additional details.
We should add helpers to the client to easily find a model or collection based on its route, something like `getModelByRoute` and `getCollectionByRoute` - each would search thru the constructed models/collections and return the matching object, or `false` if none was found. We should also add unit tests to verify the functions work as expected." adamsilverstein 3
34560 High memory usage ( and possible server error) editing post with many/large revisions adamsilverstein Revisions 3.6 normal major Future Release defect (bug) assigned needs-unit-tests 2015-11-02T23:42:27Z 2016-12-20T17:11:18Z "**Version:** This issue was seen under WordPress 4.3.1, but it likely applies to any modern version of WordPress, even as far back as [https://github.com/WordPress/WordPress/blob/2.9-branch/wp-admin/edit-form-advanced.php 2.9] or maybe earlier.
**Expected Behavior:** A WordPress user should be able to happily create thousands of revisions of pages (or blog posts) containing megabytes of HTML text, limited only by the amount of server memory needed to contain the specific edited revision of the page or post (minus baseline memory needs). So, for example, if you have a 256MB PHP memory limit, you should be able in theory to edit pages of 100MB or more for thousands of revisions (ignoring non-memory constraints like CPU usage, database configuration, communication timeouts, or browser-side limitations). Certainly you should be able to edit a page or post of under 1MB for hundreds of revisions given 256MB of allowed PHP memory (or even just with a 32MB memory limit given few plugins). While editing in WordPress will have limits based on available memory or CPU use or communications timeouts and the memory demand of the current revision being edited, those editing limits should not be substantially affected by the number of revisions of a post previously saved or the sizes of previously saved revisions.
**Exhibited Behavior:** Right now, you will unhappily see ""500 server error"" and ""white screen of death"" results eventually if you, say, edit a 400K page for hundreds of revisions, even with a 256MB server memory limit. Here is an example error from a server with 256MB memory limit resulting from trying to edit a page after saving about 350 revisions of a page that grew to be 437,042 bytes in size:
{{{
[02-Nov-2015 14:40:42 UTC] PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 437043 bytes) in /usr/home/narrafirma/public_html/narrafirma.com/wp-includes/wp-db.php on line 1389
}}}
**Steps to reproduce:** Create a new WordPress page. Put 500K or so of text in it (or any other large amount, the smaller the amount, the more revisions needed to be saved). Save the page for hundreds of revisions. Failure will occur when the number of revisions times the post size exceeds the PHP available memory minus the core memory need of WordPress+plugins. To speed this failure process, reduce the memory available to PHP.
**Likely cause:** The file edit-form-advanced.php has the following section of code which retrieves all revisions for a post using wp_get_post_revisions and then counts the result (twice) to display a count of revisions on the page. While the current approach has a certain elegant simplicity and is easy to understand, the approach is unfortunately computationally inefficient because retrieving all the revisions of a post just to count them potentially consumes a lot of memory, a lot of CPU time, and a lot of database bandwidth when there are many revisions of a post if some are of significant size.
From [https://github.com/WordPress/WordPress/blob/4.3.1/wp-admin/edit-form-advanced.php edit-form-advanced.php (4.3.1)]:
{{{
$publish_callback_args = null;
if ( post_type_supports($post_type, 'revisions') && 'auto-draft' != $post->post_status ) {
$revisions = wp_get_post_revisions( $post_ID );
// We should aim to show the revisions metabox only when there are revisions.
if ( count( $revisions ) > 1 ) {
reset( $revisions ); // Reset pointer for key()
$publish_callback_args = array( 'revisions_count' => count( $revisions ), 'revision_id' => key( $revisions ) );
add_meta_box('revisionsdiv', __('Revisions'), 'post_revisions_meta_box', null, 'normal', 'core');
}
}
}}}
**Suggested fix:** Retrieve the count of revisions in some other way with custom SQL. Alternatively, add an option in when retrieving revisions via ""wp_get_post_revisions"" (in ""wp-includes/revision.php"") to only retrieve the metadata for the revision (like size, timestamp, user, and so on) and use that option in this code. Incidentally, another minor optimization for this code fragment may be to store the count of revisions in the code above so the counting process is not done twice (depending perhaps on how count is implemented versus variable allocation costs in PHP).
**Caveats:** I have only tested this error condition for a page, but I am assuming this issue will apply to blog posts as well (or any kind of posts with revisions). I am not sure what other implications there would be from such a change, like if the revisions' contents were needed elsewhere later for comparisons -- although such a situation could potentially be dealt with by selectively loading specific revision's contents as needed for diff comparisons, even if all the metadata might be needed up front.
**Other potential benefits of the proposed fix:** Beyond avoiding server errors and white screens, making the proposed change may speed up opening long posts and pages for editing by reducing server load substantially. When editing even small posts with a few revisions, this change will still likely speed up the initial opening of the editor at least slightly.
**Use cases:** An example situations of a large page with multiple revisions is where a team uses a WordPress page to track component version deployment status of a large system. Another use case is when a WordPress page grows into a book-length document through repeated editing by someone :-) who is also used to saving a lot to avoid losing work from browser crashes.
**Additional suggestion for further code review:** All uses of ""wp_get_post_revisions"" and any similar functions, as well as all uses of ""count"", could be reviewed in the WordPress codebase looking for similar computational inefficiencies.
" pdfernhout 58
31249 PHP notice when viewing autosave adamsilverstein Revisions normal normal Future Release defect (bug) assigned 2015-02-06T15:48:28Z 2015-02-11T15:36:11Z "{{{
Notice: Undefined offset: 2 in wp-admin/includes/revision.php on line 223
}}}
This happens when you view an autosave without any previous revisions and the original author's role is not author anymore." iseulde 3
20299 "Preview changes on a published post makes all post meta ""live""" adamsilverstein Revisions 3.3.1 normal major Future Release defect (bug) assigned dev-feedback 2012-03-25T02:02:16Z 2016-07-04T21:05:42Z "Here's the use case. Client wants to preview an update to a published post (as the Preview Changes button correctly implies they can). This post has some important post meta that impacts that preview.
Here's the problem - because post meta is not saved to a revision (it looks for the ""real"" post), when the preview button is pressed, save_post runs, and saves the meta data to the real, published post, even though the user only intends to preview the change.
Without realizing it, the user has updated the published version. That can be prevented by not saving post meta to revisions (when using custom save_post hooks), but then there's no non-hacky way to actually preview the full changes.
I believe this bug has been present for a while, we just rarely use the Preview function on published posts, and when we do, probably never tested it with critical post meta." jakemgold 35
40425 Restore This Revision button is covered up adamsilverstein Revisions 4.7.3 normal normal Awaiting Review defect (bug) assigned 2017-04-12T17:02:21Z 2017-04-13T17:43:29Z When you go to any page or post to the revisions section, the blue button on the right is covered up by the section below it. I have attached an image to show the bug and an image of what it should look like. JeffKeynote 2
33830 Revisions: Compare revisions has layout issues on iPhone 6+ adamsilverstein Revisions 4.3 normal normal Awaiting Review defect (bug) assigned reporter-feedback 2015-09-11T15:37:13Z 2016-04-27T20:33:10Z "From the editor, tap a revision in the Revisions meta box. The resulting compare revisions screen has some layout issues. Restore this Revision is obscured.
" ryan 8
30854 `wp_insert_post` doesn't save revision for new published post adamsilverstein Revisions normal normal Awaiting Review defect (bug) assigned 2014-12-28T16:41:25Z 2016-12-04T17:28:27Z "Calling `wp_insert_post` with `post_status` of `publish` or any other status on a new post doesn't save a new revision.
The reason for this is the `$update` check at the beginning:
https://core.trac.wordpress.org/browser/tags/4.1/src/wp-includes/post.php#L3085
checks whether or not the args include an ID, indicating that we're updating a post. Further down, that update check is what calls `post_updated`
https://core.trac.wordpress.org/browser/tags/4.1/src/wp-includes/post.php#L3473
which `wp_save_post_revision` is hooked to. Therefore, if we call `wp_insert_post` in a plugin to insert a post with a`post_status` of `publish`, WordPress doesn't save a post revision.
Post revisions are supposed to be up-to-date with the latest post data, but we don't get a revision if we insert a post in this manner. I think the reason we ended up with this is to avoid saving a revision of the auto-draft that is created when opening up post-new.php, but that isn't necessary now, as `wp_save_post_revision` checks whether the `post_status` is an auto-draft.
I think the easiest solution is to move the `wp_save_post_revision` to the `save_post` hook, but I'm not sure if there are other places in the codebase this would cause issues." JamesDiGioia 9
25365 timeAgo attribute for revisions produces the wrong result due to missing UTC in strtotime adamsilverstein Revisions 3.6.1 normal normal Awaiting Review defect (bug) assigned dev-feedback 2013-09-20T10:37:28Z 2016-05-13T14:53:04Z "When looking at revisions, the date for each revision appears correctly, but the human_time_diff is wrong.
For example, on a server with timezone UTC+3, the time is now 13:28 (UTC+3), and looking a revision from 20 Sep 09:41 (UTC+3) shows:
7 hours ago (20 Sep @ 9:41)
Where in fact it should be
4 hours ago (20 Sep @ 9:41)
The post_date for this revision is: '''2013-09-20 09:41:08'''
The post_date_gmt for this revision is: '''2013-09-20 06:41:08'''
(The server timezone is UTC+3, as is the Wordpress option and the php.ini)
The reason for this bug is in wp-admin/includes/revision.php line 117:
{{{
$modified_gmt = strtotime( $revision->post_modified_gmt );
}}}
strtotime uses the server's timezone and therefore assumes the strong $revision->post_modified_gmt is actually in UTC+3 (the server's timezone). To avoid this and ensure the unix timestap is indeed GMT, the line should change to:
{{{
$modified_gmt = strtotime( $revision->post_modified_gmt . "" UTC"");
}}}
Thank you,
Biranit
" biranit 18
20564 Framework for storing revisions of Post Meta adamsilverstein Revisions 3.4 normal normal Future Release enhancement assigned dev-feedback 2012-04-28T08:51:36Z 2017-07-12T02:31:32Z "There are a couple of tickets that would seem to benefit from storing revisions of post meta (#11049, #20299). We had a need for this feature in our Carrington Build and RAMP products and built it a few years back.
It handles the storing of post meta along with revisions, as well as restoring those revisions when someone restores an older version of a post(/page/etc.). There is an API for registering the post meta keys you want to track revisions of, it does not track all post meta keys by default.
There are two versions of the code. The bare-bones revisions framework code is here:
https://github.com/crowdfavorite/wp-revision-manager [[BR]]
https://github.com/crowdfavorite/wp-revision-manager/blob/master/cf-revision-manager.php
while I started adding features to a version that would be more user-friendly plugin, allowing the users to select which post meta keys they want to track revisions for:
http://plugins.svn.wordpress.org/revision-manager/ [[BR]]
http://plugins.svn.wordpress.org/revision-manager/trunk/cf-revision-manager.php
If this would be a valuable addition to core, I'd be happy to help polish this up in whatever manner is most helpful. I'd recommend breaking out the code I started on for the admin form and having that be the extent of the ""revision manager"" plugin - basically it becomes a nicer UI for selecting additional post meta keys to track revisions for." alexkingorg 95
25233 Revisions metabox improvements adamsilverstein Revisions normal normal Awaiting Review enhancement assigned 2013-09-04T23:53:12Z 2015-11-04T21:21:49Z "The revisions metabox suffers from performance degradation when unlimited revisions are allowed and a large amount of revisions (e.g. 600+) is achieved on a post.
Symptoms:
* Slow wp-admin page loads
* Out of memory errors and 500 errors.
This seems to be mainly due to:
* All revisions are loaded at once when a post is loaded in wp-admin
* For each revision, the entire `$post` object is loaded, when only a few pieces of information are needed
* The queries in `get_children()` are not cached
Proposed solution:
* Rewrite the revisions meta box to load the revisions via ajax instead of with the initial page load, possibly with pagination or some kind of infinite scroll.
* Only load the information required and not the entire `$post` object for each revision.
* Cache the queries involved.
Possible bottlenecks:
* The `get_children()` and `wp_get_post_revisions()` functions are used in a bunch of different places, so it might be difficult to bake in compatibility for everything. Might be easier to create some new functions for the metabox specifically.
* Currently WordPress loads all the revsions in order to possibly upgrade them to the 3.6 versioning of revisions. It does so on every post loaded in wp-admin. It might make sense to move this to an upgrade routine or somewhere else as it adds to the performance degradation.
If this sounds like a good approach I'd be happy to work on a patch." jkudish 4
25123 The 'Revisions' post meta box should scroll adamsilverstein Revisions normal normal Awaiting Review enhancement assigned 2013-08-23T08:45:39Z 2017-08-07T16:13:59Z When you have a great big long list of revisions on a post the 'Revisions' meta box gets as long as the list of revisions. It should have a max-height and become scrollable. johnbillion 15
36836 Two different preview saving processes cause confusion with editorial teams adamsilverstein Revisions normal normal Awaiting Review enhancement assigned 2016-05-13T21:05:52Z 2016-05-13T21:18:44Z "When `post_preview()` runs from the post editor when editing a draft, it will save over the draft if:
* The post is not locked by someone else AND
* You are the author of the post AND
* The post status is currently 'draft' or 'auto-draft'
However, when dealing with a published post, none of those are hit so an auto-save is created with `wp_create_post_autosave()`.
This establishes two separate workflows for an editorial team to be aware of:
* In some cases, when previewing a post, your changes will '''overwrite''' the current post
* In other cases, when previewing a post, your changes will safely be saved to a new autoave for preview purposes
I propose we '''always run''' `wp_create_post_autosave()`, even if the post is a draft, removing the `edit_post()` call in `post_preview()` if the post status is a draft / auto-draft. This establishes clear and consistent saving handling when previewing a post." sc0ttkclark 1
34281 Allow admins to send users a 'Reset Password' link adamsilverstein Users 4.4 normal normal Future Release enhancement assigned dev-feedback 2015-10-13T02:15:01Z 2017-01-23T18:02:57Z "Following #24633 and #34180
As Pippin said:
> 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.
As an extension of that, should we be able to easily send users a link to reset their passwords? It would greatly improve supporting communities. Instead of explaining ""Go to domain.com/wp-admin/ and click on lost password and put in your info..."" you can just press a button and send a link. Done.
I was able to make it a plugin but I'm epically failing at getting the ajax/js stuff to work right as a core patch :(
Screenshot: https://cloudup.com/cWNmv6T0SXI
Code: https://cloudup.com/c2SpsmqXb14
This doesn't actually change the password or even force it. If you, as an admin, change the password of a user, they get an email anyway. This uses just emails them the reset link. " Ipstenu 43
40916 "Add ""noreferrer"" to comments in dashboard" adam3128 Comments normal normal Awaiting Review enhancement assigned dev-feedback 2017-06-03T21:14:22Z 2017-06-26T17:50:43Z "Within `/wp-admin/edit-comments.php`, one might check out a posted link before verifying the comment's legitimacy.
While doing so, we're sending the linked site that their comment got through; plausibly opening yourself to complications.
Whatever the reason may be, I don't think we should give spammers any information.
To resolve this, simply add `rel=noreferrer` to those links." Cybr 5
35214 Custom Comment Types aaroncampbell* Comments normal normal Future Release task (blessed) accepted 2015-12-24T00:28:11Z 2017-02-13T02:49:21Z "It's time to take another look at Custom Comment Types. We have a nice stable example in post types, but there's a '''lot''' to do here, so we'll use this as a centralized tracking ticket for everything. As such, I'm sure the description here will be fluid for a while as we figure out how much there is to do.
Here's a rough list of things that need to be looked at and addressed:
* UI/UX - In order for custom comment types to be really useful, we need to put some serious thought into the UI/UX surrounding comments in the admin.
* The `comment_type` field needs to start using `'comment'` instead of `''` for comments. This will mean an upgrade routine as well as some back-compat work.
* We need to decide what to do about non-default comment types in various admin areas (comments table, recent comments, etc). The thing that makes most sense is for `WP_Comment_Query` to be adjusted to only show default comment types (comments, pingbacks, and trackbacks) by default. Additional comment types would then be handled by whatever plugin or theme adds them. Unfortunately, this is a breaking change (comment:58:ticket:12668) because right now those areas show all comment types. Maybe we can create new management areas to be able to pull these out of the default one? Lets put our heads together.
* A lot of existing functions, like `comment_type()`, will need to be fixed to make room for newly registered comment types and their registered strings.
Previous tickets for history:
#25674
#12668
" aaroncampbell 15
14050 shortcode_unautop() should also remove the added after shortcodes aaroncampbell Formatting 3.0 normal normal Future Release defect (bug) assigned needs-refresh 2010-06-22T18:15:27Z 2015-02-18T09:28:09Z "Currently `wpautop()` wraps a shortcode in `

` tags as well as adding a `` tag after the shortcode. We then use `shortcode_unautop()` to remove the `

` tags, but the `` stays.
To replicate, just drop a few caption shortcodes into a post and set them all to align left or right. You'll see that even though they all float (assuming that's how your theme handles them) they stair step down because of the extra ``
I'm not a regex expert so someone should probably double check my patch, but it seems to work for me." aaroncampbell 27
34028 wp_safe_redirect can return admin_url() when get_admin_url() is used aaroncampbell General normal normal Future Release defect (bug) reopened needs-unit-tests 2015-09-25T20:47:48Z 2016-03-02T16:12:05Z "Setup your site like this:
WordPress Address (URL): http://yourdomain.tld/ (without www)
Site Address (URL): http://www.yourdomain.tld/ (with www)
Example code (yes I know it's stupid code, but it's a working proof-of-concept):
{{{
run( array(
'package' => $r->package,
'destination' => WP_PLUGIN_DIR,
'clear_destination' => true,
'clear_working' => true,
'is_multi' => true,
'hook_extra' => array(
'plugin' => $plugin
)
) );
$results[$plugin] = $this->result;
}}}
Notice how the result is stored in the `$result` variable yet the `$results` variable, which is used as the return value, stores the `$this->result` variable. While the `$this->result` variable does contain some data, it's not very relevant as a return value for these functions. This issue causes a loss of most, if not all error feedback (I have yet to test every possible combination of result possibilities) and fails to provide any useful success condition responses. In most of my test cases, this issue results in each package having a response value of `null`.
This same issue can be found in the Language_Pack_Upgrader and Theme_Upgrader classes.
My solution is to simply change `$this->result` to `$result` as found in the supplied patch and as shown below:
{{{#!php
$results[$plugin] = $result;
}}}" chrisjean 17
21941 Deprecate get_post_format_slugs() @… Post Formats normal minor Future Release enhancement assigned close 2012-09-20T14:40:52Z 2016-06-10T18:48:03Z "I just encountered the `get_post_format_slugs()` function, which is basically just wrapping `get_post_format_strings()` and setting the strings as keys too. So its output is an assoc array where the keys equal the values.
The three times core calls it, it does it the following:
{{{
// ~/wp-includes/posts.php -> set_post_format()
if ( 'standard' == $format || !in_array( $format, array_keys( get_post_format_slugs() ) ) )
// ~/wp-includes/posts.php -> _post_format_request()
$slugs = get_post_format_slugs();
if ( isset( $slugs[ $qvs['post_format'] ] ) )
$qvs['post_format'] = 'post-format-' . $slugs[ $qvs['post_format'] ];
// ~/wp-includes/theme.php -> add_theme_support()
switch ( $feature ) {
case 'post-formats' :
if ( is_array( $args[0] ) )
$args[0] = array_intersect( $args[0], array_keys( get_post_format_slugs() ) );
break;
}}}
So in every case it would've been enough to simply call `get_post_format_strings()`.
Do we really need this function?" F J Kaiser 9
26350 !important audit Administration 3.8 high major Future Release defect (bug) new has-patch 2013-12-02T01:06:14Z 2016-07-21T21:59:55Z "After the MP6 merge many CSS rules became ""very !important"". Some are so !important that overwrite other !important...
Looking at wp-admin.css: in trunk there are 65 `!important` compared to 22 in 3.7." azaozz 10
29161 $pagenow variable not set in admin pages on Windows systems Administration 3.9.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2014-08-09T10:59:05Z 2015-06-25T14:27:39Z "In the most recent version of WordPress:
`vars.php`, starting line 25:
{{{#!php
if ( is_network_admin() )
preg_match('#/wp-admin/network/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
elseif ( is_user_admin() )
preg_match('#/wp-admin/user/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
else
preg_match('#/wp-admin/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
}}}
The ""/"" character does not match the ""\"" character found as the directory separator on Windows systems. This causes various issues throughout the entirety of the administration pages, notably that ""add_meta_box"" ceases to function correctly.
Would recommend it be changed to something like this:
{{{#!php
$ds = preg_quote(DIRECTORY_SEPARATOR);
if ( is_network_admin() )
preg_match('#'.$ds.'wp-admin'.$ds.'network'.$ds.'?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
elseif ( is_user_admin() )
preg_match('#'.$ds.'wp-admin'.$ds.'user'.$ds.'?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
else
preg_match('#'.$ds.'wp-admin'.$ds.'?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
}}}
Thanks for the wonderful software!" Craxic 2
38805 A hook is missing in class WP_List_Table Administration 4.6.1 normal normal Awaiting Review defect (bug) new 2016-11-15T22:03:17Z 2016-11-16T12:55:23Z "If I want to add a column to a WP_List_Table, I used this hooks :
* `manage_{$this->screen->id}_columns`
* `manage_{$this->screen->id}_sortable_columns`
* `manage_{$screen->id}_custom_column`
But the last one doesn't exist in WP_List_Table, I can create a column but I can't insert data into.
Here the documentation :
https://make.wordpress.org/docs/plugin-developer-handbook/10-plugin-components/custom-list-table-columns/#output-table-cell-contents
Here the source of WP_List_Table :
https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-list-table.php
Actually, I want to hook a plugin with this hook, I can't add columns.
Thanks
" madvic 2
37266 "AJAX uploads fail to complete successfully when a cookie named ""action"" exists" Administration 4.5.3 normal normal Awaiting Review defect (bug) new 2016-07-04T09:10:32Z 2016-07-04T09:12:12Z "When a user has a cookie named ""action"", AJAX uploads to `/wp-admin/async-upload.php` fail to define `DOING_AJAX` because the check `'upload-attachment' === $_REQUEST['action']` since $_REQUEST includes $_COOKIES.
As a result, calling `wp_die()` at the end of `wp_ajax_upload_attachment()` results in the standard Wordpress error HTML being appended to the response, and an HTTP 500 error code being returned.
I'm currently seeing this being triggered by the ""Calls To Action"" plugin. See http://support.inboundnow.com/support/topic/calls-to-action-breaking-wordpress-image-upload/
This probably affects all versions of Wordpress. " pembo13
34088 Add delay to admin menu arrow's disappearance Administration 4.3.1 normal normal Awaiting Review defect (bug) new has-patch 2015-09-29T23:11:19Z 2016-09-18T05:58:49Z "Currently if you hover over an item in the admin's left sidebar, the submenu will show after a few hundred milliseconds. The arrow/triangle next to the submenu will appear at the exact same time. However, on leaving the hover state, the arrow disappears right away while the submenu will stay around for a few hundred milliseconds and then disappear.
I would assume this is because the arrow is bound to the menu item, and not the submenu. Not really sure what the solution would be to this, but I see it as a bug in code that's improves UX.
[[Image(https://cldup.com/oDl-qIUYxW.gif)]]" pathartl 7
36201 Admin Pagination URLs Use Wrong Hostname Administration normal normal Future Release defect (bug) new dev-feedback 2016-03-10T21:18:06Z 2017-05-19T14:34:33Z "The pagination links on the posts/pages screen uses the wrong host in some cases. Particularly for my case I have a Wordpress blog installed on a separate server from my main website, but it's hosted as a subdirectory `/blog` on the main site using the `mod_proxy` Apache module. So the pagination links are coming through using the wrong host like this:
http://1647760595.us-east-1.elb.amazonaws.com/wp-admin/edit.php?paged=2
It seems like these pagination links are the only ones with this issue, and I believe it's because of how they are being constructed.
I've attached a patch that solves the issue for me.
-Garrett" grimmdude 11
40701 Admin menu icon distorted in Chrome when #adminmenu folded Administration 4.7.4 normal normal Awaiting Review defect (bug) new has-patch 2017-05-09T11:17:06Z 2017-06-22T21:30:33Z "By default - when the admin menu is not folded - the icons in the admin menu are 36px wide.
{{{
#adminmenu div.wp-menu-image {
float: left;
width: 36px;
height: 34px;
margin: 0;
text-align: center;
}
}}}
With this width, Chrome renders the icons sharp.
When the admin menu is folded it changes the width to 35px:
{{{
.folded #adminmenu div.wp-menu-image {
width: 35px;
height: 30px;
position: absolute;
z-index: 25;
}
}}}
The icons are blurry as the lines in the icon shifted 0.5px horizontally -> antialising.
Possible solution:
Do not force .wp-menu-image to 35px when the menu folded.
{{{
.folded #adminmenu div.wp-menu-image {
height: 30px;
position: absolute;
z-index: 25;
}
}}}" nextendweb 2
32579 Admin menu: color schemes fly-out menu background when focused Administration 4.2 normal normal Awaiting Review defect (bug) new has-patch 2015-06-07T17:19:55Z 2015-10-15T20:38:13Z "Small visual glitch about Sass color schemes, please refer to the screenshot below.
To reproduce:
- set a color scheme (here it's ""Ocean"" which doesn't use dark backgrounds and makes this clear)
- collapse the admin menu
- tab with your keyboard and focus the current top menu item
On the left when focused, on the right when hovered. Also, notice a (minor) inconsistency about the displaying of the small arrow.
[[Image(https://cldup.com/IYFktm3ZwB.png)]]" afercia 3
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 Future Release defect (bug) new dev-feedback 2014-07-10T21:05:19Z 2016-02-08T14:02:09Z "'''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`
`http://localhost/wp-login.php`
Why is there the second URL? Nothing can be done here, only antispam filters can ban this email...
2) When user clicks the first link, new password can be set: ""Enter your new password below."" But why has button text ""Reset Password""? User is not resetting password, but only setting first (new) password. And after submitting, there is text ""Your password has been reset.""
3) Site admin receives 2 notification emails (for one registration):
- ""New User Registration"": New user registration on your site... (same in pre 4.3)
- ""Password Lost/Changed"": Password Lost and Changed for user...
So, every site admin receive another notification email with not relevant info, because password was not lost and changed, but created for the first time. For sites with many users, it is surprising and not needed... When user changes its password on Profile page, site admin also does not receive any notification. As I understand it, there is no difference when user set first password or reset lost password? It can be confusing for some users...
4) When site admin adds a new user, custom password can be set. But newly added user does not know about it? User received only standard ""Your username and password"" email with link to creation of new password: To set your password, visit the following address...
I am not sure, if I understand workflow completely, but it seems to me a little bit confusing..." pavelevap
38809 Better wp namespace in password-strength-meter.js Administration normal normal Future Release defect (bug) new 2016-11-15T23:27:37Z 2016-11-17T22:42:07Z "Currently, `password-strength-meter.js` uses this pattern to pass the wp object as argument:
{{{
window.wp = window.wp || {};
var passwordStrength;
(function($){
wp.passwordStrength = {
...
})(jQuery);
}}}
so `wp` inside the IIFE is, technically, undefined, even if WordPress considers `wp` a global object. Also the first line is pointless if then `window.wp` is not passed as argument." afercia 2
40218 Button and select box alignment issue in page view Administration normal normal Awaiting Review defect (bug) new has-patch 2017-03-21T12:33:37Z 2017-03-31T13:55:37Z "Hi,
Button and select box are not aligned in the page view. I have attached screenshot for more information.
Thanks" sagarprajapati 7
32502 Cannot advance the cursor through input fields on iOS Administration high major Awaiting Review defect (bug) new 2015-05-26T20:17:31Z 2016-03-28T19:10:40Z "On iOS devices, I can’t advance the cursor through text that lies beyond the bounds of the Title input. The cursor stops advancing through text once it hits the left or right border of the input field. This causes me to abandon my mobile session and pick up editing when I get to a laptop. Mobile abandonment of edit flow is not good.
This happens on all my iOS devices. Android looks good.
https://make.wordpress.org/flow/2015/05/26/advancing-the-cursor-through-input-fields-on-ios/" ryan 16
41100 Cannot delete categories, plugins, themes when using Firefox 54 on Ubuntu 17.04 Administration 4.8 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-06-20T11:29:54Z 2017-06-20T12:11:47Z "Hi,
Using Firefox 54.0+build3-0ubuntu0.17.04.1 I am unable to delete categories, plugins, or themes using wp-admin. I click delete and nothing happens.
This bug does not occur on Chromium.
Thanks!
Adrienne" freudianslit 1
39762 Change in DOM Element Properties as seen in Javascript Event Handlers Between 4.6.2 and 4.7+ Administration 4.7 normal normal Awaiting Review defect (bug) new 2017-02-01T22:37:55Z 2017-02-01T22:55:07Z "I'm seeing a problem that appears to be related to the change introduced by ticket #37973 in 4.7. I don't see this issue in 4.6.2. I filed ticket #39739 earlier this week that documented another problem related to this change as well.
This problem is also related to a ""select all"" checkbox but has to do with the state of child checkboxes within javascript event handlers being different between 4.6.2 and 4.7. In short, I have an event handler for ""click"" for the ""manage-column check-column"" checkbox (simplified HTML shown below). This event handler looks for child checkboxes in the table (""nslb_import_rows"") and triggers their ""click"" event accordingly. The ""click"" events are triggered so that additional HTML can be displayed on the page if certain conditions are met when the individual rows are selected / unselected or en masse via this ""select all"".
{{{

Name

Steven

David

}}}
Please note the first element with the class ""nslb-dynamic-content"". As the name implies, this content is created dynamically and added to the page via javascript as certain other options on the page are chosen. Because the inner HTML is added dynamically, when this code in common.js at line 459 at the 4.6.2 level executes:
{{{
$('thead, tfoot').find('.check-column :checkbox').on( 'click.wp-toggle-checkboxes', function( event ) {
...
}}}
it doesn't find any elements that match the search criteria as they are not present on the page yet, therefore no event handlers are registered here. The HTML at this point would look only like this:
{{{

}}}
Conversely, the code in common.js at 4.7+ on line 452 that replaced this line
{{{
$body.on( 'click.wp-toggle-checkboxes', 'thead .check-column :checkbox, tfoot .check-column :checkbox', function( event ) {
...
}}}
fires when the ""manage-column check-column"" checkbox is clicked even though it's in HTML that is added dynamically. This is because the line in 4.7+ handles click events in the body and then evaluates whether or not a ""check-column"" checkbox was clicked in a

or

as part of click event processing itself thereby finding my ""manage-column check-column"" checkbox"" in the DOM at that point.
The net of effect of all this is a change in the value of the ""clicked"" property of these child checkboxes when my own click event handler executes. For example, in 4.6.2, if no checkboxes are selected on the page and I click my ""manage-column check-column"" checkbox, the ""clicked"" properties for the child checkboxes are ""false"" because the event handler on line 459 in common.js doesn't execute. However, in 4.7+ given the same scenario, the ""clicked"" properties for the child checkboxes are already ""true"" because the event handler on line 452 in common.js does execute each time.
You could actually argue the behavior in 4.6.2 is defective since the handler does not get registered for ""check-column"" checkboxes added dynamically. FYI, if I hard code this exact HTML statically, then the 4.6.2 event handler does get registered and the ""clicked"" property for child checkboxes is consistent between 4.6.2 and 4.7+.
Additionally, the code in common.js at the 4.7+ level could potentially trigger the ""click"" event for any child checkboxes it finds as opposed to just modifying their ""checked"" property, although I'm not sure of the ramifications of that type change." reldev
40118 Clicking top level admin menu links on mobile does not take you to those sections Administration normal normal Awaiting Review defect (bug) new 2017-03-12T12:13:47Z 2017-05-29T05:49:51Z If you click 'Media' op 'Posts' on desktop you go to those sections. In testing on an iPhone 7 Plus this did not happen. I would suggest on mobile you need those quick links even more. karmatosed 3
36512 Color picker has disappeared from input in custom post type. Administration 4.5 normal normal Awaiting Review defect (bug) new 2016-04-13T14:55:37Z 2016-04-13T16:21:05Z "In a custom plugin I've created some metaboxes with color picker fields.
Here how I call the color picker style :
{{{
add_action( 'admin_enqueue_scripts', 'le_chiffre_add_color_picker' );
function le_chiffre_add_color_picker( $hook ) {
// $hook to apply a check for admin page.
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_script( 'custom-script-handle', plugins_url( 'custom-script.js', __FILE__ ), array( 'wp-color-picker' ), false, true );
}
}}}
the HTML input (created dynamically):
{{{
}}}
and the js for my input fields, loading the color picker:
{{{
(function( $ ) {
// Add Color Picker to all inputs that have 'color-field' class
$(function() {
$('.color-field').each(function(){
$(this).wpColorPicker();
});
});
})( jQuery );
}}}
With WordPress 4.4.2 everything worked like a charm (I even did a reverse from 4.5 to 4.4.2 to be sure of it) and now with the 4.5 version, the color picker doesn't show up on my fields...
I didn't found anybody having the same issue.
Have a nice day
David THOMAS
" anou 1
35785 "Concatenating ""wp-post-new-reload=true"" with URL repeatedly" Administration normal normal Awaiting Review defect (bug) new 2016-02-09T18:33:12Z 2016-04-28T10:47:12Z "Concatenating ""wp-post-new-reload=true"" with URL repeatedly when a meta box has required field and user click on ""Publish"" button without filling it properly:
http://screencast-o-matic.com/watch/cDnQFFhRcR
" codename065 1
31593 Conflict of custom post type menu and add_utility_page Administration 4.1.1 normal normal Awaiting Review defect (bug) new 2015-03-11T07:00:51Z 2015-03-11T11:51:01Z "I installed a plugin that register_post_type with menu_position 80. Thereafter, I installed a plugin to add a menu by add_utility_page. Then the menu of menu_position 80 is disappeared.
Where I examined, I think there is a problem with the count up of `$_wp_last_utility_menu`, but is this correct specification?
This is the sample code.
{{{
function test_add_utility_page() {
add_utility_page(
'test_utility_page',
'test_utility_page',
'edit_posts',
'test_utility_page',
'__return_false'
);
}
add_action( 'admin_menu', 'test_add_utility_page' );
function test_register_post_type() {
register_post_type( 'test_post_type', array(
'labels' => array(
'name' => 'test_post_type',
),
'public' => true,
'menu_position' => 80,
) );
}
add_action( 'init', 'test_register_post_type' );
}}}" inc2734 3
26050 Continual Admin Page POST (HeartBeats?) Can Cause SQL Connection Issues Administration 3.6 normal normal Awaiting Review defect (bug) new 2013-11-15T19:14:10Z 2016-11-21T18:50:10Z "The admin pages (/wp-admin/widget.php, /wp-admin/index.php, etc..) will continually POST to admin-ajax.php ever 2.5-3 min. If multiple admin pages are open for long periods of time(ex. over night) the SQL Connections associated with the POSTs will begin to progressively have longer sleep times. I have seen MYSQL Connecitons Sleep upwards of 45 seconds from these POSTs.
This ultimately cause my Server/Account to be shutdown by my host due to the long sleep time taking up connections for no reason.
I wouldn't expect the Connections to progressively sleep longer. I was surprised to find that the pages were Sending POSTs even when they were not being used(before I knew about the heartbeat api).
Is this the expected experience/results? Should there be a sleep setting on these POSTs to stop after a given time frame? Or can all of these be rolled into 1 POST?
To Reproduce:
Open up the following in their own tabs: /wp-admin/widgets.php, /wp-admin/index.php, /wp-admin/theme.php, /wp-admin/theme-edit.php, /wp-admin/plugins.php, /wp-admin/post.php
Verify they are making post requests ever 2.5-3min, I use Tamper Data add-on for firefox, but fiddler or any other http collector will do.
In MYSQL watch the connections by using the command: show full processlist;
run the SQL command as soon as you see the POST occur in tamper data or fiddler. Notice the Sleep and time is 0 for the POST request. you might not see it in the process list at first since it is so quick.
Once POSTs are occuring ever few min and MySQL is setup to view processes/connections leave the pages open over night.
Then test again in the morning by viewing the processlist once you see a POST submitted. It usually easiest to see when post are submitted around the same time. You will notice the sleep time has increased and you will also notice that the response times for the POSTs have increased.
I reproduced this on twenty-thirteen theme with all plugins deactivated and using firefox." optimized-marketing.com 15
26588 Dashboard menu in iPhone 4S / iOS7 Administration 3.8 normal normal Awaiting Review defect (bug) new 2013-12-12T22:26:22Z 2016-07-04T00:03:22Z Touch event on main menu options (Posts, Media, Links etc.) opens and instantly closes the menu again. Thereby blocking the function of the menu. markhowellsmead 2
26575 Dashboard widgets should be able to specify a min-width at which they span two columns Administration 3.8 normal normal Awaiting Review defect (bug) new 2013-12-12T19:34:01Z 2015-07-29T13:09:57Z Some dashboard widgets [http://imtheirwebguy.com/dont-hit-update-just-yet-wp-3-8-overhauls-ui-breaks-dashboard-widgets/ don't do well in skinny columns]. Maybe we should let them specify a min-width. If breached, they could span two columns. Certainly would be useful for stats/traffic widgets. markjaquith 5
41078 Detect if someone’s site is under version control, and suggest better ways to edit their sites Administration normal normal Awaiting Review defect (bug) new 2017-06-15T14:51:12Z 2017-06-21T20:37:41Z Can we detect if someone’s site is under version control, and suggest better ways to edit their sites if they try to make changes using the Code Editors? karmatosed 3
41363 Document nocache_headers() usage in wp-admin/admin-post.php Administration normal normal Awaiting Review defect (bug) new 2017-07-19T07:57:14Z 2017-08-05T14:19:42Z nocache_headers(); is used but unclear as to what it actually does. documentation need improvement ronakganatra 1
41478 Documentation need to be improved Administration normal normal Awaiting Review defect (bug) new 2017-07-29T10:16:46Z 2017-07-29T10:21:34Z tejas5989
32655 Don't save screen options (table column) in post edit page and maybe other pages Administration 4.1 normal normal Awaiting Review defect (bug) new 2015-06-15T23:53:53Z 2015-06-18T18:22:54Z "I fixed it so...
wp-includes/user.php
row 364
{{{
if ( $user->has_prop( $option ) )
$result = $user->get( $option );
elseif ( $user->has_prop( $prefix . $option ) )
$result = $user->get( $prefix . $option );
else
$result = false;
----
//todo bag user options delete this
// if ( $user->has_prop( $prefix . $option ) ) // Blog specific
// $result = $user->get( $prefix . $option );
// elseif ( $user->has_prop( $option ) ) // User specific and cross-blog
// $result = $user->get( $option );
// else
// $result = false;
}}}
" Juriy 4
27162 Don't store admin messages in transients Administration 3.0 low normal Awaiting Review defect (bug) new 2014-02-20T02:52:23Z 2015-02-19T22:45:27Z "The settings errors API (`add_settings_error`/`get_settings_errors`) in core uses transients to store messages across requests. Unfortunately, this is a misuse of transients, as [http://journal.ryanmccue.info/296/youre-using-transients-wrong/ transients are not guaranteed to exist] for any length of time.
I've noticed this issue appear in two separate scenarios:
* When flushing the cache (after a deploy, e.g.): If you happen to flush the object cache between a `add_settings_error` call and the next page load, the message will disappear forever
* When disabling caching for testing purposes, the error will never be set/read (depending on how you disable it)
----
There's a few options I can see to fix this:
* Store them in options/usermeta: This keeps all the logic on the backend, but causes potentially costly writes to the database
* Store them in cookies (session data): This avoids the database write, but means we have to send extra data via the HTTP server, which might be filtering cookies (inbound and outbound). It also means we need to set a hash using a secret key to avoid allowing users to edit their cookies." rmccue 4
35155 Error messages still get covered over by wp admin menu. Administration 4.4 normal normal Awaiting Review defect (bug) new dev-feedback 2015-12-18T14:50:04Z 2016-03-08T00:32:01Z This is a follow-up to #26312. See attached. EmpireOfLight 7
32097 Extra margin in `post_submit_meta_box()` on non-public post types Administration 4.2 normal normal Awaiting Review defect (bug) new 2015-04-24T06:04:39Z 2015-05-23T04:36:43Z "If you're editing a published or scheduled post in a post type registered with `public => false`, there's now some extra space above ""Status.""" dlh 6
24545 Fix Admin Layout When Displaying Errors Administration 3.2 normal normal Awaiting Review defect (bug) new 2013-06-09T15:15:40Z 2015-12-18T17:04:17Z Whenever a PHP error is displayed in the backend, it causes WordPress layout to screw up on the options pages by enlarging the font size and pushing the footer up to the bottom of the viewport so that it's not at the bottom of the page, instead, the bottom of the screen up so when you scroll to the bottom of the page, it's actually 3/4 way or 1/2 way up the page. sunnyratilal 3
38637 Fix autocomplete search suggestions support for Safari + VoiceOver Administration normal normal Future Release defect (bug) new 2016-11-02T22:31:28Z 2016-11-07T18:51:22Z "Splitting this out from #33902.
The first implementation of a combobox with autocomplete search suggestions was the link inline toolbar in the Editor, implemented in #33301. In a first moment, that didn't work for Safari + VoiceOver, and a specific fix was introduced in WordPress 4.5.1, see #36458.
Worth noting the fix was extensively tested and confirmed to solve the issue. That was on El Capitan + Safari 9 + VoiceOver.
Now, some months later, both the link inline toolbar suggestions and the new implementation for the Tags autocomplete (see #33902) are not announced correctly when using Safari + VoiceOver, that is macOS Sierra + Safari 10 + VoiceOver. Not sure why, sometimes the wrong option gets announced. See screenshot below:
[[Image(https://cldup.com/rkDTqypw5Q.png)]]
Whether or not it's a Sierra/Safari 10 regression (very likely) a possible fix should be investigated. Note: the only example I've found working it's the Twitter search suggestion, which is a very similar implementation, so investigation should probably start from there. Any feedback welcome :)
" afercia 1
32017 Fix class name typo from 'hndle' to 'handle' Administration normal normal Awaiting Review defect (bug) new has-patch 2015-04-19T15:43:53Z 2015-12-06T21:54:24Z The typo was introduced in [8682] changeset. michalzuber 3
27543 Flyout submenu items can be hidden on Windows touch devices Administration 3.8 normal normal Future Release defect (bug) new 2014-03-27T06:08:29Z 2015-10-13T04:56:23Z "Spin out of #26482, specifically comment 5 and the related screenshot.
The fly out submenus are broken on Surface. The patch in #26482 fixes that issue for iOS, but we should circle back and fix it for Surface." samuelsidler 1
41286 Focus style and High Contrast Mode Administration normal normal Future Release defect (bug) new 2017-07-10T20:20:24Z 2017-07-17T16:33:21Z "Noticed during work done on Gutenberg, thanks to Simply Accessible. See https://github.com/WordPress/gutenberg/issues/1562#issuecomment-313476750
Operating systems have a high contrast mode to switch to a few-colors/high contrast version of what's rendered on the screen. While this seems to not cause issues on macOS, it does on Windows High Contrast Mode.
People with various vision issues use high contrast mode. People working in dark environments, for example TV production studios, often use it.
Windows High Contrast Mode removes any CSS box-shadow. Most of the WordPress focus styles in the admin are built with multiple box-shadows. As a consequence, with Windows High Contrast Mode turned on, there's no focus indication at all.
In order to be visible in High Contrast Mode, focus styles need to use an outline or a border. There are different techniques that work, they'd need to be tested across different platforms, browsers. etc. Also, WordPress sometimes makes use of the ""circular focus"" that would need some special treatment.
Worth noting, on Windows the High Contrast Mode works well with just Internet Explorer and Edge. Chrome doesn't support it (it has a dedicated extension and alternative themes). Firefox supports it partially.
It would be great to experiment new and improved focus styles. At the very least, the inner box-shadow could be replaced with an outline, that would probably change very little visually and allow focus to work in High Contrast Mode.
However, there are pending tickets on Trac and ongoing discussions to experiment new focus styes. See for example #34957, #34904, and #28599. This could be a good opportunity to give some new traction to those tickets and improve the focus styles both visually and for accessibility.
Screenshots in Microsoft Edge:
Current (note: the ""Published"" link is focused):
[[Image(https://cldup.com/rV8cVtW6ll.png)]]
Native browser outline:
[[Image(https://cldup.com/spJ88EG268.png)]]
Testing a 1px solid outline:
[[Image(https://cldup.com/-pFMs0tz_C.png)]]
" afercia 6
40610 HTML5 Validation error in Screen Options > Pagination Administration normal normal Future Release defect (bug) new has-patch 2017-04-30T09:51:34Z 2017-05-19T14:47:54Z "Error: Attribute “maxlength” is only allowed when the input type is “email”, “password”, “search”, “tel”, “text”, or “url”.
" Arena94 3
30343 "Hello Dolly borks ""Upload Plugin"" and ""Upload Theme"" on small screens." Administration normal normal Awaiting Review defect (bug) new has-patch 2014-11-14T17:27:45Z 2016-01-26T07:51:58Z "Pretty much what the title says. On smaller screens, the ""Upload Plugin"" and ""Upload Theme"" links on their respective installation pages have a funny wrap to them. Screenshots and patch to follow." voldemortensen 5
32233 Improve escaping in /wp-admin/includes/template.php Administration 4.3 normal normal Future Release defect (bug) new has-patch 2015-05-02T07:28:44Z 2015-06-22T21:36:45Z "It was brought to my attention that various output in /wp-admin/includes/template.php is missing proper escaping. This includes titles for settings sections and fields, inline Thickbox JS, and various translatable strings (the translations for which might accidentally or intentionally include problematic content).
This patch adds various escaping functions where needed.
" McGuive7 4
31783 In theme details modal Tags getting overlapped by action buttons Administration 4.1.1 normal normal Awaiting Review defect (bug) new has-patch 2015-03-27T09:17:25Z 2015-03-27T09:30:18Z "Go to Appearance -> Themes -> Theme Details.
In mobile devices tags getting overlapped by action buttons. This issue comes when current theme details modal opens.
I have attached screenshots taken in iPhone 6 portrait view.
[[Image(http://i.imgur.com/I82aZWk.png)]]" sagarjadhav 1
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 2016-10-01T22:39:00Z "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 3
41097 Incorrect parsing of Forwarded header generates warnings Administration 4.8 normal normal Awaiting Review defect (bug) new has-patch 2017-06-19T13:35:02Z 2017-06-19T13:36:20Z "WordPress 4.8 adds a function `WP_Community_Events::get_unsafe_client_ip()` which attempts to get the user's IP address from a set of headers (the code: https://github.com/WordPress/WordPress/blob/92175dbd33b51c47089f4c50853987e688b6291b/wp-admin/includes/class-wp-community-events.php#L238-L278 ).
It looks at the following headers:
{{{
// In order of preference, with the best ones for this purpose first.
$address_headers = array(
'HTTP_CLIENT_IP',
'HTTP_X_FORWARDED_FOR',
'HTTP_X_FORWARDED',
'HTTP_X_CLUSTER_CLIENT_IP',
'HTTP_FORWARDED_FOR',
'HTTP_FORWARDED',
'REMOTE_ADDR',
);
}}}
It treats them all as comma-delimited lists of IP addresses which is incorrect. This is because the `Forwarded` header as defined in RFC 7239 ( https://tools.ietf.org/html/rfc7239 ) looks like this:
{{{
Examples:
Forwarded: for=""_gazonk""
Forwarded: For=""[2001:db8:cafe::17]:4711""
Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43
Forwarded: for=192.0.2.43, for=198.51.100.17
}}}
Steps to reproduce the problem:
1. Install a browser extension that allows setting arbitrary headers (I'm using ModHeader: https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj )
2. Use the browser extension to set a realistic `Forwarded` header such as: `Forwarded: for=2001:db8::1, by=2001:db8::2`
3. Visit `/wp-admin/`
The following warnings will appear in your logs:
{{{
PHP Warning: inet_pton(): Unrecognized address for=2001:db8::1 in /var/www/html/wp-admin/includes/class-wp-community-events.php on line 268
PHP Warning: inet_pton(): Unrecognized address for=2001:db8::1 in /var/www/html/wp-admin/includes/class-wp-community-events.php on line 274
PHP Warning: A non-numeric value encountered in /var/www/html/wp-admin/includes/class-wp-community-events.php on line 274
PHP Warning: inet_ntop(): Invalid in_addr value in /var/www/html/wp-admin/includes/class-wp-community-events.php on line 274
}}}" tomdxw
38304 It is not possible to filter posts by category or date on mobile devices Administration 3.8 normal normal Awaiting Review defect (bug) new has-patch 2016-10-13T15:08:15Z 2017-06-26T16:25:04Z On mobile devices, this [https://github.com/WordPress/WordPress/blob/4.6.1/wp-admin/css/list-tables.css#L1703-L1706 css rule] hides the actions available at the top of the posts list table. This is not a major issue for bulk actions as the we can find them at the bottom of the list table, but filters (category, date) are totally hidden. Chouby 4
40985 Lack of Screen Options toggle on mobile prevents accessing features Administration normal normal Future Release defect (bug) new dev-feedback 2017-06-09T20:34:35Z 2017-06-26T16:14:17Z "I recently needed to disable comments on a particular post while away from my laptop. I opened the post editing screen on my mobile device but the `Discussion` meta box was hidden and there is no way to access Screen Options on mobile to show/hide meta boxes. This meant I was unable to disable comments on the post from my mobile device.
I'd like to propose that when the Screen Options toggle is hidden to to a narrow viewport width, that all meta boxes are shown but the ""hidden"" ones are simply collapsed, thus making them accessible on mobile devices." johnbillion 3
37148 Links in notification emails appearing as https Administration normal normal Awaiting Review defect (bug) new 2016-06-22T08:38:31Z 2017-03-01T14:03:39Z "I have received several notification emails as an Administrator instructing me that Wordpress has been updated to the latest version.
However, all of the links contained within all of the emails output the URL as https://, and not whatever is stated within the Wordpress Site URL setting in General.
This leads to any link that is visited displaying a 'Connection not secure' message, as there is no SSL certificate for that domain name." leec87 6
33002 List table: avoid redundant Edit links and reduce noise for screen readers Administration 4.2 normal normal Future Release defect (bug) new 2015-07-15T14:01:49Z 2016-12-12T17:35:52Z "Splitting this out from #32254.
In all the List Tables (except Comments) there are redundant adjacent ""Edit"" links. They have different text and they point to the same resource (the edit screen). For example, in the screenshot below ""Scheduled"" and ""Edit"" (the row actions one) serve the same purpose.
[[Image(https://cldup.com/jY65ziCiL4.png)]]
As pointed out in #32254 the row actions ""Edit"" link may represent some sort of feedback given to users about what they can do, specifically if they have permission to edit and I see the potential confusion in removing it.
On the other hand, that's completely redundant and confusing for screen reader users who will just hear the same information twice, multiplied for the default 20 items per page makes a total of 40 ""Edit"" links. Considering also the title attributes, screen readers will read out something like this:
{{{
Scheduled link Edit “Scheduled”
Edit link Edit this item
}}}
We should try to find a way to hide the redundant link just for assistive technologies. Would be a bit tricky since `aria-hidden` would silence screen readers but wouldn't remove the tab stop. Any thoughts more than welcome.
" afercia 7
39106 Make hierarchy level indicator text changeable [WP List] Administration 4.6.1 normal normal Awaiting Review defect (bug) new 2016-12-06T10:09:08Z 2016-12-06T11:36:15Z "
In `WP_Posts_List_Table` class, dashes(—) used to indicate the hierarchy level of post item, which is not changeble by any filter, we can add a new filter to replace this string.
{{{
$pad = str_repeat( '— ', $this->current_level );
}}}
https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-posts-list-table.php#L918-L919
Source: http://wordpress.stackexchange.com/questions/248405/replace-dashes-before-title-in-page-list" gk.loveweb
31000 Multiple calls to settings_errors() result in duplicate display of notices Administration 3.9 normal normal Awaiting Review defect (bug) new 2015-01-13T09:07:28Z 2015-06-23T15:38:55Z "`settings_errors()` is called by default on options pages and numerous plugins and themes whose pages aren't under the options submenu will also call it.
Good, maybe even great, as so many have obviously adopted to using this.
The issue arises when, for instance, a plugin uses a call to `settings_errors()` hooked into `admin_notices` to display their notices across all pages. In that case, their message will be displayed twice on any pages also calling `settings_errors()`.
Now a plugin can check if they are on an options page and - knowing that the messages will be displayed there anyhow - forgo the call to `settings_errors( 'my-messages' )` there. But there is no way for a plugin to test if another theme/plugin outside of the options pages is also making the `settings_errors()` call.
I would suggest unsetting any messages which are displayed from within the settings_errors() call to avoid duplicate messages ever being shown.
" jrf 3
36470 Multisite - network sites list not very memory efficient Administration 4.3 normal normal Awaiting Review defect (bug) new 2016-04-11T09:16:40Z 2016-04-11T09:16:40Z "This recent change in 4.3 to add user counts to multisite network admin sites list can cause out of memory errors on installs with many thousands of users...
https://core.trac.wordpress.org/attachment/ticket/32434/32434.2.patch
On a vanilla WPMU install with 200,000 users (bulk generated by wp-cli) the wp-admin memory footprint for the network admin sites list page can be as low as 32Mb when running WP4.2 - simply upgrading to WP4.3 requires you to increase this to 128Mb (~4x) for this size user base. The memory requirement keeps increasing as the user base increases (unsustainable).
The problem in the code referenced in the patch above is that all users for a blog are selected out of the DB and then a count is done in PHP - this requires more memory than is ideal - selecting just the count will be quicker and more memory efficient." Bombdogs
35505 Navigation tabs styling inconsistencies Administration 4.4.1 normal normal Awaiting Review defect (bug) new 2016-01-17T23:07:58Z 2016-01-21T11:04:09Z "This is a follow-up to #34214.
Still an issue at max-screen width 600px (mobile)." Cybr 7
38076 Network admin plugin pages can be accessed on non-multisite Administration normal normal Awaiting Review defect (bug) new 2016-09-16T19:56:07Z 2016-09-16T19:56:07Z "I just noticed that it's theoretically possible to access a plugin-generated page in the network admin panel even if we're not on a multisite setup. The same applies to the user admin panel as well.
To replicate, create a plugin that uses `add_menu_page()` with a slug `my_test_page`, hooked into `network_admin_menu`. Then manually go to the URL `http://yourdomain.com/wp-admin/network/admin.php?page=my_test_page`.
This happens because the `is_multisite()` check happens only after including the general `wp-admin/admin.php` administration bootstrap file which takes care of any plugin pages by itself. The problem is we can't do it before because WordPress hasn't been loaded then. A possible solution would be to split the `require_once` statement in `wp-admin/network/admin.php` into two, one to load the WordPress core functions, the other to load `wp-admin/admin.php`.
I don't think this is a very critical issue, but I thought it should be a ticket. It's very unlikely that anyone tries to access a network admin URL when they don't have a multisite. On the other hand, we catch that in other areas (through `! is_multisite()` checks), so we might try to do it here as well." flixos90
39074 No method to move meta boxes using keyboard Administration normal normal Future Release defect (bug) new 2016-12-04T21:02:34Z 2016-12-12T17:14:05Z "Using a mouse, meta boxes can be moved to a new order in the DOM or to a different column. There's no method to do this using the keyboard.
Especially with several plugins installed, being able to customize which meta boxes are closest in tab sequence can be quite helpful for editing efficiency.
I assume this has been in since whatever version added sortable metaboxes." joedolson 2
37712 Opacity not applied to admin menu icon when it selected Administration normal normal Future Release defect (bug) new has-patch 2016-08-18T08:09:28Z 2017-02-18T23:28:49Z "Opacity not applied to single menu with custom menu logo when it selected.
But it work fine where menu has sub-menu and following css applied for it.
{{{
#adminmenu li.menu-top:hover .wp-menu-image img, #adminmenu li.wp-has-current-submenu .wp-menu-image img {
opacity: 1;
}
}}}
So here css rule missing for single menu with custom menu logo.
When I applied following css then it work fine.
{{{
#adminmenu li.menu-top.current .wp-menu-image img {
opacity: 1;
}
}}}
" chandrapatel
40927 Passing a float as the position in add_menu_page can override other menu items Administration 4.8 normal normal Future Release defect (bug) new has-patch 2017-06-05T23:26:20Z 2017-06-07T21:13:37Z "If you pass a float value for the `$position` argument of `add_menu_page`, PHP will convert it to an integer which overrides any other menu items with that position.
Per the [http://php.net/manual/en/language.types.array.php PHP docs]...
>Floats are also cast to integers, which means that the fractional part will be truncated. E.g. the key 8.7 will actually be stored under 8.
You can see this happening with the following snippet. The Test 2 menu item will show but Test 1 will not.
{{{#!php
Add menu items
- Editor > Insert/Edit link > Search
- any other places?
For a comprehensive view of all the potential issues, I'd refer to the list of resources below. I'd recommend everyone to have a look at those posts.
I'd say the issues can be grouped in three different categories: accessibility, usability, and performance. Just to mention some of the most relevant ones:
- a11y: it's impossible or very hard for keyboard users to reach content placed after an infinite scrolling region: think for example at the Media Grid, where tabbing through attachments loads more and more attachments (potentially hundreds or thousands of them) forcing users to keep tabbing indefinitely
- a11y: no audible feedback or instructions about how infinite scrolling works, the current and total number of items, or when new items get loaded
- usability: infinite scrolling often breaks the browser's history
- usability: there's no JS fallback
- performance: memory footprint can be huge, especially when loading hundreds of big images, see the Theme install screens
Resources mostly focused on accessibility:
http://adrianroselli.com/2014/05/so-you-think-you-built-good-infinite.html
http://simplyaccessible.com/article/infinite-scrolling/
http://www.webaxe.org/infinite-scrolling-and-accessibility/
http://www.ssbbartgroup.com/blog/infinite-scrolling-impact-on-assistive-technologies-series-1/
Resources mostly focused on usability:
https://webmasters.googleblog.com/2014/02/infinite-scroll-search-friendly.html
https://www.nngroup.com/articles/infinite-scrolling/
https://www.sitepoint.com/ux-infinite-scroll-good-bad-maybe/
http://www.webdesignerdepot.com/2015/11/how-infinite-scrolling-breaks-ux/
https://www.smashingmagazine.com/2016/03/pagination-infinite-scrolling-load-more-buttons/
https://www.smashingmagazine.com/2013/05/infinite-scrolling-lets-get-to-the-bottom-of-this/
Resources focused on memory footprint:
http://engineering.linkedin.com/linkedin-ipad-5-techniques-smooth-infinite-scrolling-html5
https://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story/
http://dannysu.com/2012/07/07/infinite-scroll-memory-optimization/
Maybe for the future: the ARIA role `feed`
https://www.w3.org/TR/wai-aria-1.1/#feed
(at the time of writing, ARIA 1.1 is still a Candidate Recommendation, and as far as I know, no assistive technologies support the role `feed`)
See also: http://www.ssbbartgroup.com/blog/differences-aria-1-0-1-1-additions-role/
See #19815, #28927, #28998.
" afercia 5
35204 Refresh HiDPI support Administration normal normal Awaiting Review defect (bug) new 2015-12-22T19:38:43Z 2015-12-22T20:30:44Z "As a continuation of #22238... In newer versions of Chrome, loading the admin bar CSS provides these console warnings:
> Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: print, not all, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) Consider using 'dppx' units, as in CSS 'dpi' means dots-per-CSS-inch, not dots-per-physical-inch, so does not correspond to the actual 'dpi' of a screen. In media query expression: print, not all, (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi)
This was enabled first in ​[22629].
Matt Micklick (@iammattthomas) researched and suggests we update as follows.
This is what our HiDPI media query looks like:
{{{
@media print,
(-o-min-device-pixel-ratio:5/4),
(-webkit-min-device-pixel-ratio: 1.25),
(min-resolution: 120dpi) {
/* Styles go here */
}
}}}
We specify min-resolution in dpi because of browser support. While Firefox, Chrome, and Opera support min-resolution and the dppx unit, Internet Explorer and Safari do not. Specifically, the most current version of IE supports min-resolution declared in dpi but not dppx. The most recent version of Safari only recognizes -webkit-min-device-pixel-ratio.
In order to avoid notices in the Chrome console, we can add an additional declaration of min-resolution in dppx. We'll add it last, so that browsers that support it will use it.
As a bonus, we can remove the Opera-specific selector. Since Opera has used Blink as its layout engine for over a year there's no need to continue including it. Opera's CSS support now mirrors Chrome's.
Finally we'll move the Webkit-specific selector last in the set, as we do with other browser-specific declarations in CSS. So the new syntax would look like this:
{{{
@media print,
(min-resolution: 120dpi),
(min-resolution: 1.25dppx),
(-webkit-min-device-pixel-ratio: 1.25) {
/* Styles go here */
}
}}}
" lancewillett 3
19085 Removing First Submenu Page in Admin Menu breaks URL for Menu Page Administration 3.1 normal normal Awaiting Review defect (bug) new has-patch 2011-10-29T18:44:19Z 2015-10-25T01:31:49Z "If you attempt to remove the Post Type Submenu Page in the Admin it breaks the Menu Page URL; it causes the Menu Page URL to be the same as the new first Submenu Page URL:
[[Image(http://screenshots.newclarity.net/skitched-20111029-142108.png)]]
Here is a simple class you can drop into the theme's `functions.php` file to experience this bug. This example is a minimum to trigger the error ''(I simplified the `register_post_type()` call so the example code would have fewer lines):''
{{{
'Test CPT',
'show_ui' => true,
));
}
static function parent_file( $parent_file ) {
remove_submenu_page( 'edit.php?post_type=test-cpt',
'edit.php?post_type=test-cpt' );
return $parent_file;
}
}
Trigger_Admin_Menu_Bug::on_load();
}}}
I'd provide a patch but the admin menu code is more complex than I can fully understand. Maybe the person who originally wrote it could fix it?
Note: Sadly, this is a blocker for one of my client projects. The client wants the admin menus simplified to reduce the conceptual load on their end users because we are adding many other submenu pages. Plus I've traced through the core WP code with a debugger for many hours looking for hooks that would allow me to get around this issue, but there simply are no hooks where it would be needed to hack a fix for this." mikeschinkel 10
40925 Review the usage of the change event on select elements Administration normal normal Future Release defect (bug) new 2017-06-05T12:47:01Z 2017-07-31T16:49:56Z "See also #31634
The change event can be problematic when used on select elements because browsers fire the event in different ways across different platforms. In this ticket I'll try to clarify what this difference is, why it matters for keyboard users, and why some actions shouldn't be triggered when a select option gets selected.
On macOS, when using the keyboard to navigate content and a select element gets focused, using the arrow keys always opens the select ""drop-down"":
[[Image(https://cldup.com/rU6roN4wAO.png)]]
This behavior allows users to explore the content of the select, scroll through the options, and select an option pressing Enter or Spacebar. This way, the change event fires after an explicit user action.
Instead, on Windows using the arrow keys on a select doesn't automatically open the ""drop-down"". To clarify what happens, I've made a short video using the Archives and Categories widgets as an example: https://cloudup.com/iuFxQ7CkA7k
Historically, this behavior was typical of all browsers on Windows, except Firefox. However, a recent change made Firefox behave like all the other browsers. For more details, see https://bugzilla.mozilla.org/show_bug.cgi?id=1350700
Since the drop-down doesn't open (it does only when pressing Alt+Down arrow), it's hard to scroll the list of options without firing the event at each arrow keys press. Users would need to explore the content of the select before making a choice, and to do so they use the arrow keys. However, while exploring the select content, the action associated to the change event runs. In the case of these widgets, the action triggers a full page reload.
Actions that have a big impact like a full page reload or a complete change of context should only be triggered after an intentional choice of the user, i.e. when pressing a button close to the select. In other cases, when the action triggers minor changes, using the change event could be OK. The best option would probably be to evaluate the interaction on a case by case basis.
There are a few places in WordPress where the change event is used this way, not pretending to be a complete list, here's some of them:
Media views:
- Filter by type
- Filter by date
Customizer
- Menu > Menu locations
- Static front page > A static page" afercia 4
41077 Revisions for code edits Administration normal normal Awaiting Review defect (bug) new 2017-06-15T14:47:58Z 2017-06-16T13:46:35Z "We should let people restore previous versions of their code in case they make mistakes.
More details TBA." karmatosed 2
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 2015-12-03T19:59:05Z "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 '

'; print_r( $columnshidden ); echo '

';
}
add_action('all_admin_notices', 'echo_current_user_manageedit_pagecolumnshidden');
}}}
**Output for the broken tables :**
{{{
Array
(
[0] => cb
[1] => title
[2] =>
[3] =>
)
}}}
----------
After determining that `cb` & `title` were in fact added to the `$meta_value`you need to fix the table. This will do the trick:
{{{
function delete_current_user_manageedit_pagecolumnshidden() {
$user_id = get_current_user_id();
$meta_key = 'manageedit-pagecolumnshidden';
if( get_user_meta($user_id, $meta_key) )
delete_user_meta( $user_id, $meta_key );
}
add_action ('admin_init', 'delete_current_user_manageedit_pagecolumnshidden');
}}}
''Side-Notes:''
*`columnshidden` appears [`wp_ajax_hidden_columns()`][1] & [`get_hidden_columns()`][2]
*client-side functionality appears to be here in [`common.js`][3] which checks for the [hidden table headers][4]
----------
Similar issues with the screen options can be recreated for different situations that have nothing to do with the tables.
**Recreate similar issue on nav-menus.php**
1. Go to http://example.com/wp-admin/nav-menus.php
2. Uncheck all the fields in the *""Show advanced menu properties""* Screen-Options tab
3. Add the screen options filter to hide them from display: `add_filter('screen_options_show_screen', 'remove_screen_options_tab');`
4. Reload http://example.com/wp-admin/nav-menus.php
All of the hidden advanced menu properties will now be broken and are all visible even though they were unchecked. I'm not sure if this is the same issue, but it appears that overall screen options have a high change of not working properly
----------
----------
**Other-Notes**
These issues of broken tables might also have to do with the same functionality problem of how screen options update/render:
http://wordpress.stackexchange.com/questions/31154/wp-list-table-custom-quick-edit-box-post-meta-data-missing-and-columns-change
http://wordpress.stackexchange.com/questions/123182/custom-admin-column-disappearing-when-using-quick-edit?lq=1
http://wordpress.stackexchange.com/questions/144361/wordpress-admin-wp-table-list-show-incorrectly
#21016
[1]: https://github.com/WordPress/WordPress/blob/448275cce483138f53ccfa586b2d28b7fe8b0785/wp-admin/includes/screen.php#L55
[2]: https://github.com/WordPress/WordPress/blob/270a57075c290736387b6551670fde34fb3f1851/wp-admin/includes/ajax-actions.php#L1307
[3]: https://github.com/WordPress/WordPress/blob/448275cce483138f53ccfa586b2d28b7fe8b0785/wp-admin/js/common.js#L29
[4]: https://github.com/WordPress/WordPress/blob/448275cce483138f53ccfa586b2d28b7fe8b0785/wp-admin/includes/screen.php#L17
[5]: http://codex.wordpress.org/Plugin_API/Filter_Reference/manage_$post_type_posts_columns" codecandid 4
38754 Screen Options in post listing, image checkbox option is trigger in comments checkbox option Administration 4.6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2016-11-11T10:19:22Z 2016-11-11T10:22:33Z "In post list, when I check the image option in ""Screen Options"" nothing happen, just if comment is checheck. The imagem and comment is working with the same checkbox!" pesseba 1
36123 Screen Options not shown on mobile Administration 4.4.2 normal normal Awaiting Review defect (bug) new 2016-03-06T00:25:27Z 2016-05-12T07:41:32Z "On desktop, the ""Desktop settings"" are shown in the upper right part of the window.o on mobile, this part is completely missing" marco.marsala 5
35288 Search Engines Discouraged message improvements Administration normal normal Future Release defect (bug) new has-patch 2016-01-02T14:54:11Z 2016-10-09T21:35:38Z "While working on #35049 was wondering why this text is capitalized. Investigated a bit and realized this message could probably be improved a bit too, especially now that its title attribute is going to be removed.
At the very least, I'd propose to don't use capitalized text and try to style it to make it a bit more evident.
TL;DR
As noted in the ticket that introduced it, users may forget to turn privacy mode off with disastrous consequences in search results. So, as a first step, the message should probably be made a bit more evident. Please consider the ""At a Glance"" widget can display additional things (updates, network storage) and plugins can add their own stuff. See screenshot below:
[[Image(https://cldup.com/uN1C3IyYRl.png)]]
Being in the middle of all that text, the message looks somehow hidden and not so prominent as it should be. WordPress already has CSS classes for this, thinking at notices (maybe `notice-warning` ?). It would be great to have a design proposal from UI people and designers :)
Also, was thinking there's probably no need to use a so short text because the widget provides enough room to use a more meaningful message and link.
As a general rule, text used for links should be self-explanatory, make sense even when read out of context, and should describe the link purpose. Introducing changes here can be a bit tricky since there are filters in place so I'd consider this part optional but also a nice improvement worth considering.
Ideally, there should be some text to indicate the privacy status followed by a meaningful link. Since in the related options page this setting is called ""Search Engine Visibility"" (but it can be ""Site Visibility"" and use radio buttons if the `blog_privacy_selector` action is used. see [21838], the discussion on the related ticket #16416, and [https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2012-08-29&sort=asc#m446982 the discussion on IRC]) I'd propose to use something like this:
{{{
Search engines are currently asked not to index your content.[br]
[link]Change search engine visibility settings[/link]
}}}
For reference, here's some history:
introduced in #12211 and initially meant to look like a button because it was close to the ""Visit Site"" button:
[[Image(https://cldup.com/lYrYTBgNEU.png)]]
Since it looked like a button, text was capitalized following WordPress conventions ''and I guess this is the reason why it's still capitalized''. Then it was changed to look like a link and later the original ""Privacy On"" text was changed in ""Search Engines Blocked"". Still capitalized :)
[[Image(https://cldup.com/FDsJzQk_ca.png)]]
Then it went through many other changes:
- visually changed from a button to a link in [13182]
- restricted by capabilities in [13559]
- text changed from ""Privacy On"" to ""Search Engines Blocked"" in [13767]
- filters were introduced in [14237]
- moved from admin-header.php to the 'Right Now' widget in the Dashboard in [17829]
- text changed from 'Search Engines Blocked' to 'Search Engines Discouraged' in [21838]
- removed with the Dashboard redesign in [26144]
- then restored in [26700]" afercia 15
39842 Select All checkbox not working Administration 4.7.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-02-11T04:19:52Z 2017-02-13T16:02:36Z "I have checked all around the internet and forums and seen few people with the same problem but never resolved it.
I have installed several WP sites and when I click in Select ALL in the administration side it does not work.
Does not work for pages, comments, plugins nothing.
I have changed themes, I use the latest WP, I changed the PHP version, I really have no idea why the select all is not working.
I use different browsers too.
https://flic.kr/p/QJECZo
https://flic.kr/p/RQe6bX
Please help meeeeeeeeeeeeeeeeeeeeee
" starlyns 4
38671 Semantic elements for non-link links: async-upload.php Administration normal normal Future Release defect (bug) new 2016-11-04T16:57:52Z 2016-12-16T09:43:19Z "The ""Dismiss"" link that appears when an error occurs during the upload should be a button instead.
Related: #26504, #35126" Cheffheid 3
35339 Settings > Reading > Front Page Displays > Front Page and Posts Page Select Length of Text Administration 4.4 normal normal Awaiting Review defect (bug) new 2016-01-07T00:59:05Z 2016-07-26T19:33:37Z "When choosing the Front Page and Posts Page within Reading Settings, if you have really long post or page titles, these are not truncated, leading to a pretty bad looking Settings page.
Screenshot:
[[Image(http://slimbobwp.com/wp-content/uploads/2016/01/reading-settings-select-text-length.png)]]
This is further implicated if moving a column based admin as is discussed as having potential here: #16413
Expected output would be a limitation on the number of characters, what that limit should be is open for debate." robertwhitis 5
40505 Shift-click to select a range of checkboxes still not working with 4.7.4 update Administration 4.7.4 normal normal Awaiting Review defect (bug) new 2017-04-20T23:32:20Z 2017-04-20T23:32:20Z "This is a follow-up to #40056.
I had opened ticket #40092, but then closed it because #40056 covered the same territory. This ticket said this was fixed, but after upgrading to 4.7.4, I find that shift-clicking still does not work in the media library." femur
35182 Site icon URLs don't respect SSL in admin Administration 4.4 normal normal Awaiting Review defect (bug) new dev-feedback 2015-12-21T12:14:56Z 2016-03-09T14:15:14Z "It appears that the following check in `wp_get_attachment_url()`:
{{{#!php
if ( is_ssl() && ! is_admin() && 'wp-login.php' !== $GLOBALS['pagenow'] ) {
$url = set_url_scheme( $url );
}
}}}
prevents `get_site_icon_url()` from using SSL for serving the icon links in the head, which results in non-HTTPS icon URLs on all admin pages:
[[Image(http://kaspars.net/wp-content/uploads/2015/12/site-icon-url-https.png)]]
" kasparsd 5
35793 Something Wrong with UI in Administration Administration normal normal Awaiting Review defect (bug) new reporter-feedback 2016-02-10T02:26:04Z 2016-08-10T11:55:47Z "I'm using 4.4.2 now. And I think that there's something wrong with the UI in administration page.
Look at the sidebar in the image.
I have tried to remove the cache, it works. But it looks as the image shows working after viewing some pages.
" zjhzxhz 1
26655 Table pagination with many pages wraps on smaller screens Administration 3.8 normal normal Awaiting Review defect (bug) new 2013-12-16T19:25:09Z 2015-10-13T04:39:50Z "Reproducible in the vanilla 3.8 release and the current 3.9-trunk.
`edit-comments.php`'s navigation wraps on smartphone-sized displays (reproduced specifically on the 640px-wide iPhone 5s, also duplicated on similarly-dimensioned Android devices) when comment count matches or exceeds five digits, causing the page's display to overlap and become mostly unusable.
Screenshot illustrating the issue attached." pcrumm
31691 Taxonomies registered to Attachments post type don't show in media modal if public = false but show_ui = true. Administration 4.1.1 normal normal Awaiting Review defect (bug) new 2015-03-19T11:00:37Z 2015-11-25T06:07:00Z "If you register a taxonomy for the `attachment` post type with the parameters:
{{{
public => false,
show_ui => true
}}}
If correctly shows the UI meta box when viewing the old-style edit media page.
However, if doesn't show fields in the edit media modal.
If you set `public` to true then it does show.
The media modal should check the `show_ui` value to determine wether taxonomy fields should be shown in the attachment media modal." husobj 2
37384 Text alignment in options-discussion.php Administration 4.5.3 normal normal Awaiting Review defect (bug) new dev-feedback 2016-07-17T07:38:56Z 2016-10-21T06:25:24Z "Labels are not aligned same as other labels.Having different margin due to

tag.
Attached patch file. I am beginner in CSS, may be this style need improvement.
" Ankit K Gupta 7
40331 The placeholder attribute should not be used as a replacement for a label Administration normal normal Future Release defect (bug) new 2017-04-01T16:37:45Z 2017-04-21T15:21:29Z "This is the second ticket in the `a11y-task` series, which aims to start a discussion and research on broad accessibility issues. See also #40330.
Across the WordPress admin, the placeholder attribute is used in an inconsistent way. Sometimes it's used properly, sometimes not. For example, this is a good usage because the form fields have a visible label and the placeholder clarifies the expected format:
[[Image(https://cldup.com/G8zSR9UYzm.png)]]
[The ""Post via email"" section in the WordPress Writing Settings]
In other cases though, the placeholder attribute is used as a replacement for a label. While it's tempting for designers to use it this way, especially when screen real estate for a visible label is limited, this practice introduces accessibility (and usability) barriers and goes against the HTML5 specification.
Despite the fact labels and placeholders have distinct (and complementary) purposes, replacing labels with placeholders has become, unfortunately, a popular practice.
In the accessibility team we've discussed this issue a few times, and we'd like to propose to make an effort to change the current approach when using placeholders. Basically, the only use case when a placeholder used as a visual label can be considered acceptable, is when there's just one, simple, form field and its purpose is made very clear by the context. For example, a search field.
[https://make.wordpress.org/core/handbook/best-practices/coding-standards/accessibility-coding-standards/ WordPress aims to be as much accessible as possible], I'd say a good first step would be striving to conform to the WCAG and HTML5 specifications. One more good step would be avoiding to introduce new cases where the placeholder attribute is misused 🙂 .
There are lots of resources online about the placeholder issue, so I'd prefer to keep this ticket description short and refer to them, starting with what the HTML5 specification says:
https://www.w3.org/TR/html51/sec-forms.html#the-placeholder-attribute
> The placeholder attribute represents a short hint (a word or short phrase) '''intended to aid the user with data entry''' when the control has no value. A hint '''could be a sample value or a brief description of the expected format'''.
> '''The placeholder attribute should not be used as a replacement for a label.''' For a longer hint or other advisory text, place the text next to the control.
And then, in a big red-bordered box:
> '''Warning'''! Use of the placeholder attribute as a replacement for a label can reduce the accessibility and usability of the control for a range of users including older users and users with cognitive, mobility, fine motor skill or vision impairments. While the hint given by the control’s label is shown at all times, the short hint given in the placeholder attribute is only shown before the user enters a value. Furthermore, placeholder text may be mistaken for a pre-filled value, and as commonly implemented the default color of the placeholder text provides insufficient contrast and the lack of a separate visible label reduces the size of the hit region available for setting focus on the control.
Other resources:
W3C Web Accessibility Tutorials
https://www.w3.org/WAI/tutorials/forms/instructions/#placeholder-text
W3C WAI Wiki: Using @placeholder on input
http://www.w3.org/WAI/GL/wiki/Using_@placeholder_on_input
Léonie Watson: Using the HTML5 placeholder attribute
http://tink.uk/using-the-html5-placeholder-attribute
The Paciello Group. HTML5 Accessibility Chops: the placeholder attribute
http://www.paciellogroup.com/blog/2011/02/html5-accessibility-chops-the-placeholder-attribute/
WebAIM: Creating Accessible Forms
http://webaim.org/techniques/forms/advanced
Nielsen Norman Group. Placeholders in Form Fields Are Harmful
http://www.nngroup.com/articles/form-design-placeholders/
Roger Johansson - 456 Berea Street. The HTML5 placeholder attribute is not a substitute for the label element
http://www.456bereastreet.com/archive/201204/the_html5_placeholder_attribute_is_not_a_substitute_for_the_label_element/
Web Axe: Placeholder Attribute Is Not A Label!
http://www.webaxe.org/placeholder-attribute-is-not-a-label/
Mobile Form Usability: Never Use Inline Labels
https://baymard.com/blog/mobile-forms-avoid-inline-labels
See the ""Exceptions"" paragraph
" afercia 3
27473 Thickbox width and height parameters are ignored when using TB_iframe Administration 3.8 normal normal Awaiting Review defect (bug) new 2014-03-21T18:18:19Z 2016-09-02T15:06:35Z "I tried to load a thickbox with custom width and height parameters, like the codex says:
?TB_iframe=true&width=450&height=120
anyway regardsless of what values I use, custom with and height values are ignored.
I debugged /wp-includes/js/thickbox/thickbox.js and parameters are read in correctly,
anyway it does not have any effect when setting them for iframe-tag on line 198:
jQuery(""#TB_window"").append(""

""+caption+""

""+thickboxL10n.noiframes+"""");
I tried to add the following code to check if resize is possible:
jQuery(""#TB_window"").css(""width"",""450"");
jQuery(""#TB_window"").css(""height"",""120"");
this failed generally (although it worked when executing the command in the browser console)
" harmr 13
36933 TinyMCE failing when using ModPagespeed Administration 4.5.2 normal normal Awaiting Review defect (bug) new 2016-05-24T15:07:41Z 2016-07-03T16:37:51Z "TinyMCE Stops working correctly When using ModPagespeed module.
TypeError: wp.svgPainter is undefined
I needed to edit this file to fix the issue:
/wp-admin/js/svg-painter.js
" franmaWp 4
27851 Underscored text overflow on hover Administration 3.9 normal normal Awaiting Review defect (bug) new dev-feedback 2014-04-17T06:47:46Z 2015-08-19T16:23:14Z "[[Image(http://i.hizliresim.com/zRmaX4.png)]]
As you see on image, text overflow with CSS hover. " burakkaptan 6
37353 Unify look and feel of search forms and results across the admin Administration normal normal Future Release defect (bug) new 2016-07-13T11:44:41Z 2016-09-05T18:22:00Z "Split out from #37230, here's some feedback from @mapk:
> I have a design improvement for the search keyword display.
> Let's add a colon after the word 'for'. Then also remove the quotes from around the keyword term and make the keyword bold and black. Like this:
>
> [[Image(https://cldup.com/MW9tKDYw5v.png)]]
>
> So now if I include quotation marks in my search term, it will make more sense. Let's also make sure to have this reflected in the 'no results found' msg in the table too as I've mocked up below.
>
> [[Image(https://cldup.com/6gvdhFKkTw.png)]]
>
> Oh, and can we drop the ellipses (...) from the placeholder text in the search input field? Those drive me nuts. AND it looks like we're using Sentence Case (only capitalizing the first word) in the input field's placeholder text too, which is good, but let's have that reflect on the `plugin-install.php` page as well. Right now the `plugin-install.php` page is using Title Case.
>
> plugins.php
> [[Image(https://cldup.com/PKDbCtjHRB.png)]]
>
> plugin-install.php
> [[Image(https://cldup.com/mbXBXZfwOC.png)]]
It looks similar on `themes.php`, `comments.php` or `edit.php`, but then again totally different on other screens. See [comment:16:ticket:37230 this comment]." swissspidy 2
40165 "Update the ""Browse Happy"" dashboard widget" Administration normal normal Future Release defect (bug) new 2017-03-15T17:59:59Z 2017-05-19T15:02:45Z "It currently shows a (red) ""Your browser is insecure!"" warning for IE7, and (yellow) ""Your browser is out of date!"" notice for IE8, etc.
Microsoft discontinued support for IE8, 9 and 10 more than a year ago. There have been some security updates for some platforms but all of these browsers should be considered ""insecure"".
In these terms the ""Browse Happy"" widget would need an update to show the warning for all IE < 11." azaozz 3
41006 Upon update from 4.75 to 4.8 Redirects failed. Administration 4.8 normal normal Awaiting Review defect (bug) new close 2017-06-12T10:46:09Z 2017-06-14T02:07:39Z "I've just had to restore a site from a backup because wordpress is ignoring the redirects set (wordpress install in subdirectory using [https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory#Method_I_.28Without_URL_change.29.])
This happened after I allowed WordPress to auto-update.
After resetting the .htaccess to that recommended here, the site still was having issue as it was requesting /css/ /javascript/ and other resources from the root folder rather than the subdirectory and ignoring the redirect.
There have been no changes to the site between Thursday and the update.
" georgiel 5
40401 Value of data-colname in wp-list-table is not escaped Administration 4.3 normal normal Awaiting Review defect (bug) reopened has-patch 2017-04-10T10:23:25Z 2017-04-10T11:40:45Z "It looks like at some point the esc_attr() was removed in favor of wp_strip_all_tags
wp-admin/includes/class-wp-list-table.php
{{{#!php
Appearance > Themes > Theme Details.
Once we are on Theme Detail page then in case if the user wants to access any Sub Menu Navigation it not shows well, which goes behind the popup theme detail page.
For Ref. Screen Shot Attach
[[Image(https://s4.postimg.org/qvkwram4d/Screen-_Shot-2017-06-25-at-10.26.18-_AM.jpg)]]
Wordpress Version 4.8
Browser Check: SAFARI 10.1.1, Google Chrome 58.0
" codexdemon 6
27776 WordPress API timeouts should be cached to avoid slowing down the admin Administration 3.3 normal normal Awaiting Review defect (bug) new 2014-04-12T16:23:04Z 2014-12-28T01:11:30Z "The admin does several calls to the WordPress API, such as from the wp_check_browser_version function. These calls don't cache timeouts, which means if the API is consistently timing out the admin is slow on every load as all of these calls must timeout before the page can load.
I propose we cache timeouts using transients, for a day.
This behavior has been present since at least 3.3 and is still the behavior on trunk." brandon.wamboldt 3
9716 WordPress Theme/Plugin editor adds blank lines Administration 2.7.1 normal normal Future Release defect (bug) reopened has-patch 2009-05-03T20:32:01Z 2015-05-12T05:43:48Z "When I edit theme css in theme editor in WP admin
!WordPress reformats my CSS and adds a blank life between entrys in css.
it adds a cr and line break ....
In other words if you have a 100 line css
download with FTP look at in text editor
it is now 200 lines
as WP added blank lines to css
it should not be adding things to the CSS?
It may only do this when it wraps window but I think not it appears to add blank lines.
Imagine the damage to a 1000 line CSS it spaces every entry by 1 line!!!!!!!!!!!!!! It stiil works but it messes it up.
THAT IS COFIRMED ONE EDIT DOUBLE SPACE ENTIRE CSS... VERY BAD
Here is part of the problem but not the double space in total.
When you down load the file in FTP and it is in windows encoding
the line endings.
So you ftp back and all is fine.
Now you are at the coffee shop and what a quick change, so you login to WP admin and theme editor edit CSS.
Now you get home and download in ftp to continue your work on CSS.
The file is now mac formatted (or thinks it is) so when you edit the line endings do not contain the right line breaks for windows OR WP theme editor as it ignores them. This explains the wierd spacing though not the double spacing .... why is it converting to mac and yet ignores mac?!
weird.. it adds a CR tag
must be bug
again though its still double spacing on edit IN windows line ending though if you down load cSS its tagged mac format...
Use notepad 2 or Note pad plus to see the error.
When ever you edit with !WordPress editor it adds cr and says css is now mac formatted.
FTP download the file and now see all the extra CR's it adds.
So it likes CR only so I convert to CR only and it beaks CSS it wants CR LF to work but if that is the case why does the online editor add CR only?????????????????????????
" Vistronic 23
36663 "Wordpress 4.5 Query Strings Replacing ""."" with ""_""" Administration 4.5 normal normal Awaiting Review defect (bug) new reporter-feedback 2016-04-25T17:07:37Z 2016-05-07T09:38:40Z "As of Wordpress 4.5, any query strings using a ""."" will get converted to a ""_"". While i understand that PHP doesn't support a period in a query string value, there are instances where query strings with periods are used by JavaScript and need to be retained. For example, the Webtrends analytics platform uses periods in most of their analytics query string values. For example, they use ""wt.mc_id"", ""wt.z_mce"", and ""wt.dl"".
It appears that changes to 'wp-includes/canonical.php' in 4.5 cause these periods to be visually and functionally converted to underscores when the pages loads. Interestingly, this only happens on pages and not posts.
Can we get the functionality put back the way it was so that the periods are retained, as this update will break Webtrends functionality, as well as any site using JavaScript that expects a period in a query string value?" michael.bucklin 8
25939 add_options_page(..., 'options.php') and 1000 vars limit Administration normal normal Awaiting Review defect (bug) new dev-feedback 2013-11-13T15:00:43Z 2015-12-09T21:30:14Z "(Related to the discussion in #14134)
There is a ""common knowledge"" in the wilderness, suggesting having this for seeing all options at once, and I guess many admins have that enabled:
{{{
add_options_page('All Settings', 'All Settings', 'administrator', 'options.php');
}}}
At some point, the list grows to more than 1,000 variables, and:
{{{
PHP Warning: Unknown: Input variables exceeded 1000.
To increase the limit change max_input_vars in php.ini.
in Unknown on line 0
}}}
The '''option table is corrupted''' then. In the best scenario, the tail of the table is occupied with transients. The worst - real settings.
''(having a separate table for transients sounds like a good idea to me, BTW)
''
'''Now, to the point: the ""All Settings"" panel should NOT have the [Save] button. It must be read-only.
'''
Alternatively - AJAX save, similar to phpMyAdmin - for each option separately.
" tivnet 2
27804 bug when updating after domain change settings Administration 3.8.2 normal normal Awaiting Review defect (bug) new dev-feedback 2014-04-14T22:07:08Z 2015-12-03T07:28:34Z "I have found the following bug that affects for sure wordpress 3.8.2 and the latest 3.8.3.
I have noticed this bug when I changed my domain settings:
WordPress Address (URL) and Site Address (URL) from a domain say www.mydomain.org to www.mydomain.com.
In the admin panel, when I get notified of new updates to be installed, installation of wordprewss, plugins and themes seems successful but is not performed.
After a bit of banging my head on the problem, for curiosity decided to switch back to www.mydomain.org and all updates were installed!
It's a bit annoying doing this procedure for every new updates.
Can anybody reproduce this?" robomotic 1
35561 function wp_admin_canonical_url() not using configured site url when constructing canonical url link tag Administration 4.4.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2016-01-21T16:00:36Z 2017-06-29T05:52:05Z "I was having an issue with the wp_admin_canonical_url() function in wp-admin/includes/misc.php and I have a suggested fix
I am running word press behind a reverse nginx proxy on a different box so my main site is at http://www.rammount.com and the blog is at http://www.rammount.com/blog
The blog url is set in the WordPress configuration. But when you log into the admin section the wp_admin_canonical_url() function does not pick up the configured url instead it constructs the url without the /blog. This of course breaks links in the admin section, constantly redirecting things to http://www.rammount.com without the /blog
by changing the following line:
`$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );`
to:
`$current_url = set_url_scheme(home_url(add_query_arg(array(),$wp->request)) . $_SERVER['REQUEST_URI']);`
the problem is solved. the proper url is created and as such the links in the admin section that use the canonical url link function correctly.
Hoping to have this change evaluated for inclusion, so that I don't have to remake this edit every time one of my designers updates the WordPress installation?" ilude 7
37021 heartbeat goes bonkers and spams host with ajax requests every few seconds Administration 4.5.2 normal normal Awaiting Review defect (bug) new 2016-06-03T17:50:21Z 2016-06-03T18:13:55Z "I have a client who uses 3rd party hosting for their Wordpress site. The site has lots of plugins, among them heartbeat control and idle user logout. We have noticed the behavior where, under some condition, the browser starts spamming the host with ajax requests (/wp-admin/admin-ajax.php?action=get_current_status) until the server overloads, runs out of memory and renders all sites and services on the host unusable. I have been reading about this problem on the wordpress blogs and thus have installed heartbeat and idle user logout to address the issue. However, the issue still appears, though less often. Finally today we saw it happening before the overload had taken place, and were able to contact the user, find out what they were doing, and narrow down the possible causes. I am hoping that this will be helpful information for the developers. Here is some specific information that I have to pass on:
1 - The laptop that appeared to be the cause of the problem was logged into the admin interface using the chrome browser. It had many tabs open, some on the same page. The user had been updating pages, switching between tabs, and reviewing the changes. They have both an english and a french area to the site, and were translating from english to french, using copy and past and a translation package.
2 - The heartbeat settings should have limited the ajax connection rate to every 60 seconds, but clearly was not doing so.
3 - Idle User Logout should have knocked off the laptop after 3600 seconds, however, the laptop had been sitting there logged in for 17 hours, idle and it never logged out.
Other notes:
The user also had a desktop computer in another room, and had been doing similar things on it, but using the firefox browser. When the problem was occuring I had the user close down tabs on the desktop, but it did not change the incoming connection rate. When the user went to the laptop and closed the tabs on the laptop, and logged it out, the spamming stopped. I suspect it is a javascript related issue, maybe related to chrome, maybe also related to multiple tabs, that causes the behavior to go wrong.
I would be willing to provide more detailed information if it is needed.
Regards,
Steve" ncslhostmaster
22669 iPad: Can't Scroll Plugins Modal Administration 3.4.2 normal normal Awaiting Review defect (bug) new 2012-12-01T02:31:23Z 2017-07-12T19:51:04Z "Steps to reproduce:
1. Tap Plugins
1. Tap Add New
1. Tap Featured
1. On any item, tap Details.
1. Tap Changelog
1. Swipe to scroll
Expected result:
See more Changelog.
Actual result:
The page is scrolling around behind the modal. Modal not scrolling.
Related: #22064" miqrogroove 7
40719 iis7_add_rewrite_rule and iis7_delete_rewrite_rule create malformed web.config Administration 4.7.4 normal normal Awaiting Review defect (bug) new 2017-05-10T19:14:11Z 2017-05-10T19:14:11Z "Running wordpress in azure on version 4.7.4 and i have a custom web config utilizing the location directive. The methods iis7_add_rewrite_rule and iis7_delete_rewrite_rule do not take into account when these directives exist and create a new system.webserver line in the web.config at the bottom causing the server to 500 error. This seems to happen even when simply deleting a post using the admin console, wp is thinking the web.config is wrong and trying to add lines. As an immediate work around i have disabled these methods, is there a configuration that will allow me to stop wordpress from ever doing this? I dont have the ability to change the web.config permissions because its a PAAS implementation. Example config:
This is only a partial sample of the file. " jaendres
33885 meta_form performs a potentially expensive query Administration 4.3.1 normal critical 4.9 defect (bug) new has-patch 2015-09-15T18:23:11Z 2017-07-10T18:39:08Z "This is a follow-up to #24498 and the research that @tollmanz did on the query used in meta_form. To summarize:
The query in meta_form can be incredibly slow on sites with a lot of post meta.
The solution to me seems to be to cache the query and update the cache of meta to use every time a new piece of post_meta is saved. This will prevent the query from needing to be run on sites with a persistent cache. " jorbin 55
30300 setUserSetting js function only removes first unwanted character Administration 2.7 normal normal Awaiting Review defect (bug) new dev-feedback 2014-11-09T17:08:15Z 2014-12-04T14:36:26Z "The function comments of the function setUserSetting in `wp-includes/js/utils.js` says the following: ""Both name and value must be only ASCII letters, numbers or underscore (...)"". The function removes the unwanted characters with the js `replace` function, in the current code, it only removes the first occurrence of an unwanted character. This is solved by adding the `g` modifier to the replace regex. See the attached patch.
How to reproduce:
* Open your browsers console while you are logged in to your WordPress installation.
* Run the following command: `setUserSetting('test--', 'bad-value-')` (note that the - character is not allowed)
* The console will return `""test-""` (not `""test""` as expected).
* Run `getUserSetting('test-')`.
* The console returns `""badvalue-""` (not `""badvalue""` as expected).
* You may want to delete the setting by executing `deleteUserSetting('test-')`. " TV productions 2
30855 wp_get_update_data() calls are not pluggable Administration 4.1 normal normal Awaiting Review defect (bug) new 2014-12-28T21:06:10Z 2015-06-18T07:13:28Z "Up to 4.1 I was able to disable core, themes and plugin updates and related HTTP traffic.
https://github.com/szepeviktor/wordpress-plugin-construction/blob/7b64d0ca4981b163b2f08adbe14a5b5238800bd8/mu-disable-updates/disable-updates.php
In 4.1 new wp_get_update_data() calls are much like hardcoded than pluggable, I wasn't able to disable them all. Especially not the ones in wp-admin/menu.php
https://github.com/WordPress/WordPress/blob/master/wp-admin/menu.php#L33-L34
https://github.com/WordPress/WordPress/blob/master/wp-admin/menu.php#L183-L187
Could you make wp_get_update_data() calls pluggable? Or give me an advise to disable them?
My current workaround is to fiddle with the transients:
https://github.com/szepeviktor/wordpress-plugin-construction/blob/master/mu-disable-updates/disable-updates.php#L98
Thank you!
" szepe.viktor 3
27870 404 for wp-admin ? Administration 3.9 normal normal Awaiting Review enhancement new close 2014-04-17T19:33:17Z 2017-02-06T12:25:51Z "Currently if you try to reach a non-existent admin page (site/wp-admin/bleh.php) you get a 404 from the public part of the blog
Wouldn't it be more logical to get a 404 that would match the admin environment? Or, at least, something along the lines of site/wp-admin/link-manager.php?" ozh 3
41104 "Add ""Site"" to the ""New"" admin-bar dropdown" Administration 3.0 normal normal Awaiting Review enhancement new dev-feedback 2017-06-20T18:11:52Z 2017-06-20T18:11:52Z "For multisite installations, it would be nice to have a shortcut to create a new site under the ""New"" admin-bar menu.
* Every other single-site object is already listed (posts, pages, etc...)
* ""User"" is listed, and you can add a new User to a site or install, but from the site dashboard
* Visually, it should be a separate, secondary menu group (probably at the top?)
* That secondary group could be used for any ""network/global"" Add shortcut" johnjamesjacoby
21938 "Add ""no-store"" to Cache-Control header to prevent history caching of admin resources" Administration 3.4 normal minor Awaiting Review enhancement new 2012-09-20T10:54:27Z 2015-12-03T19:22:24Z "The current implementation of [http://core.trac.wordpress.org/browser/trunk/wp-includes/functions.php#L891 wp_get_nocache_headers] does not take into account history caching, which results in a browser serving a cached copy of pages from history (by pressing the Back button) even if the user has long logged out.
[http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.2 RFC 2616 14.9.2 no-store] describes this cache directive.
To repoduce: login to dashboard, logout, press the back button.
Expected: the login screen.
Reality: a copy of the previous page.
By adding the ""no-store"" directive to all non-cachable resources the behavior was mitigated successfully in Chrome 21, Firefox 15. Fails on Opera 12 (they chose to disregard ""no-store"" when applied to history, RFC allows this)." soulseekah 5
32940 Add IDs to Admin Hyperlinks Administration 4.3 normal normal Awaiting Review enhancement new 2015-07-09T12:18:59Z 2015-09-19T16:57:15Z "Suggestion: add Ids to the primary admin interface hyperlinks.
Adding IDs to primary anchor tags in the admin UI makes it far easier to create and maintain UI test suites such as Selenium IDE. UI testing catches problems that phpUnit is not designed to address.
Example: Pages / Add New
xpath = /html/body/div/div[1]/div[2]/ul/li[5]/ul/li[3]/a
css = html.wp-toolbar body.wp-admin.wp-core-ui.js.edit-php.auto-fold.admin-bar.post-type-page.branch-4-3.version-4-3.admin-color-fresh.locale-en-us.customize-support.sticky-menu.svg div#wpwrap div#adminmenumain div#adminmenuwrap ul#adminmenu li#menu-pages.wp-has-submenu.wp-has-current-submenu.wp-menu-open.menu-top.menu-icon-page ul.wp-submenu.wp-submenu-wrap li a
Would be nice to reference key elements with things like a#menu-page-add-new instead. Especially when updates to WP Core change the higher level HTML DOM classesor structures.
" charlestonsw
27916 Add New Post screen nonce failure should redirect to Edit Post screen Administration normal normal Future Release enhancement new 2014-04-19T13:27:55Z 2017-05-12T19:19:25Z "Last night I added a new post, but I didn't publish it, I just left the Add New post screen open. I did a few other things and then put the computer to sleep. This morning I got up, checked the draft, and then hit publish. But the nonces had expired, so I was shown the ""Are you sure you want to do this?"" screen. I hit ""try again"", but I was returned to the Add New Post screen. I really thought I had lost the post. (Oh, the agony.) Fortunately, I really hadn't, because it was saved as a draft. But it really scared me.
Instead of causing folks to have a heart-attack, we could direct them to the Edit Post screen with the draft they were working on loaded, instead of the Add new post screen." jdgrimes 2
36527 Add a 'wp-' prefix to ALL admin classes to prevent CSS conflicts Administration normal normal Future Release enhancement new 2016-04-14T12:37:34Z 2016-07-19T16:35:00Z Long story short, in any front end editors, which WP itself seems to be moving towards with the Customizer, there are lots of admin elements that are not prefixed and can quickly begin to conflict. Some examples are .button, .textarea, etc. I'd love to see all admin classes add a prefix of `.wp-` mrpritchett 2
25616 Add a content length filter to wp_dashboard_recent_drafts() Administration normal normal Awaiting Review enhancement new dev-feedback 2013-10-17T01:41:34Z 2015-10-01T01:54:40Z It would be nice to be able to change the length of the recent drafts content via a filter. The fixed value of 10 is too short for character count based users. tenpura 1
36882 Add a reusable admin CSS class for destructive actions Administration normal normal 4.9 enhancement new 2016-05-18T22:54:26Z 2017-07-17T15:46:05Z "As generally recommended, plugin authors should not use regular buttons for destructive actions, like removing something.
However, while there are standardized classes for buttons in WordPress admin (`button`, `button-primary`, `button-secondary`), a similar standardized class is missing for the destructive link. There are several locations in the admin where such links are displayed, but these are all styled using their individual selectors. Therefore plugin authors who want to use this style must either use one of these selectors (that probably do not fit the use-case at all) or recreate the style manually. Therefore I propose to standardize these style rules for a specific class, for example something like `delete-button` or `delete-link`." flixos90 8
38097 Add ability to Settings API to assign positioning Administration 4.7 normal normal Awaiting Review enhancement new 2016-09-19T14:39:59Z 2016-09-19T14:39:59Z "When using the Settings API to add a settings field, particularly if adding to an existing settings screen, it would be nice to have some way of positioning the new field, as you can with add_menu_page, for instance.
So, I've just updated a plugin in which I've added a single settings to the existing ""General"" settings screen. It's date related and it would sit nicely in a specific position on that screen, but I have no control over it. So, a ""position"" field, as add_menu_page has, would be a nice addition to provide a more nuanced result." dartiss
38209 Add active theme column to list table on wp-admin/network/sites.php Administration normal normal Awaiting Review enhancement new has-patch 2016-10-02T10:11:15Z 2016-10-02T11:14:15Z "It will be far easier to know the current active theme of each blog in the ""My sites"" network admin page. It's a valuable information to display for network administrators I guess.
What do you think ?" Mista-Flo 2
38239 Add font-size to root HTML element for rem support? Administration 4.7 normal normal Awaiting Review enhancement new 2016-10-05T22:12:26Z 2016-10-05T22:12:26Z "Currently the `common.css` file does not define font-size in the `html` element, which if a plugin is using `rem` for font-size, will be based on `16px` default, instead of the `13px` which is set in the `body`.
To add support for WordPress' default font-size of `13px`, the `font-size` in the root `html` element, would need to be set to something like `font-size: 81.3%` which would match the `body` font-size of 13px, calculated by `13/16 = 0.8125`
Something to consider regarding this ... if we were to implement setting font-size in the `html` element, this could cause issues for any devs that are using `rem` for admin pages, they may have already adjusted their code to handle the `16px` default instead of WordPress' `13px` set for body.
https://core.trac.wordpress.org/browser/trunk/src/wp-admin/css/common.css#L204
https://www.w3.org/TR/2013/CR-css3-values-20130730/#font-relative-lengths
https://gist.github.com/glueckpress/5653233" tripflex
20007 Add options & UI for admin registration and password reset notifications Administration 3.4 normal normal Awaiting Review enhancement reopened has-patch 2012-02-10T06:15:35Z 2016-01-13T21:56:43Z "This patch adds an single checkbox option to WordPress's Settings > Discussion page, allowing users to quickly toggle new user registration notifications/emails on or off.
While the notification function is currently pluggable, allowing non-technical users to easily toggle this feature themselves is both intuitively simple, and should prove generally advantageous to the community." Veraxus 11
40822 Addressing Proximity in the admin area Administration normal normal Future Release enhancement new 2017-05-19T17:58:06Z 2017-05-22T16:38:05Z "This ticket is to address proximity issues in the admin area as a whole.
New tickets should be created for individual issues as they are found and reported.
Background:
In web design, the principle of proximity states that related items should be placed close together. By the same token, if things are spaced farther apart they appear to have less relation to one another.
This principle is especially critical for users with low vision. It will even be addressed in the next draft of the WCAG guidelines! [https://w3c.github.io/low-vision-a11y-tf/requirements.html See Accessibility Requirements for People with Low Vision]
Additionally, there will be ongoing education in [https://make.wordpress.org/accessibility/ Make WordPress Accessible] to help better understand the issue so that problems become more apparent.
" trishasalas 3
26691 Admin Color Schemes: generic classes for colors Administration 3.8 normal normal Awaiting Review enhancement new 2013-12-20T15:59:01Z 2015-12-03T16:35:35Z "Our team is trying to adapt our plugin to the new admin color schemes. It would be great if we could have generic CSS class declarations that allow us to apply the current scheme's background/text colors to our elements.
Something like
.admin-color-flat .sidebar-background-color{ background-color: #.... }
.admin-color-vineyard .sidebar-background-color{ background-color: #.... }
This would allow plugin developers to leverage those schemes without having to reinvent the wheel every time, and would make their plugins adapt to any third-party color scheme people may be using on their site.
WordPress already adds the current color schema class to the body tag. But then I don't see anything in the CSS that I could use to recycle, let's say, the admin sidebar current background color and use it as the
background color for my metabox headers. Yes, I could do this in jQuery, but I was hoping for a pure CSS approach.
" coolmann 6
37219 Admin menu with admin_url function Administration normal normal Future Release enhancement new has-patch 2016-06-29T06:13:05Z 2016-10-03T22:02:05Z I think that options in menu should have admin_url function. For example I want add custom param (?lang=de). I can use admin_url filter but this not work in menu items sebastian.pisula 6
11515 Admin needs standardized way of handling messages (notices) displayed to the user Administration 3.0 normal normal Future Release enhancement new 2009-12-19T19:53:03Z 2016-11-01T14:39:43Z "If you try to upload a media item under Media > Add new without an uploads directory, you get the following vague error message:
{{{
Error saving media attachment.
}}}
If you try instead to upload from the post edit page, you get a much more helpful message:
{{{
Unable to create directory /path/wp-content/uploads. Is its parent directory writable by the server?
}}}
In each case, the root error is the same, but the second error message points the way to a solution. Even if the user doesn't know herself what that message means, it's a message that provides the necessary information to someone else who does and is trying to help the user. The first message is completely useless, as it states only what we already know: something went wrong.
The reason Media > Add new doesn't offer a helpful message is that the error is generated on one page request, and ''then'' the user is redirected to another page.
We need a standard, cross-page-load way of conveying messages in admin.
I've thought of a few possible ways of doing this:
* Define and use a standardized set of error codes and associated error messages. This is similar to what happens currently on many pages: the unhelpful ""Error saving media attachment."" appears when the message argument is set to ""3."" What I'm suggesting would use a common set of message codes across the admin and be much more detailed. So the above situation would instead produce a message like ""Unable to create the uploads directory.""
* Save error messages to a cookie. Unlike the previous method, this would allow messages to be made particular to their event.
* Have some kind of user messaging stack. New messages would be pushed into a user's stack (stored in usermeta) and popped off after a certain time, or when read, etc. This has the advantage of lasting across sessions and browsers and being usable for other applications, such as PMs between users.
What do you think?" filosofo 22
32507 Admin notices remove styling of lists Administration 4.2.2 normal normal Awaiting Review enhancement new 2015-05-27T15:50:35Z 2015-06-03T20:21:48Z "Create an admin notice which contains an unordered or odered list and you will see that the list has no bullets or numbers.
This is because the notice inherit `list-style-type:none`. " sciamannikoo 2
10726 Admin notifications for more than 1 email Administration 2.8.4 normal normal Future Release enhancement reopened 2009-09-05T02:18:51Z 2016-03-17T00:45:27Z "Please allow admin notifications to go to more than 1 email address. It could be as simple as allowing a comma-separated list.
Better yet, allow sending '''admin''' notifications to all people in the '''administrators''' role." novasource 21
18769 Admin should not break if URL changes Administration normal normal Awaiting Review enhancement new 2011-09-24T22:58:42Z 2015-09-02T03:05:17Z "We manage a lot of users who have WordPress blogs, and probably the number one user support request we have to field comes out of this situation:
1. User decides they want to move their WordPress,
2. They move the folder to a new URL,
3. Their admin page stops working, because it still had the old URL hard-coded.
This is silly and should be fixed." AmbushCommander 4
41426 Admin: Password protected text class in the posts list Administration normal normal 4.9 enhancement new has-patch 2017-07-24T17:55:32Z 2017-07-30T15:48:31Z "Password protected posts (and CPTs) have this text as a fallback for excerpt in the list of posts:
{{{
There is no excerpt because this is a protected post.
}}}
They should have a proper span with a class like `.post-password-state`, like it's done with ""Password protected"" text and its `.post-state`.
This will allow to better customize the styles of the screen." slaFFik 7
19278 Allow WP_List_Table ::get_bulk_items() to receive a nested array and output optgroups Administration normal normal Awaiting Review enhancement new 2011-11-17T17:25:37Z 2015-12-03T15:01:36Z "I'm just putting this out there as a possible enhancement to the WP_List_Table... would like feedback as to whether anyone else would find it helpful. If so, I'm more than happy to write up a patch for this.
I think it may be useful to be able to pass a nested array to `WP_List_Table::get_bulk_actions()` and have it output the options within the subarray in an `

`. My specific use case is in applying meta fields to a custom table. I would like to be able to define something like this in my `get_bulk_items` function:
{{{
function get_bulk_actions() {
$actions = array(
'delete' => 'Delete',
'outofstock' => 'Mark out of stock',
'applytags' => array(
'label' => 'Apply tags to products',
'actions' => array(
'featured' => 'Featured',
'sale' => 'On Sale'
)
)
);
return $actions;
}
}}}
and have the output look something like this:
{{{
}}}
A very minor feature, and possibly too fringe of a use case to bother with. But I've worked on a couple projects now where being able to specify markup like that would have made that screen more user-friendly. Any thoughts?" goldenapples 2
40223 Allow arrow key navigation in (all?) modals Administration 4.8 normal normal Awaiting Review enhancement new 2017-03-21T19:37:46Z 2017-03-21T22:56:20Z "Would be nice, if we could use arrow keys to navigate trough details of plugins, themes, etc inside modal on install, update and list screens.
[[Image(http://i.imgur.com/hxBL2sM.png)]]" marsjaninzmarsa 1
33296 Allow sites to skip a query in meta_form() that can delay loading the page Administration 4.3 normal normal Awaiting Review enhancement new has-patch 2015-08-06T20:29:12Z 2015-08-06T20:44:00Z "Follow-up to #24998 (and its duplicates #32361, #32449). See also #18979.
Edit post loads slowly on sites with large tables. Sites should be able to bypass the meta drop-down query. I'm attaching a simple patch using the existing filter `postmeta_form_limit`.
Some sites do not need the drop-down, or have too many custom metas to make a drop-down useful. The drop-down is great for me though. I can easily add features without creating a custom meta box. Once an option is in the drop-down, my authors know it is available.
" kitchin 2
37445 Allow to adjust the `$in_admin` property of `WP_Screen` Administration 3.5 normal normal Awaiting Review enhancement new has-patch 2016-07-23T13:57:18Z 2016-07-30T10:57:58Z "The `$in_admin` property of the `WP_Screen` class is impossible to be changed by a developer at the moment, which makes sense in how WordPress uses it.
However, I'm currently building a plugin that creates an additional administration panel (like network and user admin) and I would need to adjust the `$in_admin` property to reflect when this panel is active. Otherwise a function like `is_blog_admin()` returns true although we actually aren't in the regular admin panel (since the value of `$in_admin` defaults to 'site').
So I'm proposing to either make the property public so that a developer can override it (for example on the `current_screen` action) or to add a new filter for the property specifically in `WP_Screen::get()`. I would prefer the second approach since having the property being protected makes sense in general. The use-case I have is a very rare one, so I think a very specific filter for it should do." flixos90 2
35910 Allow wp_credits() to accept custom wordpress versions and locals Administration normal normal Awaiting Review enhancement new has-patch 2016-02-23T01:03:34Z 2016-07-22T23:56:40Z "Introduced in wordpress 3.2, `wp_credits()` retrieve the contributor credits from http://api.wordpress.org/. This function doesn't accept any parameter, '''it retrieves data only for the current wordpress version and local'''.
As a plugin developer, if I want to get wordpress credits information for older versions or different locals, I can't do that using `wp_credits()`.
But It can be easily fixed. The function just need to accept the version and the local as parameters. For backwards compatibility, if the parameters are empty, we will use the current version and local.
See the attached patch." ramiy 1
26605 Appearance of recent/future posts in dashboard looks off on mobile. Administration 3.8 normal normal Future Release enhancement new has-patch 2013-12-13T13:24:18Z 2017-05-23T17:19:13Z "When viewing the dashboard on a small screen device, the layout of the date and post title in the recent/future post section of the layout of the site activity widget looks funny when the title is fairly long.
I think it might be better to have the date on a separate line.
[[Image(https://dl.dropboxusercontent.com/s/h8jpr8305isg0gy/2013-12-13%20at%2013.17%202x%20%281%29.png)]]
" mattheu 5
26960 Audit extraneous HTML/CSS for the admin menu Administration low normal Future Release enhancement new has-patch 2014-01-30T05:56:16Z 2015-12-03T16:32:02Z In working on #18380, I've noticed quite a bit of cruft that has built up over time, some of it directly related to the split between colors and structure. For example, the .wp-menu-arrow is no longer visible in the 3.8 redesign, but the HTML and CSS remain. Once #18380 and #26669 are complete, we should take a closer look at this. helen 3
17704 Automatically enqueue necessary scripts when custom meta boxes are used Administration normal normal Future Release enhancement new needs-refresh 2011-06-06T05:53:43Z 2015-12-03T14:59:56Z Right now if you add_meta_box() to a custom page, like using add_submenu_page() and then calling do_meta_boxes(), the screen options and post box JS don't work automagically. They should. mitchoyoshitaka 4
31696 Better select, multi-select, and autocomplete/suggestion inputs in the admin Administration normal normal Future Release enhancement new dev-feedback 2015-03-19T16:47:15Z 2017-05-23T17:17:25Z "I know this has been brought up before, but can't find the original ticket. That said, a few months ago Helen brought up a potential integration of the Select2 library but, due to licensing issues, we were unable to proceed with it at the time ([https://github.com/select2/select2/issues/2468 GH issue]). The licensing issue has now been resolved and, since I've been unable to find the original ticket, I'm opening a new one along with a preliminary patch to add Select2 to core.
At the moment, this patch is based on a new CSS class (select2) being added to any select field that should implement the Select2 library. I've added it to the select fields on the Settings->General page as an example, but didn't want to implement it system-wide until the community had a chance to speak up RE: where does/doesn't Select2 belong, or should it actually be implemented everywhere. The language and timezone fields seemed an obvious choice given their inherent size, but things like the emoji field under Settings->Reading that have a finite number of options seem less obvious.
Discuss!" section214 19
40686 CSS: introduce naming and usage conventions for JS targeting Administration normal normal Awaiting Review enhancement new 2017-05-07T13:34:50Z 2017-05-07T13:34:50Z "As part of the broader goal of the [https://make.wordpress.org/core/2014/12/19/core-css-roadmap/ CSS roadmap], it would be great to start introducing CSS classes naming and usage conventions for JS targeting.
This need clearly emerged during the ongoing exploration to revamp the Settings API, and woud benefit all the codebase. Work on the Settings API is happening on GitHub and [https://github.com/wpaccessibility/settings-api-enhanced/issues/11 there's an open issue for this].
Quoting from the doc @helen prepared to share some thoughts (the doc is available on the GitHub issue):
> Reusing styling class names is fragile and obscures intent when doing long-term maintenance.
Personally, I can only add that I can't count the number of times when touching some CSS class or ID forced me to check all the codebase to make sure they weren't used also for JavaScript related purposes :)
" afercia
19691 Cannot modify admin messages for /wp-admin/edit.php Administration 3.3 normal normal Awaiting Review enhancement new dev-feedback 2011-12-30T02:10:01Z 2015-10-12T23:52:50Z "The admin console messages output on line `264` of WordPress 3.3's file `/wp-admin/edit.php` are not filterable. This causes problems when added row actions need to HTTP GET from to WordPress to modify a post and then display an appropriate message complete with a revert link ''(like the ""Trash"" link does.)''
An example use-case could be for a custom post type used for both quotes and invoices where a row action might be ''""Convert Quote to Invoice""'' where you'd want a message and link displayed at the top of the admin after similar to this:
- ''Quote #{$post_id} converted to Invoice. __Revert__''
Currently the only way to accomplish this is to pick hooks before and after the messages are output and use PHP's output buffering; clearly not a ''""best practice""'' approach.
In order to address this I'm proposing an '''`'admin_messages'`''' filter hook to run just before the messages are output:
{{{
$messages = apply_filters( 'admin_messages', $messages );
}}}
However, since messages are output in numerous locations in the WordPress admin it seemed best to add the hook in every location where messages are output, which is what my patch does. Thus a hook can look at `$pagenow` or `get_current_screen()` to decide it is needs to do anything.
Also while searching for places in the admin code that echo messages I found `$messages` are sometimes an array of HTML where the entire array is echoed and other times the $messages are an array with an index passed via `$_GET` and only one message will be displayed. For those cases I created another hook '''`'admin_message'`''' ''(note that this hook name is singular)'':
{{{
$message = apply_filters( 'admin_message', $message, $messages, $_GET['message'] );
}}}
I really only found a specific need for `/wp-admin/edit.php` today, but it seemed that it would be better for consistency if all messages were made hook filterable. That's why I created a larger patch when all my use-case needs is one new line.
Looking forward to your feedback.
" mikeschinkel 7
39852 "Change the confusing ""Screen Options"" button text" Administration normal normal Awaiting Review enhancement new 2017-02-12T08:52:23Z 2017-03-21T19:12:44Z "From a new users perspective the label ""Screen Options"" doesn't make any sense. Seems technical, it doesn't express anything meaningful. From a general perspective by reading a buttons text it should be clear to users what it does. Besides that the text Screen Options is not that common either.
In my opinion, It would be easier and meaningful if it uses one of these :
'''1. see more'''
'''2. more information'''
'''3. display more'''
'''Google Books Ngram Viewer
'''how many times these terms has been used (from year 1800 to 2000)
[[Image(http://i.imgur.com/QgOeB0e.png)]]
'''Google Trends
'''[[Image(http://i.imgur.com/CA2SHv4.png)]]
Reference:
1. Design Words With Data [https://medium.com/dropbox-design/design-words-with-data-fe3c525994e7#.hv4ce0o2q]
2. How To Design Words [https://medium.com/@jsaito/how-to-design-words-63d6965051e9#.tfmbqs2ux]" cryptex_vinci 7
32815 Color schemes silently disabled in source checkout of core Administration 4.3 normal normal Awaiting Review enhancement new 2015-06-28T13:52:08Z 2015-07-09T15:33:23Z "When using development version of WordPress the admin color scheme feature is silently disabled. There is a check in code for -src in version.
This is highly confusing from developer experience perspective.
It would make sense to me if there were:
- message in profile, informing that color schemes are being disabled
- short explanation inline for the reasons check is being made" Rarst 3
31354 Compound settings confusing with screen readers (checkboxes) Administration 4.1 normal normal Future Release enhancement new has-patch 2015-02-17T03:08:21Z 2017-01-30T17:11:28Z "There are a number of settings in the admin that are made out of multiple variables. That is, they combine a checkbox/radio button toggle and a value.
When you can see it, it makes sense because it forms a logical sentence and everything works out great.
When you rely on a screen reader, it doesn't really come across as such and there's no link between the different inputs in the setting.
For example:
[[Image(http://i.imgur.com/0r0lDSn.png)]]
As you tab through the different fields, NVDA (with default settings) will announce:
- Break comments into page with - checkbox (not) checked.
- top level comments per page and the - edit fifty.
- page displayed by default - combo box last collapsed.
We need to come up with a pattern that can be applied to split up these toggle/value inputs and clear up confusion this may create.
It would be nice if the inputs for the actual values stay disabled until the appropriate toggle is enabled as well (similar to how the home/blog static page selectors work).
This issue concerns the following fields:
'''On /wp-admin/options-discussion.php:'''
- Automatically close comments on articles older than X days
- Enable threaded (nested) comments X levels deep
- Break comments into pages with X top level comments per page and the X page displayed by default.
- Comments should be displayed with the X comments at the top of each page
'''On /wp-admin/network/settings.php'''
- Limit total size of files uploaded to X MB
Could use input from accessibility and UI teams on how to best tackle this. :)
" Cheffheid 10
31356 Compound settings confusing with screen readers (radio buttons) Administration 4.1 normal normal Future Release enhancement new 2015-02-17T03:50:45Z 2017-01-30T17:11:28Z "Similar to #31354, #31144 - but worth noting separately.
As mentioned in #31144, the ""main"" label for radio buttons is never announced which is removing the context for them.
Additional issues with this arise when the setting has a ""Custom"" option with an input field. When tabbing from the radio button to the ""Custom"" input field two things happen:
- It will automatically set the radio button option to ""Custom""
- It announces the current value of said input field without further context. Ie. 'F j, Y'.
The former is not a huge deal, because it automatically updates the input field for ""Custom"" to whatever the value of the previously selected radio button was.
The latter is a bit odd and confusing if you have no further context as to why it's being announced or what it's announcing even means.
Having the input field inactive/unfocusable unless ""Custom"" is selected would probably help with this and remove unnecessary focus on this field when it's ultimately unwanted.
This applies to:
'''On /wp-admin/options-general.php:'''
- Date Format
- Time Format
'''On /wp-admin/options-permalink.php:'''
- Main permalinks setting
Here, too, additional input from accessibility and UI teams more than welcome." Cheffheid 6
40260 Consider to remove some left overs from the old jQuery.suggest Administration 4.7 normal normal Awaiting Review enhancement new has-patch 2017-03-25T12:03:23Z 2017-03-25T12:31:07Z "Noticed while investigating on #40242. Core doesn't use `jquery.suggest` since [38797], however there are some left overs here and there that reference the `ac_results` class used for the `jquery.suggest` results.
The JavaScript part can be safely removed. The CSS part might still be used by some very old plugins so maybe better to keep it and add some inline comment.
See quick discussion on Slack:
https://wordpress.slack.com/archives/C02QB2JS7/p1490370129805243
Aside: Maybe one more reason to add a `deprecated.css` somewhere, as this idea has been around since a while. See for example #21456, #26396, and also https://make.wordpress.org/core/2014/12/19/core-css-roadmap/" afercia 1
37228 Consider to rethink and improve the list tables pagination links Administration normal normal Awaiting Review enhancement new 2016-06-29T14:04:15Z 2016-06-30T13:59:24Z "Splitting this out from #33962. See also #32558.
Quickly discussed at WCEU 2016 Vienna's Contributor Day with @karmatosed and @hugobaeta and noticed the pagination links offer room for design improvements. Looks like there are no apparent reasons (other than historical ones) why the top and bottom pagination links should differ and maybe the editable input field should be displayed only when there are more than 3 pages.
As @helen pointed out, also the interactions could benefit from some rethink.
This would probably be a very nice ticket for designers willing to contribute :)
Current state on 4.6 trunk:
[[Image(https://cldup.com/jPRxp_462C.png)]]
with longer translated strings:
[[Image(https://cldup.com/lkdtPkEn0P.png)]]" afercia 2
7797 Consolidate iframe headers Administration 2.7 normal normal Future Release enhancement assigned 2008-09-26T23:35:46Z 2015-09-29T07:02:56Z "Currently iframes are being used in multiple locations (ie. thickbox, plugin re-activation, etc) and in each case, theres generally a function for the header and footer, or its inline.
What i suggest, Is to create a standard set of admin templates which print the headers out for the pages.
And a side suggestion:[[BR]]
As an added bonus, It should probably be possible to automatically detect if it was loaded via thickbox ($_GET[TB_iframe] shouldnt be set) and serve the correct header (ie. Full admin side menu if no thickbox)" DD32 6
39707 Create onboarding flowchart for users of WP.org installations Administration 4.7.1 normal normal Awaiting Review enhancement new 2017-01-26T17:42:47Z 2017-04-03T16:45:50Z Chatting in the [design channel on Slack](https://wordpress.slack.com/archives/design), we believe documentation should exist for user onboarding. While this is somewhat related to the customizer project for setting up an install, a general user flowchart should be created. alwaysbrightblue 14
37578 Dashboard Recent Activity widget - new filters to manipulate output Administration 4.6 normal normal Awaiting Review enhancement new has-patch 2016-08-05T01:41:43Z 2016-08-05T01:44:17Z "It is currently not possible to manipulate the recent post activity dashboard widget. Output is built using `wp_dashboard_recent_posts()`. 2 filters could be introduced for the parameters for future and recent posts.
This would allow easy interaction with the parameters array, for instance increasing the amount of posts shown, changing order, post status, CSS ID etc - would definitely make it more useful!
I realise that there is a filter `dashboard_recent_posts_query_args` inside the`wp_dashboard_recent_posts()` function (used to build the queries, useful for switching post type etc), but there is currently no way to interact with the calls to this function." Jonnyauk
32922 Dashboard Widget API Widget Sorting Administration 4.2.2 normal normal Awaiting Review enhancement new 2015-07-08T12:02:38Z 2015-07-08T12:02:38Z "In the Dashboard Widget API, it is stated that sorting of widgets is not currently possible.
Could we please have this ability to sort widgets brought into the API?
This could work by setting an order_id on the widgets, where 1 = top widget, and so on, with the admin theme setting how many is displayed per row.
P.S Apologies if this has already been suggested, I did search but didn't find anything." atomicjack
35554 De-emphasise WordPress Version in the admin Administration normal normal 4.9 enhancement new has-patch 2016-01-21T09:54:32Z 2017-07-17T15:50:11Z "Currently WordPress is very proud of the version it's running - but version strings are not exactly the most important piece of information to a regular user.
I'd like to bring it back to displaying only the major version (ie. `Version 4.4`, not `Version 4.4.1`).
A few of us have kicked the idea around over the years, and making the version number less specific as we move towards faster point releases really makes a lot of sense.
There's two options which could be taken:
1. Simply bring it back to x.y (`Version 4.4`). attachment:major.minor.diff
2. Remove it entirely, including the `You are running WordPress x.y.z running Theme X theme.` message in the at-a-glance widget. attachment:remove-all-version-mentions.diff
The second option is a harder-line approach, but removes information that most users have no need to see most of the time. They'll still see update nags when a new version comes out (Well, except for the million or more of sites which choose to enable automatic updates for major versions too) and the version string will always be available on the update screen where it's useful." dd32 31
30177 Eliminate deprecated pointers Administration normal normal Awaiting Review enhancement new dev-feedback 2014-10-29T17:19:33Z 2015-12-03T19:31:14Z "While working on #30158 @nacin suggested that we eliminate the now irrelevant pointers (anything before 3.9). Initially I followed the existing convention: blanking, but leaving, the internal pointer method.
@nacin also mentioned that we should eventually removing those blanked methods and that they were only left behind because we hadn't considered the full ramifications of straight removing them. I spent a few brain cycles on exactly that these past several hours and below are my findings.
**Option The First:**
We can completely remove these methods with no negative impact whatsoever. Reason: The pointer class is Final and cannot be extended (so there are no inheritance concerns) and these static methods themselves are completely useless in isolation. There is no reasonable explanation for a person ever calling these methods directly, and calling remove_action() on them does not depend on their existence, either.
**Option The Second:**
We remove the methods and register a new `get_deprecated_pointers()` method to be used in tandem with a `__callStatic()` magic method in order to inform the fringiest fringe-case developer that they've done something abhorrently wrong (in the most polite way possible).
My vote is for Option 1 because I can't fathom a world in which someone would have a productive reason to statically call one of these pointer methods in isolation. Option 2 gives us a new list to maintain fairly unnecessarily and succeeds in adding more lines of code than it removes.
I've provided patches for each option so all that is left is for someone else to weigh in with their opinions.
@jjj likes option 2
@aaroncampbell likes option 1" rzen 1
35817 Force users to set strong passwords Administration normal normal Awaiting Review enhancement new dev-feedback 2016-02-12T16:31:38Z 2017-03-26T21:16:56Z "WordPress 4.3 added [https://github.com/dropbox/zxcvbn zxcvbn] for better password strength testing.
The UI was also modified to push users to set strong passwords in various ways.
* When setting a password, a strong one is generated for the user.
* A user must check off an ""Are You Sure?"" checkbox to set a weak password.
This is great. However, an ""Are You Sure"" checkbox is what stands between an easily hackable WordPress site and an exponentially stronger WordPress site.
I would like to force users to set strong passwords in the UI. " ericlewis 18
14097 Idea for placeholder text Administration normal normal Future Release enhancement new 2010-06-26T06:28:25Z 2015-09-02T03:16:13Z "Placeholder text has a fatal flaw, in my mind: once the field is focused, that placeholder text is gone. This can be confusing, especially if you tabbed into that field or it was selected by default. You can actually use placeholder text instead of labels, for a minimalistic form layout, but only if you correct this flaw.
So here's a potential solution:
http://txfx.net/files/wordpress/labels/
It uses HTML 5's {{{placeholder}}} attribute (newest Safari and Chrome support it), with a jQuery plugin to handle that support for other browsers.
Thoughts?" markjaquith 15
27127 Improve plugin search on installed plugins page Administration 3.8 normal normal Awaiting Review enhancement new needs-refresh 2014-02-14T17:16:53Z 2017-02-11T09:08:33Z "If you have lots of plugins installed trying to find one in the installed plugin page is not quick. The search box is quite slow ( requires a page refresh ).
Adding some JavaScript that transforms the current search box into a quickfind box would help solve this problem.
As the user types a keyword the JavaScript searched across the displayed text for the plugin, only displaying the plugins that contain that keyword." enej 8
39617 Improve the Dashboard Screen and Welcome dashboard widget Administration 4.7.1 normal normal Awaiting Review enhancement new 2017-01-17T20:04:18Z 2017-03-23T19:03:03Z "Currently the welcome dashboard widget only offers a few options, it does not cover making sure that a new has added a site name, site description, set permalinks or made sure that a user has created their first page and post on the site.
https://codex.wordpress.org/Dashboard_Screen#Welcome
Giving users a better flow from the dashboard screen would help them get started on their site." lukecavanagh 10
41114 "Installation: ""Search Engine Visibility"" not keeping checked on error" Administration 4.8 normal normal Awaiting Review enhancement new 2017-06-21T10:25:48Z 2017-06-21T10:26:29Z "Given your installing WordPress
and you reach the screen about site title, admin login and ""Search Engine Visibility"".
When you enable the checkbox for/near ""Search Engine Visibility""
And fill nothing out for mail address
And press continue
Then an error message appears
And most fields are still filled out as before
---
Problem:
The ""Search Engine Visibility"" is no longer checked.
IMHO this should also stay as intended to." screamingdev
38923 Introduce `WP_Action_Handler` to clean up admin action mess Administration normal normal Awaiting Review enhancement new dev-feedback 2016-11-24T01:08:35Z 2017-01-03T08:48:25Z "We all know that several parts of the admin code are messy in a way. After we had to take several looks at these files during today's multisite chat, I thought we need to do something about it.
My proposal for now is to introduce a new base class `WP_Action_Handler`. This abstract class would lay a foundation to handle any kind of actions on any admin screen. Currently there's a (sometimes huge) switch clause at the beginning of almost every page. By removing these clauses entirely and handling the logic in a dedicated class for this instead, we get the following benefits:
* easier readable code
* less huge files
* possibility to add unit tests for each of the switch cases
* possibility to add unit tests the entire handling of an action
* easy addition of any custom actions in plugins, beyond just bulk actions (which have become easier to implement thanks to 4.7)
I have been experimenting with such a class over the past few hours and will upload a first patch below. Some notes:
* The class usage is almost similar to all the list table classes: There's a base class, and then there's (or rather there will be) one class (which extends the base class) for each screen that could benefit from that.
* Many of the actions have similarities: They mostly use `check_admin_referer()` at the beginning, followed by some capability and other permission checks to verify the user is allowed to perform the action. Therefore the base class should be able to handle nonces on its own. The capability checks should be separated from the actual action logic for better organization and easier testing.
* Many of the actions redirect back to the admin page, with a GET parameter denoting a notification message to show to the user. `WP_Action_Handler` should also be capable of managing such messages to make that easier as well. This will furthermore allow to remove a bunch of code from the admin screen files where they ""bootstrap"" their supported messages.
More notes will follow on the initial patch." flixos90 2
37526 Introduce the possibility to register new administration panels Administration normal normal Awaiting Review enhancement new needs-unit-tests 2016-07-30T10:34:59Z 2016-11-15T00:13:33Z "I'm currently trying to build a plugin that implements a completely custom administration panel. Unfortunately it's currently not possible to fully make it work with the Core implementation. Therefore my proposal is to introduce a function like `register_administration_panel( $name, $args )` that developers can use to build their own custom admin panel and have Core support it. They would need to take care of the functionality for that panel themselves - the registration would only ensure that the parts that are unified for all administration panels in Core will act in a compatible manner.
WordPress Core supports two additional administration panels on Multisite ('network' and 'user') which could leverage that function as well. The idea is that everywhere we currently check for `is_network_admin()` and `is_user_admin()`, we'd now use the administration panels registered to detect where we currently are. This would provide a flexible API and also clean up some code. The default admin would not be checked for there, instead it will be the fallback as it currently is in Core implementation as well.
Note that registering a custom administration panel should be considered an edge-case. The reason I personally would appreciate that functionality for is that I'm building a plugin that implements a global administration panel (for Multinetwork). Note that while the examples I mentioned are all Multisite-related, the function shouldn't be restricted to Multisite. The average plugin won't and shouldn't use it, but the function can be useful for custom projects which require an interface that other plugins should not interact with at all, for example a member area of a membership site with custom functionality.
Introducing this functionality would also make #37445 and #37446 unnecessary (two tickets I opened earlier).
I will add a patch as a proof-of-concept of what this could look like." flixos90 9
33566 Keyboard shortcuts for all functionality on the dashboard Administration 4.3 normal normal Future Release enhancement new 2015-08-26T21:52:34Z 2016-11-18T22:55:38Z "I'm constantly hitting cmd+s (or meta+s) in the appearance file editor. I'm also constantly looking for a short cut to preview or publish a post. Aside from the accessibility assistance, I think an addition like this would make WordPress very ""Power User"" friendly. I know the meta+s command works in the post/page editor but the interaction is so subtle, I'd to do it a few times before I saw the ""Draft saved..."" comment at the bottom. I had a notion that something like meta-key + down arrow might overlay a set of keyboard instructions. Things like ""cmd/ctrl + s = Save Draft, cmd/ctrl + shift + L = Preview Post, cmd/ctrl + p = Publish Post/Page"" etc. Obviously, this needs work.
Is this something in the pipeline? If not is this something I can propose?" tady 7
32085 Less ambiguous dashboard access. Suggested new capability: access_dashboard Administration 4.1.2 normal normal Awaiting Review enhancement new 2015-04-23T19:15:12Z 2015-04-25T00:18:54Z "Wordpress makes the assumption that the theme (or some plugin) may not provide a place for users to edit their profile, and lets any registered user access the dashboard to do so. It's a decent assumption to make. While it creates a jarring ""did I just leave the site?"" experience, you can't assume the theme or some plugin will accommodate updating profiles.
There are a host of other plugins that rely and build upon this assumption. Vendor Products (a paid Woocommerce extension) assumes users of any role have access to the dashboard, to let users identified as vendor admins (by its own means) manage products. There's an LMS which makes the same assumption to let teachers manage quizzes and such. I'm sure many other plugins make that same assumption.
I recently discovered that WooCommerce relies upon the `edit_posts` capability to determine if a user should be able to access the dashboard vs getting redirected to ""my account"". This keeps customers on the front-end, which is valuable, but breaks a host of other plugins which assume any registered user can access the dashboard.
Overuse of the `edit_posts` capability to determine some level of admin access is a different discussion (worth having!), but it seems obvious to me that a new capability should be introduced to specifically target accessing the dashboard. This is certainly a Woocommerce issue, but I feel an `access_dashboard` capability would remove the ambiguity around... well, accessing the dashboard.
This would also let WP admins have refined control over letting their users access the dashboard vs staying on the front-end. Buddypress for example provides a front-end profile editing template. Under Buddypress settings, there could be a checkbox for allowing users to access the dashboard. Unchecking it would keep subscribers on the front-end. WooCommerce also provides front-end account management and could have the same approach. Users without these plugins could also just use a plugin like User Role Editor to remove the `access_dashboard` capability from subscribers to keep users on their front-end, or achieve the same result with 4 lines in their functions.php." archonic
37101 Linux symbolic link support for wordpress [GITHUB PULL REQUEST #219] Administration 4.5.2 normal normal Awaiting Review enhancement new 2016-06-14T14:26:29Z 2016-06-14T14:26:29Z "I was searching for a solution to allow symbolic links in wordpress core files/folders
The only resource I found was this article
[http://www.htmlgraphic.com/symlinking-wordpress-core-files-wordpress-skeleton/]
which is not satisfying at all IMO
So, I came up with this pull request which slightly changes the core files
To achive the symbolic links with linux you can do the following
{{{
# create a new wordpress instance and change directory
mkdir wordpress-symlink && cd wordpress-symlink
# Copy the wp-content folder from global storage where ""latest"" version of wordpress is located
cp -R /var/lib/wordpress/wp-content ./
# create symlinks for all other files/folders into current folder (wordpress-symlink)
ln -s /var/lib/wordpress/* ./
}}}
Of course an important setting is to disable automatic updates in wp-config.php (once created)
{{{
define( 'AUTOMATIC_UPDATER_DISABLED', true );`
}}}
PingBack: https://github.com/WordPress/WordPress/pull/219" ole1986
32626 List tables CSS: inconsistent alignments Administration 4.2 normal normal Future Release enhancement new 2015-06-12T15:51:24Z 2015-10-16T13:47:40Z "While working on #31654 noticed inconsistencies in the alignments of the checkboxes and also some other small details in the List Tables that would need a bit of love, see the screenshot below for some examples. This would also greatly simplify the List Tables CSS where many (crazy) selectors are just to override exceptions that override other exceptions etc. See also related #29990.
[[Image(https://cldup.com/T48AqNGdT0.png)]]
A possible plan would be:
- stick to a default padding for the cells with checkboxes (10px ?)
- the checkbox in the table headers would probably need no padding and `vertical-align: middle` to handle #29990
- handle the special case for comments, plugins and network themes in a consistent way
- there's a 1 pixel difference in the vertical alignment of links and normal text in the table headers
- images should be consistently aligned" afercia 4
39418 Make Empty Spam & Empty Trash AJAX Administration 2.5 normal normal Awaiting Review enhancement new dev-feedback 2016-12-28T18:04:55Z 2017-02-19T16:33:01Z "Now that plugins are doing more with post types, and dealing with sometimes hundreds of thousands of entries in the posts table, emptying spam and/or trash is starting to feel a little outdated.
When there is a need to empty many spam or trashed items, it's not uncommon for this page to timeout, or to reload in the browser in such a way that rendering is blocked while the server processes the mass deletion of content.
In my imagination, it would be a nice improvement to fallback to the current behavior for `noscript`, but to leverage the power of javascript being asynchronous to provide some kind of modal window to chug through the process, maybe with a progress bar and some basic error feedback if the empty action fails for any reason." johnjamesjacoby 1
36644 Make admin menu skip links accessible to developers Administration 4.6 normal normal Future Release enhancement new needs-docs 2016-04-22T23:04:58Z 2016-06-21T08:55:05Z "Currently, the WP admin skip links are hard coded in `menu-header.php` and cannot be modified or added on to. Use case here might be a plugin with a tabbed settings page; it might be nice to have the ""Skip to main content"" bypass the tabs, since right now keyboard users still have to tab through that entire menu, but allow the developer to add a ""Skip to plugin settings menu"" or something similar on their settings page, so that both the settings form and the tabs are available, but separate.
Modifying the output here to use a function with an array and filter can be done easily, without changing the current output, and future skip links can be simply added to the array.
A related change should be adding the existing section ID (set in `add_settings_section`, so anyone using the Settings API will have already done this) to the section title output in `do_settings_section`, to set up the appropriate anchor. Developers who want to add a skip link to a section on their settings page then just need to add the section ID and text to the skip links array, using the filter." littler.chicken 11
40391 Make the Live Search accessible Administration normal normal Awaiting Review enhancement new close 2017-04-07T13:48:45Z 2017-05-22T17:50:35Z "The Live Search for
- search installed plugin
- install plugin
- search installed Themes
- install theme
need some improvement for accessibility and in my eyes also for user experience.
When a user start typing, the search for plugins/themes starts right away, which is a bit distracting and confusing, especially if you don't type fast.
A possible solution could be
- the result starts after 3 letters (not with the first one)
- expand the timeout, when results get displayed
- allow users to set a profile option, that they are slow typers (and lets them define the speed. I think ""fast"" and ""slow"" would be not detailed enough)
" Travel_girl 5
35133 Make the admin menu more flexible in width Administration 4.4 normal normal Awaiting Review enhancement new 2015-12-17T14:06:31Z 2016-08-08T17:43:48Z "Two years ago the admin menu was increased by width by 10 pixels, #25918. More and more strings gets translated, which causes the menu to be too small:
[[Image(https://dl.dropboxusercontent.com/u/23348/WP/Schermafbeelding%202015-12-17%20om%2014.33.42.png)]]
I would suggest to make the menu variable in width, so it can take the space needed for translated menu items." ChantalC 3
21516 Make the entire .check-column the click target for the checkbox Administration normal normal Awaiting Review enhancement new dev-feedback 2012-08-08T03:34:38Z 2017-07-17T16:11:14Z Sometimes checkboxes are quite small. In various list tables, checkboxes are wrapped in a .check-column. Why not make the entire .check-column clickable, in case people (like me) miss? mitchoyoshitaka 5
39050 New Core Admin Menu Functions -- `add_menu_link` and `add_submenu_link` Administration 4.7 normal normal Awaiting Review enhancement new has-patch 2016-12-04T16:10:58Z 2016-12-11T16:01:32Z "Currently if a plugin would like to add admin menu links that go to a url, instead of a registered admin page, there are only two options:
Option 1: Register a dummy admin page, and add an action that sets up a `wp_redirect` on load.
Option 2: Mess with the menu globals directly.
Neither of these is a particularly good option, and encouraging messing with globals directly feels bad.
To that end, this will let folks add admin menu links -- whether to plugin support forums, to the customizer even (there is no good way to add deep links to the customizer currently), and the like.
Is this something we'd like to support?" georgestephanis 2
29312 No recommended nonce refresh functionality in Heartbeat. Administration 3.6 normal normal Awaiting Review enhancement new dev-feedback 2014-08-22T07:49:19Z 2015-08-21T05:36:03Z "Oddly enough it seems there isn't an obvious way to refresh nonces that may be needed on the page after heartbeat-api login dialog. For example, go to wordpress plugins listing page, notice the activate, deactivate links all have a nonce part in the request.
In a second tab, log out of the site, and go back to plugin listing page.
After awhile, the page realizes it's not logged in, and pops up a log in screen. Log in, and click an ""activate"" or ""deactivate"" button.
Notice it gives the nonce-failure message, ""are you sure you want to do this""? Because the previous session's nonces don't work. Why does Wordpress not know to refresh these nonces? I thought new nonces would be sent back as a heartbeat-ajax, but it looks like there isn't an ajax request with the login screen.
It seems $(document).on('heartbeat-nonces-expired') can be used to detect when this situation happens, but it happens many times after login successful, is not just triggered once." programmin 5
38019 Notify site admin when domain or IP changes and Search Engine Visibilty is set to off Administration 3.0 normal normal Awaiting Review enhancement new 2016-09-10T19:13:23Z 2016-09-10T19:19:07Z "It would be very valuable to me (and some other wp folks too) if I could get an '''email notification''' when a site is moved from '''localhost''' or '''staging''' to '''production''' site and '''Search Engine Visibility''' is set to '''Discourage'''.
It could be as easy as setting two options, domain and ip and checking them in some hook. If not matching and SEO off - send email.
The possibility of a misfire and an occasional nag is well worth the SEO points, or so the SEO guys say." vaniivan 1
24795 OS X Treatment Administration 3.6 normal trivial Future Release enhancement new has-patch 2013-07-18T15:54:01Z 2017-02-05T14:09:10Z "Just a minor annoyance. Certain things are inherently different about using a Mac over any other Operating system. Specific to my case is keymappings. While I suspect most Mac users are smart enough to read ""Ctrl + A"" and translate that to ""CMD + A"", we should be explicit when we can.
This patch inrtroduces pluggable function is_osx() that is really basic. Sadly, relies on User Agents and so is inherently flawed, but mainly useful anyway.
Using this function, the Permalinks Options screen uses Command A instead of CTRL A when .htaccess is not writable.
A little thing but annoying enough to warrant a patch." technosailor 11
9883 Password shows under Settings / Writing Administration 2.7.1 low trivial Future Release enhancement assigned has-patch 2009-05-19T23:07:29Z 2017-04-10T14:01:17Z "The password box in the section ""Post via e-mail"" on Settings -> Writing should hide the password, not show it." mastrup 13
32194 Post Locked Notification Dialog is not Responsive Administration 3.6 normal normal Awaiting Review enhancement new has-patch 2015-04-29T21:38:27Z 2016-08-18T20:13:43Z When notification dialogs were introduced in r23661, they were only designed for larger screens. iandunn 6
31210 Problem with WP core function to get user dropdown Administration 4.1 normal normal Awaiting Review enhancement new 2015-02-02T12:44:00Z 2015-02-02T12:44:00Z "Why does WP pass the argument 'who' => 'authors' on line 1014 of core file /wp-admin/includes/class-wp-posts-list-table.php. Which then causes WP to check the $dbprefix_user_level meta key in the database for that user, which is as far as I know, is a deprecated method of checking that.
This then stops WP from showing authors with enough caps (but level_0 for some reason) in the 'Author' dropdown on the page quick edit function." andyx2v
38753 Publish / Update button should close the post / page edit and return to list Administration 4.6.1 normal normal Awaiting Review enhancement new 2016-11-11T09:37:36Z 2016-11-11T17:25:09Z "Hello
A very useful feature would be for the button Publish / Update to actually close the post / page edit and return to the list. A second button with Publish & Stay / Update & Stay next to the other one would do the trick for those who still want to make modifications on the post / page.
Something like this exists in many CMS and helps when there's a lot of pages / posts to edit" MariusM11 1
38296 Remove $sep variable duplication from Ternary Operator Administration 4.6.1 normal normal Awaiting Review enhancement new has-patch 2016-10-12T20:20:11Z 2016-10-12T20:25:46Z "In '''WP_List_Table''' class, we are using ternary operators a lot. We know that the main advantage of the ternary operator is, it makes code shorter.
Instead of uisng ternary operator like this,
{{{#!php
( $i == $action_count ) ? $sep = '' : $sep = ' | ';
}}}
Can we use,
{{{#!php
$sep = ( $i == $action_count ) ? '' : ' | ';
}}}
So the variable $sep is written once. Shortening the code a bit.
" joelcj91
37012 Remove non hierarchical test for sticky in post table hidden fields Administration 4.6 normal normal Awaiting Review enhancement new 2016-06-03T09:19:32Z 2016-06-03T09:19:32Z "When you enabled sticky feature for custom posts or pages, the checkbox in quick edit links for hierarchical post types (so like pages) doesn't work.
That's because there is a test on hierarchical type to add the sticky div (/wp-admin/includes/template.php:333).
Why such a test while there is an is_sticky() test inside ?
Is this test really useful ? I think it could be removed." nicolasrenard
41580 Review the usage of the `::-moz-focus-inner` CSS fix for the buttons extra padding in Firefox Administration normal normal Awaiting Review enhancement new 2017-08-07T14:55:54Z 2017-08-07T14:55:54Z "For a number of years, Firefox used to set some extra padding on the buttons (or inputs of type button/submit/reset). To address this, WordPress uses a known fix targeting the proprietary Firefox pseudo element `::-moz-focus-inner`.
Seems something has changed recently and starting with Firefox 53, FF doesn't apply the extra padding any longer. I ''think'' the relevant Bugzilla ticket Firefox 53 release notes, though.
Testing a bit on Windows, in the screenshot below:
- on the left, Firefox 48: buttons without and with the CSS fix: there's a clear size difference
- on the right: Firefox 54: buttons without and with the CSS fix: no size difference
[[Image(https://cldup.com/7AkzV22mi3.png)]]
Codepen available here: https://codepen.io/afercia/full/Gvrzwz/
Seems these rules used across the admin stylesheets could be simplified a bit. The only part that needs to stay is `border-width: 0;` or, maybe better, `border: 0;` which is necessary on Windows to remove the dotted line on :focus:
[[Image(https://cldup.com/aynypgSW6Y.png)]]
This could be also a good opportunity for some clean-up. For example, seems to me in `press-this.css` there are two identical rules. " afercia
38676 Semantic elements for non-link links: class-wp-comments-list-table.php Administration normal normal Future Release enhancement new has-patch 2016-11-04T18:59:28Z 2017-04-14T16:24:21Z Some of the items in the row actions of each comment (inline reply and quick edit specifically) should be changed to buttons here. Cheffheid 3
38677 Semantic elements for non-link links: class-wp-posts-list-table.php Administration normal normal Future Release enhancement new has-patch 2016-11-04T20:15:16Z 2017-04-14T16:56:04Z "The ""Quick Edit"" link should be changed to a button.
Related: #26504, #35126" Cheffheid 2
40747 Semantic elements for non-link links: theme-install.php Administration normal normal Future Release enhancement new has-patch 2017-05-12T16:54:28Z 2017-05-15T16:39:48Z "The filters on the theme install page (Featured, Popular, Latest, Favorites) are currently marked up with anchor tags, but they should be marked up with buttons.
A downside to doing so is that the focus styles persist when the buttons are clicked, which may not look great.
Attached first pass patch removes the outline on focus for browsers that add one by default (Chrome, IE11, Edge, possibly Safari) to minimize the effect, but would definitely appreciate some help in coming up with a good solution for it instead." Cheffheid 2
38674 Semantic elements for non-link links: update-core.php (show/hide hidden updates) Administration normal normal Future Release enhancement new 2016-11-04T17:44:56Z 2016-12-16T09:43:56Z "This toggle is a link with simply `href=""#""`. Should be a button.
Related: #26504, #35126" Cheffheid 2
41442 Show nearby events in dashboard events widget in a per country basis Administration 4.8 normal normal Awaiting Review enhancement new 2017-07-25T18:51:10Z 2017-07-26T00:23:26Z "Hi!
I've noticed that the new events dashboard widget don't show all WordCamps in a country basis. It shows only that ones nearby in kilometres, 400 kms as seen in code (https://meta.trac.wordpress.org/browser/sites/trunk/api.wordpress.org/public_html/events/1.0/index.php?rev=5559&marks=707,708#L703).
That way, i.e., for an Spanish WordPress user from Madrid (in the geographical center of the Country) it going to be impossible to know about WordCamps in Chiclana (Cádiz) or others far away from that 400 kms standard, and totally impossible for anybody to know about a WordCamp in Las Palmas (Canary Islands), and impossible for anyone that lives in Canary Islands to know about continent WordCamps.
It could be possible to extend/change the range to a country basis (best) or more kilometres?" fernandot 1
27996 Show/Hide Postbox doesn't work if dynamically added Administration 3.9 normal normal Future Release enhancement new has-patch 2014-04-23T17:23:23Z 2015-06-19T01:10:57Z "If you have a plugin which adds a metabox to the page at runtime, the ""handlediv"" button which shows/hides the contents of that metabox doesn't work.
To fix it, the code (on line 12 of postbox.js and also in postbox.min.js) should change from:
{{{
$('.postbox h3, .postbox .handlediv').bind('click.postboxes', function() {
}}}
To:
{{{
$(document).on('click.postboxes', '.postbox h3, .postbox .handlediv', function() {
}}}
P.S. I have tried to submit a patch in the past but my entire computer had a meltdown and scattered files from here to Mordor to the Shire because I have no idea how to do it properly. This after spending a couple weeks reading up on how to it properly. So, unfortunately, I am not able to submit a patch due to the incredibly difficult-for-me-to-understand SVN system. My Apologies." johnstonphilip 8
34157 Style the increment and decrement buttons for number inputs Administration low normal Awaiting Review enhancement new 2015-10-05T21:26:58Z 2016-09-04T13:16:17Z "The buttons shown inside `input[type=""number""]` inputs for incrementing and decrementing the value are the smallest buttons known to man.
[[Image(https://i.imgur.com/mtmggQM.png)]]
In Webkit at least, these [https://stackoverflow.com/questions/21266888/styling-html5-number-input-spin-box-in-chrome can be styled using CSS], although it appears that the two buttons are styled as one single element.
Does someone want to look into this more and see if the styling of the buttons in WordPress' number inputs can be improved?
Considerations:
* Should the buttons be shown persistently or only on hover? I'd prefer the former.
* Behaviour on touch devices (buttons should probably remain hidden)
* Differences between platforms and browsers" johnbillion 4
34799 Tell admin-post.php to check for $_REQUEST['action2'] ? Administration 4.4 normal normal Awaiting Review enhancement new 2015-11-27T10:05:55Z 2015-11-27T16:25:07Z "In plugin development, we can handle POST requests through the `admin-post.php` file. This file is looking after an input with a name of `action` so we can register a custom hook to handle the POST request.
After looking at the WP_List_Table, the bulk ""select"" '''top''' tag has a name attribute of `action`. So for custom development, the form where the list table fit can easily point to `admin-post.php` and we can handle the bulk POST request through a custom hook and it works.
But here is the issue, if users use the ""select"" '''bottom''' tag for their bulk action, it won't work because the bottom select tag has a name attribute of `action2`. So if a POST request to `admin-post.php`, we can no longer listen to a custom hook to manipulate the request and its data.
So I'm asking if it will be ok to update the `admin-post.php` file to check after a `$_REQUEST['action2']` as well?" jlambe 4
35783 The WordPress shades of grey Administration normal normal Awaiting Review enhancement new has-patch 2016-02-09T15:37:28Z 2016-05-19T17:10:57Z "A while ago there was a [https://wordpress.slack.com/archives/design/p1453812787000255 conversation on Slack] about the multitude of grays used in the WordPress admin. Wondering about a tool capable of extracting colors and return some usage data, we tried cssstats. Far from being a scientific method, I've just uploaded the concatenated and minified CSS file and [https://cldup.com/10C6ryGsN3.png got some results].
I'm pretty sure cssstats doesn't get all the colors but the data report is an interesting summary of the WordPress CSS (as of January 26th, 2016). There are many interesting points to consider, for example the media queries total number, but let's focus just on colors for now and more specifically on grays.
Looks like there are more than 40 different shades of grays, not counting the rgba ones and the ones that cssstats probably missed. It's totally understandable that in a so large project, with time, year after year, some things get missed and some colors stay in the CSS without particular reasons other than historical ones. By the way, for the sanity of the CSS in the long run, I'd recommend to audit all these shades of gray and try to reduce their total number as much as possible.
About backgrounds, this would have beneficial effects also when trying to find accessible colors for links (hover, focus states included) and other controls. Finding suitable colors against, say, 20 different gray backgrounds would be a bit hard. Reducing the gray backgrounds to a small, known, number would greatly help. Not to mention design consistency and the ongoing effort to make WordPress use a well established, standardized, color palette.
Working a bit on the cssstats results, I've split the grays in different groups, just scanning the WordPress CSS files and trying to check how many times they're used and where. Again, this doesn't pretend to be a scientific method :) for that, maybe there would be the need of some more reliable tools other than cssstats.
The grays in the first group are used in only one CSS ruleset and I'd say they should be definitely standardized and replaced with other grays. The ones in the second group have just two occurrences and they should probably be standardized too. Third and fourth group: to evaluate :)
One occurrence
{{{
2f2f2f - for .theme-browser .theme.active .theme-name
686868 - .theme-overlay .theme-author
808080 - suggest.js auto suggestions border
grey - .media-disabled, .imgedit-settings .disabled
9a9a9a - old media upload? to move to deprecated media css
bbb - media upload dashicon upload-dismiss-errors, also tinymce ""lightgray"" skin
d2d2d2 - borders for .tablenav .tablenav-pages a, .tablenav-pages-navspan
ececec - background for #plugin-information .counter-back (star rating in the plugin details modal)
e7e7e7 - .media-icon img fallback border for rgba border, remove both?
f4f4f4 - ""undo"" table row background, maybe unify with a more used background like f5f5f5 ?
}}}
Two occurrences
{{{
101010 - suggest.js auto suggestions text color list on white or #f0f0b8 background (also on Press This)
a9a9a9 - input placeholder, there's a ticket for this, see #35777
b4b4b4 - tablenav-pages-navspan and the pressthis-bookmarklet link
dadada - (excluding deprecated media css) only for borders, maybe unify with more used borders ?
d7d7d7 - revisions borders, also tinymce ""lightgray"" skin
e6e6e6 - #plugin-information .review, press this, also tinymce ""lightgray"" skin, to unify with e5e5e5 ?
}}}
Have very similar colors, maybe should be unified
{{{
464646 - unify with 444 ?
dedede - mainly borders and .wp-playlist-dark .wp-playlist-caption, maybe unify with dfdfdf ?
dfdfdf - mainly borders, maybe unify with dedede ?
e4e4e4 - used very few times, maybe unify with e5e5e5 ?
}}}
Used very few times, to evaluate
{{{
222 - .edit-comment-author text and wp-embed and mediaelement background, maybe change to #23282d ?
727272 - maybe change to 72777c ?
ebebeb - used very few times
fbfbfb - manage-menus (toolbar in menus screen) and login form, very close to white
fdfdfd - tab panels
eaeaea - only for `kbd` and `code` backgrounds
e8e8e8 - border for list table pagination links and few other things
e1e1e1 - a very few borders and shadows
}}}
Other grays
{{{
444 - main text color
555 - maybe should be replaced with the new 555d66 ?
555d66 - new gray
666 - mainly for text color
999 - there's a ticket for text color, see #35660 but it's also used for borders
ccc - mixed use, text, borders, backgrounds, shadows
c4c4c4 - only in the gradient for #postimagediv .inside img
ddd - mainly borders and a few backgrounds
eee - mixed use, most notably: main Customizer background
e5e5e5 - mixed use, mainly borders
fcfcfc - backgrounds
f1f1f1 - main background
f3f3f3 - backgrounds
f5f5f5 - backgrounds
f7f7f7 - backgrounds
f9f9f9 - backgrounds, zebra striping and others
}}}" afercia 24
34904 The design of the focus outline on buttons/elements could be improved Administration normal normal Future Release enhancement new 2015-12-08T00:22:23Z 2017-02-06T17:53:13Z "Currently, the focus styles for buttons and many elements use a gradient box shadow that can be pretty hard to spot in some instances including the primary button styles.
[[Image(https://cldup.com/lwuCk0gUo5-3000x3000.png)]]
I'd like to propose something more like what we use on WordPress.com:
[[Image(https://cldup.com/On1XG_XlGY.png)]]
CC @mor10" michaelarestad 24
40416 Use HTTPS in wp_dashboard_primary() Administration normal minor Awaiting Review enhancement new has-patch 2017-04-11T21:58:05Z 2017-04-12T01:21:45Z "The feed URLs for news and popular plugins are still using HTTP.
From #27115, it sounds like they initially weren't converted to HTTPS because [https://core.trac.wordpress.org/ticket/27115#comment:4 some servers don't support outgoing SSL connections], and at the time w.org did not redirect HTTP -> HTTPS.
Both of those URLs `301` redirect to HTTPS URLs now, so I can't think of any reason to leave them as HTTP. The URL for the Planet feed was set to HTTPS in r29787, even though [https://meta.trac.wordpress.org/ticket/634 Planet doesn't redirect to HTTPS yet], so that seems like further precedent to update this.
The popular plugins URL was redirecting 3 times until it finally got to the new URL in the patch, so this should be a bit faster too.
The popular plugins aren't currently shown with the old or new URLs, because of meta:#2723. It seems like it might be fine to continue with the change to HTTPS, though, since it's broken anyway, and it should start working once the Meta ticket is fixed." iandunn 3
31006 Use classes instead of setting and directly animating background colors in JS Administration normal minor Future Release enhancement new 2015-01-14T05:32:10Z 2016-03-16T18:27:33Z "Directly setting hex values in JS doesn't tell us much about what the color is being used for, whereas setting a class name is much more semantic. Also, jQuery UI can animate color changes when using addClass/removeClass/toggleClass/switchClass - no need to use .animate() directly and do things like getting background colors of surrounding elements.
This is very tightly related to #25060 and blocks it. I am working on it." helen 4
41020 "Use target=""_blank"" for links in Wordpress news and events and updates" Administration 4.8 normal normal Awaiting Review enhancement new 2017-06-13T07:48:36Z 2017-06-13T15:07:17Z "After upgrading to 4.8 Evan I clicked on the links to display info about the upgrade, however. When I did this it opened the link in the same window/tab.
Is it possible to open this in a new tab by adding the target=""_blank"" attribute to the link. Likewise most of the links in the Admin Dashboard under ""News and Events"" open in the same window/tab - would you consider opening any of these links in a separate window/tab?
To me this makes sense as they're external sites and though related, not directly related to the dashboard - and as you can head down a rabbit-hole when exploring new features / bugfixes it can be annoying to have to click back through multiple pages to get back to the dashboard." altonius 1
33573 Use the site icon introduced in 4.3 for the My Sites page Administration 4.3 low normal Awaiting Review enhancement new has-patch 2015-08-27T17:27:32Z 2017-07-10T16:02:32Z Now that site icons are available in core, we should be able to use them on the network sites/my sites list. morganestes 8
36426 WP Admin memory limit not increasing to base limit by default Administration 4.6 normal normal Awaiting Review enhancement new has-patch 2016-04-06T12:54:54Z 2016-08-19T14:25:47Z "We have 2 constants that can be set in wp-config.php (and by using filters, afaik), for example:
{{{#!php
define( 'WP_MEMORY_LIMIT', '512M' ); // increases WP base (front-end) limit
define( 'WP_MAX_MEMORY_LIMIT', '512M'); // increases WP admin (back-end) limit
}}}
The former isn't really known, which you can Google to find out. People usually only use the first constant.
If the 2nd constant (WP_MAX_MEMORY_LIMIT) is not set, it defaults to 256M. WP_MEMORY_LIMIT can be higher than that though, so we could safely increase WP_MAX_MEMORY_LIMIT to match WP_MEMORY_LIMIT if WP_MEMORY_LIMIT is higher and WP_MAX_MEMORY_LIMIT is not set manually to a lower (than WP_MEMORY_LIMIT) value.
What I mean in coding terms:
{{{
if(!isset(WP_MAX_MEMORY_LIMIT) && isset(WP_MEMORY_LIMIT)){
if(WP_MEMORY_LIMIT>DEFAULT_WP_MAX_MEMORY_LIMIT){
//NOTE to the line above: this requires parsing the actual value in these constants as the strings can be like: 512M, 1G etc.; the DEFAULT_WP_MAX_MEMORY_LIMIT is a thing I came up with, currently the default admin memory limit is 256M
define( 'WP_MAX_MEMORY_LIMIT', WP_MEMORY_LIMIT);
}
}
}}}
All these values can be checked with the Bulletproof Security plugin, under BPS Security -> System Info.
Side note: imho WP_MAX_MEMORY_LIMIT should be renamed to something like WP_ADMIN_MEMORY_LIMIT, but that's another issue.
" eclare 2
17520 cite element used incorrectly Administration normal normal Future Release enhancement new has-patch 2011-05-20T17:47:14Z 2015-11-01T14:49:37Z "Here's what the HTML5 specification says about the cite element:
The cite element represents the title of a work (e.g. a book, a paper, an essay, a poem, a score, a song, a script, a film, a TV show, a game, a sculpture, a painting, a theatre production, a play, an opera, a musical, an exhibition, a legal case report, etc). […]
A person's name is not the title of a work — even if people call that person a piece of work — and the element must therefore not be used to mark up people's names. (In some cases, the b element might be appropriate for names; e.g. in a gossip article where the names of famous people are keywords rendered with a different style to draw attention to them. In other cases, if an element is really needed, the span element can be used.)
http://www.whatwg.org/specs/web-apps/current-work/multipage/text-level-semantics.html#the-cite-element
The element is used plugins/hello.php correctly to mark up the title ""Hello, Dolly"". But many more places it is used incorrectly to mark up an author's name.
The obvious fix would be to replace all but the one correct instance of the cite element with spans with an appropriate class." holizz 6
30527 function to add separator Administration normal minor Future Release enhancement new has-patch 2014-11-27T15:07:32Z 2017-02-05T14:17:36Z "added the function `add_menu_separator( $position )`.
Usage:
{{{
add_action('admin_menu', 'separator');
function separator() {
add_menu_separator(61);
}
}}}
Adds a separator after 'Appearance'. - Just an example.
" cfoellmann 5
18850 hidden admin page Administration normal normal Awaiting Review enhancement new 2011-10-03T21:43:12Z 2015-10-12T09:39:41Z "it should be possible to create a hidden admin page.
this is useful for pages, that require parameters which are better inserted in other pages (e. g. using the post_row_actions filter).
if this is already possible, it should be documented somewhere where it might be found.
(btw: i'm not sure, what the difference between feature request and enhancement is. please redeclare as fit)" ibotty 13
21171 jQuery Events for Metaboxes Administration normal minor Awaiting Review enhancement new 2012-07-05T21:35:47Z 2015-09-20T00:01:28Z "Currently, when a plugin adds a metabox with complex objects (like TinyMCE, Maps, CodeMirror etc) care must be taken to refresh the objects when the elements are moved (including hidden/shown).
After some digging, I've found that this seems to works in most cases:
{{{
var context = ""#custom_meta_box_id"";
$( '#adv-settings' ).on( 'click', context + '-hide, ', refresh );
$( context ).on( 'click', '.hndle, .handlediv', refresh );
$('.meta-box-sortables').bind( ""sortstop"", refresh );
}}}
which isn't terrible, but seems fragile if core changes in the future, and there should just be a better way :-)
Two ideas from dev chat are triggering custom events or the (coming soon) ""js actions"" which would be more robust (like php actions)." WraithKenny 2
35309 remove_menu_page and remove_submenu_page Administration 4.4 normal normal Awaiting Review enhancement new close 2016-01-04T21:35:55Z 2017-02-02T12:40:42Z "When remove top level menu - remove_menu_page =>
1- page content for top level can access if i know url
2- page content for second level can access if i know url
When remove second level menu - remove_submenu_page =>
1- page content for second level appear white page message
* You do not have sufficient permissions to access this page.
'''It is better when you delete top level menu => delete top menu page and sub-menus page''' Like sub-menu remove" omarhadidy 3
41582 styling HTML5 according to admin user's chosen admin-color scheme Administration normal normal Awaiting Review enhancement new 2017-08-07T21:27:26Z 2017-08-09T21:42:05Z "By default, each browser applies their own styling to HTML5's [[https://www.w3.org/TR/html5/forms.html#the-progress-element|]] element; e.g.,
* Chrome uses`#7baaf7`
* Firefox uses `#06b025`
* IE11 & Edge use `#369aca`
* I **think** Opera uses the same color as Chrome, but since I don't have it installed I can't be sure
Try the following [[http://fiddlesalad.com/html/html-progress-element-example/|fiddle]] in various browsers to see it in action.
It would be nice if the various `/wp-admin/css/colors/xxx/colors.css` contained rules to style HTML5's `` element [1] according to the admin user's currently selected admin-color scheme.
As far as I know, `` is not currently used in Core. However, the [[https://github.com/humanmade/WordPress-Importer|WordPress Importer Redux]] started by @rmccue plugin does.
" pbiron 7
16778 wordpress is leaking user/blog information during wp_version_check() Administration normal minor Awaiting Review enhancement reopened has-patch 2011-03-06T18:57:43Z 2017-03-27T21:32:28Z "Hi,
we've noticed that wordpress will send how many users and blogs are in a given installation during the GET to api.wordpress.org together with the installation URL in the headers.
Is there any reason why this is done? It seems quite a leak of information. Can it be turned into an option defaulting to off and admins can opt-in if they want to report how many users/blogs are currently there?
thanks.
PS. slightly related, WP will also leak which blog in MU mode is requesting any URL via the user-agent in the WP_Http class (for example while updating the news feed on the dashboard)" investici 86
35205 Add additional hooks to the 'attachment-info' template to customise output Administration 4.4.2 normal normal Awaiting Review feature request new 2015-12-22T23:05:31Z 2016-04-07T12:34:29Z "Hey guys,
I've been working on several sites for clients and one thing that keeps coming up is the need to customise the 'attachment info' screen when viewing media items in the fancy media modal.
[[Image(http://drive.google.com/uc?export=view&id=0BxFkQxv15MkfUWJNUnBMb3gxa00)]]
You can see that the screen shows the attachment info at the top, followed additional info below (for example the file name, file type, uploaded date at the top followed by editable fields below such as title, caption etc)
All of this is defined in `/wp-includes/media-template.php` and pretty much hard coded, looking for the upload type and then displaying fields.
There is already an [https://codex.wordpress.org/Plugin_API/Filter_Reference/attachment_fields_to_edit 'attachment_fields_to_edit'] action but what that does is allow you at add fields to the ''bottom of the existing fields'' as such.
[[Image(http://drive.google.com/uc?export=view&id=0BxFkQxv15MkfSUVhby1pQm9Mc3M)]]
I would propose a few new hooks be created inside `media-template.php` starting from line 338. This is the start of the `attachment-info` panel and it's here a few actions would be helpful.
For example a client wanted to see all of their different image sizes in the attachment screen so they could easily copy them. Currently this can only be done by editing core directly (which is a terrible idea).
[[Image(http://drive.google.com/uc?id=0BxFkQxv15Mkfd2dwdXRkMm93SHM)]]
Since the media modal is built dynamically with Ajax if we add hooks here developers will be able to access the media object (which contains the URL, title, id and other info). So the flexibility will be really neat.
I'm more than happy to look into this but I'd be really keep to get feedback from you guys just in case I am missing something critical (because I don't know why there is a lack of hooks here for development)
I'm thinking of adding just basic hooks like
```do_action('media-attachment-info-start')```
Cheers
" simonrcodrington 2
28324 Add primary and secondary color definitions to admin color schemes and add function to retrieve color scheme info Administration 3.8 normal normal Awaiting Review feature request new reporter-feedback 2014-05-21T14:31:36Z 2015-12-03T16:23:14Z "I'd like to be able to implement a user's selected admin color scheme into my plugin admin UI design but, at this point in time, using wp_admin_css_color() to register a color scheme only asks for an array of colors and then depends on a stylesheet to use said colors so there's no way for me to, at the very least, detect a primary and secondary color to use in my design.
From what I can tell, most color schemes have what they consider to be the primary and secondary color, and they use those colors for primary buttons and admin menu links and such, but there's no way for someone else to detect those color values.
It would also be nice if there was a function to retrieve the color scheme info. Perhaps something like this:
{{{
function get_user_admin_color() {
global $_wp_admin_css_colors;
if ( ( $user_admin_color = get_user_option( 'admin_color' ) )
&& isset( $_wp_admin_css_colors[ $user_admin_color ] ) ) {
return $_wp_admin_css_colors[ $user_admin_color ];
}
return false;
}
}}}
But the big request is changes to the wp_admin_css_color() function so, at the very least, a primary and secondary color can be defined and stored in $_wp_admin_css_colors. Perhaps something like this?
{{{
function wp_admin_css_color( $key, $name, $url, $colors = array(), $icons = array(), $primary_color = NULL, $secondary_color = NULL ) {
global $_wp_admin_css_colors;
// If a primary color is not defined, use first color from $colors array
if ( ! isset( $primary_color ) && count( $colors ) >= 1 )
$primary_color = $colors[0];
// If a secondary color is not defined, use second color from $colors array
if ( ! isset( $secondary_color ) && count( $colors ) >= 2 )
$secondary_color = $colors[1];
if ( ! isset( $_wp_admin_css_colors ) )
$_wp_admin_css_colors = array();
$_wp_admin_css_colors[$key] = (object) array(
'name' => $name,
'url' => $url,
'primary_color' => $primary_color,
'secondary_color => $secondary_color,
'colors' => $colors,
'icon_colors' => $icons,
);
}
}}}
" bamadesigner 5
33346 Convert the browser update check to an asynchronous request Administration 3.2 normal normal Awaiting Review feature request new 2015-08-11T23:16:22Z 2015-10-08T02:02:07Z "On the admin dashboard, the RSS feed widgets load via AJAX to prevent slowing things down. The browser update check (via Browse Happy) doesn't do this, and blocks the dashboard while the API request happens.
`wp_dashboard_browser_nag()` should be converted so it works the same way as the RSS feed widgets (use the transient data if it's there, trigger an AJAX request if not)." johnbillion
39798 Expose PHP version in dashboard Administration normal normal Awaiting Review feature request new close 2017-02-06T16:54:33Z 2017-06-07T21:13:13Z "There are concerns about PHP version.
Some developers and users would like to see this technical detail a little bit more exposed.
This could be currently really interesting and valuable to expose it, as this creates an awareness of ""it's still PHP 5.6"" vs. ""it's already on PHP 7.1"".
This also allow to see on a glance the full web stack versions as security concerns will primarily arise in PHP and Wordpress." Dereckson 7
31284 List tables with fixed header on scroll Administration normal normal Future Release feature request new 2015-02-10T16:33:44Z 2017-05-23T17:25:37Z "I think it would be interesting, the WordPress through their APIs, allowing fix the header of a table when the scroll action is happening.
A page that could make use of this functionality is the Posts list.
[[Image(http://i.imgur.com/86AE2x0.png)]]
and
[[Image(http://i.imgur.com/O7v0Rfg.png)]]
When the user has many posts, to scroll down the page, the table header is not more visible.
This could also be very useful for plugin authors. That have pages with listings." Apiweb 3
39635 Make insertion of generic dismissible notices in frontend code possible Administration 4.7.1 normal normal Awaiting Review feature request new 2017-01-19T02:51:45Z 2017-01-19T02:51:45Z "As a plugin developer I want to employ dismissible notices on an admin screen. All is fine as long as I use the hook in server-side code to insert them on page load.
But if I want to use them in frontend code (for example to notify users of Ajax events), the only way to access the initialisation code is to hijack one of the events in [source:trunk/src/wp-admin/js/common.js#L415 common.js#L415] - with possibly heavy side effects.
It would be easy to add a generic event like `wp-notice-added` that is not used by specific actions to make the live of developers easier." ccprog
40173 New function wp_admin_notice Administration normal normal Awaiting Review feature request new 2017-03-16T13:35:07Z 2017-03-16T15:17:58Z "I suggest add this function to core WP:
{{{#!php
\n"", $messages );
}
$html = '

}}}
We can use this function:
{{{#!php
`, so that screen readers interpret it as a button that does something, rather than a link that takes you somewhere. It also reduces the number of links that can be pulled out of context.
Appearance isn't a problem either - taking the ""See 3 more…"" from the screenshot:
{{{
// Original:
See 3 more…
// New (might benefit from ARIA attribute):
// Basic CSS:
.no-button {
background: none;
border: none;
color: #0074a2;
}
.no-button:hover {
color: #2EA2C9;
cursor: pointer;
}
" GaryJ 45
40885 Update admin color scheme using the REST API Administration normal normal Awaiting Review task (blessed) new has-patch 2017-05-30T05:55:01Z 2017-05-31T13:05:44Z "Reasonably simple admin-ajax call (notably, with no significant filters) that can be replaced with a call to `/wp/v2/users`. Patch attached.
One thing we can't do is provide an enum of valid color schemes, since historically these have only been registered on `admin_init` (including in core). This also applies to the sanitization callback on the meta key, which can only remove invalid characters, not validate the scheme is valid." rmccue 1
39917 AutoSave is not disabling in spite of settings added in wp-config.php Autosave 4.7.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-02-20T06:36:15Z 2017-02-20T15:43:04Z "I want to disable AUTOSAVE for my application. For this I have added the following lines in /var/www/html/mysite/wp-config.php file:
{{{#!php
/* AutoSaving and Revisions */
define( 'AUTOSAVE_INTERVAL', 20000000000 ); // autosave 1x per year
define( 'EMPTY_TRASH_DAYS', 0 ); // zero days
define( 'WP_POST_REVISIONS', false ); // no revisions
/* That's all, stop editing! Happy blogging. */
}}}
But WordPress is still doing AutoSave.
OS: Ubuntu 14.04
WordPress Version: 4.7.2
" subrataemfluence 6
29386 Autosave message should disappear when the next autosave happens Autosave normal normal Future Release defect (bug) new has-patch 2014-08-26T21:17:58Z 2015-04-25T14:04:38Z An autosave overwrites the previous autosave, so the message is no longer relevant. It will just display the same content as the current editor. iseulde 15
32912 Autosaves are generated every other preview if post is unchanged Autosave 4.3 normal normal Future Release defect (bug) new 2015-07-07T22:30:03Z 2015-07-10T20:26:50Z "I'm trying to work with revisioned post meta and noticed an interesting quirk in core today that I'd categorize as ""unexpected behavior."" While this probably wouldn't come up very often, I think it can cause a bit of a headache when it does.
To replicate:
1. Create a new post, give it a title, and publish it.
2. Once the screen reloads, click ""Preview Changes"". Don't make any changes to the post.
* In loading the preview, WordPress created an autosave of this post
3. Return to the WordPress Admin and click ""Preview Changes"" again without making any changes.
* In loading the preview, WordPress deleted the autosave it created in step 2
Every other preview will add an autosave and every other one will delete it. If at any point you do change the post, the autosave won't get deleted.
In the code, what appears to be happening is, `wp_create_post_autosave()` checks to see if an autosave exists. If it does, the code checks to see if the autosave is different from the post, and if so, it deletes the autosave. If an autosave doesn't exist, the function then creates one (using `_wp_put_post_revision()`) -- *without checking to see if the post has changed*. It seems to me that there should be an intermediate function, e.g. `_wp_maybe_put_post_revision()`, which would check to see if the post has changed, and only then call `_wp_put_post_revision()`.
This probably isn't a big deal, because it requires someone to attempt to preview (twice) without making changes. However, it's still a bug and it might come up in other ways.
Verified in trunk and 4.2.2." mboynes
39619 "Firefox 50 is showing old ""View autosave"" dialog" Autosave 4.6.1 normal normal Awaiting Review defect (bug) new 2017-01-17T23:50:27Z 2017-01-17T23:57:24Z "Using Wordpress 4.6.1. Works in Chrome. Only works from time to time in Firefox:
Steps to reproduce:
1. Create new post
2. Publish post
3. Modify content and wait for autosaving
4. Reload page
Expected result: Restore backup notice including restore backup button
Actual result: Autosave notice
After I debugged a little bit, I realized that Firefox is not able to delete the cookie 'wp-saving-post' by using wpCookies.remove('wp-saving-post'). It seems to work only when you specify the path: wpCookies.remove('wp-saving-post', '/app/wp-admin')
" mar1in
36479 Improve autosave in the browser Autosave normal normal Future Release defect (bug) new 2016-04-11T14:55:10Z 2016-04-11T14:55:10Z "Several improvements that can make this quite better:
- Try to better detect when a restore may be needed.
- Make in-browser autosaves a ""higher priority"" than remote/server autosaves. The in-browser content is fresher. If both are available, prefer/emphasis the in-browser data.
- Add some subtle, always present UI for restoring a post from in-browser autosave. This should (probably) be only available before the users start typing.
- Consider adding the in-browser data to the revisions or display a preview/diff with the current data in some other way.
" azaozz
24552 Taking over a locked post does not always load the most recent revision Autosave 3.6 normal major Future Release defect (bug) new 2013-06-10T10:33:44Z 2016-10-17T00:05:19Z "Steps to reproduce:
1. Open up a post for editing, and make some changes to it. Do not save the changes.
2. Open up the same post for editing using a different user account (in a different browser![1]) and click the 'Take over' button when you get the post lock modal.
3. Note that the post that loads is not the most recent autosave of the post, but equally importantly you are not shown the message stating this.
4. Reload the editing screen and you'll be presented with the ""There is an autosave of this post that is more recent than the version below."" message.
Related: #23697
----
![1] The simplest way to do this is to use an Incognito browser window (and [http://wordpress.org/plugins/user-switching/ User Switching]) so you can be logged in as two accounts simultaneously. " johnbillion 3
41203 autosave.js documentation Autosave 3.9 normal normal 4.9 defect (bug) new has-patch 2017-06-29T12:55:25Z 2017-06-30T01:35:22Z "This patch documents the autosave.js core JavaScript file.
It is part of an ongoing process on documenting all core JavaScript files.
Props go out to [https://profiles.wordpress.org/terwdan], [https://profiles.wordpress.org/thulshof], [https://profiles.wordpress.org/andizer] and [https://profiles.wordpress.org/carolinegeven]
Please make sure to give props to the mentioned profiles." carolinegeven 1
40706 pasting text that has emojis into a new post breaks autosave and save draft Autosave 4.7.4 normal normal Awaiting Review defect (bug) new 2017-05-09T20:30:32Z 2017-05-09T20:35:10Z "When copying text that includes emoji's into the editor, then clicking save draft, the page refreshes and doesn't save any of the text in the editor.
Copying initially from Google Docs with and without emojis. I haven't specifically limited it down to only Google Docs copying; i'm not a writer and i hate emojis so. Good luck on the bug hunt, but it's definitely a thing. " ryno267 1
41172 Allow autosaving to be disabled on a per post type basis Autosave normal normal Awaiting Review enhancement new 2017-06-26T08:24:58Z 2017-06-26T08:24:58Z Autosaving should be a post type feature, so that individual post types can opt out. Disabling this feature should remove both the server-side and the client-side saving. Frank Klein
24865 Allow plugins to hook into autosave and include field data from the autosave with the package. Autosave normal normal Future Release enhancement new needs-refresh 2013-07-28T22:55:43Z 2015-09-22T16:30:25Z "== Why? ==
Autosaves currently only save ""blessed"" data (post_title and post_description?). Plugin authors may want to add their own data in the autosave package so if they hook into `save_post` they can handle/save that data as needed.
== How this works ==
Metaboxes are generated with an id already on the page. So what we do is add an extra parameter to the `add_meta_box()` function (`do_autosave` bool) so that when a plugin uses add_meta_box() they can set that flag.
We set a javascript object that contains the ids of the metaboxes that have had that flag set and then `wp.autosave.getPostData` in `autosave.js` has been modified to loop through the metaboxes matching those ids and return the fields in those metaboxes as an object attached to the data param.
Added a new jquery plugin (serializefullarray) as it will handle nested pseudo arrays set as the ""name"" values in inputs (i.e. somedata[one][two]) and create proper objects from them. " nerrad 12
22601 Make post content autosave work more generically Autosave normal normal Future Release enhancement new 2012-11-27T04:00:31Z 2015-10-04T00:19:17Z "The JS for autosave/AYS looks for the contents of `#post #content`. While we should fix the other JS issue related to targeting `#content` in #22600, it seems that autosave/AYS should be looking for the textarea (or whatever type of input) with the name of content instead, since having that data in the form will save to the post content. That way, if somebody does choose to use a different ID but the right input name, the autosave benefits will kick in.
Discovered while working on #22491." helen 2
41180 ABSPATH definition - incorrect on chrooted vhost Bootstrap/Load 4.8 normal normal Awaiting Review defect (bug) new has-patch 2017-06-27T08:17:39Z 2017-07-01T15:28:48Z "ABSPATH defined in wp-load.php (and in other files) returns incorrect string on chrooted vhosts (double slash '/' instead of a single):
{{{#!php
` cleaner. To update the site's source and group together the `` and `` tags.
'''Not the scripts and stylesheets! ''' Other tags like: [https://developer.wordpress.org/reference/functions/rsd_link/ RSD], [https://developer.wordpress.org/reference/functions/wlwmanifest_link/ WLW], [https://developer.wordpress.org/reference/functions/wp_no_robots/ noindex], [https://developer.wordpress.org/reference/functions/rel_canonical/ canonical], [https://developer.wordpress.org/reference/functions/wp_shortlink_wp_head/ shortlink], [https://developer.wordpress.org/reference/functions/wp_site_icon/ icon] and few others. All those functions echo some kind of `` tag. Changing those tags position in the head has no effect on the site itself." ramiy 4
34634 Empty PHP_SELF causes 404 pages to load front page with 200 status code Bootstrap/Load 2.0 normal normal Awaiting Review defect (bug) new needs-unit-tests 2015-11-09T14:34:39Z 2016-09-15T20:39:40Z "I've been having this issue where visiting a non-existent page in wordpress on our live server would result in the homepage being loaded with a 200 OK response, however on local and staging going to an non-existent page would result in the correct 404 page and template being loaded.
I have a standard 4.3.1 WP install subdomain base multisite with pretty permalinks enabled running with Nginx/PHP-FPM.
I've looked to see what was different between local and live and it turns out on live `$_SERVER['PHP_SELF']` is being set blank and on staging it is being set to `/index.php`. So to test I set at the top of my index.php file the following line `$_SERVER['PHP_SELF'] = '';`. Then when running on staging I was now getting the homepage load on a non-existent page.
So I've fired up my debugger to see what is going on in core and here are my findings.
In wp-load.php we set PHP_SELF to something based off REQUEST_URI
{{{#!php
// Fix empty PHP_SELF
$PHP_SELF = $_SERVER['PHP_SELF'];
if ( empty( $PHP_SELF ) )
$_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace( '/(\?.*)?$/', '', $_SERVER[""REQUEST_URI""] );
}}}
So the request `http://www.example.com/non-existent` results in `PHP_SELF` equal to `/non-existent` instead of `/index.php`
Then in `class-wp.php WP->parese_request()` we have:
{{{#!php
$self = $_SERVER['PHP_SELF'];
$home_path = trim( parse_url( home_url(), PHP_URL_PATH ), '/' );
$home_path_regex = sprintf( '|^%s|i', preg_quote( $home_path, '|' ) );
// Trim path info from the end and the leading home path from the
// front. For path info requests, this leaves us with the requesting
// filename, if any. For 404 requests, this leaves us with the
// requested permalink.
$req_uri = str_replace($pathinfo, '', $req_uri);
$req_uri = trim($req_uri, '/');
$req_uri = preg_replace( $home_path_regex, '', $req_uri );
$req_uri = trim($req_uri, '/');
$pathinfo = trim($pathinfo, '/');
$pathinfo = preg_replace( $home_path_regex, '', $pathinfo );
$pathinfo = trim($pathinfo, '/');
$self = trim($self, '/');
$self = preg_replace( $home_path_regex, '', $self );
$self = trim($self, '/');
}}}
This ends up with: `$req_uri = $self = non-existent`
Later in the same function we have:
{{{#!php
// If req_uri is empty or if it is a request for ourself, unset error.
if ( empty($request) || $req_uri == $self || strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false ) {
unset( $error, $_GET['error'] );
if ( isset($perma_query_vars) && strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false )
unset( $perma_query_vars );
$this->did_permalink = false;
}
}}}
Here because `$req_uri == $self` this code unsets the 404 which subsequently results in the front page being loaded rather than the 404 page
I did some further investigation and this appears to only happen on multisite installs. If I take a normal wordpress install and set `$_SERVER['PHP_SELF'] = ''` the 404's work as normal.
" l3rady 3
17376 Multisite Subfolders and bunk /wp-admin areas Bootstrap/Load normal normal Future Release defect (bug) new needs-unit-tests 2011-05-11T15:07:38Z 2016-04-26T16:48:47Z "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 27
23221 Multisite in subdirectory with root site address Bootstrap/Load 3.5 normal normal Awaiting Review defect (bug) reopened dev-feedback 2013-01-16T22:48:52Z 2016-12-29T22:13:02Z "I have seem to have found a url bug in the multisite.
= How to replicate =
1. Install WordPress in a subdirectory
2. Change the the url from the subdirectory to the root by adding index.php to the the root and changing the following code.
{{{
/** Loads the WordPress Environment and Template */
require('./subdirectory/wp-blog-header.php');
}}}
3. Change the site url in the settings to the root.
4. Start the process to convert the site to a multisite.
= Affect =
Then it should cause the network dashboard url to be incorrect. You will get http://example.com/wp-admin/network/ instead of
http://example.com/subdirectory/wp-admin/network/.
" grapplerulrich 35
23088 Multisite, Subdomains and www Bootstrap/Load 3.0 normal normal Awaiting Review defect (bug) new has-patch 2012-12-30T20:05:33Z 2015-10-07T20:24:24Z "I installed a WordPress Multisite network (in subdomain mode) on Zend's PHPCloud.com.
Zend does not provide an IP address, recommending a CNAME instead. CNAME records are not allowed on the root of a domain, so they recommend using the www subdomain, with a redirect from the root domain to www.
This site can NEVER be accessed on the naked domain; it will always be accessed via the www subdomain.
So, I setup wildcard DNS for *.mydomain.com, then created a network on www.mydomain.com. Then, I went to a non-existant subdomain on my network, nonexistant.mydomain.com, and WordPress redirected to www.mydomain.com/wp-signup.php?new=nonexistantwwwmydomaincom.
The correct behavior is to redirect to www.mydomain.com/wp-signup.php?new=nonexistant
The fix for this is in wp-includes/ms-settings.php, replace line 89 with:
{{{
$site_domain = preg_replace( '|^www\.|', '', $current_site->domain );
$destination = 'http://' . $current_site->domain . $current_site->path . 'wp-signup.php?new=' . str_replace( '.' . $site_domain, '', $domain );
}}}
Also, on the registration page at the bottom it says:
""The site you were looking for, http://nonexistant.www.mydomain.com/ does not exist, but you can create it now!""
The fix is in ms-blogs.php, line 53:
{{{
$url = preg_replace( '|^([^\.]+://)(?:www\.)?|', '$1' . $blogname . '.', $url );
}}}" jkhoffman 2
21573 NOBLOGREDIRECT interfering with 404 errors Bootstrap/Load 3.4.1 normal normal Future Release defect (bug) new 2012-08-14T07:32:06Z 2017-02-23T11:03:57Z When the `NOBLOGREDIRECT` constant is defined, 404 pages on the main site will not work and instead redirect to URL defined in `NOBLOGREDIRECT`. This is the cause of the `maybe_redirect_404` action/function, which is not needed and should be removed. bungeshea 22
18322 The Road to Magic Quotes Sanity Bootstrap/Load 3.2.1 normal normal Future Release defect (bug) new dev-feedback 2011-08-03T20:26:25Z 2017-04-19T00:11:40Z For back compat reasons, wp_magic_quotes() performs addslashes() on GPCS data. This is a pain, especially given that some core API expects slashes and some doesn't. In hopes of someday losing the automatic GPCS slashing, let's introduce a flag to turn off the slashing as well as slash and unslash functions that consult the flag. If slashing is on, these functions add and strip slashes. If slashing is off, they return data unchanged. Plugin authors can start using these functions and testing their code with GPCS slashing turned off and on. Eventually, GPCS slashing would default to off and all calls to the slash and unslash functions could be removed from core. ryan 34
28364 WordPress Entry Points (wp-load.php occurrences) Bootstrap/Load 3.9.1 normal normal Awaiting Review defect (bug) new 2014-05-26T12:16:56Z 2016-09-29T00:40:52Z "I was looking for entry point by searching for wp-load.php for plugin refactoring. I mean conditionally use require().
1. There are easy to identify entry points like admin-ajax.php but there are no defines e.g in async-upload.php, wp-loging.php or wp-comments-post.php
2. wp-trackback.php uses a strange way to detect the core `if (empty($wp))`
3. xmlrpc.php uses alone `include()` all others `require()`
4. How to distinguish between admin.php and admin-post.php?
=== Proposal ===
- There should be a uniform way requiring wp-load.
- All entry point should be distinguished by '''different''' defines
== List of entry points and ways to detect them ==
1. frontend: wp-blog-header.php:12 {{{!is_admin()}}}
1. admin GET request: wp-admin/admin.php:30 {{{is_admin()}}}
1. admin POST request: wp-admin/admin-post.php:15 {{{is_admin()}}}
1. admin upload: wp-admin/async-upload.php:16 {{{@$_SERVER['SCRIPT_FILENAME'] === ABSPATH . 'wp-admin/async-upload.php'}}}
1. AJAX call: wp-admin/admin-ajax.php:20 {{{defined('DOING_AJAX') && DOING_AJAX}}}
1. WordPress cron webserver/CLI: wp-cron.php:26 {{{defined('DOING_CRON') && DOING_CRON}}} {{{php_sapi_name() === 'cli'}}}
1. XML-RPC protocol: xmlrpc.php:29 {{{defined('XMLRPC_REQUEST') && XMLRPC_REQUEST}}}
=== Frontend low priority ===
1. wp-comments-post.php:16 {{{@$_SERVER['SCRIPT_FILENAME'] === ABSPATH . 'wp-comments-post.php'}}}
1. wp-trackback.php:12 {{{1 === get_query_var('tb')}}}
=== Dashboard low priority ===
1. wp-login.php:12
1. wp-signup.php:4
1. wp-activate.php:12
1. wp-mail.php:11
=== Exclude from profiling ===
1. wp-links-opml.php:15
1. wp-includes/ms-files.php:12
1. wp-includes/js/tinymce/wp-mce-help.php:9
1. wp-admin/install.php:36
1. wp-admin/install-helper.php:39
1. wp-admin/upgrade.php:18
1. wp-admin/maint/repair.php:10
1. wp-admin/moderation.php:10
Total: '''21 entry points''' as of version 3.9.1
[https://github.com/szepeviktor/WPHW/blob/master/wp-entry-points.md from WPHW]
" szepe.viktor 6
10886 WordPress should not unnecessarily query posts at page load Bootstrap/Load 2.8.4 normal normal Future Release defect (bug) assigned has-patch 2009-10-02T01:10:15Z 2017-01-04T19:50:46Z "For plugins like BuddyPress, with pages that have no WordPress post content, a query for posts at load time creates unnecessary overhead. I've tested this patch (with WordPress MU) and it removes 3 queries on all pages when the 'NO_QUERY' constant is defined. A very quick scan of page load times also suggests about 20% in time savings on average.
Other plugins like shopping carts and any others that needn't query the WordPress posts table can benefit from this as well.
My previous means of achieving this effect was to simply return null to the 'posts_request' filter, which removes only 2 queries per page.
The devised method uses suggestions from azaozz and sivel, and allows for setting the definition of 'NO_QUERY' using the 'init' action hook. It also still allows for further querying of the posts at a later point if necessary.
I welcome further suggestions about the patch, and any other ways this could be accomplished more effectively." junsuijin 24
22239 wp_ob_end_flush_all() tries to destroy non-destroyable output buffers Bootstrap/Load normal normal Awaiting Review defect (bug) new has-patch 2012-10-21T03:20:47Z 2015-10-04T01:54:51Z "`wp_ob_end_flush_all()` currently tries to flush & destroy every PHP Output buffer that is enabled on the current installation.
However, not every type of PHP Output buffer can be destroyed, which will cause a PHP Notice when attempts to do so are made.
An example of this is PHP extensions such as New Relic, or PHP output buffers created with the `$erase` flag set to false in `ob_start()`
An example is when New Relic is installed on a host, also [https://newrelic.com/docs/php/php-agent-faq#rum-obclean see New Relics FAQ entry] on the issue.
{{{
( ! ) Notice: ob_end_flush(): failed to send buffer of New Relic auto-RUM (1) in ../trunk/wp-includes/functions.php on line 2641
Call Stack
# Time Memory Function Location
1 0.8510 4328360 shutdown_action_hook( ) ../load.php:0
2 0.8510 4328440 do_action( ) ../load.php:556
3 0.8510 4329856 call_user_func_array ( ) ../plugin.php:406
4 0.8510 4329888 wp_ob_end_flush_all( ) ../plugin.php:406
5 0.8511 4330064 ob_end_flush ( ) ../functions.php:2641
}}}
Somewhat similar to #18239
I'm not sure of what the ideal solution for this would be for !WordPress, but wanted to record the issue being known." dd32 2
18525 "zlib.output_compression ""on"" in server conflicts with autoupdate" Bootstrap/Load 3.2.1 normal normal Awaiting Review defect (bug) new dev-feedback 2011-08-26T20:11:45Z 2016-10-04T05:43:58Z "If zlib.output_compression is ""on"" in server (my vps server), then auto-update works, but without verbose output or any indication that install has succeeded.
This error is consistent for all auto-updates WordPress Application and all plugins.
It is NOT a plugin conflict. Occurs on different servers.
Testing has confirmed that when zlib.output_compression is returned to ""off"", then updates work as expected.
In my opinion this is a minor bug and probably a note in the readme file will suffice.
Thank You,
Neil Miller
zx@avidre.net" avidre 25
22325 Abstract GPCS away from the superglobals Bootstrap/Load normal normal Future Release enhancement new dev-feedback 2012-10-30T21:15:41Z 2016-04-07T07:50:13Z "As discussed at #wpcs, it looks like we want to move away from directly using the GPCS superglobals. This gives us a way to handle slashing backwards compatibility moving forward.
This is still a heap of versions away, but this is a way to keep any notes central." rmccue 38
18546 Add index.php to wp-includes and wp-admin/includes Bootstrap/Load 3.2 normal normal Awaiting Review enhancement reopened dev-feedback 2011-08-30T11:42:40Z 2017-02-12T10:25:39Z "In [comment:ticket:17601:15], dd32 suggested an idea of adding `index.php` to `wp-includes`:
> /wp-includes/index.php doesnt exist however, leading to that entire folder being indexed by google in some cases (which [http://www.google.com/search?hl=en&client=opera&hs=4Ba&rls=en&q=intitle%3A%22Index+Of%22+inurl%3Awp-includes&aq=f&aqi=&aql=&oq= does happen]), this will cause Search Engines to index the contents of these files, leading to the errors being logged.
The patch adds `index.php` to `wp-includes` and `wp-admin/includes`.
" SergeyBiryukov 11
26806 Add support for custom SHORTINIT handlers Bootstrap/Load 3.8 normal normal Awaiting Review enhancement new dev-feedback 2014-01-10T14:30:43Z 2016-08-25T21:19:24Z "I'm building ajax caching for a plugin and need a handler to '''conditionally''' determine whether to continue loading WP (based on whether a cached version exists).
Example handler file: https://gist.github.com/mgibbs189/8345521
The `SHORTINIT` constant along with `wp-load.php` isn't an option because it forces WP to exit early.
Drop-ins like advanced-cache.php, object-cache.php, or db.php won't work because only 1 plugin at a time can use them. I need for my caching to work in combination with these other plugins (e.g. W3 Total Cache)" mgibbs189 4
34189 Add warning about changing $table_prefix for existing database Bootstrap/Load 4.4 normal normal Awaiting Review enhancement new has-patch 2015-10-07T10:50:06Z 2016-10-24T16:56:47Z "When changing the $table_prefix for an existing database, it is not sufficient to rename the tables. You also have to change several values in at least two tables. In my case, changing prefix from ""wp_"" to ""bbj_wp_"" this involved at least the following SQL:
UPDATE bbj_wp_options
SET option_name = 'bbj_wp_user_roles'
WHERE option_name = 'wp_user_roles';
UPDATE bbj_wp_usermeta
SET meta_key = 'bbj_wp_user_level'
WHERE meta_key = 'wp_user_level';
UPDATE bbj_wp_usermeta
SET meta_key = 'bbj_wp_capabilities'
WHERE meta_key = 'wp_capabilities';
The attached patch adds a warning to the generated wp-config.php file about this. There is much room for improvement here, including giving detailed information on what needs to be changed or even re-writingthe particular misfeature that stores tables names in other tables. The patch is intended as a stop-gap 'til such improvements are made. Hopefully this will prevent others from chasing down the same wildly unexpected behavior should they decide to change $table_prefix
" bjerke-johannessen 8
41578 Assure that $_SERVER['PATH_INFO'] is available Bootstrap/Load 4.8.1 normal normal Awaiting Review enhancement new 2017-08-07T00:27:14Z 2017-08-10T06:19:40Z "I use the [http://www.fefe.de/gatling/ gatling] web server on one of my servers (low ressorce consumption). gatling will not set the PATH_INFO environment variable if no path info is available which causes the home page of WP to enter an endless redirect loop.
I managed to fix this by setting {{{$_SERVER['PATH_INFO']}}} to the empty string in an unhandled condition in wp-includes/load.php.
" glehner 3
21521 Audit use of set_time_limit() Bootstrap/Load 3.4.1 normal normal Future Release enhancement new dev-feedback 2012-08-08T17:28:21Z 2015-10-04T01:14:11Z Core calls this half a dozen times. The call in wp_get_http() interferes with unit tests. Unit tests will terminate 60 seconds after wp_get_http() is called. Let's justify each use of set_time_limit() and remove what we can. ryan 6
41520 Disable deprecated functions Bootstrap/Load normal normal Awaiting Review enhancement new dev-feedback 2017-08-01T20:16:06Z 2017-08-07T19:02:09Z In bootstrap process, deprecated.php, pluggable-deprecated.php and ms-deprecated.php are includes. These files include all the deprecated functions in core. This is done for compatibility reasons, however there are many setups that do not requires these functions as they are not using any of these functions. These files inline over 4500 lines of code ( 3881 + 208 + 518 ). There should be an option to disable them. spacedmonkey 6
18391 Expand WP_DEBUG_LOG and make WP_DEBUG_DISPLAY work as expected Bootstrap/Load normal normal Awaiting Review enhancement reopened has-patch 2011-08-13T05:45:21Z 2017-06-10T01:18:05Z "== WP_DEBUG_LOG ==
WP_DEBUG_LOG currently creates wp-content/error.log. We should expand this to allow a path.
To do this, if WP_DEBUG_LOG is !== true, != 1, != 'true', (anything else?) and 0 === validate_file(), we should treat it as a path.
== WP_DEBUG_DISPLAY ==
Setting WP_DEBUG_DISPLAY to false does not set display_errors to false. Instead, it prevents display_errors from being set to on. This forces a call to ini_set to turn off display_errors, assuming your php.ini is set to On, as expected for a development environment configuration.
Instead, setting WP_DEBUG_DISPLAY to false should set display_errors to false. I've been thinking about this for months now, and the only situation I can come up with that this would be a compatibility issue would be when you deliberately have a production php.ini on production and a development php.ini in development. In this situation, WP_DEBUG_DISPLAY = false would screw up your development environment only -- the only breakage would be showing less errors, rather than more.
WP_DEBUG_DISPLAY === null can remain a passthrough.
Patch forthcoming." nacin 9
22251 Helper function to simplify checking for constants Bootstrap/Load normal normal Future Release enhancement new dev-feedback 2012-10-22T00:32:27Z 2017-08-01T17:30:26Z "Love 'em or hate 'em, WordPress uses lots of constants. As a result, this pattern is all over core and plugins, and occasionally themes:
`if ( defined( 'CONSTANT_NAME' ) && CONSTANT_NAME )`
Right now on trunk, it's used 57 times (excluding 2 in Akismet).
{{{
~/code/wptrunk $ ack ""defined\( ?('|\"")([^'\""]+)\1 ?\) \&\& \2"" -h --ignore-dir=wp-content/plugins/ | wc -l
57
}}}
How about a new function to make that verbose logic a little bit less repetitive.
{{{
function wp_constant( $constant ) {
return defined( $constant ) && constant( $constant );
}
}}}" evansolomon 26
40948 Load meta files earlier in `wp-settings.php` Bootstrap/Load normal normal Future Release enhancement new 2017-06-08T12:18:49Z 2017-07-18T16:51:05Z "We're currently working on bringing meta functionality to sites and networks. While this is still in the early stages of discussion, we're sure that we would at least like to enable plugins to introduce this functionality (DB table and API), even if we come to the conclusion that site and network meta are not eligible for core itself (see #37923 and #25344 for background discussion on site and network meta).
A general problem is that the meta functionality is not available when bootstrapping multisite and when using classes like `WP_Site_Query` and `WP_Network_Query` (which need to support `meta_query`). Therefore the meta files should be loaded earlier, in particular:
* `wp-includes/meta.php`
* `wp-includes/class-wp-meta-query.php`
* `wp-includes/class-wp-metadata-lazyloader.php`
They should be loaded together with the other ""early"" WordPress files. This does not only make sense for the above specific use-case, but also because the meta API is a generally reusable basic database interaction API and allows to work with arbitrary ""name-value"" pairs, just like options. The Options API is also available early, and the Meta API should follow." flixos90 6
37646 Make wp-settings.php a series of do_actions() Bootstrap/Load normal normal Awaiting Review enhancement new dev-feedback 2016-08-12T19:07:44Z 2017-02-23T04:41:29Z "Now that #36819 is in, my master plan for `wp-settings.php` can begin.
----
'''Problem'''
`wp-settings.php` makes many assumptions, many on purpose, others by necessity, some on consequence, and a few by accident. It is somewhat poorly named for what it is, and it's a mishmash of globals, function calls, class instantiations, and do_action() calls.
----
'''Solution'''
`do_action()` all of the things.
Make `wp-settings.php` a series of action calls. One for setting versions, one for initial constants, one for environmental setup, translations, database, plugins, themes, users, template output, and so on...
Introduce a file named `wp-includes/default-actions.php` that serves 2 purposes:
* Includes a bunch of new functions that wrap up sections of what's already in `wp-settings.php`
* Hooks those new functions into the new actions in `wp-settings.php`
----
'''Why do we do this?'''
As more robust and sophisticated plugins, themes, APIs, and systems start to use, rely on, and bend WordPress to their will, the need to override more & more pieces becomes apparent. While WordPress comes with a very handy set of default post types, taxonomies, APIs, helpers, wrappers, and tools, it may be desirable to unhook (or never load) certain pieces so that other pieces can take their place.
In the past, this is done only with great intent, with strategic actions & filters in places where specific needs are being addressed. This is good in that it's predictable, but bad in that it's impossible for anyone to truly know what action or hook is *best* to perform any given subsequent action.
By breaking `wp-settings.php` up into many clearly named `do_action()` calls, it becomes clearly obvious what actions perform what duties, while also introducing literally maximum flexibility in the entire system for new and exciting things to happen around WordPress itself.
Imagine something like:
{{{
// Load versions
do_action( 'wp_settings_load_versions' );
// Load constants
do_action( 'wp_settings_load_constants' );
// Load translations
do_action( 'wp_settings_load_translations' );
// Load environment
do_action( 'wp_settings_load_environment' );
// Load early WordPress settings
do_action( 'wp_settings_load_early' );
// Load database
do_action( 'wp_settings_load_database' );
// and on, and on...
}}}
----
'''Epilogue'''
This is a huge idea, easily scoffed at, and introduces code-churn like whoa. It would mean doubling down on WordPress's actions API, trusting it implicitly to load all of WordPress's core pieces & parts. It would open many doors to many unforeseen oddities while developers start dissecting all the ways things are tied together. It would also enable really cool external tools, like REST API drop-ins that can `SHORTINIT` WordPress if auth is missing, or WP CLI commands that can `die()` literally anywhere in the stack after they've done what they need to do.
This is something I've wanted in WordPress since 2006 having seen similar in other libraries, and even old BackPress & bbPress gave nods and hints to back in the day.
I'm also happy to give this a first patch if it's helpful to see visually the destruction it causes, or guide someone else along my vision for this if someone is willing and able to see it through before I am. <3" johnjamesjacoby 10
38650 Provide some guidance on what conditionals can/should be used in default-filters.php Bootstrap/Load low minor Awaiting Review enhancement new 2016-11-03T22:37:50Z 2017-06-21T23:12:12Z There are a lot of things you can't use in `default-filters.php`, such as `get_option()` or `is_customize_preview()`. Those deeply familiar with how load works might have some idea as to what's safe and what isn't, but it's generally confusing and a little opaque. I'd suggest some kind of inline comment at the top explaining the point of the file and what's generally safe (i.e. stuff in `load.php` as I understand?). helen 1
29341 Raise default value for WP_MEMORY_LIMIT in wp-includes/default-constants.php Bootstrap/Load 4.0 normal normal Awaiting Review enhancement new dev-feedback 2014-08-23T19:45:21Z 2017-01-25T16:10:05Z "wp-includes/default-constants.php currently has a default value for WP_MEMORY_LIMIT of 40Mb (or 64Mb for multisite).
The effect of this constant is that if the current value of ini_get( 'memory_limit' ) is less, then ini_set() is used to raise it to at least WP_MEMORY_LIMIT.
This default is fine, if your site has few plugins. When the constant was brought in (looks like 3.0, from the comment in the code), sites tended to have fewer plugins, and need less memory.
It is not clear exactly what the rationale behind the default choice for WP_MEMORY_LIMIT is, and what data it is based upon. Nevertheless, I get to read a lot of log files through support for one of my plugins, and it is not uncommon for me to see sites where PHP memory use has exceeded 40Mb. It is not uncommon for me to have to advise someone on how to raise their PHP memory limit, because they are trying to clone their site into something like MAMP, which apparently has a lower limit than this (can't verify: I have no Mac), and the WP default is too low to then load their site successfully.
Based on my (admittedly anecdotal) experiences, I would recommend 64Mb or 80Mb as a much more suitable default in 2014 (and a corresponding increase for multisite), if the aim is for users to not be surprised by a lack of memory. I don't think that hosting companies will have a problem with this. I have extensive data on default settings of the PHP memory limit, and 99.8% of web hosting companies in that data have 64Mb or more. 99.5% have 96Mb or more." DavidAnderson 10
33034 Refactor SCRIPT_FILENAME ending with php.cgi check in load.php Bootstrap/Load 4.3 normal normal Awaiting Review enhancement new 2015-07-18T13:40:53Z 2015-07-19T10:58:48Z I found the original check pretty confusing :) wildpeat 2
37861 Renaming of class files for consistency Bootstrap/Load normal normal Awaiting Review enhancement new dev-feedback 2016-08-28T20:45:07Z 2017-07-08T09:03:21Z "I'm not sure how relevant this is in general, but with #36335 shouldn't we at least follow the naming convention for the few class files left?
A quick glance shows
`wp-includes/class.wp-dependencies.php` -> `wp-includes/class-wp-dependencies.php`
`wp-includes/class.wp-scripts.php` -> `wp-includes/class-wp-scripts.php`
`wp-includes/class.wp-styles.php` -> `wp-includes/class-wp-styles.php`
I'm not certain what type of breakage may occur, unless someone is loading these independently of core." afragen 2
31839 Setting error reporting level for wp_debug_mode Bootstrap/Load 4.1.1 normal normal Future Release enhancement new dev-feedback 2015-04-01T16:25:34Z 2015-05-08T16:58:04Z "Since PHP 5.4.0 `E_STRICT` errors appear as part of `E_ALL` and headers cannot be sent sometimes - stuff that can lead to a whole set of problems. For me, they are useless and annoying - but for others they can be useful.
I just want the possibility to set the `error_reporting` level used in `wp_debug_mode()`. I have applied a small patch to `load.php` as shown below.
I have defined a `WP_DEBUG_LEVEL` constant in `wp-config.php` like so: `define( 'WP_DEBUG_LEVEL', E_ALL & ~E_STRICT );` because I do not want to see the `E_STRICT` warnings.
Afterwards I modified the `wp_debug_mode` function like so:
{{{
#!php
function wp_debug_mode() {
if ( WP_DEBUG ) {
if( !defined( WP_DEBUG_LEVEL ) )
define( 'WP_DEBUG_LEVEL' , E_ALL) ;
error_reporting( WP_DEBUG_LEVEL );
if ( WP_DEBUG_DISPLAY )
ini_set( 'display_errors', 1 );
elseif ( null !== WP_DEBUG_DISPLAY )
ini_set( 'display_errors', 0 );
if ( WP_DEBUG_LOG ) {
ini_set( 'log_errors', 1 );
ini_set( 'error_log', WP_CONTENT_DIR . '/debug.log' );
}
} else {
error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR );
}
if ( defined( 'XMLRPC_REQUEST' ) )
ini_set( 'display_errors', 0 );
}
}}}
Here's the [https://gist.github.com/AlexandruIfrim/8e3626f27344f8f28a87 gist] of it." aifrim 2
29688 Stop editing line in default config not explicit enough Bootstrap/Load 0.71 normal normal Awaiting Review enhancement new has-patch 2014-09-16T17:54:00Z 2017-01-12T02:59:22Z "In my experience, new system administrators tend to append to config files, unless said config files have explicit ""Don't edit below this line"" instruction lines.
The language of the ""/* That's all, stop editing! Happy blogging. */"" comment doesn't indicate that the functions defined below it are order-critical, in my experience they tend to assume a config file won't have any functional logic in -- most software packages do not put critical logic in config files.
WordPress actually runs the main codebase setup from within the config file, so if defines are put below the wp-settings.php require, they are not used by WordPress at all, effectively discarded. This tends to cause a few hours of head scratching, as to why /wp-admin/ is redirecting to the old domain, when SITEURL define is appended in the config, for example.
Would it be possible to put another comment below the stop editing line, along the lines of
/* Nothing should be defined below this line */
Or anything in plainer language, that makes explicit that Bad Things Will Happen if you put things below the settings require?
" kirrus 8
41000 "Stop saying ""Happy blogging""" Bootstrap/Load trunk normal normal Awaiting Review enhancement new 2017-06-11T10:44:13Z 2017-06-11T11:16:17Z "WordPress is still seen as a blogging platform instead of a CMS solution for many people. I believe we could stop saying ""Happy blogging"" in wp-config.php and welcome to another better expression. I'm not an English speaker so I'm not sure what could be a better sentence. Happy content editing? Happy CMSing? Happy writing?
Related tickets:
#36945
#37199
" igmoweb 1
37199 Strengthen language in wp-config-sample.php Bootstrap/Load low minor Awaiting Review enhancement new 2016-06-27T17:28:07Z 2016-08-25T22:37:45Z "The current `/* That's all, stop editing! Happy blogging. */` line can be easily misunderstood when a novice power user is editing/adding things to their wp-config.php file.
We can tweak the language to avoid confusion and folks adding any custom define values after the line to call wp-settings.php." kraftbj 6
39163 Use REQUEST_TIME_FLOAT for timing Bootstrap/Load 4.8 normal normal Awaiting Review enhancement new has-patch 2016-12-07T21:09:53Z 2016-12-17T11:55:15Z "`$_SERVER['REQUEST_TIME_FLOAT']`
> The timestamp of the start of the request, with microsecond precision. Available since PHP 5.4.0.
Related: #26874 timer_stop() returns a string, not a float
WordPress should expose timing data as a float in the most accurate manner possible. `timer_stop()` has two problems: it uses an initial timestamp generated later than it needs to be (50ms late is what I have seen most often), and its formatted return value can not reliably be used as a number (some locales swap commas and periods, for example).
As `timer_stop()` is a well-established formatting function, a new function is needed for getting the raw data. The new `timer_float()` will simply `return microtime( true ) - $_SERVER['REQUEST_TIME_FLOAT'];`. For compatibility with PHP < 5.4, the initial value is conditionally set at the top of load.php. This is all I've done in small.diff, leaving `timer_stop()` alone.
My goal for this ticket is to get `timer_float()` in core so we can start using it for accurate and reliable timing data to support efforts to manage and improve performance. I don't really care whether any changes are made to `timer_start()` and `timer_stop()`. However, I included them in patches to save time just in case we want them updated.
medium.diff changes `timer_start()` to use `REQUEST_TIME_FLOAT`. This will make measurements more accurate without changing any other semantics.
large.diff bypasses `timer_start()` and automatically starts the timer as soon as possible, i.e. at the top of load.php. This patch tags `timer_start()` as deprecated but we should not move it to deprecated.php because drop-ins might expect `timer_start()` to exist, as might any auxiliary scripts that directly include load.php. (I am not familiar with deprecation strategy generally so I expect feedback on this.) The legacy globals, `$timestart` and its cousin that hopefully nobody ever used, `$timeend`, are both supported in this patch. (I think they should be deprecated as soon as we bump to 5.4.)" andy 2
40777 Using a static 404 HTML file (dynamically generated) (and/ or .htaccess instead of favicon.ico) Bootstrap/Load 4.8 normal normal Awaiting Review enhancement new 2017-05-16T09:37:24Z 2017-05-16T09:37:24Z "This is a follow-up to #3426.
'''Issue:'''
favicon.ico is loaded and this causes an additional request when loading a page, even when a website is not using this browser feature. I'm not going to rehash the pro and con arguments in the previous ticket, and instead will focus on continuing towards the future from here.
'''
Possible Solution:'''
If the issue is that serving 404 costs too much CPU, etc, wouldn't it be better to serve a static 404 then? E.g. a (cached from the theme) html page and/or through .htaccess
'''For example in .htaccess:'''
{{{
ErrorDocument 404 ""

Page not found

""
}}}
or
{{{
ErrorDocument 404 /404.html
}}}
'''Additional performance benefit:'''
This could eliminate a broader range of performance issues with generating a dynamic 404.
'''Source .htaccess example:'''
http://www.inmotionhosting.com/support/website/how-to/set-404-via-htaccess
" design_dolphin
33119 custom location for wp-config.php Bootstrap/Load 4.3 normal normal Awaiting Review enhancement new 2015-07-25T06:55:30Z 2015-07-25T11:50:46Z "I use the same shared read-only wordpress installation for several sites. To allow site customization wp-config.php stored in the shared folder contains a single line:
`require $_SERVER['WP_CONFIG'];`
where `WP_CONFIG` is defined in the web server configuration for the site.
Would it be possible to add a check for `$_SERVER['WP_CONFIG']` to wordpress itself?
This way I could, for example, just use git to pull wordpress updates from [https://github.com/wordpress/wordpress github] without a need for a custom branch with wp-config.php defined. Another nice possibility is simplified atomic updates for the site. That is, I could just unpack wordpress tar into a new directory and call [http://man7.org/linux/man-pages/man2/rename.2.html renameat2(..., RENAME_EXCHANGE)] without the need to create first the above wp-config.php in the unpacked archive." igor.bukanov 3
38204 enhancement: custom pathname to wp-config.php Bootstrap/Load 4.7 normal normal Awaiting Review enhancement new 2016-10-01T15:01:18Z 2016-11-20T19:05:05Z "This patch allows for setting the pathname to the {{{wp-config.php}}} file with a {{{WP_CONFIG_FILE}}} environment variable.
The end goal is to have wordpress code separate (and possibly read-only) from the config file, and from the state (user content).
" gdamjan 4
33740 Create a new API to standardize application tracing Bootstrap/Load 4.4 normal normal Awaiting Review feature request new reporter-feedback 2015-09-05T13:10:31Z 2016-10-21T18:57:08Z "Having read #30934 and #28319, I think it's best if I raise a new requirement.
My proposal isn't about logging, it's related to problem determination tracing; the ability to dynamically activate trace logic to help someone to track down a problem.
I have been using my own solution ( a plugin called oik-bwtrace ) for a while now.
There are two dormant APIs that I need to make available at all times, even when tracing is not activated.
Since these functions are currently not available by default I've had to be careful where I use them. To circumvent the problem of trying to use an API which doesn't exist, many of my plugins have dependencies on a base plugin which supplies the dormant APIs.
Life would be a lot simpler if WordPress came with a set of dormant functions which I can rely on to exist.
This proposal is for two trace APIs. It could easily be extended to support logging.
The dormant APIs have the same basic structure
{{{
function dormant_api( easy to use parameters ) {
global $api_set_active;
if ( $api_set_active ) {
lazy_api( easy to use parameters );
}
}
}}}
In this example $api_set_active is just a boolean.
It's set to true when the API logic is activated, false otherwise.
To cater for different levels of tracing ( or logging ) we can either implement the test in the dormant API, or pass it to the lazy_api().
This solution is different from 'pluggable'.
The dormant APIs need to exist, from very early on.
The lazy APIs are provided by implementing plugins and should be implemented as pluggable.
The two APIs I really do need are currently called bw_trace2() and bw_backtrace().
I've attached the latest version of my shared library file that defines these APIs and the constants they use.
Assuming that these APIs will be required to trace WordPress core logic I feel that they need to have been defined early on in wp-settings.php
I therefore propose a new file called dormant.php which can, if the developer so wishes, be included in wp-config.php but would otherwise be loaded in wp-settings.php before load.php.
Note: It's the implementing plugin's responsibility to know when it's safe to do things.
In my implementation of a hook for the 'all' action I've used multiple strategies which involve loading my APIs in wp-config.php before wp-settings.php, using a Must-Use plugin to be able to record most hooks, but requiring a custom db.php to be able to capture everything. I can't do it before db.php since add_action()'s not available until then.
" bobbingwide 5
25137 Enable safe mode to run WordPress without loading plugins Bootstrap/Load 3.6 normal normal Awaiting Review feature request reopened dev-feedback 2013-08-25T02:52:52Z 2016-08-19T10:05:16Z "One of the most used phrases in support is something like ""Please deactivate all plugins and activate the default theme to see if the problem is still there"".
Could it be possible to use a specially crafted URL to let an administrator log in, loading WordPress with no plugins and the default theme, in a safe way that, would enable such administrator to permanently disable all plugins and activating the default theme, for finding the offensive plugin or theme?
I know the plugin Safe Mode http://wordpress.org/plugins/safe-mode/ has made an attempt to prove the concept, but I think a better, more reliable and safer way could be included in core.
" knutsp 23
39159 Add APC to automated test matrix Build/Test Tools normal normal Awaiting Review defect (bug) new 2016-12-07T19:58:12Z 2016-12-07T19:58:12Z We already have a test run using memcache, but APC is different and @jaquith's object cache drop-in is heavily used enough that it makes sense to also run the automated tests using it. Inspired by #39132 jorbin
31463 Avoid reaching inside the object cache object in tests Build/Test Tools normal normal Future Release defect (bug) new has-patch 2015-02-26T04:28:55Z 2015-03-21T21:32:50Z "It'd be really fantastically great if `WP_UnitTestCase::flush_cache` could keep its hands off my internal properties. :)
Right now, `flush_cache` reaches into `$wp_object_cache` and messes with a bunch of internal properties:
{{{
$wp_object_cache->group_ops = array();
$wp_object_cache->stats = array();
$wp_object_cache->memcache_debug = array();
$wp_object_cache->cache = array();
}}}
If we could just not do that, that'd be greaaaat." rmccue 4
36786 Can't pass filter names to `MockAction::get_call_count()` Build/Test Tools normal normal Future Release defect (bug) new has-patch 2016-05-09T04:20:03Z 2016-10-09T01:30:57Z "The first of these tests works as expected, but the second generates an ""Undefined index"" notice.
{{{#!php
assertSame( 1, $ma->get_call_count( 'action' ) );
}
function test_get_call_count_filter() {
$filter = rand_str();
$ma = new MockAction();
add_filter( $filter, array( $ma, 'filter' ) );
apply_filters( $filter, rand_str() );
$this->assertSame( 1, $ma->get_call_count( 'filter' ) );
}
}}}
The attached patch attempts to fix the notice and allow passing filter names to `get_call_count()`.
" dlh
37605 Change `private` member access to `protected` in `MakePOT` class Build/Test Tools normal normal WordPress.org defect (bug) new 2016-08-08T19:37:22Z 2016-08-08T19:46:03Z "In [36752] ([https://i18n.trac.wordpress.org/changeset/40327/ i18n40327]) visibility keywords were added to the properties and methods of the `MakePOT` class, which is bundled with trunk in `tools/i18n/makepot.php`. Mostly these were made `public`, however, some were not intended to be public (but previously were do to lack of any visibility restrictions) and so were made `private`. This will break any [https://github.com/WordPoints/dev-lib/blob/develop/i18n/makepot.php child class] that might be attempting to use these properties/methods. It would be better if these were changed to `protected`, rather than `private`, especially considering that they were made freely public before. Otherwise code that expected the prior behavior not only breaks, but has no real work-around either (other than just copying those methods and properties to the child class, or continuing to use the [https://i18n.trac.wordpress.org/browser/tools/branches/legacy legacy version]).
([https://wordpress.slack.com/archives/core/p1470682991002408 Discussion in #core channel on Slack] prior to making this ticket.)" jdgrimes
34185 "Excluding certain PHPUnit test groups results in ""Database is dead"" notice and tests terminate" Build/Test Tools normal normal Awaiting Review defect (bug) new 2015-10-07T07:35:43Z 2015-10-14T00:51:02Z "When excluding certain PHPUnit groups from the full test suite the tests fail with a ""Database is dead"" notice.
Known groups thus far:
* `phpunit --exclude-group import`
* `phpunit --exclude-group query`
{{{
$ phpunit --exclude-group import
Installing...
Running as single site... To run multisite, use -c tests/phpunit/multisite.xml
PHPUnit 4.7.7 by Sebastian Bergmann and contributors.
............................................................. 61 / 4556 ( 1%)
...................................SS........................ 122 / 4556 ( 2%)
............................................................. 183 / 4556 ( 4%)
............................................................. 244 / 4556 ( 5%)
.S........................................................... 305 / 4556 ( 6%)
............................................................. 366 / 4556 ( 8%)
............................................................. 427 / 4556 ( 9%)
............................................................. 488 / 4556 ( 10%)
............................................................. 549 / 4556 ( 12%)
............................................................. 610 / 4556 ( 13%)
.....................S....S.................................. 671 / 4556 ( 14%)
................................................S............ 732 / 4556 ( 16%)
............................................................. 793 / 4556 ( 17%)
..................................Database is dead.
}}}" netweb 1
38603 Explore adding Yarn and a `yarn.lock` file for NPM module management Build/Test Tools normal normal Future Release defect (bug) new 2016-11-01T09:23:35Z 2017-06-07T04:09:47Z "YARN: Yarn: A new package manager for JavaScript:
• Fast: Yarn caches every package it downloads so it never needs to download the same package again. It also parallelizes operations to maximize resource utilization so install times are faster than ever.
• Reliable: Using a detailed, concise lockfile format and a deterministic algorithm for installs, Yarn is able to guarantee that an install that worked on one system will work exactly the same way on any other system.
• Secure: Yarn uses checksums to verify the integrity of every installed package before its code is executed.
* https://code.facebook.com/posts/1840075619545360
* https://yarnpkg.com/
* https://github.com/yarnpkg/yarn
Yarn is similar to a `npm-shrinkwrap.json` file though with vast performance increases and improved cross platform compatibility/reliably.
Here's some quick stats:
* `time npm install` (First run, existing `npm cache`)
* 176.87 seconds
* `time npm install` (First run, no existing `npm cache`)
* 237.97 seconds
* `time yarn` (Initial Yarn run)
* 21.40 seconds
* `time yarn` (Subsequent install after creating `yarn.lock` and `rm -rf node_modules/ && time yarn`)
* 18.82 seconds" netweb 11
40532 Find a workaround for unit tests that have a dependency on XDebug Build/Test Tools normal normal Awaiting Review defect (bug) new needs-unit-tests 2017-04-22T17:13:33Z 2017-04-22T17:13:33Z "In #39978, XDebug was disabled when running the test suite on Travis. This resulted in a 40% increase in build speed and a 40% decrease in developer frustration.
Unfortunately it was overlooked that two tests in core have a dependency on XDebug:
* `Tests_Ajax_Response::test_response_charset_in_header()` ([https://core.trac.wordpress.org/browser/tags/4.7.4/tests/phpunit/tests/ajax/Response.php?marks=72-74#L60 ref])
* `Tests_oEmbed_HTTP_Headers::test_rest_pre_serve_request_headers()` ([https://core.trac.wordpress.org/browser/tags/4.7.4/tests/phpunit/tests/oembed/headers.php?marks=11-13#L3 ref])
Both of these tests are skipped when XDebug isn't available, so they're no longer tested on Travis.
A workaround needs to be found for these tests so they no longer rely on XDebug." johnbillion
40463 Get the tests for the 4.0 branch passing Build/Test Tools 4.0 normal normal Future Release defect (bug) new 2017-04-15T20:44:51Z 2017-04-15T22:22:29Z "'''tl;dr:''' Most of #30284 should be backported to the 4.0 branch (and earlier).
The test suite did not pass in versions prior to 4.1. Failing tests were committed to the test suite but skipped with the now-defunct `knownWPBug` notation.
Work on recent tickets such as #35105, #39486, and #40086 means the 4.1 to 4.6 branches are passing once again, but 4.0 (and earlier) basically needs most of the changes in #30284 applying to it.
Having a passing test suite in the 4.0 branch means we can be more confident in patch releases.
Related: #40100, #40106." johnbillion 10
29066 Grunt clean:dynamic task does not delete file/s from /build during grunt watch task Build/Test Tools 3.7 normal minor Awaiting Review defect (bug) new 2014-07-30T04:10:15Z 2015-12-03T18:58:01Z "When running the Grunt task `grunt watch` a file that is modified and saved should be cleaned from the /build folder and the modified file copied from the /src folder to the /build folder as part of the `watch:all` task:
{{{
tasks: [ 'clean:dynamic', 'copy:dynamic' ],
}}}
Currently the `clean:dynamic` task does not actually 'clean' (delete) the file from the /build folder, the `copy:dynamic` task overwrites the existing file.
Workaround: Do nothing and continue to have the file overwritten without cleaning first.
Options:
1. Fix the `clean:dynamic` task to actually 'clean' (delete) the file from /build
2. Remove the `clean:dynamic` task from the `clean` and `watch:all` tasks list
To reproduce:
* Temporarilly remove `copy:dynamic` from the `watch:all` task tasks list
* Run `grunt watch`
* Edit a file from /src and save
Expected Results:
* Edited file should be 'cleaned' (deleted) in /build folder
Actual results:
* File remains in /build folder
" netweb
36898 Have `grunt precommit` fail if the test DB is unreachable. Build/Test Tools normal normal Awaiting Review defect (bug) new 2016-05-21T06:18:15Z 2016-11-14T12:35:32Z "`grunt precommit` passes if the test DB is unreachable, preventing phpunit from running.
To recreate:
1. Disable your local database
2. Add a test guaranteed to fail
3. Run `grunt precommit`
4. The result will be `Done, without errors.`
This could happen in the hypothetical event someone forgets to start their virtual machine." peterwilsoncc 1
28236 JSHint `onevar` and `trailing` args are deprecated and dropped Build/Test Tools 3.8 normal normal Future Release defect (bug) new dev-feedback 2014-05-13T15:48:47Z 2016-11-20T15:00:30Z "As per http://www.jshint.com/docs/options/#onevar
> These options are deprecated and will be removed soon. DO NOT use them.
This was brought up by rase- on GitHub to Jetpack here: https://github.com/Automattic/jetpack/pull/432#issuecomment-42783894
Unsure of the best route forward." georgestephanis 13
40910 Limit writable directories required by WordPress unit test suite Build/Test Tools normal normal Awaiting Review defect (bug) new 2017-06-02T16:21:06Z 2017-06-03T08:14:58Z "Some environments only permit writing to specific directories. But, the WordPress test suite currently assumes it can write to a variety of directories.
Based on searches for `file_put_contents()`, `copy()`, and `symlink()`, here are the directories I found:
* `tests/phpunit/data`
* `.trac-ticket-cache.*` is created to store a cache of Trac ticket numbers.
* `tests/phpunit/build/logs/`
* `junit.xml` is created with the results of the test run.
* `tests/qunit/fixtures`
* `wp-api-generated.js` is generated by PHPUnit for use in QUnit tests.
* `/tmp/`
* Variety of files are copied out of `phpunit/data` into `/tmp/` for test-specific transformation.
* `wp-content/themes`
* `theme-file-parent` and `theme-file-child` are symlinked from the PHPUnit data directory into the theme directory
* `wp-content/uploads`
* Attachments are copied
Generally, in write-restricted environments, the test suite fails when it tries to write to directories it doesn't have access to. More directories could be found by running the test suite against a write-restricted environment.
To better ensure WordPress compatibility with a variety of platforms, we should ensure these file write requirements are compatible with limited write directories. Here are some strategies we can use:
* Properly use `wp_tempnam()` instead of hardcoding `/tmp/` paths.
* Permit some write directories to be configurable with a constant or environment variable.
* Failing gracefully, in certain cases, when a file can't be written.
cc @mikeschroder @octalmage" danielbachhuber 6
37207 Multiple unit tests for add_rewrite_endpoint lose custom endpoints Build/Test Tools 4.5.3 normal normal Future Release defect (bug) new 2016-06-28T02:47:28Z 2016-09-01T00:28:31Z "When registering multiple endpoints through `add_rewrite_endpoint()`, tests for the existence of each endpoint in `$GLOBALS['wp']->public_query_vars` fails.
I have attached a simple plugin that illustrates the problem. Steps to reproduce:
1. Download the plugin.
2. Run `phpunit` inside of it.
3. Test #1 succeeds while test #2 fails.
The relevant excerpts from the plugin are included below.
Endpoint registration:
{{{
add_action( 'init', function() {
add_rewrite_endpoint( 'custom-endpoint', EP_ROOT );
add_rewrite_endpoint( 'custom-endpoint-2', EP_ROOT );
});
}}}
Tests:
{{{
class TestRewriteEndpoint extends WP_UnitTestCase {
public function setUp() {
parent::setUp();
$this->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
$this->qvs = $GLOBALS['wp']->public_query_vars;
// print_r( $this->qvs );
}
public function tearDown() {
$GLOBALS['wp']->public_query_vars = $this->qvs;
parent::tearDown();
}
public function test_is_custom_endpoint_added() {
$this->assertContains( 'custom-endpoint', $GLOBALS['wp']->public_query_vars );
}
public function test_is_custom_endpoint_2_added() {
$this->assertContains( 'custom-endpoint-2', $GLOBALS['wp']->public_query_vars );
}
}
}}}
This may possibly be related to #34346, though in this case I am not using `go_to()`." ericdaams 5
39237 PHPunit coverage reports fail if the is out to the stdout or header Build/Test Tools normal normal Future Release defect (bug) new dev-feedback 2016-12-11T18:03:15Z 2017-07-12T19:33:03Z "trying to get the coverage report to work :-)
https://phpunit.de/manual/current/en/textui.html
and their error due to the ech statements in the phpunit `install.php` and `bootstrap.php`
i.e.
{{{#!php
It would be awesome if the phpunit task would run in Vagrant, see https://github.com/xwp/wp-dev-lib/blob/f95a6e9e60fc261af655be929cee637e93149f41/check-diff.sh#L532-L552. :-)
Currently if your not SSH'd inside the Vagrant environment and working on files locally on the operating system side (not inside the virtual machine) then the `grunt phpunit` tasks will fail.
We should use something similar to the xwp/wp-dev-lib code linked above so that if a Vagrant environment is detected then the `grunt phpunit` and `default`, `ajax`, `multisite`, and `external-http` sub tasks and configurations will be passed through via SSH to inside the Vagrant environment.
" netweb
36646 Tests failing with MySQL versions greater than 5.6.17, possibility to do with transactions? Build/Test Tools normal normal Awaiting Review defect (bug) new reporter-feedback 2016-04-23T00:04:52Z 2016-06-14T12:10:26Z "It appears that our test-suite leveraging WP_UnitTest cases are failing when MySQL is upgraded to a version greater than 5.6.17.
It's known to be failing on 5.7.11, as well as 5.6.2X. After some debugging it seems that this has to do with transactions not properly being handled, so if we interface with the database using WPDB manually, data remains from a previous test, thus breaking our test-suite.
I'm not sure how exactly to debug this, but will to help reproduce and resolve this issue.
All of the WP_UnitTest libraries are fully up to date from trunk." cookiesowns 2
38266 Tests: Use assertSame() when the type of the value in the assertion is important Build/Test Tools normal normal Future Release defect (bug) new 2016-10-09T01:38:36Z 2016-10-09T01:57:15Z "Several tests use `assertEquals()` on a falsey value where the type is important to the accuracy of the test.
For example, in `Tests_Cache::test_miss()`, a value is tested against an expected `NULL` value using `assertEquals()` which will produce a false positive if another falsey value such as `0`, `false`, or an empty string is passed. These means these such assertions are actually buggy.
Using `assertSame()` instead of `assertEquals()` will cause the type to be checked in addition to its value." johnbillion 1
41472 Travis CI: Use the latest PHPUnit 6.x branch Build/Test Tools normal normal 4.9 defect (bug) new commit 2017-07-28T03:39:53Z 2017-07-28T14:13:00Z "Follow up to #39822 / [40536] where PHPunit 6.x support was added to use PHPUnit 6.1 for Travis CI PHP 7.x versions
PHPUnit 6.2 was released 2nd June 2017, and the latest 6.2.3 released 3rd July 2017
We should use the latest 6.x branches rather than the 6.1.x branch
Here's a Travis CI job testing this patch as at current SVN revision [41179]
https://travis-ci.org/ntwb/wordpress/builds/258400758 via https://github.com/ntwb/wordpress/pull/4" netweb 1
31432 Unit tests are sensitive to line endings Build/Test Tools normal normal Future Release defect (bug) new has-patch 2015-02-24T11:05:07Z 2017-07-24T13:37:36Z "Currently, patching unit test files with `grunt patch` on Windows changes line endings.
This results in unexpected failures in some tests using the heredoc syntax (`<<run, PHPUnit_TextUI_TestRunner->doRun, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestSuite->run, PHPUnit_Framework_TestCase->run, PHPUnit_Framework_TestResult->run, PHPUnit_Framework_TestCase->runBare, Tests_dbDelta->setUp
}}}
" pento
39356 grunt precommit doesn't work on full checkouts of develop.svn Build/Test Tools normal normal Future Release defect (bug) new has-patch 2016-12-21T05:46:13Z 2017-05-18T14:25:45Z "To reproduce:
{{{
$ svn co https://develop.svn.wordpress.org/ develop.svn
$ cd develop.svn/branches/4.7
}}}
Edit a file in the 4.7 branch, then run `grunt precommit`. It fails with this message:
{{{
$ grunt precommit
Running ""precommit"" task
Fatal error: This WordPress install is not under version control.
}}}" pento 2
41015 moving site with index.php Build/Test Tools 4.8 normal normal Awaiting Review defect (bug) new 2017-06-12T19:58:42Z 2017-06-12T19:58:42Z "For years I've been able to move my sites by just editing the index.php file and keeping my files and theme in the subdirectory. This works great when I have multiple sites/builds under the domain. As of the past few months, this is no longer working. WP is not recognizing the index.php file, but giving a parse error indicating a syntax error in the file (syntax error does not exist).
Has WP changed this feature and we can no longer copy an edited index.php file but now have to move entire directories? If so, PLEASE change that back.
Please let me know asap!
Thanks" CBDesign58
31092 travis-ci builds skip lots of tests due to environment configuration Build/Test Tools normal normal Future Release defect (bug) new 2015-01-21T19:20:30Z 2015-01-21T22:13:52Z "See #30284.
travis-ci builds (eg https://travis-ci.org/aaronjorbin/develop.wordpress/jobs/47713725) are skipping a bunch of tests. I haven't yet looked into it in detail, but I'm guessing it's a combination of the following:
- Missing image-related PHP extensions (gd, exif)
- ru_RU system domain must be installed (`Tests_DB::test_locale_floats()`)
- MySQL versions don't support utf8mb4
- WordPress Importer plugin not available
Ideally, the only tests skipped in CI are those that depend on *WordPress* configurations, and we run separate builds for each relevant config. In the case of our current tests, the only WP config that matters is multisite, and we're already running separate multisite tests, so we should expect to see that some tests are skipped on MS, and others skipped on non-MS. All OS, PHP, MySQL, and webserver-related skips should be eliminated.
Anyone who's interested in chasing this down, here's how I'd go about it:
- Fork https://github.com/aaronjorbin/develop.wordpress and set it up to run on Travis.
- Modify the build so that it runs `phpunit -v`. I think you should be able to do just by changing the `script` command in .travis.yml
- Check in and push up. The first Travis run should give you a full report of what's being skipped, and why
- Start hacking at the `before_script` section as necessary to get the necessary prerequisites installed. http://docs.travis-ci.com/user/languages/php/#PHP-installation and the following sections should be a good starting point." boonebgorges 2
39902 wordpress-tests-lib : factory->post->create_object not working on mysql Ver 14.14 Distrib 5.7.16 Build/Test Tools 4.7.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-02-17T11:54:20Z 2017-02-17T17:49:20Z "Hello,
The function factory->post->create_object is not working on mysql Ver 14.14 Distrib 5.7.16.
When I try to insert a new post, it return 0 as the Id and doesn't insert the post.
I suspected that it has to do with mysql version, and when I forced mysql version to 5.6.24 on my docker image, it just worked fine.
Thanks" ilhamum 1
23912 Add Composer package description Build/Test Tools 3.5 normal trivial Future Release enhancement new 2013-03-30T20:44:16Z 2016-08-28T14:52:16Z "WordPress, as software download, lacks machine-readable source of meta information about it. For PHP projects de-facto standard for such is Composer via `composer.json` file in project root.
While WP currently doesn't use or need Composer dependency functionality, it will help provide information to developers and improve WP usage ''as'' dependency in projects that make use of Composer.
Suggested `composer.json` draft:
{{{
{
""name"" : ""wordpress/wordpress"",
""description"" : ""WordPress is web software you can use to create a beautiful website or blog."",
""keywords"" : [""blog"", ""cms""],
""homepage"" : ""http://wordpress.org/"",
""license"" : ""GPL-2.0+"",
""authors"" : [
{
""name"" : ""WordPress Community"",
""homepage"": ""http://wordpress.org/about/""
}
],
""support"" : {
""issues"": ""http://core.trac.wordpress.org/"",
""forum"" : ""http://wordpress.org/support/"",
""wiki"" : ""http://codex.wordpress.org/"",
""irc"" : ""irc://irc.freenode.net/wordpress"",
""source"": ""http://core.trac.wordpress.org/browser""
},
""require"" : {
""php"": "">=5.2.4""
}
}
}}}
" Rarst 75
34693 Add browser-based testing and automated acceptance tests (BrowserStack) Build/Test Tools normal normal Future Release enhancement assigned 2015-11-15T23:43:07Z 2017-07-06T14:17:45Z "Automated testing in WordPress is primarily focused on PHPUnit testing, with some JavaScript QUnit tests. While the PHP tests are run against every version of PHP since 5.2, the JavaScript tests are limited to one single browser environment (PhantomJS). This has meant that browser-specific bugs have been introduced (e.g. #30781) because manual testing isn't always performed in all the browsers that WordPress supports. We should connect WordPress unit tests with something like BrowserStack to run the QUnit tests in the various browsers.
While we're at it, the unit/integration testing in PHPUnit and QUnit only take us so far in WordPress as it is. What WordPress is missing are acceptance tests that fire up an actual browser to do actual tasks that users would perform when using WordPress. Such acceptance tests would make WordPress much more resilient against regressions, and it would open up a lot of new areas for automated testing that are currently very difficult to test using unit/integration tests. For instance, the Customizer heavily uses data from both PHP and JavaScript along with Ajax requests between the two. To create unit/integration testing mocks for PHP, JS, and Ajax requests adds a lot of testing overhead and is also difficult to maintain.
I believe acceptance testing would allow much more of WordPress to be tested automatically, and it would allow tests to be written by more people.
See also https://wordpress.slack.com/archives/core/p1419407324003594" westonruter 15
33043 Add contributing.md to git mirror Build/Test Tools normal normal Future Release enhancement new 2015-07-19T16:50:04Z 2016-09-12T23:07:46Z "As is apparent from the [https://github.com/WordPress/WordPress/pulls?q=is%3Apr+is%3Aclosed 100+ pull requests] that have been submitted, devs dont read the description shown on github and create pull requests anyway. One way to limit this noise, and guide devs to the right place is to make use of [https://github.com/blog/1184-contributing-guidelines Contributing guidelines] so that when they try and create a pull request they see a call to action to review the guidelines.
The attached diff would make this appear when users try to create a pull request:
[[Image(https://camo.githubusercontent.com/71995d6b0e620a9ef1ded00a04498241c69dd1bf/68747470733a2f2f6769746875622d696d616765732e73332e616d617a6f6e6177732e636f6d2f736b697463682f6973737565732d32303132303931332d3136323533392e6a7067)]]
And if they click the guidelines link they'd see this:
[[Image(http://dump.ad7six.com/wp-contributing.png)]]" AD7six 5
28543 Allow stricter JSHint checks for core files Build/Test Tools 3.7 normal trivial Future Release enhancement new 2014-06-15T12:52:59Z 2015-09-20T18:22:31Z "http://make.wordpress.org/core/2013/11/13/finding-fixing-javascript-errors-with-jshint/
Many JSHint issues were fixed in core JavaScript files for the release of WordPress 3.8 (if I recall correctly). The above post makes refetene to “curly” and “eqeqeq” being ignored for now but would be revisited in the future.
I think therefore it makes sense to implement a stricter set of JSHint checks for core files. This could be done by simply making the current '''jshint:core''' task striker or a new '''jshint:corestrict''' could be introduced as per the attached patch." MattyRob 5
35318 Automate anti-virus scanning of WordPress zips Build/Test Tools normal normal Awaiting Review enhancement new 2016-01-05T16:36:15Z 2016-01-06T10:51:11Z "In WordPress 4.4, some files were marked as malware by antivirus vendors. This sucks for users. I think we should automate scanning of WordPress packages so that we can alert antivirus vendors as soon as possible that they are miss flagging WordPress files.
one api that could work is https://www.virustotal.com/en/documentation/public-api/ , but we should investigate that and other possible options. " jorbin 1
37261 Consider removing the `$start` argument from `WP_UnitTest_Generator_Sequence` Build/Test Tools 4.4 normal normal Awaiting Review enhancement new 2016-07-03T12:46:17Z 2016-07-03T12:46:17Z "As a follow up to [35244] and [37299], I wonder whether the `$start` argument in `WP_UnitTest_Generator_Sequence` still makes sense.
Currently the class handles two things:
- Global increments (via the static incrementor variable).
- Local increments (via the `$start` argument).
So I'd propose to remove the `$start` argument. A different, simpler class could be used for local increments instead." Frank Klein
40281 Improve Documentation for HTTP Unit Testing Build/Test Tools 4.8 normal normal Awaiting Review enhancement new has-patch 2017-03-27T22:42:10Z 2017-03-28T00:30:10Z Improve Commenting for HTTP Unit Testing. bhubbard
30153 Integrate PHP_CodeSniffer into build/test tools to enforce coding standards on new patches Build/Test Tools normal normal Awaiting Review enhancement new 2014-10-29T00:01:35Z 2015-11-16T00:50:59Z "There is a community project to develop PHP_CodeSniffer standard(s) for the WordPress Coding Standards: https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
Currently it only (mainly) applies to PHP files, though PHP_CodeSniffer can also tokenize and apply sniffs to JS and CSS.
It would be helpful if PHP_CodeSniffer could automatically check new patches being committed, to incorporate it into a pre-commit hook. A key here is to restrict PHP_CodeSniffer to only report errors and warnings on the lines that are part of the patch being committed. There is an initial version of such a “phpcs-patch” script which needs to be tested and integrated into the build/test tools: https://github.com/xwpco/PHP_CodeSniffer/pull/1" westonruter 4
37521 Introduce a procedure for deprecating code used in Unit Tests Build/Test Tools 4.6 normal normal Awaiting Review enhancement new 2016-07-30T08:22:16Z 2016-07-30T08:22:16Z "WordPress has different utility functions to mark functions, methods, hooks, etc. in the core codebase as deprecated, and a dedicated file (`deprecated.php`) to move obsolete code to.
I consider that it would be useful to introduce the approach of deprecating code to the unit tests as well.
An example for obsolete code would be the `_unregister_post_type()` and `_unregister_taxonomy()` functions in the unit test utils. Since [36316], these test framework functions are only wrappers for core functions. As such, it would be appropriate to use the core functions in the tests, and deprecate the test framework functions.
Let's explore how we could handle this in the unit test framework." Frank Klein
41425 Killing phpunit may result in a broken database Build/Test Tools trunk normal normal Awaiting Review enhancement new has-patch 2017-07-24T15:50:00Z 2017-07-24T16:23:19Z "While r