__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 = '

' . /* translators: %s: Asterisk symbol (*). */ sprintf( __( 'Required fields are marked %s' ), '*' ) . '

' . '' . $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 test italic normal
paragraph
paragraph
paragraph paragraph
  
  Honor
    this whitespace

paragraph paragraph

paragraph

text
}}} === Output {{{

paragraph


paragraph test

italic
normal

paragraph

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 Should be rendered: 2) The settings pages themselves are laid out using a table. Tables should be reserved for tabular data, and not for page layout. CSS should be used for layout instead. Thanks for your attention." taupecat Needs Dev / Bug Wrangler Feedback 43305 Accessibility Issue in Arranging the Menu Items: I need a combobox for selecting the parent item and a combobox for selecting the item position rcreators Menus normal normal 6.6 defect (bug) assigned dev-feedback 2018-02-13T07:03:23Z 2024-03-16T14:06:20Z "Hello I shall firstly thank WordPress team for their utmost attention to accessibility standards, which makes WordPress unique among all CMSs. All WordPress core features are fairly Accessible for me as a blind person who uses screen reader (JAWS), but I always have problems with rearranging the menu items. Although the menu-items are also very accessible for a blind person and I can re-arrange them very well, this process is very time consuming for me, because; for example, if I want to send a menu-item from position 16 to position 11, I have to press “Move Up” 5 times. The problem is: I don’t have any combobox that assigns the mother-item and the item-position. Therefore, I have to adjust the positions by moving each item one by one, level by level. Suppose I have a menu with lots of sub-menus and sub-items. Now, I want to add 6 new sub-items to the different menus. Of course, when I add them to the menu, they are at the end of menu. If I want to bring each item to a certain position near the center of menu, I have to click “Move up” and “Move down” one by one for many many times over and over. It takes me about 2 hours to rearrange those menu items. I hope I could explain clearly. Solution: Beside each menu item, there is a link called “Edit Menu Item”. When I click on the link, a set of options open up: move up, move down, name, etc. I would like to have two other options as well: mother-item, and position. For example, I adjust the mother-item of “Audio Translation” as “Translation”, and I adjust its position to “2”, which means subitem number 2 under “Translation”. I hope I could explain clearly what I mean. If I can adjust the menu positions with comboboxes, I will not have to click “move up” and “move down” many many times. " javad2000 Needs Patch 51786 Accessibility issue with the logo on the login page Login and Registration normal normal Future Release enhancement new 2020-11-16T13:36:38Z 2020-12-11T08:27:46Z "Currently, the login page (wp-login.php) contains a logo, that is created using the following HTML markup: {{{

Powered by WordPress

}}} Both the href URL and the link text can be filtered. Through CSS, the link text is placed off-screen, and a logo is added to the link as a background. The

is required for proper a11y, but it should contain the title for the page below. Something like ""Log in"" would probably be ideal. Instead, it currently contains a link that takes the user off the page, with no description of the login page's content. This is causing serious issues for client who are required to conform to WCAG standards, as required by European law. I'd like to suggested removing the

from around the logo link, and adding an actual

title to the white box below, with relevant textual content." roytanck Needs Patch 52303 Accessibility issues in revisions screen joedolson Revisions 3.6.1 normal normal Future Release defect (bug) assigned 2021-01-15T00:04:34Z 2021-01-27T21:59:41Z "In the course of assessing a functional problem with `wp_text_diff`, a number of accessibility concerns were unearthed regarding the revisions screen. Once the output of `wp_text_diff` is settled, the other concerns noted in #25473 should be addressed here. " joedolson Needs Reporter Feedback / Steps To Reproduce 58272 Accessibility issues with core embed block's handling of Flickr and TikTok joedolson* Embeds 6.2 normal normal Future Release defect (bug) accepted reporter-feedback 2023-05-08T21:57:00Z 2024-02-05T20:43:59Z "There is an accessibility error with the embed iFrame for Flickr and TikTok. Specifically, that the iFrame is missing a title, with no ""title"" attribute, or the ""title"" attribute being empty. Site Improve is requesting that the frame provide an attribute titie="""", and to add a description of the content in the title. There is also an ""Link without a text alternative"" message for the link, stating that ""links should always have a text alternative"". In order for a link to be readable by screen reader users links must all contain either plain text, or in the case of a linked image, alt text describing where the link goes. If the linked image contains text, a good general rule is to make the alt text the same, or similar to the text in the image. The same issue goes with the inline (iframe) frame, that does not include a text altnerative. All three of these issues will lower page accessibility for those using screen readers. Thanks for your help. " markcmorantt Needs Dev / Bug Wrangler Feedback 20746 Accessing non-existing theme folder in Network install gives 500 error Rewrite Rules 3.3.2 normal normal Future Release defect (bug) reopened dev-feedback 2012-05-25T10:28:39Z 2023-08-30T15:49:37Z Accessing non-existing theme folder in Network install gives 500 error and following error in error log: ''Request exceeded the limit of 10 internal redirects due to probable configuration error.'' arkimedia Needs Docs or Unit Tests 52990 Account for single quoted attributes when lazy loading images and iframes. Embeds 5.5 normal normal Awaiting Review defect (bug) new needs-unit-tests 2021-04-07T00:24:58Z 2021-06-11T00:22:11Z "`wp_iframe_tag_add_loading_attr()` and `wp_img_tag_add_loading_attr()` includes a check to ensure the elements have a `src`, `width` and `height` attribute before adding the lazy loading attribute. In both functions the check only considers attributes using double quotes so the lazy loading tag is not added for elements using single quoted attributes. [https://github.com/WordPress/wordpress-develop/blob/895d6a691d7ccdfe80cdf999bc0c8a78d11ad55a/src/wp-includes/media.php#L1893-L1895 img ref], [https://github.com/WordPress/wordpress-develop/blob/895d6a691d7ccdfe80cdf999bc0c8a78d11ad55a/src/wp-includes/media.php#L2012-L2015 iframe ref]. As WordPress does not normalize attribute tags to use double quotes, single quoted attribute tags ought to be considered. Image version 5.5, iframe version 5.7. Follow up to #50756, #52768." peterwilsoncc Needs Patch 49169 Action Hook 'edited_terms' in function 'wp_update_term()' needs the Form POST Parameters Taxonomy normal normal Awaiting Review enhancement new 2020-01-11T14:40:44Z 2020-01-12T09:46:32Z "Hello, In order to implement the Term Meta Data Form as documented in #48000 I found that the Edit Form POST Parameters are not passed the Action Hook `edited_terms` in the function `wp_update_term()`. The Filter `wp_update_term_data` does receive the POST Parameters in the `$args` Variable but the later Action `edited_terms` does not. According to the Relationship between the Term Meta Data and the Term it is required that the Term is a valid Database Entry in order to insert savely the Term Meta Data. So only AFTER checking that the Term is correct and exists the Term Meta Data can be inserted. So I would love to change the Action Function Call accordingly." bodohugobarwich Needs Reporter Feedback / Steps To Reproduce 54994 Action Hook admin_enqueue_scripts and wp_enqueue_scripts Plugins 5.9 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-01-30T08:58:51Z 2022-01-31T01:12:29Z "Hey, I'm a developer, I wanted to know if it's a bug, or am I doing it wrong way? When using admin_enqueue_scripts (both methods static in the same class, I can not use it this way [ ( new self() ), 'admin_enqueue_scripts' ], It will throw errors). {{{#!php ID, get_object_taxonomies( 'post' ) ); }}} 2. But in block editor, hope we are separately storing the category and terms(Please correct me if am wrong) 3. In block editor on old post status as ""new"" and new post status as ""publish"" (This would the first time publish of that post), in wp_insert_post() we are not getting the category or terms to store in that post, so while entering transition_post_status action hook, we are not able to get the corresponding selected category instead we are getting the Uncategory for that post as a default. 4. In block editor we are getting the corresponding post category for action hook transition_post_status, but the post status are incorrect, the old post status and new post status is ""publish"", which is equivalent to update, so we are not able to identify whether the post has been published first or update. Please let me know if the above is unclear. Thanks M A Vinoth Kumar" vinoth06 Has Patch / Needs Testing 32508 Action Hooks for empty username and empty password Login and Registration 4.3 normal normal enhancement new has-patch 2015-05-27T16:19:13Z 2019-06-04T20:14:06Z "While you could previously fire an action on ''wp_login_failed'', there were no hooks for an empty username or an empty password. This patch adds ''wp_login_failed_empty_username'' and ''wp_login_failed_empty_password''. ''wp_login_failed_empty_username'' passes no arguments. Similar to ''wp_login_failed'', ''wp_login_failed_empty_password'' will pass the entered username. " jwarren Has Patch / Needs Testing 28528 Action in wp-login.php Login and Registration normal normal enhancement new has-patch 2014-06-13T13:28:21Z 2019-06-04T20:08:10Z "Hi, I was thinking that wp-login should have some do actions, and more customization possible, like filtering username and password inputs. Is it in program? Thanks :)" SGr33n Needs Patch 41324 Action of password-protect form. Posts, Post Types normal normal Awaiting Review defect (bug) new 2017-07-14T12:38:49Z 2017-07-14T12:43:17Z "The default form action too-easily (I think just two submissions of a blank or incorrect password) loads wp-login.php?action=postpass with a 'service unavailable' message'). Simple validation to ensure correct password can prevent this. " gulliver Patch Needs Refresh 7795 Activate and Deactivate Theme hooks Themes 2.7 normal normal Future Release enhancement assigned 2008-09-26T20:40:53Z 2019-03-15T00:32:18Z Currently, there is no standard way of checking whether of theme is activated, deactivated and uninstalled. Plugins have this capability and themes should also have the same to ensure that both share similar functionality. jacobsantos Has Patch / Needs Testing 44891 Activate button showing after theme activated Themes 4.9.8 normal normal Awaiting Review defect (bug) new has-patch 2018-09-05T06:24:28Z 2018-09-06T15:17:33Z "How to get bug:- First go on Appearance - > Theme After that active theme i will go on next page add new theme on this page my activated theme showing again active button." anilhada Needs Patch 59605 activate, deactivate items in menue General normal normal Awaiting Review feature request new 2023-10-12T21:16:25Z 2023-10-12T21:16:25Z It will be nice for an feature, to activate/deactivate the items in the menue. joskis Needs Patch 41646 activate.php and deactivate.php for Plugins Plugins 4.8.1 normal normal Awaiting Review feature request new 2017-08-15T15:01:12Z 2017-08-15T18:21:58Z "There's currently a file for `uninstall.php` to simplify things. Alternatively, there's also a hook available. There's hooks for plugin activation and deactivation. However, I think those hooks can be a bit tricky for newbie plugin developers. I think by implementing a file for `activate.php` and `deactivate.php` could simply plugin development. I'm totally fine using hooks for my own sake, but I just thought it could help simplify plugin development slightly. It might also make things easier on the code review team?" michael.ecklund Has Patch / Needs Testing 52405 activate_{$plugin} not passing $network_wide boolean to action handler Plugins 3.0 normal normal Awaiting Review defect (bug) new has-patch 2021-01-31T07:19:07Z 2021-02-23T01:04:05Z "When using {{{register_activation_hook}}}, the {{{""activate_{$plugin}""}}} action doesn't pass the {{{$network_wide}}} boolean as the parameter for the callback. Instead, the parameter gets substituted with an empty string, breaking the page when using strict typing, as it expects a boolean. Looking at how it's done when activating plugins, it uses {{{is_network_admin()}}} as the parameter https://core.trac.wordpress.org/browser/trunk/src/wp-admin/plugins.php?rev=49683#L124 Same thing should happen here: https://core.trac.wordpress.org/browser/trunk/src/wp-admin/plugins.php?rev=49683#L193 {{{do_action( ""activate_{$plugin}"", is_network_admin() );}}} " noplanman Needs Patch 18301 Activating a new theme on multisite is very long-winded DrewAPicture* Themes 3.1 normal normal Future Release enhancement accepted 2011-07-30T23:38:48Z 2023-08-29T15:29:18Z "Scenario: I've just uploaded a new theme to my theme directory and I now want to activate it on a site. I head to the Appearance › Themes menu for that site and, whoops, I forgot to activate it on the network first. Now I need to: 1. Click my name in the header 2. Click Network Admin in the dropdown menu 3. Click Sites 4. Find the site and click Edit 5. Click Themes From there I can enable the theme. We're not done yet though. We need to traverse a minimum of two screens to get back to the Themes menu of the site (even more if the admin bar isn't enabled) in order to activate it. Two things would make this process easier: 1. A link from the Themes screen to the Themes tab of the site in network admin, so five clicks become one. 2. The ability to activate a theme from the Themes tab of the site in network admin. " johnbillion Needs Patch 52874 "Activating plugins on Install page randomly errors with ""The plugin does not have a valid header"" message." Plugins normal normal Awaiting Review defect (bug) new 2021-03-21T01:09:33Z 2021-03-22T22:10:18Z "This seems to be something that has been occurring for some time without resolution in core. Just started seeing a lot more reports of it recently for one of my plugins, which lead me to dig and see that it has been occurring in the same way to other plugins for years. Issue: On Plugin Installer page, if you install and activate plugins it can show the following message: ""The plugin does not have a valid header"". Most users get around it by going to the All Plugins page and activating without issue. Plugin that currently seems affected include: - Content Control - [W3 Total Cache](https://www.pixelwars.org/forums/topic/the-plugin-does-not-have-a-valid-header/) - [Zapier](https://wordpress.org/support/topic/the-plugin-does-not-have-a-valid-header-198/) And some from the past few years with same issue: - [Etsy Shop](https://wordpress.org/support/topic/the-plugin-does-not-have-a-valid-header-150/) - [Jotform](https://www.jotform.com/answers/2975729-jotform-wp-plugin-plugin-does-not-have-a-valid-header-error) That was only what I found on first page of google." danieliser Needs Patch 40394 Activation email not sent to new users on Windows (have come out another time) Mail 4.7.3 normal normal Awaiting Review defect (bug) new 2017-04-08T08:59:29Z 2017-04-08T12:48:27Z "https://wordpress.org/support/topic/activation-email-not-sent-to-users/#post-9009273 I experience this into a: windowsOS/php5.6/apache2.4 when i test an user registration, the email that inform the admin about new user is sent out, while the activation email to the user not. so to fix it on fly, i've remove (like last time) $header that seem to cause a problem: {{{#!php UseSendmailOptions or is_null($params)) { //$result = @mail($to, $subject, $body, $header); $result = @mail($to, $subject, $body); } else { $result = @mail($to, $subject, $body, $header, $params); } return $result; }}} " axewww Needs Dev / Bug Wrangler Feedback 36081 Activity dashboard widget is not using word-wrap: break-word mrahmadawais Administration 4.4.2 normal normal Future Release defect (bug) assigned dev-feedback 2016-03-03T07:40:11Z 2019-03-20T18:05:43Z "Long word's without spaces goes out of the container. I think that this class `#dashboard-widgets a` needs `word-wrap: break-word`; Screenshot: http://www.awesomescreenshot.com/image/1048253/7b7bc297dd3c3bd1f3c9532dd9f1138e" Prelc Has Patch / Needs Testing 26317 Ad filter for changing the 'New Site Created' email sent to site's admin email Mail 3.0 normal normal Future Release enhancement new has-patch 2013-11-29T11:59:53Z 2020-09-16T19:44:21Z "While doing my WordPress work, I found the need of disable all the WordPress Multisite notification emails that are sent to the administrator. But one mail keep being sent: ""[Sitename] New Site Created"". I decided to analyse the core's code, and found that the email was being sent on line 91, of wp-admin/network/site-new.php, and there was no filter to disable it (it was just a wp_mail call). {{{ #!php $content_mail = sprintf( __( 'New site created by %1$s Address: %2$s Name: %3$s' ), $current_user->user_login , get_site_url( $id ), wp_unslash( $title ) ); wp_mail( get_site_option('admin_email'), sprintf( __( '[%s] New Site Created' ), $current_site->site_name ), $content_mail, 'From: ""Site Admin"" <' . get_site_option( 'admin_email' ) . '>' ); }}} Since I guess that this should be filtered, I decided to create a new filter, by replacing that lines with a single function call: {{{ #!php $user_name = $current_user->user_login; $address = get_site_url( $id ); wpmu_admin_new_site_notification( $user_name, $address, $title ); }}} The new `wpmu_admin_new_site_notification` that I created, is declared on wp-includes/ms-functions.php and it as simple as a function that send an email to the administrator, and that have three filters: `wpmu_admin_new_site_notification` that can be used to bypass the email; `update_new_site_notification_email` that can change the content of the emaiil; and `update_new_site_notification_subject` that can be used to change the subject of the email. You can see more details of this on the .patch file I submitted, with commented code." vaurdan Needs Dev / Bug Wrangler Feedback 23207 Add $labels argument to register_post_status() Posts, Post Types 3.0 normal normal enhancement reopened dev-feedback 2013-01-15T19:32:54Z 2019-06-04T20:43:43Z "WordPress functions '''register_taxonomy()''' and '''register_post_type()''' has '''labels''' argument. Why not add labels to '''register_post_status()'''? The current way to add status: {{{ $args = array( 'label' => __( 'draft', 'text_domain' ), 'label_count' => _n_noop( 'Draft (%s)', 'Drafts (%s)', 'text_domain' ), 'public' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'exclude_from_search' => true, ); register_post_status( 'draft', $args ); }}} The new way (using labels): {{{ $labels = array( 'name' => __( 'Draft', 'text_domain' ), 'singular_count' => __( 'Draft (%s)', 'text_domain' ), 'plural_count' => __( 'Drafts (%s)', 'text_domain' ), 'any_other_label' => __( 'Any Other Label', 'text_domain' ) ); $args = array( 'labels' => $labels, 'public' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'exclude_from_search' => true, ); register_post_status( 'draft', $args ); }}}" ramiy Needs Dev / Bug Wrangler Feedback 46171 "Add ""backing up this post in your browser"" label to post-type" Posts, Post Types normal normal Awaiting Review enhancement new dev-feedback 2019-02-01T20:58:56Z 2019-02-01T20:58:56Z "When the internet connection is lost, on a non-block-based post-type, some helpful text appears in an admin notice to alert users their content will not be lost: ""We’re backing up this post in your browser, just in case"" Keyword: **post**. It would be nice if that string were post-type specific, perhaps part of the `labels` array of the post-type registration process." johnjamesjacoby Needs Patch 49936 "Add ""deactivate"" & ""archive"" bulk options to network site management" Networks and Sites 5.4 normal minor Awaiting Review enhancement new 2020-04-17T20:03:19Z 2020-04-17T20:03:19Z "On a multisite install, in site management for all subsites (wp-admin/network/sites.php) it would be very useful to have a default ""deactivate"" bulk option, as well as ""archive"". The only bulk options available are ""delete"" (which is true delete, see #44515), and ability to mark as spam or not. It seems arbitrary to only have those three instead of including the other available options, which I'd wager are just as frequently used if not more so." afoc Needs Patch 47488 "add ""extensibility"" to WP_Privacy_Requests_Table" Privacy normal normal Awaiting Review enhancement new 2019-06-05T20:09:01Z 2019-06-06T23:53:37Z "`WP_Privacy_Requests_Table` (and its 2 sub-classes `WP_Privacy_Data_Removal_Requests_List_Table` and `WP_Privacy_Data_Export_Requests_List_Table`) lack some of the ""extension"" points that other list tables (e.g., `WP_Posts_List_Table`) in core have. A short list of what is missing includes: * an `extra_tablenav()` method and the `restrict_manage_xxx` and `manage_xxx_extra_tablenav` actions that accompany it * the ability to add custom columns (via a `xxx_columns` filter) * the ability to add/remove row actions (via a `xxx_row_actions` filter) * the ability to add ""display states"" (via a `display_xxx_states` filter) I do **not** have a concrete use-case for needing any of the above **at this time**, but feel that **all** core list tables should support them **unless there is a concrete reason not to**. I'll add a patch shortly." pbiron Needs Dev / Bug Wrangler Feedback 48370 "Add ""next/previous"" links to Edit Post screen" Posts, Post Types normal normal Awaiting Review feature request new dev-feedback 2019-10-18T17:37:06Z 2019-10-19T10:39:15Z "Maybe a good idea for blogs or shops to have some sort of ""next/previous"" links inside the edit post page so it's easier to navigate through posts, pages and products without leaving the edit page. At the moment it's a bit un-logical since when i am on page 5 and i open a post i want to edit then after i have updated it i want to edit the next one or the previous one in the list. Only way possible is to click on all posts but then your back to page 1. You can do a go back through the browser back tab but that's not the proper way to work. " Hein35 Needs Patch 47314 "Add ""parent"" parameter to get_term_by" Taxonomy normal normal Awaiting Review feature request new 2019-05-17T22:13:02Z 2019-12-13T16:33:20Z "There has been some discussion around some inconsistencies in the way `term_exists()` handles the input string and sometimes can have unexpeceted results. The most recent discussions about this can be seen in #47099, #45333 and #32248. The current recommendation is to use `get_term_by()` instead, so you can explicitly inform what field you are checking and get the right result. However, `get_term_by()` does not support a `parent` argument, which makes it not a full `term_exists()` replacement. In #47099 @boonebgorges suggested we opened an enhancement ticket to discuss this addition to this function. And here it is! :) Looking at the function and all parameters it gets, we would have to decide how to support this. This would be the first question to ask if one was to try an approach for this. Adding as a new parameter does not look so good because there already many and it would force the developer to use all of them if he/she wanted to use `parent`. However adding support for a field like `name_and_parent` or something like this, and having an array passed as the `$value` doesn't look so pretty either. What do you think? " leogermani Needs Dev / Bug Wrangler Feedback 39907 "Add ""Remove all widgets"" button for themes with multiple widget areas" Customize normal normal Awaiting Review enhancement new dev-feedback 2017-02-17T19:04:28Z 2021-05-29T17:01:57Z "I was loading giving one of my sites a new theme as a New Year treat. It only seemed fitting to put on Twenty Sixteen. As this was a simple site, I wanted the single column. Unfortunately, loading up the theme brought a few issues as I suddenly found a lot of widgets I didn't want. For example the footer areas, they were filled with defaults I didn't want. Going in and removing each one took several steps as there were multiples. Whether you want defaults or not may be something the theme can decide, but offering a 'remove all widgets' button I think would be easy enough to add into the Customizer and a great enhancement for the minimalists." karmatosed Needs Patch 30917 "Add ""Save and Close"" button to page/post edit screen" Posts, Post Types normal normal enhancement new 2015-01-05T19:36:30Z 2019-06-04T20:48:23Z It would be useful to have an additional button in the Publish box of the page/post the edit screen to save the post and then return to the main page/post edit/listing screen. Currently, the Save button reloads the page/post and you then have to click on the menu link to view the page/post main edit/listing screen. Vitzkrieg Needs Patch 52975 "Add ""states"" to terms list table (for WP_Taxonomy::$default_term)" Taxonomy normal normal Awaiting Review defect (bug) new 2021-04-05T22:26:56Z 2021-04-05T22:26:56Z "The Terms list table (`WP_Terms_List_Table`) should include support for the ""states"" concept that currently also exists for Posts, Media, and Sites. Specifically, I'd like to see ""– Default"" added to the default term. I want this because WordPress Admin does not offer any explanation why the ""Uncategorized"" Category has no ""Delete"" link in the list-table UI and also has no checkbox for bulk-actions. See: `_post_states()`, `_media_states()`, and `WP_MS_Sites_List_Table::site_states()` Mock-up screenshot imminent." johnjamesjacoby Has Patch / Needs Testing 54505 "Add ""Temp Directory"" to site health info" Site Health normal normal Awaiting Review enhancement new has-patch 2021-11-24T15:11:04Z 2021-11-24T16:18:20Z "There are troubleshooting situations where it's helpful to know where WP thinks the temp directory is located. Add the tmp directory to the ""directories and sizes"" section of the site health info." sterndata Needs Reporter Feedback / Steps To Reproduce 46652 "Add ""template_loaded"" action after a template has been included as part of the template hierarchy" Bootstrap/Load 5.1 normal normal Awaiting Review enhancement new reporter-feedback 2019-03-26T10:59:34Z 2020-01-02T11:58:20Z "As part of the template hierarchy, WordPress works out what template it should use. It then passes this template through the `template_include` filter, which allows you to change the template name. This template is then included and that's the end of things. Here's the current snippet showing the filter and the include (from here https://core.trac.wordpress.org/browser/tags/5.1.1/src/wp-includes/template-loader.php#L77) {{{#!php classes) and $depth. " mireillesan Needs Patch 53195 Add $post or $post_id to the quick_edit_custom_box hook Posts, Post Types normal normal Awaiting Review defect (bug) new 2021-05-12T11:17:34Z 2021-05-12T11:17:34Z "Right now when you're adding a custom box to quick edit, you can't set an existing value without using JavaScript, cause you don't have acces to the post. For a more elaborate explanation, see the User Contributed Notes, top one by stevenlinx: https://developer.wordpress.org/reference/hooks/quick_edit_custom_box/ It would be more elegant if we could just use the post within the hook I think." tomjdevisser Needs Patch 39706 Add $unique param to add_{$meta_type}_meta actions Options, Meta APIs normal normal Awaiting Review enhancement new 2017-01-26T17:11:05Z 2017-01-26T17:16:36Z "The hooks `add_{$meta_type}_meta` and similar provide context about `$object_id`, `$meta_key`, `$_meta_value` and such, but do not tell whether the meta data added or updated is supposed to be `$unique`. Adding this information could be helpful. My use case for instance is propagating meta data across posts." barryceelen Needs Patch 41944 Add %u support to wpdb->prepare Database 4.8.2 normal normal Awaiting Review enhancement new 2017-09-21T13:30:31Z 2017-09-21T15:30:20Z "MySQL unsigned int: 4bn [[BR]] PHP %d signed int: 2bn[[BR]] [[BR]] Maybe the standard should be %u not %d or at the very least support both while internally using %u for all key lookups?[[BR]] [[BR]] Especially since much of the WP Core specifically sets ID fields as bigint unsigned not null auto_increment.[[BR]] [[BR]] If a site never has more than 2bn records, and MOST will NEVER get that big, it is a non-issue but shouldn't the standard be consistent between the DB engine and the language processor (PHP)?" charlestonsw Needs Patch 58370 Add 'Activate' button to View details modal Plugins 6.3 normal normal Future Release enhancement new 2023-05-21T19:46:26Z 2024-01-29T20:19:05Z In [https://wordpress.slack.com/archives/CULBN711P/p1684696308556829?thread_ts=1684691032.713709&cid=CULBN711P| discussions] with @azaozz regarding the Plugin Dependencies feature, it was thought that a button in the View details modal would provide for a smoother UX. This way the user wouldn't need to go to a different page to activate an installed plugin. afragen Needs Patch 60490 Add 'author__in' option to WP_Query 'orderby' options Query normal normal Awaiting Review feature request new 2024-02-09T18:31:07Z 2024-02-09T21:34:45Z "I would like to be able to preserve the author ID order given in the WP_Query author_^^_in array. This would work like how the orderby post_^^_in option works but for author_^^_in instead. So, for example we already have: 'post_^^_in' – Preserve post ID order given in the post_^^_in array And we'd be adding: 'author_^^_in' – Preserve author ID order given in the author_^^_in array (https://developer.wordpress.org/reference/classes/wp_query/#order-orderby-parameters) Would it be possible to add this option to WP Core?" bburgay Needs Patch 48492 Add 'before_widgetcontent' and 'after_widgetcontent' attributes to register_sidebar Widgets normal normal Awaiting Review enhancement new 2019-11-04T08:21:13Z 2019-11-04T08:21:13Z "I want to address the widget HTML produced by WordPress which makes it unnecessarily difficult to write CSS rules targeted to content area in widgets. The following register_sidebar(): {{{ register_sidebar(array( 'name' => esc_html__('Primary Sidebar','theme'), 'id' => 'theme_sidebar', 'description' => esc_html__('Primary Sidebar will be shown on the right side of the site if widgets are added here.', 'theme'), 'class' => '', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); }}} will produce this HTML for Recent Posts widget: {{{
}}} If we have to style widgets like shown in this screenshot [[Image(https://i.postimg.cc/D0c9LwTB/widget-style.jpg)]] **with consistent padding for widget content in all widgets in one go**, an obvious way is to wrap the widget content by adding opening and closing div in before_title and after_title respectively like following. {{{ register_sidebar(array( 'name' => esc_html__('Primary Sidebar','theme'), 'id' => 'theme_sidebar', 'description' => esc_html__('Primary Sidebar will be shown on the right side of the site if widgets are added here.', 'theme'), 'class' => '', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', )); }}} However, **this won't work nicely and will break the theme if user has not set a title for the widget**. Some WordPress widgets will show a default title even if user has not explicitly set a title which causes confusion among users. This is how Twenty Sixteen targeted styling specific to widget content area: {{{ .widget-area > :last-child, .widget > :last-child { margin-bottom: 0; } }}} But **this fails to target Archives widget content when ""Display as Dropdown"" is selected** since the last child is a script element. **That's an inconsistency**. If WordPress could **introduce optional 'before_widgetcontent' and 'after_widgetcontent' to register_sidebar(**), it will be possible to wrap the widget content and target the widget content area for all widget, with or without title in one go. {{{ register_sidebar(array( 'name' => esc_html__('Primary Sidebar','theme'), 'id' => 'theme_sidebar', 'description' => esc_html__('Primary Sidebar will be shown on the right side of the site if widgets are added here.', 'theme'), 'class' => '', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', 'before_widgetcontent' => '
', 'after_widgetcontent' => '
', )); }}} Developers can save their time from writing unnecessary complicated CSS code to get a consistent style ( padding in my case ) for the widget content area. == Relevant Stackoverflow question about this issue with complicated solutions: https://wordpress.stackexchange.com/questions/185294/add-before-content-and-after-content-to-register-sidebar https://wordpress.stackexchange.com/questions/74732/adding-a-div-to-wrap-widget-content-after-the-widget-title https://wordpress.stackexchange.com/questions/107814/sidebar-widgets-dynamic-css-problem-with-widget-title?rq=1 https://wordpress.stackexchange.com/questions/128063/customizing-the-widget-content-markup?rq=1 " stwnigel Needs Dev / Bug Wrangler Feedback 58638 Add 'close' button to dashboard widgets oglekler Administration normal normal Future Release enhancement assigned dev-feedback 2023-06-27T04:59:43Z 2024-02-12T09:12:32Z In the Dashboard it isn't obvious that widgets can be removed from it via Screen options and sometimes widgets are annoying, or you just don't need them. I suggest adding `close` button into dashboard widget header. oglekler Needs Dev / Bug Wrangler Feedback 15924 Add 'media_default_link_type' option to parallel 'image_default_link_type' Upload normal normal Future Release enhancement new dev-feedback 2010-12-20T21:12:12Z 2019-05-15T20:48:42Z "It is often recommended that site owners change the 'image_default_link_type' option to ""none"" if they don't plan on linking to full size images often from their posts. The problem is that this also affects the default link type for other media (uploaded zip files, pdfs, etc.) Adding an additional option for 'media_default_link_type' which behaves in the same way would get around this problem. " goldenapples Needs Dev / Bug Wrangler Feedback 18816 Add 'offset' parameter and 'ancestral' boolean to wp_nav_menu Menus normal normal enhancement new dev-feedback 2011-09-29T16:13:42Z 2019-06-04T20:02:57Z Since we can now call wp_nav_menu multiple times and there is the very useful 'depth' parameter, I believe adding an 'offset' parameter would be very beneficial in many situations. This would allow you to start at the children of the main pages for example and combined with depth it becomes very powerful. An 'ancestral' => 'true' option could output only menu items that the current page is a descendant of. Currently if you want to display a main menu in the header and then a submenu on page.php you either need a tricky custom walker or terrible CSS 'visibility:hidden' or 'display:none' situations. signyourbikeout Needs Patch 57760 add 'pre_wp_get_attachment_url' filter Media normal normal Awaiting Review enhancement new 2023-02-17T18:16:16Z 2023-05-04T14:35:02Z "We are making plugin for featured image using external url. If user gt featured image url via `wp_get_attachment_url()` there is no way for us to hook because `wp_get_attachment_url` hook will never called if the post is not 'attachment'. The only way for us to make it work via creating fake attachment which is complicated. `pre_wp_get_attachment_url` filter will be very helpful in this case." fodisery Has Patch / Needs Testing 42448 Add 'upgrader_pre_unpack' hook Upgrade/Install normal normal Awaiting Review enhancement new has-patch 2017-11-06T21:38:50Z 2023-03-22T18:54:13Z The `WP_Upgrader` class provides several hooks that can be used to modify the upgrader process. There is an `'upgrader_pre_download'` hook, for example. But there is no hook that fires after download but before the package is unpacked. It would be nice to add such a hook, which for example could be used to verify a package's signature, or override the unpacking code entirely. jdgrimes Needs Docs or Unit Tests 36012 Add .current-ancestor class to any relative menu item ancestor SergeyBiryukov Menus 4.4.2 normal normal Future Release enhancement assigned needs-unit-tests 2016-02-29T16:52:22Z 2023-04-28T18:17:43Z "Right now there is .current-page-ancestor and .current-post-ancestor for pages and posts and no any class for archives, category, taxonomy or custom post types ancestors added to items in nav-menu. I think it will be usefull, for indication navigation depth purposes, to add .current-ancestor class to ANY menu item if ""current page"" is child/successor to anything in menu (parents, archive, category, taxonomy etc. menu items)." vovkasolovev Needs Patch 55973 Add .gitattributes file to annotate generated files Build/Test Tools normal normal Awaiting Review enhancement new 2022-06-14T09:19:11Z 2023-11-16T13:47:45Z "To make development on GitHub easier, we could consider adding a `.gitattributes` file for annotating generated files. The `linguist-generated` attribute can be used to mark or unmark paths that should be ignored for the repository's language statistics and hidden by default in diffs. See https://docs.github.com/en/repositories/working-with-files/managing-files/customizing-how-changed-files-appear-on-github for more details This came to mind when reviewing https://github.com/WordPress/wordpress-develop/pull/2647" swissspidy Has Patch / Needs Testing 60784 Add __experimentalSkipSerialization support to shadow Editor normal normal Awaiting Review enhancement new has-patch 2024-03-15T16:00:00Z 2024-03-18T10:35:51Z "What? This is a backport of the merged Gutenberg PR https://github.com/WordPress/gutenberg/pull/59887 When a dynamic block defines experimentalSkipSerialization in its block.supports.shadow the styles continue to be printed to the block wrapper element. This PR corrects that behavior so that shadow behaves like border, color, and others. Why? This provides the expected behavior for dynamic blocks that need to opt out of having the shadow styles printed to the block wrapper. How? Added a check at the start of the render function to return an empty array of the block has set experimentalSkipSerialization (This is my first attempt at submitting a Gutenberg PR to be included back into WP Core so welcome any advice if I'm doing this wrong)" ColinD Has Patch / Needs Testing 41196 add _doing_it_wrong to get_query_var and prevent fatal errors Query normal normal Awaiting Review defect (bug) new has-patch 2017-06-28T20:32:21Z 2017-11-12T15:15:18Z "The following scenario will throw a fatal error: {{{#!php load_plugin_textdomain', 'init', 'plugins_loaded' ), '4.7.0' ); } }}} And it seems I'm not alone; https://status301.net/why-load_plugin_textdomain-would-not-work/ Cheers" garrett-eclipse Has Patch / Needs Testing 57743 Add `$found` parameter to `wp_cache_get_multiple()` Cache API normal normal Future Release enhancement new has-patch 2023-02-17T04:09:25Z 2023-03-24T17:30:21Z "`wp_cache_get()` includes the forth parameter `$found`. It's a boolean passed by reference to allow developers to determine whether the returned value `false` indicates a populated cache with the value `false`. {{{#!php true, 'unset-key' => false, ) }}} " peterwilsoncc Needs Dev / Bug Wrangler Feedback 36368 Add `access_admin` capability Users normal normal feature request new dev-feedback 2016-03-29T13:55:09Z 2019-06-05T06:44:00Z "Many, many plugins do various types of checking of capabilities the determine if a user should ''really'' have the ability to view the WordPress admin. It's very common to prevent that from happening. Within WordPress's roles and capabilities, there are many checks that have something to do with the admin, like `edit_posts` and myriad others, but there isn't one that's an explicit `admin_access` check. Even a Subscriber role sees the toolbar by default, only to be able to edit their profile and see WordPress news, the activity widget (and Akismet stats btw) once they log in. I can't imagine many scenarious where this is truly wanted by site administrators -- for lower level users to even know what CMS the site uses, much less view the admin. I'd love to see `admin_access` or a similar capability enabled in core. I think for backward compatibility reasons, it may have to be set to `true` for all roles by default, but at least plugins would have a standard capability to flag for disabling it. It'd also be nice as a ""Reading"" option for the site owner to choose roles that should have access to the admin and would trigger this capability -- but that's probably wishing too much from a core standpoint. @drewapicture has a plugin called [https://wordpress.org/plugins/remove-dashboard-access-for-non-admins/ Remove Dashboard Access] that has a [https://cloudup.com/cn67XAgAIop pretty thorough UI], if folks were interested in taking this the next step, but I'd rather focus on the capability itself as the primary mission of this ticket. To me this is a new user experience issue and would make for a very helpful flag for plugin authors, at a minimum." krogsgard Has Patch / Needs Testing 37757 Add `allowed_classes` to `maybe_unserialize` When WordPress is running on PHP 7+ Security normal normal Awaiting Review enhancement new has-patch 2016-08-21T11:39:57Z 2017-09-13T21:39:27Z "PHP 7 added an options array to unserialize: http://php.net/manual/en/function.unserialize.php The most notable option is passing a whitelist of classes that can be unserialized which can help mitigate some remote code execution vulnerabilities. Something like this (PHP 5.X will throw a warning if a second argument is provided to `unserialize`). {{{#!php if (!is_serialized($input)) { return false; } return PHP_MAJOR_VERSION >= 7 ? @unserialize($input, apply_filters('wp_maybe_unserialize_options', [])) : @unserialize($input); }}} By default, I don't think any whitelisting needs to be done -- would be a huge BC break. But it would be nice to give developers an option to lock down what can be unserialized via `maybe_unserialize`." chrisguitarguy Has Patch / Needs Testing 44246 Add `check-node-version` to check required Node.js and npm versions are installed azaozz Build/Test Tools normal normal Future Release enhancement reopened has-patch 2018-05-27T12:16:11Z 2019-01-10T02:46:35Z "This change adds a npm script to the `preinstall` task of `npm install` to check that the required npm and Node.js versions are installed and being used in the current terminal shell instance. If the Node.js version is not `8.9.3` or npm version is not greater than `6.1.0` a warning will be displayed notifying the user to update the respective build tooling. The attached patch depends on #44245 being committed first Related: #44245, #43731 " netweb Needs Patch 54376 Add `is_post_publicly_viewable` filter Posts, Post Types normal normal Awaiting Review enhancement new 2021-11-04T22:33:22Z 2022-02-03T20:31:39Z "Related to #49628, #54375. Add a filter to the is_post_publicly_viewable() function to allow theme and plugin developers to override the default value. In some circumstances a developer may require the checks use different conditions to the default. " peterwilsoncc Has Patch / Needs Testing 37928 add `pre_add_option` filter Options, Meta APIs normal normal Awaiting Review enhancement new has-patch 2016-09-03T07:13:16Z 2024-01-07T02:55:53Z `get_option()` and `update_option()` already have filters to short-circuit their respective processes, so I think a similar filter should be added to `add_option()` as well. flixos90 Has Patch / Needs Testing 37929 Add `pre_delete_option` filter Options, Meta APIs normal normal Awaiting Review enhancement new has-patch 2016-09-03T07:15:29Z 2017-04-21T18:48:57Z "`get_option()` and `update_option()` already have filters to short-circuit their respective processes, so I think a similar filter should be added to `delete_option()` as well. Related: #37928" flixos90 Has Patch / Needs Testing 33600 Add `theme_mods_{$stylesheet}` option during `populate_options()` Themes normal normal Future Release enhancement new has-patch 2015-08-29T20:04:59Z 2018-04-17T17:27:01Z "After `switch_theme()`, a `theme_mods_{$stylesheet}` option is created if one doesn't exist to avoid extra database queries (if I understand #14828 correctly). No similar option is currently created during installation, so a fresh install can includes those queries if the default theme looks for the mods before the option is added. The attached patch would add the option during `populate_options()`. I included a unit test, although I'm not sure where the best location for it would be." dlh Needs Dev / Bug Wrangler Feedback 36492 Add `WP_Post_Status` class Posts, Post Types 3.0 normal normal enhancement reviewing dev-feedback 2016-04-12T10:30:14Z 2019-06-04T20:56:46Z "Similar to #36217 and #36224, a dedicated class for post statuses would make it easier to work with those as they are currently represented through raw objects. The global variable `$wp_post_statuses` would then hold objects of `WP_Post_Status` which would provide the benefits of autocompletion in IDEs, and we could possibly add methods to the class in the future to make post status management easier." flixos90 Needs Patch 58842 "Add a ""change date/time notation"" / ""timezone"" checkbox when changing site languages" Administration normal normal Awaiting Review enhancement new 2023-07-18T17:08:17Z 2023-07-18T17:08:17Z "When I install WP, I usually do it in English. Yet, for some cases I have to change the locale to Dutch. Now, I notice that the timezone and datetime notation stays in the old locale. Which is understandable... We don't want to force it on the user. That's why I'm suggesting that we add a checkbox or two so the user has the choice to also change the datetime/timezone setting to the locale default if they change. It would make things a bit more flexible." NekoJonez Has Patch / Needs Testing 44665 "Add a ""Create New Menu"" button to the menu widget" Customize 4.3 normal normal Future Release enhancement new has-patch 2018-07-29T00:32:39Z 2020-11-30T00:20:15Z "Menu widgets in the customizer have buttons to edit the selected menu, which cross-link to the menus customizer panel. Before a menu is selected, there should be a ""Create New Menu"" button that links to the new menu section and automatically assigns the menu to the corresponding widget. This would be a big improvement in user flow, particularly for new users trying the menu widget for the first time, who may not understand the relationship between widget and menu objects. The UI should match the existing edit menu button." celloexpressions Needs Docs or Unit Tests 55261 "Add a ""file size"" column to the media library menu" Media normal normal Awaiting Review feature request new needs-docs 2022-02-25T20:00:22Z 2023-02-02T16:19:11Z "One of the things I think should be placed in the core of WordPress is to display the size of various photos and files that are uploaded to the host through WordPress in the media library menu (as a column in the table to make comparison easier). After a while and by adding different files, we do not know which file gets the most size from the host and in general it is very good that the webmaster can easily view the size of different files to make site management easier because according to the experience, This Menu is one of the most sensitive WordPress menus and must be carefully monitored. You can add this feature using the code below ; {{{#!php initHooks(); } /** * Initialize Hooks. * * @author Siavash Ebrahimi * @since 1.0 * @return void */ public function initHooks() { // Register size column for media library table add_filter( 'manage_media_columns', [ $this, 'registerSizeColumn' ], 15 ); add_action( 'manage_media_custom_column', [ $this, 'populateCustomColumns' ], 15, 2 ); add_action( 'added_post_meta', [ $this, 'addFileSizeMetadataToImages' ], 15, 4 ); add_filter( 'manage_upload_sortable_columns', [ $this, 'registerColumnSortableFileSize' ], 15 ); add_action( 'pre_get_posts', [ $this, 'sortableFileSizeSortingLogic' ], 15 ); } /** * Column sorting logic (query modification) * * @param $query */ public function sortableFileSizeSortingLogic( $query ) { global $pagenow; if ( is_admin() && 'upload.php' == $pagenow && $query->is_main_query() && ! empty( $_REQUEST['orderby'] ) && 'filesize' == $_REQUEST['orderby'] ) { $query->set( 'order', 'ASC' ); $query->set( 'orderby', 'meta_value_num' ); $query->set( 'meta_key', 'filesize' ); if ( 'desc' == strtolower($_REQUEST['order']) ) { $query->set( 'order', 'DSC' ); } } } /** * Make column sortable * * @param $columns * * @return mixed */ public function registerColumnSortableFileSize( $columns ) { $columns['filesize'] = 'filesize'; return $columns; } /** * Ensure file size meta gets added to new uploads * * @param $meta_id * @param $post_id * @param $meta_key * @param $meta_value */ public function addFileSizeMetadataToImages( $meta_id, $post_id, $meta_key, $meta_value ) { if ( '_wp_attachment_metadata' == $meta_key ) { $file = get_attached_file( $post_id ); update_post_meta( $post_id, 'filesize', filesize( $file ) ); } } /** * Populate media custom columns * * @return string * @since 1.0 * @access public */ public function populateCustomColumns( $column_name, $post_id ) { if ( 'filesize' == $column_name ) { if ( ! get_post_meta( $post_id, 'filesize', true ) ) { $file = get_attached_file( $post_id ); $file_size = filesize( $file ); update_post_meta( $post_id, 'filesize', $file_size ); } else { $file_size = get_post_meta( $post_id, 'filesize', true ); } echo size_format( $file_size, 2 ); } } /** * Register size column * * @param array $cols * * @return mixed * @since 1.0 */ public function registerSizeColumn( $cols ) { $cols['filesize'] = __( 'File Size' ); return $cols; } } }}} Then initialize the class : {{{#!php query_vars ) ) extract( $wp_query->query_vars, EXTR_SKIP ); $_template_file = apply_filters( 'template_file', $_template_file, $require_once ); if ( $require_once ) require_once( $_template_file ); else require( $_template_file ); } }}} Here's a screenshot showing the Theme Template Files panel I implemented so you can see the use-case. This plugin requires the hook I'm proposing in order to work and I have attached the plugin for other's review. {{{ #!html }}} This hook could also allow the loading of the template file from other directories such as a shared directory on a server, as appropriate, but that's not the reason I found the need today. The source for `load_template()` is found in `/wp-includes/template.php`. " mikeschinkel Needs Patch 36527 Add a 'wp-' prefix to ALL admin classes to prevent CSS conflicts Administration normal normal enhancement new 2016-04-14T12:37:34Z 2019-06-04T19:36:44Z Long story short, in any front end editors, which WP itself seems to be moving towards with the Customizer, there are lots of admin elements that are not prefixed and can quickly begin to conflict. Some examples are .button, .textarea, etc. I'd love to see all admin classes add a prefix of `.wp-` mrpritchett Has Patch / Needs Testing 60532 Add a `pre_set_object_terms` action Taxonomy trunk normal normal Awaiting Review enhancement new has-patch 2024-02-13T19:42:58Z 2024-02-22T05:30:19Z "Working with some custom terms & taxonomies, and it looks like there's no way to hook in to `wp_set_object_terms` _before_ the terms are updated. In the end, the `$old_tt_ids` is passed to the `set_object_terms` action(added in r12261). But, these are the `term_taxonomy_id`s and a a bit harder to work with than the plain terms. Also, these are provided _after_ the terms are updated. So, there's no way to short-circuit the updating. However, I think it would be useful to have a `pre_` action that can work on the current terms before commiting the changes." davidbaumwald Needs Dev / Bug Wrangler Feedback 49188 Add a check for tables structures. Site Health normal normal Awaiting Review enhancement new dev-feedback 2020-01-13T15:51:56Z 2021-01-29T00:46:40Z "While reading #47714, I had this idea as I've seen a lot of sites especially after migrations/restorations where the DB structures weren't implemented as planned and nobody noticed, leading into WordPress not being able to work properly. Core table structures shouldn't be altered I believe unless a database is customized in general so for the majority it should always be the same and as instructed by the installation (do tell me if I have this completely off :D). I believe that managing a test for core table structures would be of great benefit as migrations/restorations can't be avoided at some point & it would also be considered a critical issue. We could also create extra documentation to point at if there's a problem with some ""copy, modify & paste"" SQL to restore the structures as supposed to be. Any thoughts on this? There might be plugins out there doing this already but I do believe it could be a nice addition to Site Health for checking core-related tables." xkon Has Patch / Needs Testing 18330 Add a Class functionality to wpautop() Formatting normal normal enhancement reopened has-patch 2011-08-04T20:17:29Z 2023-07-25T16:42:17Z "It would be nice to be able to add a class to

with wpauto as an optional arg. " wpsmith Has Patch / Needs Testing 51358 Add a clearer warning message before deleting a site from a network joedolson* Networks and Sites 3.0 normal normal 6.6 enhancement accepted has-patch 2020-09-19T20:52:28Z 2024-02-21T16:38:05Z "Deleting a site from the Network Admin -> Sites screen is the most destructive single action that a user can take on a WordPress installation. After clicking the `Delete` link the user is shown a screen requesting confirmation, but this screen doesn't convey the permanence of the action they're about to take. There is no trash or undo when deleting a site. It drops the database tables for the site, empties its uploads directory of all files, and removes the roles for that site from all users. Let's add an extra warning to this confirmation screen which explains this." johnbillion Needs Patch 56602 Add a comment to auto-generated editor files pulled from Gutenberg repository Build/Test Tools normal normal Awaiting Review enhancement new 2022-09-19T13:14:16Z 2022-09-19T13:34:01Z "Background: #30666, #48424. With the increasing amount of files merged from Gutenberg, it's not always clear which files are safe to patch in core and which should first be patched upstream in the Gutenberg repository and then backported to core. At a glance, these fall under the latter category: {{{ wp-includes/blocks/* wp-includes/class-wp-block-parser.php }}} Patching them directly in core would cause a test failure, see comment:10:ticket:56581 for a recent example. To avoid further confusion, it would be great to add a comment like this at the top of the file: {{{ /*! This file is auto-generated */ }}} similar to the one added in [41271] and [46589] for RTL CSS and minified JS and CSS files. Or this one from [source:trunk/tools/release/sync-stable-blocks.js?rev=53688&marks=22#L15 tools/release/sync-stable-blocks.js], added in [53688]: {{{ // This file was autogenerated by tools/release/sync-stable-blocks.js, do not change manually! }}} If that would require changes in both core and Gutenberg build process, this ticket can be used for tracking. If it can be done entirely on the Gutenberg side, happy to move the issue there." SergeyBiryukov Needs Dev / Bug Wrangler Feedback 25616 Add a content length filter to wp_dashboard_recent_drafts() Administration normal normal enhancement new dev-feedback 2013-10-17T01:41:34Z 2019-06-04T19:24:26Z It would be nice to be able to change the length of the recent drafts content via a filter. The fixed value of 10 is too short for character count based users. tenpura Needs Reporter Feedback / Steps To Reproduce 51746 Add a core wrapper function to retrieve $wp->request General normal normal Awaiting Review feature request new reporter-feedback 2020-11-10T11:37:28Z 2021-01-26T22:50:50Z "Feature request: add a core wrapper function to retrieve global {{{$wp->request}}}. Core should provide a function {{{wp_get_uri_request()}}} (or some other naming convention) to reliably get the uri request. And reduce reliance on globals/superglobals. {{{#!php request; }}} instead use: {{{#!php ` and `

Sorry… Briefly unavailable for scheduled maintenance.

Please try again in a minute.

Thank you for your patience.

}}}" Paddy Landau Needs Patch 37850 Auto-scroll to error notice on failed inline updates (plugins/themes) Upgrade/Install 4.6 normal normal Future Release defect (bug) new 2016-08-27T16:14:49Z 2019-04-19T19:58:43Z "See a small UX issue in WordPress 4.6 on shiny updates. In this case I noticed it on the network themes page when one theme has an update and that theme is below the fold (or view-port). if the update has an error (of any kind), the response happens at the top of the page and a user would never know about the response message. I think in this case a forced scroll-to-top would be great or allow the shiny updates to show inline errors. " austyfrosty Needs Reporter Feedback / Steps To Reproduce 56292 Auto-update option gets enabled for plugins not hosted on WordPress.org Plugins 5.5 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-07-27T11:16:12Z 2022-10-06T01:08:58Z "The option to Enable Auto-update only appears to those plugins ( Referring to plugins **NOT** hosted on WordPress.org ) if a version update is available for that plugin. Also, if the user does bulk action auto-updates from the plugins page, auto-update gets enabled for all the plugins, including those not hosted on WordPress.org, only when an update is available for those plugins. Is this expected behavior? If auto-update is supported for Non-WP.org plugins, those options should always be available for all plugins, irrespective of whether they are hosted on WordPress.org or Not. " patilvikasj Needs Patch 50222 Autocorrect redirect to the wrong URL based on a word after permalink Permalinks 5.4.1 normal normal Awaiting Review defect (bug) new close 2020-05-22T06:31:24Z 2020-05-22T08:56:48Z "Sometimes, when the URL of a post ends with a keyword following the slash it redirects to a different page based on the keyword rather than the permalink. For example: Let's take this wordpress post URL: [http://awishyourheartmakes.com/virtual-services/ ] If I had the word ""super"" at the end of the URL: [http://awishyourheartmakes.com/virtual-services/super ] rather than redirecting to http://awishyourheartmakes.com/virtual-services/ It will redirect to http://awishyourheartmakes.com/super-fun-santa-maria/" bloup Has Patch / Needs Testing 57699 Autoembeds not rendered in front-end post content Embeds normal normal Awaiting Review defect (bug) new has-patch 2023-02-12T13:53:32Z 2023-02-12T14:07:49Z "The regex which identifies whether post content contains a possible oEmbed URL fails silently in front-end post content in some circumstances. As far as I can tell, this happens when PHP is not compiled with PCRE JIT - e.g. on Apple Silicon using MAMP and/or MAMP Pro - and regardless of the `pcre.jit` value in `php.ini`. When post content is rendered via `the_content()` in a template, what happens is that in [https://github.com/WordPress/wordpress-develop/blob/0cb8475c0d07d23893b1d73d755eda5f12024585/src/wp-includes/class-wp-embed.php#L444 the `preg_match` test for possible oEmbed URLs], the `\s` escape sequence does not match `\r\n` in the post content and thus embeds are not rendered via the autoembed callback. The following string based on [https://github.com/WordPress/wordpress-develop/blob/0cb8475c0d07d23893b1d73d755eda5f12024585/tests/phpunit/tests/media.php#L303 the autoembed test strings] ''should'' produce a match: {{{#!php $foo = ""test\r\nhttps://w.org\r\ntest""; echo preg_match( '#(^|\s|>)https?://#i', $content, $matches ) ? print_r( $matches, true ) : 'No matches.'; }}} In my tests, this what happens: === Linux Intel {{{ PCRE (Perl Compatible Regular Expressions) Support enabled PCRE Library Version 10.35 2020-05-09 PCRE Unicode Version 13.0.0 PCRE JIT Support enabled PCRE JIT Target x86 64bit (little endian + unaligned) pcre.jit 1 1 }}} Success: {{{ Array ( [matches] => Array ( [0] => https:// [1] => ) ) }}} === Mac Intel {{{ PCRE (Perl Compatible Regular Expressions) Support enabled PCRE Library Version 10.35 2020-05-09 PCRE Unicode Version 13.0.0 PCRE JIT Support enabled PCRE JIT Target x86 64bit (little endian + unaligned) pcre.jit 0 0 }}} Success: {{{ Array ( [matches] => Array ( [0] => https:// [1] => ) ) }}} === Mac Apple Silicon running MAMP {{{ --with-external-pcre=/Applications/MAMP/Library PCRE (Perl Compatible Regular Expressions) Support enabled PCRE Library Version 10.36 2020-12-04 PCRE Unicode Version 13.0.0 PCRE JIT Support not compiled in }}} Fail: {{{ No matches. }}} Although it could be argued that this is an upstream problem with PHP, it seems that [https://github.com/php/php-src/commit/f8b217a3452e76113b833eec8a49bc2b6e8d1fdd the PHP fix] will only apply to versions of PHP greater than 8.1.11. This means many devs working on Apple Silicon machines are likely to encounter this issue. A simple fix in WordPress is to add the ""vertical whitespace"" `\R` escape sequence (which matches `\n`, `\r` and `\r\n`) to the regex: {{{#!php if ( preg_match( '#(^|\s|\R|>)https?://#i', $content ) ) { // Find URLs on their own line. $content = preg_replace_callback( '|^(\s*)(https?://[^\s<>""]+)(\s*)$|im', array( $this, 'autoembed_callback' ), $content ); // Find URLs in their own paragraph. $content = preg_replace_callback( '|(]*)?>\s*)(https?://[^\s<>""]+)(\s*<\/p>)|i', array( $this, 'autoembed_callback' ), $content ); } }}} This does not appear to affect systems where PHP is compiled with PCRE JIT, whether or not `pcre.jit = 0` or `pcre.jit = 1`, though I appreciate that wider testing is needed. " needle Needs Patch 8924 autoload should be boolean in add_option() Database lowest normal Awaiting Review enhancement reopened 2009-01-22T23:51:48Z 2019-03-15T00:30:00Z "Regarding: CREATE TABLE `wp_options` (`autoload` varchar(20) NOT NULL DEFAULT 'yes', Why not boolean binary, or one character long? " jidanni Needs Patch 35318 Automate anti-virus scanning of WordPress zips Build/Test Tools normal normal Awaiting Review enhancement new 2016-01-05T16:36:15Z 2022-01-29T10:48:46Z "In WordPress 4.4, some files were marked as malware by antivirus vendors. This sucks for users. I think we should automate scanning of WordPress packages so that we can alert antivirus vendors as soon as possible that they are miss flagging WordPress files. one api that could work is https://www.virustotal.com/en/documentation/public-api/ , but we should investigate that and other possible options. " jorbin Needs Patch 53325 Automated Update Failed Notice After Update is Done Administration 5.7.2 normal minor Awaiting Review defect (bug) new 2021-06-03T03:58:36Z 2021-06-30T09:29:26Z "Hello Folks, In my WordPress instance, it showed me the core update for version 5.7.2 I have started updating WordPress but it took longer. I don't know if it was a network issue or any other. But somehow, my update was done. Now, when I am opening the WordPress Admin Dashboard, it gives me constant warning **""An automated WordPress update has failed to complete""** I guess when the update was in progress, in the file: update.php, Line number 804, the option s not getting updated for **""auto_core_update_failed""** " malavvasita Has Patch / Needs Testing 40032 Automatic redirects with _wp_old_slug won't mantain GET parameters if present Permalinks 2.1 normal normal Awaiting Review defect (bug) new has-patch 2017-03-04T15:05:27Z 2021-03-09T06:31:59Z "If for example links come up with GET parameters, for example utm parameters for analytics, they get stripped before the redirect. post_name = 'new-slug' _wp_old_slug = 'old-slug' http://example.org/old-slug/?utm_source=test1&utm_medium=test2&utm_campaign=test3 Wordpress will build the link for the redirect to the new slug without any GET parameter: http://example.org/new-slug/ I think it should mantein them instead: http://example.org/new-slug/?utm_source=test1&utm_medium=test2&utm_campaign=test3 I'm not even sure if this should be classified as a bug, if it's the correct behaviour or not. I'll let you judge." DrLightman Needs Dev / Bug Wrangler Feedback 55189 "Automatic removal of ""Zero-width non-joiner"" in URL" Permalinks 5.9 normal critical Future Release defect (bug) new needs-unit-tests 2022-02-17T14:30:25Z 2023-02-23T23:37:32Z "There is a big problem in recent version of WordPress, ""[https://en.wikipedia.org/wiki/Zero-width_non-joiner Zero-width non-joiner]"" in the URLs is removed automatically. This will have a very bad effect on SEO (and has affected many sites) because the page with ""Zero-width non-joiner"" in their URL will goes to be 404. " man4toman Needs Patch 58636 Automatic Sanitization of Nonces in wp_verify_nonce Security normal normal Awaiting Review enhancement new 2023-06-26T21:28:18Z 2023-06-26T21:28:18Z "There's a [in-depth discussion](https://github.com/WordPress/WordPress-Coding-Standards/issues/869) in the WordPress Coding Standards repository over the question of whether nonces should be sanitized prior to being passed to `wp_verify_nonce()`. At present, developers are required to sanitize the input themselves before it's passed to `wp_verify_nonce`. This practice is mandates by the PHPCS WordPress Coding Standard: {{{ #!php insert` function is advantageous due to its automatic data preparation. However, this solution does raise a potential issue with pluggable nonces. If a nonce created by `wp_create_nonce` employs characters outside of the standard range and if `wp_verify_nonce` is not also plugged to accommodate these special characters, this implementation could potentially break. We must also assume that a plugged `wp_verify_nonce` should sanitize the nonce it receives. While there are some concerns associated with sanitizing nonces, the benefits largely outweigh the risks. These benefits include improved development experience, and stronger security, especially given the fact that many WordPress developers do not utilize PHPCS with WordPress Core Security Rules in their codebase, and may therefore be unaware of the need for nonce sanitization. This presents an opportunity to build a safer and more developer-friendly environment." lucasbustamante Needs Patch 30915 Automatic translation update does not trigger notification email Upgrade/Install 4.1 normal normal defect (bug) new 2015-01-05T16:42:41Z 2019-06-04T21:13:34Z "Apparently, my translation files were updated over night (overwriting all my custom translations) and I didn't even get a notification email. I made sure that mail() and wp_mail() works and then found that in '''class-wo-upgrader.php:2803''' the email is only triggered for 'core' type updates, not 'translation' types or any other. A translation update can easily render a site useless, and a notification should be sent for EVERY SINGLE CHANGE that Wordpress decides to do to itself anyway. Also, the dashboard says that only ""security updates"" are installed automatically, and I would have never allowed translations to update automatically. Sure, digging deep in the online documentation later, I found the part about translations, but this '''should be mentioned in dashboard''' much clearer, including options to disable. In the end, I think '''automatic translation updates should be off by default'''. Automatically updating something always bears the risk of breaking the site (even if only semantically). The only time I'd rather risk breaking the side is when otherwise I would risk leaving a critical exploit open, not for some dumb fixed typos. In fact, those are not 'critical' but 'trivial', putting them right on the other end of the criticality scale." ddaum Needs Patch 27814 Automatic updates should not be silently disabled if I have .hg in file system root Upgrade/Install 3.7 normal normal enhancement new 2014-04-15T09:17:56Z 2019-06-04T21:10:55Z "My WordPress does not apply updates automatically, although it is told to via define('WP_AUTO_UPDATE_CORE', 'minor');. WordPress did not send any mail with an error report, so I had no idea how to debug that issue. I then found http://wordpress.org/plugins/background-update-tester/ which told me that all conditions pass except for {{{ FAIL: The folder / was detected as being under version control (.hg). }}} '''What?''' Yes, indeed, I am managing system configuration files via Mercurial. The repo is placed in the root of my file system. This is *'''completely'''* unrelated to my WordPress installation. I see the rational (http://make.wordpress.org/core/2013/09/24/automatic-core-updates/): {{{ If the install is running as a SVN or GIT checkout, automatic updates are disabled }}} But the way it is currently detected is in my opinion strongly over-generalized: {{{ It looks for .svn, .git, .hg, and .bzr folders in ABSPATH, and every directory above that up to / }}} It is fine if WordPress makes assumptions about its own eco system. However, the current implementation assumes that any DVCS placed in any directory when going up the file system hierarchy up to the root is controlling WordPress. What is this assumption based on? That WordPress should be the only thing running on a Linux box? :-) Seriously, this is not a good way to detect if the current ""''install is running as a SVN or GIT checkout''"". I think everybody agrees that I should not be forced to get rid of my system configuration repository in order to make automatic updates work again. I think WordPress should change this behavior. What are other good ways of determining ""if the install is running as a SVN or GIT checkout""? One could also question the rational behind this: ''If it is a SVN/GIT/... checkout then *'''most likely'''* it is a development version and the developer *'''most likely'''* does not want automatic updates to be enabled?'' Too many assumptions in this for my taste, even if we could reliably determine whether the current WP installation is a DVCS checkout. Could that whole thing be done more explicitly? What would be a quick workaround for me, if I really want to have automatic updates without getting rid of /.hg? " jgehrcke Needs Patch 56282 Automatic Updates: Counter counts plugins, which can't be updated automatically (and more..) Plugins normal normal Awaiting Review enhancement new 2022-07-24T14:37:30Z 2022-07-24T14:37:30Z "Not every plugin offers to be auto updated. So for example I have 26 plugins but only 14 can be auto updated. On the 'plugins' page I can select 'Auto-updates Disabled' and there's a counter, showing (26). I'd expect it to show only 14. Also I can choose plugins having no option to be auto updated and bulk select 'Enable Auto-updates'. After clicking 'Apply' i get a message 'Selected plugins will be auto-updated.'. No, they won't. You get the point.." Presskopp Needs Patch 56785 Automatically catch potential security issues before release Security normal normal Awaiting Review enhancement new 2022-10-11T01:27:46Z 2022-10-11T01:27:46Z "It's much less effort to fix a security bug before it makes it into a release, and that also prevents users from being impacted. Automated tools are notoriously noisy, but have gotten better over the years, so it may be worth considering. I recently tested out [https://sonarcloud.io/ SonarCloud] and it seems like it could be a good fit. It primarily focuses on new PRs/commits, which is much more manageable than tools that report a backlog of false positives. It can comment on PRs with a report, and we could setup permissions so that any committer could dismiss false positives while reviewing. It could also scan (the GitHub mirror of) `trunk`, for commits that don't use the PR workflow. The ruleset can be customized, so we can only focus on security issues. I'm not partial to any particular tool, though; are there others that folks like? I just noticed [https://resources.github.com/security/tools/ghas-trial/ GitHub is trialing a static analyzer], but haven't tried it. If there are several good contenders, we could experiment with a few and then weigh the tradeoffs. " iandunn Needs Patch 42978 Automatically clear file upload error messages Media normal normal Future Release defect (bug) new 2017-12-25T15:50:20Z 2020-08-31T10:09:33Z "When an error occurs on file upload in the media uploader while drafting a post, the error message persists after both a) another file is successfully uploaded, b) the media manager is closed and re-opened. In both of these cases, it is my opinion that the user is best served by having the error message automatically dismissed, as 1. Its positioning is not typical of a ""historic/cumulative"" error log, 2. It may be assumed that by successfully uploading another file the error first encountered is no longer relevant, and 3. An indefinite amount of time may have passed since the error was first encountered and the media manager subsequently closed and the next time the media manager/upload div was re-opened such that the user may have completely forgotten about the error and may be confused to see a red error box and mistakenly think it is associated with some action he/she just took, 4. As a dialog, nothing about the media manager suggests that its state should persist after being closed and re-opened. (see attachment as an example of an error)" ComputerGuru Has Patch / Needs Testing 54838 Automatically enable some templates from inactive themes Themes normal normal Awaiting Review enhancement new has-patch 2022-01-17T08:10:44Z 2022-01-18T20:16:44Z "In the experimental days of FSE, any customisations that were made or new templates that were added to one block theme, would actually persist after switching to another block theme. This was obviously not a good user experience, because one could ostensibly switch their theme and be left all but stuck with their old one. Accordingly, the behaviour was changed to make all templates and template parts associate with one theme only. Now, when switching to another block theme, the site gets a fresh start without any of the old theme's customisations remaining. Of course, the desired behaviour is somewhere in between these two extremes. Most notably, if a user creates their own template through the template editor that was introduced in 5.8, they are unlikely to want to lose it when switching theme. This has been documented in [https://github.com/WordPress/gutenberg/issues/31954 this issue] and [https://github.com/WordPress/gutenberg/issues/25071 this issue] as well as the [https://make.wordpress.org/test/2021/10/05/fse-program-block-theme-switching-summary/ user feedback.] Automatic rules of precedence are already used to select the correct template based on customised vs theme-provided, parent theme vs child theme, PHP template vs block template, in addition to the basic template hierarchy. Could a similar approach be used to automatically select the correct template based on active theme vs inactive theme, without overwhelming users with too many options? My idea is to automatically enable templates and template parts from inactive themes only if they meet the following criteria: * they are post-based rather than file-based (since these are unaffected by deleting the inactive theme) * they do not match any file in their own theme (since these are unlikely to be minor customisations that the user intended for that theme only) * they do not match any file-based or post-based slug in the active theme (since these will not mask anything from the active theme)" manfcarlo Patch Needs Refresh 17704 Automatically enqueue necessary scripts when custom meta boxes are used Administration normal normal enhancement new 2011-06-06T05:53:43Z 2019-06-04T19:22:32Z Right now if you add_meta_box() to a custom page, like using add_submenu_page() and then calling do_meta_boxes(), the screen options and post box JS don't work automagically. They should. mitchoyoshitaka Needs Patch 57089 Automatically log-in a user Users normal normal Awaiting Review enhancement new 2022-11-12T12:52:57Z 2022-11-12T12:53:14Z "**?PROBLEM:** At the moment, when a user successfully resets their password they are presented with a screen prompting them to go to log in page and log in. **PROPOSED SOLTION:** Automatically log in the user after successful password reset and redirect them to: - Site home page - if they aren’t an admin. - Site Dashboard (wp-admin) if they are an admin. If we would like to give site owners an option, maybe we could have a toggle (checkbox) under Settings -> General that would control this - meaning, toggle between current option and proposed one. Basic gist would be to remove the following lines of code inside wp-login.php file: {{{#!php ' . __( 'Your password has been reset.' ) . ' ' . __( 'Log in' ) . '

' ); login_footer(); }}} and replace it with something like: {{{#!php ID ); wp_set_auth_cookie( $user->ID ); wp_safe_redirect( apply_filters( 'password_reset_redirect', esc_url( home_url( '/' ) ) ) ); }}} " ratkosolaja Needs Dev / Bug Wrangler Feedback 21273 Automatically open help panel Help/About normal trivial Future Release enhancement new dev-feedback 2012-07-14T19:04:20Z 2021-10-18T19:07:40Z "The help screen is highly inaccessible. Developers are not able to link to content in the help panels if you need to point users to specific directions for your plugin. This patch is a quick stab at it to see if it's worth while. What it does it allow direct links to the help panel. Upon pageload, it'll automagically open up to the correct panel. Usage: 1. Install the patch 2. Click http://wordpress.dev/wp-admin/index.php#tab-panel-help-layout Again, this is a quick stab. The concept could definitely be improve/abstracted and DRYed up. Let me know your thoughts :-)" ptahdunbar Has Patch / Needs Testing 18954 Automatically whitelist screen options added via add_screen_option() Plugins normal normal enhancement new has-patch 2011-10-14T22:54:08Z 2019-06-04T20:42:29Z "{{{set_screen_options()}}} currently maintains a hardcoded whitelist of screens that can set options. The list is extendable via the filter: {{{ apply_filters('set-screen-option', false, $option, $value); }}} but that's sort of a pain. If a plugin calls {{{add_screen_option()}}}, it should be added to the whitelist automatically. Also note that {{{set_screen_options()}}} is called so early, there's no convenient place for plugins to add to the {{{set-screen-option}}} filter. The best workaround I've been able to come up with is to manually call {{{set_screen_options()}}} again inside the page's {{{load-$hook}}}. Example naive plugin code that does not work in <=3.3. {{{ # Inside a menu page's load-$hook // Display per-page settings in screen options add_screen_option( 'per_page', array( 'label' => __( 'Things' ) ) ); }}}" mdawaffe Needs Patch 53902 Automating the creation of inline javascript and inline stylesheet nonces or hashes Security normal normal Awaiting Review feature request new 2021-08-09T13:27:25Z 2022-01-03T22:22:26Z "Inline javascripts and stylesheets are fairly common in the WordPress ecosystem. Site managers wishing to harden WordPress via a Content Security Policy have a choice between allowing such inline code via the ""unsafe-inline"" directive or must find a way to include either hashes or nonces in the CSP and, for nonces, in the code itself. While there are means to determine hashes for static javascript or stylesheets, this is hardly possible for dynamically created code. It would help better secure WordPress sites if WP included the functionality that could automate the creation of nonces or hashes and automatically include them in a function that sends the appropriate, dynamically created, header via PHP or perhaps by writing to .htaccess or the like." Josiah S. Carberry Needs Patch 34296 Autoplay for more than one self-hosted video fails Media 4.3.1 normal normal Awaiting Review defect (bug) reopened 2015-10-14T10:05:48Z 2017-07-05T20:12:26Z "Hi, When adding more than one self-hosted video to a page (using the [video] shortcode or media browser to insert), if you set more than one to autoplay, then none of them autoplay. This might be a mediaelementjs problem. Stock 4.3.1 install with TwentyFifteen: http://test.10degrees.uk/one-video-autoplay/ - one video set to autplay, works fine. http://test.10degrees.uk/two-videos-autoplay/ - both videos set to autoplay, neither plays. These are both mp4 files. Jonny" jonnyvaughan Has Patch / Needs Testing 29920 Autosave breaks if post revision fields contains a value that isn't a string Revisions normal normal Awaiting Review defect (bug) new has-patch 2014-10-10T14:11:32Z 2019-06-04T18:12:47Z "This isn't exactly a bug... Its possible to filter '_wp_post_revision_fields' to add more fields. I am using this to track revisions for some meta fields. However the value of this must be an string otherwise you get notices when trying to create an autosave - as this calls `normalize_whitespace` on an array. It would be nice if this didn't completely break things. I've added a patch that only calls normalize whitespace if both values are strings - otherwise just do a simple comparison. If you think i'm doing_it_wrong - feel free to tell me so! I guess this is related to #20564 and any other meta revision fields." mattheu Needs Patch 45404 Autosave fails for custom post type item that belongs to a non-publicly_queryable post type Editor 5.0 normal normal Future Release defect (bug) new 2018-11-23T13:34:35Z 2018-12-11T15:30:21Z "To reproduce this create a CPT: {{{#!php _x( 'Post Types', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Post Types', 'text_domain' ), 'name_admin_bar' => __( 'Post Type', 'text_domain' ), 'archives' => __( 'Item Archives', 'text_domain' ), 'attributes' => __( 'Item Attributes', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'add_new' => __( 'Add New', 'text_domain' ), 'new_item' => __( 'New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'view_items' => __( 'View Items', 'text_domain' ), 'search_items' => __( 'Search Item', 'text_domain' ), 'not_found' => __( 'Not found', 'text_domain' ), 'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ), 'featured_image' => __( 'Featured Image', 'text_domain' ), 'set_featured_image' => __( 'Set featured image', 'text_domain' ), 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), 'use_featured_image' => __( 'Use as featured image', 'text_domain' ), 'insert_into_item' => __( 'Insert into item', 'text_domain' ), 'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), 'filter_items_list' => __( 'Filter items list', 'text_domain' ), ); $args = array( 'label' => __( 'Post Type', 'text_domain' ), 'description' => __( 'Post Type Description', 'text_domain' ), 'labels' => $labels, 'supports' => array( 'title', 'editor' ), 'taxonomies' => array( 'category', 'post_tag' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => false, 'capability_type' => 'page', 'show_in_rest' => true, ); register_post_type( 'post_type', $args ); } add_action( 'init', 'custom_post_type', 0 ); }}} Then create an item and publish. After the item is saved, edit the title and wait until the autosave is triggered. The autosave fails without any JS error. Also if you make the CPT set ""public"" to false but ""publicly_queryable"" to true and create and publish an item after I refresh the editor I get the following JS error: {{{ TypeError: Cannot read property 'prefix' of null at PostLink (edit-post.js?ver=3.1.2:4769) at ph (react-dom.min.js?ver=16.6.3:97) at eg (react-dom.min.js?ver=16.6.3:125) at fg (react-dom.min.js?ver=16.6.3:126) at wc (react-dom.min.js?ver=16.6.3:138) at fa (react-dom.min.js?ver=16.6.3:137) at gg (react-dom.min.js?ver=16.6.3:135) at Ca (react-dom.min.js?ver=16.6.3:133) at Object.enqueueSetState (react-dom.min.js?ver=16.6.3:191) at ComponentWithSelect.q.setState (react.min.js?ver=16.6.3:20) }}} " kmgalanakis Needs Patch 47743 autosave locks db and is slow Autosave normal normal Awaiting Review defect (bug) new 2019-07-20T18:00:47Z 2019-07-20T18:32:35Z "If I have 2 tabs open editing pages, they have apparently got synchronised autosaves. These seem to compete for the db connection resulting in delays and occasional failures to autosave. As a suggested way to fix this, you should consider only autosave queuing in the server side. Another annoyance in autosave is that it prevents a normal save. If autosave is in progress I should be able to queue up a proper save to happen immediately after the autosave. " lamaan Has Patch / Needs Testing 29386 Autosave message should disappear when the next autosave happens Autosave normal normal defect (bug) new has-patch 2014-08-26T21:17:58Z 2019-06-04T19:26:37Z An autosave overwrites the previous autosave, so the message is no longer relevant. It will just display the same content as the current editor. iseulde Needs Dev / Bug Wrangler Feedback 42696 Autosave Notification not dismissible Autosave 4.2 normal major Awaiting Review defect (bug) new dev-feedback 2017-11-25T10:11:17Z 2023-05-15T10:09:44Z "If I make changes to a Post/Page and then decide I don't want to keep those changes, I'll simpy click away from the edit page. The next time I decide to edit the page, I'm prompted with a notification advising ""There is an autosave of this post that is more recent than the version below. View the autosave"" https://cl.ly/082A3B0u3J1u The only option I'm given is to view the autosaved version. This notificaiton should be dismissible. I shouldn't have to view the autosaved version when I already know that I don't want it. I also shouldn't have to resave the page, just to get rid of the notification. I would like to see a Dismiss icon/link so that we can dismiss the notification for good. When developing a theme or plugin, we're required to make all notifications dismissible. There's no reason why core notifcations shouldn't follow the same rules and also be dismissible." ahortin Needs Reporter Feedback / Steps To Reproduce 44786 Autosave: Conditionally allow revisions to be saved Revisions normal normal Awaiting Review enhancement new reporter-feedback 2018-08-13T22:45:46Z 2019-01-16T06:50:09Z "As is, when the `DOING_AUTOSAVE` constant is truthy, calling `wp_save_post_revision` immediately exits. One of the first things that endpoints responsible for `autosave`s are doing is set this constant -- making it impossible to save a revision using the Revisions API during the same request context. See: - [https://github.com/WordPress/gutenberg/blob/751a2fcdd7952fd4359984af292cc669cee065c8/lib/class-wp-rest-autosaves-controller.php#L169 Gutenberg] - [https://github.com/Automattic/jetpack/blob/585238715b2d3ff0a10615562001a729f12ed477/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php#L165 Jetpack] Endpoints (& other plugins) would benefit from a filter allowing revisions to be saved. A particular use case is to occasionally save revisions for drafts during an `autosave` call (so there is less chance of irrecoverable data loss when the autosave is overwritten)." jblz Needs Patch 32912 Autosaves are generated every other preview if post is unchanged Autosave 4.3 normal normal defect (bug) new 2015-07-07T22:30:03Z 2019-06-04T19:30:34Z "I'm trying to work with revisioned post meta and noticed an interesting quirk in core today that I'd categorize as ""unexpected behavior."" While this probably wouldn't come up very often, I think it can cause a bit of a headache when it does. To replicate: 1. Create a new post, give it a title, and publish it. 2. Once the screen reloads, click ""Preview Changes"". Don't make any changes to the post. * In loading the preview, WordPress created an autosave of this post 3. Return to the WordPress Admin and click ""Preview Changes"" again without making any changes. * In loading the preview, WordPress deleted the autosave it created in step 2 Every other preview will add an autosave and every other one will delete it. If at any point you do change the post, the autosave won't get deleted. In the code, what appears to be happening is, `wp_create_post_autosave()` checks to see if an autosave exists. If it does, the code checks to see if the autosave is different from the post, and if so, it deletes the autosave. If an autosave doesn't exist, the function then creates one (using `_wp_put_post_revision()`) -- *without checking to see if the post has changed*. It seems to me that there should be an intermediate function, e.g. `_wp_maybe_put_post_revision()`, which would check to see if the post has changed, and only then call `_wp_put_post_revision()`. This probably isn't a big deal, because it requires someone to attempt to preview (twice) without making changes. However, it's still a bug and it might come up in other ways. Verified in trunk and 4.2.2." mboynes Needs Docs or Unit Tests 52925 Autosaves controller: Post checks will never catch invalid IDs REST API 5.8 normal normal Future Release defect (bug) new needs-unit-tests 2021-03-27T00:28:03Z 2021-06-08T22:56:03Z "The `create_item` and `create_post_autosave` methods both try to check if the id parameter in a request is for a valid post, by calling the get_post function. The problem is that both methods expect that if it's not a valid post, it will return a WP_Error object, when in fact get_post only returns null on failure. The Posts controller has a protected get_post method that will generate an appropriate WP_Error for this case, but neither the Autosaves, nor its parent Revisions controller has a similar method. Copying that method to the Revisions controller, and then using it in the `create_*` methods seems like the best approach here." coreymckrill Needs Patch 26112 Available widgets drag-and-drop causes trouble on touch devices Widgets normal normal enhancement new 2013-11-19T15:57:32Z 2019-06-05T06:39:35Z "Now that we have click-to-add for available widgets, I think it makes sense to disable the drag-and-drop for available widgets on touch devices. The interaction tends to cause troubles on touch devices when you intend to scroll through the list of widgets, and instead initiate the draggable. Since active and inactive widgets don't have any alternative for reordering, we can keep the draggable interaction there on touch devices — but maybe we should think of a new way of reordering these widgets without requiring drag-and-drop." shaunandrews Needs Patch 58989 Avatar block alignment is not working well in some themes Editor normal normal Awaiting Review defect (bug) new close 2023-08-07T07:02:48Z 2024-02-07T08:55:35Z "Avatar block alignment is not working in some themes like Twenty Twenty-one, Twenty nineteen, Twenty Seventeen and Twenty Sixteen but it is working fine with Twenty Twenty-two & Twenty Twenty-Three. **The Main issue is that centre align is not reflected in editor side** Here is a Video of the issue along with how it works : https://drive.google.com/file/d/1YIng2VrJY9Zt1dgqD-Pg7_Lps4LaDoIW/view?usp=sharing" pitamdey Needs Dev / Bug Wrangler Feedback 38896 avatar_settings help text may not be accurate if avatar_defaults is filtered Options, Meta APIs normal normal Awaiting Review enhancement new dev-feedback 2016-11-21T22:04:36Z 2019-03-19T00:49:20Z "The string says: {{{ For users without a custom avatar of their own, you can either display a generic logo or a generated one based on their email address. }}} But, I have a need to remove generated Gravatars entirely using the `avatar_defaults` filter, which makes this text misleading. In addition, this text is not wrapped in any defining HTML, making it impossible to reliably target with CSS or JS even." johnjamesjacoby Needs Reporter Feedback / Steps To Reproduce 41387 Avoid 403's from AJAX requests from postbox.js Administration normal normal Awaiting Review defect (bug) new reporter-feedback 2017-07-20T15:34:23Z 2021-07-24T20:24:11Z "While making some improvements to a plugin's admin pages I changed the HTML in my meta boxes to be more inline with WordPress core. I then noticed that I was getting 403's from the closed-postboxes AJAX request each time I toggled the display of the postbox. Since I don't have a requirement for the open/closed state of my postboxes to persist I don't need the AJAX requests. Consequently I don't have a #closedpostboxesnonce. So, to avoid the 403's I changed postbox.js to not perform the AJAX request if the nonce isn't set. " bobbingwide Needs Patch 48279 Avoid block markup in starter content and default pages Editor 5.0 normal normal Awaiting Review enhancement new 2019-10-10T17:28:28Z 2020-11-24T04:11:49Z "In #45151 the Hello World, Sample Page and Privacy Policy content were updated to supply block markup for the editor. The Privacy Policy was the only one that took into account the classic editor and avoided providing the markup in that case as it was also used on the guide which isn't an editor page. In #48130 the starter content is being updated to account for the block editor by adding the necessary markup. It would be nice for users of the classic editor to suppress that markup when they're not using the block editor similar to what was done for the Privacy Policy content." garrett-eclipse Needs Patch 57768 avoid creating tcp connection every time General normal normal Awaiting Review enhancement new 2023-02-20T09:17:27Z 2023-03-07T19:37:28Z "Every time when I send a php request of page , initial connect value will over 700ms but the Waiting for server response just 500ms even though the same uri. Does it mean creating a new tcp connection every time? The request has setted header with Keep-Alive: timeout=5, max=100 and response setted Connection: Keep-Alive but seen invalid. How Can I avoid initial connection each time? Thank you for your time!" sophygsf Needs Early Attention 37868 Avoid default width styles in the markup of the audio player wonderboymusic Embeds 4.6 normal normal Future Release enhancement assigned has-patch 2016-08-29T18:51:47Z 2019-04-19T16:03:03Z "The markup for every audio player contains inline styles for setting its width to 100%, like below (simplified): {{{

}}} {{{

}}} Look into same field between the two html outputs, you can see most of the p, label, and input tag has different values of the css ids and classes. for example: wp_login_form(): {{{}}} wp-login.php: {{{}}} the ids are the same, but wp_login_form(): {{{

}}} wp-login.php: {{{

}}} the classes are different Can you make the ids and classes same, so it will be easier for me to make the two login forms ( `wp_login_form()` and wp-login.php ) with consistent style? " syshut Has Patch / Needs Testing 13655 Login/Install/User Edit should stripslashes() $_POST data Login and Registration 3.0 normal normal defect (bug) new has-patch 2010-05-31T11:33:17Z 2019-06-04T20:02:12Z "Following on from #13654 All Login/Registration/Install/User Edit functionality should stripslash $_POST data. At present, it seems that we do not stripslash at all. For existing user passwords, we should migrate passwords to their non-stripslashed versions: [5/31/10 6:34:11 AM] Mark Jaquith: We could migrate people.[[BR]] [5/31/10 6:34:13 AM] Dion (dd32): Perhaps oughta just add proper stripslashing in 3.1, and add back-compat to change password from non-stripslashed to stripslashed.. similar to the md5->phpass implementation..[[BR]] [5/31/10 6:35:13 AM] Mark Jaquith: Yep. If the PW doesn't match, addslashes() and compare again. If that matches, set the new PW hash. Right?[[BR]] [5/31/10 6:35:19 AM] Dion (dd32): yep " dd32 Needs Patch 38336 Login: Add new action hooks to the top of login type forms Login and Registration 4.6.1 normal normal Awaiting Review enhancement new 2016-10-17T20:11:14Z 2021-07-20T16:26:30Z "Currently there are action hooks that fire in the login forms after the fields have been loaded into the form. This allows new fields, new text, additional verification fields such as CAPTCHA, etc to be added after the username/email/password fields. However, currently there is not an easy way to add new fields to the top of the forms before the username/email/password fields without building a custom form. In my use case I require an Account/Membership number to be provided in addition to the email/username, which internally allows the same email address to be used with multiple accounts. The only place to add this new field without building a custom form is to add the field after the password field. The current field sequence on the form appears as email, password, account number. Since the account number field is more significant, it would be better to read the field sequence as: account number, email, password. In wp-login.php the login forms have the following action hooks: in form name=""loginform"" `do_action( 'login_form' );` in form name=""lostpasswordform"" `do_action( 'lostpassword_form' );` in form name=""registerform"" `do_action( 'register_form' );` in form name=""resetpassform"" `do_action( 'resetpass_form', $user );` I am requesting new additional action hooks to be created and placed at the top of each of the forms before any fields are defined. For example, in `form name=""registerform""` a new action hook such as `do_action( 'login_form_top' )` to appear directly after the form html line as follows: {{{

"" method=""post"">

... }}} The other forms (lostpasswordform, registerform and resetpassform) would be updated with similar action hooks at the top of each form." pagewidth Has Patch / Needs Testing 33295 Login: Remove decoration from translation strings Login and Registration 2.5 normal normal enhancement new has-patch 2015-08-06T19:13:30Z 2021-07-15T18:41:21Z "In recent default themes we've begun to remove decorative icons like arrows and carets from translatable strings and add them through CSS. We should do the same on the login screen. It would also make it easier to customize styling of the page." obenland Needs Patch 48119 Logout does not work when using cookie prefixes Users normal normal Awaiting Review defect (bug) new 2019-09-24T07:04:24Z 2019-09-24T10:36:42Z "When renaming the WordPress cookies to use the `__Host-` or `__Secure-` cookie prefix, logging out no longer works. The wp_clear_auth_cookie() function needs to use the ""Secure"" cookie flag to ensure that modern browsers will allow in to overwrite the login cookies when cookie prefixes are used. How to reproduce: 1. Use HTTPS 2. Set cookie prefixes in wp_config.php: {{{ if (@$_SERVER['HTTPS'] == 'on') { define( 'COOKIEHASH', md5( WP_HOME ) ); define( 'USER_COOKIE', '__Host-wpse_user_' . COOKIEHASH ); define( 'PASS_COOKIE', '__Host-wpse_pass_' . COOKIEHASH ); define( 'AUTH_COOKIE', '__Host-wpse_' . COOKIEHASH ); define( 'SECURE_AUTH_COOKIE', '__Host-wpse_sec_' . COOKIEHASH ); define( 'LOGGED_IN_COOKIE', '__Host-wpse_logged_in_' . COOKIEHASH ); define( 'TEST_COOKIE', '__Host-wpse_test_cookie' ); // __HOST- cookies MUST have their path set to / otherwise they will be ignored by the browser define( 'COOKIEPATH', '/' ); define( 'SITECOOKIEPATH', '/' ); define( 'ADMIN_COOKIE_PATH', '/' ); define( 'PLUGINS_COOKIE_PATH', '/' ); } }}} 3. Login 4. Try to logout. Inspect the cookies. Notice how the login cookies still have their original content and have not been overwritten. Solution: wp_clear_auth_cookie() needs to use the ""Secure"" cookie flag under all the same circumstances in which wp_set_auth_cookie() uses the ""Secure"" cookie flag. " lflobbe Needs Patch 59720 Long-term plan for handling Gutenberg version compatibility with core Upgrade/Install 6.4 normal normal Awaiting Review enhancement new 2023-10-24T18:54:19Z 2023-10-24T18:54:19Z "There's now a fairly common precedent that new major WP releases are often incompatible with many prior versions of Gutenberg. This makes sense, given that more and more we're going to see GB tie into the WordPress core experience. However there are some problems with how this version dependency / relationship is currently treated. In #59718 this is explained some. But to briefly re-iterate: 1) Currently, when a traditional WP upgrade is triggered and files are being replaced, core will also decide if it should deactivate the Gutenberg plugin based on the plugin version, [seen here](https://github.com/WordPress/wordpress-develop/blob/32f75bf0f4c9adeaa51277f979490a53bea07e4f/src/wp-admin/includes/update-core.php#L1842-L1868). 2) This brings about some issues. Two in particular come to mind: - If the Gutenberg plugin is not db-activated, but rather code activated, it will not be deactivated and the WP upgrade will cause the site to fatal error. An example of this is if GB is being loaded as an MU Plugin. - Even if the GB plugin is db-activated, it's fairly common for applications to be managed via version control. Meaning the `_upgrade_core_deactivate_incompatible_plugins` routine isn't actually being called. So the newly updated core files are essentially instantly present on an application that never got the chance to deactivate the older version of GB. So I wanted to open up this ticket for some discussion on how we could make this better, and perhaps prioritize for the next major release so we can stop risking fatal errors due to this during WP upgrades :) ---- Ideas: The first thing that came to mind is how the Action Scheduler plugin/library works. Many different plugins can load in this library, or it can be added as a standalone plugin. Each instance will register itself, but then it will only initialize one version ([the latest](https://github.com/woocommerce/action-scheduler/blob/trunk/action-scheduler.php#L36)). This helps prevent duplicate class/function name fatal errors, and makes the loading process safe and easy. Gutenberg is perhaps an even simpler use case, in that there's just two pieces - there is the standalone plugin and there is core. And rather conveniently, core is able to intercede early on in the process and register some loading rules before any plugins get a chance to load in. A quick code example could be something like this inside the GB plugin: {{{#!php strip_invalid_text_for_column()` to 200 bytes (`テテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテAA`) before the category is created. However, the category name `AAAテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテテ` is also 201 bytes, but when it is truncated to 200 bytes, it splits a multibyte character, so when `wp_check_invalid_utf8()` gets called, it will truncate the string to zero bytes out of an abundance of caution, since the string ends with something that is not valid utf8. It's clear that the category creator was not submitting invalid utf8, and the true goal of `$wpdb->strip_invalid_text_for_column()` was to ensure that the text would fit in the DB column without auto-truncation by the DB engine, so the ideal behavior should be that the string is truncated to the longest possible length that remains valid and fits within the column. One way to get around this data loss would be a wrapper around `wp_check_invalid_utf8()`. If `wp_check_invalid_utf8()` fails, chop a single byte off the end of the string and check it again, up to the point where you have checked the string without the last five bytes (as I believe that the longest a single character can be is six bytes, although I'm not positive about that and I think anything longer than four bytes is mostly theoretical). Or, fix `$wpdb->strip_invalid_text_for_column()` so that it doesn't truncate in the middle of a multibyte character. There might be a solution lurking in mb_strlen(). If `wp_check_invalid_utf8()` returns an empty string, take bytes off of the original string (up to 5 bytes) until `mb_strlen()` returns a smaller number and then try `wp_check_invalid_utf8()`. Configuration details: Tested in WordPress trunk (4.5-RC1-37153) and PHP 5.2.17 Here's my `wp_terms` structure: {{{ CREATE TABLE `wp_terms` ( `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL DEFAULT '', `slug` varchar(200) NOT NULL DEFAULT '', `term_group` bigint(10) NOT NULL DEFAULT '0', PRIMARY KEY (`term_id`), KEY `slug` (`slug`(191)), KEY `name` (`name`(191)) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; }}} See #36393 for discussion of a similar (but now-fixed) bug." cfinke Needs Patch 57004 Lost custom colours Editor normal normal Awaiting Review defect (bug) new 2022-11-04T20:43:02Z 2022-11-04T20:43:02Z "Using WP 6.1 running twenty twenty three theme and no plugins. I set custom colours, which then disappear when I do this: Set up custom colour, save view the site, edit the site, custom colours still there. However, if I go and edit the style json file (only a minor change - so no errors in json file), then I load the changed json style, then save, view site and edit site again ... the custom colours are not there. (I don't know where custom colours are kept - so I've assumed this may be a bug, rather than by design?) Thanks Alasdair" alasdair105 Needs Patch 59056 LOST Formatting/Settings when Live Site is copied to Staging or Cloned Formatting 6.3 normal normal Awaiting Review defect (bug) new 2023-08-10T17:06:13Z 2023-08-21T18:38:46Z "== Bug Report === Description **LOST Formatting/Settings when copied to Staging**. PDF with images attached. I originally saw this at the end of RC3, but now see that it is in 6.3 Production also. WordPress 6.2.2 works normally. Details Below: -------------------------- Everything looks fine in the LIVE site, but as soon as it is copied to STAGING (SiteGround) and then accessed, you can see that the Menu has lost it's formatting. Also the Cover Block has lost it's formatting/settings. I saw it orignally on a site I am developing, but then tested issue with bare bone site (WP 6.3, Theme 2023, No Plugins, just install & copy to staging). It is same results in Firefox & Google Chrome. Also, I just experienced the same results using WPEngine's LOCAL (Latest Version 7.1.2+6410). I create a Vanilla Site (WP 6.3, Theme 2023), then I Clone the site ... and formatting has been LOST! === Environment - WordPress: 6.3 - PHP: 7.4.33 - Server: Apache - Database: mysqli (Server: 5.7.39-42-log / Client: mysqlnd 7.4.33) - Browser: Firefox 116.0 (Windows 10/11) - Theme: Twenty Twenty-Three 1.2 - MU-Plugins: None activated - Plugins: * SiteGround Optimizer 7.3.4 * SiteGround Security 1.4.5 * WordPress Beta Tester 3.5.2 === Steps to Reproduce 1. Create bare minimum 6.3 site 2. Install NO Plugins 3. View Site (Everything is Good So Far) 4. Copy Site to Staging -or- Clone Site in LOCAL Environment 5. View Site (Formatting/Settings have been LOST) x. 🐞 Bug occurs. === Expected Results 1. ✅ Both LIVE & STAGING Sites should be the SAME. === Actual Results 1. ❌ Staged or Cloned Site has LOST Formatting/Settings." lhe2012 Needs Patch 38898 Lost password form not working with plugins that rename login URL Users 4.6.1 normal normal Awaiting Review defect (bug) reopened 2016-11-22T02:13:12Z 2017-07-19T08:20:43Z "When any given user, belonging to any given site, within a Multisite environment, try to recover its password, AND IF any security plugin which renamed the login URL is in place, the submission of that lost password form will fail because the action form has the wp-login.php URL hardcoded within. It should submit the form to the same URL you are currently on. You can refer to this support thread to learn more: https://wordpress.org/support/topic/bug-found-lost-password-form-outputting-incorrect-action-url-under-multisite/ So, the submit form URL at wp-login.php file should be outputted programatically rather than hardcoded. Best regards Marcelo " Kent Brockman Needs Reporter Feedback / Steps To Reproduce 58364 Lottie Files not centered properly Media normal normal Awaiting Review defect (bug) new reporter-feedback 2023-05-20T10:29:12Z 2023-10-25T04:48:40Z Hi, I want to tell you, that Lottie Files are not working properly in WordPress. I use them on several pages, align is set to center, but they actually are not centered. Some of them are aligned to lef, some of them are moved little bit to left. Samuel222 Needs Reporter Feedback / Steps To Reproduce 42000 Mac Keyboard text shortcuts no longer work General 4.8.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-09-27T03:02:43Z 2020-12-15T22:50:16Z "I have certain words (like Purchase) that I type 100+ times a day in a post. I have my mac set that if I type 'ppp' it turns to 'Purchase' if I type 'azz' it turns to Amazon and many others. They all stopped working in wordpress 4.8.2. They work on all other sites and apps in both safari and chrome, but no longer in wordpress. This is killing me! ALSO, in Safari only, you have to scroll all the way up to the top of a post to reach the toolbox instead of it staying at the top of the screen." anasdiary Has Patch / Needs Testing 40369 Mail server settings page (options-writing.php) has no validation Options, Meta APIs 4.7.3 normal normal Awaiting Review defect (bug) new has-patch 2017-04-05T10:55:59Z 2017-04-05T10:58:35Z "wp-admin > options-writing.php 1. Accepts everything. No character type restriction 2. Page gets submitted with anything entered in PORT textbox 3. Setting gets saved without values entered in Login name and Pass word boxes 4. Pass word box should now show actual characters!" subrataemfluence Has Patch / Needs Testing 49661 mails, Howdy, wp_mail() and filters spreading Mail 5.4 normal normal Awaiting Review feature request new has-patch 2020-03-17T17:55:11Z 2020-04-02T22:21:38Z "Hello, The different mails that are build to be sent with function wp_mail() have different ways of doing it. Some are using str_replace(), others are using sprintf(), have a different vocabulary (SITENAME, SITE_NAME, ###SITENAME### ...) Last but not least, some have different filters : from No filters to subject and/or content and/or mail headers and here again with different vocabularies ( filter_prefix_content or filter_prefix_message) ... So when you want to change some mails that belong to a group of mails (admin, network, privacy ..), you have to dig in the code and eventually ask for specific changes for this or that mail. With privacy, and locally for legal purpose, related mails must be sent by a new profile in the organisation, by some sort of a new WP ""role"" that is still to be created : the cop ... for Chief Of Privacy . In Europe, we call him a dpo. The following patch proposes to have all mails equals (except some specific ones related to wp updates). Subject and Mail body are templates. The {{Mustache}} standard is adopted. All mails have an id and belong to a group. This is an encapsulation of wp_mail() with some conventions to get the best results. With the patch, i attach here * a zip file that is a set of .eml files (with some logging in it for debugging purpose) As a proof of concept, i also attach the three plugins i developped * logphpmailer.php : to save eml files * wp_mailer_filter.php : sample plugin filtering mail using the new filters of wp_mailer class (here for privacy mails) * wp_mailer_logger.php : appends some logging to mail content using the new filters of wp_mailer class the patch also fixes a bug i detected on the Reply-To mail header (double quotes doubled, added by wp AND phpmailer) I know this is a big one. Due to CoVid, i am stuck at home in front of my keyboard. Regards" arena Has Patch / Needs Testing 44598 Main logo won't update when deleted and reuploaded with the same file name Customize normal normal Awaiting Review defect (bug) new has-patch 2018-07-17T16:37:15Z 2022-11-16T16:40:51Z "Hello, I'm experiencing the following bug: Adding a main gif logo in customizer by the media library and permanently deleting it, obviously does NOT permanently delete it but leaves some traces. When I change the color and/or the image format and reupload the slightly different file WITH THE SAME FILE NAME, WordPress displays the correct resolution in the attachment details along with the old thumbnail. Thus, although the image has been changed and rendered correctly, as I can see in the wp-content folder, the old image gets displayed on the page instead of the new main logo. Same for the cropping option before inserting. Refreshing the page doesn't help. Regards" mimoho Needs Patch 33215 Main plugin file loaded multiple times under special circumstances on Network Activate Plugins 4.2.3 normal normal defect (bug) new 2015-07-31T10:06:02Z 2019-06-04T20:50:57Z "Consider the following code in the main plugin file: {{{ function test_plugin_install ( $network_wide = null ) { if ( $network_wide ) { trigger_error( 'Please activate individually.', E_USER_ERROR ); } } register_activation_hook( __FILE__, 'test_plugin_install' ); }}} and a multisite setup with * mysite.intern as main site * one.mysite.intern, two.mysite.intern, etc. as blog sites Now, if you first activate the plugin ''individually'' on mysite.intern, and then select ""Network Activate"", the following is logged: {{{ PHP Fatal error: Please activate individually. in test_plugin.php on line 17 PHP Fatal error: Cannot redeclare test_plugin_install() (previously declared in test_plugin.php:15) in test_plugin.php on line 15 PHP Fatal error: Cannot redeclare test_plugin_install() (previously declared in test_plugin.php:15) in test_plugin.php on line 15 }}} and only the last error is displayed on the admin page. If the plugin is first activated on another blog site or isn't activated individually anywhere, only the expected ""Please activate individually"" error is thrown and displayed on network activation, as expected. Wrapping the function test_plugin_install in a conditional only results in the next function in the plugin file triggering the redeclaration error." ccprog Needs Docs or Unit Tests 44236 Maintain consistency between privacy export report and archive filenames GripsArt Privacy 4.9.6 low minor Future Release defect (bug) assigned needs-unit-tests 2018-05-26T00:03:07Z 2019-01-27T09:03:40Z "Prior to r43180, the export `.zip` filename changed every time it was regenerated; after that commit, it was reused to ensure links aren't broken (see #43905). That commit didn't do anything to the `.html` filename, though, so after the initial regeneration, the value of `$obscura` will not match between the two filenames. I don't think this presents any issues for Core, and might not for plugins either, but it seems like they should be consistent, just to be safe. If a plugin hooks into `wp_privacy_personal_data_export_file_created`, it may reasonably assume that the filenames to match, and do something like `str_replace( '.html', '.zip', $foo )`. That seems unlikely, since both filenames are passed to the callback, but it's better to be safe than sorry." iandunn Needs Patch 50797 Maintenance file path should be configurable Upgrade/Install normal normal Awaiting Review enhancement new 2020-07-28T11:42:29Z 2020-09-16T18:02:59Z "The maintenance file path is hardcoded to: {{{#!php ABSPATH . '.maintenance' }}} In other words, it is assumed to be in the **WordPress root directory**. When working on high availability environments with **N WordPress replicas**, it's common to use NFS to sync data across every replica. For instance, you can mount a NFS volume at **wp-content**. To ensure the maintenance mode is simultaneously activated/deactivated on every replica, we also need to ensure the maintenance file is synced between replicas. That's why we need its path to be configurable, so we can change its location to a different directory where a NFS volume is mounted." juanariza131 Needs Patch 53628 Maintenance Free Updates - Zero downtime Plugins 5.8 normal normal Awaiting Review enhancement new 2021-07-08T17:23:07Z 2022-03-18T16:21:51Z "I have been testing an approach to allow updates to be deployed to themes and plugins with Zero downtime (no maintenance page needed). It seems that WP if fairly sympathetic to the approach and I am keen to see if there are any red flags - and also the opportunity to get the approach into core so the world can benefit from it if! The approach is as follows: - When a plugin update is available - install the plugin into a directory that is namespaced with the plugin name AND version (as per the meta) e.g. /wp-content/plugins/plugin-v1.3.2 At this point WP will see two instances of the plugin - but it treats them as unique and the initial plugin remains active - Activate the plugin - via a database update - modify the wp_options row to set the new plugin to be active. It is critical that this is done as a database update - so that it is an atomic action - allowing WP to continue to process requests as the switch over takes place. The old plugin can remain in place to support roll back and then deleted Rollback is simply a question of restoring the active plugins options field back to the original settings Pros / Cons - I have tested this manually and WP seems happy - both locally and on hosted environments. As far as WP seems to be concerned it is seeing a new plugin. - As the plugin directory is now namespaced - all assets in it e.g. css /js will also be cache busted ensuring all assets in your release are updated. - WP does not currently have a plugin updated event - the activation of the new plugin will simply go live. - A ""pre flight"" step could be run on plugin update to check the plugin is well formed and no PHP errors exist - ensuring that it is not possible to activate a faulty plugin - We have also seen that with our automated plugin updater - it still works to deploy the new plugin as the location of the plugin deployed in a zip unpacks into a new directory. We are looking to build a WP_CLI plugin to deal with the activation - it works with plugin active / plugin deactivate - but this is not atomic so there would be a period of time where the plugin would be missing so we are replacing it with a transaction. I am very keen to get feedback on this approach - as we are going to start using it on our sites. " billybigpotatoes Needs Patch 14028 Maintenance mode nag persists after successful upgrade Upgrade/Install 3.0 normal minor enhancement new 2010-06-21T18:27:55Z 2021-03-01T09:47:03Z "A number of forum users are reporting that the maintenance nag ""An automated WordPress update has failed to complete"" etc.. persists after failed auto-updates even if they then successfully perform manual updates. Looks like something is leaving $upgrading set." mrmist Needs Patch 14393 Maintenance mode overkill. Please refine usage of it Upgrade/Install normal normal Future Release enhancement new 2010-07-22T22:12:14Z 2017-03-18T14:52:11Z "Though many tickets have been posted about the Maintenance Mode not resolving, I think that the problem is on a different level. It is unacceptable that even a failed upgrade of an inactive theme can break a complete Site or even Network. Case in point: I just followed the upgrade alert for an inactive theme, hosted on the WordPRess theme repository. (Apparently it had an error (Incompatible Archive. PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature.) But the point is, this should not have put the entire network in maintenance mode for 10 minutes. Maybe a check can be done for plugins, themes etc: if they are active, then maintenance mode can be used (though I am definitely not a fan of it anyway)." bike Needs Patch 50182 Majority of bundled themes have broken mobile nav menus when JS turned off Bundled Theme normal normal Future Release defect (bug) new 2020-05-15T22:59:57Z 2020-05-30T09:55:59Z "I tried turning off JavaScript in my browser (via DevTools in Chrome) and then activated each core theme to see if I could access mobile nav menu items. Unfortunately, for the themes which have an expandable mobile nav menu, the majority fail to gracefully degrade when JavaScript is disabled (either on purpose or the script fails to load over the network). Themes which gracefully degrade by just revealing all the nav menu items: * Twenty Nineteen * Twenty Seventeen * Twenty Sixteen Themes which show a mobile nav menu button which does nothing when tapped: * Twenty Twenty (mobile search also broken) * Twenty Fifteen * Twenty Fourteen (mobile search also broken) * Twenty Thirteen * Twenty Twelve" westonruter Needs Patch 21669 "Make ""Home"" option persistent in Pages box on Menus screen" Menus 3.4 normal normal defect (bug) new 2012-08-23T16:57:08Z 2019-06-04T20:03:36Z "If you have some pages, or even a page, then on nav-menus.php in the Pages box, View All, it will display Home as an option. However, if you do not have any pages at all (mostly Blog on front page scenarios), then it just says ""No items."" in the Pages box. It should always be populated with at least the Home option. Oversight on our part that we didn't uncover this behavior before. " jane Needs Dev / Bug Wrangler Feedback 37921 "Make ""newbloguser"" URL segment customizable/filterable" Users normal normal Awaiting Review feature request new dev-feedback 2016-09-02T16:25:45Z 2019-04-19T13:33:20Z "The built-in multisite user invitation URL is forced into using `/newbloguser/` as the invitation endpoint to all sites. When employing WordPress Multisite in an environment that isn't for blogging, this endpoint does't make much sense. Because this value is hardcoded, the only way to change this is to roll your own invitation system entirely, which is a lot of work for a little bit of vanity. I don't think the invitation system itself is too bad, and it will be easy to make this segment filterable." johnjamesjacoby Needs Dev / Bug Wrangler Feedback 31093 Make $tag argument optional for has_shortcode() Shortcodes normal normal Future Release enhancement new dev-feedback 2015-01-21T19:53:17Z 2017-10-31T09:25:16Z Use case: I'd like to see if my string has ''any'' shortcodes. danielbachhuber Needs Docs or Unit Tests 24386 Make _pad_term_counts work for non-post type objects and attachments Taxonomy normal normal enhancement new needs-unit-tests 2013-05-22T18:23:31Z 2020-11-05T15:55:22Z "If you register a hierarchical taxonomy against a non-post object (such as users), or attachments that aren't associated with another post, _{{{pad_term_counts}}} does bubkus, due to the INNER JOIN on {{{$wpdb->posts}}}, and the check for 'publish' status (which is relevant for attachment post types). I'm suggesting an alternative approach would be to use $term->count, and eschew going back to the database altogether." TomAuger Needs Patch 44498 Make `_wp_personal_data_cleanup_requests()` run on cron Privacy 4.9.6 normal normal Awaiting Review enhancement new 2018-07-03T15:17:06Z 2018-07-30T15:56:24Z "When a data export or removal request is created, a user must confirm that request within x days. By default, this is 1 day (24 hours), but it can be changed using the `user_request_key_expiration` filter. If a user does not confirm the request within that time, it is marked as failed, and the request needs to be re-initiated. Currently, requests are only marked as failed when the Export/Erase Personal Data screens are accessed. By default, only administrators can access this page, and will most likely do so very infrequently. Because of this, a cron may be more appropriate for marking requests as failed. A `posts_per_page => -1` query arg is also used to fetch expired requests, which could cause issues when a large number of requests have failed. Moving this action to a cron should cut down on the number of requests that need to be transitioned at a time." desrosj Needs Patch 37887 Make attachments atomic until a Customizer session is published Customize 4.7 normal normal Future Release enhancement new 2016-08-30T16:50:18Z 2017-10-16T06:45:09Z "== Current behavior == When you upload attachments via a Customizer session they are: 1. Added to the filesystem. 2. Saved to the database as a new post. 3. Immediately visible in the Media Library to all other logged in users. == Desired behavior == Attachments that are uploaded during a Customizer session should not be published, or even visible by other logged in users, until the user decides to publish the changes. == Possible idea Until Customizer changed are published, all `attachment` posts that have been uploaded inside the Customizer could have their post status set to `auto-draft` rather than `inherit`. This will make them invisible inside the Media Library from other logged in users. All `attachment` posts uploaded during the Customizer session could be stored inside the new Customizer transaction, and the Media Library query could be made to only show those uploads during the current unpublished session. == Publish or Discard If a transaction (customizer changes) is '''published''', then the post status on these `attachment` IDs can be set to `inherit`, making them visible inside in the Media Library like normal. If a transaction (the customizer changes) is '''discarded''', then the `attachment` IDs can be force deleted via `wp_delete_attachment( $ID, true )` which will not only delete them from the database, but also from the filesystem." fjarrett Needs Patch 27086 Make auth-check logins work with 1Password Login and Registration normal normal defect (bug) new 2014-02-10T15:51:22Z 2019-06-04T20:06:45Z "After some conversation on Twitter, I've been testing 1Password's browser extensions against WordPress. It works fine when logging in normally, but when you get logged out and need to log in from an iframe, it fails pretty hard. Specifically, 1Password decides to fill *every* text input — even those that are hidden, that have content, or that aren't in the same form — with the login name. This is despite the web form fields being configured, present, and matching up perfectly. (By hidden I'm referring to type=""text"" that is visually hidden, not type=""hidden"".) Basic steps to trigger the issue: * Have a login saved from wp-login.php (making sure that your web form details are for ""log"", ""pwd"" and optionally ""rememberme""). * Edit a post. * Hit the 1Password global shortcut, ⌘\. It will fill in every text input, including the title, the tags meta box input, the slug meta box input, etc. It's a mess. Steps to reproduce with a real login form: * Have a login saved from wp-login.php, etc. * Edit a post. * Delete your login cookies. Wait three minutes, or speed things up by calling `wp.heartbeat.connectNow()` in your console. * An iframe should pop up (assuming you're not cross-domain, at least). Log in using ⌘\. * It'll log into the iframe and submit it, which closes it. * Note that the title field and all other text fields. Steps to reproduce to comedic results: * Have a login saved from wp-login.php, etc. * Visit Settings > General. * Delete your login cookies. Wait three minutes, or speed things up by calling `wp.heartbeat.connectNow()` in your console. * An iframe should pop up (assuming you're not cross-domain, at least). Log in using ⌘\. * It'll log into the iframe and submit it, which closes it. * Note that every single settings field is filled with your login. Here's a dead-simple HTML page to try that involves two different forms. Doesn't matter where the focus is when ⌘\ is invoked. Doesn't matter if it's one form, multiple forms, an iframe, whether the other inputs are even wrapped by form. {{{
}}} It seems that ""If the fields saved in a Login item don’t match the ones on the page I try to fill what I can"" ([https://twitter.com/1Password/status/432687921154371584 source]) is inaccurate. It doesn't matter whether the fields match; and ""fill what I can"" actually means ""randomly stomp on all fields"". This reminds me of #24364. Possible solutions: * Disable all other inputs when the iframe is open, and re-enable them when closed. (Need to be careful to not re-enable previously disabled fields.) * Convince 1Password to release a fix for this. They happen to be WordPress users themselves, so it's not out of the question. There are numerous options here, as well — not filling in outside of an iframe is probably pretty safe, especially when fields also match 1:1. But one question would be how quickly they'd make a fix. I'd tend to think we'd be able to release 3.9 first. I filed an unrelated report of a simple, annoying, and straightforward bug about two months ago; their last bug fix release was about a month ago." nacin Needs Patch 51585 Make beta & RC releases available in Github General normal normal Awaiting Review feature request reopened 2020-10-21T07:26:28Z 2022-06-15T20:52:56Z It would be awesome if WP beta & RC releases/tags would also be available on https://github.com/WordPress/WordPress malthert Needs Patch 38419 Make beta testing an opt-in feature in core General 4.7 normal normal Awaiting Review feature request new 2016-10-20T19:27:42Z 2021-10-05T01:11:32Z "Currently beta testing of WordPress core (and feature plugins) is something you have to be aware of to take part in. This limits the reach of beta testing feedback to those who are intimately engaged in the day-to-day development of WordPress core and results in feedback that skews heavily in the direction of those who build WordPress as opposed to those who use WordPress. To increase participation in end-user testing of WordPress core and feature plugins, active participation in such programs should be surfaced more visibly, either through settings during install, a modal pop-up, or an alert. To be clear, I'm not talking about testing of bleeding edge nightlies here, but specific features and feature plugins in Beta or RC state. A simple admin alert saying ""WordPress 4.7 beta is available. Would you like to test it?"" would be a huge improvement. Similar can be done with select feature plugins, especially if the alert is tied to the feature they change/improve (so for a new media feature, the alert would appear when the media functionality is engaged: ""We are working on a new and improved media panel. Would you like to test it?""). This would of course have to be done sparingly to avoid alert overload. == Simplified feedback procedure == Along with the surfacing of beta testing, there should be a way to provide feedback on features directly from within WordPress admin. Asking for feedback to be posted in a Trac ticket or even a Make blog post limits the number of possible responses significantly. An in-app feedback feature activated only for testers would greatly simplify the process and most likely increase the volume of feedback data significantly. Whether this data is mapped to Trac tickets or something else needs to be addressed." mor10 Needs Docs or Unit Tests 9824 make better use of stubs when verbose rules should apply Rewrite Rules normal normal task (blessed) reopened needs-unit-tests 2009-05-15T01:03:56Z 2019-06-04T21:05:28Z "Related to: http://core.trac.wordpress.org/ticket/6603#comment:27 Problem fixed is: > posts show up as www.apexprd.org/page/2 and not /news-and-events/page/2 as it should. with permalinks set to /something/$postname%/ we arguably don't necessarily need verbose rules here, since there is a stub." Denis-de-Bernardy Has Patch / Needs Testing 39406 Make callback_args filterable in WP_Terms_List_Table Taxonomy 4.7 normal normal Awaiting Review enhancement new has-patch 2016-12-27T15:25:23Z 2019-10-12T00:04:53Z "The callback_args variable is specific to the WP_Terms_List_Table class. It defines a set of core variables that are passed to the get_terms function, and thereby to the generated WP_Term_Query instance. They can't be modified so restricting the default terms displayed to the paginated display of all terms for that post-type / taxonomy association. The reason for this enhancement request is to easily allow the development of drill-down filtering for custom columns, which are added via the filters: {{{ add_action( 'manage_edit-{$taxonomy}_columns', 'add_column' ); add_action( 'manage_{$taxonomy}_custom_column', 'add_column_content, 10, 3 ); // Add the meta data column sortable add_filter( 'manage_edit-{$taxonomy}_sortable_columns', 'add_column_sortable' ] ); }}} It is possible to do this at a lower level in get_terms - from 4.6 at least - using the 'pre_get_terms action' and injecting / over-riding the WP_Meta_Query query_vars['meta_query'] value e.g. with: {{{ add_action( 'pre_get_terms', 'get_terms_meta' ); function get_terms_meta($query) { // store current query vars $query_vars = $query->query_vars; $args = []; $args['meta_query'] = [ [ 'key' => 'meta_key', 'value' => 'meta_value', 'compare' => 'LIKE' ] ]; if ( !empty( $args ) ) { $query->query_vars = array_merge( $query_vars, $args ); } } }}} That requires a deep understanding of core funtions - as well as some core digging! It would be much more flexible if there was an entry point filter that could be used to modify the get_terms args to manipulate by custom field, e.g. {{{ add_filter( 'manage_edit-{$taxonomy}_column_filter', 'column_filter' ); function column_filter( $args ) { // conditions met e.g. $_GET['meta_key'] $args['meta_query'] = [ [ 'key' => 'meta_key', 'value' => 'meta_value', 'compare' => 'LIKE' ] ]; return $args; }}} The column field value could be modified to add the query arg for the meta_key via the column filter detailed earlier. I've hacked it in a test version of the class and it's pretty functional. {{{ $args = array( 'search' => $search, 'page' => $this->get_pagenum(), 'number' => $tags_per_page, ); }}} to {{{ $args = array( 'search' => $search, 'page' => $this->get_pagenum(), 'number' => $tags_per_page, ); $args = apply_filters( 'manage_edit-' . $this->screen->taxonomy .'_column_filter, $args ); }}} Thanks " tifosi Has Patch / Needs Testing 21165 Make categories widget work with custom taxonomies wonderboymusic Widgets normal normal enhancement reopened has-patch 2012-07-05T14:15:13Z 2019-06-05T06:38:38Z "The tag cloud widget already has a taxonomy dropdown. We should add one for the categories widget as well." scribu Needs Dev / Bug Wrangler Feedback 9611 Make comment feeds fail with an error code when comments are closed Feeds 2.8 normal normal enhancement new dev-feedback 2009-04-21T14:12:42Z 2019-06-04T19:42:34Z "This is mostly a suggestion as an enhancement. When you close a post's comments and pings, it should no longer output an rss feed. Instead, it should return a not found (404) or gone (410) error and die. Likewise, if all posts and pages on a site disallow comments and pings, the comments feeds should not be broadcast, and should return the same error code. Thoughts?" Denis-de-Bernardy Needs Patch 43023 Make Core Image Handling More Extensible Media 4.9.1 normal normal Awaiting Review enhancement new 2018-01-04T21:35:41Z 2020-08-21T03:34:07Z "As we are beginning to see many new and promising formats such as WebP (#35725), APNG, and HEIF/HEVC (#42775), it is probably time to revisit all of the image-related code in the Core, providing filters and hooks so that plugins and themes can choose to support them. Based on the work in #35725, it is clear there are a number of areas with insufficient extensibility, making it impossible for such work to be done by third-party code. [[BR]] '''WRAPPERS''' `getimagesize()`: Due to various bugs and inconsistencies within PHP, direct calls to this function should be replaced with a wrapper function capable of providing filtered responses. #35725 includes this in its patch. [[BR]] '''FILTERS''' Many functions include hard-coded datasets or conditions. By wrapping those in filters, third-party code can alter behavior accordingly. * `wp_stream_image()` * `wp_save_image_file()` * `wp_generate_attachment_metadata()` - The extensions-by-type need to be filterable. * `load_image_to_edit()` - The $mime_type switch needs a filterable default. * getid3.lib.php `ImageTypesLookup()` - Types need to be filterable. * class-phpmailer.php `_mime_types()` - Types need to be filterable. * image classes `supports_mime_type()` * class-wp-theme `get_screenshot()` - Filterable types. * `gd_edit_image_support()` - Filterable responses for both conditions. * `translate_smiley()` - Needs filterable types. * `wp_get_image_mime()` * `wp_attachment_is()` - Filterable extensions. * `wp_mime_type_icon()` - Filterable test for image files. [[BR]] '''OTHER''' There are additional areas that require more complicated solutions. * `file_is_displayable_image()` - Relies on constants which may not be defined, even in cases where an image type is actually supported. Haha. * wp-admin/includes/schema.php - $misc_exts needs to be filterable. * class-wp-image-editor-gd `load()` - Needs a filter around the resource creation. `imagecreatefromstring()` does not work consistently depending on the GD version installed. * class-wp-image-editor-gd `_save()` - Needs a filter to handle alternative MIME types. * class-wp-image-editor-gd `stream()` - Needs some means of specifying alternative headers and callbacks. * class-wp-image-editor-imagick `thumbnail_image()` - Needs some means of specifying options for different image types. * class-wp-image-editor-imagick `stream()` - Needs a shortcut filter to allow for completely different handling. (This is a quirk of the PHP extension not always properly communicating with the system binary, leading to segfaults, etc.) * class-wp-customize-media-control `to_json()` - Needs some method of altering the $type matching. [[BR]] '''ROADBLOCKS''' Additional requirements, such as defining missing PHP constants, might not be possible by the time plugin or theme code is executed. However by the time official PHP support lands, we can probably consider adding such values to the `compat.php` file (without necessarily providing a full blessing for the filetype within the Core)." blobfolio Has Patch / Needs Testing 37486 Make emojis accessible Emoji 4.2 normal normal Future Release task (blessed) new has-patch 2016-07-27T15:01:59Z 2021-01-05T08:08:42Z "Splitting this out from #37432. Currently, the WordPress Emojis are not accessible. The alt text contains the emoji character (vs a HTML encoded entity, or the emoji description) and that's a deliberate implementation choice, see [ticket:37433#comment:3] intended to allow copy and pasting the emojis. We've discussed a bit this issue in the accessibility weekly meeting and agreed there's room for improvements. At least, starting a discussion about emojis accessibility would be very welcome. Quickly checking how screen readers announce the WordPress emojis, there's no accessible name or description they can use: [[Image(https://cldup.com/oioYLgdQ86.png)]] Note: VoiceOver reads out ""group"" because the image is a `svg` file. Just adding an `aria-label` attribute (I've quickly edited in the browser console) gives screen readers an accessible name to announce: [[Image(https://cldup.com/xP0gzKlsnK.png)]] Comparing with what others do, for example Twitter because they usually have great solutions for accessibility, they use `png` images and both an `aria-label` and a `title` attribute, so VoiceOVer in this example reads out both. I guess the title attribute is used just to show the browser's ""tooltip"" with the emoji name: [[Image(https://cldup.com/MwMY0nHtoQ.png)]] {{{ }}} The aria-label solution is mentioned also on a related issue on the twemoji GitHub: https://github.com/twitter/twemoji/issues/41" afercia Needs Docs or Unit Tests 37938 Make existing HTML parsing functionality from REST API and Press This reusable kraftbj* Pings/Trackbacks 4.2 low minor Future Release enhancement accepted needs-unit-tests 2016-09-03T17:08:26Z 2023-05-30T11:34:09Z "WordPress already has an HTML parsing function in the form of WP_Press_This::source_data_fetch_fallback and its private called functions. Suggesting this be split off so it can be used elsewhere. Specifically, my use case is over on the Ping and Trackbacks component. One of the proposals I keep advocating for is improving the presentation. As we already have this code in WordPress that allows for parsing of HTML for images, embeds, meta tags, etc, it should be used over writing new code to do the same. But if it were to be called right now, it would reretrieve source HTML already retrieved by the Pingback code and passed into the comment array." dshanske Needs Patch 46179 Make fetch_array accessible in $wpdb Database normal normal Awaiting Review enhancement new 2019-02-04T09:38:25Z 2019-02-04T09:38:25Z "Hi, I want to suggest a change in $wpdb. I'd like to see a possibility to use fetch_array by myself rather than taking the result of a query as an array or object. Let me explain why. WordPress doesn't scale very well when you handle large amounts of data from the database. For example, if you want to display a list of all posts and you have like 5000 of them. You'd use WP_Query for that. Which is fine, I guess, for a limited number, but slow in this use case. So you'd query yourself. {{{ SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_title ASC }}} If you give that to $wpdb, you'd receive an array with all 5600 posts and all the jazz attached to it. It takes 5 seconds and takes about 500 MB of PHP memory. I have now added an own class and established a second database connection. With that, I run the query above but the result remains in mysql. Instead of {{{#!php fetch_array($results)) { // do stuff } }}} And I only need 30 MB of PHP RAM and 0.4s of time. This saves a lot of resources because you are able to get rid of a lot of PHP overhead. See, the MySQL result is in memory either way (because you did run the query) but you don't have to store everything from the result in PHP memory as well. You process them one at a time and only store (or output or whatever you need to do) what you actually need. I know this is nothing you'd usually do but there are other use-cases where an accessible fetch_array would come in handy in the interest of performance optimization - for example if your plugin utilizes a cronjob which has to handle large amounts of data. I don't assume this would break anything compatibility-wise as it is an additional method inside this class, so it would be a very nice addition. All you'd need is to add a new return method to $wpdb->query that returns the MySQL resource and a new method that exposes a fetch_array function to the public accepting said resource. Thank you a lot for reading my proposal and at least considering it :) -alduin" alduinwf Needs Patch 37484 Make form in request_filesystem_credentials() in line with WP admin form styling / HTML structure / security Upgrade/Install normal normal Future Release enhancement new 2016-07-27T12:57:10Z 2020-06-29T17:18:41Z "Currently, the `Connection Information` form output by `request_filesystem_credentials()` looks very sad and doesn't reflect the admin form HTML structure and style. This is how it looks: [attachment:""Screen Shot 2016-07-27 at 13.41.52.png""] It would be great if it can be standardised to look like WP admin settings UI, i.e. [attachment:""Screen Shot 2016-07-27 at 13.41.23.png""] While at it, it would be great to secure the form code with escape family functions (esc_attr, esc_html and so on)." dashaluna Has Patch / Needs Testing 19579 Make get_search_form() more filterable/extensible Themes 3.3 normal normal enhancement new has-patch 2011-12-16T15:16:17Z 2019-06-04T21:07:18Z "I notice that a lot of the time when Themes include custom search form markup via `searchform.php`, they are making very minor changes to the default markup. (A common on is adding onfocus/onblur attributes to the input.) Unfortunately, I've also noticed that custom search form markup tends to be... forgotten, and ends up becoming more insecure over time. So, in the interest of encouraging/facilitating use of the core markup, I propose making `get_search_form()` more extensible, similar to the extensibility of `comment_form()`. This patch replaces `$echo = true` with `$args = array()` as the parameter passed to `get_search_form()`, while retaining backward compatibility with `$echo = true`. Also, a (self-explanatory) `search_form_defaults` filter is added. Also addresses #16538 Does '''not''' address #16541, which is potentially related. Probably '''conflicts''' with #14851 Also related: #19321" chipbennett Needs Patch 13691 Make get_template_part() accept multiple template names Themes normal normal enhancement new 2010-06-02T03:19:34Z 2019-06-04T21:05:47Z "This enhancement allows get_template_part() allows to pass several template names, to work in the same way as: locate_template() so, you could call, get_template_part( 'loop', array('category', 'taxonomy', 'archive') ); $names are passed by order of priority." wjm Has Patch / Needs Testing 39106 Make hierarchy level indicator text changeable [WP List] Posts, Post Types 4.6.1 low minor Future Release enhancement assigned has-patch 2016-12-06T10:09:08Z 2021-01-31T16:29:57Z " In `WP_Posts_List_Table` class, dashes(—) used to indicate the hierarchy level of post item, which is not changeble by any filter, we can add a new filter to replace this string. {{{ $pad = str_repeat( '— ', $this->current_level ); }}} https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-posts-list-table.php#L918-L919 Source: http://wordpress.stackexchange.com/questions/248405/replace-dashes-before-title-in-page-list" gk.loveweb Needs Patch 43352 Make html5 standard rather than opt in for theme development Themes normal normal Awaiting Review feature request new 2018-02-19T11:36:10Z 2019-01-16T06:42:42Z "Currently when you want to have WordPress output valid HTML5 code for certain elements ('search-form', 'comment-form', 'comment-list', 'gallery', 'caption') you have to specifically add support in functions.php via add_theme_support( 'html5', […]) to opt in for use in your theme. I propose to make these 5 elements HTML5 by default, HTML5 support in modern browsers are more than adequate and most, if not all, modern themes use HTML5 code. The HTML5 standard is also stable. WordPress should output these elements in HTML5 by default rather than having developers opt in, by now the situation should be the other way around, you should opt out if you for some unknown reason would rather not have HTML5 code." kkalvaa Patch Needs Refresh 10384 Make IIS Permalink support enabled based on capability not on version number westi Permalinks 2.8 normal normal enhancement new 2009-07-11T08:37:44Z 2019-06-04T20:40:48Z "At the moment we enable the IIS permalink support based on checks for IIS7 and then some capabilities. We should remove the version checking and work solely on capabilities so that we don't have to revisit when IIS8 is released." westi Needs Patch 29904 Make images viewable while editing a gallery Media normal normal defect (bug) new 2014-10-09T14:37:07Z 2019-06-04T20:09:33Z "Ordering images in a gallery can be very difficult when you are limited to thumbnails. Users must switch back and forth between their post and their camera roll to identify each image and make sure each is in the proper place. Click/tap to view an image is a common pattern that is missing here. Some use it elsewhere to reassure themselves that they uploaded the right images and put them in the right order. First reported in: https://make.wordpress.org/flow/2014/06/02/kibble-viewing-images-while-editing-a-gallery/" obenland Needs Patch 39635 Make insertion of generic dismissible notices in frontend code possible Administration 4.7.1 normal normal Awaiting Review feature request new 2017-01-19T02:51:45Z 2020-02-15T10:41:45Z "As a plugin developer I want to employ dismissible notices on an admin screen. All is fine as long as I use the hook in server-side code to insert them on page load. But if I want to use them in frontend code (for example to notify users of Ajax events), the only way to access the initialisation code is to hijack one of the events in [source:trunk/src/wp-admin/js/common.js#L415 common.js#L415] - with possibly heavy side effects. It would be easy to add a generic event like `wp-notice-added` that is not used by specific actions to make the live of developers easier." ccprog Needs Dev / Bug Wrangler Feedback 17924 Make Integrating Multiple Roles Per User Easier for Plugin Authors Role/Capability 2.0 normal major Awaiting Review enhancement new dev-feedback 2011-06-28T23:40:48Z 2021-07-20T16:41:38Z "WordPress supports multiple role per user, however to use this feature is very difficult for plugin authors to integrate well, and often requires adding plugin admin pages instead of integrating with the pre-existing user-edit.php. Due to the difficulty of this, and the fact that most plugins that allow this aren't very user-friendly, I believe users are staying away from multiple roles. This ticket aims to change how easy it is to work with the current role management system, as well as to add a couple role-based filters and actions, while still keeping the front-end of the administrative interface single-role only. (Because it seems to be the prevailing opinion the multiple roles per user is plugin territory.) In addition, I completely agree that the vast majority of sites can best function with one role per user, however in some cases (such as the site I'm working on now) you simply need to be able to choose multiple roles. = Changes = == First Patch File == attachment:Replace_Admin_Role_Dropdown.patch The first patch file moves the code for the role dropdown off of /wp-admin/user-edit.php, /wp-admin/includesclass-wp-users-list-table.php, /wp-admin/users-new.php, /wp-admin/options-general.php and into /wp-admin/includes/template.php where two new functions are created: === {{{wp_get_dropdown_roles()}}} === This function does what {{{wp_dropdown_roles}}} used to do, but it returns the value instead of echoing it. (Note that {{{wp_dropdown_roles()}}} now acts as a wrapper for {{{wp_get_dropdown_roles()}}}. (The old function is still in place for backwards compatibility.) === {{{wp_user_role_selector()}}} === This function creates the full dropdown and applies a new {{{'user_role_selector'}}} filter to the markup before echoing it out. This way the default dropdown can be overridden by something else (perhaps checkboxes). == Second Patch File == attachment:Create_Role_Update_Actions_Filters.patch The second patch file changes the functions that handle user creation and updating so they can be hooked into and a developer could make this work with multiple roles. This file affects /wp-admin/includes/users.php and /wp-includes/user.php. === {{{wp_sanitize_user_role()}}} === A new {{{sanitize_user_role}}} filter was created and sanitation of {{{$_POST['role']}}} in /wp-admin/includes/user.php when user-edit.php is submitted was moved there. The new function is called {{{wp_sanitize_user_role()}}}. (This is so that if user-edit.php is submitted and {{{$_POST['role']}}} were to contain a value other than a string (perhaps an array of roles) it can be sanitized and worked with accordingly. === {{{pre_user_role}}} === A new {{{pre_user_role}}} filter was added to {{{wp_insert_user()}}} in /wp-includes/user.php. This was mainly done because almost every other field that this function processes has a matching filter like this, and I thought maybe {{{$roles}}} felt left out as it did not. :( I supposed somebody could also use it for something useful as well. === {{{apply_user_role}}} === A new {{{apply_user_role}}} action was added to {{{wp_insert_user()}}}. The function itself no longer uses {{{$user->set_role()}}}, instead saving user role changes is now handled by this new action. A matching function {{{wp_apply_user_role()}}} was added to set the user role like {{{wp_insert_user()}}} used to do. This way however, a plugin author could simply hook into {{{apply_user_role}}} to apply multiple roles to a user. = Conclusion = All in all, this patch was designed so that the average user would never even notice that a change has been made to user management, however a plugin author looking to add an easy way for people to select multiple roles for a user can quickly hook into this and have a nice, easy, well integrated and WordPress-like plugin. I have done a few tests adding users and changing roles around with these patches applied on a fresh installation with no plugins and the only changes to WordPress being those that are in the attached patches, and everything seems to work seamlessly. By the way, I am quite new to WordPress, so I added the needs-testing tag, because it does, but I also want to make sure I've done everything the 'WordPress' way and I want to make sure I havn't missed anything that is broken because of these small changes." mobius5150 Needs Dev / Bug Wrangler Feedback 31821 Make interim login URL filterable johnbillion Login and Registration 4.2 normal normal Future Release enhancement reviewing dev-feedback 2015-03-31T14:36:20Z 2017-08-22T14:40:51Z Currently, there is no clean way to detect and filter the interim login URL, short of using the ''clean_url'' filter. Obviously, this is not ideal. Plugins that modify the login URL, like my plugin, Theme My Login, would definitely benefit from a direct filter on this. jfarthing84 Needs Dev / Bug Wrangler Feedback 17491 Make is_email() compliant with RFC5322 (updated by RFC6854) Formatting 3.1.2 normal minor Future Release defect (bug) reopened needs-unit-tests 2011-05-18T14:48:52Z 2023-04-14T13:59:42Z is_email('toto.@toto.com') returns true arena Patch Needs Refresh 16495 Make iso8601_to_datetime a bit more compliant Formatting 3.0.5 normal normal defect (bug) new 2011-02-08T19:37:09Z 2019-06-04T19:43:19Z With a valid ISO 8601 date string with dashes in the date or decimal fractions for seconds, this function will fail to parse it correctly. The attached patch updates the regex to optionally accept dashes and decimal fractions for seconds (which are ignored). It also uses a variable for the regex since it was duplicated. chrisscott Needs Patch 43938 Make it clear to administrators that not all plugins support privacy policy content, personal data export and erasure xkon Privacy 4.9.6 normal normal Future Release enhancement assigned 2018-05-02T19:16:18Z 2020-06-23T00:09:22Z "It is likely that there will be many plugins that will not implement the new privacy policy content hooks nor the personal data export and erasure hooks for some time (if ever). It would be unfortunate for administrators to overlook privacy policy impacts from such plugins, or to assume that personal data export and erasure included personal data collected by such plugins. As part of privacy policy content UX, as well as export and erasure UX, we should come up with a way to prompt administrators to take this into consideration." allendav Needs Dev / Bug Wrangler Feedback 26516 Make it easier to check theme support obenland Themes 2.9 normal normal enhancement assigned dev-feedback 2013-12-10T02:02:22Z 2019-06-04T21:09:49Z "Currently we don't make it too easy for plugins (and themes I suppose) to get access to the information passed in the second argument to `add_theme_support()`. To get more information about a theme's support for post thumbnails for example, a plugin would have to assign the return value of `get_theme_support()` to a variable and then access the value stored in the first key of the returned array: {{{ #!php 0 Query 3.6 normal normal enhancement new 2013-08-29T17:03:00Z 2019-06-04T20:44:44Z May need this when #11398 goes in. wonderboymusic Needs Dev / Bug Wrangler Feedback 41362 Make locate_template() filterable to change the template locations Themes 4.8 normal normal Awaiting Review enhancement new dev-feedback 2017-07-19T02:07:03Z 2019-10-04T20:58:40Z "Right now WordPress expects all templates to reside in the root of your theme directory. We have all come across a theme with dozens of templates and well, that can get messy. With 6 lines of code we can easily, and vastly enhance the templating system. This would provide a number of benefits: 1) This would allow developers to logical group functionally similar files / separates functional dissimilar files 2) It allows the root of the theme directory to be cleaned up and used for ""resources"" such as the functions.php and style.css files 3) By having the ability to pick and choose which templates go where, we can turn WordPress into an MVC application framework (personally what I use this technique for) 4) Related - this plays really nice with Timber 5) This lays the groundwork for future enhancements which I also use and plan to introduce shortly = Examples = == Moving all templates with the {{{""templates_path""}}} filter == Say I wanted to move all my templates into a directory named ""templates"" because as mentioned, this theme I inherited has dozens of templates, maybe one for each page. A good start would be to just move all the templates into a directory named ""templates"": {{{#!php ID; $obj = get_queried_object(); if($obj->post_parent == $parent_id) $path = rtrim($path, '/') . '/' . 'team'; return $path; } add_filter('page_templates_path', 'move_team_pages'); }}} Now your theme might look something like: {{{ /twentyseventeen/ |-- /assets/ |-- /inc/ |-- /templates/ |-- index.php |-- single.php |-- /team/ |-- page-mortimer.php |-- page-biff.php }}} As we see, the two filters can (and perhaps should) be used together, but can also be used alone. == Timber == As mentioned before, I use something like this on every project. I generally put all my templates into a directory called ""controllers"" and my twig files (if using Timber) into a directory called ""views"" so I have something akin to an MVC application. My functions file sets Timber to look for twig files in a directory called ""views"" which is right inside the theme directory (next to ""templates""): {{{ $timber = new \Timber\Timber(); Timber::$dirname = array('views'); }}} so my {{{ templates/index.php}}} could set up my Timber context and pass it all the way to the {{{ index.twig }}} file in the ""views"" directory: {{{ $context = Timber::get_context(); $context['posts'] = Timber::get_posts(); Timber::render('index.twig', $context); }}} " kylejennings83 Has Patch / Needs Testing 39647 "Make media upload ""HTTP error."" more user-helpful" Media 3.4 normal normal Future Release defect (bug) new has-patch 2017-01-20T06:58:59Z 2019-09-25T16:18:14Z "Since the introduction of the Media Gallery in WordPress 3.4, the error messages when users attempt to upload media have been reduced to a detail-less “HTTP error.”, without any suggestion as to how users can move forward, and limited information for users to be able to contact their hosts to get help. This is user hostile, and not in line with many of the assertions in [https://wordpress.org/about/philosophy/ WordPress Philosophy]. There’s no doubt that error messages must exist, but they should be useful, providing next steps for users. A few possible parts/steps of this: - Retry - Auto Retry - Better error messages where possible (Timeout, Out of Memory, in user terms) - Expand for Exact Details to give to host (or WP_DEBUG enables this?) - Troubleshooting Steps, or link to troubleshooting steps This should be possible to accomplish in stages, which will likely each need their own tickets. One of the first steps for ""Retry"" is to make image upload/thumbnail creation able to be resumed, rather than only adding the meta after all sizes are created." kirasong Has Patch / Needs Testing 29890 Make menu descriptions available to be displayed on the front-end helen Menus 3.0 normal normal enhancement assigned has-patch 2014-10-08T13:29:52Z 2019-06-04T20:09:27Z "When the refreshed menu UI was introduced in r14248, it came with the possibility to add a description to each menu item. When that description textarea is displayed, [https://core.trac.wordpress.org/browser/tags/4.0/src/wp-admin/includes/nav-menu.php#L182 it's accompanied by the help text]: {{{The description will be displayed in the menu if the current theme supports it.}}} Yet there is currently no way for themes (that I'm aware of) to actually display these descriptions. Let's change that! Added incentive would be one less callback in #29799 Twenty Fifteen." obenland Needs Patch 28188 Make Natively-Outputted .widget_rss CSS Selector HTML5-Appropriate Widgets 3.9 normal normal enhancement new 2014-05-09T05:57:31Z 2019-06-05T06:40:00Z "In regards to the natively outputted RSS Widget entitled `.widget_rss`, the post Author's name is currently outputted as wrapped in a `` tag. An example of a natively outputted RSS feed block looks something like this for reference: `Example RSSed Post April 14, 2014
This is the space where the RSSed information appears. […]
Author` Please note that the author of the RSSed post is being natively outputted as wrapped in the `` tag. As per #27944 (ocean90's comment in particular) which references #24522 (re: proper way to tag comment authors), the natively outputted CSS selectors for the `.widget_rss` widget probably ought to be wrapped in something like: `` as opposed to ``. Reiterating what ocean90 said: The `` tag is supposed to be used for a cited block of text (like a citation) rather than used to tag the/an author. Additionally, changing the `` to `` will provide additional sitewide code uniformity (there's a word or phrase I am looking for and I can't remember it!) for a natively/vanilla outputted WordPress site (and especially if using a default WordPress theme) re: how author names are wrapped in tags. Thanks!" EMG Has Patch / Needs Testing 44981 Make notice on Privacy Policy page to 'Check out our guide' dismissable garrett-eclipse Privacy 4.9.6 normal normal Future Release enhancement assigned has-patch 2018-09-22T07:15:38Z 2019-04-01T16:19:41Z "This ticket branches from #44669 with this comment from @norcross; https://core.trac.wordpress.org/ticket/44669?replyto=4#comment:4 The notice reference can be found here; https://github.com/WordPress/WordPress/blob/f7ba175491b725a5f3d636072c8b432774d38ae3/wp-admin/includes/misc.php#L1613-L1629 With this notice the `is-dismissable` class could be added; https://codex.wordpress.org/Plugin_API/Action_Reference/admin_notices If a new Privacy Policy page is created this notice should re-appear until dismissed." garrett-eclipse Needs Patch 41279 Make PDF Thumbnail (WP 4.7 feature) accessible via the Media Manager Media normal normal Awaiting Review feature request new 2017-07-09T19:24:26Z 2020-10-21T12:55:14Z "When you upload a PDF file WordPress creates a ""preview image"" - This was added as of WP 4.7 This feature request to have that image also added into the database so that it is accessible via the Media Manager. The use case for this feature is that I have a Monthly Newsletter and want to use the preview image (page 1 of the PDF) as the featured image for the post where I am putting the link to the PDF Additionally some plugins (like visual composer) allow you to insert single images, however, you need to be able to select it from the media manager, not just put in a URL" sflwa Needs Patch 41709 Make plugin install deep-linking easier Plugins normal normal Awaiting Review feature request new 2017-08-23T03:32:11Z 2021-07-28T21:38:15Z "Deeplinking into the WordPress admin is generally a better user experience than pointing users to the plugin repository, if you already know their admin URL. With autodiscovery in the REST API, this becomes even easier, as you can find their admin URL from just their domain (or site address). As an example, the [http://wp-stream.com/ Stream plugin homepage] does this (minus the REST API discovery) to great effect. However, there are numerous problems with this: - The only screen to really point users at is the Search, as `plugin-information` is intended for an iframe and doesn't include the admin ""chrome"" - Since it's a search, other results might turn up, or your desired plugin may not appear at all if the plugin isn't marked as compatible (i.e. try the Stream install on trunk) - Search parameters don't follow redirects (e.g. redirect to Network Admin) We should make this easier. Additionally, WordPress.org could add an install helper to do this for every plugin on the repository. Adding either a REST API endpoint which simply redirects (still requiring user interaction), or an admin action redirect would be great. I think the latter is probably better, and I'd like to propose something like `/wp-admin/?action=install-plugin&slug=wp-stream` as a redirect." rmccue Needs Patch 22601 Make post content autosave work more generically Autosave normal normal enhancement new 2012-11-27T04:00:31Z 2019-06-04T19:23:41Z "The JS for autosave/AYS looks for the contents of `#post #content`. While we should fix the other JS issue related to targeting `#content` in #22600, it seems that autosave/AYS should be looking for the textarea (or whatever type of input) with the name of content instead, since having that data in the form will save to the post content. That way, if somebody does choose to use a different ID but the right input name, the autosave benefits will kick in. Discovered while working on #22491." helen Needs Patch 12567 make post_submit_meta_box more generic Posts, Post Types normal normal enhancement new 2010-03-10T00:46:20Z 2019-06-04T20:41:05Z "Currently there isn't a way to modify the meta boxes which set the post status. The function post_submit_meta_box in wp-admin/includes/meta-boxes.php is a closed function with post statuses hard coded. A new post status registered using register_post_status is available to the query object and plugins but cannot be added to the post status select box in the publish meta box. A lot of the post_submit_meta_box is hardcoded to the default post status types. Consider the use case where you want posts to only be visible to logged in users. A custom post status selectable by the user in add/edit post could be used which is then added or excluded in the query (filtered by posts_where) depending on whether the user is logged in or not. This way core can handle the non-visible posts the way private or future posts are handled. " themattharris Needs Patch 37899 Make Profile Picture Section of Edit User Admin Page Filterable Users 4.7 normal normal Awaiting Review enhancement new 2016-08-31T19:52:52Z 2017-02-02T12:55:00Z "Currently the Edit User page contains a section under the Biography showing the user's Profile Picture (avatar). This picture isn't editable, because WordPress uses Gravatar. This behavior isn't typical. More commonly, websites with self-created user accounts also allow the user to upload a custom profile picture. There are a number of plugins which implement this behavior: https://wordpress.org/plugins/custom-user-profile-photo/ https://wordpress.org/plugins/metronet-profile-picture/ https://wordpress.org/plugins/wp-user-avatar/ https://wordpress.org/plugins/basic-user-avatars/ https://wordpress.org/plugins/simple-local-avatars/ They all share a problem though, which is that they can't touch the native Profile Picture section. They all add their own HTML elsewhere on the page. This results in an Edit User page with two Profile Picture sections. CSS can hide the native non-editable section, but that's not ideal. I'd like to propose that we make the native profile section filterable, so that plugins can override it to enhance it directly rather than adding another section to the page. If we move the hard-coded HTML of that section into a function call that is filterable, plugins could just enhance the native section itself. This would prevent multiple Profile Picture sections and keep everything in the native location on the page. Alternatively and less ideally, just adding a do_action() call at the end of the native Profile Picture section would at least allow for the new controls to be added in the correct location on the page." Kelderic Needs Patch 40341 Make search possible in custom fields Query 4.8 normal normal Awaiting Review enhancement new 2017-04-02T17:36:06Z 2017-04-02T17:36:06Z "Currently when performing a search query with `WP_Query` using `s` parameter, WordPress only searches in post_title, post_content and post_excerpt. I suggest to extend search to custom fields. Say I added a ""my_description"" custom post field to my posts. I would like a regular search to return every post containing the searched word(s) in any of the fields post_title, post_content, post_excerpt or my_description. Currently the supposed way of doing this is by using a `WP_Meta_Query`: {{{ new WP_Query(array( 's' => 'foo', 'meta_query' => array(array( 'key' => 'my_description', 'value' => 'foo', 'compare' => 'LIKE', )), )) }}} The problem is that the meta query and the search WHERE clauses are going to be joined by AND, not by OR. The resulting query is going to be something like that: {{{ SELECT [...] WHERE ( posts.post_title LIKE '%foo%' OR posts.post_content LIKE '%foo%' OR posts.post_excerpt LIKE '%foo%' ) AND ( postmeta.meta_key = 'my_description' AND postmeta.meta_value LIKE '%foo%' ) AND [...] }}} But I'd need: {{{ SELECT [...] WHERE ( posts.post_title LIKE '%foo%' OR posts.post_content LIKE '%foo%' OR posts.post_excerpt LIKE '%foo%' OR (postmeta.meta_key = 'my_description' AND postmeta.meta_value LIKE '%foo%') ) AND [...] }}} which is impossible to achieve with a regular `WP_Meta_Query`. Actually it's pretty hard to do: it involves to hook into WHERE and JOIN clauses, and to rewrite almost the whole search mechanism. That's why I suggest to implement into core a simple way of doing this: {{{ new WP_Query(array( 's' => 'foo', 'meta_search' => array('my_description', 'my_other_field', 'etc') )) }}} This `meta_search` parameter would accept an array of meta_key strings and would just be ignored when not set. Please have a look into my attached solution." max345 Needs Patch 38044 Make seems_utf8() RFC 3629 compliant. Formatting 1.2.1 normal normal Future Release defect (bug) new 2016-09-13T21:07:56Z 2019-04-09T21:41:24Z `seems_utf8()` should be made [https://www.ietf.org/rfc/rfc3629.txt RFC 3629] compliant. Currently it accepts overlong sequences and surrogates, which will cause PHP functions expecting valid UTF-8 strings to fail. gitlost Needs Patch 53287 Make SEO Meta Data Easy Editor 5.7.2 normal normal Awaiting Review enhancement new 2021-05-27T12:48:18Z 2022-08-01T13:36:16Z "**What problem does this address?** Having SEO meta data is an important part of SEO. I am frustrated because in order to just add simple meta data to a page or post, a plugin must be downloaded or code must be inserted. Usually the plugin adds extra features that create additional notifications and bloat on the website. Google sees proper SEO titles and descriptions as important that is why pages without these features show up with errors in Google Lighthouse. **What is your proposed solution?** My solution is to have the Gutenberg editor use the post excerpt for the meta description, the post tile for the meta title, and the post's tags for the meta tags. That way users can have basic SEO features when they use the Gutenberg editor instead of installing an additional plugin. My solution makes it easier for new users who might not understand much about SEO to have an optimized website to compete in search engines better. Many WordPress users don't have the time or the budget to learn how to use SEO so making the editor SEO-friendly from the beginning is a start. This also removes the SEO error a page will get in Google Lighthouse for not having a proper SEO title and description. Originally from [https://github.com/WordPress/gutenberg/issues/32208]" deborah86 Needs Patch 46412 Make shortcode attributes case-insensitive? shortcode_parse_atts Shortcodes 5.1 normal normal Awaiting Review enhancement new 2019-03-04T15:44:12Z 2019-03-04T18:49:11Z "**When specifying default attributes in the callback function of my registered shortcode:** {{{#!php null, ); $attributes = shortcode_atts( $default_attributes, $user_attributes ); print_r($default_attributes); print_r($user_attributes); print_r($attributes); // .... } }}} **If the user requested this:** {{{ [some_shortcode someShortcodeAttribute=""test""] }}} **I would expect this:** {{{ Array ( [someShortcodeAttribute] => ) Array ( [someShortcodeAttribute] => test ) Array ( [someShortcodeAttribute] => test ) }}} **but instead, I'm getting this:** {{{ Array ( [someShortcodeAttribute] => ) Array ( [someshortcodeattribute] => test ) Array ( [someShortcodeAttribute] => ) }}} This would always produce the default shortcode attribute and never honor the user specified shortcode attribute. Which, in my opinion, is wrong. The user requested a camel-case shortcode attribute and the shortcode was built to accept camel-case shortcode attributes. The result should be a parsed camel-case array key and respective value pair. Can we remove the `strtolower` calls on the shortcode attributes? " michael.ecklund Needs Dev / Bug Wrangler Feedback 33593 Make shortcodes case insensitive Shortcodes normal normal feature request new dev-feedback 2015-08-29T00:10:16Z 2019-06-04T21:16:46Z "Right now, shortcodes are case sensitive. For example, `[thanks]Guy Incognito[/thanks]` works but `[Thanks]Guy Incognito[/Thanks]` doesn't. For me, as a developer, it makes sense. For my writers, who have complained about `[Thanks]` and the like not working, it doesn't. http://wordpress.stackexchange.com/questions/102375/are-shortcodes-case-sensitive shows that shortcodes are indeed case sensitive. But why? Why wouldn't the regex have the `i` modifier and become insensitive for the shortcode name itself (I'm not talking about shortcode parameters, just the name)?" archon810 Needs Patch 51820 Make starter content for fresh sites more discoverable Customize normal normal Awaiting Review enhancement new 2020-11-18T18:01:55Z 2020-11-18T18:01:55Z "Starter content currently only makes an appearance if you open the customizer on a ""fresh site"" (typically a new install). It's easy for a user to have made other edits before heading into a customizer, which means they'll never see the starter content, and may be left wondering why the theme preview doesn't look anything like their site. On the other hand, if starter content does manage to apply, they might wonder why the customizer preview doesn't look anything like their live site. For the current limited application of starter content, we should consider some kind of prompt to try it out in the customizer before anything else, and show a message in the customizer that starter content has been applied and won't show up on your live site until you hit publish. More broadly we should make starter content usable in more contexts, opening a ticket for that shortly." helen Needs Dev / Bug Wrangler Feedback 41678 Make sure all field returns use filters in WP Query Query 1.5 normal normal Awaiting Review enhancement new needs-unit-tests 2017-08-20T13:01:32Z 2023-04-20T13:19:18Z Currently if fields is set to either `id` or `id=>parent`, it doesn't run through all the filters as these return early. spacedmonkey Has Patch / Needs Testing 38280 Make term count for a specific object type available desrosj Taxonomy 4.7 normal normal Future Release enhancement assigned has-patch 2016-10-10T21:54:15Z 2020-06-11T14:29:45Z "Term count is the total number of relationships with no context of the object types the relationships belong to. Currently, the best way to determine the count of a term for a specific object type is to run a `WP_Query` with a `WP_Tax_Query` for that term. {{{#!php $term_count_query = new WP_Query( array( 'post_type' => 'some-post-type', 'tax_query' => array( array( 'taxonomy' => 'some-taxonomy', 'field' => 'slug', 'terms' => array( 'term-slug' ) ), ), 'posts_per_page' => 1, ) ); $term_count_for_post_type = $term_count_query->found_posts; }}} Now that term meta is in core, it would be great if these counts were stored in term meta for easy access. To start, these counts could be available through a function. To go a step further, an argument could be added to `get_terms()` and other functions to filter the term counts and reflect the object types terms are being grabbed for." desrosj Needs Patch 59486 Make test suite compatible with PHPUnit 10 / 11 Build/Test Tools 6.4 normal normal Future Release enhancement new 2023-09-28T08:58:42Z 2024-03-07T09:58:11Z "PHPUnit 10 was released back in February of 2023, and included [https://github.com/sebastianbergmann/phpunit/blob/10.0.0/ChangeLog-10.0.md#1000---2023-02-03 many breaking changes] - they completely rewrote the internal functionality of PHPUnit (mainly the event system for extending the test runner). Besides that, they upped the minimum PHP version to >=8.1, so for WordPress, it could only be used on PHP versions of >=8.1. While this is not a huge and critical update, since the tests are running fine on PHP versions all the way up to version 8.3, it would be a good idea to start preparing for PHPUnit 10 compatibility. Besides being up to date, it will allow external testing library maintainers (such as [https://github.com/lucatume/wp-browser wp-browser] or [https://github.com/dingo-d/wp-pest wp-pest]), to use the latest versions of both PHPUnit, or dependencies that are using PHPUnit 10 (such as PestPHP v2 which depends on PHPUnit 10). I understand that this is a huge undertaking, but it's okay to have a ticket open for this (I didn't find one opened while searching, could be wrong tho), so that we can keep track of changes, and maybe create a roadmap or a to-do list of what needs to be fixed in order to make WordPress test suite compatible with PHPUnit 10. " dingo_d Has Patch / Needs Testing 27303 "Make the ""Plugins bubble-link"" only show plugins that have an update available" Plugins 3.8.1 normal normal Awaiting Review enhancement new has-patch 2014-03-06T19:03:20Z 2020-09-23T19:51:37Z "If I click on ""Plugins"", I get the full list of plugins. (plugins.php) If I click on the bubble, I get the plugins with an update available. (plugins.php?plugin_status=upgrade) It's a very small enhancement, but it will save me a click every time I go to update my plugins. :) [[Image(https://i.cloudup.com/7UkYAUAV38.png)]]" Fredelig Has Patch / Needs Testing 14368 "make the 'orderby' argument in get_posts() accept all ""post"" fields" Query 3.0 normal normal enhancement reopened has-patch 2010-07-20T23:58:41Z 2022-08-01T15:09:02Z "Right now, some post's fields were not accepted when retrieving posts (even though they were documented in codex . for example ""name"" (slug) was missing). this patch sorts the elements in the $allow_keys array (in the same order as the db' s columns) and adds the missing ones, I added every field except the ones that were long text fields (content, excerpt, etc) " wjm Needs Patch 35133 Make the admin menu more flexible in width Administration 4.4 normal normal enhancement new 2015-12-17T14:06:31Z 2019-06-04T19:33:21Z "Two years ago the admin menu was increased by width by 10 pixels, #25918. More and more strings gets translated, which causes the menu to be too small: [[Image(https://dl.dropboxusercontent.com/u/23348/WP/Schermafbeelding%202015-12-17%20om%2014.33.42.png)]] I would suggest to make the menu variable in width, so it can take the space needed for translated menu items." ChantalC Has Patch / Needs Testing 59110 Make the database container in the local Docker environment more generic Build/Test Tools normal normal Future Release defect (bug) new has-patch 2023-08-15T14:48:33Z 2023-10-16T13:48:25Z "Currently, `mysql` is hard coded in several locations within the `docker-compose.yml` file. Although changing database types works interchangeably for the most part (Core also supports MariaDB), it is confusing to have a container named `mysql` that runs MariaDB. For previous MariaDB versions, the `mysql` command is symlinked to the `mariadb` one. However, in MariaDB 11.0 that symlink is removed and causes failures. Making this container more generic will help spot commands still using `mysql`, and other potential issues." desrosj Needs Docs or Unit Tests 44651 Make the excerpt explanation filterable Posts, Post Types normal normal Awaiting Review enhancement new needs-docs 2018-07-26T15:38:35Z 2019-01-16T06:50:09Z Excerpts are used in different ways by different post types. The explanatory text below the textarea should be filterable to allow plugin authors to provide details relevant to their implementation. sillybean Has Patch / Needs Testing 35099 Make the filter links (Mine, Status, Author, Taxonomy, etc.) links in the posts list table filterable Posts, Post Types normal normal Awaiting Review enhancement new has-patch 2015-12-15T10:41:36Z 2017-07-01T15:26:40Z "In ticket #35097 I wrote about filter edit page title. @SergeyBiryukov found a solution. But I want filter url in ""All, Published, Trash"" and others. I want add taxonomy info and see show posts from taxonomy in trash. {{{#!php add_filter('edit_link', 'wp_edit_link_filter'); function wp_edit_link_filter($url){ return add_query_arg(array('taonomy'=>'slug'), $url); } }}}" sebastian.pisula Needs Patch 58761 Make the filter option_page_capability_options available when access options.php directly Options, Meta APIs normal normal Awaiting Review defect (bug) new 2023-07-08T05:43:13Z 2023-07-08T05:43:13Z "The problem is that when wp-admin/options.php is accessed directly $option_page is Empty, and the filter for option_page_capability_options is bypassed. For a requirement to prevent direct access to this page, which exposes all WordPress options, this filter is needed to modify the capability from 'manage_options' to 'do_not_allow'. For any other settings page the value of $option_page is set to something other than 'options' and would not be affected by this change. I'd also suggest the 'back compat' comment is irrelevant and could be removed (or at least better explained if it is relevant). The suggested change is from: {{{#!php ... 'accepted_args' => ... 'runs' => [ [ 'start' => ..., 'duration' => ... ], [ 'start' => ..., 'duration' => ... ], [ 'start' => ..., 'duration' => ... ], ] ] }}} Main concern would be resource cost, with sites possibly calling tens of thousands of hooks. I think resource overhead should be reasonable with only adding two floats to array and no complex calls or calculations. This can be tested and profiled on a proof of concept implementation. The possible mitigation to runtime costs can be making the feature opt–in with flag analogous to `SAVEQUERIES`, for example `SAVE_HOOK_TIME`. The possible mitigation to memory costs can be implementing cut off limit to amount of timings stored, e.g. start discarding old records when a certain limit of X records is reached for a callback. If there is agreement on feasibility I will work on a patch." Rarst Needs Dev / Bug Wrangler Feedback 29619 Make WP_HTTP_BLOCK_EXTERNAL more easy to use HTTP API 2.8 normal normal enhancement new dev-feedback 2014-09-10T17:46:54Z 2019-06-04T19:46:22Z "Currently when defining WP_HTTP_BLOCK_EXTERNAL it blocks all requests which would mean that WordPress itself becomes unusable because it then will also blocks it own requests to WordPress.org. Also oEmbeds stop working because they can't get their data. My idea is to make an if statement like the localhost check to allow those requests. I do get that this constant is mainly for local development but would be great to have a easy way to have a semi locked down installation. So I'm curious what you guys think about this." markoheijnen Has Patch / Needs Testing 4969 Make wp_list_* functions all behave similarly... igmoweb Themes 2.3 normal normal Future Release enhancement assigned has-patch 2007-09-13T14:18:22Z 2018-06-06T23:11:56Z "The sidebar template typically uses lists of lists to prettily display lists of pages, categories and bookmarks. Lists of pages, categories and bookmarks are forced to be items of lists themselves as the functions wp_list_pages(),wp_list_categories() and wp_list_bookmarks() wrap the output of functions in
  • ..
  • tags by default. Lists are intended to indicate something about the structure of the document where as these forced
  • tags appear to be intended to provide pretty indentation. Nested-lists can also provide confusion for non-visual readers. wp_list_bookmarks() provides the ability to override this with category_before and category_after options. wp_list_pages() and wp_list_categories() should offer similar options. Ideally the accessible approach would be the default for these options but I don't believe this is possible without breaking existing themes." pishmishy Needs Dev / Bug Wrangler Feedback 46561 Make wp_normalize_path() on Windows resolve drive letter for drive–relative paths Filesystem API 3.9 normal minor Awaiting Review enhancement new dev-feedback 2019-03-19T09:18:48Z 2023-03-12T08:45:38Z "Though rarely used, Windows allows to omit drive letter in file path to treat is as drive–relative. This causes inconsistency where paths pointing to the same dir are not normalized to the same representation by `wp_normalize_path()`: {{{#!php tags to ''not'' be wrapped by

    in the_content(). I used to use a regex filter on the_content to achieve this, but looking at the source for wpautop(), I think it would be much cleaner to ''prevent'' s from being wrapped in the first place by making $allblocks filterable. The

    issue commonly causes formatting issues, and making the block list filterable would let theme/plugin authors change this without and other blocks without breaking stylesheets configured for images in paragraphs. Additionally, I think it's semantically cleaner for a standalone image, since ""The HTML

    element (or HTML Paragraph Element) represents a paragraph of text."" https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p" walkinonwat3r Needs Patch 30531 Make wptexturize the last filter before output azaozz Formatting normal normal enhancement assigned 2014-11-27T20:30:22Z 2019-06-04T19:46:52Z "This will allow it to be simplified/refactored and run faster. Advantages: - Not looking at shortcodes as it will run after do_shortcode(). That will make it less complex and faster. This also avoids all edge cases with shortcodes. - Better detection/handling of quotes around `

    ` tags as it will run after wpautop(). Also, preg_split() will split the text in more chunks which will be easier to process. Disadvantage: the `no_texturize_shortcodes` filter will stop working. " azaozz Needs Patch 40324 make_clickable doesn't work if url stands after an even number off spaces Formatting 4.7 normal normal Awaiting Review defect (bug) new 2017-03-31T11:49:56Z 2017-03-31T16:22:07Z "The function '''make_clickable''' doesn't work, if an even number of spaces is written before an url Examples: {{{ Test post http://de.wordpress.org -> 1 space = works Test post http://de.wordpress.org -> 2 spaces = doesn't work Test post http://de.wordpress.org -> 3 spaces = works Test post http://de.wordpress.org -> 4 spaces = doesn't work }}} I tested it in WP 4.7 and 4.7.3 " wordpressrene Needs Docs or Unit Tests 32787 make_clickable filter johnjamesjacoby Formatting 0.71 normal normal Future Release enhancement assigned needs-unit-tests 2015-06-25T09:38:02Z 2022-08-02T13:01:09Z "Hi, it could be very usefull to add filters to regex callback functions in make_clickable : _make_url_clickable _make_web_ftp_clickable_cb _make_email_clickable_cb Example : {{{ function _make_email_clickable_cb($matches) { $email = $matches[2] . '@' . $matches[3]; $href = apply_filters( 'make_email_clickable_href', 'mailto:'.$email ); $text = apply_filters( 'make_email_clickable_text', $email ); $html = apply_filters( 'make_email_clickable_html', ''.$text.'' ); return $matches[1] . $html; } }}} Thank you." tlexcellent Needs Patch 23050 make_clickable incorrectly formats anchors with URL's and spaces in them in comments Formatting 3.4.2 normal normal defect (bug) new 2012-12-23T00:32:30Z 2019-06-04T19:44:24Z "When posting a comment, if an anchor tag contains both a URL and some words, make_clickable formats the output incorrectly. To duplicate, post the following content in a comment: {{{ Hey! http://wordpress.org is awesome in case you didn't know! }}} When viewing the comment, you'll get: {{{ Hey! http://wordpress.org is awesome in case you didn't know. }}}" johnjamesjacoby Needs Docs or Unit Tests 50514 make_clickable nested links bug Formatting 5.5 normal normal Awaiting Review defect (bug) new needs-unit-tests 2020-06-30T09:29:29Z 2020-10-12T17:15:58Z "If you look at the source of [`make_clickable`](https://core.trac.wordpress.org/browser/tags/5.4/src/wp-includes/formatting.php#L2985) there's one last regex call to replace potentially nested links: {{{#!php // Cleanup of accidental links within links. return preg_replace( '#(]+?>|>))]+?>([^>]+?)#i', '$1$3', $r ); }}} From the looks of the expression, this is meant to remove accidental nested links only if the parent link wrapping them does not have any non-link text at the edges. Let me provide a few examples: 1. This works as intended: {{{#!php https://w.org'; $click = make_clickable($text); # https://w.org }}} 2. Let's introduce more content inside the link, either prepend or append it to the hyperlink's inner URL: {{{#!php https://w.org'; $click = make_clickable($text); # https://w.org # https://w.org $text = 'https://w.org '; $click = make_clickable($text); # https://w.org # https://w.org }}} There, I used a simple whitespace for the sake of an example. **Suggested Patch** I am suggesting a simple fix with the cleanup regex expression, although however if you managed to understand the root problem you'd be able to come up with something much better. {{{#!php ]+?>|>))(.+)?]+?>([^>]+?)(.+)?#is', '$1$3$4$5', $r ); }}} In my patch you'll see the following changes: 1. Added `(.+)?` for capturing any leading characters before any nested links 2. Added `(.+)?` for capturing any trailing characters before any nested links 3. Added `s` modifier so as to have the previous capturers work with newlines 4. `'$1$3$4$5'` restoring the captured leading or trailing characters back into the cleaned up HTML. Also worth noting I am running WordPress 5.4.2, PHP 7.4.4, nginx/1.17.10 on an Alpine Linux docker container (Linux 4.19.76-linuxkit x86_64)." elhardoum Needs Dev / Bug Wrangler Feedback 23308 "make_clickable problem with multiple ""Punctuation URL character""" Formatting 3.5.1 normal normal defect (bug) new dev-feedback 2013-01-28T15:09:59Z 2019-06-04T19:44:27Z "make_clickable problem with multiple ""Punctuation URL character"" E.g. {{{ http://www.wordpress.org/some-(parentheses).html }}} Results in this html code: {{{ http://www.wordpress.org/some-(parentheses).html }}} But obvious should be: {{{ http://www.wordpress.org/some-(parentheses).html }}} I suggest to replace: wp-includes/formatting.php:1603 {{{ [\'.,;:!?)] # Punctuation URL character }}} with {{{ [\'.,;:!?)]{1,} # Punctuation URL character }}}" DrPepper75 Needs Patch 23922 make_clickable() breaks when colon in hash Formatting normal normal defect (bug) new 2013-04-03T00:41:39Z 2019-06-04T19:44:36Z "`make_clickable()` doesn't like this string: {{{ http://en.wikipedia.org/wiki/URI_scheme#tel: }}} It results in this HTML: {{{ http://en.wikipedia.org/wiki/URI_scheme#tel: }}} Specifically it's the colon that is causing the issue. It can be a part of the URL too, it doesn't have to be a part of an anchor." Viper007Bond Needs Docs or Unit Tests 45702 make_clickable() doesn't handle linked text being a URL with spaces within it Formatting low trivial Future Release defect (bug) new needs-unit-tests 2018-12-19T07:22:42Z 2019-04-03T16:39:31Z "As reported in https://meta.trac.wordpress.org/ticket/3998 > {{{ > https://codex.wordpress.org/Roles and Capabilities > }}} > turns into: > {{{ > https://codex.wordpress.org/Roles and Capabilities > }}} > Looks like either `make_clickable()` or `bbp_make_clickable()` is trying to make the URL clickable without taking the existing `` tag into account. As I've commented on the ticket: ---- This is a problem in `bbp_make_clickable()`, but is also present in `make_clickable()`. Given the input string of `https://codex.wordpress.org/Roles and Capabilities` both will return the invalid output. Both contain the following to correct it: {{{ return preg_replace( '#(]+?>|>))]+?>([^>]+?)#i', ""$1$3"", $r ); }}} But as the resulting HTML is the following it's not matched (due to the `` - which assumes that neither the linked text never has spaces or isn't a URL) {{{ https://codex.wordpress.org/Roles and Capabilities }}} Adjusting the regular expression to the following does work however for this specific case: {{{ return preg_replace( '#(]+?>|>))]+?>([^>]+?)([^<]*)#i', ""$1$3$4"", $r ); }}} As a work around, you can remove the spaces from the linked text, which avoids it: `https://codex.wordpress.org/Roles and Capabilities`. ---- Also created https://bbpress.trac.wordpress.org/ticket/3237" dd32 Changes Requested 60138 make_clickable() processing emails start with www. incorrectly. Formatting normal trivial Awaiting Review defect (bug) new changes-requested 2023-12-22T10:23:05Z 2024-02-15T16:25:53Z make_clickable() processes www.blablabla.bla@gmail.com email as ftp address and appends https:// instead of mailto: olyahryhorenko17 Needs Patch 54051 Making a sentence or paragraph bold is intermittent Editor 5.8 normal normal Future Release defect (bug) new 2021-09-01T13:16:09Z 2021-11-02T15:39:00Z When I highlight a sentence and attempt to bold it, only part of the sentence gets bold. I then highlight and press bold again and might get the full sentence bold. Sometimes I have to go through this process a number of times to make the sentence bold. This slows me down and is a bug. MikeLev Needs Patch 14093 Malformed category hidden from edit-tags, but shows in meta box Taxonomy low normal defect (bug) new 2010-06-25T19:11:49Z 2019-06-04T21:26:33Z "Came from a report in IRC by xomp. In the following example, category 1's parent is category 2, and vice versa. {{{ mysql> select term_taxonomy_id, term_id, taxonomy, parent from wp_term_taxonomy; +------------------+---------+---------------+--------+ | term_taxonomy_id | term_id | taxonomy | parent | +------------------+---------+---------------+--------+ | 1 | 1 | category | 2 | | 2 | 2 | category | 1 | | 3 | 3 | category | 0 | | 4 | 4 | category | 1 | +------------------+---------+---------------+--------+ 4 rows in set (0.00 sec) mysql> select term_id, name from wp_terms; +---------+-----------------+ | term_id | name | +---------+-----------------+ | 1 | Category 1 | | 2 | Category 2 | | 3 | Category 3 | | 4 | Category 4 | +---------+-----------------+ 4 rows in set (0.00 sec) }}} On edit-tags, you'll see only Category 3. In the hierarchical meta box, you'll see: {{{ Category 3 Category 1 - Category 2 - Category 4 }}} If we decide to show corrupted data, we should be consistent. At the very least, edit-tags should reveal more than the meta box, not the other way around." nacin Needs Patch 41719 Malformed User Search results Users 4.8 normal normal Awaiting Review defect (bug) new 2017-08-23T22:16:58Z 2017-08-23T22:16:58Z "There is a logic bug with the User Search WP_User_Query. (Users > All Users > ""Search Users"" (in top-right corner)). The SQL that is generated looks something like this: {{{ SELECT SQL_CALC_FOUND_ROWS wp_users.ID FROM wp_users INNER JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id ) WHERE ( 1=1 AND ( user_login LIKE '%Search Term%' OR user_url LIKE '%Search Term%' OR user_email LIKE '%Search Term%' OR user_nicename LIKE '%Search Term%' OR display_name LIKE '%Search Term%' ) ) ORDER BY user_login ASC LIMIT 0, 20; }}} However, such a query is not guaranteed to return unique user IDs. It just so ""happens"" to work right now. The more correct query adds the DISTINCT keyword: {{{ SELECT SQL_CALC_FOUND_ROWS DISTINCT wp_users.ID ... }}} Modifying the query in certain situations results in duplicate user IDs being returned. One example, of many such modifications that could be made, can be seen in the Better User Search plugin on line https://github.com/wp-plugins/better-user-search/blob/master/better-user-search.php#L200. As is, this is currently breaking pagination and sometimes displaying redundant users as you flip through the pages. (See attached screenshot. My pagination is set to 20, and I have 100 matching users on my system). [[Image()]]" navepilif Needs Docs or Unit Tests 49179 Manage Post trackbacks within the REST API REST API 4.7 normal normal Future Release enhancement new needs-unit-tests 2020-01-12T18:23:05Z 2020-10-24T05:51:08Z "Hi, I've noticed, unlike the Classic Editor, the Blocks Editor does not include a place to add trackbacks to a post. After looking more into it, I've found a possible reason for it could be that the `WP_REST_Posts_Controller` doesn't support adding trackbacks. I believe it's weird the Blocks Editor includes a Discussion panel saying `Allow pingback and trackbacks` although it's only possible to add trackbacks from the Classic Editor. I suggest the attached as a primarily step before working from the Gutenberg GH repo to suggest a way to deal with this feature. In the meantime, if some of you need to send trackbacks from the Blocks Editor, you can use this [https://github.com/imath/retroliens plugin]. " imath Needs Reporter Feedback / Steps To Reproduce 33521 manage_${post_type}_posts_columns parameters shifted Taxonomy 4.3 normal minor defect (bug) new reporter-feedback 2015-08-23T21:28:05Z 2019-06-04T21:16:27Z "Hello, manage_${post_type}_posts_columns requires three parameters, however, as shown in the link below, it only uses 2. https://core.trac.wordpress.org/browser/tags/4.2.2/src/wp-admin/includes/class-wp-posts-list-table.php#L978 The paremeters are also shifted. The example below shows the var dump outputs in render_column_with_bug(): {{{ 'posts', 'pages' => 'pages', 'category' => 'edit-category', 'post_tag' => 'edit-post_tag', ); foreach ( $supported_post_types as $slug => $type ) { add_action( ""manage_{$type}_columns"", array( $this, 'add_column'), 10, 1 ); // Add 3rd parameter because of bug add_action( ""manage_{$slug}_custom_column"", array( $this, 'render_column_with_bug'), 10, 3 ); } } // Add new column name here public function add_column( $columns ) { $columns = array_merge( array( 'my_column_name' => 'column_slug', ), $columns ); return $columns; } // Output column contents here here public function render_column_with_bug( $column, $post_id, $tax_id = '' ) { $status = ''; var_dump ( $column ); /* Outputs: column name on posts/pages Outputs: empty string on taxonomies */ var_dump ( $post_id ); /* Outputs: post id posts/pages Outputs: column name taxonomies */ var_dump ( $tax_id ); /* Outputs: empty string on posts/pages Outputs: taxonomy id on taxonomies */ if ( $column == 'my_column_name' ) $status = $this->post_status(); echo $status; } // Output column contents here here public function render_column_bug_fixed( $column, $post_id, $tax_id = '' ) { $status = ''; $type = get_post_type( $post_id ); if ( !empty ( $tax_id ) && ! $type ) { $column = $post_id; $screen = get_current_screen(); $type = $screen->id; } if ( $column == 'my_column_name' ) $status = $this->post_status(); echo $status; } public function post_status() { // render output } } new Example_Class(); }}}" Cybr Needs Patch 42136 manage_links should be a custom capability not a default Role/Capability 4.8.2 normal minor Awaiting Review defect (bug) new 2017-10-07T19:36:23Z 2017-10-07T20:05:55Z "I just noticed the capability manage_links still gets added to the default administrator capabilities upon a clean install. If you check that with current_user_can it returns as false, even when a user has this capability, like an administrator. This is when the plugin link manager is not installed. If you have the plugin link manager installed, it returns as true (as expected). So I think it should be removed out of the core and inserted into the https://wordpress.org/plugins/link-manager/." Beee Has Patch / Needs Testing 42838 Manipulating uploads and images can break when using stream wrappers Media normal normal Awaiting Review defect (bug) new has-patch 2017-12-08T12:30:05Z 2020-11-12T15:28:49Z "When using PHP stream wrappers for storing uploads into object storages (like S3 or Google Cloud Storage) some things break because in this context a directory merely a path which ends in a '/'. PHP's builtin `dirname` always returns the path without the trailing slash. On regular filesystems this is not a problem since `a` and `a/` are equivalent, but in the context of object storages this pose some issues. I'm attaching a patch which always add a trailing slash when the code expects to work with directories." calin Needs Patch 59641 manually setting fetchpriority on image should prevent core from adding fetchpriority attribute Media 6.3 normal normal 6.6 defect (bug) new 2023-10-16T20:44:56Z 2024-02-17T13:44:33Z "When working on testing the automated fetchpriorty attribute core now adds for images, I discovered this bug: If users manually set fetchpriority=""high"" on an image either programmatically or using a plugin, core will not change that setting, however it unexpectedly sets fetchpriority=""high"" on another image. === Steps to reproduce 1. install this plugin to add a manual fetchpriority dropdown: https://github.com/adamsilverstein/wp-fetchpriority-control 2. create a post with several large images 3. select the first image and apply fetchpriority=""high"" (under advanced) 3. publish the post and view its source **Expected results:** Only the first image should have the `fetchpriority=""high""` attribute, setting high fetchpriority on more than one image reduces the effect of adding the attribute. **Actual result:** Core applies `fetchpriority=""high""` to the second image so the first two images contain the attribute. " adamsilverstein Needs Patch 30017 Many automated tests are unnecessarily slow wonderboymusic Build/Test Tools normal normal Future Release task (blessed) assigned 2014-10-17T02:07:19Z 2021-03-24T14:47:08Z "Our test suite is getting bigger (that's good!). But many of our tests are, of necessity, integration and functional tests that require lots of setup: creating factory data, resetting globals, etc. This process can be slow (that's bad!). Poking around in the tests, it looks like some of the worst offenders are those who create lots of database content in the `setUp()` method. Creating more dummy data than is absolutely necessary to test an assertion is - at best - wasteful. At worst, it actually introduces unnecessary variables into what is supposed to be a narrowly defined test. (Fake but illustrative example: if you create 25 posts to test some default value in `WP_Query`, you now have to worry about pagination in addition to whatever value you're testing.) Changing existing tests is a tedious and potentially dangerous task - you don't want to introduce regressions into our regression-preventing tests. But if we can shave 10-20% off of the execution time of our suite (which I think is a pretty conservative estimate), it'd be a huge step toward getting more people to actually run the dang things, as well as things like continuous integration. Opening this ticket for discussion and/or patches." boonebgorges Needs Patch 31277 Many WP Dashboard-only transients for 'browser version' set to autoload=yes in wp_options Options, Meta APIs 4.1 normal normal defect (bug) new 2015-02-09T23:21:43Z 2019-06-04T20:49:09Z "I've been recently optimizing WP for speed and for various reasons (mostly because it's buggy as hell), we're forced to run without W3TC's object cache on a busy site. Because of that, when wp_options gets bloated, especially with values that have autoload=yes, and every thread ends up transferring that much more data, overall performance decreases, and db traffic goes up. Transients are typically (with few exceptions) added as autoload=no. This keeps performance in check. However, there's one notable exception, and on our server, it's 120 rows all dedicated to a single transient, with over 30KB of data in total that gets transferred for no reason. That transient is `""browser_"" . $key`, and it's only used by `wp_check_browser_version()` in `wp-admin/includes/dashboard.php`. There's no reason at all for it to use autoload=yes." archon810 Needs Patch 24791 Map audio/video shortcode IDs on import Import normal normal task (blessed) new 2013-07-17T21:39:47Z 2019-06-04T20:05:43Z See #24458. nacin Needs Dev / Bug Wrangler Feedback 47164 map_deep in formatting.php do not handle null-byte Formatting 5.2.2 normal critical Future Release defect (bug) new dev-feedback 2019-05-07T08:40:16Z 2023-02-23T23:52:33Z "{{{#!php $property_value ) { $value->$property_name = map_deep( $property_value, $callback ); } }}} The above code snippet in the function map_deep in formatting.php will trigger a fatal error if for some reason $property_name starts with a null-byte. null-bytes can exist in this context if $object_vars for some reason is from an object cast to an array. private and protected properties will be prefixed with null * null We've encountered it in the wild with serialized objects, and even though this is because of faulty programming (child classes with stricter access for properties than the parents) wordpress should handle this. The simples solution I can think of id to add: {{{#!php $property_value ) { **if (ord($property_name) === 0) { continue; }** $value->$property_name = map_deep( $property_value, $callback ); } }}} " bitcomplex Needs Dev / Bug Wrangler Feedback 55257 map_deep() function incompatibility with incomplete objects in PHP 8.0+ Formatting 5.9.1 normal major Future Release defect (bug) new dev-feedback 2022-02-25T12:14:00Z 2023-08-08T17:18:22Z "Incomplete objects (`__PHP_Incomplete_Class`) used to have no issues with `map_deep()` before PHP 8.0 because it ignores any incomplete object. With PHP 8.0 - this now returns fatal error and PHP cannot continue processing. This disrupts an otherwise normal processing (before PHP 8.0). Example of uncaught error in debug.log are as follows: `PHP Fatal error: Uncaught Error: The script tried to modify a property on an incomplete object. Please ensure that the class definition ""SuperCustomXyz"" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide an autoloader to load the class definition in /wp/wp-includes/formatting.php:4998` For the `map_deep()` function to be truly compatible with PHP 8.0 ( as it was with earlier PHP versions) - can we modify this to check for incomplete objects? And if the value to be processed is an incomplete object - we skipped processing. This will make the function to behave like it was being used before PHP 8.0. As a result - the function still returns an array with incomplete objects as it was used to be working. This issue can be reproduced as follows: Environment: * PHP 8.0 * WordPress 5.9.1 * Create a dummy test PHP script as follows in the WP root directory: {{{#!php __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => SuperCustomXyz [ SuperCustomXyz x] => test ) [testdata] => Array ( [a] => 1 [b] => 2 ) ) }}} " codex-m Needs Docs or Unit Tests 26365 map_meta_cap() should use parent post status when post has a post status of inherit Role/Capability 3.8 normal normal defect (bug) new needs-unit-tests 2013-12-02T19:38:49Z 2019-06-04T21:09:43Z "When a post has a status of inherit `map_meta_cap()` fails to use the parent's status and so logic that uses the status to determine the mapping doesn't behave as expected. For example `read_post()` will often fail when it should pass. Similarly for `delete_post()` and `edit_post()`. This has recently caused a variety of difficulties in a project I've been working on where we have a custom post type that uses the inherit post status on children so authors only need to manage the post status of the main parent post. The fix is two parts. One a fix to `get_post_status()` that causes it to check the parent status so it'll work backwards to the first post that has a valid (not 'inherit') post status. The second is a fix to `map_meta_cap()` that checks for a post status of inherit on the post object and then uses `get_post_status()` on the post_parent id value. A couple related/similar issues: #23458 (these patches would fix the root issue) #17668 (fixed) " methnen Needs Patch 58816 MariaDB 11.x: deprecated alias for MySQL Build/Test Tools normal normal Awaiting Review defect (bug) reopened 2023-07-17T05:10:50Z 2024-01-25T04:35:12Z "Since MariaDB 11.0, there is a “deprecated warning message”: {{{ PHPUnitFrameworkException: mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead }}} One random test where you can find it: https://make.wordpress.org/hosting/test-results/r56244/wpsaedgebot-r56244/" JavierCasares Has Patch / Needs Testing 44500 Mark data requests failed when an expired link is clicked Privacy 4.9.6 normal normal Future Release enhancement new has-patch 2018-07-03T15:44:54Z 2018-09-06T22:10:47Z "When a user data request expires (the user does not click the confirmation link within the specified timeframe), it is transitioned to the `request-failed` status. Currently, data export/erasure requests are only marked as `request-failed` when an administrator visits the Export/Erase Personal Data pages (which will be pretty infrequent). #44498 aims to move transitioning of expired requests to `request-failed` with a cron, but a request could also be marked as expired when a user clicks an expired link." desrosj Needs Patch 59139 "Marketing / ""fairness"" : Change ""Classic Themes"" to ""Template Themes""" Themes normal normal Awaiting Review enhancement new 2023-08-18T12:03:39Z 2023-09-04T20:54:12Z "With total respect to the term ""Classic themes"", I think it feels old fashioned, which is a bit unfair to the power involved behind the scenes. ""Template Themes"" (WPTT) would be a recognition of WordPress pioneering a long time ago. A tribute to it's visionary approach at that time. And a tribute to its relevance and pioneering today, where we see so many tools and solutions being created with the same intent but not so powerful - if some recognition and dedication would be implemented to maintain it a state of the art solution. FSE is super powerful. PHP templating is super powerful." ridesirat Needs Reporter Feedback / Steps To Reproduce 49673 Mass select change of role is bugged. Role/Capability normal normal Awaiting Review defect (bug) new reporter-feedback 2020-03-21T22:38:18Z 2020-03-22T07:55:11Z "Hello there. I've notice that when you change the role of user using the fast select and apply, doesn't really gives him those permissions. https://prnt.sc/rkdsic CHeck picture. If i select the test user like that as ADministrator, he will get the Title, but not the permission. I wouldn't be administrator. I need to open the user's profile and click Update user. That's the only way it will work: https://prnt.sc/rkdtyx I've tested that on 2 wordpress sites, last verison. Both are with the same bug. " qnkov Needs Reporter Feedback / Steps To Reproduce 57943 Massive SQL statement shown in Dashboard WordPress Events and News. WordPress database error Got a packet bigger than 'max_allowed_packet' Administration normal normal Awaiting Review defect (bug) new reporter-feedback 2023-03-17T19:21:55Z 2023-03-17T22:20:25Z "=== Bug Report Massive SQL statement shown in Dashboard WordPress Events and News. WordPress database error Got a packet bigger than 'max_allowed_packet' === Environment - OS: Windows 10 - Server: Apache (WINNT) - PHP: 8.2.0 - WordPress: 6.2-RC2 - Browser: Edge - Theme: Twenty Ten 3.7 - MU-Plugins: None activated - Plugins:   * WordPress Beta Tester 3.3.1   * WP SMS 6.1.1 === Steps to Reproduce Not sure but maybe: 1. Debugging enabled. {{{ define( 'WP_DEBUG', true); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', true ); }}} 2. Set max_allowed_packet to very low value. 3. GO to http://localhost/test/wp-admin/index.php x. 🐞 Bug occurs. === Expected Results 1. ✅ WordPress Events and News should be shown. 2. ✅ If failed a user friendly message shown in GUI 3. ✅ Not to log 18 MB of errors. === Actual Results 1. ❌ Massive SQL statement was shown 2. ❌ User friendly error message was not shown in GUI 2. ❌ Logging was made of 18MB Some few lines from the logfile. {{{ 17-Mar-2023 18:13:23 UTC] WordPress database error Got a packet bigger than 'max_allowed_packet' bytes for query INSERT INTO `wp_options` (`option_name`, `option_value`, `autoload`) VALUES ( '_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9', 'a:4:{s:5:\""child\"";a:1:{s:0:\""\"";a:1:{s:3:\""rss\"";a:1:{i:0;a:6:s:4:\""data\"";s:3:\""\n\n\n\"";s:7:\""attribs\"";a:1:{s:0:\""\"";a:1:s:7:\""version\"";s:3:\""2.0\"";}}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";s:5:\""child\"";a:1:{s:0:\""\"";a:1:{s:7:\""channel\"";a:1:{i:0;a:6:{s:4:\""data\"";s:61:\""\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\"";s:7:\""attribs\"";a:0:}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";s:5:\""child\"";a:1:{s:0:\""\"";a:5:{s:5:\""title\"";a:1:{i:0;a:5{s:4:\""data\"";s:16:\""WordPress Planet\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";}}s:4:\""link\"";a:1:{i:0;a:5:{s:4:\""data\"";s:28:\""http://planet.wordpress.org/\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";}}s:8:\""language\"";a:1:{i:0;a:5:{s:4:\""data\"";s:2:\""en\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";}}s:11:\""description\"";a:1:{i:0;a:5:{s:4:\""data\"";s:47:\""WordPress Planet - http://planet.wordpress.org/\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";}}s:4:\""item\"";a:50:{i:0;a:6:{s:4:\""data\"";s:13:\""\n \n \n \n \n \n \n\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";s:5:\""child\"";a:2:{s:0:\""\"";a:5:{s:5:\""title\"";a:1:{i:0;a:5:{s:4:\""data\"";s:39:\""WordCamp Central: WordCamp Buffalo 2023\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";}}s:4:\""guid\"";a:1:{i:0;a:5:{s:4:\""data\"";s:39:\""https://central.wordcamp.org/?p=3163106\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";}}s:4:\""link\"";a:1:{i:0;a:5:{s:4:\""data\"";s:64:\""https://central.wordcamp.org/news/2023/03/wordcamp-buffalo-2023/\"";s:7:\""attribs\"";a:0:{}s:8:\""xml_base\"";s:0:\""\"";s:17:\""xml_base_explicit\"";b:0;s:8:\""xml_lang\"";s:0:\""\"";}}s:11:\""description\"";a:1:{i:0;a:5:{s:4:\""data\"";s:1802:\""WordCamp Buffalo 2023 logo. Design by Ben Dunkle.\n\n\n\n

    Buffalo again will host the region’s WordCamp for bloggers and web designers and developers of all skill levels. Novices are very welcome. WordCamp Buffalo will be held Saturday, May 6, 2023.

    \n\n\n\n

    Registration opens at 8:00am. Sessions begin at 9 a.m. and continue through 5 p.m. This year’s WordCamp will be held at Ken-Ton Elmwood Commons, 3200 Elmwood Ave Suite 110, Kenmore, NY 14217. Tickets are required in advance.

    \n\n\n\n

    The $25 ticket cost covers WordCamp Buffalo swag, morning coffee, lunch, and the evenings’s after-party food. Participants are strongly encouraged to bring their laptops or tablets. Ticket purchase and program details are available at buffalo.wordcamp.org/2023. The capacity for this event is about 120 people, so getting tickets early is advised.

    \n\n\n\n

    WordCamps are held worldwide, locally run and purposely at a low cost for accessibility to all. WordCamp Buffalo is dedicated to WordPress, blogging and web facility. WordCamps are sponsored by WordPress, the open-source, free, not-for-profit platform for individuals, groups and businesses to build their own blogs and websites. WordPress.org began in 2003. Its administrators call it the “largest self-hosted blogging tool in the world, used on millions of sites and seen by tens of millions of people every day.”

    \n\n\n\n

    Similar to previous years, Buffalo’s 2023 WordCamp will divide its workshops along two tracks, with sessions for every ability and level of use.

    \n\n\n\n

    Speakers will include WordPress users from Buffalo, Rochester, and beyond, with experience ranging from user/blogger to advanced developer.

    \"";s:7:\ }}} If you need the full log, let me know but as I don't know what's included I don't want share in the public ticket. " ipajen Needs Dev / Bug Wrangler Feedback 23895 Max upload size 0 when post_max_size = 0 johnbillion Upload 3.5.1 normal normal Future Release defect (bug) reviewing dev-feedback 2013-03-29T15:01:32Z 2017-11-29T14:29:56Z "As a convention, post_max_size can be set to 0 to disable any limitation on max post size. Quote from php.ini: {{{ ; Maximum size of POST data that PHP will accept. ; Its value may be 0 to disable the limit. It is ignored if POST data reading ; is disabled through enable_post_data_reading. ; http://php.net/post-max-size }}} WordPress does not take this into account in wp-admin/includes/template.php " moscar09 Needs Patch 59974 MAX_JOIN_SIZE wp-blog-header.php Database 6.3.2 normal minor Awaiting Review defect (bug) new 2023-11-27T21:24:05Z 2023-11-27T21:24:05Z "seeing this error in the error logs for a site with over 100k posts. seems to be non-critical. {{{ [27-Nov-2023 15:42:16 America/New_York] WordPress database error The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay for query SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (2,197,213,214,215,216,217,218,219,220,225,226,227,228,229) AND wp_posts.ID NOT IN ( SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id IN (31926,31927,31928,31929,31930,31931,31932) ) ) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish'))) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 24 made by require('/wordpress-versions/6.3.2/wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts [27-Nov-2023 15:43:10 America/New_York] WordPress database error The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay for query SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (3,221,222,231,232,233,234,235,236,237,239,241,243,244,245,246,247,248,249,250,273,276,277,281,282,287,397,398) AND wp_posts.ID NOT IN ( SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id IN (31926,31927,31928,31929,31930,31931,31932) ) ) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish'))) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 24 made by require('/wordpress-versions/6.3.2/wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts }}} " wkeithgardner Has Patch / Needs Testing 41797 max_num_pages for WP_User_Query Query normal normal Awaiting Review enhancement new has-patch 2017-09-04T22:19:56Z 2017-09-05T08:13:21Z "The {{{WP_User_Query}}} class supports pagination but doesn't have the public {{{max_num_pages}}} property, like most of the other query classes do. This can be useful when using e.g. {{{paginate_links()}}} and also for better consistency. " birgire Needs Patch 48513 Maximum execution time of 600 seconds exceeded in /var/www/html/releases/20191106150212/wp-includes/class-wp-image-editor-imagick.php on line 155 Media normal normal Awaiting Review defect (bug) new 2019-11-06T15:52:03Z 2020-01-16T15:14:49Z "When running wp media regenerate --only-missing --image_size=lazy it fails after 6490 entries. It fails with the following error: {{{ 6490/15784 No ""lazy"" thumbnail regeneration needed for ""model13-32"" (ID 35894). PHP Fatal error: Maximum execution time of 600 seconds exceeded in /var/www/html/releases/20191106150212/wp-includes/class-wp-image-editor-imagick.php on line 155 Fatal error: Maximum execution time of 600 seconds exceeded in /var/www/html/releases/20191106150212/wp-includes/class-wp-image-editor-imagick.php on line 155 }}} If I go to the specific image (that I THINK is failing, model13-32) and then click ""rebuild thumbnail"" inside WordPress it works just fine. Hmmm.." mattiasf Needs Patch 38037 Maximum User ID Issue Users lowest normal Awaiting Review defect (bug) new 2016-09-13T10:46:57Z 2019-04-10T07:47:18Z "Hi, We found that if you set the AUTO_INCREMENT value to 18446744073709551614 (which is 1 less than the maximum value of BIGINT), it creates a blank user in the admin user table. upon checking the mySQL database details, we found that the ID (_users) is 18446744073709551614 and the user_id (_usermeta) is 9223372036854775807. the reason for the test is, we have created a plugin that allows an admin to change the user ID of any user, so we where testing the maximum upper limits of. The only way to delete this user is manually, the delete option fails. it would seem the ID (_users) supports 0 to 18446744073709551615 and it would seem the user_id (_usermeta) supports -9223372036854775808 to 9223372036854775807 this can be checked in https://dev.mysql.com/doc/refman/5.5/en/integer-types.html thanks" akaracing Needs Patch 60002 maybe_convert_table_to_utf8mb4() not work with new version of MySQL/MariaDB. General normal normal Awaiting Review defect (bug) new 2023-12-02T08:00:36Z 2023-12-05T13:31:48Z "From [this document](https://mariadb.com/kb/en/unicode/). They said: ''From MariaDB 10.6, utf8 is by default an alias for utf8mb3'' And from [this document](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-utf8mb3.html) in MySQL. They said: ''Historically, MySQL has used utf8 as an alias for utf8mb3; beginning with MySQL 8.0.28, utf8mb3 is used exclusively in the output of SHOW statements and in Information Schema tables when this character set is meant.'' It can be refer to [this issue](https://core.trac.wordpress.org/changeset/53918). So, from this simple MySQL code: {{{ CREATE TABLE testing ( id bigint(20) NOT NULL AUTO_INCREMENT, name varchar(50) DEFAULT NULL, PRIMARY KEY (id) ) DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 }}} If you run on MariaDB 10.6 or newer (for me it is 10.6.7) the `utf8` column will be automatically changed to `utf8mb3_general_ci`. But, WordPress function `maybe_convert_table_to_utf8mb4()` contain this condition: {{{#!php = ""FullHD"" screens. 2. Text fields are small. Especially ""Title"" field. It's very uncomfortable to write in long titles. 3. At the left and bottom side are empty ""opportunity space"" that can be used for text fields with larger width and height." platonkristinin Needs Patch 43658 Media attachment filter drop-down mime types in grid mode is not properly filtered by available mime types Media 4.9.4 normal normal Future Release defect (bug) assigned 2018-03-29T07:07:42Z 2023-10-18T16:51:19Z "In '''Gird''' mode media attachment filter is not properly filtered by available mime types, it shows all mime types by default via - {{{ get_post_mime_types() }}} But in '''List mode''' its already filtered by checking {{{ if ( ! wp_match_mime_types( $mime_type, $avail_post_mime_types ) ) { continue; } }}} " itzmekhokan Needs Patch 57085 Media autoscale threshold change picture's colors Media 5.3 normal major Awaiting Review defect (bug) new 2022-11-12T10:20:28Z 2022-11-18T16:25:32Z "When uploading a picture, the automatic autoscale threshold (2560) changes the picture's colors to a different color profile (fewer colors, less vivid) I've deactivated the automatic autoscale with {{{ add_filter('big_image_size_threshold', '__return_false'); }}} and the issue disappears This is a big problem for photography-related blogs or websites, where photo quality makes the difference. It's ok to scale the images for better performance, but we should be able to avoid it without loss of quality. Note: I've tried to remove the jpg quality loss applied by WordPress and that's not the problem, the problem comes with the autoscale. (Attached: image file without autoscale, image file with autoscale) [[Image(https://aulawp.com/web/wp-content/uploads/2022/11/prueba-Barbeiro-5670.jpg)]] [[Image(https://aulawp.com/web/wp-content/uploads/2022/11/prueba-Barbeiro-5670-1-scaled.jpg)]]" fernandot Needs Patch 43641 Media controls in the media grid are too wide Media 4.9 normal normal Awaiting Review defect (bug) new 2018-03-27T11:14:37Z 2018-10-02T16:56:31Z "The audio and video player that's shown when viewing an individual media item in the media grid displays a control bar which is too wide for its container. Tested in latest Chrome, Firefox, and Safari on macOS." johnbillion Needs Patch 40129 Media deleting selected on mobile does not work Media normal normal Awaiting Review defect (bug) new 2017-03-12T12:47:13Z 2017-03-16T19:42:35Z "Steps to reproduce: - Select a month in bulk select. - Click image. - Click delete selected. - It doesn't delete. [[Image(https://cldup.com/IHq3IPurbV.PNG, 50%)]] Discovered on iPhone 7 Plus." karmatosed Needs Patch 40121 Media edit screen on mobile has visual issues Media normal normal Awaiting Review defect (bug) new 2017-03-12T12:23:38Z 2017-05-03T21:10:17Z "This screen unfortunately on an iPhone 7 Plus is pretty unusable. [[Image(https://cldup.com/ANkhsYmH_F.PNG, 50%)]] I would at the least suggest we don't have 2 panes and move the right below the left. Then we can iterate." karmatosed Needs Patch 55672 Media endpoint allows multiple media types on request, but only returns image in response REST API 6.0 normal minor Awaiting Review enhancement new 2022-05-04T08:40:46Z 2022-05-04T08:40:46Z "The REST API for attachments (`/wp-json/wp/v2/media/`) allows to search for specific types based on `get_allowed_mime_types()`, giving a full range of types to be used. However the response of the same endpoint only returns 'image' or 'file' (aka everything else). This causes issues when requesting multiple types, since it won't be possible to differentiate them by type anymore (mime type is still correct). It's an issue I found while building a custom editor (Gutenberg) block which can handle multiple types (image, video, audio and pdf) Code which causes the issue: {{{ if ( in_array( 'media_type', $fields, true ) ) { $data['media_type'] = wp_attachment_is_image( $post->ID ) ? 'image' : 'file'; } }}} https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php#L756-L758 **Workaround:** At the moment I use a workaround which modifies the REST response. {{{ function get_real_media_type($post_id) { switch (true) { case wp_attachment_is('image', $post_id): return 'image'; case wp_attachment_is('video', $post_id): return 'video'; case wp_attachment_is('audio', $post_id): return 'audio'; case wp_attachment_is('pdf', $post_id): return 'pdf'; // add more types? // when no predefined type, return 'file' default: return 'file'; } } add_filter('rest_prepare_attachment', function ($response, $post, $request) { if ( is_object($response) && property_exists($response, 'data') && array_key_exists('media_type', $response->data) ) { $response->data['media_type'] = get_real_media_type($response->data['id']); } return $response; }, 10, 3); }}} **Solution:** Extend the response code for media files to include more different media types, instead of only 'image' and 'file'. This **shouldn't** cause any backwards compatibility issues, since 'image' will still work and 'file' will still be there in case it's a non-standard type." grezvany13nl Needs Patch 58594 Media file changes no longer trigger updated/modified statuses. Media 6.2.2 normal normal Awaiting Review defect (bug) new 2023-06-21T19:54:38Z 2023-06-21T19:54:38Z "In older versions of WP, when media files like PDFs were updated it would trigger an event that could be listened to and acted upon by plugins. In the current version of WP (6.2.2) if a user changes the uploaded date or otherwise modifies a media file's properties, the change is no longer picked up by audit trail plugins like WP Activity Log, nor is it seen as an update to a ""post"". Plugins that have ""Clear cache whenever a post or page is updated"" functionality are now broken when it comes to media file changes. For instance, if a site is using Sucuri's WAF and caching plugin as well as the Enable Media Replace plugin, when a user replaces a media file with a new one it doesn't trigger Sucuri's cache clearing functionality anymore. I have reviewed both Enable Media Replace and Sucuri's plugins to make sure neither of them are at fault for breaking this functionality. Additionally, neither Sucuri nor WP Activity Log pick up the changes to display in their activity logs. I do not know if media file post types were explicitly excluded from using the process pages and posts use to broadcast changes, but this new behavior is only present in the most recent version(s) of WP and is a bug if this wasn't a planned change." sbeaney Needs Dev / Bug Wrangler Feedback 37801 Media Functions Media normal normal Awaiting Review feature request new dev-feedback 2016-08-23T21:40:41Z 2019-04-19T20:04:28Z "I think now WordPress should include all media functions, like getMedaTitle($attID) getMedaCaption($attID) getMedaAlt($attID) getMedaUrl($attID) getMedaUrl($attID) I will be really happy to work on it and include them in 4.7 " daniyalahmedk Needs Patch 53263 Media galery new libraries Gallery 5.7.2 normal normal Awaiting Review defect (bug) new 2021-05-23T22:31:06Z 2021-05-23T22:31:06Z "Hello! I found a weirdness in wp 5.7.2 I don't know if it's intentional or something went crazy for me. So far, the media gallery has stored images by year / month, but since the transition to 5.7.2 it has been stored in year / month / day libraries. I find this very unnecessary because sometimes I write the article 2-3 days in advance and but it also creates the directory for the day I don’t upload an image. This will waste about 4 kb of storage space on the server for every unnecessarily created empty directory and if I don't pay attention it will be a lot in a couple of years. I tried to look at what they had improved, but found nothing about it. Who can turn off this daily directory somewhere? Have you met this yet? [[Image(https://1drv.ms/u/s!AkY7Ee0Yb2Vfhc0FhdZuP0lQQNjnUg?e=t6lBiE)]]" hobbiasztalos Needs Dev / Bug Wrangler Feedback 23398 "Media Gallery - Clicking ""Restore Original Image"" in ""Scale Image"" pane loses 'Thumbnail Settings' pane." Media 3.4 normal normal defect (bug) new dev-feedback 2013-02-05T21:11:36Z 2019-06-04T20:04:54Z "Reproduce the problem thusly: Click ""Edit image"" in the ""Edit Media"" interface for any image. `/wp-admin/post.php?post=1119&action=edit` Scale the image a couple times in the 'Scale Image' pane. Update. Click ""Restore Original Image"" in the 'Scale Image' pane. Try to crop just the thumbnail. The 'Thumbnail Settings' Pane is '''''gone'''''. The image has to be deleted and re-uploaded to gain thumbnail control once again." gr33nman Needs Dev / Bug Wrangler Feedback 23436 Media Gallery - Cropping Image and then Cropping a thumbnail from that crop doesn't work. joedolson* Media 3.5 normal normal Awaiting Review defect (bug) accepted close 2013-02-10T17:20:00Z 2022-12-07T16:05:48Z "'''A recipe for repeating the bug behavior:''' Navigate to Library in the admin sidebar. Click ""Add new"". Drag the 800x480 copy of this or any image to the drag and drop area: http://en.wikipedia.org/wiki/File:Cheese_platter.jpg (I suggest this image for ease of recipe duplication and best explanation.) After the blue status bar has completed, ""Edit"" to bring the media edit window up in a new tab. Click ""Edit Image"" below the actual image. Drag anywhere inside the image to create a cropping box. In the ""Image crop"" pane, set the crop area to 500px width, 100px height. Drag the cropping box so that the fancy toothpick is as far left as possible along the horizontal axis of the cropping box, but centered vertically. Click the ""Crop"" icon. Click ""Save"". Click ""Update"". Click ""Edit Image"" once again. Drag inside the newly-cropped image again to create a new cropping box. In the ""Image Crop"" pane, change the cropping dimensions to 150 x 100. Drag the box so the fancy toothpick is somewhere in the left third within the crop boundary. '''Important:''' In the thumbnail settings pane, set ""Apply Settings to:"" '''Thumbnail'''. Click the ""Crop"" icon. Click ""Save"". Click ""Update"". Click ""Library"" in the admin sidebar. The newly preferred thumbnail for our previously-cropped image does not save. Thumbnail remains default, based on center of previously-cropped image. Instead, you will see a small wheel of cheese sliced into six wedges with garnishes for the thumbnail, even though we chose the part with the fancy toothpick." gr33nman Has Patch / Needs Testing 57489 Media items, which have already been uploaded, disappear when the upload dialog box is closed and then opened again. Media 6.1.1 normal major Awaiting Review defect (bug) new has-patch 2023-01-18T05:45:34Z 2023-01-24T20:00:34Z "I followed the following steps and got this error: 1) Freshly created a new WordPress site. [[Image(https://i.paste.pics/L1SUI.png)]] 2) Created a new page and opened it in the block editor [[Image(https://i.paste.pics/L1SW2.png)]] 3) Added a new gallery block [[Image(https://i.paste.pics/L1SY2.png)]] 4) Clicked ""Media Library"" [[Image(https://i.paste.pics/L1SYB.png)]] 5) Uploaded new images [[Image(https://i.paste.pics/L1SYG.png)]] 6) Uploaded 20 images [[Image(https://i.paste.pics/L1SYQ.png)]] 7) Closed the dialogue box and opened it back up. [[Image(https://i.paste.pics/L1T7T.png)]] 8) Selected a few images and clicked ""Create a new gallery"" [[Image(https://i.paste.pics/L1T81.png)]] 9) After it went to the ""Edit Gallery"" window, I closed it by clicking the cross button [[Image(https://i.paste.pics/L1T8W.png)]] 10) Clicked ""Media Library"" again to create the Gallery block [[Image(https://i.paste.pics/L1TAA.png)]] 11) Selected photos again and clicked ""Create a new gallery"" [[Image(https://i.paste.pics/L1TBI.png)]] 12) When it again went to the Edit Gallery window, I clicked ""Add to gallery"" [[Image(https://i.paste.pics/L1TCL.png)]] 13) Shows ""No media items found"", even though I have a lot of images uploaded. [[Image(https://i.paste.pics/L1TDG.png)]] Here are my setup details: i) OS: Ubuntu 20.04.5 LTS ii) Using Local by Flywheel iii) Web server: Nginx iv) PHP Version: 8.1.9 v) MySQL: 8.0.16 vi) WordPress: 6.1.1 vii) Browser: Opera " shamayel007 Has Patch / Needs Testing 12634 Media Library & Permalink Overlap Permalinks 2.9.1 normal normal defect (bug) assigned has-patch 2010-03-18T15:37:23Z 2023-08-24T19:52:27Z "The problem is: upload a media item and give it a name, such as 'test'. Create a new page titled 'test' with a permalink that reads http://www.example.org/test/. The permalink, instead of going to the page, goes to the media item. For most purposes, I would imagine this behavior should be reversed. -Tim-" tmoorewp Needs Patch 41352 Media library - applying image and date filter redirects to homepage Media 4.8 normal normal Awaiting Review defect (bug) new 2017-07-18T00:12:31Z 2017-09-17T06:43:48Z "When in the media library, select LIST view > select IMAGES in the 'All media items' dropdown, select a month from the dropdown and click FILTER. I am being redirected to the websites homepage rather than the filter results. 3 people have replicated this bug, I personally have replicated it across 3 of our Wordpress websites. I tried disabling media related plugins and it had no affect. " mikedtv Needs Patch 51952 Media Library - Focal Point Chooser Media 5.7 normal minor Future Release feature request new 2020-12-07T05:04:19Z 2021-01-07T16:50:45Z "I appreciate how simple Gutenberg is for both developers and end users. One of the specific features I find nice and simple to use is the focal point chooser for the cover and media/text images. I feel that all images should be able to have a global focal point, regardless of the context. This will allow theme developers to ensure that sliders and featured images etc can be cropped to fit fully responsive layouts. Cover and other media blocks would still allow you to select a specific focal point, so those features should not need to change. To that effect, I propose adding the focal point chooser to the media library, and storing the focal point as part of the image meta. There may be plugins available which can provide similar functionality, however I was unable to find any which are still being maintained and are as simple or sleek as the Gutenberg version. Please investigate the possibility of porting the existing Gutenberg focal point chooser to the media library. I've tried looking into this myself, however everything is react and I'm unable to find a nice way to add this to the media library. Example scenarios: 1. A blog page is set out to have the posts set out into a grid or masonry layout. The featured images are displayed as either squares or similarly shaped rectangles, where the images are both cropped and centred. A new post is created and the image of a person is uploaded as the featured image, however their head is cut off when it is displayed on the blog page. Having the ability to set a global focal point for this image will allow us to position the image so that the head is visible regardless of the image dimensions. 2. Custom meta field is created which will allow a user to specify an image for a banner or slider. The image itself is quite wide but shallow and on larger desktops the full image may be visible, while on smaller desktop screens and mobiles, the sides may get cropped. If an image is uploaded with the main focus of the image close to the left hand side, it may be cropped on smaller devices. Setting the focal point of this image will allow us to ensure that just the right side is cropped as the screen size decreases. " shaunjeffrey Needs Patch 34467 Media Library after removing bulk removing all images on page Media 4.3.1 normal normal defect (bug) new 2015-10-27T15:13:52Z 2019-06-04T20:17:20Z In the Media Library if you go to say the last page and bulk delete all the images, you will be 'stuck' on that page - pagination is removed despite there still being previous pages in the library that I could be brought back to. sorensenss Needs Patch 32498 Media Library and Page Slug conflict Permalinks 4.2.2 normal normal defect (bug) new 2015-05-26T17:56:18Z 2019-06-04T20:50:04Z "This is a follow-up to #18962. Please also check out this thread on the forum - https://wordpress.org/support/topic/41-slug-issue-when-same-title-exists-in-media-library If you have a pre-existing media file with the same slug as a page then a ""-2"" will be added to the page slug. With a custom content type and page or custom content type and media file, this doesn't appear to be happening." m7csat Needs Patch 57821 Media library badly autopopulates image caption if Windows image metadata exists Media 6.1.1 normal normal Awaiting Review defect (bug) new 2023-02-28T13:01:38Z 2023-03-11T08:05:36Z "If you upload an image which has specific metadata (Properties → Comments filled out on a Windows computer, with the Properties → Title field blank), the caption on the image in WP Admin autopopulates with a string of question marks. ------------------ === Steps to reproduce 1. On Windows, edit an image's properties in the file explorer so that the Comments field is populated, but the Title field is not. 2. Upload the image to any site === What you expected to happen The caption field in the Media library should either stay blank, or contain the actual ""Comments"" field contents. === What actually happened The caption field for that file contains a string of question marks as long as your original comment text. " properlypurple Needs Dev / Bug Wrangler Feedback 16165 Media Library Bulk Delete: Error in deleting... nacin Media 3.1 normal normal enhancement assigned dev-feedback 2011-01-09T14:20:39Z 2019-06-04T20:02:28Z "While Bulk Deletion, when a user gets the ""Error in deleting..."" message, there is no information given of how many elements have been deleted so far. Let's say there was a bulk of N deletions, getting this error can mean up to N-1 items have been deleted already. Same is the case if for some item, no permissions are granted to delete it. The number of successfully deleted items is missing as well." hakre Needs Patch 30243 Media Library cached, does not update when other users add images Media 3.5 normal normal defect (bug) new 2014-11-03T22:28:26Z 2019-06-04T20:09:47Z "When you open a post or page in the editor, and you click Add New, the media library pops up a grid with the n most recent images. If you upload something new, it's added to the list. However, if a colleague uploads something new (via another computer or browser), then you don't see the image the colleague uploaded in the media library — unless you search for it. " paulschreiber Needs Patch 52857 Media Library defaults to Medium 300x Media 5.7 normal normal Awaiting Review defect (bug) new 2021-03-18T20:44:58Z 2021-11-29T15:17:19Z "With WordPress 5.7 the default when Add media insert image always defaults to Medium 300px wide. Why does WordPress 5.7 not remember the preferred default or last used? Every time I upload an image I have to remember to check & change this setting. It was never a problem before 5.7" subbasshead Needs Patch 60098 Media Library Image Upload Issue Media 6.1 normal normal Awaiting Review defect (bug) new 2023-12-18T20:16:07Z 2024-02-15T16:26:31Z "I hope this message finds you well. I am writing to report an issue encountered on my website, https://sanaalnaseemcs.com/. When attempting to upload images to the WordPress Media Library, the upload is successful, but the thumbnail is not generated. This makes it challenging to select and use the uploaded images appropriately. Steps to Reproduce: Log in to the WordPress admin panel. Navigate to ""Media"" and then ""Add New."" Choose an image file for upload. Observe that the image uploads successfully, but the thumbnail is not generated. Expected Result: The image should upload successfully, and a thumbnail should be generated for easy identification in the Media Library. Actual Result: The image uploads, but the thumbnail is not generated, causing difficulty in identifying and utilizing the uploaded image. Additional Information: The issue seems to be inconsistent. It is not limited to specific file types or sizes. Various browsers and operating systems are affected. I appreciate your prompt attention to this matter and look forward to a resolution. If you need any additional information." gesabeja Needs Reporter Feedback / Steps To Reproduce 18602 Media Library imported, but all items Unattached Import 3.2 normal normal defect (bug) new reporter-feedback 2011-09-06T10:10:18Z 2019-06-04T20:02:51Z "Export XML file from one site, import into another site. By checking ""Download and import file attachments"", files from wp-content/uploads are downloaded correctly to the new site, and added to Media Library. However all items in the Media Library are now ""Unattached"", and for example posts using [gallery] are broken on the new site. " awallin Needs Patch 49583 Media Library in SubFolder, when Organize by Mo/Yr is deactivated Media normal normal Awaiting Review enhancement new 2020-03-05T18:33:41Z 2022-10-26T16:06:46Z "I'd like to suggest that an additional folder is added to the /uploads folder, for /media_library uploads. If not for all media uploads, then at least for when Mo/Yr Media organization is disabled. I've worked on several projects where there are simply not going to be very many media files. In effect, I'll deactivate the ""Organize my uploads into month- and year-based folders"" checkbox/feature. BUT, even if there are only 4 dozen images uploads, that ends up creating = 12 x 4 x (image sizes per theme settings). Those 48 photos can quickly turn into a few hundred, diluting the convenience of quickly referencing /wp-content/uploads. Today, several plugins/addons store files/folders within the Uploads folder. This probably wasn't an issue years ago, but today it creates a mess of files in /uploads. Between all of these factors, it's not nearly as ""clean"" in /uploads as it once used to be. my .02" splaquet Needs Patch 41349 Media Library insert from URL doesn't give a message when a URL fails check Media normal normal Awaiting Review defect (bug) new 2017-07-17T20:32:53Z 2020-12-03T18:39:48Z "There is a check to see if something is a valid URL. This is awesome, but it doesn't give a message when fails. This is a weird user experience as you are left wondering what happened. There is some strange behaviour, it sometimes has 'link text' vanishing, other times doesn't. It also can appear to flash as a block and then vanish. The logic of when the link text input shows or doesn't, seems a little confusing to work out. What would be better would be to have a message when it's not a correct URL and check for inconsistencies in the link text input showing. [[Image(https://cldup.com/bnlQYzjP04.gif)]]" karmatosed Needs Reporter Feedback / Steps To Reproduce 49078 Media Library permission checks in WordPress Media 5.3.2 normal major Awaiting Review defect (bug) new reporter-feedback 2019-12-24T13:19:41Z 2020-03-12T14:36:07Z " If permissions to ~/uploads/ are not set correctly (or was modified in some manner), deleting media will only delete database references (item(s) will disappear from the Media Library view) but the actual files are not deleted. However, when uploading media, permission errors are displayed. This seems to be the the default behavior. When was the last time you checked the contents of ~/uploads/ directory? " danskoya Needs Patch 58741 Media Library Popup Showing Blank Popup on Window Resize Below Mobile Viewport Media 6.2.2 normal normal Awaiting Review defect (bug) new 2023-07-06T18:18:08Z 2023-07-06T18:18:08Z "== Bug Report === Description The media library popup in WordPress is encountering a problem where it displays a blank popup when the window is resized below the mobile viewport. This issue prevents users from accessing the media library and selecting files on smaller screens, negatively impacting the overall user experience. === Environment - WordPress: 6.2.2 - PHP: 7.4.33 - Server: Apache - Database: mysqli (Server: 5.7.42 / Client: mysqlnd 7.4.33) - Browser: Chrome 114.0.0.0 (macOS) - Theme: Upshift 1.0 - MU-Plugins: None activated - Plugins: * WordPress Beta Tester 3.5.1 === Steps to Reproduce 1. Access the WordPress admin dashboard. 2. Navigate to add new post. 3. Click on set featured image button. 4. Resize the window below mobile viewport, you will get a blank screen. === Expected Results 1. Users should see media window even after window resize. 2. This scenarios is not there in media library popup of image block on block editor. === Actual Results 1. Users gets blank popup when window is resized. Video Link : https://www.loom.com/share/efad2f97064f441596d69cc9a354a658 " adhun Needs Patch 40593 Media library replace image popup not displaying completely below 641px width Media 4.7.4 normal normal Awaiting Review defect (bug) new 2017-04-28T10:04:38Z 2018-10-02T14:31:15Z "When trying to Replace Media with screen width below 641px the right panel of the popup gets hidden and there is no way to update image information like description and title. Tested in Chrome (Version 58.0.3029.81 64-bit) and Firefox (53.0 - 64 bit). Screenshots attached." subrataemfluence Needs Patch 59742 Media library should display the number of pages/posts/urls a particular media file is being used in. Media normal normal Awaiting Review defect (bug) new 2023-10-26T08:19:37Z 2024-03-10T12:50:48Z "For managing media files, WordPress requires you to navigate from the Media Library. However, selecting a file doesn't offer any information on the published pages/posts that are actively using the file. This information is necessary to effectively manage storage and replacing media without losing essential files or causing dependency issues. Selecting a file from the media library should ideally, at minimum show the number of published pages/posts it's in use. Best case would be to make the number a clickable item, that shows a list of all URLs using the file." rsiddiqe Needs Patch 58435 Media library strips color profiles => significant image color problems Media normal normal Awaiting Review enhancement new 2023-05-31T17:10:59Z 2023-06-14T14:03:00Z "If you upload a JPG with an embedded profile (such as P3 or some other wide gamut), the reprocessed image in the media library is stripped of its color profile. This is likely to result in significant display errors for any image not encoded as sRGB, including: desaturation, clipping of gradients or vibrant colors, and hue shifts. Tested with WP v6.2.2 and PHP v7.4.33 " gregbenz Needs Patch 50200 Media library thumbnails broken for certain aspect ratio images in Firefox Media 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-18T08:11:50Z 2020-05-21T14:50:47Z "Recently a client reached out to me about broken images in WordPress dashboard. Turns out media library can't load thumbnails for certain aspect ratio images. The images are generated though and exist on the server (I looked up the image source with dev tools and checked if the image actually was generated and yes there it was). So I made a few tests on live and test environments. These are the image sizes that cause the thumbnails to break: 236x591 237x591 238x591 239x591 Both 235x591 and 240x591 work fine as expected. My client was uploading images using the size 236x591. Now the issue is not only with those pixel sizes as I tried doubling the image size as well. Doubling 237x591 to 474x1182 also breaks the thumbnail so it's more like aspect ratio bug than just the image size. The images load fine on frontend but there is a problem in the admin panel when editing posts and adding these media files to a post (only shows white box and doesn't load image). I have tried this on fresh install of WordPress with Twenty Twenty and no plugins installed. Bug happens on stable 5.4.1 as well as alpha version of 5.4.2 and 5.5 All of my tests were done through HTTPS protocol. Happens on PHP version 7.2 and 7.3 Bug appears on Firefox version 76 but it does not appear on Chrome version 81 or Microsoft Edge version 44 I have not tested any other aspect ratios." jussitrival Needs Patch 54016 Media Library: Bulk delete elements in grid view takes very long Media normal normal Awaiting Review enhancement new 2021-08-26T15:10:47Z 2023-07-10T13:52:51Z "When bulk deleting images in media grid view they will be deleted one by one counting down, refreshing the view (not reloading the page!) and this takes unnecessarily long. I wonder if this can be accelerated by first deleting all of them before the view gets refreshed for example. " Presskopp Has Patch / Needs Testing 39968 Media Library: deleting all items on the last page loses the pagination/navigation buttons and shows message antpb Media 4.7.2 normal normal Future Release defect (bug) reopened has-patch 2017-02-26T14:10:59Z 2021-02-25T15:14:07Z "While deleting all items on the last page of Media Library, the page loses the pagination/navigation buttons and shows the message ""No Media Files found"" with no way to access the earlier pages other than by going back to the ""Media"" link" donsony Needs Dev / Bug Wrangler Feedback 47529 Media manager doesn't display cropped images Media 4.9 normal normal defect (bug) reopened dev-feedback 2019-06-12T09:19:59Z 2019-06-14T14:59:22Z "Media manager doesn't display cropped images We should change the display to list mode to view cropped images " dedidata Needs Patch 45886 Media modal .edit-attachment link opens in new tab rather than in modal antpb Media 5.0.2 normal normal Future Release defect (bug) assigned 2019-01-09T19:52:31Z 2020-09-05T12:12:37Z "Using the `wp.media` JavaScript API creates a link ""Edit Image"" (`.edit-attachment`) in the right sidebar of the Media modal. Expected behavior would be to open the ""Edit Image"" modal, as does the Featured Image media modal. However, the custom Media modal does not behave consistently with the Featured Image modal - the `.edit-attachment` link opens in a new tab instead of the modal - which is both unintuitive and frustrating to end-users. The console does not display any warnings or errors. Custom media modal as documented: [https://codex.wordpress.org/Javascript_Reference/wp.media] As a side note, I have noticed similar behavior in the WordPress Media page: Media (Admin Sidebar) -> Click a picture -> Edit more Details This also fails to open the modal - and opens in the current page instead. " statelessstudio Needs Patch 50273 Media modal uses incorrect 'checkbox' role for list items joedolson Media normal normal Future Release defect (bug) assigned 2020-05-28T04:40:11Z 2021-01-26T16:37:37Z "The media modal uses the role of 'checkbox' on list items (`
  • `) when selecting media (e.g. to add to a gallery.) The specification of a role here is overriding the list item element's implicit `listitem` role. The list item elements in this case should ideally have no `role` specified. The element with a checkbox role should be a child element of the list item and other associated attributes like `aria-checked` should also be moved to that element. For context, this issue was caught by the automated Axe tests when writing an end-to-end test for the block editor: https://github.com/WordPress/gutenberg/pull/22659#discussion_r431036627 To reproduce: 1. Ensure some images are uploaded to the media library 2. Add a gallery block to a post 3. Click the 'Media Library' button 4. Open the browser dev tools and inspect the HTML of an image 5. Observe that the list item element for the image has the role of 'checkbox': {{{
  • }}} " talldanwp Needs Patch 28750 Media modal: preview images Media normal normal enhancement new 2014-07-04T21:00:03Z 2019-06-04T20:08:29Z "I'm not sure if this has been talked about before, but with FileReader we could preview images in the media modal. https://developer.mozilla.org/en-US/docs/Web/API/FileReader I've made a quick patch to try it, but it's far from perfect... It sometimes flickers and the reading seems to block js from executing further, so not ideal for uploading a ton of images at the same time. Still, I'm sure we can get this to work smoothly somehow. I'll attach a screenshot. I think this would be a really cool experience. :)" iseulde Changes Requested 58730 "Media not getting removed from the media library popup after clicking ""Delete permanently"" button" Media 6.3 normal normal Future Release defect (bug) new changes-requested 2023-07-06T11:39:17Z 2024-02-05T20:19:12Z "I encountered an issue while attempting to remove media from the Media Library popup in WordPress. Despite deleting the media file, it remains visible in the popup window, ideally the media should get removed automatically from the window once its deleted permanently. 1. Log in to the WordPress admin panel. 2. Navigate to the ""Posts"" section and select an existing post or create a new one. 3. Click on the ""Set featured image"" button within the post editor. 4. Try to delete a media from the window. 5. Even after deleting the media file, it remains visible in the popup window. Video Link : https://www.loom.com/share/89321a9eb87d4627ab7a67bbfb54c9a8" adhun Needs Patch 40120 Media on mobile action links missable Media normal normal Awaiting Review enhancement new 2017-03-12T12:19:47Z 2017-03-16T19:45:14Z "The following is how on an iPhone 7 Plus the media interaction links look: [[Image(https://cldup.com/TLmN2U_8fW.PNG, 50%)]] They are smaller than the body text and also very missable at the bottom. Can we at least increase their size and see about moving to top?" karmatosed Needs Patch 40124 Media on uploading only gives me edit options Media normal normal Future Release enhancement new 2017-03-12T12:32:20Z 2023-09-05T15:07:41Z "This shows on mobile but is also desktop issue. [[Image(https://cldup.com/_ZB6QmO5gZ.PNG, 50%)]] Says 'edit' but doesn't give me option to view or delete." karmatosed Has Patch / Needs Testing 31689 Media player not working with 302 redirects Media 4.1.1 normal normal Awaiting Review defect (bug) new has-patch 2015-03-19T07:28:04Z 2020-09-15T20:22:12Z "When calling the audio player using `wp_audio_shortcode( array( 'src' => '/path/to/file' ) );` and the path in question is a 302 redirect to an actual audio file, the audio player cannot find or play the file. A prime example of this is with Microsoft's OneDrive - a public link to a file stored with them looks like this: `https://onedrive.live.com/download?resid=###`. Going to that URL ends up in a 302 redirect to the actual file. While OneDrive may not be the best way to store and share media files, it is still a valid use case. Plus, this will affect any file storage where the file is accessed via a 302 redirect. There are alternative audio players that can handle 302 redirected files, so it's not impossible to work around the issue. For reference, this came up in a support ticket for one of my plugins - details here: https://wordpress.org/support/topic/direct-link-to-onedrive." hlashbrooke Needs Patch 49622 Media reports upload success while No file was loaded! Upload 5.3.2 normal normal Awaiting Review defect (bug) new 2020-03-11T10:49:07Z 2020-03-11T10:51:51Z "Latest WP 5.3.2 Scenario: 1. Working WordPress site. 2. After porting from another hosting [make sure you have wrong url path for upload in wp_options Cleary it happend unintensionaly.] 2. Load an image Operation completes, with link to the new media (that does not realy exists...) The problem: in wp_options - wrong path for upload The bug: WordPress does NOT check that folder exists & load actually succeeded" mulli.bahr Needs Patch 39358 Media search speed has been dramatically reduced joemcgill Media 4.7 normal normal Future Release defect (bug) reopened 2016-12-21T08:07:18Z 2023-10-18T16:48:40Z "In the ajax-actions.php file there is function called wp_ajax_query_attachments. This function is responsible for searching images in the media library. We see that in Wordpress 4.7, someone added a new filter to this function: {{{ // Filter query clauses to include filenames. if ( isset( $query['s'] ) ) { add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); } }}} This filter is a performance killer and takes forever to output a result in large databases. We have tested this with db that has over 500000 posts." merts Has Patch / Needs Testing 36194 Media Settings page description is unclear Media normal normal enhancement new has-patch 2016-03-10T15:30:36Z 2020-02-06T19:45:54Z "The media settings reads the following: ""The sizes listed below determine the maximum dimensions in pixels to use when adding an image to the Media Library."" I saw a Facebook in Advanced WordPress where someone expected images uploaded to be converted to these dimensions in ALL cases. But the full picture will still remain in the uploaded dimensions, of course. ''(link: https://www.facebook.com/groups/advancedwp/permalink/1107356659326547/)'' New WordPress / non-developers will probably understand this differently so I'd think a description like this would be better: ""The sizes listed below determine the maximum dimensions in pixels to use for displaying cropped images."" Or something in that direction? The description is changed earlier in reply to this ticket: https://core.trac.wordpress.org/ticket/15732" mklasen Has Patch / Needs Testing 58163 Media Tests for Attachments and Images Media 6.3 normal normal Awaiting Review enhancement new has-patch 2023-04-20T06:37:43Z 2023-04-21T05:18:14Z "The attached patch adds PHPUnit Tests to the following functions: - wp_get_attachment_url() - wp_get_attachment_metadata() - image_downsize() - get_image_tag() - image_get_intermediate_size() - wp_get_attachment_image_src() - wp_get_attachment_image() The tests are straight-forward and ensures that they are working as expected." Howdy_McGee Needs Patch 54069 "Media title change in ""Attachment Details"" dialog opened via Media Library Grid View is not informing API/plugins properly" Media normal normal Awaiting Review defect (bug) new 2021-09-03T10:52:50Z 2023-02-03T23:08:50Z "**Problem**: If WordPress offers different UIs to edit media titles, then all those should properly inform the respective plugin/event APIs about that change. It seems there is a discrepancy, in one place it works, in the other not. See the reproductions. **Environment / How I discovered the bug** I noticed this bug when using the plugin [https://wordpress.org/plugins/media-file-renamer/ Media File Renamer] 5.2.4 on WordPress 5.8. What I observed is very likely a bug in WordPress and not from the plugin according to the [https://wordpress.org/support/topic/no-file-renaming-if-title-changed-via-media-library-thumbview-edit-popup/#post-14834202 support reply of the plugin developer @TigrouMeow]: > Unfortunately, I think the problem is on the Media Library ThumbView Edit Popup side [remark: The documentation calls this ""Media grid view"" and ""Attachment details dialog"" respectively]. Media File Renamer renames files based on a title change depending on specific actions in WordPress, and those actions can be also fired by other plugins. Since this plugin is mimicking the Edit Media Page of WP, it should also includes the actions. Otherwise, that will break not only the process of my plugin, but also many more. **✅ Reproduction I** 1) Media Library in [https://wordpress.org/support/article/media-library-screen/#media-library-list-view List View] 2) Hover over a media post > Click “Edit” 3) You get to “Edit Media” 4) Change the “title” 4) Be sure that the “Renamer” widget has the file name not locked 5) In the “Save” widget click “Update” * Outcome as expected: The filename is changed accordingly. * The slug is also changed from the filename change, due to the [https://wordpress.org/plugins/media-file-renamer/ Media File Renamer] plugin config: * Advanced > Fields Syncing > Slug/Permalink: `[√] Sync with filename` **❌ Reproduction II** 1) Media Library in [https://wordpress.org/support/article/media-library-screen/#media-library-grid-view Grid View] 2) Click on a media thumbnail 3) A dialog/popup opens, entitled [https://wordpress.org/support/article/media-library-screen/#attachment-details Attachment details] 4) Change the “title” 5) Optional step for observation purposes: Click into the next field, or TAB into the next field. You see a saving indicator. 6) Close the popup. (If you skipped 5, you very briefly see the saving indicator while the popup closes) * **Actual**: The title is changed, the filename not! * **Expected**: Whichever of [https://wordpress.org/plugins/media-file-renamer/ Media File Renamer]'s sync settings are active (title, filename, slug) kick in here in this editing method as well." abitofmind Changes Requested 57957 Media title falsely has kebab case when inserted via REST API (e.g. in Block Editor) adamsilverstein REST API 6.1.1 normal major 6.6 defect (bug) assigned changes-requested 2023-03-20T15:15:49Z 2024-02-17T15:29:06Z "== Reproduction I: ""Upload New Media"" creates media title ""My Great Photo"" 1) Media > Add New 2) Drag-n-drop ""My Great Photo.jpg"" 3) Inspecting this in ""Edit Media"" shows a media title ""My Great Photo"". == Reproduction II: Insertion via Block Editor (Gutenberg) creates media title ""My-Super-Photo"" 1) Edit an existing page or create a new page. 2) Set the cursor into an empty block. 3) Drag-n-drop ""My Super Photo.jpg"" into this block. This automatically creates a media page behind the scenes. 4) Save the page. 5) Inspecting the media title via ""Edit Media"" - **Actual:** The media title is ""My-Super-Photo"". - **Expected:** The media title should be ""My Super Photo"". - The media title should be the filename portion (without the suffix) in its purest possible form (UTF-8) and only the slug and filename should then be transformed according settings regarding ascii/whitespace/transliteration/escaping/punycode/etc. - Achieving the same goal via different means (Upload New Media vs. drag-n-drop in editor) should result in the same outcome. Otherwise this is an inconsistency. == Analysis & Fix @adamsilverstein already analyzed and fixed this bug in the Gutenberg issue tracker and asked to re-file here in WordPress Core for review & adding to the codebase. === Adam's Analysis > This is actually something that happens on the core side where the logic to set the title is currently different in the REST API vs. the regular media uploader. === Adam's Fix which should be reviewed > I proposed a fix in [https://github.com/WordPress/wordpress-develop/pull/3981 WordPress/wordpress-develop #3981] that works in my testing. Would be good to have some additional feedback, maybe from the REST API team. === Environment - First [https://github.com/WordPress/gutenberg/issues/34149 reported on 2021-08-19] in WordPress v5.8 , [https://github.com/WordPress/gutenberg/issues/34149#issuecomment-1416260545 confirmed/patched in 2023-02 ] on a WordPress v6.1.1 instance. === Priority - If the fix is deemed solid and the review process goes quickly without bumps: Is there a chance that the fix can make it into the 6.2 release? If not, no worry, am happy whenever this will get eventually fixed. == References * Gutenberg: [https://github.com/WordPress/gutenberg/issues/34149 Discussion and investigation details] where it was determined to be a Core issue." abitofmind Needs Docs or Unit Tests 58416 Media Title field should soft wrap in Media Modal: For better readability/editing of long titles. Media 3.5 normal normal Awaiting Review enhancement new needs-unit-tests 2023-05-26T20:48:37Z 2023-06-13T11:08:12Z "**Usability Issue:** - In the **Media Modal** the **Title** field currently is an `` and as such is single line only. - Scrolling a ~50 character long title within a ~20 char text field sucks. - Soft wrapping would really benefit longer media titles in terms of instant readability and easy editing. **Solution Approaches:** 1. Leaving it a `` and tweak it to soft wrapping with CSS only. - I found the [https://stackoverflow.com/questions/5286663/wrapping-text-inside-input-type-text-element-html-css exact same request on StackOverflow] for HTML in general (CMS agnostic) - Pure [https://stackoverflow.com/a/31814539/199400 CSS solutions for this] which once worked, became unsupported around 2016 in major browsers. - Bottom line: `` is single line only and always, user agents allow no circumventions. 2. Alternative approach: Use a `'; echo wpautop( $text ); }}} " takayukister Needs Dev / Bug Wrangler Feedback 2833 wpautop breaks style and script tags Formatting 2.0.3 low normal Future Release defect (bug) reopened dev-feedback 2006-06-17T20:36:00Z 2022-03-29T01:38:54Z "When I create a post in which I want to include Javascript or some styles, WordPress 'breaks'when showing those posts, because all newlines in the SCRIPT and STYLE tag are converted into BR tags. Example: {{{ }}} Becomes: {{{
    }}} And: {{{ }}} Becomes {{{
    }}} This happens because wpautop adds those BR tags to the post. (As it should, just not within STYLE or SCRIPT tags.) I've made a (temporary?) workaround for this by creating a pre and post event for wpautop, which substitute the necessary newlines by a temporary value in the pre event and placing them back in the post event. Although I think this should be incorporated in wpautop itself. See also: http://wordpress.org/support/topic/76433 and http://wordpress.org/support/topic/76297 While searching trac I also found ticket #2346, which is about the same problem, but which was for 2.0 and self-closed by the submitter? P.S. I have TinyMCE turned of." Nazgul Needs Patch 33840 wpautop damages inline script Formatting 4.3 normal normal defect (bug) new 2015-09-12T10:54:20Z 2019-06-04T19:51:27Z "This code: {{{ $str = ' '; echo $str; echo '
    '; echo wpautop($str); }}} results in this output as seen in the page source: {{{

    }}} The wpautop filter adds {{{

    }}} twice and {{{

    }}} once; adds linebreaks and hence a js error: SyntaxError: unterminated string literal To my opinion, wpautop should NEVER change a byte between {{{}}}; neither should the script tag be wrapped in a p tag. Wrapping the code in a {{{[CDATA[ ]]}}} block makes no difference. This behaviour is noticed for years and is still present at version 4.4-alpha-34061" opajaap Needs Docs or Unit Tests 38656 wpautop incorrectly handling paragraphs within block elements Formatting 5.0 normal normal Future Release defect (bug) new needs-unit-tests 2016-11-04T06:10:39Z 2019-03-26T15:02:11Z "When there are two line breaks within a block element, `wpautop()` will replace it with `

    `, but the corresponding opening and closing tags won't exist. For example, `

    a\n\nb
    ` will produce `
    a

    b

    `, when it really should produce `
    \n

    a

    \n

    b

    \n
    `." pento Needs Patch 49492 wpautop inserted p tags inconsistently alter visual space Formatting 5.3.2 normal normal Awaiting Review defect (bug) new 2020-02-22T17:09:49Z 2020-02-22T17:12:21Z "I wrote a custom shortcode to insert a
    in my posts. wpautop inserts an empty

    before the
    . If I place the shortcode before the first paragraph after a subheading, the inserted

    increases the visual space between the subheading and the paragraph. But if I place the shortcode before the second paragraph, the extra

    doesn't affect the visual spacing between paragraphs. I can work around the inconsistency by changing wpautop's priority. But that scrambles other things on the web site. {{{ remove_filter( 'the_content', 'wpautop' ); add_filter('the_content', 'wpautop', 12); add_shortcode('hd_product', 'display_product'); function display_product($args){ extract(shortcode_atts(array( 'id' => null, 'cat' => null, 'tag' => null, 'orderby' => 'rand', 'limit' => 1, ), $args)); $product = wc_get_product( $id ); $image = $product->get_image($size = 'product-slider', [""class"" => ""product-callout-image"",""alt""=>""mp3 for sale""] ); $term = get_term_by( 'id', $product->category_ids[0], 'product_cat' ); $output = '

    '; $output .= '' . $image ; $output .= '
    ' . $term->name . '
    ' . '$' . $product->price . '
    '; $output .= '
    '; return $output; } }}} " mesmer7 Needs Patch 43394 wpautop inserts extraneous line breaks if hard return around commented content Formatting 4.9.4 normal normal Awaiting Review defect (bug) new 2018-02-23T20:02:19Z 2020-06-15T00:19:38Z "Problem: If one has code comments before content in a WordPress post/page and there are hard returns before and after the code comment, WordPress will insert an extraneous line break. Further, if there are hard returns between multiple comments an extraneous line break will be added. This problem can be reproduced by doing the following: 1. Edit a WordPress post or page. 2. Add a code comment with hard returns before and after it such as: {{{ }}} 3. Publish/preview the page. 4. Use Inspect to examine the area where you placed the above comment and you'll notice an extra line break. This may seem like a very edge case and a minor annoyance, but we ran into this issue recently when we had multiple code comments following each other like so: {{{

    Some regular content here.

    Some regular content here.

    }}} An extraneous line break now becomes four line breaks. This becomes quite confusing for editors as when they look at the post the extra returns are not apparent yet inserted when the page is actually posted. I'm thinking that resolving this issue might also resolve many other cases of wpautop gone rogue. My suggestion would be that wpautop be changed so that: 1. If there is a code comment with a hard return before and after the comment, it does not automatically add wpautop. (one can argue that this is behaving as expected, but I doubt many are thinking when they add a code comment that it will add a nice line break for them...and in any case, this can be much more obviously/easily remedied by inserting a
    in the editor if one truly did want a line break caused in this manner, whereas it can be quite time consuming to discover why extra line breaks are mysteriously appearing) 2. Similarly, with shortcodes, if the shortcode is tested valid then don't add line breaks with wpautop around the shortcode. " davidshq Needs Patch 58872 wpautop not disabled when blocks are inserted dynamically Formatting 6.1.1 normal minor Awaiting Review defect (bug) new 2023-07-21T18:17:09Z 2023-07-21T18:17:09Z "**WP Version** Tested on 6.1.1, but seems to still be present on the trunk. **Context** Our theme has multiple page-header styles. Users can insert any one of those as the first block of a page, or leave it out. If it's left out, we inject a default header block as the first block of the page using a customer WP_Block_Parser. We've also imported a large number of pages from a previous pre-Gutenberg WP system, so not all posts have block content. **The Problem** On legacy posts that do not have block content, wpautop is enabled, ''even for the injected header block'', resulting in extraneous
    and

    tags. If there's even a single block in the post content, the block renders normally. The source of the issue is that do_blocks (https://core.trac.wordpress.org/browser/trunk/src/wp-includes/blocks.php#L1166) renders the blocks based on the results of the parser, but disables `wpautop` based on a call to has_blocks(), which uses the unparsed content to determine if there are any blocks in the post. I recognize this is an edge case, as we're dealing with both legacy content and an (ab?)use of a custom block parser to inject blocks into blockless content, so it's not likely to be a high priority. But if the ""block_parser_class"" hook is going to allow us to override the parser, do_blocks should respect the blocks that are returned regardless of the original content string, and override wpautop accordingly. **Test Cases** Attached are: * A single.php page template file that succinctly captures the problem * The contents of two pages. One has no blocks and shows the wpautop problem. The other contains a single block and shows wpautop being disabled correctly. Use the Code Editor to enter this content into a page or post." jbeninger Needs Docs or Unit Tests 10033 wpautop problems with html comments and object tags Formatting 2.8 normal minor defect (bug) new needs-unit-tests 2009-06-04T12:06:35Z 2019-06-04T19:42:36Z "Bumped into this one when upgrading my mediacaster plugin to use swfobject 2.1 (which is not 1.5 compatible), as documented here: http://code.google.com/p/swfobject/wiki/documentation I take it I'm not the only one who is going to need to upgrade a plugin. It's minor, since I'll just move the filter further down in the queue, but it's still worth reporting: {{{

    Get Flash 9.0 to see this player.

    }}} Gets turned into the following mess: {{{

    Get Flash 9.0 to see this player.



    }}} So, two/three issues: - wpautop should also ignore double object tags, and html comments - wptexturize should ignore html comments" Denis-de-Bernardy Needs Patch 33834 wpautop treats html comments as content General 4.3 normal normal defect (bug) new 2015-09-11T16:44:57Z 2019-06-04T19:51:17Z "This php code: {{{ $str = '

    My div1
    My div2
    '; echo $str.'
    '.wpautop($str); }}} Produces this output as seen in the page source: {{{
    My div1
    My div2

    My div1

    My div2
    }}} I.e. unbalanced {{{

    }}} and wrong layout. " opajaap Needs Patch 15918 wpautop() breaks inline tags on the same line as block tags dunno Formatting 3.0.3 normal normal defect (bug) new 2010-12-20T16:01:31Z 2019-06-04T19:43:17Z "Hi guys! I've got latest WP installation (3.0.3) and found strange bug in posts parser. Create article with following HTML: {{{

    }}} Browser will get: {{{ }}} All seems to be fine! Now get rid of unnecessary div. Create article with following HTML: {{{ WP IZ ASSUM }}} Browser will get: {{{

    WP IZ ASSUM

    }}} Dunno why there is extra

    but who cares. All seems to be OK. Create article with following HTML: {{{

    WP IZ ASSUM
    }}} Browser will get: {{{
    WP IZ ASSUM
    }}} Now isn't that cool? But check what is even cooler! Create article with following HTML: {{{
    WP IZ ASSUM
    NO IT'S BUGGY AS HELL
    }}} Browser will get: {{{
    WP IZ ASSUM

    NO IT’S BUGGY AS HELL
    }}} Wow! Say hello to invalid markup and rendering problems! Auto-closing of tags turned off. No matter of the settings I still get this nice messed up html. WYSIWYG turned off also." retrib Needs Dev / Bug Wrangler Feedback 11678 wpautop() fails on uppercase closing tags Formatting 2.9 normal normal defect (bug) new dev-feedback 2009-12-31T11:26:11Z 2019-06-04T19:42:47Z "To reproduce, in a post enter: {{{

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

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

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

    }}} Because I (incorrectly) entered an uppercase closing

    tag, wpautop() thinks there is no closing tag so adds a

    , which then often renders as a double

    tag. Close if this is not a bug, though I thought it may be good to do some sanitizing or something on uppercase tags. " joehoyle Needs Patch 6984 wpautop() formats the the contents of shortcodes Shortcodes 2.6 normal normal Future Release defect (bug) new 2008-05-17T10:34:02Z 2019-04-01T10:04:10Z "`wpautop()`, the bane of my existence as a plugin developer, is at it again. Here's an example of some PHP wrapped in a valid shortcode in a post of mine: {{{ [code lang=""php""]$text = str_replace( array('

    ', '

    '), array('

    ', '

    '), $text);[/code] }}} The content that gets passed to my shortcode function is this: {{{ $text = str_replace( array('

    ', '

    '), array('

    ', '

    '), $text); }}} Expected result: it shouldn't touch the insides of valid shortcodes (like adding line breaks or anything as it is doing now)." Viper007Bond Needs Docs or Unit Tests 5250 wpautop() issue with lists Formatting 2.3 normal normal Future Release defect (bug) reopened needs-unit-tests 2007-10-24T00:32:38Z 2023-02-02T13:34:08Z "First of all, my sincere apologies if this is a duplicate. The problem, in short: WordPress inserted a number of unclosed `

    ` tags into my post. It should either insert correctly closed tags, or none at all. I honestly would prefer the former. In detail: I had HTML code very similar to this: {{{

    • text
      • subtext
      more text
    }}} This was automatically converted to: {{{
    • text
      • subtext

      more text

    }}} Note the extra `

    ` tag in the above, which is unclosed (making the W3C validator choke on my website). Also note, I was not using the WYSIWYG editor (turning it off was the first thing I did), so it's unlikely to be due to that. As a workaround, manually inserting properly closed `

    ` tags works just fine: {{{

    • text
      • subtext

      more text

    }}} Since this workaround exists, the bug is not very prioritary, but it should also (hopefully) be easy to fix." Narc0tiq Needs Docs or Unit Tests 27733 wpautop(): \s in regex destroys some UTF-8 characters Formatting 0.71 normal major defect (bug) new needs-unit-tests 2014-04-09T09:17:39Z 2022-01-18T13:48:21Z "\s in preg_replace() incorrectly targets some UTF-8 characters. '''Steps to reproduce:''' 1. Create a post with {{{ ム new line }}} as a content. 2. It will be output as {{{


    new line

    }}} '''Quick Test:''' {{{ $pee = ""

    ム\n""; $pee = preg_replace('|(?)\s*\n|', ""
    \n"", $pee); echo $pee; // outputs


    \n }}} '''Solution:''' Use [\r\n\t ] rather than \s." tenpura Has Patch / Needs Testing 32856 wpColorPicker close should check that iris hasn't been destroyed before toggling it. General 4.2.2 normal normal defect (bug) new has-patch 2015-07-01T14:40:25Z 2019-06-04T19:49:42Z "wpColorPicker.close() can be called (via the 'click.wpcolorpicker' event on body) when the internally used iris widget has already been destroyed, which means that when it attempts to toggle iris an exception is thrown. The attached patch just checks that iris still exists before the toggle is attempted. This issue arose in response to the question ""Modify Custom Field in Media Library using JavaScript"" by @Howdy_McGee on Wordpress Development stackexchange http://wordpress.stackexchange.com/questions/193006/modify-custom-field-in-media-library-using-javascript, which can be used to replicate the scenario. If you open the color picker and then, leaving it open, close the Attachment Details modal window, a $.error exception is thrown (or can be - may depend on your system) by jQuery UI Widget, ""cannot call methods on iris prior to initialization""." gitlost Has Patch / Needs Testing 46780 wpColorPicker() close() method uses iris 'toggle' instead of 'hide' which can unexpectedly open the color pane General 5.1 normal minor Awaiting Review defect (bug) new has-patch 2019-04-03T07:09:04Z 2019-05-23T09:49:02Z "Using the close() method, one would expect that the color picker will get closed anyway and that nothing else would happen, even if the picker in question was already closed. However, when calling the close() method on an already closed picker (e.g. when you call close() on a set of three pickers, where only 2 might be open), the color pane will get displayed. While the close() method correctly will remove the wp-picker-open class and will set the aria-expanded attribute to false regardless, the actual iris picker is just using toggle: {{{ this.element.iris( 'toggle' ); }}} Instead, it would be safer to use {{{ this.element.iris( 'hide' ); }}} which would also be more in line with how the class and attribute are handled." maximus80 Needs Patch 31042 WPDB field_types Variable Too Broad? Database normal normal enhancement new 2015-01-17T03:07:49Z 2019-06-04T19:27:49Z "I was wondering if it might make sense to tie the field_types format definitions to tables and columns instead of just columns. As people use WordPress more there may be situations like the one I encountered today where columns of their enhancement tables overlap with those of WordPress' default tables. In my situation my user_id was more of a guid so it was a string that was being formatted to a decimal. While this might not be a common problem with the overhead it would take to change it to a multidimensional array it might make sense. If this is something others would find useful or practical I would be happy to rework the code." njkrut Needs Dev / Bug Wrangler Feedback 12257 wpdb Scales Badly Due to Unnecessary Copies of All Query Results Database normal critical defect (bug) assigned dev-feedback 2010-02-17T03:08:06Z 2019-06-04T19:21:45Z "While working on #11726, I encountered a reproducible crash in wpdb::query() The following code causes memory exhaustion on large result sets: {{{ while ( $row = @mysql_fetch_object($this->result) ) { $this->last_result[$num_rows] = $row; $num_rows++; } }}} The memory exhaustion message is error-controlled, causing a white screen of death even in debug mode. I searched wp-db.php for references to $this->last_result, and I found no justification for these object reference copies. $this->last_result '''should''' be maintained as a MySQL resource and properly optimized using the MySQL client layer instead of this PHP nonsense. Tagging for dev-feedback to discuss which Milestone is appropriate." miqrogroove Needs Patch 36242 wpdb set_sql_mode add param Database 3.9 normal normal enhancement new 2016-03-14T23:43:46Z 2019-06-04T19:35:29Z When making a creating a db drop-in that supports multiple databases, I had to override the whole {{{set_sql_mode}}} method. If {{{set_sql_mode}}} accepted a {{{$dbh}}} param, the method could easily be reused. spacedmonkey Has Patch / Needs Testing 43589 WPDB Update change NULL values to acceptable values Database normal normal Awaiting Review defect (bug) new has-patch 2018-03-20T19:43:32Z 2019-01-17T01:19:44Z "Hello, I'm creating a plugin in which i need to create a new SQL table, that I connect to REST API. My table has several fields that can't be NULL and some that can be NULL. If i do the update via the wpdb object (cf. below), NULL fields are updated with a NOT NULL value that I've never typed (a float that can't be NULL become 0.00000, a date -0001-00-00, ....). The expected behaviour would be to not update the line because the request is not OK. If I allow NULL values on these fields, values are NULL. It's like if somewhere the value was changed to be accepted by the sql engine. NB: the generated request is OK, when i access to the wpdb->last_query value. --------- code example --------- global $wpdb; $wpdb->update($table, $fields, $where, $fieldsformats, $whereformats); where $fields = array(""mynotnulldate""=> null, ""mynotnullfloat"" => null); Dorian " dorianrd Needs Patch 51779 wpdb->get_blog_prefix() doesn't allow wp_1_tablename structures Networks and Sites normal normal Awaiting Review defect (bug) new 2020-11-15T15:42:46Z 2023-06-08T18:32:59Z "Context: We have some OLD networks (10+ years, started as WPMU, etc) In the process of dropping our Domain Mapping plugin for WordPress's native support, I encountered the following problem. Some (probably very few) old networks have the root site's tables as wp_1_options (instead of wp_options). {{{ if ( defined( 'MULTISITE' ) && ( 0 === $blog_id || 1 === $blog_id ) ) { return $this->base_prefix; } }}} This logic explicitly prevents wp_1_options and friends as being queried, with requests to the root/base site going to wp_options (which doesn't exist). Perhaps there could be some kind of sanity check that checks for the existence of tables with the prefix in this kind of situation?" MadtownLems Needs Docs or Unit Tests 37508 wpdb->result instance should be checked `mysqli_num_fields` in `load_col_info()` Database 3.9 normal normal defect (bug) new needs-unit-tests 2016-07-29T07:33:53Z 2019-06-04T19:40:32Z "In `wpdb::load_col_info()` the function `mysqli_num_fields()` is called passing `$this->result` without any check on this property value. The problem is that function has a type hint to `mysqli_result` (see http://php.net/manual/en/mysqli-result.field-count.php), but `$this->result` may be `false`. Just like in other places in the same class, the function should check that `$this->result instanceof mysqli_result` before calling `mysqli_num_fields()`." giuseppe.mazzapica Needs Reporter Feedback / Steps To Reproduce 44163 wpdb->update() fails, showing no error message Database normal normal Awaiting Review defect (bug) new reporter-feedback 2018-05-20T18:54:05Z 2018-05-21T13:52:46Z "It's my second report about the incompletness of wpdb->update function. 1-2 years ago I've reported the scenario when it failed to update, but `last_error` was empty. Now, another scenario, when it fails , but `last_error` is empty, is the following: i.e. create a table with ""NOT NULL"" {{{#!php query(""CREATE TABLE IF NOT EXISTS `example_table` ( `rowID` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(150) NOT NULL, `id` varchar(150) NOT NULL, `data` LONGTEXT NOT NULL DEFAULT '', PRIMARY KEY (`rowID`), UNIQUE KEY `rowID` (`rowID`) ) "". $wpdb->get_charset_collate() ."" AUTO_INCREMENT=1;"" ); }}} then insert some empty value: {{{ $wpdb->insert(""example_table"", array(""name"" => ""James"", ""id""=>""123"", ""data""=>""blabla"") ); }}} then try to update {{{ $wpdb->update(""example_table"", array(""name""=>""Jonathan""), array(""id""=>""133"") ); }}} it doesnt update. I have dumped `$this->dbh` (in wp-db.php 1887 line), and it shows affected lines: 0 `last_error` is empty. After spending much time, found that I was missing ""required"" parameter and added {{{ $wpdb->update(""example_table"", array(""name""=>""Jonathan"", ""data""=>""new-blabla""), array(""id""=>""133"") ); }}} (""NOT NULL"" requirement caused failure) so, it's good, last_error contained some information, when affected lines are 0, or like such scenarios." tazotodua Has Patch / Needs Testing 49363 wpdb::query() does not detect LOAD DATA as an insert statement type Database 5.3.2 normal normal Awaiting Review defect (bug) new has-patch 2020-02-05T02:41:19Z 2020-02-05T02:41:19Z "The regular expression used to choose what return type a query should have does not include `LOAD DATA`. A query beginning with these tokens thus incorrectly returns `0` for the number of affected rows. The following patch would correct the issue: {{{#!patch --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -1973,7 +1973,7 @@ if ( preg_match( '/^\s*(create|alter|truncate|drop)\s/i', $query ) ) { $return_val = $this->result; - } elseif ( preg_match( '/^\s*(insert|delete|update|replace)\s/i', $query ) ) { + } elseif ( preg_match( '/^\s*(insert|delete|update|replace|load\s+data)\s/i', $query ) ) { if ( $this->use_mysqli ) { $this->rows_affected = mysqli_affected_rows( $this->dbh ); } else { }}} " lev0 Has Patch / Needs Testing 57772 wpfooter credit hide the plugin activation button Administration 6.1.1 normal normal Awaiting Review defect (bug) assigned has-patch 2023-02-20T20:00:19Z 2023-02-21T08:32:25Z "**Way to reproduce**: 1. Make sure you have 4/5 admin notice 2. Try uploading a plugin manually which is already installed 3. You should notice the Replace and Activate button is not showing because the footer credit 'Thanks for building with WordPress' is above the button. **Screenshot**: https://prnt.sc/VnoheFeHj6J7 **Environment**: WP: Latest v6.1.1 Theme: 2020 OS: Mac OS 13.0.1 Screen Width: 1680 pixels Screen Height: 1050 pixels" rafiq91 Has Patch / Needs Testing 57773 wpfooter credit hide the plugin activation button Administration normal normal Awaiting Review defect (bug) assigned has-patch 2023-02-20T20:12:52Z 2023-02-20T23:36:48Z "**Way to reproduce**: 1. Make sure you have 4/5 admin notice 2. Try uploading a plugin manually which is already installed 3. You should notice the Replace and Activate button is not showing because the footer credit 'Thanks for building with WordPress' is above the button. **Screenshot**: https://prnt.sc/VnoheFeHj6J7 **Environment**: WP: Latest v6.1.1 Theme: 2020 OS: Mac OS 13.0.1 Screen Width: 1680 pixels Screen Height: 1050 pixels" rafiq91 Needs Reporter Feedback / Steps To Reproduce 32143 wpLink function getAttrs() missing link-text Editor 4.2 normal normal Awaiting Review enhancement new reporter-feedback 2015-04-27T07:04:06Z 2020-11-24T01:38:12Z "After last update to 4.2 wpLink() was renewed and the title-input was replaced. Instead of title, you can now insert/change the link text. https://core.trac.wordpress.org/browser/trunk/src/wp-includes/js/wplink.js?rev=32017 But in function getAttrs() the val of link-text was forgotten. Therfor I proporse to add this line in getAttrs(): linktext: $.trim( inputs.text.val() ), Also it would be nice to populate the link-text field with the document title of a chosed intern element, like it was made with the old title-field before. " xwolf Needs Patch 46361 WPMU - HTTP Request at root path with special character in query key name causes endless loop Networks and Sites 5.1 normal critical Awaiting Review defect (bug) new 2019-02-27T15:38:41Z 2020-12-15T18:46:45Z "Dear WP Team, I observe the following erroneous behavior running WPMU at the latest Version (5.1), but this behavior regards at least version 4.98. If I call a site from a WPMU instance without a context path but with a query key containing a sepcial character, the http-request ends in an endless loop. Affected are at least german umlaut and special characters like [öäüÖÄÜß], but charachters like [§] as well. **For instance www.pleaseuseyourdemowpmuinstance.com?äöüfoo** I'm quite sure that this is a WordPress bug, cause the http response has following header. **""x-redirect-by WordPress""** So the redirect doesnt seem to be from any loadbalancer, cache server or webserver. I hope to have contributed a bit to your great work, thank your very much! Best Regards, Reza Anwar " ranwar Needs Dev / Bug Wrangler Feedback 28530 WPMU Creating new user does not use welcome notification template Networks and Sites normal normal defect (bug) reopened dev-feedback 2014-06-13T16:36:27Z 2019-06-04T20:08:14Z "In a multisite setting adding a new user to the network should send a welcome notification to the user with a template defined in '''Settings > 'Welcome User Email''''. But the template is not used. When creating a new user via {{{/network/user-new.php}}} the method {{{wp_new_user_notification}}} gets called. Instead {{{wpmu_welcome_user_notification}}} should get called." jokr Needs Dev / Bug Wrangler Feedback 12756 WPMU does not handle files with two or more dots in the filename wpmuguru Upload 2.9.2 normal minor Future Release defect (bug) reopened close 2010-03-29T07:23:50Z 2022-10-14T18:47:54Z "* WPMU does download images that have two or more dots in the file name > E.g., One..jpg One...jpg One....jpg rewrites do work (checked) * this is clearly a WP issue: > /wp-content/blogs.php ... $file = BLOGUPLOADDIR . str_replace( '..', '', $_GET[ 'file' ] ); if ( !is_file( $file ) ) { status_header( 404 ); die('404 — File not found.'); } ... > WPMU removes two dots!!! > workaround: $file = BLOGUPLOADDIR . $_GET[ 'file' ]; // name.ly: workaround for files with two or more dots tested and works fine " Namely Needs Patch 21910 wpmu_create_user() standardization Users 3.0 normal normal enhancement new 2012-09-17T18:03:24Z 2019-06-05T06:38:47Z "There seems to be some inconsistencies between wpmu_create_user(), create_user(), and wp_insert_user(). The former two are wrappers, and do different things but potential to consolidate and clean up some old code. Per Nacin: >nacin: wpmu_create_user() should probably just go away. >nacin: fairly useless function >nacin: by default, it looks like wp_insert_user() would create a role-less user. >nacin: as would wp_create_user() Looking at wp_insert_user() it sets the default role if none is provided, where wpmu_create_user() would actually delete the default roles and caps. Although, I'm not really sure there's a use case where you'd be using both the wpmu_new_user and user_register hooks simultaneously so possibly depreciate the former in favor of the latter. One real issue with wpmu_create_user is that it returns false instead of the WP_Error object which is probably not desired since the error could be useful. The false return is used in wpmu_activate_signup() to either set the returned ID or create it's own WP_Error. Lastly... documentation for create_user says it returns the ID, but it looks like it could potentially also return a WP_Error object. Didn't test, but possible documentation fix there. " ryanduff Needs Dev / Bug Wrangler Feedback 31166 wpmu_signup_user_notification filter is incorrect Login and Registration 3.0 normal normal defect (bug) new dev-feedback 2015-01-28T20:30:03Z 2019-06-04T20:10:50Z "Simple ticket here, The wpmu_signup_user_notification filter seems to be filtering the wrong option {{{ if ( ! apply_filters( 'wpmu_signup_user_notification', $user, $user_email, $key, $meta ) ) return false; }}} If I'm thinking correctly, the filter should be filtering a boolean. If two filters are added to this and the first returns false, there is no way for the second filter to recover the $user variable. This is how I see it working WP4.1, /wp-includes/ms-functions.php line 919 {{{ if ( ! apply_filters( 'wpmu_signup_user_notification', true, $user, $user_email, $key, $meta ) ) return false; }}}" johnrom Needs Dev / Bug Wrangler Feedback 20019 wpmu_validate_blog_signup(): Allow '.' and '-' in blog names Login and Registration 3.0 normal normal enhancement reopened dev-feedback 2012-02-10T23:04:29Z 2019-06-04T20:03:10Z "Canonical uses Wordpress 3.x multisite as part of voices.canonical.com, for employees who do not have or wish to list their personal blog. The code is stock, except for one patch we maintain, which allows blog names (currently in WP as lowercase alphanumeric only) to also include '.' and '-'. This matches our global username format. Attached is a patch extending wpmu_validate_blog_signup() to allow '.' and '-', with a tweak for the error text. We have been running the patch for awhile, and have not run across any problems with the rest of the code accepting this." fo0bar Needs Patch 43313 wptexturise uses the wrong curly quote after a closing link tag Formatting normal normal Awaiting Review defect (bug) new 2018-02-14T10:29:02Z 2018-04-15T18:05:13Z "When an English possessive 's comes immediately after a closing link tag, wptexturise changes it to the wrong kind of curly quote mark. '''To reproduce:''' * Enter some text with a link followed by an 's in your post content, for example {{{ BBC's approach }}} * View the post in the front end. '''What I expect''' The filter replaces the straight single quote mark with a right curly apostrophe ’ '''What I see instead''' The filter replaces the quote mark with a left curly apostrophe ‘ " andfinally Needs Patch 54721 wptexturize caches the result of run_wptexturize preventing themes from using this if a plugin has already called get_plugin_data Formatting 5.8.2 normal normal Awaiting Review defect (bug) new 2022-01-03T11:45:01Z 2022-01-03T11:45:01Z "One of the plugins I use is simple_sitemap. This plugin (quite reasonably) uses get_plugin_data during its initialization. get_plugin_data makes calls to wptexturize as part of its operation. The plugin's initialization runs before the theme's functions.php is executed. Since wptexturize caches the result of the run_wptexturize filter, the theme is no longer able to disable wptexturize's function and hence gets unwanted smart quotes. There is a workaround for the theme whereby it makes a dummy call to wptexturize with reset set to true. This makes the wptexturize implementation reinitialize and hence re-execute the call to the run_wptexturize filter. However the documentation states that this flag is designed for unit testing and hence this seems to be less than ideal. (In passing I'll note that this caching of the result also prevents plugins from using it to temporarily disable the function by adding and then removing the filter should it be required.) I've left the ticket type as 'defect' but it would be reasonable to argue that this is actually a request for a minor enhancement - if so please change the type field. " tremlas Needs Patch 43785 wptexturize fails to skip JavaScript if code contains < Formatting normal normal Awaiting Review defect (bug) new 2018-04-17T07:51:58Z 2018-04-17T07:51:58Z "As the [https://codex.wordpress.org/Function_Reference/wptexturize documentation] states: Text enclosed in the tags

    , , ,