ticket summary owner workflow __group__ _version priority severity milestone type _status _created modified _description _reporter Comments
27282 WP_Query returns more results when there are sticky posts has-patch Query normal normal Future Release defect (bug) new 2014-03-05T17:49:13Z 2017-01-01T00:51:00Z "When doing a WP_Query like the one below it can return more then 3 post depending if there are sticky posts and if there are returned.
{{{
$query = new WP_Query( array(
'orderby' => 'post__in',
'post__in' => $post_ids,
'posts_per_page' => 3
) );
}}}" markoheijnen 16
35130 .wp-full-overlay-main prevents touch scrolling in theme preview iframe in iOS Safari obenland* has-patch Themes 4.4 normal normal Future Release defect (bug) accepted 2015-12-17T07:00:53Z 2017-01-02T10:23:31Z "This appears related to https://core.trac.wordpress.org/ticket/20805 closed 4 years ago.
In iOS 9 (latest) on an iPhone 6+ in Safari (latest) the theme previewer within the theme installer doesn't allow touch scrolling within the iframe.
This bug persists in Xcode Simulator and on iPad 2 and iPhone 6s running latest iOS and Safari.
This issue does not appear in the installed theme previewer, as far as I can tell.
'''Fix:'''
Within theme-install.php, on line 279, when I apply styles `-webkit-overflow-scrolling: touch;overflow-y: scroll;` to .wp-full-overlay-main it resolves the issue." anthonydpaul 2
39493 Include custom post type slug as body class has-patch Themes normal normal Future Release enhancement new 2017-01-05T22:28:27Z 2017-01-06T13:05:07Z "If I have a custom post type `product` and a post with slug `laptop`, then I can create a `single-product-laptop.php` template to render markup specific to this product.
''But'', a template needs styles too. It would be easier to target my CSS specific to this template if `single-product-laptop` was included as a body class." danielbachhuber 3
39505 Add an option to add custom classes to comment_reply_link() has-patch Comments 4.7 normal normal Awaiting Review enhancement new 2017-01-06T14:08:03Z 2017-01-06T18:45:38Z In many cases, I want to add custom classes to comment reply link. I can use js or handle comment link string. But it's better if have an option to add custom classes to link via PHP. truongwp
34507 New action `before_login_form` needs-docs Login and Registration normal normal Awaiting Review enhancement new 2015-10-30T07:33:57Z 2017-01-10T12:21:39Z "I can add new fields before default fields form. For example I can add social login :
https://food52.com/users/sign_in?next_url=%2F" sebastian.pisula 5
39558 A lot of menu classes (and id's) are missing when there's no menu set for a location Menus 4.7 normal normal Awaiting Review enhancement new 2017-01-12T12:45:58Z 2017-01-12T14:02:03Z "When a fallback menu is displayed because no menu is set to a location, a lot of the CSS classes are removed, compared to the same menu when the location is set.
Would it be possible for a fallback menu to have the same classes than a menu with a location?
It would allow theme developers to use classes instead of tags to style the menu.
'''Fallback menu'''
{{{
}}}" benoitchantre 1
39091 Customize: Nav menu item controls should be inactive when items are excluded from preview Customize 4.3 normal normal Future Release defect (bug) new 2016-12-05T20:44:48Z 2017-01-15T23:03:48Z Plugins can exclude nav menu items from displaying in nav menus in a plugin like Nav Menu Roles. This is similar to how widgets can be conditionally excluded from sidebars via a plugin like Jetpack's Widget Visibility module. This is currently implemented for widgets, where a widget that is not shown in the preview will have its control's `active` state set to `false` (causing it to become partially-opaque rather than fully hidden). Something similar should be done for nav menu item controls that are excluded from the preview. westonruter 2
28607 Make wpautop()'s $allblocks variable filterable has-patch Formatting normal normal Awaiting Review enhancement new 2014-06-21T04:51:59Z 2017-01-18T22:58:34Z "'''The problem''': I'd like tags to ''not'' be wrapped by
in the_content().
I used to use a regex filter on the_content to achieve this, but looking at the source for wpautop(), I think it would be much cleaner to ''prevent'' s from being wrapped in the first place by making $allblocks filterable.
The
issue commonly causes formatting issues, and making the block list filterable would let theme/plugin authors change this without and other blocks without breaking stylesheets configured for images in paragraphs.
Additionally, I think it's semantically cleaner for a standalone image, since ""The HTML
element (or HTML Paragraph Element) represents a paragraph of text."" https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p" walkinonwat3r 7
39639 Increase cache time on wp_get_available_translations() I18N 4.8 normal normal Awaiting Review enhancement new 2017-01-19T15:02:46Z 2017-01-19T20:11:20Z "Currently there's no nice way of retrieving a full list of supported languages / locale codes from WordPress. The closest seems to be:
{{{
require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
$languages = wp_get_available_translations();
}}}
This calls the WordPress.org API to retrieve the list, making this approach not wholly suitable outside of its original intended use during WordPress install. The results are currently cached for 3 hours so it's not that the API will be called every time this function is called, however it seems that the 3 hours could be extended reasonably safely without causing any detriment.
Patch attached that extends the cache time to 24hrs. " leewillis77 3
39653 WP_Http_Cookie changes reporter-feedback HTTP API normal normal Awaiting Review enhancement new 2017-01-20T14:56:16Z 2017-01-20T15:30:30Z "1. The WordPress convention is to use underscores instead of camelCase for function and method change
2. add new param to return array in get_attributes method
3. change parse_url to wp_parse_url" sebastian.pisula 1
39641 "Idea: Move ""Updates"" from ""Dashboard"" to ""Tools""" dev-feedback Upgrade/Install normal normal Awaiting Review enhancement new 2017-01-19T17:15:05Z 2017-01-20T19:59:15Z "When plugin/theme/core updates are available, a new submenu gets added to `wp-admin` for ""Updates."" IIRC, this location was picked because for a few reasons:
* Updates are important, so put them towards the top
* There is no ""Notification Center"" so this is the next best place
* This is the site communicating to the user, so ""Dashboard"" has a logical association
Revisiting this, having had this show up for myself recently, ""Dashboard"" suddenly felt... off...
* Updating software in other large projects is actually a bigger deal, with dedicated top-level sections for managing it all
* WordPress is logically progressing towards software updates being as invisible to the user as comfortably makes sense
* ""Dashboard"" shouldn't be a dumping ground for ""this has no other home"" type pages
* A ""Notification Center"" for individual users exponentially complicates how this interface works. Do ""global"" notifications exist? Does clearing it for one user clear it for all users? How do we re-check, without user-transients? Obviously, all of this is premature for this idea anyways...
So, this got me thinking about our other ambiguously named top-level-menu item: ""Tools""
* Upgrades and updates are technically tools being ran with a mostly-acceptable interface on top of them
* The ""Available Tools"" page is a pretty lonely place to be
* Plugins already have started putting their own tools in that tools menu, so why not core?
I'll attach a screenshot of a relocated submenu to help visualize, and please feel free to close this issue if the notion is premature or silly or whatever." johnjamesjacoby 2
39651 Find Posts modal does not show post-type labels correctly Posts, Post Types 4.7.1 normal normal Future Release defect (bug) new 2017-01-20T11:59:21Z 2017-01-21T02:22:58Z "The screenshot shows the output of four different posts in the '''Find Posts Modal'''. The last two post are correct, at the first and second post the post-type-label (e.g. cpt_example) is missing. The problem is the post-type parameter ""''public''"", if it is set to ""''false''"" the label will not be shown AND you will get the following PHP-Notice (if DEBUG is true):
{{{
Undefined index: cpt_example in ... /wp-admin/includes/ajax-actions.php on line 1803
Trying to get property of non-object in ... /wp-admin/includes/ajax-actions.php on line 1803
}}}
At the following code (1745 ff.) you will notice the reason of this issue: '''$post_types''' only includes '''public posts'''
{{{#!php
true ), 'objects' );
^^^^^^^^^^^^^^^^
}}}
The output of this modal shows all posts (public and unpublic), so i don't think that this ""filter"" was set for security reasons. In my opinion it must either show all posts correctly with their labels (which would be great) or it must suppress all ""unpublic"" posts completely. " arkonisus 1
38573 Ajax requests in customizer controls don't inject customized state as done in preview Customize normal normal Future Release defect (bug) assigned 2016-10-30T21:01:04Z 2017-01-21T17:19:51Z "In the customizer preview, Ajax requests now get the `customized` state injected via `jQuery.prefilter`. In the customizer controls pane, however, this was not also implemented. This is important to ensure that that requests to the REST API will return back the expected previewed state.
Also relates closely to #38122." westonruter 4
38957 Customize Menus: Menu locations should be able to opt-out of menu item types that can be added to associated menus Customize 4.3 normal normal Future Release enhancement new 2016-11-26T22:24:31Z 2017-01-21T17:34:56Z "Certain menu locations are often designed to use a particular type of menu item - for example, social menus only make sense with custom links, or a custom nav menu walker may be used to display a deeper index of posts within taxonomy terms featured in a menu location.
If themes could specify what types of content a particular menu location is intended to contain, the menus UI could correspondingly show/hide or prioritize the types of menu items in the available menu items panel. This should be handled with the `object` and `object_type` menu item parameters.
As with #38956, this is difficult due to the current way the menu locations API works, and the fact that menus can be added to multiple locations. This should be considered a usability enhancement that is more conservative in hiding available menu items for items in multiple locations, and that adapts as menu locations are changed." celloexpressions 1
39656 Create a submenu item under About admin bar for security Security 4.7.1 normal normal Awaiting Review enhancement new 2017-01-20T21:59:37Z 2017-01-23T18:02:38Z "Make it easier for users to find the WP hardening information, from the About menu in wp-admin.
{{{
}}}
" lukecavanagh 2
39674 Special characters are encoded in the database, for site settings options Formatting 4.7.1 normal normal Awaiting Review enhancement new 2017-01-24T09:50:40Z 2017-01-24T09:53:18Z "If you change the name of the blog in the settings page, for example to ""Donald's blog"",
we can see in the mysql database, the result is ""Donald's blog"" for the '''blogname''' option name, so I can not understand why this happening, I think in the database the result should be the same of what we type.
All sensitization actions I think must be used on the front (page view) side not on the database side (before submitting to the database).
I use Windows 64b, PHP: 7.0.4, WordPress: 4.7.1
" alexvorn2
36442 Customizer: when setting header image and site logo, also create a 2x image if possible Customize 3.9 normal normal Future Release defect (bug) new 2016-04-07T15:46:44Z 2017-01-24T18:49:45Z Currently after cropping an image for a header image or site logo, we make only smaller sizes images with the same ratio. These sizes are used (automatically) in srcset. We also need to make a 2x size for use on high density displays, if the original image is large enough. azaozz 2
39706 Add $unique param to add_{$meta_type}_meta actions Options, Meta APIs normal normal Awaiting Review enhancement new 2017-01-26T17:11:05Z 2017-01-26T17:16:36Z "The hooks `add_{$meta_type}_meta` and similar provide context about `$object_id`, `$meta_key`, `$_meta_value` and such, but do not tell whether the meta data added or updated is supposed to be `$unique`.
Adding this information could be helpful. My use case for instance is propagating meta data across posts." barryceelen 1
37958 Improve looping through sites and restoring Networks and Sites normal normal Awaiting Review enhancement new 2016-09-06T17:58:26Z 2017-01-27T08:31:29Z "[https://wordpress.slack.com/archives/core-multisite/p1473179575000111 As discussed] in the recent multisite ~~hours~~ minutes, I would like to propose (and discuss) a better means to looping through a number of (or even all) sites and finally restoring to the state before the loop.
The naive approach looks like the following:
{{{#!php
site_id = get_current_blog_id();
$this->stack = $_wp_switched_stack;
$this->switched = $switched;
}
/**
* Returns a new instance representing the current network state.
*
* @return static Network state object.
*/
public static function create() {
return new static();
}
/**
* Restores the saved network state.
*
* @return void
*/
public function restore() {
switch_to_blog( $this->site_id );
$GLOBALS['_wp_switched_stack'] = $this->stack;
$GLOBALS['switched'] = $this->switched;
}
}
}}}
With this class, the `foreach`-loop code from before can become this:
{{{#!php
restore();
}}}
No matter what happens in the loop (and thus in any called function or method), we restore to the exact same state the network was in before the loop.
The above implementation works with the (currently available and used) globals. As soon as there is some other way (see #37699), this can easily be adapted as it's internals only.
The naming is just a suggestion, and we can, of course, baptize all the things differently.
Core could make use of it, too. For example in the [https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/ms.php?rev=38334#L221 `wpmu_delete_user()] function, during [https://core.trac.wordpress.org/browser/trunk/src/wp-admin/network/upgrade.php?rev=38229#L64 Network upgrade], or in the [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/admin-bar.php?rev=38470#L461 wp_admin_bar_my_sites_menu()] function (!), which means: On. Every. Single. Page. Load.
I'd be happy to provide a full patch against trunk. I just wanted to propose this first and give opportunity to discuss this." tfrommen 16
39687 Request headers sent incorrectly from `WP_Http` to `Requests` dev-feedback HTTP API normal normal Awaiting Review defect (bug) new 2017-01-25T12:02:48Z 2017-01-27T08:51:23Z "While having a closer look at Requests (and also the way it is used in WP), I noticed something that appears to be a bug.
The `$headers` variable that is passed from `WP_Http::request()` to `Requests::request()` is an array of `$key => $value` pairs where `$value` may be an array itself in case multiple values for that header have been passed to `WP_Http::request()`. However, the Requests library expects each `$value` of the `$headers` array to always be a string, as it uses `sprintf()` with it directly (the passed `$headers` array is sent through `Requests::flatten()`).
This can cause issues when specifying multiple headers of the same name." flixos90 3
38224 Not enough results in menu-page-add-search dev-feedback Menus 4.6.1 normal normal Awaiting Review defect (bug) new 2016-10-04T09:42:08Z 2017-01-31T20:35:38Z "While editing menu, trying to add a page, searching for the page ""research"" in a database with hundreds! of pages with this word in it, looking for that ONE page with just 'research' as title, the page is not listed
admin/includes/nav-menu.php, _wp_ajax_menu_quick_search with type=quick-search-posttype-page the WP_Query lists posts_per_page = 10, but the search does NOT provide a paginator.
I call this a bug because it is not working as intended; I assume you intended that the search would allow a page to be found, so the bug would be ""pagination is missing""
I have hard-coded a -1 to avoid the issue for now
possible solutions are:
- add pagination
- add a filter on the arguments so we can set a different page-size without altering the code
" clearsite 3
37899 Make Profile Picture Section of Edit User Admin Page Filterable Users 4.7 normal normal Awaiting Review enhancement new 2016-08-31T19:52:52Z 2017-02-02T12:55:00Z "Currently the Edit User page contains a section under the Biography showing the user's Profile Picture (avatar). This picture isn't editable, because WordPress uses Gravatar.
This behavior isn't typical. More commonly, websites with self-created user accounts also allow the user to upload a custom profile picture. There are a number of plugins which implement this behavior:
https://wordpress.org/plugins/custom-user-profile-photo/
https://wordpress.org/plugins/metronet-profile-picture/
https://wordpress.org/plugins/wp-user-avatar/
https://wordpress.org/plugins/basic-user-avatars/
https://wordpress.org/plugins/simple-local-avatars/
They all share a problem though, which is that they can't touch the native Profile Picture section. They all add their own HTML elsewhere on the page. This results in an Edit User page with two Profile Picture sections. CSS can hide the native non-editable section, but that's not ideal.
I'd like to propose that we make the native profile section filterable, so that plugins can override it to enhance it directly rather than adding another section to the page.
If we move the hard-coded HTML of that section into a function call that is filterable, plugins could just enhance the native section itself. This would prevent multiple Profile Picture sections and keep everything in the native location on the page.
Alternatively and less ideally, just adding a do_action() call at the end of the native Profile Picture section would at least allow for the new controls to be added in the correct location on the page." Kelderic 2
36423 Constant in wp-config.php to disable uploads Upload normal normal Awaiting Review feature request new 2016-04-05T21:35:13Z 2017-02-02T12:59:42Z "During a conversation with @ jasondewitt10up today, he asked if there was a wp-config.php constant he could define to disable uploads within WordPress (his specific use-case was in case the containerized filesystem went away, but I could also see uses during migration/content freezes, while performing some upgrades, etc.
I'd be interested to hear the core team's thoughts on a constant like `DISABLE_FILE_UPLOAD`, which would function in a similar fashion to `DISALLOW_FILE_EDIT` and `DISALLOW_FILE_MODS`. Is there a stance for or against more wp-config.php constants, or is it a ""only if they ''really'' make sense and would be applicable for a large % of the install base"" decision?" stevegrunwell 2
31573 wp_admin_bar_my_sites_menu should check for super admin capabilities Networks and Sites 4.1.1 normal normal Future Release enhancement new 2015-03-09T15:36:35Z 2017-02-02T15:29:57Z "Currently the ""Network Admin"" segment of the admin bar is only added for super admins. This could be done in a more granular way by using the corresponding super admin capabilities.
I am currently adding this myself with code similar to this:
{{{
if ( current_user_can( 'manage_network_users' ) ) {
$groups[] = array(
'parent' => 'network-admin',
'id' => 'network-admin-u',
'title' => __( 'Users' ),
'href' => network_admin_url( 'users.php' ),
);
}
}}}
To make this useful the suggestions in #16860 would also have to be implemented.
With BuddyPress now also using more granular checks for super admin capabilities this would allow for a much more refined access control to the network admin area. In my case I need the possibility to allow individual users the activate and edit user accounts, but have no access to other areas of the network admin in a multisite installation.
" thomaslhotta 4
39772 add ajax functionality to switching tabs and pagination in plugins Plugins 4.8 normal normal Awaiting Review enhancement new 2017-02-02T22:06:48Z 2017-02-02T22:06:48Z Since we have the cool ajax search plugin functionality, maybe we add the ajax for the tabs on the add plugin page as same as with the pagination of the results. m1tk00
34591 "BugFix to WP_Scripts::do_item(), remove doubled ""//""" needs-unit-tests Script Loader 4.3.1 normal normal Awaiting Review defect (bug) new 2015-11-05T11:01:37Z 2017-02-05T09:08:07Z "Current code in `do_item()` of class.wp-script.php on line 172:
{{{
$src = $this->base_url . $src;
}}}
may produce duplicate slashes `""//""`, resulting in problems.
This might be fixed with code:
{{{
$src = $this->base_url . $src;
}}}
Currently:
* WP_Scripts contains: `""public $base_url; // Full URL with trailing slash""` and
* script-loader.php contains calls `$scripts->add()` with initial `""/""` in relative paths
Together this produces doubled slashes `""//""`. For example:
http://www.ocelovehaly.cz/ll//wp-includes/js/jquery/jquery.js?ver=1.11.3
This makes W3TC include script in minified version, but not to remove it from the original HTML.
Including jQuery twice makes LayerSlider not to work.
Please, could you bugfix class.wp-script.php on line 172?
Thank you :-)" jan.mazanek 4
31136 Allow plugin authors to register an additional 'Uninstall Notification' plugin header and to display back to the user during plugin uninstall flow needs-unit-tests Plugins normal normal Future Release enhancement new 2015-01-26T06:14:19Z 2017-02-05T09:58:14Z "In wp-admin/plugins.php wordpress displays to the user information about the plugins you are attempting to uninstall. Currently it only displays the name of the plugin name ($plugin[ 'Name' ]) and the plugin author ($plugin[ 'AuthorName' ]). In V4.1 this output is generated around lines 289-304.
Is it possible to add another field that contains a short piece of information from the plugin author, that can be presented to the user for each plugin? The plugin would need to register this information with wordpress when it was installed or updated.
Specifically, I envisage this being used for details that the user might need to follow to preserve any data that they might have before they actually delete the plugin.
An example string that I can see being used by a plugin:
If you wish to uninstall without losing your data, see the details at http://example.com/plugin-uninstall.
Notes:
- Such a string should of course be optional to preserve backward compatibility.
- Appropriate filtering and length checks should be done on the string to ensure that the uninstall plugin UI isn't easily broken or disturbed. This avoids the plugin author filling the field with a string that stops the user from being unable to uninstall the plugin." cefiar 9
35097 New filter: `edit_post_type_title` dev-feedback Posts, Post Types normal normal Awaiting Review enhancement new 2015-12-15T09:15:30Z 2017-02-05T13:53:13Z "Filter in edit.php to filter title. Why ?
I filter this page by term and I want have title of current term
edit.php?post_type=investor-day&funds-categories=title" sebastian.pisula 4
24795 OS X Treatment has-patch Administration 3.6 normal trivial Future Release enhancement new 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
31313 refactor is_email() tests to use separate data files and PHPUnit dataProvider has-patch Build/Test Tools normal normal Future Release enhancement new 2015-02-12T22:06:21Z 2017-02-05T14:14:04Z "There are a number of open tickets involving email validation that seem as though they could benefit from making the tests on {{{is_email()}}} a little more robust.
This is my first pass at that.
Ultimately, I think moving the dataProvider out of '''IsEmail.php''' would be helpful so it could be re-used when adding tests for {{{sanitize_email()}}}, but I wanted to take this one step at a time.
I'm relatively new to automated testing and very open to suggestions.
Related: #17433, #17491, #21730, #25108, #30039" salcode 1
30527 function to add separator has-patch Administration normal minor Future Release enhancement new 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
36641 WP_Term method __toString needs-unit-tests Taxonomy normal normal Awaiting Review enhancement new 2016-04-22T20:59:58Z 2017-02-05T14:18:20Z "I think that this is good idea. For example:
{{{#!php
';
var_dump(implode(', ', get_the_terms( get_the_ID(), 'category' )));
echo '';
?>
}}}
I have ```string(**) ""Cat 1, Cat 2""```
" sebastian.pisula 1
35326 New taxonomy template dev-feedback Taxonomy normal normal Future Release enhancement new 2016-01-06T10:29:26Z 2017-02-05T14:21:10Z "I sugest neww taxonomy template: taxonomy-{$term->term_id}.php.
taxonomy-$taxonomy-{$term->slug}.php is bad because if I change slug then I must remember about change filename. In my website this isn't problem but if client change name on website then will be problem." sebastian.pisula 6
25769 import vs DISALLOW_FILE_MODS has-patch Import 3.7.1 normal normal Awaiting Review defect (bug) new 2013-10-30T11:08:21Z 2017-02-05T14:30:45Z "When DISALLOW_FILE_MODS is set to true, you cannot install an importer from the plugin repo.
Visiting Tools / Import yields the following screen:
{{{
If you have posts or comments in another system, WordPress can import those into this site. To get started, choose a system to import from below:
No importers are available.
}}}
That first line should be changed to explain that file mods are disabled and that the plugins must be installed manually. Better yet, the list should point to the relevant plugins in the repo and highlight that they need to be installed accordingly.
" Denis-de-Bernardy 4
34538 Improvement of the IPv4 address format check chriscct7 has-patch HTTP API 4.4 normal normal Future Release enhancement reviewing 2015-11-01T06:57:35Z 2017-02-05T20:33:50Z "For the current ""is_ip_address()"" in the function of out of range, such as ""256.256.256.256"" IP so will also be judged as IPv4, it is increases the usefulness of the function you have to return false for out of range of IP." ka2 8
33542 User preferences API idea dev-feedback Users normal normal Future Release feature request new 2015-08-25T15:39:53Z 2017-02-05T22:49:03Z "When setting up a new site, many site Settings seem at first like user preferences even though they aren't. For sites with 1 user blogging out to the world, this makes sense, but for more robust installations a single set of site settings does not satisfy all users.
I'd like to propose a user preferences API be invented. This API would consist of a series of functions that connect usermeta to site & network options, and when invoked, will traverse the user/site/network hierarchy and use the first available setting. Something like:
{{{
$language = wp_get_user_preference( $user_id, 'WPLANG' );
}}}
Imagine then, that `wp_get_user_preference()` would first look in `wp_usermeta`, then in `wp_options` and then in `wp_sitemeta` if multisite. This is obviously a fuzzy example, and there are less obvious caveats (like what to do when usermeta keys do not match option keys, etc...) which can all be conditionally addressed as we poke holes in the idea.
----
Here are a few settings that could be candidates, taken from their verbiage in various administration screens:
General
* Timezone
* Date format
* Time format
* Start of week
* Language
Writing
* Formatting
* Default Post Category
* Default Post Format
Reading
* Blog pages show at most
* Syndication feeds show the most recent
Discussion
* Default article settings
* Email me whenever
* Avatar Display" johnjamesjacoby 5
38300 Got a PHP warning: class-wp-xmlrpc-server.php L596: array_unshift() ... XML-RPC 4.6.1 normal normal Awaiting Review defect (bug) reopened 2016-10-13T06:46:16Z 2017-02-06T03:13:45Z "Sometimes the php_error.log file got a warning:
{{{
PHP Warning: array_unshift() expects parameter 1 to be array, null given in /wp-includes/class-wp-xmlrpc-server.php on line 596
}}}
{{{#!php
blogger_getUsersBlogs( $args );
}
...
}
}}}
The $args is NULL, it doesn't matter?" kmvan 1
35913 `is_()` conditional methods should share their logic dev-feedback Query normal normal Future Release defect (bug) new 2016-02-23T02:54:55Z 2017-02-06T08:52:07Z "Many of the `is_()` methods in `WP_Query` share the nearly the exact same logic. As such, they share the exact same bugs, and fixing those bugs requires many parallel changes and huge numbers of tests. See #35902 and #24674 for some recent examples.
It's possible to move all the shared logic to a single `protected` utility method. It's a bit more abstract, but is much easier to maintain and test." boonebgorges 2
35537 AllPosts page: sorting is not remembered dev-feedback Posts, Post Types 4.4.1 normal minor Future Release enhancement new 2016-01-19T22:43:43Z 2017-02-06T09:13:22Z "STEPS TO REPRODUCE
1) Log in (administrator).
2) Remove all posts.
3) Create 3 new posts with titles accordingly ""1"", ""2"", ""3""
4) Go to AllPosts page.
5) Click on ""Title"" column header to sort posts by title (as a result: posts is sorted in order 1,2,3).
6) Click ""Published (3)"".
7) Click ""All (3)""
EXPECTED RESULT: posts is sorted in order 1,2,3
ACTUAL RESULT: posts is sorted in order 3,2,1" antonrinas 2
35201 Mobile email validation Formatting 4.4 normal normal Awaiting Review enhancement new 2015-12-22T17:08:27Z 2017-02-06T09:14:45Z "While testing form submission through Samsung Android devices (Galaxy S6 Edge and Galaxy Note 5), we noticed that when user selects their email from the field history dropdown, it appends a space at the end of the email address. This invalidates the email when using the is_email validation function in wp-includes/formatting.php.
A fix I am currently using is simply adding a trim function to the email address in the first line of the function...
$email = trim($email);
This resolves the Samsung bug and passes the email validation. I hope this helps.
" njbebop 3
31744 All PHP files in the root should be dummy files, pointing to wp-includes versions dev-feedback Upgrade/Install normal normal Awaiting Review enhancement new 2015-03-24T01:25:03Z 2017-02-06T12:33:46Z "I'm proposing that all of our PHP files in the WordPress root should be moved to `wp-includes`, and dummy versions put in the root that include the `wp-includes` versions of them.
This will make things cleaner, and will open the door for us to do things like install a new version of WordPress in `wp-includes-8fb24cd9`, and pass a `?use-wp-includes=8fb24cd9` switch that loads that version. We could test the updated version of WordPress without touching the old version, and if it fails (WSOD, etc), we don't even have to roll back, because we haven't put the new version in `wp-includes` yet." markjaquith 1
28461 Add a fallback parameter to get_the_post_thumbnail() to find images Post Thumbnails 3.9 normal normal Awaiting Review enhancement new 2014-06-05T06:55:46Z 2017-02-06T12:42:44Z "In the 3.6 cycle, there was a lot of talk about grabbing various media types from the content for post format handling. #22960 is basically the end of that conversation, and includes a lot more stuff. #23593 is also related, but ended up getting closed in favor of #22960, which died with the post format UI.
Within that realm, the `get_the_image()` function from Justin Tadlock's Get The Image (https://github.com/justintadlock/get-the-image) plugin came up a bit. It's a super handy function. Although, it was mostly discussed as a piece of post formats. You can see it's got a whole bunch of functionality, but I'm mostly interested in its ability to find a fallback image in the content.
I'd like to see something like `get_the_image()` be able to be called via some kind of parameter within `get_the_post_thumbnail()` and therefore `the_post_thumbnail()`.
Justification: There are times in building out a theme where you'd want the **exact** featured image or none at all (like a big wide header banner or something), but other times it's great to have any 'ole fallback, like a more traditional square thumbnail on blog archives.
In these situations, often which are theme driven, and not custom site driven, it'd be great for the theme developer to be able to assign fallback rules when they call `the_post_thumbnail` itself. Whether that's through a new parameter, or maybe just an additional key / value for 'fallback' to the `attr` parameter... I don't know. But for a theme (where most image sizes are registered anyway) to be able to define fallback behavior for those same image sizes would be powerful." krogsgard 5
39795 WordPress objects are only accessible via global variables General 4.8 normal normal Awaiting Review enhancement new 2017-02-06T13:47:17Z 2017-02-06T16:29:03Z "Hello.
Here's the context:
I'm trying to write some high quality plugins that go through some code analysis tools before any new release is made available to the public. That means that the code that is being analysed is on a repository of its own.
When running the plugin code through such tools (sensio labs insights for example), some errors are marked as major issues: ""Global variable or function should never be used"" and that is related to the access of some WordPress objects like $blog_id, $wpdb and $wp_filesystem to name a few.
Upon investigation I found out that for $blog_id, there was an alternative, which is to use the get_current_blog_id() function. That is great, because it respects the WordPress way of working on the WordPress side, and in my plugin, I can now use a function instead of a global variable.
Could we make some equivalent functions for the other global WordPress objects? Like get_wp_db(), get_wp_filesystem() for example?
Thanking you.
Regards." jdmweb 3
35022 WP allows Unicode 0x00a0 spaces in editor but shortcode parser can't handle them has-patch Shortcodes 4.4 normal normal Future Release defect (bug) assigned 2015-12-11T19:38:38Z 2017-02-06T17:05:45Z "Since the release of WP 4.4, we have complaints on multiple sites that shortcodes are ""mysteriously"" failing despite being syntactically correct. Users claim merely editing and re-saving articles breaks the shortcodes. After several days of research, I discovered the problem with the non-working shortcodes is that they contain 0x00a0 Unicode non-breaking space characters. I've been unable to determine how the space characters are being created or why it has started generating complaints for us since the release of 4.4 but I have looked at the code in /wp-includes/shortcodes.php and verified that it will fail on shortcodes containing 0x00a0 characters in white space despite the editor apparently allowing them as legal white space characters.
Part of the problem is this line of code which can't identify a shortcode tag if it is followed by a 0x00a0 instead of a 0x20 space character. There are further problems parsing the shortcode parameters. (adding \xc2\xa0 to the regex seems to fix this line).
{{{
// Find all registered tag names in $content.
preg_match_all( '@\[([^<>&/\[\]\x00-\x20]++)@', $content, $matches
}}}
" steevithak 21
35562 Single post pagination redirect back to page one with nextpage tag - WordPress 4.4.1 Canonical 4.4 normal normal Future Release defect (bug) new 2016-01-21T18:07:31Z 2017-02-07T19:11:07Z "When a single post post content, {{{$post->post_content}}}, does not contain the {{{}}} tag, and we append more pages to the single post through the {{{content_pagination}}} filter, pagination works as expected
Sample code to test
{{{
add_filter( 'content_pagination', function ( $pages )
{
$pages[] = 'This is another page we want to append';
return $pages;
});
}}}
However, when we add the {{{}}} tag inside the post content ($post->post_content}}} and run the same sample code, any appended page simply redirects back to page one as a 404 header is set on appended pages.
I tracked this down to the following block of code (lines 623 - 628) inside the {{{WP}}} class ({{{wp-includes/class-wp.php}}} which seems to be introduced in either v4.4.0 or 4.4.1
{{{
// check for paged content that exceeds the max number of pages
$next = '';
if ( $p && false !== strpos( $p->post_content, $next ) && ! empty( $this->query_vars['page'] ) ) {
$page = trim( $this->query_vars['page'], '/' );
$success = (int) $page <= ( substr_count( $p->post_content, $next ) + 1 );
}
}}}
Removing those lines fixes the issue.
What I recommend is that instead of simply checking for the {{{}}} and returning a 404 according to that, we must rather have a check that acts on the amount of pages we have counted immediately after the {{{content_pagination}}} filter and then return a 404 if the current page exceeds the amount of pages after the {{{content_pagination}}} filter" pietergoosen 5
39835 Category slug could be auto-generated with ability to update manually Taxonomy 4.7.2 normal normal Awaiting Review enhancement new 2017-02-10T14:10:59Z 2017-02-10T14:13:09Z Like adding a post, when category is created from Post > Category, if a default slug could be auto generated from title here as well with the ability to edit that would be time saving and helpful. subrataemfluence 1
38186 Database Collations Bypassed by determine_charset() in wp-db.php Charset 4.6.1 normal major Awaiting Review defect (bug) new 2016-09-29T14:26:56Z 2017-02-10T14:32:55Z "The function 'determine_charset' in wp-db.php, since 4.6.0 will try to set the database collation to the best option available, 'utf8mb4_unicode_520_ci'. This makes sense when the collation is not explicitly defined in wp-config.php, and most likely beneficial to novice developers.
However, this assumptive behavior occurs even when the DB collation ''is'' explicitly defined in wp-config, effectively ignoring 'utf8_general_ci', 'utf8mb4_unicode_ci', and collations starting with 'utf8_' in certain environments.
There appears to be no way to force these collations when defined by the developer. If the developer has set the collation in the config file, shouldn't the software obey the word of the developer?
In short, ''a valid database collation set in wp-config should not be bypassed by WP Core.'' There is no workaround that vindicates the logic in determine_charset().
A possible solution would involve determine_charset() checking for a config setting such as 'FORCE_DB_COLLATE'. If true, use the collation defined in wp-config without assuming otherwise.
" natecf 2
39847 force_balance_tags not properly balancing < with and Formatting 4.7.2 normal normal Awaiting Review defect (bug) new 2017-02-11T19:12:04Z 2017-02-11T21:11:08Z "Given following HMTL code which includes the ''\['' and ''\]'' Latex delimiters:
{{{
\[<\] We
}}}
the output of '''force_balance_tags''' is
{{{
\[<\] We
}}}
which is not correct as the bold tags are unbalanced. Expected output should be the input string.
" jpmerx 1
39850 WordPress embedded links drop query vars from URL Embeds normal normal Awaiting Review enhancement new 2017-02-11T23:02:51Z 2017-02-11T23:29:04Z "When embedding a WordPress page within another post, any query strings that are passed in the URL get dropped.
For example, if embedding http://example.com/page-name/?foo=bar, the actual URL that gets passed to the oEmbed function (and later on to the template files) is http://example.com/page-name/embed/ (foo=bar gets dropped).
The link inside the blockquote also drops the url query variable and links to http://example.com/page-name/ instead of http://example.com/page-name/?foo=bar
As I see, this occurs because the `wp_filter_pre_oembed_result` function in `embed.php` uses `url_to_postid` to get the embeded post's ID, and later `get_post_embed_url` uses that ID to create the embed permalink. So naturally any url query vars are not preserved in the final URL construction.
Similarly in `get_post_embed_html`, the function uses `esc_url( get_permalink( $post ) )`, thus reconstructing the permalink without knowledge of the initial url.
I encountered this when embedded a specific photo gallery (from nextcellent plugin), but I assume some other plugins such as language/translation ones may also be affected.
I don't think the URL's should be dropping any of the query variables.
However, if that is a requirement, it would be good to also pass on the original url in the `post_embed_url` hook to allow plugin developers to make sure to add any parameters from the original url that got dropped off in the embedded url." charleslf 2
36564 Last Modified for Comments needs-unit-tests Comments 4.4 normal trivial Future Release enhancement new 2016-04-17T20:44:59Z 2017-02-12T10:37:16Z "Related #28463, #19495.
Posts have a last modified and last modified gmt, but comments have no such thing. There are several proposals indicating a need for comment revision, or tracking when the comment is first created.
Wanted to explore the idea of having last modified and last modified gmt stored as comment meta triggered by update_comment as a simple, low impact way of adding this feature that could be used by a variety of plugins.
This could be implemented by plugin hooking to edit_comment, but if such a feature is to be useful, it needs a standard storage format." dshanske 7
39864 Upload not giving back any error message when uploads directory doesn't exist. Upload 4.7.2 normal normal Awaiting Review defect (bug) new 2017-02-13T17:35:20Z 2017-02-13T17:35:20Z "[[Image(http://i.imgur.com/PLrKSNz.png)]]
When the path (upload_path in media options) set in the above image doesn't exists, no error message is displayed when uploading images. It would be great if an error message would tell you that the path is set wrong or doesn't exists, so you get an idea where to start looking to fix the error.
After you upload an image the image gets displayed like this on the media page:
[[Image(http://i.imgur.com/Euiaihl.png)]]" nahakiole
39841 Additional Post Button Options Posts, Post Types 4.7.2 normal normal Awaiting Review enhancement new 2017-02-10T18:38:24Z 2017-02-14T08:39:25Z "Turn ""Update""/""Publish"" into a button with a dropdown. So if a user selects say Update & Return it will redirect the user back to the posts admin screen. If a users selects the Update & Add New option then it would update that existing post, then redirect to a new posts screen or return to the post list screen instead." lukecavanagh 4
25333 Can't remove theme support for certain custom header arguments has-patch Customize 3.4 normal normal Awaiting Review defect (bug) new 2013-09-16T18:10:17Z 2017-02-14T18:44:16Z "While working on a ticket I tried to `remove_theme_support` the `custom-header` feature and add it back with a different default image, which did not work. Removing theme support *does* remove the feature array from the features global, but adding anything back resurrects the old values ignoring the new ones for:
* header-text
* height and width
* default-text-color
* default-image
This seems to be happening because of the back-compat code that works with the older constants. It defines the constants if they were not defined, and uses the values next time `add_theme_support` is called, bringing back the values from the first call to `add_theme_support`.
The workaround would be to not use `remove_theme_support` and instead call `add_theme_support` with the needed values *before* the call you're trying to override, which was sort of intended for child themes, because they run earlier, so this issue is far from major, but still lame. Run this during theme setup to reproduce:
{{{
add_theme_support( 'custom-header', array( 'default-image' => '%s/foo.png', ) );
var_dump( get_theme_support( 'custom-header', 'default-image' ) ); // foo.png
remove_theme_support( 'custom-header' );
add_theme_support( 'custom-header', array( 'default-image' => '%s/bar.png', ) );
var_dump( get_theme_support( 'custom-header', 'default-image' ) ); // expected bar.png but got foo.png
}}}
Excuse my debugging skills ;)" kovshenin 9
24844 get_theme_mods doesn't return the theme customizer preview's new values. Customize 3.5.2 normal normal Future Release defect (bug) new 2013-07-26T13:41:52Z 2017-02-14T18:44:32Z "Using the theme customizer API, you can call get_theme_mod($option) to return the value for a specific theme option.
In the case of the user interacting with the theme customizer, if they have changed an option, the theme customizer replaces the saved option with the previewed / new setting by hooking onto the {{{theme_mod_$name}}} filter applied in {{{get_theme_mod}}}.
However, should the user need or desire to retrieve all theme mods at once, the filter is not applied, and the new settings are never injected into the saved settings array.
There's a workaround to simply loop through the settings and manually apply the filter, but it would be better if {{{get_theme_mods}}} had an argument like {{{$use_filter}}} and could add the filter in the core functionality.
{{{get_theme_mods}}} is in [source:tags/3.5.2/wp-includes/theme.php#L746 wp-includes/theme.php] on line 746.
{{{get_theme_mod}}} is in [source:tags/3.5.2/wp-includes/theme.php#L776 wp-includes/theme.php] on line 776.
{{{theme_mod_$name}}} filter is applied in [source:tags/3.5.2/wp-includes/theme.php#L780 wp-includes/theme.php] on lines 780 and 785.
{{{ theme_mod_$name}}} filter is added in [source:tags/3.5.2/wp-includes/class-wp-customize-setting.php#L72 wp-includes/class-wp-customize-setting.php] on line 72." nessworthy 6
32653 Improve Linkback Presentation dev-feedback Pings/Trackbacks normal normal Awaiting Review enhancement new 2015-06-15T12:04:10Z 2017-02-14T20:31:27Z "The current default presentation for linkbacks(pingbacks and trackbacks) does not encourage their use. Currently,the presentation looks something like this:
[…] A pingback example. […]
People have complained that the utility of linkbacks has been overshadowed by their use as a vector for DDOS attacks and spam.
The recent improvements to Press This show we can do better in presentation of linked content.
The pingback specification is a bit vague in terms of presentation suggestions, stating: ""Bob's blog also retrieves other data required from the content of Alice's new post, such as the page title, an extract of the page content surrounding the link to Bob's post, any attributes indicating which language the page is in, and so forth.""
I am proposing by default we switch to a default with improved readability and more consistent with the user experience on other websites.
For example, a basic linkback should display the author/site name, the name of the linked content, etc, rather than the summary, and that information stored as comment meta. This would look more like a citation.
That display could be (optionally) progressively enhanced by other factors, for example, page markup such as MicroFormats, Microdata, or OpenGraph(popularized by Facebook), etc to add a better experience if the linked site supports it.
The basic point is that linkbacks are unusable by people in their current form, but the idea of letting people know you linked to their content is a good one. It encourages conversation and interaction. I think we just need to make it a better experience. Otherwise, everyone just turns it off.
I'm aware the above could be done by a plugin(and may start as a 'feature' plugin), however I think the basic structure of this change belongs in core." dshanske 5
37454 get_avatar_data() delivers different url for scheme=https and is_ssl() needs-unit-tests Users 4.3 normal normal Awaiting Review defect (bug) new 2016-07-25T08:09:46Z 2017-02-15T07:56:44Z "get_avatar_data() has an option to set the scheme. If https is used, an image URL is returned which is different to the one which is returned in case delivery is conducted via https without the scheme parameter. I think it would be better to serve the same gravatar url for https pages and explicit https-scheme requests.
Regarding performance and depending on the infrastructure, it could also be benefical to drop https://%d.gravatar.com completely and serve all requests to gravatar independent of the page's protocol via https://secure.gravatar.com/ to benefit from HTTP/2 (http and https://%d.gravatar.com requests are served via HTTP/1.1 whereas https://secure.gravatar.com/ allows multiplexing via HTTP/2)." neoxx 4
38173 Meta query creates unecessary multiple left joins when using the same meta key Query 3.2 normal normal Future Release enhancement new 2016-09-27T16:36:27Z 2017-02-17T03:06:46Z "If you specify the below as a meta_query wordpress creates an extremely bad and inefficient query, it seems to unnecessarily create a left join for each array even though they have the same key when it could use the same join
{{{#!php
'OR',
array(
'key' => 'product',
'value' => '1',
'compare' => '!='
),
array(
'key' => 'product',
'compare' => 'NOT EXISTS'
)
);
}}}
{{{
SELECT SQL_CALC_FOUND_ROWS vvc_posts.ID FROM vvc_posts LEFT JOIN vvc_postmeta ON ( vvc_posts.ID = vvc_postmeta.post_id ) LEFT JOIN vvc_postmeta AS mt1 ON (vvc_posts.ID = mt1.post_id AND mt1.meta_key = 'product' ) WHERE 1=1 AND (
( vvc_postmeta.meta_key = 'product' AND CAST(vvc_postmeta.meta_value AS CHAR) != '1' )
OR
mt1.post_id IS NULL
) AND vvc_posts.post_type = 'news' AND ((vvc_posts.post_status = 'publish')) GROUP BY vvc_posts.ID ORDER BY vvc_posts.post_date DESC LIMIT 0, 10
}}}
On my site this query takes a huge 6.640 sec, more than 80% of the page's ttfb.
{{{
SELECT SQL_CALC_FOUND_ROWS vvc_posts.ID
FROM vvc_posts
LEFT JOIN vvc_postmeta ON ( vvc_posts.ID = vvc_postmeta.post_id && vvc_postmeta.meta_key = 'product')
WHERE 1=1
AND (CAST(vvc_postmeta.meta_value AS CHAR) != '1' OR vvc_postmeta.post_id IS NULL )
AND vvc_posts.post_type = 'news'
GROUP BY vvc_posts.ID
ORDER BY vvc_posts.post_date
}}}
whereas an optimized version takes only 0.969 sec." neonWired 3
39914 'orderby' date results differs depend on 'post_status' Query 4.7.2 normal normal Awaiting Review defect (bug) new 2017-02-19T09:40:43Z 2017-02-19T09:40:43Z "Default 'orderby' date return different order results depend on 'post_status' passed in WP_Query.
For example, 3 published posts with identical post_date (if bulk publish, import or other stuff) in WP_Query will return different posts order on page, which depend on 'post_status' = 'publish' or 'any'.
Since all posts are published, setting 'post_status' should not affect default orderby date results. Most notably this difference in edit.php?post_type= in comparison with front-end WP_Query results.
Is it normal behaviour of such querying results?" esemlabel
24879 Sourcemaps should be provided for use with minified javascript libraries dev-feedback Build/Test Tools normal normal Future Release enhancement new 2013-07-29T15:49:33Z 2017-02-19T10:42:42Z "Sourcemaps make it possible to debug minified files.
Supported in Chrome:
https://developers.google.com/chrome-developer-tools/docs/javascript-debugging#source-maps
Landing in Firefox in v23:
https://wiki.mozilla.org/DevTools/Features/SourceMap
When this feature is enabled, the Chrome console currently shows a 404 when the script specifies a sourcemap file and it isn't found." jblz 12
30274 "wp-login.php Logo Image Use ""img"" tag rather than CSS background" Login and Registration 4.0 normal normal Awaiting Review enhancement reopened 2014-11-06T14:49:32Z 2017-02-19T17:53:28Z "The fact that the logo image that displays on www.website.com/wp-login.php is a background image rather than an ""img src"" html tag often makes it problematic, because support for resizing CSS backgrounds is more complicated than using ""img src"" tags. For example, it seems like every time I use a plugin or try to alter the logo image on wp-login.php it in some way, it takes some combination of the perfect image size and css hacks to make it responsive.
Conversely, if it was an ""img"" tag, I could just apply ""width:100%; height:auto;"" or something like that.
So, in conclusion, I propose switching from a background image to an ""img src"" html tag.
[[Image(http://i.imgur.com/C5qwZtq.png)]]" themightymo 3
39811 Bug maybe_unserialize() broke mysql data. Database 4.7.2 normal normal Awaiting Review defect (bug) new 2017-02-08T13:53:06Z 2017-02-20T06:34:57Z "I have an issue what is realated to maybe_unserialize() function.
Example:
When someone made MySQL export or backup and you want that data to import in database again, widgets, some plugin setup, some template setup, particular WPBakery Visual Composer or similar visual editors lost it's setup.
To get all work well I change function into this:
{{{
function maybe_unserialize( $original ) {
if ( is_serialized( $original ) ) {
$fixed = preg_replace_callback(
'!(?<=^|;)s:(\d+)(?=:""(.*?)"";(?:}|a:|s:|b:|i:|o:|N;))!s',
'serialize_fix_callback',
$original );
return @unserialize( $fixed );
}
return $original;
}
function serialize_fix_callback($match) { return 's:' . strlen($match[2]); }
}}}
-wit this code I get all data to work well but I'm unable to install new plugins or made any kind of update.
What to do with it, how to fix this problem and can you made some update to this code or add some solution to not happen this problems?
Here is also my StackOwerflow question: http://wordpress.stackexchange.com/q/255591/82023
Thanks!" ivijanstefan 4
39472 Code tag still parses embeds Embeds 4.7 normal normal Awaiting Review defect (bug) new 2017-01-04T20:55:45Z 2017-02-20T10:57:26Z "WordPress 4.7.
The 'code' block in the WordPress editor behaves incorrectly.
For example:
{{{
Test Test
Another
www.google.com
http://www.google.com
https://www.youtube.com/watch?v=JHw6LTuMkNQ
Foxtrot Uniform Charlie Kilo
}}}
Displays as normal code in the wp-admin, but once published it creates an embed on the page. This should not happen and the contents of the code block should be displayed without embeds." rmens 5
29948 Use contextual controls (active_callback) API for conditionally-displayed core contextual controls Customize 4.0 lowest normal Future Release enhancement new 2014-10-13T18:18:28Z 2017-02-20T18:33:50Z See `wp-admin/js/customize-controls.js`, near the bottom. Rather than doing some unstructured JS to show/hide controls based on the values of other settings, this should use custom callbacks for the active_callback argument when adding the control (in php). celloexpressions 9
36462 Updating or publishing a (custom) post that hasn't loaded completely closes comments dev-feedback Posts, Post Types 4.4.2 normal normal Future Release defect (bug) new 2016-04-10T14:44:28Z 2017-02-20T22:19:57Z "I am using a custom post type, but I assume this happens to the default post type as well. On the edit post screen (post.php?post=1&action=edit) I have several custom meta boxes. Some of these have content that is quite slow to load. You can reproduce this behavior by adding a sleep(5) statement somewhere in the code that loads the content for a custom meta box. Now in the document's DOM, the sidebar is loaded before the custom meta boxes. This introduces a situation where it is possible to update or publish a post before all the meta boxes have completely loaded. In most cases this isn't a huge problem - I myself check to see if the $_POST fields are there and if they are not then I don't act upon them.
Unfortunately this does not happen for the included ""Discussion"" meta box. This box has a checkbox named ""Allow Comments"" which gets switched off when you update the post before this meta box has loaded into the DOM.
The culprit is the code in wp-admin/includes/post.php on line 133 in the _wp_translate_postdata() function:
{{{#!php
if (!isset( $post_data['comment_status'] ))
$post_data['comment_status'] = 'closed';
}}}
Since the comment_status field is not in the post data, it is automatically assumed it needs to be closed.
Of course there are two ""workarounds"" I can think of that would improve my current situation. One is for me to optimize the meta boxes so the page loads quicker, the other is to move the Discussion metabox to the top of the page, so it loads first.
Is this expected behavior? I would much rather see the current comment_status be preserved - don't touch it if I didn't intend to modify it. Of course there might be a reason for this implementation that I don't know about.
This post data is then finally presented to wp_insert_post in wp-includes/post.php which actually updates the post's comment_status to become closed, which finally answers my boss' question why comments kept getting disabled automatically." SeBsZ 15
24995 Importer does not check to see if DOM is available Import 3.6 normal normal WordPress.org defect (bug) new 2013-08-08T20:55:34Z 2017-02-21T09:11:58Z "I have a WordPress network with many blogs. I exported a few posts from one blog (export file attached with some details sanitized). I then imported the posts into another blog.
Not only does the import probably do nothing, the '''/''blogname''/wp-admin/import.php''' page stops rendering after:
{{{
Import WordPress
}}}
That is, if you do a view source on the page, the above '''h2''' element is the last thing you see.
Expected behavior: execution does not stop mid-page, and if there is an error, it is displayed for logged-in administrative users.
I am logged in as a network administrator." novasource 5
33053 download_url() includes query string in temporary filenames has-patch Upgrade/Install 4.2.1 normal normal Future Release defect (bug) new 2015-07-20T21:07:47Z 2017-02-21T09:19:34Z "When installing a theme update, I encountered an error traced back to the update file exceeding the Windows path\filename length limit. It turned out the root cause of this was that the download URL contained a query string with access key information, which was also being included in the filename of the temporary file created by $tmpfname = wp_tempnam($url); in the download_url() function.
In my case, for example, download URL was:
https://s3.amazonaws.com/marketplace-downloads.envato.com/files/140862862/enfold.zip?AWSAccessKeyId=*******************&Expires=1437422162&Signature=*****************-***********%3D&response-content-disposition=attachment%3B+filename%3Dthemeforest-4519990-enfold-responsive-multipurpose-theme-wordpress_theme.zip
which resulted in a temporary file called:
enfold.zipAWSAccessKeyId*******************Expires1437422162Signature*****************-***********-3Dresponse-content-dispositionattachment-3B-filename-3Dthemeforest-4519990-enfold-responsive-multipurpose-theme-wordpress_theme.tmp
rather than the expected enfold.zip
I would suggest that downloaded files should probably exclude any query string from the URL as the simplest method of resolving this issue, but will leave that to development team." Hyperopic 10
39929 "Improve ability to customize ""nav"" links below login form." Login and Registration 4.8 normal normal Awaiting Review enhancement new 2017-02-21T19:07:00Z 2017-02-21T19:11:52Z "In adding a Single Sign-On option to a site, I ran into trouble while trying to add a link to the login form. Flexibility could be introduced by adding an action inside each `p.nav` in `wp-login.php`, but there's already duplicated code. So, I've added a function that builds the output and allows plugins to add new links or change the existing links.
Thanks for considering my request." dcavins
39754 `_post_format_get_terms()` can overwrite names of terms in other taxonomies has-patch Taxonomy normal normal Awaiting Review defect (bug) new 2017-02-01T03:19:35Z 2017-02-22T02:05:56Z "`_post_format_get_terms()` filters `'get_terms'` and includes this logic:
{{{
if ( in_array( 'post_format', (array) $taxonomies ) ) {
if ( isset( $args['fields'] ) && 'names' == $args['fields'] ) {
foreach ( $terms as $order => $name ) {
$terms[$order] = get_post_format_string( str_replace( 'post-format-', '', $name ) );
}
}
...
}}}
which affects the names of all `$terms`, as long as `post_format` was one of the queried taxonomies. Many terms are replaced with an empty string from `get_post_format_string()`.
The attached patch includes a test to demonstrate the issue, and it would check before changing a value that the value begins with `post-format-` and that `get_post_format_string()` returns a name for the value.
" dlh
23279 Add templates to style registration, signup, activation, login and password reset pages has-patch Login and Registration normal normal Awaiting Review enhancement new 2013-01-23T22:20:58Z 2017-02-22T09:54:26Z "As [https://irclogs.wordpress.org/chanlog.php?channel=wordpress-dev&day=2013-01-23&sort=asc#m539267 discussed in IRC], the ability to override the various user-related pages would be a great ability for themes to have. At the moment, it's pretty tedious to style these and there's very little control over the content of the page (some for good reason, others not so much).
Related: #1155, #3123, #22139" rmccue 13
34466 wp_register_form, wp_lost_password_form function dev-feedback Login and Registration 4.4 normal normal Awaiting Review feature request new 2015-10-27T14:48:11Z 2017-02-22T09:57:13Z "Hi,
We currently have a wp_login_form function to display the login form, however, we do not currently have an opposite for the registration form.
'''Should look into:'''
wp_register_form
wp_lost_password_form
" atomicjack 5
39942 Restored Post may steal slug to published Post Posts, Post Types 4.7.2 normal normal Awaiting Review defect (bug) new 2017-02-22T15:37:10Z 2017-02-22T15:49:15Z "Steps to reproduce:
1. Create a Post 1 with title ""Post"",
2. Assign the slug 'post' to Post 1,
3. Publish Post 1,
4. Unpublish Post 1 by setting it as 'Draft', then Update,
5. After Update, Trash Post 1,
6. Repeat 1-5 for Post 2,
7. Create a Post 3 with title ""Post"",
8. Assign the slug 'post' to Post 3,
9. Publish Post 3,
10. Now restore Post 2,
11. Open/Reload the edit screen for Post 3,
12. It'll show 'post-2' as slug,
13. Saving/Updating Post 3 will change the slug from 'post' to 'post-2'.
Probably the following functions participate in the issue:
* `wp_add_trashed_suffix_to_post_name_for_post`, which is checking for
{{{
if ( '__trashed' === substr( $post->post_name, -9 ) ) {
}}}
while Post 2 has `post__trashed-2` as post name
* `wp_unique_post_slug`, which is not checking the uniqueness of the slug if the post is `draft`." ziodave 1
37646 Make wp-settings.php a series of do_actions() dev-feedback Bootstrap/Load normal normal Awaiting Review enhancement new 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
39939 A Contributor cannot preview their own post if it's scheduled needs-unit-tests Posts, Post Types normal minor Awaiting Review defect (bug) new 2017-02-22T12:52:02Z 2017-02-23T05:36:25Z "Steps to reproduce:
1. A Contributor writes a post and submits it for review. At this point they can preview their post.
2. An Editor or Administrator approves the post and schedules it for publication at a later date.
3. The contributor viewing the Posts listing table can no longer preview their post.
Previously: #33694
" johnbillion 3
39969 add filter to end of post_categories_meta_box() Taxonomy normal normal Awaiting Review enhancement new 2017-02-26T17:09:46Z 2017-02-26T17:09:46Z "I have a need to output short ""instructional"" text below taxonomy metaboxes on the post{,-new}.php screens. This text is to help admin users decide when/if to assign terms to a given (custom) post.
I currently do something similar in the featured image metabox, i.e., I hook into 'admin_post_thumbnail_html' (which is applied at the end of _wp_post_thumbnail_html()) to add text to tell admin users what image dimensions the featured image for a particular (custom) post should have.
Thus, it would be helpful if there were a similar filter applied at the end of post_categories_meta_box().
My current workaround is to add a
{{{#!php
'meta_box_cb' => 'custom_tax_meta_box'
}}}
to the args when I register the taxonomy, and my custom_tax_meta_box() function just calls post_categories_meta_box() and then adds the text. Of course, this works, but is not very elegant and not very ""future proof"" (i.e., if WP core changes how taxonomy metaboxes are created them this workaround will break)." pbiron
39695 Add preload headers in redirects needs-unit-tests HTTP API normal normal Awaiting Review enhancement new 2017-01-25T22:09:45Z 2017-02-27T09:32:49Z "http2 push enabled servers can immediately push linked assets or documents for the client. This saves clients from one round-trip.
At the moment at least Cloudflare and h2o web server can http2 server push assets defined in Link headers: https://www.w3.org/TR/preload/#server-push-http-2.
I believe more will follow in the next few years. WordPress powers so much of the web that it's our responsibility to try to make it as fast as we can.
This is usually quite hard topic because we have no idea what is stored in the client browser cache.
We can start implementing the Link preload headers in internal redirects because in that situation it's quite obvious that the client wants to make that request as their next one.
This is what I want to achieve
{{{
$ curl --http2 -i https://wordpress.test/wp-admin/
HTTP/2 302
...
Location: https://laextra.test/wp-login.php?redirect_to=https%3A%2F%2Flaextra.test%2Fwp-admin%2F&reauth=1
Link: ; rel=preload; as=document
}}}
I created a patch which adds these headers automatically in '''wp_redirect()''' function.
Links about http2 server push:
https://blog.cloudflare.com/announcing-support-for-http-2-server-push-2/
https://h2o.examp1e.net/configure/http2_directives.html" onnimonni 4
31682 reg_passmail message on login.php needs filter has-patch Login and Registration 4.1.1 normal normal Awaiting Review enhancement new 2015-03-18T13:22:43Z 2017-03-01T00:30:22Z "reg passwords is hardcoded to the login.php:
{{{
}}}
So it appears even if you do some other ways of delivering passwords. E.g. i want to first check the registrating person and then send them the password, not immediately, so i need to change this message that would reflect this, and the only option now is to filter global gettext, what is not optimal.
Proposed solution - replace this row with
{{{
}}}
" thomask 4
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
40012 Only add_metadata if no matching value dev-feedback Options, Meta APIs 2.9 normal normal Awaiting Review defect (bug) new 2017-03-02T02:04:43Z 2017-03-02T02:58:15Z "`add_metadata()` has a `$unique` parameter, but it only looks for a unique `meta_key` for the given object ID. I have a need to add meta-data with the same `meta_key` but different values, and only if that `meta_value` isn't already present with the same key.
To do this now, requires:
* Getting all meta-data for the ID by `meta_key`
* Checking those array-values for my value
* Bailing if it's already present, or...
* Proceeding with `$unique` set to `false`
It'd be lovely if `add_metadata()` either:
* Accepted strings like `key`, `value` for the `$unique` parameter, to switch up the check
* Added a second parameter for unique value in addition to a unique key" johnjamesjacoby 1
40014 & converted to '#038 Themes 4.7.2 normal normal Awaiting Review defect (bug) new 2017-03-02T08:41:46Z 2017-03-03T05:01:54Z "Hi guys,
This is a follow-up to #30831.
Using WordPress v4.7.2 . With paginate_links() and setting the 'add_args' to an an array of values breaks the url. Specifically replaces '''&''' with '''#038''';
Sample code below:
{{{
echo paginate_links(
array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $query_object->max_num_pages,
'format' => 'page/%#%',
'add_args' => array( 'project' => 1 /* or whatever the project number is*/ ),
) );
}}}
The code above replaces '''&''' with '''#038''';
Sample result: http://domain.com/?page_id=1&paged=2#038project=1
" fervillz 3
40045 "HTML code entered using ""Text"" mode gets garbled" Formatting 4.7.2 normal normal Awaiting Review defect (bug) new 2017-03-06T14:44:10Z 2017-03-06T14:44:10Z "Entered this:
{{{
link some other content. Be careful with using the right quotes here!"" title=""Some title"">
}}}
converted to this:
{{{
link some other content. Be careful with using the right quotes here!” title=”Some title”>
}}}
Is it really so difficult to leave the content of the ""Text"" mode as it is?
Just to remind you, that W3C says ""attributes on HTML elements may have any string value"".
" s0what
40060 Define ADMIN_COOKIE_PATH cause unreachable /wp-login.php Users 4.7.3 normal normal Awaiting Review defect (bug) new 2017-03-07T13:11:56Z 2017-03-07T14:44:52Z "If user is logged in and tries to open /wp-login.php page, he never couldn't do this if ADMIN_COOKIE_PATH is set to root '/' (is equal to COOKIEPATH). Instead, the redirect to /wp-admin/ will occur. Even more, many of function during page load will run twice.
In a long route of functions, the last one is wp_parse_auth_cookie(), which return false to many functions called from, which cause ""true"" check in wp-login.php on line 814, where unneeded redirect happens.
{{{#!php
` container of menus. The main purpose of this proposal is to enable the ability to add schema.org structured data attributes to the menu, but this could be extended to other purposes as well given its flexibility.
Currently, `wp_nav_menu()` offers 3 container-related arguments: `$container`, `$container_id`, and `$container_class`. Using these arguments, we can create container elements such as
{{{