__group__ ticket summary owner component _version priority severity milestone type _status workflow _created modified _description _reporter
Has Patch / Needs Testing 27606 """Add Existing User"" form does not preserve input in case of an error" Users low minor Awaiting Review defect (bug) new has-patch 2014-03-31T10:43:42Z 2019-05-03T10:39:43Z "Background: #27006
In single site, ""Add New User"" form preserves entered values in case of an error.
In Multisite, ""Add New User"" form preserves the values, but ""Add Existing User"" does not.
In network admin, ""Add New User"" form does not preserve the values." SergeyBiryukov
Needs Dev / Bug Wrangler Feedback 35310 """Add Media"" dropzone shouldn't take up the entire modal window" Upload 4.0 normal normal Awaiting Review defect (bug) new dev-feedback 2016-01-04T21:41:44Z 2019-05-15T21:20:58Z "As @ocean90 mentioned in #28851,
> the whole `[""Add Media"" modal window]` is a dropzone for the uploader.
For example, if you drag and drop an item over the left, gray column where the ""Create Gallery"", ""Create Audio Playlist"" and ""Featured Image"" links are, the ""Add Media"" window will show that the dropzone covers this area as well.
Since I'm attempting to write a plugin to add an extra plupload drag-and-drop instance in the existing ""Add Media"" modal window, my custom dropzone will not take effect because WP's dropzone has precedence.
Would it be possible to limit WP's uploader dropzone to the ""Insert Media > Upload Files"" tab only?" r-a-y
Needs Patch 55875 """Add New"" plugin should be ""Add Plugin"" because it now allows updating an existing plugin as well" Plugins normal normal Awaiting Review enhancement new 2022-05-30T11:44:32Z 2022-05-30T16:29:19Z """Add New"" plugin should be called something else than ""new"" because it allows updating an existing plugin as well.
Sometimes I'm using the ""Add New"" plugin to upload an update of a plugin that is already installed. But it does not make sense because I don't add a new plugin. Instead, I update it.
So the sidebar and the top button should be renamed to something else.
Maybe ""Add plugin"" would be more accurate." _smartik_
Has Patch / Needs Testing 48553 """Admin Color Scheme"" should not be saved before hitting the ""Update Profile"" button in profile page" Users 3.8 normal normal Awaiting Review defect (bug) assigned has-patch 2019-11-10T11:29:13Z 2023-05-26T09:54:34Z "On the profile page (''/wp-admin/profile.php'') when you click on a color scheme, it instantly updates (via AJAX) in the user meta and changes the color.
I think this should not happen. User meta should be updated only after they hit the ""Update Profile"" button. It's OK to show the color (preview) as soon as they click an option, but storing the value in the database should be updated along with other info after clicking the save button.
[[Image(https://s.nimbusweb.me/attachment/3516583/0ug6f4ro5vxd2e91ggdm/alEdMIiK5cCc8V2P/screenshot-core.wp-2019.11.10-17_25_46.png)]]" mukto90
Has Patch / Needs Testing 56599 """All"" view not selected for all relevant views for custom post type" Posts, Post Types 4.2 normal trivial Awaiting Review defect (bug) new has-patch 2022-09-19T10:58:34Z 2022-09-19T14:24:10Z When the screen options get saved, the parameter `mode=list` gets appended to the URL. For the posts table, the “All” view gets the `.current` HTML class, since `\WP_Posts_List_Table::is_base_request()` returns `true`. For all other post types—including pages—it returns `false`. alpipego
Has Patch / Needs Testing 53229 """Alt Text"" label misaligned in French" audrasjb* Gallery normal normal Future Release defect (bug) accepted has-patch 2021-05-19T07:50:05Z 2021-06-08T17:11:12Z "Hello,
In French, in a post edit when adding an image or a gallery block, the ""Alt Text"" label is misaligned with the input field.
We can see this behaviour on Ubuntu20.04/Firefox88.0.1 and Chrome 90.0.4430.212.
**Step to reproduce**
- be sure to have French as language in your profile
- in a post add an ""Image block""
- click on ""mediathèque"" to add an existing image
- Check an image and see the sidebar
" sebastienserre
Needs Early Attention 51852 """any"" value in ""post_type"" param in ""get_posts"" by default ignore attachments" Query normal normal Future Release defect (bug) assigned needs-unit-tests 2020-11-23T09:45:48Z 2021-02-18T00:24:52Z "When creating a simple call to get all posts for all post types by default to the parameters are adding `post_status` parameter with `publish` value.
{{{#!php
'any']);
}}}
To the `WP_Query` instance are supplied followed arguments:
{{{#!php
5
""category"" => 0
""orderby"" => ""date""
""order"" => ""DESC""
""include"" => []
""exclude"" => []
""meta_key"" => """"
""meta_value"" => """"
""post_type"" => ""any""
""suppress_filters"" => true
""post_status"" => ""publish""
""posts_per_page"" => 5
""ignore_sticky_posts"" => true
""no_found_rows"" => true
]
}}}
All attachment posts have `inherit` post status so by default are ignored in this query.
To actually get all post types the first function parameters should be expended by `post_status` parameter with `['publish', 'inherit']` value.
{{{#!php
'any', 'post_status' => ['publish', 'inherit']]);
}}}" dam6pl
Needs Docs or Unit Tests 40340 """Attach to existing content"" modal shows posts and pages of other users" Role/Capability normal normal Awaiting Review defect (bug) reopened needs-unit-tests 2017-04-02T15:19:15Z 2017-08-03T17:54:02Z "From the Media library, a user can attach media (through the Attach link) that were uploaded by himself only. The first image shows the Attach links appearing for certain media only.
In the same way, the ""Attach to existing content"" should also list only those posts/pages for which the user has the permissions to attach.
Instead it lists all posts (including private) and pages of all users, and then, upon selection, gives the message ""Sorry, you are not allowed to edit this post.""
" menakas
Needs Patch 57365 """Attempt Block Recovery"" functionality broken for buttons ""Convert to.."" click" Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2022-12-21T12:16:37Z 2022-12-30T05:56:34Z "When i edit the HTML manually and click away, the ""Attempt Block Recovery"" error appears.
== BUG:
**Clicking on the ""''Convert to HTML''"" or ""''Convert to Blocks''"" does nothing.**
[[Image(https://i.imgur.com/fzLTpaH.png)]]
The button ""Attempt Block Recovery"" itself works and reverts the action to the previous state before I edited the html.
I also screenshotted the red text from the console:
[[Image(https://i.imgur.com/1l0PjIv.png)]]" mikulabc
Has Patch / Needs Testing 54213 """Authorize Application"" should reject handling an already existing app name" Application Passwords 5.6 normal normal Awaiting Review defect (bug) new has-patch 2021-10-03T12:04:29Z 2021-10-08T13:21:56Z "or give a better message than the current (5.8) ""Each application name should be unique."".
Should probably point the user to its profile page with a message saying something like ""if you want to get new password to use for *appname* you should first revoke the current one""
If the app name is not existing at all as a url parameter it should probably just display some error on the page which indicates that an appname is missing and the that it is probably bug in the application that sent the user to the URL." mark-k
Needs Patch 50989 """Blog pages show at most"" setting not working when 2 posts are made sticky" Posts, Post Types normal normal Awaiting Review defect (bug) new close 2020-08-13T17:34:04Z 2023-01-16T16:50:49Z "Version: WordPress 5.5
Site: https://wesleytech.com
In WordPress Settings -> Reading, for the setting ""Blog pages show at most"".
When a single blog post is set to sticky using the ""stick to the top of the blog"" setting on the blog post edit page, the ""Blog pages show at most"" setting is respected.
However, when TWO blog posts are set as sticky, then the ""Blog pages show at most"" setting is NOT respected, and an extra post gets shown on the home page.
For example, if your ""Blog pages show at most"" setting is set to 6, and you then make 2 blog posts sticky, then your home page will show 7 posts. " wesleytech
Needs Patch 19859 """Bulk Edit"" Missing The Ability To Edit Tags" oglekler Quick/Bulk Edit normal normal Future Release enhancement reopened 2012-01-20T02:56:24Z 2024-02-12T09:21:55Z "Though I can add, remove and edit ""categories,"" I cannot do such actions to ""tags"" inside of /wp-admin/edit.php
So basically, I'm interested in a ""bulk tag editing"" GUI for the WordPress admin.
===
I was hoping to find out the status of this feature (planned, not planned, etc) but it appears that no one has spoken about this feature on the WordPress Trac.
Is there any interest in adding this feature? And could the respondent please provide any details on why or why not?
Thank you for your time." ademos
Needs Reporter Feedback / Steps To Reproduce 44615 """Cannot use object of type stdClass as array"" breaking update-core.php" Upgrade/Install 4.9.7 normal normal Awaiting Review defect (bug) new reporter-feedback 2018-07-20T04:22:46Z 2021-06-07T09:59:02Z "I get this error when I go to the update core page:\\
\\
{{{Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /home/industryawards/public_html/wp-admin/update-core.php:258 Stack trace: #0 /home/industryawards/public_html/wp-admin/update-core.php(625): list_plugin_updates() #1 {main} thrown in /home/industryawards/public_html/wp-admin/update-core.php on line 258}}}
\\
\\
It displays above the plugin list, and no plugins are displayed in the list. The page actually breaks there. I'll attach a screenshot if I can.\\
\\
However, the error does not happen on the 'Update Available' plugin page tab which can still be used to update plugins. industryawards.co.nz/wp-admin/plugins.php?plugin_status=upgrade\\
\\
The plugins installed and activated are:\\
\\
BackupBuddy – 8.2.8.1\\
Beaver Builder Plugin (Pro Version) – 2.1.3.5\\
Beaver Themer – 1.1.2.1\\
PowerPack for Beaver Builder – 2.6.6.1\\
Better Search Replace – 1.3.2\\
Blackhole for Bad Bots – 1.9.2\\
Breadcrumb NavXT – 6.1.0\\
Duplicate Page – 2.6\\
Easy Theme and Plugin Upgrades – 2.0.0\\
Google Analytics Dashboard for WP (GADWP) – 5.3.5\\
GP Conditional Pricing – 1.2.36\\
Gravity Perks – 2.0.9\\
Gravity Forms – 2.3.3\\
GravityView – 2.0.14\\
Invisible reCaptcha – 1.2.1\\
Lazy Load for Videos – 2.4.0\\
Recent Posts Widget With Thumbnails – 6.2\\
WC Custom Add to Cart labels – 1.1\\
WooCommerce Stripe Gateway – 4.1.8\\
WooCommerce - Gravity Forms Product Add-Ons – 3.3.3\\
WooCommerce PDF Invoices – 4.1.9\\
WooCommerce – 3.4.3\\
Wordfence Security – 7.1.9\\
WordPress Importer – 0.6.4\\
Yoast SEO Premium – 5.8\\
\\
Everything is at it's latest version with the exception of GravityView, but I've eliminated that as a suspect by disabling it." adamthomsonnz
Needs Patch 27743 """Change role to..."" omitted from bottom of users table shown to single site admin in multi-site" Users 2.7 normal normal defect (bug) assigned 2014-04-09T21:01:48Z 2019-06-05T06:39:53Z "For more background, see multisite forum discussion [https://wordpress.org/support/topic/how-can-a-multisite-site-admin-change-a-users-role?replies=6#post-5437492] where the mod thought this might be worth a ticket.
Browsing the current sources for trunk, I can see that the problem is present at line 206: [https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/class-wp-users-list-table.php#L206]
My personal feeling is that even for filtering controls, having them present in the line of controls at the top of tables but absent in the line at the bottom of the tables is not a good idea, but I'll concede that it's debatable.
However, I believe that for this case of showing the ""Change role to..."" bulk action at the top of the users shown to single-site admins in a multi-site network, but omitting it from the bottom of the table, where it clearly ought to be present beside the Bulk Actions control, is a bug.
The attached screenshot shows the problem (using 3.7.1). Deleting these lines from the trunk version of {{{class-wp-users-list-table.php}}} fixes the problem (tested in 3.7.1).
" sootsnoot
Needs Dev / Bug Wrangler Feedback 59670 """Content-Transfer-Encoding"" might break when sending multiple mails" Mail 6.3.2 normal normal Awaiting Review defect (bug) new dev-feedback 2023-10-18T14:08:53Z 2023-10-31T16:27:51Z "When sending multiple non-multipart mails via `wp_mail` the internal encoding used by `PhpMailer` doesn't get resetted which may result in mails getting the wrong `Content-Transfer-Encoding`.
{{{
wp_mail('someone@somehost.tld', '8bit', '8büt'); // correctly delivered as 8bit
wp_mail('someone@somehost.tld', '7bit', '7bit'); // correctly delivered as 7bit but breaks the following mails
wp_mail('someone@somehost.tld', '8bit', '8büt'); // incorrectly delivered as 7bit
}}}
Internally PhpMailer starts with 8bit encoding in `$phpMailer->Encoding`. When sending a mail it might get downgraded/changed to 7bit in case the message doesn't contain any 8bit chars (which is the case in the first mail).
However because of WP reusing the same PhpMailer instance the encoding doesn't get resetted to 8bit back again and therefore stays at 7bit.
The easiest solution would be resetting the encoding manually or using an appropriate PhpMailer method if existing.
Another solution would be for PhpMailer to be able to upgrade the encoding back to 8bit again when detecting 8bit chars.
IMHO this depends on whether one PhpMailer instance is intended to be used for multiple mails or not.
See:
- Default encoding of PhpMailer: https://build.trac.wordpress.org/browser/tags/6.3.2/wp-includes/PHPMailer/PHPMailer.php#L92
- Setting `Content-Transfer-Encoding` in case its not 7bit: https://build.trac.wordpress.org/browser/tags/6.3.2/wp-includes/PHPMailer/PHPMailer.php#L2744
- Downgrading of Encoding to 7bit: https://build.trac.wordpress.org/browser/tags/6.3.2/wp-includes/PHPMailer/PHPMailer.php#L2840" pluspol
Needs Patch 60082 """Copied"" tooltip should be hidden when another attachment URL is copied (in list mode)" Media 6.0 normal normal Awaiting Review defect (bug) new 2023-12-15T13:05:00Z 2024-03-12T15:39:27Z "In the media list view, clicking the ""Copy URL"" action link displays previously clicked ""Copy URL"". The previously clicked row showing ""Copied!"" when hover the media again.
=== Environment
- WordPress: 6.4.2
- PHP: 8.2.0
- Server: Apache/2.4.54 (Unix) OpenSSL/1.0.2u PHP/8.2.0 mod_wsgi/3.5 Python/2.7.18 mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_perl/2.0.11 Perl/v5.30.1
- Database: mysqli (Server: 5.7.39 / Client: 8.2.0)
- Browser: Firefox 119.0 (macOS)
- Theme: Twenty Twenty-Four 1.0
- MU-Plugins: None activated
- Plugins:
* WordPress Beta Tester 3.5.5
=== Steps to Reproduce
1. Go to media library
2. Click ""Copy URL"" of one of the media.
3. Click ""Copy URL"" of another media.
4. The previously clicked row showing ""Copied!"" when hover the media again.
=== Expected Results
1. The previously ""Copied!"" tooltip should be close after clicking the next one.
=== Actual Results
1. The previously clicked row showing ""Copied!"" when hover the media again." jayadevankbh
Needs Patch 59074 """Deprecated"" error since update to 6.3" General 6.3 normal normal Awaiting Review defect (bug) new 2023-08-11T13:35:02Z 2023-12-14T21:10:45Z "Ever since the last update of WP, there are loads of ""Deprecated"" errors on very single page on my company's website.
I have already tried deactivating plugins one by one but could not find a solution so far. Has anybody else had this problem as well?
Website: https://www.kalea.com/
Here are the error codes:
{{{
Deprecated: Function wp_global_styles_render_svg_filters is deprecated since version 6.3.0 with no alternative available. in /home/ploi/kalea.com/httpdocs/wp-includes/functions.php on line 5463
Deprecated: Function wp_get_global_styles_svg_filters is deprecated since version 6.3.0 with no alternative available. in /home/ploi/kalea.com/httpdocs/wp-includes/functions.php on line 5463
Deprecated: Function wp_get_duotone_filter_svg is deprecated since version 6.3.0 with no alternative available. in /home/ploi/kalea.com/httpdocs/wp-includes/functions.php on line 5463
Deprecated: Function get_filter_svg_from_preset is deprecated since version 6.3.0 with no alternative available. in /home/ploi/kalea.com/httpdocs/wp-includes/functions.php on line 5463
Deprecated: Function get_filter_id_from_preset is deprecated since version 6.3.0 with no alternative available. in /home/ploi/kalea.com/httpdocs/wp-includes/functions.php on line 5463
}}}" maxomatico
Needs Patch 44027 """Enable full-height editor"" setting only saved on page refresh" Users normal minor Awaiting Review defect (bug) new 2018-05-09T18:49:19Z 2019-01-17T00:56:38Z "Testing the ""Enable full-height editor and distraction-free functionality."" setting on my personal site as well as a customer's site:
* logged in: setting is enabled (Add New Post, Screen Options)
* disable and logout immediately (without changing anything or refreshing page)
* logged back in: still enabled
* disable, refresh page and then logout
* logged back in: now disabled
* enable and logout immediately
* logged back in: still disabled
* enable, refreshed page and logged out
* logged back in: now enabled
I also verified this using `wp user meta get 1 rug3dk50q_user-settings` while performing the same actions. Watching the Chrome network tab, it appears that clicking the checkbox for this setting is not triggering an admin-ajax call to update this user setting, whereas the Boxes and Layout screen options do trigger the call.
It does appear to correctly update the `wp-settings-1` cookie correctly when the setting is toggled.
" GunGeekATX
Has Patch / Needs Testing 16478 """Get Shortlink"" button disappears if you edit the permalink" Editor 3.0 normal normal Future Release defect (bug) reviewing has-patch 2011-02-07T08:44:02Z 2021-09-22T13:25:54Z "Go to edit a post and change the permalink. The ""Get Shortlink"" button is overwritten by the AJAX response. I think it's a simple case of moving where the shortlink is added, see patch." solarissmoke
Needs Patch 18701 """hierarchical"" argument for get_pages() does nothing" DrewAPicture* Posts, Post Types 3.0 normal normal defect (bug) accepted 2011-09-19T06:48:32Z 2019-06-04T20:42:19Z "The `hierarchical` argument for `get_pages()` is never actually used. It is in an `if` statement, but one that requires `child_of` to also be set:
{{{
if ( $child_of || $hierarchical )
$pages = & get_page_children($child_of, $pages);
}}}
Props Vynce Montgomery for pointing this out to me." Viper007Bond
Needs Dev / Bug Wrangler Feedback 56686 """internal"" post status practical usage?" Posts, Post Types normal normal Awaiting Review defect (bug) new dev-feedback 2022-09-29T08:19:08Z 2022-10-04T17:01:02Z "https://developer.wordpress.org/reference/functions/register_post_status/
has an ""internal"" param, however I couldn't find what practical use/meaning this has. What happens if we set ""internal"" true in practical terms when doing a WP_Query? Does it affect anything else besides WP_Query?
It seems this is legacy and without any practical use? (maybe deprecate and remove?)" malthert
Needs Dev / Bug Wrangler Feedback 38276 """Is thing public/accessible"" API" Role/Capability 4.7 normal normal Awaiting Review feature request new dev-feedback 2016-10-10T16:13:16Z 2017-09-23T20:45:44Z "'''Question:''' How do you check if a non-logged-in user is allowed to view something in WordPress? (Posts specifically, and also in general?)
'''Answer:''' Within WordPress there is no API for checking whether a non-logged-in user is allowed to view a post or other object.
== Capabilities API
There is the role and capabilities API, but only logged-in users will have a role or any capabilities. A visitor to the site who is not logged-in will thus not have even the `read` capability. `WP_User::has_cap( 'read' )`, and thus `current_user_can( 'read' )`, will return `false`, while `user_can()` will peremptorily return `false` if the user ID passed does not exist before even calling `WP_User::has_cap()`.
''Thus, while we can check if a logged-in/existing user can view a post via the capability API, we cannot use it to check whether a non-logged-in user can view the post.''
== Underlying Philosophy
The underlying philosophy that is used within WordPress is that objects such as posts are public by default. '''Everything is accessible to everyone unless specifically restricted.'''
This is, in a word, a blacklist-style approach. The object is public, unless it blacklists/restricts itself in some way.
When an object is public, the capabilities API, and the concept of capabilities in general, no longer applies as to whether that object is accessible. The object is accessible by default.
The question becomes “is this post publicly visible?” rather than “does this user have the ability to view this post?""
The capabilities API, on the other hand, operates on a whitelist philosophy—nobody is allowed to do anything (and thus nobody has any capabilities), unless specifically granted permission.
These two different approaches make sense in different scenarios. However, it starts to get sticky when the two intersect. And that is exactly what happens with the `read` capability: we're now checking the whitelist to check a blacklist. And when the user isn't logged in, the capability isn't in the whitelist, which causes everything to get blacklisted—they don't have the capabilities to read any posts at all.
== Why doesn't this explode?
Obviously, WordPress has gotten along quite well up to this point without everything flying apart though. Non-logged-in users ''can'' view public posts—otherwise you and I wouldn't be able to see about 25% of the web right now. So yes, of course non-logged-in users do get to view those posts. They are public, they aren't restricted. But they get to view them despite not having the `read` capability.
In other words, usually this doesn't cause any issues. That's why nobody has brought it up before (that I know of—probably they have). Why? Because usually posts are retrieved for display via `WP_Query`, and it bypasses the `read` capability. Instead, it works from the philosophy of public by default discussed above, and internally handles all of the logic for checking if the post is publicly visible or restricted from the current user. So, any time that you are using `WP_Query`, you will automatically get all of the posts, minus those that were restricted in some way (blacklisting, as it were).
== Okay, so then who cares?
Good question. After all, shouldn't we always be using `WP_Query` to retrieve posts?
=== People not using `WP_Query`
Well, yes. But, what if we aren't retrieving a post? What if we have a plugin where we are storing some information that relates to a post in a separate table, and we want to display that information publicly on the site. But because that information references the post in a potentially identifying manner, we can't show it to users who can't view the post. I'd say that's a perfectly valid use-case.
So how would we check if the current user can see the information for a particular post? I know what you were about to suggest: ""Use `current_user_can()`!"" But yeah, now you know why that won't work: that's a capability check, and non-logged-in users will not have any capabilities. So non-logged-in users wouldn't be able to view the information for any of the posts, even those that they can view publicly on the site.
Now, you might say, ""Just check if the post is public."" Yes, and thanks for telling my how to do that. Should I use the `just_check_if_the_post_is_public()` function? :-) That's what this ticket is about.
=== People adding accessibility restrictions
Another reason to care about this is that it means that when somebody wants to restrict the visibility of posts they have to hook-in multiple places: in the capabilities API for the `read` cap, and for the post retrieval logic in `WP_Query`.
That is not the main focus of this ticket, and it may not really be practical to solve at all. However, I'm not sure how many developers realize that they need to consider both of these things.
== So what do you propose?
In this ticket, I'm '''not''' really suggesting that we:
- throw out the `read` capability. (Back-compat nightmare.)
- modify the caps API to handle non-logged-in users differently. (Fundamental change in an API, probably not practical.)
I ''am'' suggesting that there is a need for a new API, to formally provide a means of determining whether a post (or any object) is publicly accessible. This API would include a function like `is_thing_accessible( $thing_id )` (and perhaps `is_thing_accessible_for_user( $user_id, $thing_id )`).
== Is that ''really'' needed?
Now, I know that some might suggest that this really isn't needed, because you can just check if the post has a public status. That is true in theory, but in practice things are more complex.
First, let me reiterate that what I'm proposing isn't just for posts, it is for any objects, of which posts are one, comments another, users another.
Secondly, using posts as an example,a plugin can add extra restrictions that cause posts with otherwise public stati to not be publicly accessible to all users. So it isn't a viable solution to just duplicate each core check that would normally apply to posts—others might be added by plugins.
For capability checks I don't have to worry about that. I just check for a particular cap and anything that affects that cap will just hook into `map_meta_cap` and I never have to know. But if the user is logged out I can't use the capability API, and suddenly the onus is on me to know about every possible restriction that could ever apply to a post, in order to check if the post is public. I should be able to check `is_thing_accessible( $post_id )` and just forget it, same as I can do with `current_user_can( 'read_post', $post_id )`.
We are talking about non-logged-in users here after all. If a restriction isn't taken into account, it doesn't just mean that some less privileged users can view the object, it means that everybody can.
----
I [https://wordpress.slack.com/archives/core/p1476106801005182 brought this up] and [https://wordpress.slack.com/archives/core/p1476107282005192 discussed it with @johnbillion] in the `#core` channel on Slack before creating this (admittedly long-winded) ticket.
" jdgrimes
Has Patch / Needs Testing 46017 """Mine"" comment count isn't updated when replying to or moderating a comment." Comments 5.1 normal normal Future Release defect (bug) new has-patch 2019-01-17T02:59:49Z 2019-01-24T04:40:53Z "To reproduce:
- Visit `/wp-admin/edit-comments.php`.
- Click Reply on a comment.
- Type some text in the comment, click Reply.
The ""All"" and ""Approved"" counts update as expected, but the ""Mine"" count doesn't." pento
Needs Patch 58518 """More info about performance optimization"" links in Site Health go to 404 error on WordPress.org" Site Health normal normal Awaiting Review defect (bug) new 2023-06-12T14:03:56Z 2023-06-13T06:47:37Z "On the Site Health page, at least under the ""Enqueued scripts"" improvements, the links for ""More info about performance optimization"" go to a broken link on wordpress.org (https://wordpress.org/support/article/optimization/). According to archive.org, it looks like that link was live as late as May 16, 2023. Not sure if there is now a new page. The only optimization page is https://wordpress.org/documentation/article/search-engine-optimization/." jeffgreendesign
Needs Patch 25819 """ms_files_rewriting"" site option is not created during upgrades" Upgrade/Install 3.5 normal normal defect (bug) new 2013-11-04T20:04:24Z 2019-06-04T21:09:27Z "While testing an upgrade for a MU era multisite install from 3.1.4 -> 3.6.1 I discovered that the ""ms_files_rewriting"" site option was not being created.
The attempt in `upgrade_network()`...
{{{
if ( $wp_current_db_version < 21823 )
update_site_option( 'ms_files_rewriting', '1' );
}
}}}
... is failing. I believe this has gone unnoticed since the default value is forced to `true` in wp-includes/ms-default-filters.php:
{{{
// If the network upgrade hasn't run yet, assume ms-files.php rewriting is used.
add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
}}}
" gradyetc
Needs Patch 60010 """Navigation Block"" Markup: missing?" Menus 6.4 normal normal Awaiting Review defect (bug) new 2023-12-04T20:43:38Z 2024-02-15T16:21:03Z "I'm wondering if there is a reason why the text of menu items **without** children is wrapped with a as follows..
{{{
Menu Item Text
}}}
..but if an item has a child, then this span is ""missing"".
Wouldn't it be more consistent to wrap the text of menu items equally?" ekesto
Has Patch / Needs Testing 48261 """noopener noreferrer"" mis-parses links with ""rel="" parameters" Formatting 5.2.3 normal normal Awaiting Review defect (bug) new has-patch 2019-10-08T21:39:20Z 2019-10-09T22:55:14Z "If a link contains a url parameter named ""rel"" and the rel=""noopener noreferrer"" attribute is triggered (ie. the link has the target=""_blank"" attribute as well) then it botches the parsing, and you wind up with a link that looks like:
{{{
Anchor Text
}}}
" mvandemar
Has Patch / Needs Testing 10219 """Older Entries"" and ""Newer Entries"" links are wrong when entries displayed in ascending order" Posts, Post Types normal normal enhancement new has-patch 2009-06-19T16:41:02Z 2019-06-04T20:40:45Z "I added ""?order=ASC"" to a tag URL I was sending out to some people, because I wanted them to view a set of blog postings in ascending chronological order, and I noticed that the ""Older Entries"" and ""Newer Entries"" links at the bottom of the page were reversed.
I fixed this with the attached changes to the default theme. I don't know if this is the ""right"" fix, but it worked for me, and if it isn't quite wrong, perhaps at least it will give a more experienced WordPress developer than I an idea for how to fix it properly.
" jikamens
Needs Patch 59340 """Open in new tab"" checkbox in hyperlink entry doesn't save" Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-09-13T16:37:54Z 2023-09-29T15:48:45Z "When interfacing, the ""Open in new tab"" selection sometimes doesn't work. Rapidly entering the information on a slow internet connection should reproduce the bug.
It's probably tied to network information, where the ""Save"" button SHOULD send a delayed network transmission of the update. Instead, it drops the information.
This compounds as a worse problem with the new UI information, since it requires several clicks to confirm each hyperlink's present status.
The workaround is to wait 2-3 seconds after selecting the checkbox but before selecting ""Save"".
This most heavily affects power users and users with slow internet connections." phileossopher
Needs Dev / Bug Wrangler Feedback 35796 """Permalink Settings"" admin page is largely blog/post specific" Permalinks normal normal enhancement new dev-feedback 2016-02-10T17:44:29Z 2020-02-06T19:41:12Z "The current verbiage in `options-permalink.php` is a little cryptic, and in a world pull of custom post types (including Pages) it's actually a bit confusing:
Here's the current verbiage:
> '''Permalink Settings'''
>
> WordPress offers you the ability to create a custom URL structure for your permalinks and archives. Custom URL structures can improve the aesthetics, usability, and forward-compatibility of your links. A number of tags are available, and here are some examples to get you started.
I'd like to see these changed to something more like:
> '''Post Link Settings'''
>
> WordPress offers the ability to customize the URL structure of your post and post-archive permalinks, improving the aesthetics, usability, and forward-compatibility. Several tags are available, and we've included the most popular configurations below:
In addition, I'd like to propose we include the permalink tags in the dropdown Help section, rather than link off to WordPress.org.
All of this would offer several UX improvements:
* Keep the user on the same page rather than link off and open a new browser tab for WordPress.org
* It better expresses to the end-user that this settings page is largely dedicated to posts, implying that pages and custom post types get pretty URLs largely as a consequence
* Now that `unregister_post_type()` is in trunk, we should start thinking about trimming the options down to ""Pretty"" and ""Unpretty"" if the ""Posts"" type isn't even registered anymore. (There are likely to be many other considerations in this circumstance, but it's relevant here.)
* It's a friendly nod to developers to remind them that this page won't help them with their custom post types, taxonomies, or rewrite rules for other purposes." johnjamesjacoby
Changes Requested 54970 """Please update WordPress"" link on incompatible theme tile on the ""Add Themes"" view is not clickable" audrasjb Themes 5.5 normal normal Future Release defect (bug) reviewing changes-requested 2022-01-28T12:09:46Z 2023-07-06T17:24:16Z "Interaction is prevented by the ""Details & Preview"" overlay. Trying to click the ""Please update WordPress"" link on the warning ribbon opens the theme preview.
This happened when trying to install Twenty Twenty-Two theme on WordPress 5.8.
It is possible to update WordPress with any other available flow like the ""WordPress 5.9 is available! Please update now"" message on top of the page." tomasza8c
Needs Dev / Bug Wrangler Feedback 60693 """Previously approved comment"" for logged out users bug" Comments 6.4.3 normal normal Awaiting Review defect (bug) new dev-feedback 2024-03-05T14:30:41Z 2024-03-07T17:00:03Z "When ""Comment author must have a previously approved comment"" is checked in the discussion settings, comments made by registered users who are logged out, go to moderation every time. The check comment function looks for previous comments under their user id but if they have only commented while logged out, no id is recorded. This bug has caused our users and our team major frustration. Can someone please address? Thanks!" jmorti
Needs Patch 49355 """Publishing failed. Error message: Could not update post in the database"" caused by encoding" Posts, Post Types 5.3.2 normal normal Awaiting Review defect (bug) new 2020-02-04T01:30:57Z 2023-07-02T14:44:32Z "I have some text that I am copying into the title of a post. I get the following error:
""Publishing failed. Error message: Could not update post in the database""
The text is:
𝐀 𝐖𝐢𝐧 𝐟𝐨𝐫 𝐚 𝐉𝐮𝐬𝐭𝐢𝐜𝐞 𝐂𝐞𝐧𝐭𝐫𝐞 𝐂𝐥𝐢𝐞𝐧𝐭!
I am having trouble understanding what encoding this text is.
Why is this failing to save to the database? My database is set to utf8mb4. Why WordPress is choking on it?" 1000camels
Needs Patch 54716 """Remember me"" label changed to ""Keep me logged in""" Login and Registration 2.0 normal trivial Awaiting Review enhancement new 2021-12-31T22:36:46Z 2022-02-20T22:29:05Z "I think the label ""Remember me"" to be misleading.
The default ""Remember Me"" checkbox behaviour is:
>If checked your browser keeps you logged in for 14 days.
>If unchecked you're logged out when you quit the browser, or after two days.
The checkbox function is not to remember the user identity, but to keep the authentication valid.
The task of remembering the user credentials is on the browser.
I think that ""Keep me logged in"" would be clearer and more consistent with other services around the internet.
""Keep me logged in on this computer"" is even more accurate.
There are variation on the wording, like [Keep me|Stay][logged in|signed in].
Twenty years ago I would just have suggested to add a tooltip (title) with an explanation, but it has already been established in #24766 that title attributes are to be phased out.
Amazon uses a full blown popup to explain the function of the checkbox.
[[Image(amazon-signin.png)]]
Although a totally minor issue I would like to have a discussion about this.
" Cyberchicken
Needs Patch 54438 """Required fields are marked"" shows up without required fields being present" Media 5.8.2 normal minor Awaiting Review enhancement new 2021-11-13T16:33:06Z 2023-11-21T14:14:32Z "A support ticket for my Image Source Control (ISC) plugin made me investigate this.
https://wordpress.org/support/topic/erforderliche-felder-sind-mit-markiert/
Whenever a custom field is added to the attachment edit page, the notice ""Required fields are marked"" is displayed by WordPress core.
ISC uses the `attachment_fields_to_edit` filter for that.
I looked into `wp-admin/includes/media.php`. The code responsible for showing the message is
{{{
if ( $item ) {
$item = '
';
}
}}}
The foreach loop that goes through all fields could easily check if any field has the ""required"" attribute and rather use that as a condition to show the message instead of `$item`." webzunft
Needs Reporter Feedback / Steps To Reproduce 52568 """response is not a valid JSON response"" when uploading certain PDF" Media 5.6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-02-18T12:45:56Z 2023-03-15T16:01:36Z "When uploading certain PDF files -either through the media library or through the post editor- an error message appears saying ""response is not a valid JSON response"". In appearance, it seems like the file was not successfully uploaded, but once the page is refreshed the file appears in the library as if no error had occurred.
I have tried these problematic PDF files on several WordPress installations -all of them running WP 5.6.1- and the wrongful behavior happens in all of them. However, not all PDF files cause this issue. It seems to be some sort of error caused by these problematic PDFs in combination with WordPress.
I have tried to revalidate these PDFs using Acrobat, but the error keeps appearing. This makes me believe that there's no problem with bad PDF formatting." borjagq
Needs Early Attention 48222 """Show password"" button overlaps with the LastPass icon" Login and Registration 5.3 normal normal Future Release enhancement assigned has-patch 2019-10-05T14:29:48Z 2022-09-15T20:51:47Z "The new ""Show password"" button added to login screen in [46256] overlaps with the LastPass extension icon. Tested with Google Chrome 77 on Windows 10.
This only happens on Log In and Reset Password screens. The Edit User screen is OK, as the button there is separate from the input." SergeyBiryukov
Needs Patch 60549 """Site Upload Quota Space"" should indicate network default and possibly site's current usage" Networks and Sites normal normal Awaiting Review enhancement new 2024-02-15T14:52:41Z 2024-02-15T14:52:41Z "In Multisite, there is a network default site quota which can be overridden on individual sites by visiting /wp-admin/network/site-settings.php?id=BLOG_ID
It says:
Site Upload Space Quota (input box here) MB (Leave blank for network default).
It would be incredibly helpful to have easy access to two other pieces of information here.
1) The network default.
This could be shown as: (Leave blank for network default: 2500 MB)
2) The site's current use.
This could be shown as. (Leave blank for network default: 2500 MB) (Space currently used: 100 MB)
Each of these pieces of information would really help in editing sites to change the storage quota. I'd suggest the network default is more important, and if only one were to be added, that should be it." MadtownLems
Has Patch / Needs Testing 30170 """Start Date""/""End Date"" are confusing in the exporter" Export normal normal Awaiting Review enhancement new has-patch 2014-10-29T11:40:47Z 2017-07-22T04:03:42Z "I've been running a lot of post exports lately, and for some reason I'm constantly screwing up ""Start Date"" vs ""End Date"" when selecting an export range.
The ''right'' way is Start Date == Older Date, and End Date == Newer Date. But, because my memory is pathetic (at best), I constantly forget this and end up downloading empty exports.
I think there are a few potential fixes:
1) Change the wording, to something like ""Start Date (Older)"" and ""End Date (Newer)"", or different text entirely
2) Use some JS to alert the user/prevent the download if they chose a more recent month as the Start Date
3) Try to guess the user's intentions and download the export even if they screw up the order
(Or perhaps some combination of the three.)" chrisvanpatten
Needs Patch 48954 """Sticky"" post state shows even for non-Post post-types" Posts, Post Types normal normal Awaiting Review defect (bug) new 2019-12-12T21:54:48Z 2019-12-12T22:15:24Z "Reported in the support forums: https://wordpress.org/support/topic/sticky-tag-remains/
When users of my Post Type Switcher plugin switch a Post into a Page, that page still shows as ""Sticky"" in the Pages list-table UI, even though Pages do not support the ""sticky"" functionality." johnjamesjacoby
Needs Patch 59436 """The response is not a valid JSON response""" General 6.3.1 normal normal Awaiting Review defect (bug) new 2023-09-24T16:50:18Z 2023-09-24T16:50:18Z "After update to WordPress 6.3.1 I am not able to edit posts. I needed to install plug in which make on my page only classic editor. After trying to post/edit something without it, I get info: ""“Updating failed. The response is not a valid JSON response”.
I checked WordPress forum, and I am not the only one with the issue after 6.3.1 installation. I also perform troubleshooting describes in many articles like: tirn off all plug-ins or edit .htaccess file.
" egzaltowana
Needs Patch 58287 """The server cannot process the image"" error, set_imagick_time_limit() and WP 6.2" Media 6.2 normal major Awaiting Review defect (bug) new 2023-05-10T15:51:53Z 2023-05-10T19:54:45Z "On many of our sites, managed on different machines and with different configurations, with version 6.2 of WordPress, when uploading images we often get this error:
""The server cannot process the image. This can happen if the server is busy or does not have enough resources to complete the task. Uploading a smaller image may help. Suggested maximum size is 2560 pixels.""
Nothing appears in the `debug.log`, but analyzing the issue -which had never occurred before WordPress 6.2- we realized that it seems to be due to the new `set_imagick_time_limit()` method of the `WP_Image_Editor_Imagick` class.
Maybe the value `0.8 * $php_timeout` is that a bit too conservative? Maybe it could be made hookable?" delitestudio
Has Patch / Needs Testing 36823 """TypeError: wp.updates is undefined"" when installing a plugin" Upgrade/Install 4.9.2 normal normal Future Release defect (bug) reopened has-patch 2016-05-12T10:15:11Z 2018-01-22T14:04:40Z "When I install a new plugin that has a translation pack for my current language (which is not `en_US`), I get the following error:
> TypeError: wp.updates is undefined
> `if ( wp && wp.updates.decrementCount ) {`
Patch will follow soonish." tfrommen
Needs Reporter Feedback / Steps To Reproduce 48272 """Undefined offset"" warning in add_query_arg()" General 5.2.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-10-10T11:09:26Z 2022-02-01T05:48:25Z "Hi,
When I am login admin side then getting notice. because I have enabled error_log true in the config file.
===========Notice error=============
{{{
Notice: Undefined offset: 1 in /var/www/html/wpfdemo/wp-includes/functions.php on line 964
}}}
============Solution===============
{{{
$qs[ $args[0] ] = $args[1];
}}}
To
{{{
$qs[ $args[0] ] = $args[0];
}}}
=================================
Please let us know if this helps.
Thanks" sumitsingh
Has Patch / Needs Testing 13103 """Unknown character set"" during install into database reports successful install." barrykooij Database 3.0 normal normal defect (bug) assigned has-patch 2010-04-24T15:10:23Z 2019-06-04T19:21:49Z "During editing of the wp-config.php, I changed
{{{
define('DB_CHARSET', 'utf8');
}}}
to
{{{
define('DB_CHARSET', 'utf8_general_ci');
}}}
Which I thought was valid.
After clicking ""Install Wordpress"" I got a page full of:
{{{
WordPress database error: [Unknown character set: 'utf8_general_ci']
}}}
And at the bottom, ""Success"" with a login prompt, but nothing was actually created in the database.
I think WP shouldn't report a successful install if the user happened to accidentally change this value (or another) during install as it would cause confusion.
I used a svn checked out version of WP on 2010-04-24 on my local computer using PHP5 and apache2, but I think this is really a problem since 2.6 (or when the current install system was implemented)." MECU
Needs Patch 39474 """Update plugins"" button also updates pending translations without express consent, while there's a specific button for that (Update translations)." Plugins 4.7 normal normal Awaiting Review enhancement new 2017-01-04T22:04:19Z 2023-07-09T16:12:47Z "Usability problem in wp-admin/update-core.php
If there are at least one pending plugin update AND one pending translation update, the label of the button ""Update Plugins"" should be ""Update Plugins AND Translations"", because that's exactly what it does: it updates BOTH the plugins AND the translations.
Otherwise, if the label ""Update plugins"" is to remain as it is now, then it should ONLY update the plugins (and not also the translations, because there's already a specific button for that action).
(Windows 7 Pro 64bit + Firefox 50.1.0 64bit + WordPress 4.7.0)
" Carlos ASR Dias
Needs Patch 55120 """wp_editor_settings"" filter not working for the Classic block TinyMCE settings" TinyMCE normal normal Awaiting Review defect (bug) new 2022-02-08T21:49:55Z 2022-02-08T21:49:55Z "This filter was added in the #45348 to Classic Block but I think it's not working. To run this filter we need to use return value of `array_merge` [https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/script-loader.php#L517/ reference]. I double check if there is an any version of PHP could support this usage but I couldn't found: https://3v4l.org/v4YBT
You can find below my must use plugin for test, it doesn't effect any option of Classic block.
{{{#!php
'bold,italic'
];
return $settings;
}
}}}
I hope I don't miss anything 🙂
" oztaser
Needs Dev / Bug Wrangler Feedback 30644 """wpautop"" Enhancements" Formatting normal normal enhancement new dev-feedback 2014-12-09T18:35:14Z 2020-08-11T00:30:02Z "Since there are several problems (e.g. invalid markup) with the current ""wpautop"" function I tried to come up with a new approach. The text gets parsed and a little analyzed in order to generate valid and comprehensible markup.
The script is not really compatible with the current implementation since whitespaces and line breaks are added differently. Performance is slightly worse, depending on the input (normal text vs. heavy html) of course. Comments in the code are still missing.
I think Shortcodes should also be considered in this markup generation process so the additional use of ""shortcode_unautop"" could be avoided.
Please let me know what you think and test it if you like.
== Sample
=== Input
{{{
paragraph
paragraph testitalic
normal
paragraph
paragraph
paragraph
line
paragraph
paragraph
paragraph
Honor
this whitespace
paragraph
paragraph
paragraph
text
}}}
=== Output
{{{
paragraph
paragraph test
italic
normal
paragraph
paragraph
paragraph
line
paragraph
paragraph
paragraph
Honor
this whitespace
paragraph
paragraph
paragraph
text
}}}" stefanrz
Has Patch / Needs Testing 35858 """wpmu_welcome_notification"" has a filter post-processing routines in wrong place" Login and Registration 3.0 normal normal enhancement new has-patch 2016-02-18T08:54:11Z 2019-06-04T20:22:37Z """wpmu_welcome_notification"" has a filter post-processing routines in wrong place which renders the filter mostly useless. Nearly identical ""wpmu_welcome_user_notification"" has it done corectly.
Diff/Patch attached.
" mwillberg
Needs Patch 36897 """You do not have sufficient permissions to access this page."" should have relevant links to go back to dashboard." Plugins 4.6 normal normal enhancement new 2016-05-21T03:45:54Z 2019-06-04T20:59:15Z "The ""You do not have sufficient permissions to access this page."" screen has no information where to go after seeing this error on screen.
It would be better if there is a link to go back to the dashboard or maybe even better if the admin bar is visible on the screen with this error message." Nikschavan
Needs Patch 49504 """Your homepage displays"" setting missing without explanation" Administration 5.3.2 normal minor Awaiting Review enhancement new 2020-02-24T20:05:25Z 2021-01-19T13:50:45Z "When there are no available pages, ie. no pages exist or there are only pages marked as private, the ""Your homepage displays"" setting isn't showing up at all in Settings >> Reading. There's no explanation why it's not available currently.
Possible fix: provide a short piece of info on why this option isn't currently available." paulpela
Needs Patch 34957 #a11y-focus: Standardizing the handling of :focus and :hover adamsoucie Administration 4.4 normal normal Future Release enhancement assigned 2015-12-09T23:47:22Z 2019-05-06T16:06:43Z "After the discussion of [ticket:34876] with @mor10 and @michaelarestad, we've realized there are two main cases:
* Times when the :focus and :hover states can be the same
* Times when they need to be different
In order to tackle the general :focus problem we'll need to:
1. Define which elements fall into which category
1. Establish a standard implementation for each category
1. Implement the new standards
This could quickly evolve into a larger project, but we want to start resolve the :focus/:hover to make sure that gets addressed. This ticket is intended to start the conversation and put the attention on :focus.
This is an important a11y issue, as [ticket:34876] shows there are still elements that lack a :focus state completely. As part of this plan, we'll identify those elements lacking :focus and address both the lack of :focus and the correct implementation at the same time." adamsoucie
Needs Patch 28747 $.wpColorPicker cannot duplicate elements Widgets 3.9.1 normal normal defect (bug) new 2014-07-04T09:26:00Z 2019-06-05T06:40:07Z "I can't `clone()` wrap `div` when I use with `wpColorPicker`. If I just running the `$.wpColorPicker` method again, I see two instance about this.
What I can to do for duplicate?" KingYes
Needs Patch 43531 $content_width and Add Media (+ twentyseverteen?) Media 4.9.4 normal normal Awaiting Review defect (bug) new 2018-03-12T20:07:38Z 2019-01-21T22:04:59Z "I apologize in advance if this isn't a bug. However, I couldn't seem to find any documentation on the expected behavior (e.g., there's nothing on the codex page for the image_size_names_choose filter). None the less, it certainly feels odd / awkward.
When adding an image (to a post / page), the size setting select (Add Media > Attachment Display Setting > Size) doesn't feel quite right. I understand the relationship between (global) $content_width and this setting. That is, the tag's width= is forced / maxed to the $content_width (if the image is wider than the $content_width).
I see this happening for the size = large images, as well as any image sizes I've added via add_image_size() that are too wide. However, it (i.e., the forced max width=) doesn't happen to the size Medium when the Medium width is set wider than the content width.
Perhaps this is intentional?
Theme was twentyseventeen. Unfortunately, I've haven't had time to try to reproduce this on another theme. The size Medium was set to 800 x 800.
I'd like to suggest the Settings > Media page display the current $content_width, as well as explain a bit, as well as link to a deeper explanation. As it is, a user can select a theme, blindly set the image sizes (not realizing who they actually map to the theme), and then be hit with the experience (?) described above, AND have no idea why.
Truth be told, it took me too long to figure this out. Somehow I've managed to avoid $content_width. Too many custom themes maybe? :)
Or am I just missing something about the intent of what otherwise feels like a sloppy experience?
I hope this helps. TIA
" ChiefAlchemist
Has Patch / Needs Testing 43695 $depth and $args are switched when using custom callback in wp_list_comments() Comments 4.9.5 normal normal Awaiting Review defect (bug) new has-patch 2018-04-05T05:55:31Z 2021-11-26T11:12:27Z "For the custom function I am using the [latest function from walker](https://github.com/WordPress/WordPress/blob/master/wp-includes/class-walker-comment.php#L343) as a base.
When you use custom callback in comments.php template:
{{{#!php
'comment',
'format' => 'html5',
'style' => 'ol',
'short_ping' => true,
];
// Use our custom callback if it's available
if( function_exists( 'custom_render_comment' ) ){
$args['format'] = 'custom';
$args['callback'] = 'custom_render_comment';
}
wp_list_comments( $args );
}}}
The arguments that get passed to custom_render_comment function are switched:
{{{#!php
NULL [""max_depth""]=> string(1) ""5"" [""style""]=> string(2) ""ol"" [""callback""]=> string(21) ""faeiv2_render_comment"" [""end-callback""]=> NULL [""type""]=> string(7) ""comment"" [""page""]=> int(0) [""per_page""]=> int(0) [""avatar_size""]=> int(32) [""reverse_top_level""]=> bool(false) [""reverse_children""]=> string(0) """" [""format""]=> string(6) ""faeiv2"" [""short_ping""]=> bool(true) [""echo""]=> bool(true) [""has_children""]=> bool(true) }
}
var_dump($args):
int(1)
*/
}
}}}
The result is this error:
{{{
Warning: array_merge(): Argument #1 is not an array in [...]/wp-content/themes/mytheme/inc/render-comment.php on line 56
}}}
I haven't found any mention of switching arguments in the WordPressCodex.
The fix is easy, just switch those variables, but I think it should be addressed somewhere in the documentation." vincurekf
Needs Dev / Bug Wrangler Feedback 41544 $id_or_email parameter in get_avatar filter needs to be more concrete Users normal normal Awaiting Review enhancement new dev-feedback 2017-08-03T10:16:03Z 2017-10-14T14:06:35Z "In the {{{get_avatar}}} and {{{pre_get_avatar}}} filters there is a parameter {{{$id_or_email}}} which documented as:
> The Gravatar to retrieve. Accepts a user_id, gravatar md5 hash, user email, WP_User object, WP_Post object, or WP_Comment object.
There might be anything, but how to get user from it?
So, in filter callback function, developer have to check all of these types to determine the actual user identifier.
Like here https://core.trac.wordpress.org/browser/tags/4.8.1/src/wp-includes/link-template.php?rev=41211#L3923-L3965
Would be much more better to have more concrete value type in {{{$id_or_email}}} parameter (for example user ID) passed to {{{get_avatar}}} and {{{pre_get_avatar}}} filters. Really.
" dikiy_forester
Needs Docs or Unit Tests 36406 $network_wide is unreliable Plugins 3.0 normal critical Future Release defect (bug) reviewing needs-unit-tests 2016-04-03T09:20:33Z 2019-07-09T10:20:39Z "This issue may be related to ticket #31104
Scenario:
In a WordPress network an admin decides a plugin must not be network activated. Only a per site or even a site specific activation shall be allowed.
Idea:
Conditional check during plugin activation and die with an error message if $network_wide is true.
Result:
Plugin does not get activated but the custom error message is not displayed
Assume the following function run during activation (it is simplified and the real activation sequence does not have echos!)
{{{
function test_activation_hook( $network_wide ) {
echo '1 | ';
// exit( 1 );
if ( is_multisite() ) {
echo '2: | ';
// exit( 2 );
if ( $network_wide ) {
echo '3: | ';
// exit( 3 );
} else {
echo '4: | ';
// exit( 4 );
}
} else {
echo '5: | ';
// exit( 5 );
}
echo '6: | ';
exit( 6 );
}
}}}
If you exit after if(is_multisite) the message displayed will be '1 | 2 |'
If you exit after if($network_wide) during a networkwide activation the message displayed is '1 | 2 | 4 | 6' instead of '1 | 2| 3|'
Exiting at 4, 5, or 6 will display '1 | 2| 4|', '1 | 2| 5|' and '1 | 2| 6|' as expected.
After many hours of debuging I realized the function (the action filter 'activate_' . $plugin) gets executed 3 times if you exit it early. And only the first call has the argument $network_wide set to true if it is an network_wide activation.
If you like to exit at 3, that is you do not want a network activation, the flow is therefore as follows:
- The first run (click on network activate) has $network_wide set to true and will exit at 3
- the second run (no idea why) has $network_wide set to false and will pass 1 | 2 | 4 | 6
- the third run (no idea why) has $network_wide set to false and will pass 1 | 2 | 4 | 6
Imho calling the activation function (or the code) three times in case you exit it (better say terminate because you cant end a plugin installiton clean) is wrong at all. However if this is by design then $network_wide must be reliably set to true if it originally was.
" mensmaximus
Needs Patch 52651 $option_group argument in settings_fields() function is misdescribed Options, Meta APIs 2.7 normal normal Awaiting Review defect (bug) new 2021-02-25T10:59:49Z 2021-02-28T10:52:51Z "The settings_fields() function in plugin.php takes a single argument described as $option_group. However this argument is then used to populate the 'option_page' hidden element.
The docBlock param description says ""This should match the group name used in register_setting()"" but if you follow this advice, your option group will not be included in $allowed_settings and you will get an error.
{{{#!php
/**
* Output nonce, action, and option_page fields for a settings page.
*
* @since 2.7.0
*
* @param string $option_group A settings group name. This should match the group name
* used in register_setting().
*/
function settings_fields( $option_group ) {
echo """";
echo '';
wp_nonce_field( ""$option_group-options"" );
}
}}}
It seems a common fix for this on the internet is to pass the 'option_page' value instead.
https://wordpress.stackexchange.com/questions/376785/wordpress-error-options-page-setting-not-found-in-the-allowed-options-list
if the argument name could be changed to $option_group and the docBlock updated accordingly, that would correct the issue without breaking existing implementations
{{{#!php
"";
echo '';
wp_nonce_field( ""$option_page-options"" );
}
}}}
" pe01b6
Needs Reporter Feedback / Steps To Reproduce 29161 $pagenow variable not set in admin pages on Windows systems Administration 3.9.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2014-08-09T10:59:05Z 2021-12-27T21:25:33Z "In the most recent version of WordPress:
`vars.php`, starting line 25:
{{{#!php
if ( is_network_admin() )
preg_match('#/wp-admin/network/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
elseif ( is_user_admin() )
preg_match('#/wp-admin/user/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
else
preg_match('#/wp-admin/?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
}}}
The ""/"" character does not match the ""\"" character found as the directory separator on Windows systems. This causes various issues throughout the entirety of the administration pages, notably that ""add_meta_box"" ceases to function correctly.
Would recommend it be changed to something like this:
{{{#!php
$ds = preg_quote(DIRECTORY_SEPARATOR);
if ( is_network_admin() )
preg_match('#'.$ds.'wp-admin'.$ds.'network'.$ds.'?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
elseif ( is_user_admin() )
preg_match('#'.$ds.'wp-admin'.$ds.'user'.$ds.'?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
else
preg_match('#'.$ds.'wp-admin'.$ds.'?(.*?)$#i', $_SERVER['PHP_SELF'], $self_matches);
}}}
Thanks for the wonderful software!" Craxic
Needs Docs or Unit Tests 47279 $post object passed to clean_post_cache action can contain outdated values Posts, Post Types normal normal Future Release defect (bug) new needs-unit-tests 2019-05-15T14:28:45Z 2019-05-15T21:57:01Z "This occurs when publishing or deleting a post.
In the `clean_post_cache()` function, `get_post( $post )` is called and assigned to `$post`.
At that moment, the value of the `$post` parameter `post_status` = `draft` if publishing, `publish` if deleting the post.
There is then a call to `wp_cache_delete( $post->ID, 'post_meta' );`, which correctly updates the value of post_status, if you perform another `get_post()` right after.
But, the `$post` object is then passed to the action `clean_post_cache`, with the outdated values instead.
So if someone hooks a function on `clean_post_cache`, and uses the `$post` object passed, it's going to receive incorrect values compared to what would be expected. But if you perform a `get_post()` inside that function, you will get the correct values.
I only tested this with the `post_status` parameter, but this might be affecting others too.
I would expect that the `$post` object passed to the `clean_post_cache` action contains up-to-date values." tabrisrp
Needs Patch 31331 $post->post_date displays current time if status is pending or draft Posts, Post Types 4.1 normal normal defect (bug) new 2015-02-14T17:11:45Z 2019-06-04T20:49:15Z "Create a new post and save as a draft or save as 'pending'. On single.php enter these lines of code:
{{{
global $post;
var_dump(date(""Y-m-d H:i:s"")); //current time
var_dump($post);
}}}
If you wait about 5 minutes to refresh the front-end page after saving the post as draft/pending, you'll notice that the current time and the $post->post_date are the same (accounting for timezone differences). Further more, if you refresh the page after another 5 minutes, the $post->post_date will change. However, the $post->post_date and $post->post_modified are different. When comparing to the database values, the $post->post_modified matches its database value, but $post->post_date will continue to match the current time and '''not''' what is in the database for `post_date`.
It seems to me that the post object should reflect what is in the database regardless of the post_status. If a post is draft/pending, it is inconsistent to use post_date to note when the post was originally created.
I can see the code that is responsible for this is on wp-includes/query.php on line 3527-3528:
{{{
if ( 'future' != $status )
$this->posts[0]->post_date = current_time('mysql');
}}}
I apologize if I'm thinking about this wrongly." danbrellis
Needs Dev / Bug Wrangler Feedback 45343 $query->post is null when WP_Query `fields` parameter is present Query normal normal Awaiting Review defect (bug) new dev-feedback 2018-11-14T08:07:12Z 2018-11-14T10:23:21Z "Normally, WP_Query returns an object where `$query->posts` contains an array of posts and `$query->post` contains the first post. But if the `fields` parameter is present then `$query->post` returns `null`. Is it a bug or an expected behaviour? If it's expected then it should be documented because it's confusing and unintuitive.
**Example:**
{{{#!php
'my-post-type',
]);
if ($query->have_posts()) {
$firstPost = $query->post; // returns the same as $query->$posts[0]
}
// Weird behaviour
$query = new \WP_Query([
'post_type' => 'my-post-type',
'fields' => 'ids',
]);
if ($query->have_posts()) {
$firstPost = $query->post; // returns null
}
" wujek_bogdan
Has Patch / Needs Testing 51532 $tag_templates should be customizable (instead of local array) Themes 1.5 normal normal Awaiting Review enhancement new has-patch 2020-10-15T10:54:18Z 2022-12-11T21:22:26Z "In file wp-includes/template-loader.php (lines 57 - 75), a local associative array is defined: $tag_templates and it is used immediatly after at line 79 in a foreach loop.
The problem:
So there's no way for a plugin or theme to customize the value of this local variable.
Proposed enhancement:
* create a new public property in class WP_Query called $router_templates
(with same initial value as local variable $tag_templates)
{{{#!php
'get_embed_template',
'is_404' => 'get_404_template',
'is_search' => 'get_search_template',
'is_front_page' => 'get_front_page_template',
'is_home' => 'get_home_template',
'is_privacy_policy' => 'get_privacy_policy_template',
'is_post_type_archive' => 'get_post_type_archive_template',
'is_tax' => 'get_taxonomy_template',
'is_attachment' => 'get_attachment_template',
'is_single' => 'get_single_template',
'is_page' => 'get_page_template',
'is_singular' => 'get_singular_template',
'is_category' => 'get_category_template',
'is_tag' => 'get_tag_template',
'is_author' => 'get_author_template',
'is_date' => 'get_date_template',
'is_archive' => 'get_archive_template',
);
}
}}}
* add a new function in wp-includes/template.php called get_router_templates
{{{#!php
router_templates);
}
}}}
* upgrade the code in wp-includes/template-loader.php
{{{#!php
$template_getter ) {
// ...
}
}}}
* Impacts:
- There's no compatibility problem
- Perfomance impact is really light
- This will add more possibilities to the theme workflow.
* I can provide diff patch if needed
If you have questions, don't hesitate to ask.
Cheers." xoomcoder
Needs Patch 55335 $user_login double escaped with incorrect/empty password in wp-login.php Login and Registration normal normal Awaiting Review defect (bug) new 2022-03-08T03:56:54Z 2023-10-11T20:35:15Z "First:
{{{
if ( isset( $_POST['log'] ) ) {
$user_login = ( 'incorrect_password' === $errors->get_error_code() || 'empty_password' === $errors->get_error_code() ) ? esc_attr( wp_unslash( $_POST['log'] ) ) : '';
}
}}}
Then:
{{{
class=""input"" value="""" size=""20"" autocapitalize=""off"" />
}}}
Fix is to late escape only, and remove the top one." johnjamesjacoby
Has Patch / Needs Testing 55387 $wp_filesystem->dirlist() can return false and that should be checked for before iterating over the return value pbiron Filesystem API 2.8 normal normal Future Release defect (bug) assigned has-patch 2022-03-13T19:22:47Z 2022-04-30T16:17:06Z There are a number of cases in core (e.g., https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/class-wp-upgrader.php#L500) where the return value of `$wp_filesystem->dirlist()` is assumed to be an array. But since that method can return `false`, we should always check for that before iterating (or calling `array_keys()` or `array_values()` on it) over the return value. pbiron
Needs Patch 43372 $wp_query->max_num_pages return value as float Query 4.9.4 normal trivial Awaiting Review defect (bug) new 2018-02-20T16:32:40Z 2022-02-10T15:13:40Z "As a page number, Integer would make more sense than Float.
This is not a big problem but kinda annoying when you do strict comparison on this value. since no one will define a page number as float." ironghost63
Needs Patch 47818 $wpdb should update ->insert_id also when `LAST_INSERT_ID(...)` is found Database normal normal Awaiting Review enhancement new 2019-08-02T06:44:28Z 2019-08-02T06:44:28Z "It is possible to set the insert id pointer manually by in including `LAST_INSERT_ID(column)` anywhere in the statement. `$wpdb` however does not update it's internal `insert_id`, it does this only when the statement is 'insert' or 'replace'. This makes it harder to get the ID of an updated row.
https://stackoverflow.com/a/46335863" cpiber
Needs Patch 43664 $wpdb->get_results fails in specific cases with non-latin charaters in where clause Database 4.9.4 normal normal Awaiting Review defect (bug) new 2018-03-30T08:37:47Z 2018-04-08T19:09:08Z "Let's say we have user with display name 'Алексей';
{{{$wpdb->get_results(""SELECT user_login FROM $wpdb->users where `display_name`='Алексей' "", ARRAY_A);}}}
executes normally
{{{$wpdb->get_results(""SELECT user_login AS 'russian person' FROM $wpdb->users where `display_name`='Алексей' "", ARRAY_A);}}}
executes normally as well
but
{{{$wpdb->get_results(""SELECT user_login AS 'person from Russia' FROM $wpdb->users where `display_name`='Алексей' "", ARRAY_A);}}}
returns empty array and results in error:
[table Russia.doesn't exist]
SHOW FULL COLUMNS FROM `Russia`
That means 'from' in 'person from Russia' somehow gets in sql
It's an obscure enough situation, but might signify that something is wrong with wpdb query handling" altert
Needs Patch 46923 $wpdb->get_var() — empty sting becomes a NULL Database 5.1.1 normal normal Awaiting Review defect (bug) new 2019-04-14T15:47:24Z 2019-04-15T17:07:42Z "Because of the following condition, we get `NULL`, even if a real field value is an empty string!
{{{#!php
insert_id equals 0 Database 4.2.4 normal normal defect (bug) reopened 2015-12-29T19:54:39Z 2019-06-04T19:33:42Z "Hi, reading this https://make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade/
Ok then cool.
But I've had this weird bug with the table posts : collation utf8_mb4 was not set properly for this table (I do not really know why). As a result everytime `$wpdb->insert_id` was used it just inserted posts with ID `0` !
For example, each upload just failed and because an AJAX grid layout is used in admin (media library page) it just failed to load anything !
Took me some time to realize this was related to a database issue and not my php code that uses `wp_insert_post()`.
My question is : would it be safer to prevent WordPress from inserting posts with ID `0` in any case ? I'm refering to this line https://core.trac.wordpress.org/browser/tags/4.4/src/wp-includes/post.php#L2926
" jmlapam
Needs Docs or Unit Tests 31624 $wpdb->prepare() named placeholders Database 4.2 normal normal enhancement new needs-unit-tests 2015-03-13T08:36:52Z 2023-06-22T07:55:03Z "I think it would be handy to add named placeholders to $wpdb->prepare(). The functionality exists in most modern frameworks and cuts out the need for having to worry about the order of variables, (or repetition) in the current vsprint like syntax.
What I'm proposing is that the second parameter of prepare() can optionally be an associative array where the $key is the named placeholder and the $value is the value associated with it.
This wont affect any existing functionality of prepare() and is fully backwards compatible. If no associative array is passed it will continue to work as always.
Patch with the described functionality is attached for testing." ozthegreat
Needs Patch 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
Needs Patch 55714 & stored as & for Post Title and Excerpt in Editor Editor normal normal Awaiting Review defect (bug) new 2022-05-12T11:50:36Z 2022-05-20T09:00:58Z "Hi,
When an Author/other user(who have Create post permission) creates a post and add a post title as `Hello & Welcome to WordPress` after save the post the post title is stored as `Hello & Welcome to WordPress` in DB. As this is stored like this it is showing same in the editor. This is happening with Excerpt also.
**NB: This is not happening with Admin user or if you are using Gutenberg Editor.**
Reproduce Steps:
1. Disable your gutenberg editor and enable classic editor.
2. Logged in as an Author.
3. Switch to a non block based theme. (skip if your theme is not block based)
4. Go to Post > Add New
5. Add Post Title, Excerpt as `Hello & Welcome to WordPress`
6. Save Post
7. You will see `Hello & Welcome to WordPress` as title
" kapilpaul
Has Patch / Needs Testing 44958   character in title generates a permalink (and slug) with space Permalinks 4.8 normal normal 6.6 defect (bug) assigned has-patch 2018-09-17T20:44:22Z 2024-02-12T16:22:54Z "If a title has an   character copy pasted or if the permalink has a   copy pasted
It will generate a permalink and slug with an space breaking some elements on the site
I generated an empty wordpress install without any plugins to test it, and it has the same problem" ace2_heart
Needs Patch 40899 '&' Is always escaped in the JavaScript template. General 4.7.5 normal normal Awaiting Review defect (bug) new 2017-06-01T08:41:12Z 2020-09-08T13:05:47Z "When I tried the JavaScript template, '&' was always escaped.
Source:
{{{
}}}
Rendering:
{{{
&
Unscaped: Wo&r'l""d
Escaped: W<i>o</i>&r'l""d
}}}
While checking the interpolation of the variable, '&' was always converted to '& amp;'.
Is this a specification or a bug?
" tmatsuur
Needs Patch 59479 'Erase Personal Data' simply doesn't work Privacy 6.3.1 normal critical Awaiting Review defect (bug) new 2023-09-27T20:42:01Z 2023-09-27T20:42:01Z "Here's the steps:
1. Set up a fresh WordPress install on my local machine
2. Add a new subscriber user to that WordPress install
3. Go to 'Export Personal Data'
4. Put in an export request without requiring email confirmation
5. Click on 'download personal data' on the new request entry
6. Open the downloaded content and confirm that there are fields that need to be deleted listed in 'export.json'. There are. These fields include: 'User Nice Name', 'User Email', 'User Display Name'
7. Go to 'Erase Personal Data'
8. Add a new erasure request without requiring confirmation
9. Click 'erase personal data' on the new erasure item
10. Get the message 'No personal data was found for this user'
Looking at the user's profile does show that nothing was erased or anonymized.
Per https://wordpress.org/documentation/article/tools-erase-personal-data-screen/:
'To confirm what data will be erased by this tool, Go to Tools > Export Personal Data from Administration Screens, and export Personal data.'
None of the items that were in the export were erased. The line in that doc doesn't make sense, as the export includes the user's username, which will definitely not be erased.
I have replicated this behavior on other hosted sites. There's something wrong with either the tool, the docs, or the feedback from WordPress. Please let me know where I'm going wrong, or if this is actually something that needs fixing." kingfisherwebdev
Has Patch / Needs Testing 57235 'excerpt_remove_blocks' removes list blocks Formatting normal normal Awaiting Review defect (bug) new has-patch 2022-11-30T12:59:08Z 2022-11-30T13:50:19Z "As reported here: https://github.com/WordPress/gutenberg/issues/46167
When an excerpt of a block containing a listing is output, the listing is removed.
This seems to be caused by the fact that list items became blocks in WordPress 6.1." wildworks
Needs Docs or Unit Tests 16747 'feedtype_enclosure' hooks not triggered without custom field Feeds 1.5 normal normal defect (bug) new needs-unit-tests 2011-03-04T13:42:07Z 2019-06-04T19:43:20Z "file: '''wp-includes/feed.php''', functions: '''atom_enclosure()''' and '''rss_enclosure()'''
If a ""enclosure"" custom field is not provided, the ''atom_enclosure'' and ''rss_enclosure'' filters are never triggered (because they're inside an if statement).
Wouldn't it make sense to replace this ...
{{{
function atom_enclosure() {
if ( post_password_required() )
return;
foreach ( (array) get_post_custom() as $key => $val ) {
if ($key == 'enclosure') {
foreach ( (array) $val as $enc ) {
$enclosure = split(""\n"", $enc);
echo apply_filters('atom_enclosure', '' . ""\n"");
}
}
}
}
}}}
... with this ...
{{{
function atom_enclosure() {
if ( post_password_required() )
return;
$output = '';
foreach ( (array) get_post_custom() as $key => $val ) {
if ($key == 'enclosure') {
foreach ( (array) $val as $enc ) {
$enclosure = split(""\n"", $enc);
$output = '' . '\n';
}
}
}
echo apply_filters('atom_enclosure',$output);
}
}}}
... so that those functions can be hooked via plugins, even if the custom field doesn't exist?
''In my particular case, I wanted to use a different--already existing--custom field name to pull the url from, but I couldn't hook '''atom_enclosure()''' because '''apply_filters()''' is only triggered if the ""enclosure"" custom field name exists.''" tcloninger
Needs Patch 59684 'filesize' metadata not updated after resizing media Media 6.3.3 normal minor Awaiting Review defect (bug) new 2023-10-19T16:28:17Z 2023-10-31T17:01:30Z "It seems like WordPress does not update the 'filesize' metadata after an image is modified through the media library. The details panel in the media library displays the original file size instead of the 'new' file size.
=== Environment
- WordPress: 6.3.3-alpha-56924
- PHP: 8.2.10
- Server: Apache
- Database: mysqli (Server: 5.7.31 / Client: mysqlnd 8.2.10)
- Browser: Chrome 118.0.0.0 (Windows 10/11)
- MU-Plugins: None activated
- Plugins:
- WordPress Beta Tester 3.5.4
The following optional modules are not currently installed on our server:
- exif
- fileinfo
- imagick
=== Steps to Reproduce
1. Upload a new image in the media library
2. Note the file size (ie. 22 KB)
3. Resize the image by clicking on 'Edit Image', then 'Scale Image' (in my test case, I resized the image from 1920x1080 to 200x113)
4. Click 'Update'
5. The 'Dimensions' field is correctly updated, but 'File size' remains the same (22 KB)
=== Expected Results
The 'File size' should display the new file size (ie. 3.3 KB)
=== Actual Results
The 'File size' field displays the size of the original image, before it was resized.
Here is the value of the '_wp_attachment_metadata' field in the database after the media is resized:
{{{
a:6:{s:5:""width"";i:200;s:6:""height"";i:113;s:4:""file"";s:31:""2023/10/Test-e1697729884174.png"";s:8:""filesize"";i:22990;s:5:""sizes"";a:5:{s:6:""medium"";a:5:{s:4:""file"";s:16:""Test-300x169.png"";s:5:""width"";i:300;s:6:""height"";i:169;s:9:""mime-type"";s:9:""image/png"";s:8:""filesize"";i:4852;}s:5:""large"";a:5:{s:4:""file"";s:17:""Test-1024x576.png"";s:5:""width"";i:1024;s:6:""height"";i:576;s:9:""mime-type"";s:9:""image/png"";s:8:""filesize"";i:18748;}s:9:""thumbnail"";a:5:{s:4:""file"";s:16:""Test-150x150.png"";s:5:""width"";i:150;s:6:""height"";i:150;s:9:""mime-type"";s:9:""image/png"";s:8:""filesize"";i:3006;}s:12:""medium_large"";a:5:{s:4:""file"";s:16:""Test-768x432.png"";s:5:""width"";i:768;s:6:""height"";i:432;s:9:""mime-type"";s:9:""image/png"";s:8:""filesize"";i:13044;}s:9:""1536x1536"";a:5:{s:4:""file"";s:17:""Test-1536x864.png"";s:5:""width"";i:1536;s:6:""height"";i:864;s:9:""mime-type"";s:9:""image/png"";s:8:""filesize"";i:30857;}}s:10:""image_meta"";a:12:{s:8:""aperture"";s:1:""0"";s:6:""credit"";s:0:"""";s:6:""camera"";s:0:"""";s:7:""caption"";s:0:"""";s:17:""created_timestamp"";s:1:""0"";s:9:""copyright"";s:0:"""";s:12:""focal_length"";s:1:""0"";s:3:""iso"";s:1:""0"";s:13:""shutter_speed"";s:1:""0"";s:5:""title"";s:0:"""";s:11:""orientation"";s:1:""0"";s:8:""keywords"";a:0:{}}}
}}}
The ""filesize"" metadata has the value '22990' instead of '3033'." vertisoft
Needs Patch 46288 'get_extended' breaks when using 'more' gutenberg block Posts, Post Types 5.0 normal normal Future Release defect (bug) new 2019-02-20T10:21:14Z 2019-04-24T06:21:18Z "'get_extended' returns the closing tag ' in the extended content, which prevents 'the_content' filter from working correctly.
Steps to replicate:
{{{#!php
', '', $post);
}}}
" joewebber
Needs Reporter Feedback / Steps To Reproduce 52732 'get_posts' has been waiting for so long to have a hook Query normal normal Awaiting Review defect (bug) new reporter-feedback 2021-03-07T20:49:37Z 2024-02-13T15:33:33Z "I reckon `get_posts` is the most (frequently) used function across many plugins or scripts. I know there are internal `WP_Query` hooks available, but that makes things harder to get into.
I think having hook on `get_posts` will be very useful and easy for people / developers to remind & amend things easier.
patch attached." ttodua
Has Patch / Needs Testing 24248 'guid' not properly escaped Posts, Post Types 2.5 normal normal defect (bug) new has-patch 2013-05-02T14:03:35Z 2022-10-04T20:12:24Z "Probably related issues: #18274 #19248
'guid' being saved in database not properly escaped, example:
{{{http://www.wordpress.dev/?post_type=changeset&p=57}}} , see the ampersand encode {{{&}}}
It supposed to be {{{&}}} or at least {{{&}}}
Once 'auto-draft' saved, 'guid' is correct: {{{http://www.wordpress.dev/?post_type=changeset&p=57}}}
Once post is saved as 'draft' or published (triggered 'update post' on auto-draft), 'guid' gets malformed.
Source of issue: inappropriate usage of {{{get_post_field()}}} function in the {{{wp_insert_post()}}}
{{{get_post_field()}}} defaults to 'display' context, we not specify context while obtaining field, and in the {{{wp_insert_post()}}} we are not going to display it anywhere, just get, check, and save again, correct?
Attached patch adds the 'raw' context to usage of {{{get_post_field()}}} with 'guid'
" meloniq
Needs Dev / Bug Wrangler Feedback 44334 'Invalid username or email' can just be 'Invalid username' in retrieve_password function Login and Registration normal normal Awaiting Review enhancement new dev-feedback 2018-06-08T15:04:20Z 2018-06-08T15:56:11Z "Since `strpos` returns `false` if a character is not found in between the input string and returns `0` if found at the beginning of it the error message `There is no user registered with that email address.` will only come up if user could not be located with the supplied email address. For anything else we can just use `Invalid username`.
Example: `myname@gmail.com`
- Error message: There is no user registered with that email address.
- This is correct since strpos only returns true if @ is somewhere within the string or at the end.
Example: `@myname`
- Error message: Invalid username
- No need to add the phrase or email
Example: `@@myname`
- Error message: Invalid username
- No need to add the phrase or email
Example: `myname`
- Error message: Invalid username
- No need to add the phrase or email" subrataemfluence
Needs Patch 53848 'is_feed was called incorrectly' notice if `wp_styles()` is called before the query Script Loader 5.8 normal normal Awaiting Review defect (bug) new 2021-07-31T17:20:16Z 2021-12-14T23:59:40Z "WordPress 5.8 introduced the `wp_should_load_separate_core_block_assets` (https://developer.wordpress.org/reference/functions/wp_should_load_separate_core_block_assets/) function which calls `is_feed()` internally as part of its preliminary checks that guard the application of its filter.
Since `wp_should_load_separate_core_block_assets` is now called within `wp_default_styles()`, this has the potential to raise a ""doing it wrong"" notice if `WP_Styles` is initialized before the query runs for non-admin requests.
`wp_styles()` has never imposed such timing restrictions on when it is called, this is somewhat of a breaking change.
Ideally a different condition that does not impose the same limitation could be used in the place of `is_feed` here." aaemnnosttv
Has Patch / Needs Testing 12104 'moderate_comments' capability by itself should grant the user the permission to See/Edit all comments from the Comments menu. Comments 3.0 normal normal Future Release defect (bug) new has-patch 2010-01-31T22:25:24Z 2021-11-08T19:10:31Z "I tried to create a Comment Moderator role today and realized it wouldn't work. My intention was to create a role for people who can't write or edit posts, but can keep an eye on the comment threads. I created the role like so:
{{{
#!php
add_role('moderator', 'Moderator', array(
'read' => 1,
'moderate_comments' => 1,
));
}}}
... then created a new user with that role. When I logged in as my test user, I realized that it was for all intents and purposes a Subscriber. I couldn't see any admin panels but the Dashboard, my profile, and the Tools. I went poking around in edit-comments.php and discovered that it's checking for another capability altogether:
{{{
#!php
if ( !current_user_can('edit_posts') )
wp_die(__('Cheatin’ uh?'));
}}}
I double-checked wp-admin/includes/menu.php and it agreed that 'edit_posts' was the minimum capability to see this page, so I tried adding 'edit_posts' to my new role, and I still couldn't get there.
Later on in edit-comments.php, when actually trashing a comment, there is a check for 'moderate_comments', but it's a moot point: this screen doesn't even show up in the admin menu, and if you navigate directly to it, you'll get the ""You do not have sufficient permissions to access this page"" message.
I thought it was entirely possible I'd missed some finer point of creating roles, so I redid it with Justin Tadlock's excellent Members plugin, and that didn't work either.
This behavior might be intentional, but if so, I'm not following the logic. I know roles are due for an overhaul in the next version or two." sillybean
Has Patch / Needs Testing 43538 'No items,' should be considered to display when no Most Used Category is available Menus normal normal Awaiting Review enhancement new has-patch 2018-03-13T13:01:34Z 2019-01-16T06:50:09Z "In Menus editor, for all types `No items.` message is being shown when no item is available for respective type.
I know that this use case severity is too low, Most Used category will be blank only when no post is available but so the Post test case is. In case of posts we are showing this message `No Items.`
I have created the patch, before applying the patch it was showing blank under most used tab." juhise
Needs Patch 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
Needs Patch 49331 'output' Taxonomy Slug Crashes Menu Menus 5.3.2 normal normal Awaiting Review defect (bug) new 2020-01-30T16:52:58Z 2020-01-30T22:42:13Z "If I create a custom taxonomy with its slug as 'output' the Menus in the admin area disappear as well as on the frontend.
The 'output' is not listed as a reserved term here: https://codex.wordpress.org/Reserved_Terms" nekokun
Needs Dev / Bug Wrangler Feedback 37604 'Password Lost/Changed' emails should give indication of the strength of the new password Security 3.7 normal normal Future Release feature request new dev-feedback 2016-08-08T19:08:40Z 2018-04-09T13:18:35Z "When any user changes their password, the site's owner gets an email that currently just says:
""Password Lost and Changed for user: [username]""
It would help administrators if the email also included WordPress's assessment of the strength of the new one. I don't always agree with that assessment, but it is better than saying nothing.
As it is, there's no way to know if the user has just picked an extremely weak password and thanks to the repeated user privilege escalation exploit issues, even low level users with weak passwords can put the whole site at risk." lovingboth
Needs Dev / Bug Wrangler Feedback 50070 'post_type' query variable not set for taxonomy queries Query 5.4 normal normal Awaiting Review defect (bug) new dev-feedback 2020-05-03T17:12:19Z 2020-05-27T20:56:06Z "When a standard taxonomy query is executed on the front-end (for example loading a category term archive page to see all posts associated with that term), the `$wp_query` object constructed in the `get_posts()` function omits the `post_type` query variable.
The `$q['post_type']` is empty initially (line 1848 wp-includes/class-wp-query.php), however, when the query is identified as a taxonomy query, a search is done to find which post_type is registered with this taxonomy (line 2132 wp-includes/class-wp-query.php) and the `$post_type` is set within the scope of the function, but the referenced query variable `$q['post_type']` isn't updated.
this causes a problem to identify queries when hooking filters such as `posts_orderby` / `posts_where` / `posts_join`
" aurovrata
Needs Docs or Unit Tests 44412 'pre_cache_alloptions' filter in wp_load_alloptions() in option.php cannot be hooked Cache API normal normal Future Release enhancement new needs-docs 2018-06-20T12:47:32Z 2021-06-15T18:40:04Z "Whenever wordpress loads, it fetches all options with the wp_load_alloptions() function in the option.php file. There is a filter in the function before sending it to the cache: {{{#!php
//' it gives me 404 error. And if I access '/wp-json/' on Firefox Developer Edition in 'Header' section I see:\\
`Link //>; rel=""https://api.w.org/""`\\
So the header is correct here. And it will fix the issue if I go to WP Settings -> Permalinks -> Save.\\
But that is a bug. As you won't have to instruct that to your plugin user, after his activation he will see that API is not working.\\
\\
Install Controller class - 'flush_rewrite_rules' is called on plugin activation after 'rest_url_prefix' filter added with new API ENDPOINT:
{{{#!php
public function setCustomWP_RestAPI_Prefix()
{
// NOTE: Do not forget to do the same on install with flush_rewrite_rules(); after it.
add_filter('rest_url_prefix', function() { return ConfigurationInterface::WP_REST_API_PREFIX; }, 10, 1);
// NOTE: As there is no custom post types or custom taxonomies registration later, we perform rewrite rules flush right now
flush_rewrite_rules();
}
<...>
}
}}}
\\
Main Controller class:
{{{#!php
final class MainController
{
<...>
public function __construct(ConfigurationInterface $paramConfWithoutRouting)
{
<...>
if(!is_null($this->confWithoutRouting))
{
register_activation_hook($this->confWithoutRouting->getPluginPathWithFilename(), array(&$this, 'networkOrSingleActivate'));
register_deactivation_hook($this->confWithoutRouting->getPluginPathWithFilename(), array(&$this, 'networkDeactivate'));
<...>
}
}
/**
* Activate (enable+install or enable only) plugin for across the whole network
* @note - 'get_sites' function requires WordPress 4.6 or newer!
*/
public function networkOrSingleActivate()
{
if(is_multisite())
{
// A workaround until WP will get fixed
// SHOULD be 'networkActivate' but WordPress does not yet support that feature,
// so this means as long as the 'MULTISITE' constant is defined in wp-config, we use that method
$this->multisiteActivate();
} else
{
// A workaround until WP will get fixed
$this->activate();
}
}
public function activate()
{
try
{
<...>
// Install plugin for single site
$objInstaller = new \GreatestEverManager\Controllers\Admin\InstallController($conf, $lang, $conf->getBlogId());
// Install
<...>
$objInstaller->setCustomWP_RestAPI_Prefix();
<...>
} catch (\Exception $e)
{
if(StaticValidator::inWPDebug())
{
// In WP activation we can kill the install only via 'trigger_error' with 'E_USER_ERROR' param
$error = sprintf(static::LANG_ERROR_IN_METHOD_TEXT, __FUNCTION__, $e->getMessage());
trigger_error($error, E_USER_ERROR);
}
}
}
public function run()
{
if($this->canProcess)
{
<...>
add_filter('rest_url_prefix', function() { return ConfigurationInterface::WP_REST_API_PREFIX; }, 10, 1);
add_action('rest_api_init', array(&$this, 'frontEndAPI_Callback'), 0);
<...>
}
}
<...>
}
}}}
\\
Plugin main file (wp-content/plugins/GreatestEverManager/GreatestEverManager.php):
{{{#!php
*/
namespace GreatestEverManager;
require_once 'Models/Configuration/ConfigurationInterface.php';
require_once 'Models/Configuration/Configuration.php';
require_once 'Controllers/MainController.php';
<...>
use GreatestEverManager\Models\Configuration\Configuration;
use GreatestEverManager\Controllers\MainController;
if(!class_exists('GreatestEverManager\GreatestEverManager'))
{
final class GreatestEverManager
{
// Configuration
const REQUIRED_PHP_VERSION = '5.4.0';
const REQUIRED_WP_VERSION = 4.6;
const OLDEST_COMPATIBLE_PLUGIN_VERSION = 6.0;
const PLUGIN_VERSION = 6.0;
// Settings
private static $params = array(
'plugin_id' => 0,
'plugin_prefix' => 'greatest_ever_manager_',
'plugin_api_namespace' => 'gem/v1',
'plugin_handle_prefix' => 'greatest-ever-manager-',
<...>
);
private static $objConfiguration = NULL;
private static $objMainController = NULL;
<...>
/**
* @return Configuration
*/
public static function getConfiguration()
{
if(is_null(static::$objConfiguration) || !(static::$objConfiguration instanceof Configuration))
{
// Create an instance of plugin configuration model
static::$objConfiguration = new Configuration(
$GLOBALS['wpdb'],
get_current_blog_id(),
static::REQUIRED_PHP_VERSION, phpversion(),
static::REQUIRED_WP_VERSION, $GLOBALS['wp_version'],
static::OLDEST_COMPATIBLE_PLUGIN_VERSION, static::PLUGIN_VERSION,
__FILE__,
static::$params
);
}
return static::$objConfiguration;
}
/**
* Creates new or returns existing instance of plugin main controller
* @return MainController
*/
public static function getMainController()
{
if(is_null(static::$objMainController) || !(static::$objMainController instanceof MainController))
{
// NOTE: This is not passing by reference!
static::$objMainController = new MainController(static::getConfiguration());
}
return static::$objMainController;
}
<...>
}
<...>
// Run the plugin
GreatestEverManager::getMainController()->run();
}
}}}
\\
The coding pattern is S.O.L.I.D. MVC, Version 6, based on PSR-4 Autoloaders and PSR-2 Coding Standards.
To deeply inspect load process (without the REST_API part), you can inspect 'Expadandable FAQ' - SolidMVC boiler-plate plugin:
[https://wordpress.org/plugins/expandable-faq/]" KestutisIT
Needs Patch 27244 'Restore This Autosave' immediately updates a published post Revisions normal normal Awaiting Review defect (bug) new 2014-02-28T23:43:29Z 2024-02-25T19:29:55Z "The ""Restore This Autosave"" button on the revisions screen immediately replaces the post with the autosave without making it clear that that is the case.
Steps to reproduce:
1. Publish a post.
2. Edit the content of the post and trigger an autosave (either by waiting two minutes or by clicking the 'Preview Changes' button).
3. Navigate away from the post editing screen.
4. Return to the post editing screen and note the message stating ""There is an autosave of this post that is more recent than the version below"". Click ""View the autosave"".
5. On the revisions screen, click ""Restore This Autosave"".
6. Note that the autosave has been published rather than simply being restored to the editing screen." johnbillion
Needs Patch 43671 'Search installed plugins' on plugins page unneccesary and possibly misleading, possibly replace it for 'search new plugins' Plugins 4.9 normal normal Awaiting Review enhancement new 2018-04-01T11:46:07Z 2019-05-07T22:12:30Z "Hello!
I consider 'Search installed plugins' input on plugins page unneccesary and possibly misleading. Very often I use this input to search for plugin that I want to install.
Also I don't know whether there is any reason at all to have search for installed plugins, because usually user just scrolls window to check this and rarely can remember name of the plugin etc.
It would be cool to replace this input with input for searching for new plugins (or totally remove it).
Thanks!" Vishnja1
Needs Patch 53029 'separate_items_with_commas' does not display in Block editor meta section Editor 5.7 normal normal Awaiting Review defect (bug) new 2021-04-14T11:24:54Z 2022-01-06T15:53:02Z "I made a custom taxonomy and changed the label for
{{{
'separate_items_with_commas'
}}}
but the value I entered does not display in the block editor.
I checked with the forum and it was discovered that it displays in the old editor but not the new.
[https://wordpress.org/support/topic/separate_items_with_commas-not-showing-in-ui/]" imconfused4sure
Needs Patch 52011 'The REST API encountered an unexpected result' should be a critical error Site Health 5.2 normal normal Awaiting Review enhancement new 2020-12-10T10:19:58Z 2022-08-28T20:12:27Z "I deliberately made an error by replacing one of the core files with file from a previous version (such things are happening when an update went wrong for example), which results in a PHP warning, which can be hidden if debug mode is disabled but lead to critical error from REST API and it can easily be missed in recommendations because it isn't labelled as critical.
Usually, users don't see errors which are causing through REST API, because they need to open a console firstly and they don't understand what is wrong with their site." oglekler
Needs Patch 42422 'unique' index not removed from the 'slug' column of the 'wp_terms' table Taxonomy 4.8.3 normal normal Awaiting Review defect (bug) new 2017-11-02T19:07:15Z 2017-11-11T18:10:02Z "This is a follow-up to #22023.
It appears that on one of my older installations of wordpress the unique index was never removed from the 'slug' column of the 'wp_terms' table. The latest update 4.8.3 must have stirred something up with wp cron, conflicting with the unique status of the column. This has caused thousands of the following errors to be logged which in turn caused our server to 503 due to hitting the PHP FcgidMaxProcessesPerClass limit.
Note: this installation has had regular updates since being installed years ago.
{{{
stderr:
WordPress database error Duplicate entry 'category-slug' for key 'slug' for
query INSERT INTO `wp_terms` (`name`, `slug`, `term_group`) VALUES ('Category Name', 'category-slug', 0) made by do_action_ref_array, WP_Hook->do_action,
WP_Hook->apply_filters, _wp_batch_split_terms, _split_shared_term
}}}" joellisenby
Has Patch / Needs Testing 40585 'Update' vs 'Schedule' Posts, Post Types normal normal Awaiting Review defect (bug) reopened has-patch 2017-04-27T16:48:26Z 2017-05-08T18:44:30Z "Hi, today i work with WordPress and i noticed a problem. My timeline event is:
1) I have an article ""X"" published of the 26 april at 20.00.
2) Today, 27 april at 18.02 i start the edit the article
3) At 18.15 finish edit article and modified date of article in pubblication in 27 april at 18.15
4) Now i don't look button ""Update"" but i look button ""Planning"".
I have feeling that WordPress don't check date in this moment (18.15) but check date open edit article (18.02).
The article is pubblished in all cases but theoretically the article is deleter on the google serp for some minutes.
Sorry for my english :)" micheleconversano
Has Patch / Needs Testing 58246 'update_meta_cache()' doesn't correctly handle the return value of the 'update_{$meta_type}_metadata_cache' filter Options, Meta APIs 6.3 normal normal Awaiting Review defect (bug) new has-patch 2023-05-03T17:24:26Z 2023-05-03T17:40:37Z "The return type of `update_meta_cache()` is `array` or `false`, but the return value of `update_{$meta_type}_metadata_cache` filter is forcibly cast to `bool` and returned in `update_meta_cache()`.
[https://core.trac.wordpress.org/browser/trunk/src/wp-includes/meta.php#L1149 wp-includes/meta.php: 1149]
{{{#!php
$check = apply_filters( ""update_{$meta_type}_metadata_cache"", null, $object_ids );
if ( null !== $check ) {
return (bool) $check;
}
}}}
This may cause `get_metadata_raw()` to produce incorrect results.
[https://core.trac.wordpress.org/browser/trunk/src/wp-includes/meta.php#L646 wp-includes/meta.php: 646]
{{{#!php
if ( ! $meta_cache ) {
$meta_cache = update_meta_cache( $meta_type, array( $object_id ) );
if ( isset( $meta_cache[ $object_id ] ) ) {
$meta_cache = $meta_cache[ $object_id ];
} else {
$meta_cache = null;
}
}
}}}" donglijun
Has Patch / Needs Testing 49483 'Upload file types' Setting field for multisite network settings should be textarea than text input Administration 5.3.2 normal normal Awaiting Review enhancement new has-patch 2020-02-20T14:25:30Z 2024-01-13T06:26:24Z "The setting field 'Upload file types' (CSS name='upload_filetypes') is currently a text input with visible width of 45 characters.
However, the default content of that field is 135 characters. Thus, it would be good to have it in the form of textarea to have a better look at all the content without the need for scrolling.
**Steps to find -**
1. At a multisite WordPress installation, go to My Sites -> Network Admin -> Settings.
2. Find the setting under the heading 'Upload Settings' with label 'Upload file types'.
3. The default value in that field is as follows -
''jpg jpeg png gif mov avi mpg 3gp 3g2 midi mid pdf doc ppt odt pptx docx pps ppsx xls xlsx key mp3 ogg flac m4a wav mp4 m4v webm ogv flv''
**Screenshots -**
1. Current (with input tag) - upload_filetypes_current.png
2. Proposed (with textarea tag) - upload_filetypes_proposed.png" shamalisulakhe
Has Patch / Needs Testing 38057 'wp_update_nav_menu' action returns inconsistent number of arguments johnbillion Menus 4.6 normal normal Future Release enhancement reviewing has-patch 2016-09-14T16:13:56Z 2023-02-09T13:31:46Z "The 'wp_update_nav_menu' action is fired in two places with a different amount of arguments.
- [https://core.trac.wordpress.org/browser/branches/4.6/src/wp-includes/nav-menu.php#L348 wp-includes/nav-menu.php] `do_action( 'wp_update_nav_menu', $menu_id, $menu_data );`
- [https://core.trac.wordpress.org/browser/branches/4.6/src/wp-admin/includes/nav-menu.php#L1070 wp-admin/includes/nav-menu.php] `do_action( 'wp_update_nav_menu', $nav_menu_selected_id );`
The first one passes along the menu id and menu data, where the second one only returns the menu id.
" barryceelen
Needs Patch 48364 (Needs confirmation) When updating plugins, WordPress won't update any new plugin updates that are found Upgrade/Install 5.2.3 normal minor Awaiting Review enhancement new 2019-10-18T02:14:15Z 2019-10-18T02:56:04Z "On a number of occasions, I've noticed that when I go to wp-admin/update-core.php and tell it to update my plugins, the system will:
1. Update most of the plugins
2. Report that all the plugins were successfully updated
3. Still report that a few plugins need to be updated
That's very confusing to end users, because how can there be more plugin updates if all of their plugins were supposedly just updated?
I've seen that bug happen many times, but only just now did I notice something else; after you click the ""Update Plugins"" button, the little orange notification number will sometimes increase after a second or two. That makes me think that the update function is checking for new updates but not adding them to the list of plugins to update.
Since the only plugins that get updated are the ones that were ""checked"", it does make sense that new updates wouldn't automatically be added. That said, the process still seems clunky overall.
Maybe it would be better to check for updates before the wp-admin/update-core.php page loads? That way the user would be presented with the actual list of plugins that need to be updated, rather than a partial list. It would block the page load for a few seconds, which is undesirable, but in most cases I think that would be a better behavior that the current one, which occasionally requires you to update your plugins twice and gives little explanation of what's going on.
Note that there's a lot of partial speculation above, and the nature of this issue makes it hard to consistently reproduce." pikamander2
Needs Reporter Feedback / Steps To Reproduce 54903 (no title) bug Posts, Post Types 5.8.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-01-25T18:21:10Z 2022-02-01T13:49:51Z "If a user makes a post without a title, the post shows up as (no title). However, if the user tries to delete, change status, etc.. of that (no title) post, core does not render those commands. The page refreshes with no changes.
" samjco
Needs Patch 59274 (Updates) update-core.php Upgrade/Install 6.3.1 normal normal Awaiting Review defect (bug) new 2023-09-03T23:04:51Z 2023-09-03T23:16:15Z "I am using WordPress 6.3.1.
Theme: ColorMag Pro
URL: https://suncatcherstudio.com/
When I press on ""Updates"" rather than getting a graphical interface,
I am getting a list of textual links as shown in the attached
image. Is this a bug? This is the first time I noticed this problem.
https://billrosener.com/temp2/wordpress-updates-menu.png
Do you know how I can get back to a graphical version??
Thank you,
Bill
" rosener
Has Patch / Needs Testing 54954 --wp--preset-- variables defaults not being updated by add_theme_support() 'editor-font-sizes' or 'editor-color-palette' General 5.9 normal normal Awaiting Review defect (bug) new has-patch 2022-01-27T14:57:11Z 2022-02-22T13:44:44Z "Having an issue updating the default values for preset variables, such as font size {{{large}}}, or color {{{black}}}
Since 5.9 it appears that fonts and colours defined in theme.json will correctly override the default values of --wp--preset-- variables, however those defined via add_theme_support are not, and so the default values are still being used.
This is being triggered by whether or not a theme calls {{{add_theme_support( 'experimental-link-color' )}}}
A simple way to test what's going on here:
1. Open a blank install with the Twenty-Twenty-One theme installed.
2. Create a new page and add paragraph text with the font size set to {{{large}}} and set the background color to {{{black}}}
3. Open {{{functions.php}}} and edit {{{line 170}}} to change the {{{large}}} font size, and then edit {{{line 203}}} to change the black color and save.
Result: Paragraph text correctly reflects changes made to font size and color.
4. Open functions.php and delete {{{line 333: add_theme_support( 'experimental-link-color' );}}}
Result: Font size and color fallback to WP default values.
Expected behaviour: Font sizes and colors set via {{{add_theme_support}}} should continue to work as pre 5.9 without the need to add {{{add_theme_support( 'experimental-link-color' );}}}" tommusrhodus
Needs Patch 48974 -1 being added to image uploads since version 5.3.1 Media 5.3.1 normal normal defect (bug) reopened 2019-12-14T19:52:09Z 2020-10-01T18:12:06Z "Hi, as of the Friday update my image uploads are geting '-1' added to each image
e.g.,
19-1216-iskysoft-christmas19-696x522-1.jpg
19-1216-jla-special-needs-696x522-1.jpg" neotrope
Needs Patch 56029 .git-blame-ignore-revs causes other revisions to be ignored Build/Test Tools 6.0 normal normal Awaiting Review defect (bug) new 2022-06-21T21:20:38Z 2023-10-17T15:09:32Z "Previously: #55422
It appears that the `.git-blame-ignore-revs` file is causing revisions other than those listed to be ignored when using the ""View blame prior to this change"" button on GitHub. This might be a bug in GitHub or it might be a side effect of how Git ignores revisions and produces an inability to keep track of changes to a line across major changes.
**Steps to reproduce:**
* [https://github.com/wordpress/wordpress-develop/blame/trunk/src/wp-includes/pluggable.php#L946 Visit the blame view for wp-includes/pluggable.php on GitHub]
* One line 946 you'll see:
{{{#!php
list( $username, $expiration, $token, $hmac ) = $cookie_elements;
}}}
* Observe the previous revision for this line is listed as [https://github.com/WordPress/wordpress-develop/commit/78a2c0f78152ab52047937daeba44a55ed71f64a 78a2c0f] which is [8696] from the year 2008
The actual previous revision was [https://github.com/wordpress/wordpress-develop/commit/8f95800d52c1736d651ae6e259f90ad4a0db2c3f the Code is Poetry commit] ([42343]) which is listed in `.git-blame-ignore-revs`. Prior to this commit, there was [https://github.com/wordpress/wordpress-develop/commit/97fcbef707e9e853e0ef655fb3aaab192058fee1 97fcbef] ([29221]) which is an actual functional change which is being ignored.
Removing the code formatting and pinking commits from the blame views is useful, but preventing history from being accurately traced back is a problem.
**Options:**
* Ask GitHub to investigate or advise
* Remove the `.git-blame-ignore-revs` file for now
cc @helen " johnbillion
Has Patch / Needs Testing 43676 .htaccess rules don't work with Plain Rewrite Rules normal normal Awaiting Review defect (bug) new has-patch 2018-04-02T21:03:48Z 2022-01-05T12:08:54Z "If I use ""Plain Url Style"" in Permalink Settings then I can't add custom rules .htaccess from mod_rewrite_rules filter. I think that this is bug.
For example:
{{{#!php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule wp-content/uploads/(.*) http://example.com/wp-content/uploads/$1 [NC,L]
\n\n"" . $rules;
return $rules;
}
add_filter( 'mod_rewrite_rules', 'uploads_from_remote_server' );
}}}
This filter not working in Plain Url Style but should." sebastian.pisula
Needs Patch 29187 .notdef glyph (when copying text from a PDF in the excerpt) breaks the /feed Feeds 1.0 normal normal defect (bug) new 2014-08-12T00:14:44Z 2019-06-04T19:46:17Z "I created a post where the excerpt was copy&pasted from a pdf document.
When pasting the text, the ""fi"" glyph disappears (e.g. ""specification"" is copied over as ""specication"", this is a common problem, see for instance: [http://superuser.com/questions/375449/why-does-the-text-fi-get-cut-when-i-copy-from-a-pdf-or-print-a-document]).
To be more precise, the ""fi"" glyph is replaced with the .notdef glyph. The .notdef glyph is not visible in the Edit Post screen nor when viewing the post but it is stored in the database (rendered as a white square, the most common representation for this glyph).
The problem is that, while the glyph is properly filtered when viewing the post, it is not when creating the RSS feed so it breaks it.
For instance, when trying to access it with Google Chrome I get: This page contains the following errors:
error on line 29 at column 25: Input is not proper UTF-8, indicate encoding !
Bytes: 0x0C 0x66 0x69 0x63
I've been able to reproduce the problem on several sites. " softmodeling
Has Patch / Needs Testing 35130 .wp-full-overlay-main prevents touch scrolling in theme preview iframe in iOS Safari obenland* Themes 4.4 normal normal Future Release defect (bug) accepted has-patch 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
Needs Patch 60586 .xml imports broken Import 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-20T21:32:55Z 2024-02-20T21:56:15Z "After the most recent update, imports using the WordPress Importer appear to be broken. Specifically, I've seen this with post imports.
This happens on even a clean install with the default theme and no plugins activated.
The .xml files are well under 1mb. I tried on a fresh WP installation after the first set of failures. I then tried an export from a third site to make sure the issue wasn't with the site the initial export came from, and this second export also failed to import onto the fresh installation. I then tried to import these into a completely separate unused WP installation that was recently updated to the latest WP version, and those also failed.
It appears to import the first post before failing. This happens regardless of the import file, so it's not the same post and therefore not anything in a particular post causing the issue.
The import fails whether or not you try to import attachments, and it fails whether you try to create a new user or assign the posts to an existing user.
Error message:
""There has been a critical error on this website. Please check your site admin email inbox for instructions.""
But no emails are sent to the admin email address. " jhmattern
Needs Reporter Feedback / Steps To Reproduce 53825 /* Error on wp-includes/css/dashicons.min.css?ver=5.8 : Something went wrong: A valid URL was not provided. */ General 5.8 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-07-29T13:03:52Z 2021-07-29T13:58:44Z "I am facing the issue of Dashicons.mini.css?ver=5.8 on my website. Can you please help me in updating the same. For your reference i am attaching snapshot of my website.
https://prnt.sc/1hm9hn3
" nitindhir
Needs Patch 44313 /wp-admin/css/forms.css problem when adding a
error Formatting 5.4.2 normal normal Awaiting Review defect (bug) new needs-unit-tests 2020-08-06T02:49:55Z 2020-08-06T13:41:14Z "There is a bug that is very simple to reproduce -
if you create a [playlist] and then add some text, such as
[playlist ids=""1,2,3""] Hey everyone, check out my new songs!
it will produce an html parsing error where element is closed, but never opened.
Thank you" hvar
Needs Patch 47882 [Plugins][Add new]: Can't install plugin from More details pop-up Plugins 5.2.2 normal normal Awaiting Review defect (bug) new 2019-08-15T08:39:51Z 2019-08-16T10:40:15Z "1. Go to http://something/wordpress/wp-admin/plugin-install.php
2. Chose a plugin and click on More details.
3. Click on Install Now.
Current: The button is depressed, but nothing happens.
Expected: The plugin should be installed and the pop-up should disappear.
Chrome Version 76.0.3809.100 (Official Build) (64-bit)" daniela1104
Needs Dev / Bug Wrangler Feedback 58278 [Query Loop][Post Template][Custom dynamic block] Impossible to pass query loop context to a custom dynamic block as the post template context is hard coded. Editor 6.2 normal normal Awaiting Review enhancement new dev-feedback 2023-05-09T13:14:16Z 2023-05-09T13:14:16Z "Hello.
**Context** :
I'm writing a query loop variation, with post templates, then a custom dynamic block.
**Problem** :
I was trying to get the query loop id inside the custom dynamic block and could not, even when specifying usesContext and providesContext block.json configuration for my dynamic bloc of the core/post-template one.
**Observations** :
After some investigation, I found that the post template uses the `render_block_core_post_template` function as render callback inside the `post-template.php` file
Line 93 of this file, we can see that the function hard codes the context that is then passed to the block :
{{{#!php
$block_content = (
new WP_Block(
$block_instance,
array(
'postType' => get_post_type(),
'postId' => get_the_ID(),
)
)
)->render( array( 'dynamic' => false ) );
}}}
There's no filter or mechanism allowing us to provide more context here which is quite blocking.
**Suggestion** :
We could do something like this instead :
{{{#!php
// Render the inner blocks of the Post Template block with `dynamic` set to `false` to prevent calling
// `render_callback` and ensure that no wrapper markup is included.
$context = array(
'postType' => get_post_type(),
'postId' => get_the_ID(),
);
//Check if additional context is provided by ancestor blocks
if (!empty($block->block_type->provides_context)) {
foreach ($block->block_type->provides_context as $context_name) {
if (array_key_exists($context_name, $block->context)) {
$context[$context_name] = $block->context[$context_name];
}
}
}
$block_content = (
new WP_Block(
$block_instance,
$context
)
)->render( array( 'dynamic' => false ) );
}}}
With this code, I was able to specify and get the queryId to my custom block.
**Steps to reproduce** :
- Create a query loop variation
- In the variation, set the innerblocks setting to use a custom dynamic block.
- In your custom block block.json file, we're trying to use the queryId as the context.
- As it's not working, I've also specified that I wanted the core/post-template block to provide the queryId via providesContext.
- Realize the core/post-template block does not provide any context besides the hard coded one mentioned above.
**Expected output** :
If we specify that the core/post-template block should specify a context, it should be taken into account alongside the default values that are `postType` and `postId`
Thank you for your work." jdmweb
Has Patch / Needs Testing 60670 [Site Health] Add current mysql version to update recommendation Site Health normal normal Future Release enhancement new has-patch 2024-03-01T11:54:19Z 2024-03-02T22:56:45Z "On Site Health Status, if you run an older version of mysql, you will get the recommenation
For optimal performance and security reasons, you should consider running MySQL version 8.0 or higher. Contact your web hosting company to correct this.
I propose to add the current version there.
**Your version is [version].** For optimal performance and security reasons, you should consider running MySQL version 8.0 or higher. Contact your web hosting company to correct this." Presskopp
Needs Dev / Bug Wrangler Feedback 57884 [TinyMCE] class-wp-editor.php is emitting open_basedir restriction warning when using my own error handler TinyMCE 3.9 normal normal Awaiting Review defect (bug) new dev-feedback 2023-03-08T10:42:02Z 2023-03-21T16:17:44Z "My server has open basedir restrictions.
When editing a post on classical editor, on line 530, class-wp-editor checks for translations loaded for external TinyMCE 3.x plugins.
{{{
if ( @is_file( $path . 'en_dlg.js' ) ) { ..
}}}
On standard case , ""@""supress the errors as it should.
But I have, as many users, my own error handling for pushing error logs in external collector.
So ""supress errors"" @ seems to be non-effective;
and my logs are full of these :
""is_file(): open_basedir restriction in effect. File(/en_dlg.js) is not within the allowed path(s): (..) /wp/wp-includes/class-wp-editor.php"",""error_line"":530
The correct way to check a potential outside of openbasedir restriction seems to be
{{{
// Default error handler is required
set_error_handler(null);
// Clean last error info. You can do it using error_clean_last in PHP 7.
@trigger_error('__clean_error_info');
// Testing...
@file_exists($path);
// Restore previous error handler
restore_error_handler();
}}}
as to why '$path' seems to be '/' ,thus checking file at server root, I have no clue ..
" arnolp
Has Patch / Needs Testing 46382 [walker-nav-menu] Undefined property stdclass::$current in class-walker-nav-menu.php Menus 5.1 normal normal Awaiting Review defect (bug) new has-patch 2019-03-01T08:24:53Z 2023-06-14T15:34:35Z "In **wp-includes/class-walker-nav-menu.php line 177** there's a missing ''empty();'' function around ''$item->current''.
Causes PHP errors everywhere ''wp_nav_menu();'' function occurrence:
{{{
$atts['aria-current'] = $item->current ? 'page' : '';
}}}
Should be:
{{{
$atts['aria-current'] = ! empty( $item->current ) ? 'page' : '';
}}}" winston_wolf
Needs Patch 47520 [WP5.2.1] Crop images in IE11 not working Editor 5.2.1 normal normal Awaiting Review defect (bug) new 2019-06-10T17:20:19Z 2023-03-12T21:54:32Z "Hello,
I'm using IE11 with WordPress 5.2.1 and if I create a gallery with the Gutenberg editor and turn off the function ""crop images"" on the right bar the last picture is not resized (I created a four column gallery and the last picture is one in the last line). The last picture is 100% width on the complete site.
In Firefox and Edge it works, the picture has the right size.
" vincenz17
Needs Dev / Bug Wrangler Feedback 53450 [WP_Meta_Query] Add faster LIKE based 'STARTSWITH' and 'ENDSWITH' compare modes for value query Query normal trivial Future Release enhancement new needs-docs 2021-06-18T15:57:59Z 2022-09-20T14:56:48Z "Currently the ""LIKE"" compare mode for meta value compares is only usable for ''contains'' queries as it always adds wildcards around all queries {{{LIKE '%query%'}}}. This makes one use the more complex REGEXP compare mode for queries which easily could be written with {{{LIKE '%query'}}} or {{{LIKE 'query%'}}}.
As LIKE is faster than REGEXP it is preferable to use LIKE.
See: http://billauer.co.il/blog/2020/12/mysql-index-pattern-matching-performance/
In addition people don't have to use the much more complex regex. Which tends to introduce errors in my experience as most people just copy & paste but do not understand how regex really works (not meant as an offense). So REGEXP should be avoided if possible.
I would suggest naming the new compare types {{{STARTSWITH}}} and {{{ENDSWITH}}}. Also adding their {{{NON ...}}} counter parts to match up the ''LIKE'' behaviour.
**Maybe** also add an alias for ''LIKE'' named {{{CONTAINS}}} as the current naming ''LIKE'' suggests that you could pass in the wildcards yourself. Which is not the case and thus misleading. But this is just for the sake of the tickets completenes. The pull request only contains code and tests for the new modes.
As an alternative I thought about reworking the current LIKE mode to allow custom wildcard passing. But this will clearly break backward compat and thus I discarded this approach." janthiel
Has Patch / Needs Testing 54868 [WP_User_Query][Multisite] Run queries in the context of the correct site / blog_id Users normal normal Awaiting Review defect (bug) new has-patch 2022-01-20T21:23:57Z 2022-01-24T15:37:04Z "Context: WP Multisite
`WP_User_Query` can be executed from any site to query for users from any other site. This is done using the `blog_id` parameter.
{{{
$user_query = new WP_User_Query( array( 'blog_id' => 42 ) );
}}}
Contrary to the commonly used pattern when data is fetched from a specific site within a network, WP_User_Query does __not__ make use of the `switch_to_blog` / `restore_current_blog` functions and thus executes code always within the context of the site which called the query instead of the site the query was actually called for.
This has some implications:
1. Low level functions called within WP_Query are **not** aware of the correct context. Especially the `WP Object Cache` called from `cache_users` is not aware of the correct site and thus stores the resulting data at the ''wrong'' site. This has no impact running default WP installations but is conceptionally wrong and prevents any flexibility.
2. Superfluous code could be removed
{{{
if ( 'all_with_meta' === $qv['fields'] ) {
cache_users( $this->results );
$r = array();
foreach ( $this->results as $userid ) {
$r[ $userid ] = new WP_User( $userid, '', $qv['blog_id'] );
}
$this->results = $r;
} elseif ( 'all' === $qv['fields'] ) {
foreach ( $this->results as $key => $user ) {
$this->results[ $key ] = new WP_User( $user, '', $qv['blog_id'] );
}
}
}}}
https://github.com/WordPress/WordPress/blob/e07b5af0423ea294e5cc0987a9ffde0cb3835221/wp-includes/class-wp-user-query.php#L803-L816
Just one example: The calls to `new WP_User` could be reduced to `new WP_User( $user )` if done within the correct site context already. All the `wp_cache_` calls within `WP_User` will also run within the ''wrong'' site context.
**Benefit**
Using `switch_to_blog` shifts all `wp_cache_` and all other functions, hooks, etc. into the right context. The global `blog_id` will be set correctly to the site that is queried instead of the site that is querying. This will also follow standard WordPress Multisite patterns to access data from other sites." janthiel
Needs Patch 56480 _add_post_type_submenus doesn't use WP_Post_Type::$menu_position Posts, Post Types normal normal Awaiting Review defect (bug) new 2022-08-31T17:17:11Z 2023-04-12T19:26:37Z "Although it's possible to add a post type as a submenu when registering by setting the property show_in_menu, it's not possible to set the position.
This is happening because in the function [https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/post.php#L2071 _add_post_type_submenus] (wp-includes/post.php) the function add_submenu_page is called without passing the parameter $position.
{{{#!php
true ) ) as $ptype ) {
$ptype_obj = get_post_type_object( $ptype );
// Sub-menus only.
if ( ! $ptype_obj->show_in_menu || true === $ptype_obj->show_in_menu ) {
continue;
}
add_submenu_page( $ptype_obj->show_in_menu, $ptype_obj->labels->name, $ptype_obj->labels->all_items, $ptype_obj->cap->edit_posts, ""edit.php?post_type=$ptype"" );
}
}
}}}
Steps to reproduce the issue:
1. Add the code snippet in the functions.php of the theme (notice the 'menu_position')
{{{#!php
array(
'name' => 'Foo',
),
'show_in_menu' => 'edit.php?post_type=page',
'menu_position' => 20,
'public' => true,
)
);
register_post_type(
'bar',
array(
'labels' => array(
'name' => 'Bar',
),
'show_in_menu' => 'edit.php?post_type=page',
'menu_position' => 10,
'public' => true,
)
);
}}}
2. Visit the Dashboard and check that under the menu Pages, ""Foo"" appears **before** ""Bar""
Expected behaviour: ""Foo"" appears **after** ""Bar""" Rahmohn
Needs Reporter Feedback / Steps To Reproduce 43366 _default_wp_die_handler() Need filter code for update css style. Administration 4.9.4 normal normal Awaiting Review feature request new reporter-feedback 2018-02-20T10:49:46Z 2020-12-20T01:14:28Z "wp-includes\functions.php Line no 2768.
" ravipatel
Has Patch / Needs Testing 23454 _deprecated_function Messages chriscct7 General 3.5 normal normal enhancement assigned has-patch 2013-02-12T11:20:39Z 2019-06-04T19:44:32Z "Unlike ''_deprecated_file'' and ''_deprecated_argument'', the ''_deprecated_function'' function has no option to append a message to the triggered notice.
I propose adding this to make it consistant with the other 2 functions. Patch to follow." mikejolley
Needs Patch 54832 _doing_it_wrong should write into debug.log REST API 5.8.3 normal normal Awaiting Review defect (bug) new 2022-01-16T05:49:11Z 2024-02-14T14:26:27Z "I was created a plugin that called to `register_rest_route()` without `permission_callback` argument. It worked fine until WordPress 5.5 that this argument is now required.
However, the errors is not appears anywhere except in the REST API headers but it is very hard to notice about that.
I keep using the old code because I didn't know about this change as it is not showing in the debug.log.
Until one day that WordPress 5.8 released and I was entered to the new widget management and BOOM!
All errors appears on the debug.log now.
This function (`_doing_it_wring()`) is useful and **should** write the details into debug.log file no matter where it is called.
Example:
{{{
add_action('rest_api_init', 'myplugin_register_routes');
function myplugin_register_routes()
{
register_rest_route('myplugin', '/allitems', [
'args' => [
'mycustom' => 'args',
],
'methods' => \WP_REST_Server::READABLE,
'callback' => 'myplugin_get_items_function',
// 'permission_callback' => 'is_missing',// should always showing error in debug.log
]);
}
}}}
" okvee
Has Patch / Needs Testing 57757 _get_block_templates_files fails when code is stored in map called templates Themes 5.9 normal normal Awaiting Review defect (bug) new has-patch 2023-02-17T16:40:42Z 2023-03-08T16:14:00Z "I was setting up a local template for a Bedrock repository in a folder called `/Users/bas/git/work/templates/wp`, but because the path includes `templates` FSE themes using a `templates` folder instead of a `block-templates` folder will not work. This has to do with the way the slug of the template is decided by cutting of all the text up until `templates/`, but not checking if this text appears twice. By splitting the filename on this `base_path` it will actually work.
My WPSE question from before solving the issue:
https://wordpress.stackexchange.com/questions/413959/full-site-editing-templates-folder-vs-block-templates
I have already fixed this issue in Github, will create a PR as soon as this is created." bastolen97
Needs Dev / Bug Wrangler Feedback 44845 _get_list_table: Support for privacy requests tables Privacy 4.9.6 normal normal Future Release enhancement assigned dev-feedback 2018-08-27T09:32:12Z 2020-02-21T17:52:46Z "The admin table classes are served with {{{_get_list_table()}}}.
I wonder if we should add a support for the classes:
- {{{WP_Privacy_Data_Export_Requests_Table}}}
- {{{WP_Privacy_Data_Removal_Requests_Table}}}
in {{{_get_list_table()}}} for consistency.
" birgire
Needs Patch 49692 _prime_post_caches should not do anything if object cache is not running Cache API 5.4 normal normal Awaiting Review defect (bug) new 2020-03-24T16:49:35Z 2020-03-24T19:08:44Z "From what I can see
{{{
_prime_post_caches
}}}
does more harm than good when querying a large set of posts, and using the memory object cache.
There should be a check with
{{{
wp_using_ext_object_cache
}}}
and possibly a filter to override the behavior so this only takes action when object cache is in use." pcfreak30
Has Patch / Needs Testing 49865 _unzip_file_pclzip attempting to create directories all the way up to / Filesystem API 5.4 normal normal Awaiting Review defect (bug) new close 2020-04-09T20:33:07Z 2023-05-06T08:02:38Z "In wp-admin/includes/file.php _unzip_file_pclzip looks to be attempting to create directories all the way up to / (the root directory of the server).
Line 1411:
{{{
$to = trailingslashit( $to );
}}}
Adds a trailing slash to the destination path.
Line 1636:
{{{
$needed_dirs[] = $to . untrailingslashit( $file['folder'] ? $file['filename'] : dirname( $file['filename'] ) );
}}}
Adds the $to directory to $needed_dirs if there are files at the root level of the archive.
Line 1655:
{{{
if ( untrailingslashit( $to ) == $dir ) {
}}}
attempts to skip the $to directory, but since the top-level path in $needed_dirs includes a trailing slash this check fails.
So then lines 1663-1666:
{{{
while ( ! empty( $parent_folder ) && untrailingslashit( $to ) != $parent_folder && ! in_array( $parent_folder, $needed_dirs ) ) {
$needed_dirs[] = $parent_folder;
$parent_folder = dirname( $parent_folder );
}
}}}
add every directory all the way up to /, the root of the server to $needed_dirs
Finally line 1673:
{{{
if ( ! $wp_filesystem->mkdir( $_dir, FS_CHMOD_DIR ) && ! $wp_filesystem->is_dir( $_dir ) ) {
}}}
throws an error when checking if / is a directory and the entire unzip fails.
If I remove untrailingslashit from line 1655 (or wrap $dir in untrailingslashit as well) that check works as designed and the problem is avoided." mwheelermindbox
Needs Patch 43156 _walk_bookmarks(): please add the link id as HTML id attribute. Formatting 4.9.2 normal normal Awaiting Review enhancement new 2018-01-24T17:28:33Z 2018-01-24T17:28:33Z "Hi, would it be possible to add an HTML attribute that contains the WP link ID when outputting the a blogroll link with _walk_bookmarks() ?
It would be nice to be able to customize links with CSS.
I know it is possible to do it by hooking a function on 'wp_list_bookmarks', but... what a waste of time for nothing :)
Thanks" grosbouff
Needs Dev / Bug Wrangler Feedback 35927 _wp_attachment_metadata meta_value wrong type in export Export 4.4.2 normal normal defect (bug) new dev-feedback 2016-02-23T20:50:59Z 2019-10-24T06:06:09Z "this if from an export using wp 4.4.2, the particular post is from Dec 2010.
{{{
}}}
every width and height value is a string but should be an int!
{{{
s:5:""width"";s:3:""150"";s:6:""height"";s:3:""150"";
}}}
should be
{{{
s:5:""width"";i:150;s:6:""height"";i:150;
}}}
if i edit it manually, the import works.
could you provide database migration or something in the next update to fix the values?
this don't happen with newer articles." davidak
Has Patch / Needs Testing 54723 _wp_customize_loader_settings 'host' Customize normal normal Awaiting Review defect (bug) new close 2022-01-03T16:43:43Z 2022-01-05T01:56:29Z "`Undefined array key ""host"" in wp-includes/theme.php on line 3511`
Because i want relative permalinks to my site i use a filter like this
{{{
add_filter( 'home_url', function ($url){
return set_url_scheme( $url, 'relative' );
} );
}}}
So, `$home_origin['host']` in file theme.php produces Undefined array
" lagios.di
Has Patch / Needs Testing 41502 _wp_expand_nav_menu_post_data() corrupts multiple select (array value) Menus 4.9 normal normal Awaiting Review defect (bug) new has-patch 2017-08-01T04:01:03Z 2017-12-13T23:29:49Z "Hi guys.
Elliot here - ACF developer.
I've recently added custom fields to the WP menu and WP menu item forms.
In doing so, i have discovered that the `_wp_expand_nav_menu_post_data()` function (called in wp-admin/nav-menus.php on line 56) is corrupting some array $_POST values.
The issue is caused with inputs using a name like so:
`my_field[]`
`my_field[]`
Please note that there is no issue when a key is defined like so:
`my_field[0]`
`my_field[1]`
There are many cases where a developer would not define the 'keys' of an 'array type' input name. Think of a multiple select element. The element accepts only one name attribute and it must be defined like so `my_field[]`.
- Also, checkbox / radio fields are commonly rendered using the same naming style.
Is it possible to request some extra logic within the `_wp_expand_nav_menu_post_data()` function that allows for this?
I suspect the issue is caused on line 1125 of the 'wp-admin/includes/nav-menu.php' file where the $_POST value is modified:
`$new_post_data[ $array_bits[ $i ] ] = wp_slash( $post_input_data->value );`
Thanks
Elliot" elliotcondon
Has Patch / Needs Testing 10535 _wp_filter_build_unique_id issues with the first time a filter is hooked by a class Plugins 2.9 normal normal defect (bug) reopened has-patch 2009-08-02T12:22:18Z 2019-06-04T20:40:50Z "Ref #8723
The first time _wp_filter_build_unique_id is used to generate an ID the ID returned is different to the second time it is called. This presents a problem if the first ID is used when adding a filter which then needs to be removed later in the app flow... as the IDs don't match the filter is unremovable.
One workaround proposed is to set a wp_filter_id property before add the filter, and this will cause _wp_filter_build_unique_id to bypass the problem code and effectively forces the ""unique"" ID which is generated... this workaround feels unpoetic. ;)" simonwheatley
Has Patch / Needs Testing 41753 _wp_get_attachment_relative_path uses hardcoded uploads directory path Media 4.7.4 normal normal Future Release enhancement reopened has-patch 2017-08-29T15:55:55Z 2019-02-07T22:36:41Z "I'm using a theme that in turn uses the _wp_get_attachment_relative_path to help generate paths to uploaded images.
However, because my WordPress install changes the uploads directory path, the function returns the file system path for the attachment rather than then relative path within the uploads directory as expected, which ultimately breaks the intended functionality.
In _wp_get_attachment_relative_path, would it make sense to do something like the following instead of hard coding 'wp-content/uploads':
{{{
$uploads_dir = wp_upload_dir();
$uploads_basedir = $uploads_dir['basedir'];
if ( false !== strpos( $dirname, $uploads_basedir ) ) {
// Get the directory name relative to the upload directory (back compat for pre-2.7 uploads)
$dirname = substr( $dirname, strpos( $dirname, $uploads_basedir ) + strlen($uploads_basedir) );
$dirname = ltrim( $dirname, '/' );
}
}}}" nedga055
Needs Patch 53023 _wp_json_convert_string type mismatch: returns string on success; false on failure Formatting 4.1.4 normal normal Awaiting Review defect (bug) new 2021-04-12T21:07:07Z 2021-04-12T21:07:07Z "The private function `_wp_json_convert_string` (which converts a string to UTF-8) also returns `false`, though its `@return` specifies only `string`.
How? [https://www.php.net/manual/en/function.mb-convert-encoding.php `mb_convert_encoding`] returns a `string` on success and a `false` on failure.
Is this a bug or docs fix? It's both.
Reviewing its context, it's used by `_wp_json_sanity_check` to convert IDs and data value. The IDs are the problem. How so? Each ID is used as either a key or project for referencing the data value.
What happens if the conversion to UTF-8 fails? The key or property would either be an empty string or `false`. That's problematic as it can cause unexpected JSON encoding results.
For example, this [https://3v4l.org/n4qT6 3v4l snippet] simulates the convert encoding failure to view the results through the JSON encoding process. Notice how the returned JSON is invalid when it fails. (Note: This snippet is forcing a failure.)" hellofromTonya
Needs Dev / Bug Wrangler Feedback 24548 _wp_menu_item_classes_by_context assumes $queried_object->ancestors is an array Menus normal normal defect (bug) new dev-feedback 2013-06-09T19:08:16Z 2019-06-04T20:05:40Z "Recently, on a site using [http://wordpress.org/plugins/cpt-onomies/ CPT-onomies], I ran into an interesting error with _wp_menu_item_classes_by_context().
In this function, when setting the parent class, there is a large if statement that assumes that `$queried_object->ancestors` and `$possible_taxonomy_ancestors[ $parent_item->object ]` are arrays." wpsmith
Has Patch / Needs Testing 32918 "_wp_menu_item_classes_by_context does not generate ""current-menu-ancestor"" class when the menu structure was changed by e.g. a plugin" Menus 4.2.2 normal normal defect (bug) new has-patch 2015-07-08T08:50:27Z 2019-06-04T20:14:49Z "I am the developer of Category Posts in Custom Menu. My plugin extends Walker_Nav_Menu_Edit in order to change the menu structure. At the end of the edit loop, my plugin calls _wp_menu_item_classes_by_context on the resulting new menu structure.
In a particular case, this results in a missing ""current-menu-ancestor"" class, because _wp_menu_item_classes_by_context retrieves the ancestors from the database (i.e. the unchanged menu structure) instead of from the $menu_items array that was passed in and may now reflect a different structure.
Steps to reproduce with my plugin:
- Appearances > Menus
- Add to the menu a Page
- Add to the menu, as child of Page, a Category that has posts
- Check ""Create submenu containing links to posts in this category.""
This will result in my plugin editing the menu structure, and adding all posts to the menu instead of a link to the Category. Now navigate to one of these posts. You will see that the Page does not receive the ""current-menu-ancestor"" class.
I have performed a quick change in nav-menu-template.php that I have only tested with my plugin so far, so it will obviously need a rewrite. I'm attaching it nonetheless because it will quickly show in a few lines of code what took me a few paragraphs to explain here... :)" anaid
Needs Dev / Bug Wrangler Feedback 30452 _wp_translate_postdata() redundantly+destructively checks current_user_can( $ptype->cap->edit_others_posts ) on update Posts, Post Types normal normal defect (bug) new dev-feedback 2014-11-21T23:13:46Z 2019-06-04T20:48:03Z "The product use-case is that the creator of a post should always be able to edit the post, even when they've assigned someone else as a byline. To do so, I'm storing their user ID to post meta:
{{{
public function action_wp_insert_post_persist_author( $post_id, $post, $update ) {
$post_obj = Post::get_by_post_id( $post_id );
if ( $update
|| ! in_array( $post->post_type, Fusion()->get_post_types() )
|| ! $post_obj
|| ! $post->post_author ) {
return;
}
$post_obj->set_first_author_id( $post->post_author );
}
}}}
And then filtering `map_meta_cap`:
{{{
/**
* Filter map meta cap to do whatever custom caps we need
*/
public function filter_map_meta_cap( $caps, $cap, $user_id, $args ) {
switch ( $cap ) {
case 'edit_post':
$post_obj = Post::get_by_post_id( $args[0] );
if ( ! $post_obj ) {
break;
}
$post_type = get_post_type_object( $post_obj->get_post_type() );
// Allow first authors to always edit the post
if ( $post_obj->get_first_author_id() && $user_id == $post_obj->get_first_author_id() ) {
// Don't require editing others' posts
if ( false !== ( $key = array_search( $post_type->cap->edit_others_posts, $caps ) ) ) {
unset( $caps[ $key ] );
}
// If the post is published...
if ( 'publish' == $post_obj->get_status() ) {
$caps[] = $post_type->cap->edit_published_posts;
} elseif ( 'trash' == $post_obj->get_status() ) {
if ( 'publish' == get_post_meta( $post_obj->get_id(), '_wp_trash_meta_status', true ) ) {
$caps[] = $post_type->cap->edit_published_posts;
}
} else {
// If the post is draft...
$caps[] = $post_type->cap->edit_posts;
}
}
break;
}
return $caps;
}
}}}
This approach generally works — except the original author isn't able to save an update to a post because `_wp_translate_postdata()` aggressively checks `current_user_can( $ptype->cap->edit_others_posts )` ([https://core.trac.wordpress.org/browser/tags/4.0.1/src/wp-admin/includes/post.php#L67 ref]).
A check for `current_user_can( $ptype->cap->edit_post, $post_data['ID'] )` was added to `_wp_translate_postdata()` in r22950, but the changeset also leaves in the `edit_others_posts` check.
Given `current_user_can( 'edit_post' )` falls back to `edit_others_posts` behind the scenes ([https://core.trac.wordpress.org/browser/tags/4.0.1/src/wp-includes/capabilities.php#L1114 ref]), I'd expect we could remove the second check." danielbachhuber
Needs Dev / Bug Wrangler Feedback 50730 _wpCustomizeSettings has invalid data for starter-content widgets Customize normal normal Awaiting Review defect (bug) new dev-feedback 2020-07-21T21:52:08Z 2020-11-05T19:41:21Z "Copying from https://github.com/WordPress/gutenberg/issues/20827.
When Gutenberg is installed, and a site is set to ""fresh"", error messages are shown in the customizer for widgets included in a theme's starter content. The site with the starter content can not be published until the widgets are edited. In my tests, changing the widget title or content removed the error.
It does not seem to be theme dependent, I tested different themes that includes starter content. It's reproducible on 5.4.2.
**To reproduce**
Steps to reproduce the behavior:
1. Create a new WordPress site or reset an existing install
2. Activate Gutenberg
3. Activate a theme with starter content, for example Twenty Twenty or Twenty Seventeen.
4. Go to the Customizer.
5. Press Publish
6. See the error: Unable to save due to 2 invalid settings.
**Expected behavior**
I expect the starter content to be saved without errors.
**Additional info**
I investigated the forementioned GitHub issue and it seems that `_wpCustomizeSettings` has invalid widget data when customizer is used on a fresh site with starter content. By invalid, I mean it fails the check in [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-wp-customize-manager.php#L2359 this line].
I'll send a PR on GitHub." alshakero
Has Patch / Needs Testing 41978 `_delete_all_data()` does not delete attachment files johnbillion Build/Test Tools 4.7 normal normal Future Release defect (bug) reviewing has-patch 2017-09-25T14:30:55Z 2019-01-16T03:23:14Z "The `_delete_all_data()` function is called by `WP_UnitTestCase::wpTearDownAfterClass()`. The function deletes all the contents of the posts table in the tests database. However it does not delete any attachment files.
So when you create a shared attachment fixture in `WP_UnitTestCase::wpSetUpBeforeClass()`, `_delete_all_data()` will delete the attachment post in `WP_UnitTestCase::wpTearDownAfterClass()`, but leave the file.
There is no way to manually delete the attachment file in `wpTearDownAfterClass()`, because the attachment id no longer exists, and `wp_delete_attachment()` will therefore fail.
The solution: Instead of a direct SQL query, `_delete_all_data()` should use `_delete_all_posts()`, which accounts for attachments." Frank Klein
Has Patch / Needs Testing 39754 `_post_format_get_terms()` can overwrite names of terms in other taxonomies Taxonomy normal normal Awaiting Review defect (bug) new has-patch 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
Needs Docs or Unit Tests 43571 `add_feed` with regex characters breaks rewrite rules SergeyBiryukov Rewrite Rules normal normal Future Release defect (bug) reviewing needs-unit-tests 2018-03-18T17:44:20Z 2019-01-16T03:54:36Z `add_rule( 'test.json', ... )` does not get escaped with `preg_quote`. Fine for this example, but something like `add_rule( 'test[json]', ... )` will definitely yield unexpected results. Something like `add_rule( 'test???', ... )` will break the whole feed (maybe even more) regular expression. soulseekah
Needs Patch 35466 `add_filter()` errors when `spl_object_hash()` not exists General 4.4.1 normal normal defect (bug) new 2016-01-15T05:06:37Z 2019-06-04T19:54:52Z "`add_filter()` will errors when the following conditions are met.
1. `$function_to_add` is Closure
2. `spl_object_hash` function not exists
For example:
{{{
add_filter( 'template_include', function($args){
return $args;
},90 );
}}}" yaquawa
Needs Patch 55543 `add_menu_page` incorrectly requires SVG icon data URIs be base64 encoded Administration normal normal Future Release enhancement new 2022-04-07T23:00:35Z 2022-10-29T22:24:46Z "To determine if a developer is using an SVG in a menu, `add_menu_page` checks for a string beginning with `data:image/svg+xml;base64,`.
[https://css-tricks.com/probably-dont-base64-svg/ SVGs aren't required to be base64 encoded] and encoding with base64 can increase the size of the attribute.
The check ought to be modified to allow for additional encodings.
" peterwilsoncc
Needs Patch 46586 `determine_current_user` filter only run once per request Users normal normal Awaiting Review feature request new 2019-03-21T09:23:54Z 2019-03-21T09:43:00Z "The `determine_current_user` filter (source:trunk/src/wp-includes/user.php#L2698) in `_wp_get_current_user()` (source:trunk/src/wp-includes/user.php#L2639) was introduced by @nacin in changeset:27484/trunk/src/wp-includes/pluggable.php.
It is only run ''once'' per request, i.e. if the global variable `$current_user` is still empty. This leads to problems when a plugin calls `wp_get_current_user()` early and other plugins that are executed later rely on the filter callback to be executed.
Example (pseudo code):
{{{#!php
` without `srcset` and `sizes` attributes.
This is important for header images that are normally quite large.
The custom header image method doesn't use the normal WordPress `wp_get_attachment_image` method for outputting the actual ``, instead it constructs the `` markup with its own code.
Related issue: https://core.trac.wordpress.org/ticket/46134#comment:6" strarsis
Needs Patch 44279 `get_terms()` with `child_of` and `childless` combined Taxonomy 4.9.6 normal normal Future Release defect (bug) reopened 2018-05-30T15:30:32Z 2024-02-28T23:30:40Z "Hi there! I'm not sure if I found a bug or this is intended behaviour: If I use a combination of `childless` and `child_of` in a `get_terms` call, I get zero results.
My taxonomy's structure:
{{{
- Genre
-- Hip Hop
-- Trap
-- Rap
- Location
-- Europe
--- Germany
--- Sweden
--- Austria
-- Asia
--- China
--- Japan
--- Taiwan
}}}
My code:
{{{#!php
$location_parent->taxonomy,
'hide_empty' => false,
'child_of' => $location_parent->term_id,
'childless' => true
));
}}}
I'm trying to only list countries, basically children of 'location' that don't have children of their own." nonverbla
Needs Patch 53108 `get_theme_file_uri()` fails with query params Themes 5.7.1 normal normal Awaiting Review enhancement new 2021-04-29T01:18:08Z 2021-04-29T02:44:02Z "`get_theme_file_uri()` fails to locate a file if it is supplied with any query params and incorrectly falls back to returning the parent theme's path to the file, including the supplied query params. This prevents the ability to use a bundler's versioning without adding complexity to registering scripts and styles.
{{{#!php
> File ""src/wp-includes/class-wp-simplepie-file.php"" changed.
>> File ""src/wp-includes/SimplePie/File.php"" changed.
Running ""clean:dynamic"" (clean) task
>> 0 paths cleaned.
Running ""copy:dynamic"" (copy) task
Copied 1 file
}}}
It doesn't happen all of the time, but it happens often, and makes testing changes very frustrating.
==== Workaround
In the mean time, I've written [https://github.com/iandunn/dotfiles/blob/38b796b/bin/wp-develop-phpstorm-watcher.php a simple PhpStorm file watcher task]." iandunn
Needs Dev / Bug Wrangler Feedback 43046 `has_image_size()` returns false for Core image sizes Media 3.9 normal minor Future Release defect (bug) assigned dev-feedback 2018-01-08T21:37:31Z 2020-02-21T17:52:25Z "`has_image_size()` returns `false` (does not exist) for the four core image sizes (thumbnail, medium, medium_large, large).
`get_intermediate_image_sizes()` returns these core image sizes merged with custom registered sizes through `add_image_size()`.
`has_image_size()` should return true for the core image sizes, or the function docs should note that the core image sizes are not checked in the function." desrosj
Needs Docs or Unit Tests 44801 `image_constrain_size_for_editor()` forcing the `$content_width` messes up dimensions Media normal normal Future Release defect (bug) new needs-unit-tests 2018-08-15T09:27:19Z 2019-04-15T21:58:52Z "The `image_constrain_size_for_editor()` currently looks at the `$content_width` global that themes may define. For `medium_large`, `large` and any custom image sizes, the actual image size's width will be evaluated against the `$content_width`, and the minimum will be used.
This results in the following (example):
* Let's say `$content_width` is 640.
* Let's say your `large` image size constraints are 1280x1280.
* Let's say your image in `large` size is 1280x960.
* Instead of using the image size width (1280), it will use the `$content_width` since it's smaller (640), resulting in 640x480 being used for the dimension of the image in `large` size.
This makes sense for the default behavior, but that computed size is used in many different areas, including `wp_prepare_attachment_for_js()`, where the `sizes` property then would show something like this for the `large` size (continuing the above example):
```js
{ width: 640, height: 480, url: '.../my-image-1280x960.jpg', orientation: 'landscape' }
```
Regarding what I want to accomplish with the custom image sizes, this results in unexpected behavior. For example in my case, I was looking into dynamically generating media queries for a background image, using the sizes. I was expecting for my code to generate `@media (max-width: 1280px) ...` for the image, but it would generate `@media (max-width: 640px) ...` due to the changed size.
As I already said, the `$content_width` global makes sense to take into account by default. However, it is currently hardcoded into the function. I think it should be moved into a filter (we already have `editor_max_image_size` which is perfect for that), so that someone could temporarily unhook that behavior for custom use-cases." flixos90
Needs Dev / Bug Wrangler Feedback 32705 `includes_url` shouldn't use `site_url()` on the frontend Permalinks normal normal defect (bug) new dev-feedback 2015-06-18T15:18:09Z 2019-06-04T20:50:36Z "Multisite / Domain Mapping
1. `site_url()` is your admin, `home_url()` is your frontend
1. The site url is blocked behind a firewall
1. You call `includes_url()` for a script on the frontend: your script is blocked, because it loads your admin domain on the frontend
I noticed this because we are trying to upgrade the NYT to 4.2.* and emoji scripts are showing up everywhere.
I can remove the action for now." wonderboymusic
Has Patch / Needs Testing 40695 `install_blog` suppresses database errors Database normal normal Future Release defect (bug) new has-patch 2017-05-08T20:18:03Z 2017-06-01T19:19:28Z "`install_blog` uses error suppression and `DESCRIBE $table` to detect the absence of tables. Error suppression can be removed in favor of `SHOW TABLES LIKE $table`, as in the patch on #40694.
Another source of errors in `install_blog` is the call to `get_blogaddress_by_id`. This attempts to read the site's `home` attribute which hits the magic `WP_Site->__get`, which ultimately leads to a `SELECT` against the non-existent options table." andy
Needs Dev / Bug Wrangler Feedback 35913 `is_()` conditional methods should share their logic Query normal normal Future Release defect (bug) new dev-feedback 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
Has Patch / Needs Testing 55821 `is_email()` does not follow PHP FILTER_VALIDATE_EMAIL rules, when an email has double period (..) Formatting 5.9.3 normal normal Awaiting Review defect (bug) new has-patch 2022-05-25T10:44:30Z 2023-06-17T09:00:31Z "If there has a typo in an email address like there has double period .. in an email address ( abc..def@xyz.com ). `is_email()` function return valid email when we have use like -
{{{
is_email( 'abc..def@xyz.com' )
}}}
Where it should not return as valid email address. Which is working with PHP `FILTER_VALIDATE_EMAIL` checking. When we are checking the same kind of email with below code it return `boolean false`.
{{{
filter_var( 'abc..def@xyz.com', FILTER_VALIDATE_EMAIL )
}}}
Expected behaviour should be like this. When use `is_email()` function it should respect like what PHP does.
" khokansardar
Needs Patch 48360 `meta_value` is ignored when empty string is provided Query 3.2 normal normal Awaiting Review defect (bug) new 2019-10-17T16:40:23Z 2020-02-13T12:30:59Z "When trying to create a custom query using `meta_*` parameters, `WP_Meta_Query` will ignore `meta_value` if it is an empty string.
This does appear to be somewhat intentional, since `WP_Query` will set the default value for `meta_value` to an empty string. This can be seen here: https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-wp-meta-query.php#L255
The problem comes when you want to write a query that specifically targets meta keys that have empty values. The `'meta_value' => ''` parameter is stripped, and then the query does not behave properly. Here's an example query:
{{{#!php
'product',
'posts_per_page' => 10,
'meta_key' => '_regular_price',
'meta_value' => '',
'meta_compare' => '=',
);
$query = new WP_Query( $args );
}}}
I would like to propose that an empty string be allowed for `meta_value`. Alternatively, the fact that an empty value will be stripped should at least be documented more clearly so that developers know to expect that behavior.
Props also to @richardbuff for helping identify the issue." JPry
Needs Patch 54135 `nav_menu_meta_box_object` filter doesn't work on taxonomies Menus normal normal Awaiting Review defect (bug) new 2021-09-16T19:16:45Z 2021-09-16T19:44:03Z "I am trying to remove the pagination on main category taxonomy but it doesn't work
{{{#!php
name ) {
$post_type->_default_query['number'] = -1;
}
return $post_type;
}
add_filter( 'nav_menu_meta_box_object', 'disable_pagination_in_category_meta_box', 9 );
}}}
Think it's bug but not sure
" papazetis
Needs Reporter Feedback / Steps To Reproduce 55946 `post_tag` is not supporting in rest api for custom meta REST API 5.9.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-06-08T07:41:59Z 2022-09-16T22:01:22Z "Hello,
Recently I have encountered with this issue. I have registered a custom meta for `post_tag` and `category` taxonomy. and then I register in the rest api for this field. In rest api for `category` the custom meta key is showing where in the `post_tag` rest api it's not showing. I have added proper object types in the `register_rest_field`. In `Tags` rest api it is showing if I add the object type as `tag`. Which is pretty confusing.
Reproduce Steps:
1. Register Custom Meta for Category and Post Tag (You may add it through cmb2 or ACF)
2. Enable the custom meta field in rest api.
3. Update your terms on category and Tags.
4. Check both the rest api endpoint with the ID/slug" kapilpaul
Needs Dev / Bug Wrangler Feedback 44964 `redirect_guess_404_permalink` doesn't support array in `post_type` var Query 4.9 normal normal Awaiting Review defect (bug) new needs-unit-tests 2018-09-19T09:35:59Z 2018-10-01T12:37:02Z `redirect_guess_404_permalink` doesn't support array in post_type var, but other core WordPress parts support it. viliamkopecky
Has Patch / Needs Testing 36634 `register_post_status()` default causes notices in post list table Posts, Post Types normal normal defect (bug) new has-patch 2016-04-22T15:14:08Z 2019-06-04T20:57:24Z "The default value for the `$label_count` parameter in `register_post_status()` is an ""array of `$label`, twice."" As far as I can see, `$label_count` is used only once in core: in `WP_Posts_List_Table::get_views()`, where it's passed to `translate_nooped_plural()`.
However, `translate_nooped_plural()` assumes the array it receives was generated through `_n_noop()` or similar. So the default `$label_count` value leads to undefined-index notices for each of the expected array keys when viewing the list table.
To replicate, register a post status with these args, assign a post the 'test' status, and view the post list table:
{{{
add_action( 'init', function () {
register_post_status( 'test', array( 'label' => 'Test', 'show_in_admin_status_list' => true ) );
} );
}}}
The attached patch would fix the notices by checking the `$nooped_plural` keys in `translate_nooped_plural()` and attempting to return a fallback value.
Also, even though `$label_count` is an optional argument, it looks to me like developers are expected to register it as the list table expects. So, the patch would add a `_doing_it_wrong()` call to `register_post_status()` when no `$label_count` is included. This does, however, also flag the `auto-draft` and `inherit` statuses." dlh
Needs Patch 55452 `safecss_filter_attr` removes background-images with URL parameters Formatting normal normal Future Release defect (bug) new 2022-03-23T21:41:18Z 2022-04-20T20:22:16Z "If you try to add a background-image using an inline style, and the URL has query parameters (specifically, an `&`), the background-image will be stripped from the content.
What seems to be happening: the `&` is encoded, and becomes `&`, and when `safecss_filter_attr` splits the `$css` into separate declarations, it does so just by [https://github.com/WordPress/wordpress-develop/blob/ee96cedcb891c6a6e5b7b30a6f1c247345161b88/src/wp-includes/kses.php#L2242 breaking on a semicolon], which breaks the URL value. For example, `background-image:url(https://fake.test/image.png?a=1&b=2);` becomes `background-image:url(https://fake.test/image.png?a=1&` and `b=2)`, and neither are valid CSS.
**To reproduce:**
Try adding this Media & Text block, which uses this image: [https://img.rawpixel.com/s3fs-private/rawpixel_images/website_content/a005-scottw-465.jpg?w=1200&h=1200&fit=clip&crop=default&dpr=1&q=75&vib=3&con=3&usm=15&cs=srgb&bg=F4F4F3&ixlib=js-2.2.1&s=06d4e5a9962096a6010029591ae36198 https://img.rawpixel.com/s3fs-private/rawpixel_images/website_content/a005-scottw-465.jpg?w=1200&h=1200…]
{{{
}}}
When you save and view the post, the background-image is gone." ryelle
Needs Dev / Bug Wrangler Feedback 53910 `sanitize_title_with_dashes` returns partial encoded values in permalink SergeyBiryukov Permalinks 5.8 normal major Future Release defect (bug) reviewing dev-feedback 2021-08-10T21:48:09Z 2022-05-03T02:42:28Z "Picked up quite an old bug (circa 2006!) while working on #47912.
`sanitize_title_with_dashes()` does a check to see if the title `seems_utf8()` and subsequently url encodes it. The call to `utf8_uri_encode()` has a `$length` argument of `200`.
If an encoded value crosses the 200 boundary, the encoded value is cut and the remainder isn't picked up by any of the subsequent actions taken by `sanitize_title_with_dashes()`.
>this-very-long-title-is-to-help-demonstrate-that-partial-encoded-values-remain-when-you-try-to-use-sanitize-title-with-dashes-on-encoded-strings-trimmed-to-200-chars-instead-of-using-max-and-strlen**%e2%80%af**
becomes:
>this-very-long-title-is-to-help-demonstrate-that-partial-encoded-values-remain-when-you-try-to-use-sanitize-title-with-dashes-on-encoded-strings-trimmed-to-200-chars-instead-of-using-max-and-strlen**%e2**
I've resolved this issue by:
- Storing the `seems_utf8()` value
- Changing the call to `utf8_uri_encode()`, so that the `length` argument is the `max()` of `strlen( $title )` and `200`
- Trimming the `$title` to `200` at the end of the `sanitize_title_with_dashes` instead." costdev
Needs Dev / Bug Wrangler Feedback 43238 `suppress_filters` not set in `pre_get_posts` hook Query 4.9.4 normal normal Awaiting Review defect (bug) reopened dev-feedback 2018-02-06T21:56:46Z 2022-05-13T09:56:29Z "After updating to 4.9.4 my media library is empty locally and on my server. I confirmed this on a handful of sites that I have updated.
I cleared the cache and also checked the console.
I don't see any errors or any ajax requests being made.
The /wp-json/wp/v2/media does however contain a response with media.
Locally I am running latest OSX, my server is Ubuntu 16.04 both with PHP ~7.0" adampatterson
Needs Patch 56663 `tag_escape()` does not follow naming convention. Formatting normal normal Awaiting Review enhancement new 2022-09-27T03:08:33Z 2022-09-27T14:06:24Z "In WordPress, escaping functions generally use the naming convention `esc_thing()`.
The `tag_escape()` function and it's associated hook do not. Is it worth renaming each to either `esc_tag` or the more precise `esc_html_tag`?
There is some [https://wpdirectory.net/search/01GDYE8DKXN527KR6GDA24HCE2 use within the plugin repository] but not a huge amount.
" peterwilsoncc
Needs Dev / Bug Wrangler Feedback 37920 `the_title` filter called in 2 places inconsistently Menus normal normal Awaiting Review defect (bug) new dev-feedback 2016-09-02T14:20:21Z 2019-04-19T13:22:41Z "This is a follow-up to #35317.
When calling `wp_nav_menu()` to build a frontend nav menu, the filter `the_title` ends up being called 2 times on page links, due to the above ticket.
It is called here https://github.com/WordPress/WordPress/blob/master/wp-includes/nav-menu.php#L754
and then here https://github.com/WordPress/WordPress/blob/master/wp-includes/class-walker-nav-menu.php#L169.
So it is called once when getting the post object title and then again when actually outputting the nav menu.
I think this is negative for 2 reasons:
1) Anyone who wants to filter `the_title` for nav menu items will end up having it called 2 different times, which is odd and can provide inconsistency
2) In both cases, an object ID is included, but the first call the object ID is the Post that the menu item links to (where the title comes from) and the second call the object ID is the nav menu item ID. This means, if a developer anticipates the 2 calls, they cannot check against the supplied object ID to confirm operations only happen once." joelworsham
Needs Patch 40300 `title` parameter causes `WP_Query` to return sticky posts. Query 4.7.3 normal normal Awaiting Review defect (bug) new 2017-03-29T14:24:28Z 2017-03-29T14:24:28Z "When a `title` parameter is present in the WP_Query arguments array then sticky posts are included in the `$query->posts` array.
I'm not sure is it a bug, or is it just an incomplete documentation. The same happens with `post__in` parameter but in this case, I'm sure that it's not a bug because the documentation mentions that sticky posts are returned when using the `post__in` parameter." wujek_bogdan
Has Patch / Needs Testing 38931 `update_option()` race condition with non-autoloaded options Options, Meta APIs 3.7 normal normal Awaiting Review defect (bug) new has-patch 2016-11-24T13:31:55Z 2022-06-09T00:26:55Z "Starting back in [25664] there's a race condition with object caches where `get_option()` will return a value, but `update_option()` will refuse to update it.
This is kind-of-related to `alloptions`, but affects non-autoloaded options (which are not in `alloptions`, but in their own cache).
Consider the following scenario:
{{{
Process 1: Fetch option_a. Fills local cache.
Process 2: Update option_a.
Process 1: Delete option_a.
Process 2: Update DB.
Process 1: Delete from DB. Delete from remote cache.
Process 2: Update remote cache.
...
Process 5: Fetch option_a. Fills local cache from remote cache.
Process 5: Update option_a. FAIL. DB doesn't have option. abort. cache not updated.
...
(repeat process 5 above many times)
Process 10: Get option_a (Still the value that Process 2 set in cache, even though it's not in the DB)
Process 10: Update option_a (Doing the same as Process 5 now). FAIL.
}}}
Seems very racey and unlikely, but I've seen it happen on WordPress.org at least twice in the last few weeks when we update Jetpack (which makes heavy usage of the options table, and is loaded on most WordPress.org requests).
When it happens, `get_option()` will continue to return a stale value from the cache that no longer exists in the DB and `update_option()` will fail to update the option as long as it exists in cache.
If a plugin is performing an operation to update the stale option often, it can cause a huge load spike on the database server of never-ending failing `UPDATE` queries.
The only way to 'fix' it is to create the DB row manually, or flush the object cache key.
The patch attached attempts to perform an `add_option()` in the case of the `update_option()` DB query failing.
This isn't exactly a new behaviour for options - `add_option()` will effectively perform an `update_option()` in the event the option you're trying to add already exists (through it using `INSERT .. ON DUPLICATE KEY UPDATE..`), doing it in reverse doesn't seem that out of the question." dd32
Needs Patch 44375 `update_option` in `WP_Widget::update` breaks Customizer Widgets normal normal Awaiting Review defect (bug) new 2018-06-15T16:24:28Z 2019-01-17T00:28:13Z "Thanks to @westi for explaining [https://github.com/WordPress/WordPress/blob/b13e73d/wp-includes/class-wp-customize-widgets.php#L1945-L1967 this code] to me.
It seems that we keep track of the number of `update_option` calls which is what powers the ability for the Customizer to show a bunch of changes live that haven't been applied yet.
So as a consequence, we are not supposed to change any options within `WP_Widget::update`, by design, or otherwise it will [https://github.com/WordPress/WordPress/blob/master/wp-includes/class-wp-customize-widgets.php#L1456-L1459 fail].
We discussed with @westi and we both agree that it isn't expected that widgets directly manage options but instead the API manages the widget's settings for it so the widget doesn't have to be multi-use aware.
However, it should be made somewhat explicit in WordPress I believe, as it only fails in the Customizer, and not when you do these changes from `wp-admin/widgets.php`. It's kind of like a ""hidden"" bug :)
I am not sure if we want to just call a `_doing_it_wrong()` or rework this part to allow devs to call `update_option` within `WP_Widget::update`.
Steps to reproduce:
1. Have a widget that calls `update_option` within the `update` method. Example widget [https://gist.github.com/bor0/f70a3db039f66d15cdc15b1bf8fa066f here].
2. Change the title through `wp-admin/widgets.php`
Expected = Actual: Title saves fine
3. Change the title through Customizer
Actual: `An error has occurred. Please reload the page and try again.`" bor0
Needs Patch 44704 `wp.media.view.EmbedLink` and `oembed/1.0/proxy` don't work as expected Embeds 4.9.7 normal normal Awaiting Review defect (bug) new 2018-08-02T14:43:51Z 2018-08-07T08:43:17Z "It seems that `wp.media.view.EmbedLink` and the REST route `oembed/1.0/proxy` don't respect the `maxwidth` oEmbed parameter in all cases.
**To Reproduce**
Steps to reproduce the behaviour:
1. Create a new post.
2. Click on ""Add Media"" button.
3. Choose ""Insert from URL"" interface.
4. Paste a valid YouTube URL: https://www.youtube.com/watch?v=KA_CLal14u4
5. See the YouTube `