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
{{{