__group__ ticket summary reporter component _version priority severity milestone type _status workflow _created modified _description _reporter Old Tickets 60680 Site's broken rsalafy WordPress.org Site normal critical Awaiting Review defect (bug) new 2024-03-03T19:41:16Z 2024-03-04T16:17:21Z I think wordpress.org is broken when opened with firefox desktop. See attached video. rsalafy Old Tickets 60653 Block-based Widgets Editor - Site Logo Block is not listed. williansantana Widgets 6.4 normal minor Awaiting Review feature request assigned dev-feedback 2024-02-28T15:47:51Z 2024-03-12T19:18:51Z "It would be interesting to activate the Site Logo Block to appear in the Block-based Widgets Editor. [[Image(https://i.ibb.co/BLRLFp5/Captura-de-tela-2024-02-28-124402.png)]]" williansantana Old Tickets 60559 Widgets moved by calling the sidebars endpoint davit16 Widgets normal normal Awaiting Review defect (bug) new 2024-02-16T10:02:07Z 2024-02-16T10:02:07Z "The GET /wp/v2/sidebars endpoint moves the widgets permanently, if for some reasons, one or more sidebars are not registered for WP REST. Moreover, it does it even if it returns a 401 status code. To reproduce the issue: 1. Have Gutenberg disable with the ""Disable Gutenberg"" plugin 2. Add this code to theme's functions.php {{{#!php function test_register_sidebars() { if ( strpos( $_SERVER['REQUEST_URI'], '/wp-json/' ) === false ) { register_sidebar( [ 'name' => 'Sidebar 1 - not registered on WP REST', 'id' => 'sidebar-1', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ] ); } register_sidebar( [ 'name' => 'Sidebar 2', 'id' => 'sidebar-2', 'before_widget' => '
', 'after_widget' => '
', 'before_title' => '

', 'after_title' => '

', ] ); } add_action( 'widgets_init', 'test_register_sidebars' ); }}} 3. Add widgets to ""Sidebar 1"" 4. Visit GET /wp-json/wp/v2/sidebars" davit16 Old Tickets 60519 Link widget always displays rating xurxodiz Widgets 6.4.3 normal minor Awaiting Review defect (bug) new 2024-02-13T02:19:47Z 2024-02-13T11:25:56Z "Using the latest WP version, when you add links through the Link Manager and use a Widget to display them in e.g. a sidebar, the links always show the rating regardless of the widget setting ""Show rating"" being unchecked. You can test it simply by creating a link, adding it to a link widget and placing it in a widget area. I've traced the problem to a gap in logic in the 'update' function of /wp-includes/widgets/class-wp-widget-links.php 'rating' setting is not taken care of when updating the instance settings, so it is always set to 1 as default during $instance array update. It can be fixed by adding the following line after line 114: {{{#!php $instance['rating'] = ! empty( $new_instance['rating'] ) ? (int) $new_instance['rating'] : 0; }}} Same as it is done in line 114 for 'limit' setting. Thanks." xurxodiz Old Tickets 60432 Social icons svub Widgets 6.4.3 normal normal Awaiting Review feature request new 2024-02-04T14:27:58Z 2024-02-16T22:38:32Z "Hi. There are my ideas for improvement of icons in Social block. Feed icon resize I use: {{{ 'feed' => array( 'name' => 'RSS Feed', 'icon' => '', ), }}} Telegram icon resize I use: {{{ 'telegram' => array( 'name' => 'Telegram', 'icon' => '', ), }}} Please add Google Photos. Now I use as modified Google icon: {{{ 'google' => array( 'name' => 'Google Photos', 'icon' => '', ), }}} Please add GitLab. Now I use as modified GitHub icon: {{{ 'github' => array( 'name' => 'GitLab', 'icon' => '', ), }}} Thanks. Bye. Screenshot: [[Image(https://www.kopirky.org/images/wp_block_social_icons.png)]]" svub 4-7 Days Ago 60774 Make the user_login field readonly instead of disabled on the profile screen roytanck Users normal normal 6.6 enhancement accepted commit 2024-03-14T11:34:38Z 2024-03-14T14:18:12Z "This came up in an accessibility audit of one of the sites I work on. On the profile edit screen in wp-admin, the username is displayed using an input field with the `disabled` attribute. This field is skipped by screen readers, which leads to a ""loss of information"" for visually impaired users. It's better to use `readonly` here. This is exactly what the field is used for, and readonly fields are read by screen readers." roytanck Old Tickets 60576 Unable to change contact email douglas447 Users normal normal Awaiting Review defect (bug) new has-patch 2024-02-19T19:04:05Z 2024-02-20T12:03:04Z Under users profile, I have been unable to have pending email change approved. I have looked at all the possible reasons this can happen but nothing has helped. douglas447 Old Tickets 60441 Delete User-> Attribute All Content Doesn't Show Users with Editor Roles sansprinkle Users 6.4.3 normal normal Awaiting Review defect (bug) new dev-feedback 2024-02-05T14:18:33Z 2024-02-05T14:18:33Z "Posted in the Support Forum [https://wordpress.org/support/topic/cant-attribute-content-to-editor-when-deleting-user/ here] - It was suggested this might be a bug so I'm reporting it here. When deleting any user with content and selecting who to attribute that content to, users with editor roles are not shown in the list. I've created a staging site where I disabled all plugins and changed the theme to a default theme, but the issue remains. I've tested this on a couple of websites. I've linked screenshots that show the missing editor user in the dropdown for ""Attribute all content to"" and where the editor user is in the users list. There are 8,005 users (3 admins, 8 editors, 7,993 subscribers); I'm not sure if the number of users is causing the issue. I'm a web designer, not a developer so if this isn't the right place for this let me know. I've been trying to find any documentation of a similar issue, but have come up empty-handed. [[Image(https://snipboard.io/DAZIv8.jpg)]] [[Image(https://snipboard.io/2JwCcj.jpg)]]" sansprinkle Old Tickets 60299 Default assignment of `use_ssl` user meta value causes unnecessary DB write. prettyboymp Users normal normal 6.6 defect (bug) new needs-unit-tests 2024-01-19T15:14:18Z 2024-02-19T17:35:21Z "When the `$meta` in `wp_insert_user()` is processed using `update_metadata()` it first does a comparison against the current values in the database prior to running an update query. However, because the DB returns a string value ('1' or '0') while the meta_value is set to a boolean value by default the comparison always fails causing a write when not needed. While this is relatively minor in itself, in multi-datacenter setups using hyperdb, this can cause a bit of overhead since all future reads to the usermeta table are then sent to the master database." prettyboymp Old Tickets 60398 "WordPress 6.4.3 MacOS/Linux Compressed Zip plugin archives ""Incompatible Archive"" on upload" Endymion00 Upload 6.4.3 normal normal 6.4.4 defect (bug) reopened commit 2024-01-31T11:42:20Z 2024-03-06T08:44:43Z "If I zip a plugin folder using MacOS right-click Compress command in the contextual menu, those archives are no longer accepted when using upload plugin. It returns ""Incompatible Archive"". This has worked up until now. Probably related to recent security updates for the plugin and theme uploader. If I create a zip on the command line of the same folder that works correctly." Endymion00 Last Week 60739 Wrong redirection when installing with URI rewrite cfinnberg Upgrade/Install 3.7 normal normal Future Release defect (bug) new 2024-03-10T22:54:12Z 2024-03-13T21:48:16Z "I have a server where the users can build their own WordPress installations. The URL of such installation is like: https://example.com/u/user/wpfolder/ The folder on disk is like: /srv/http/public_html_user/wpfolder But when the user tries to run the installation setup, an automatic redirection leeds to the following incorrect address: https://example.com/wpfolder/wp-admin/setup-config.php (notice that /u/user/ is missing) So: - REQUEST_URI is '/u/user/wpfolder' - My document root is '/srv/http/public_html_user/' - Therefore the document URI (relative to this document root) is '/wpfolder/index.php' - And the $_SERVER[PHP_SELF] value is '/wpfolder/index.php' I have found that the problem comes from the wp_guess_url function in wp-includes/functions.php file (line 6218): {{{#!php to

for Better Accessibility lyonmuller TinyMCE 6.4.3 normal normal Awaiting Review defect (bug) new 2024-03-18T15:38:57Z 2024-03-18T15:38:57Z "=== Problem: Currently, the WordPress link insertion modal in the text editor uses an

tag for its title (""Insert/edit link""). This can create accessibility issues, as multiple

tags on a single page can confuse screen readers and undermine the semantic structure of the content, potentially leading to a poor user experience for people with disabilities. === Proposed Solution: I suggest changing the

tag in the link insertion modal to a

tag, or alternatively to a tag if the heading level is not appropriate in the context of the modal's use. This change would improve the semantic HTML structure and enhance accessibility by maintaining a proper heading hierarchy. === Justification: According to the HTML5 specification and accessibility guidelines, a page should have a clear and logical heading hierarchy. The main content should start with an

tag, followed by

,

, and so on. The current use of an

tag in the link modal disrupts this hierarchy, especially since this modal can appear on any page regardless of the existing heading structure. Implementing this change will make WordPress more accessible and compliant with WCAG (Web Content Accessibility Guidelines) standards, which is crucial for users relying on screen readers and for SEO best practices. === Steps to Reproduce: 1. Go to the WordPress text editor. 2. Click on the 'Add link' button to open the link insertion modal. 3. Inspect the modal's title element, which is currently marked up as an

. === Possible Implementation: The change can be implemented by modifying the HTML structure in the core WordPress files where the link modal is defined. Additionally, testing should be conducted to ensure that this change does not affect the modal's functionality and that it enhances the accessibility as intended. I am looking forward to the community's input on this proposal and am happy to contribute to the implementation and testing phases. " lyonmuller Old Tickets 60644 When theme installation fails, add a link to return to theme installer page pmbaldha Themes normal normal Future Release enhancement reopened 2024-02-27T05:51:47Z 2024-02-27T10:52:28Z "When for any reason a theme installation fails (If the user uploads a zip file other than the theme zip file) you will be confronted with an error and there is no way out. Screenshot: https://nimb.ws/OK9mRU1 Of course, you can use the browser's built-in back button, but still it would be nice to offer an additional link ""Go to Theme Installer"" (leading to wp-admin/theme-install.php)" pmbaldha Last Week 60710 save_post_{$post->post_type} hook returns inconsistent $_POST['tax_input'] format jenUnderscore_ Taxonomy 6.4.3 normal normal Awaiting Review defect (bug) new 2024-03-06T19:55:52Z 2024-03-06T19:55:52Z "In the save_post_{$post->post_type} hook: **Case 1**: If we do not make any changes to the taxonomy `$_POST['tax_input'][$term]` returns a comma delimited string WITH a space. Output Example: ''Maple, Spring, Summer, Winter'' **Case 2**: If we modify the taxonomy (adding or removing), it eliminates the space: Output Example: ''Spring,Summer,Winter'' Proposed solution, eliminate the space in the first case for consistency. " jenUnderscore_ Old Tickets 60532 Add a `pre_set_object_terms` action davidbaumwald 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 Old Tickets 60552 Add hook to WP_Sitemaps::render_sitemaps() Cybr Sitemaps normal normal Awaiting Review defect (bug) new 2024-02-15T18:53:14Z 2024-02-15T18:53:14Z "Currently, we cannot tweak the sitemap's content parameters or headers. To allow this without having to test whether the sitemap is outputting (there's currently no proper way, see #51543 and #56954), in `WP_Sitemaps::render_sitemaps()`, after the `sitemaps_enabled()` defense clause, add a hook `wp_doing_sitemap`. For example {{{#!php if ( ! $this->sitemaps_enabled() ) { $wp_query->set_404(); status_header( 404 ); return; } // Render stylesheet if this is stylesheet route. if ( $stylesheet_type ) { ... }}} Becomes {{{#!php if ( ! $this->sitemaps_enabled() ) { $wp_query->set_404(); status_header( 404 ); return; } do_action( 'wp_doing_sitemaps' ); // Render stylesheet if this is stylesheet route. if ( $stylesheet_type ) { ... }}}" Cybr Yesterday 60802 Enable debug mode / debug options in site health amykamala Site Health normal minor Awaiting Review feature request new close 2024-03-18T19:34:03Z 2024-03-18T21:31:48Z "Debugging is a necessity for any developer and for WordPress users in general. As it stands now debug mode and the related debug options can only be enabled through manually editing the wp-config file to add or adjust wp-config constants. This makes debugging harder to access for everyone, and even more difficult to access for users that are either not familiar with ftp/ssh or who only have wp-admin access and not access to the filesystem. Adding toggle options for debugging mode in the Site Health tools wp-admin page would make troubleshooting errors and issues easier and more accessible for all users with administrator access. As a bonus, this would also decrease the demand on web host technical support because users would be more equipt to identify plugin conflicts, php errors and other issues independently. Proposed Site Health Options: - 'Enable debugging on/off' -- WP_DEBUG true/false with false as default and subtext about only setting to true/on for troubleshooting bc of adverse performance effects. - 'Enable debug log on/off' -- WP_DEBUG_LOG true/false - set to true/on as default and - Site Health could and should have a tab to view contents of debug logs within wp-admin (maybe -tail 30 or the last 30-50 results, potentially could improve on this to hide duplicate entries, to hide warnings and notices and to grep/search for keywords) - 'Show errors on front end on/off' - WP_DEBUG_DISPLAY true/false with a default to false so as not to expose debugging to end users and this could also have a toggle option to display errors only in wp-admin pages and not on the front end - Debugging should be set to never display on the front end in the first place as a default (ever), that could probably be it's own ticket - This could be expanded on to include toggle settings for SCRIPT_DEBUG and SAVEQUERIES constants " amykamala Last Week 60719 Add fonts upload location to Site Health report swissspidy Site Health normal normal 6.6 enhancement new has-patch 2024-03-07T06:05:53Z 2024-03-12T16:54:27Z Just like Site Health lists the paths to the plugins/themes/uploads directories, we should list the path to the fonts directory (and its size) there as well. swissspidy Old Tickets 60670 [Site Health] Add current mysql version to update recommendation Presskopp Site Health normal normal Future Release enhancement new has-patch 2024-03-01T11:54:19Z 2024-03-02T22:56:45Z "On Site Health Status, if you run an older version of mysql, you will get the recommenation For optimal performance and security reasons, you should consider running MySQL version 8.0 or higher. Contact your web hosting company to correct this. I propose to add the current version there. **Your version is [version].** For optimal performance and security reasons, you should consider running MySQL version 8.0 or higher. Contact your web hosting company to correct this." Presskopp Old Tickets 60619 Add a DNS section to Site Health (and status checks for SPF and DMARC) zodiac1978 Site Health normal normal Awaiting Review enhancement new dev-feedback 2024-02-23T09:59:49Z 2024-02-23T11:05:09Z "In February 2024 Google and Yahoo announced some changes for sending mails: https://support.google.com/a/answer/81126?hl=en https://senders.yahooinc.com/best-practices/ For example, both are now requiring SPF ''or'' DKIM and you need valid forward and reverse DNS record for your sending IPs. This is the requirement for all senders (for bulk senders with more than 5000 mails per day there are even stricter rules). So using a Gmail address within WordPress and not having a valid SPF could lead to mails getting bounced for not passing the SPF check. Important mails (Password reset, fatal error handler, etc.) are not getting attention. Unfortunately, there is no easy way to check these settings. You need to know where you can set this up at your hoster or you need to know external tools for checking, like: https://mxtoolbox.com/SuperTool.aspx, https://www.nslookup.io or https://dnschecker.org/all-dns-records-of-domain.php So why not adding a DNS section to the Site Health report, adding those records? And some status checks where possible? As @swissspidy has pointed out on X/Twitter, this needs more thoughts and polishing before getting in core, so I have built a proof of concept as a plugin: https://github.com/Zodiac1978/dns-info This could easily be transformed to a patch for the Site Health component by me. I am interested in feedback and what should be changed to get this in core. Here or on GitHub. Thanks in advance!" zodiac1978 Old Tickets 60508 Add a plugin dependency section to Site Health desrosj Site Health normal normal Awaiting Review feature request new 2024-02-12T14:51:59Z 2024-02-12T14:52:35Z "Site Health is a great way to provide an indication something may be broken (missing dependencies), provide additional information about how to go about resolving the problem, and link out to more documentation when necessary. For support teams, this information could be really helpful when trying to resolve a problem on a site. At a minimum, the section could list any missing dependencies and maybe which plugins require them. At a maximum, there could be a dependency tree of sorts that helps visualize the shared requirements for their plugins." desrosj Old Tickets 60388 WordPress Core error message in my Website JPTF Site Health normal normal Awaiting Review defect (bug) new 2024-01-30T22:00:14Z 2024-01-30T22:45:13Z "Hello, Can you help me to fix this problem (see below). I tried several fixes but none worked... Thanks JP Fernandes {{{ Fatal error: Uncaught TypeError: Unsupported operand types: string - int in /.../wp-admin/includes/class-wp-site-health.php:2985 Stack trace: #0 /.../wp-admin/includes/class-wp-site-health.php(1764): WP_Site_Health->has_missed_cron() #1 /.../wp-admin/includes/class-wp-site-health.php(194): WP_Site_Health->get_test_scheduled_events() #2 /.../wp-admin/includes/class-wp-site-health.php(139): WP_Site_Health->perform_test() #3 /.../wp-includes/class-wp-hook.php(324): WP_Site_Health->enqueue_scripts() #4 /.../wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters() #5 /.../public_html/wp-includes/plugin.php(517): WP_Hook->do_action() #6 /.../wp-admin/admin-header.php(118): do_action() #7 /.../wp-admin/site-health.php(96): require_once('/.../...') #8 {main} thrown in /.../wp-admin/includes/class-wp-site-health.php on line 2985 }}}" JPTF Old Tickets 60364 Incorrect argument type given on number_format krishneup Site Health normal normal Awaiting Review defect (bug) new has-patch 2024-01-28T16:39:32Z 2024-01-29T07:59:37Z `Argument #1 ($num) must be of type float, string given in /var/www/src/wp-admin/includes/class-wp-debug-data.php:587` krishneup Old Tickets 60581 Redundant variable type check david.binda Shortcodes trunk normal minor 6.6 enhancement new has-patch 2024-02-20T14:07:32Z 2024-02-20T14:13:38Z After the r57597, which is ensuring that the return type of the `shortcode_parse_atts` function is always an array, the `is_array` check in [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/media.php?rev=57597#L5068 get_post_galleries] function is, IMHO, no longer needed. david.binda Old Tickets 60470 Use `filter_input` instead of superglobals where possible kkmuffme Security normal normal Awaiting Review enhancement new 2024-02-07T19:50:25Z 2024-02-09T22:58:07Z "The `$_SERVER`, `$_GET`, and `$_POST` variables are inherently unsafe and shouldn't be used, as they can be modified in userland. `filter_input` should be used instead - for cases where there is no appropriate sanitizing available the FILTER_CALLBACK flag can be used with the WP sanitizing function, e.g. FILTER_CALLBACK " kkmuffme Old Tickets 60347 wp_kses breaking text fragments links asafm7 Security normal normal Awaiting Review defect (bug) new 2024-01-25T17:20:18Z 2024-01-25T19:36:08Z "Hello. It seems that wp_kses() (probably wp_kses_bad_protocol()) is breaking text fragments links (https://developer.mozilla.org/en-US/docs/Web/Text_fragments). For example: Link This issue became more prominent as recently ACF started escaping HTML using the wp_kses() function (https://www.advancedcustomfields.com/blog/acf-6-2-5-security-release/). I confirmed the issue with ACF's support. " asafm7 Last Week 60734 Deregistering Open Sans ecv80 Script Loader 6.4.3 normal normal Awaiting Review enhancement new 2024-03-09T02:15:43Z 2024-03-09T10:31:21Z "I have wasted an entire day trying to figure out why my Open Sans styles were not applying. This is counterproductive/suboptimal. As it turns out, Open Sans was packed in WP back in 2014, which is fine by me. More info: #28478 However it is **not** immediately **obvious** one needs to `wp_deregister_style('open-sans');` before he can register his own style. Please, consider making an exception and make `wp_register_style()` automatically `wp_deregister_style(X)` if X equals 'open-sans'. Otherwise consider other courses of action that may prevent others from incurring in the same problem I did. Thanks. " ecv80 Old Tickets 60647 Script Modules: Allow modules to depend on existing WordPress scripts jonsurrell Script Loader trunk normal normal 6.6 feature request assigned 2024-02-27T15:40:59Z 2024-03-07T11:09:26Z "Script modules cannot depend on existing scripts such as `wp-url`, `wp-i18n`, or `wp-api-fetch`. Script modules should be able to leverage the functionality available in existing scripts." jonsurrell Old Tickets 60597 Script Modules API: Allow list of enqueued module data to be exposed johnbillion Script Loader trunk normal normal 6.6 enhancement new 2024-02-21T23:24:22Z 2024-03-01T12:30:33Z "There's no means for a plugin to fetch a list of registered or enqueued script modules for debugging purposes from the Script Modules API as there is from the existing Scripts Dependencies API. Most likely the `get_import_map()`, `get_marked_for_enqueue()`, `get_dependencies()`, and `get_versioned_src()` methods of the `WP_Script_Modules` should be made public to facilitate this." johnbillion Old Tickets 60596 Script Modules API: Enable in the admin area johnbillion Script Loader trunk normal normal Awaiting Review enhancement new 2024-02-21T23:18:18Z 2024-02-21T23:18:18Z "The script modules API added in #56313 only includes hooks to output modules on the front end of a site (`wp_head` and `wp_footer`). This feature should work in the admin area too. From https://core.trac.wordpress.org/ticket/56313#comment:49: > > This feature only works on the front end, not within the wp-admin area, is this intentional? > > It's not. Feel free to add a new ticket to add hooks for the admin." johnbillion Last Week 60713 remove 'array_merge(...)' is used in a loop and is a resources greedy construction. from generate_rewrite_rules pbearne Rewrite Rules normal normal Awaiting Review defect (bug) assigned has-patch 2024-03-07T00:06:18Z 2024-03-12T18:03:03Z pbearne Old Tickets 60330 redirect that working incorrectly! markuscode Rewrite Rules normal normal Awaiting Review defect (bug) new 2024-01-23T19:57:30Z 2024-03-05T02:31:29Z "Issues that once you going to for example https://example.com/example-page-slug/1000/ will redirect you to https://example.com/example-page-slug/ . But it's supposed to display 404 page. Is bad for SEO because that redirect using 301. {{{#!php 0) { $query = array( 'pagename' => '404' ); } return $query; } } new RedirectFixer(); }}} This is how to fix it." markuscode Last Week 60708 REST page 2 item 0 === page 1 item 99 when requesting 100 posts from a post type vialars REST API 6.4.3 normal major Awaiting Review defect (bug) new 2024-03-06T16:39:22Z 2024-03-11T06:51:24Z "in our case of a custom WP post type default REST API call page 2 item 0 === page 1 item 99 when requesting 100 items per page. (as of writing this.) Demo: https://deananddavid.com/wp-json/wp/v2/catering_article?lang=de&orderby=menu_order&order=asc&_fields=acf,catering_category,featured_media,id,title&per_page=100&page=1 https://deananddavid.com/wp-json/wp/v2/catering_article?lang=de&orderby=menu_order&order=asc&_fields=acf,catering_category,featured_media,id,title&per_page=100&page=2 This is no issue when requesting 99 items per page." vialars Old Tickets 60618 REST API: Meta update fails if unrelated unchanged field is a multi-item array kadamwhite REST API 4.7 normal normal Awaiting Review defect (bug) new 2024-02-23T09:32:02Z 2024-02-23T10:17:20Z "In some plugins there may be code which repeatedly calls `add_post_meta` without registration, e.g. calling {{{#!php true` - exposes the post meta field as `'show_in_rest' => true` then subsequent saves to this post through the REST API will fail. The reason is that the REST API iterates through post meta that is passed back in the REST post, and checks whether the incoming value is the same as the stored value using this check in `WP_REST_Meta_Fields::update_meta_value`: {{{#!php is_meta_value_same_as_stored_value( $meta_key, $subtype, $old_value[0], $value ) ) { return true; } }}} In our case the `$old_value` will be an array, but the count will be 3, so we never opt in to our similar-data check. This means that the incoming value will be passed through and will call `update_meta`, which will return `false` because update_meta returns `false` ""on failure **or if the value passed to the function is the same** as the one that is already in the database."" (emphasis added) If a ''new'' value is passed for the existing meta, all rows will be updated as expected. It is only unchanged values which fail the comparison. Summary: Our logic in our update meta function is problematic, and doesn't handle existing arrays of metadata properly when checking for an identical existing value." kadamwhite Old Tickets 60608 Missing REST API users endpoint orderby parameters helgatheviking REST API normal normal Awaiting Review enhancement new 2024-02-22T17:27:54Z 2024-02-22T17:46:52Z "[https://github.com/WordPress/wordpress-develop/blob/4a3240eb8f4be840ad495302d66f2329d0827179/src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php#L1548-L1555 Allowed orderby params in users endpoint] compared to [https://github.com/WordPress/wordpress-develop/blob/4a3240eb8f4be840ad495302d66f2329d0827179/src/wp-includes/class-wp-user-query.php#L194-L209 Supported orderby params in `WP_Users_Query`] The rest endpoint is missing support for ordering by - 'user_login' (or 'login') - 'post_count' - 'meta_value', - 'meta_value_num' - 'login__in' I don't know how complex the meta would be, nor do I fully understand what `login__in` actually does, but for sure the endpoint is missing the ability to order by the user's login/username which can be different from the nicename." helgatheviking Old Tickets 60599 REST API: rest_filter_response_fields fails with a PHP fatal when a custom API endpoint returns a scalar value. xknown REST API normal normal Future Release defect (bug) new 2024-02-22T09:45:54Z 2024-03-11T11:50:22Z "The code in `rest_filter_response_fields` seems to only work with arrays. Thus if a given API endpoint returns a scalar value, then querying this endpoint by adding the `_fields` GET parameter will throw a PHP fatal in PHP >= 8.x. Steps to reproduce it: Add the following dummy plugin and enable it to a test WP {{{ alex@wayra time % cat time.php 'GET', 'callback' => 'my_awesome_func', ) ); } ); { ""plugins"": [ ""."" ] } alex@wayra time % cat .wp-env.json { ""plugins"": [ ""."" ] } alex@wayra time % wp-env start WordPress development site started at http://localhost:8888/ WordPress test site started at http://localhost:8889/ MySQL is listening on port 32768 MySQL for automated testing is listening on port 32769 ✔ Done! (in 77s 181ms) alex@wayra time % curl 'http://localhost:8888/?rest_route=/myplugin/v1/datetime' ""2024-02-22T09:38:36+00:00""% alex@wayra time % curl 'http://localhost:8888/?rest_route=/myplugin/v1/datetime&_fields=foo' Fatal error: Uncaught TypeError: array_intersect_key(): Argument #1 ($array) must be of type array, string given in /var/www/html/wp-includes/rest-api.php:869 Stack trace: #0 /var/www/html/wp-includes/rest-api.php(869): array_intersect_key('2024-02-22T09:3...', Array) #1 /var/www/html/wp-includes/rest-api.php(928): _rest_array_intersect_key_recursive('2024-02-22T09:3...', Array) #2 /var/www/html/wp-includes/class-wp-hook.php(324): rest_filter_response_fields(Object(WP_REST_Response), Object(WP_REST_Server), Object(WP_REST_Request)) #3 /var/www/html/wp-includes/plugin.php(205): WP_Hook->apply_filters(Object(WP_REST_Response), Array) #4 /var/www/html/wp-includes/rest-api/class-wp-rest-server.php(454): apply_filters('rest_post_dispa...', Object(WP_REST_Response), Object(WP_REST_Server), Object(WP_REST_Request)) #5 /var/www/html/wp-includes/rest-api.php(424): WP_REST_Server->serve_request('/myplugin/v1/da...') #6 /var/www/html/wp-includes/class-wp-hook.php(324): rest_api_loaded(Object(WP)) #7 /var/www/html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters('', Array) #8 /var/www/html/wp-includes/plugin.php(565): WP_Hook->do_action(Array) #9 /var/www/html/wp-includes/class-wp.php(418): do_action_ref_array('parse_request', Array) #10 /var/www/html/wp-includes/class-wp.php(813): WP->parse_request('') #11 /var/www/html/wp-includes/functions.php(1336): WP->main('') #12 /var/www/html/wp-blog-header.php(16): wp() #13 /var/www/html/index.php(17): require('/var/www/html/w...') #14 {main} thrown in /var/www/html/wp-includes/rest-api.php on line 869 }}}" xknown Old Tickets 60426 Update WP_Test_REST_TestCase::assertErrorResponse() to allow custom failure messages antonvlasenko REST API normal trivial Awaiting Review enhancement new 2024-02-02T12:21:08Z 2024-02-23T13:31:59Z "According to the WordPress coding standards, it is recommended that if there are more than 2 assertions in a single test method, these assertions should include custom failure messages to explain the nature of any failed assertions. However, in the current state of the `WP_Test_REST_TestCase::assertErrorResponse()` helper method, it contains 2 assertions, making it impossible to add a custom message explaining the error. To align with coding standards and improve the clarity of test failures, I propose updating the method's signature as follows: {{{ protected function assertErrorResponse($code, $response, $status = null, $failure_message) }}} This change will allow developers to include a custom message when using the `WP_Test_REST_TestCase::assertErrorResponse()` method, improving the ability to diagnose issues during testing. Furthermore, all the instances where this method is being used across the codebase need to be refactored to include the new `$failure_message` parameter, ensuring consistency." antonvlasenko Old Tickets 60349 Rest API media upload utf8 urlencoded filename not decoded on server ypjzjn REST API 6.4.2 normal normal Awaiting Review defect (bug) new has-patch 2024-01-25T18:34:50Z 2024-01-25T18:34:50Z "Files uploaded with the rest api media endpoint, containing utf8 characters in the filename, does not get urldecoded if the filename is urlencoded. Example: {{{ Content-Disposition: attachment; filename=\""My-nice-filename.jpg\"" }}} The file is correctly called My-nice-filename.jpg on the server. {{{ Content-Disposition: attachment; filename=\""%D1%82%D0%B0%D1%82%D0%B0%D1%82%D0%B0.jpg\"" }}} File named татата.jpg ends incorrectly up as D182D0B0D182D0B0D182D0B0.jpg on the server. Under is a POC patch allowing urlencoded filenames to be urldecoded on the server. {{{ Content-Disposition: attachment; filename*=UTF-8''%D1%82%D0%B0%D1%82%D0%B0%D1%82%D0%B0.jpg }}} The file is correctly named татата.jpg on the server. A number of http clients, example winhttp, doesn't support utf8 characters in the headers, and the files end up with wrong names on the server. {{{ --- class-wp-rest-attachments-controller.php.orig 2024-01-25 13:43:43.898485027 +0100 +++ class-wp-rest-attachments-controller.php 2024-01-25 13:44:02.206740466 +0100 @@ -1139,16 +1139,26 @@ $attributes[ trim( $key ) ] = trim( $value ); } - if ( empty( $attributes['filename'] ) ) { - continue; - } + if ( ! empty( $attributes['filename'] ) ) { + $filename = trim( $attributes['filename'] ); - $filename = trim( $attributes['filename'] ); + // Unquote quoted filename, but after trimming. + if ( str_starts_with( $filename, '""' ) && str_ends_with( $filename, '""' ) ) { + $filename = substr( $filename, 1, -1 ); + } + } else if ( ! empty( $attributes['filename*'] ) ) { + + if ( str_contains( $attributes['filename*'], '\'\'') ) { + list( $key, $value ) = explode( '\'\'', $attributes['filename*'], 2); + // key is encoding + $filename = trim( urldecode( $value ) ); + } else { + continue; + } + } else { + continue; + } - // Unquote quoted filename, but after trimming. - if ( str_starts_with( $filename, '""' ) && str_ends_with( $filename, '""' ) ) { - $filename = substr( $filename, 1, -1 ); - } } return $filename; }}} " ypjzjn Old Tickets 60329 Quick Edit tags-input drop-down selection box hangs exactly over the Published/Draft/Queud selection-box phithx Quick/Bulk Edit 6.4.2 normal normal Awaiting Review defect (bug) new has-patch 2024-01-23T16:48:42Z 2024-01-30T01:12:29Z "So, if I'm not careful when selecting tags from the drop-down-selection-box, if I accidentally click on the published/draft/queud box, it can change it from Published to Draft, for example, which has happened more than once before. So, articles that were published suddenly find themselves unpublished, and the person who was inputting tags in the Quick-Edit space doesn't know what happened - that they accidentally unpublished the article. Maybe put the Published-selection box above the tags please? I've got screen-shots, but the image insert button works strangely for me - can't access my computer from here to attach them? This request is mainly for the Gibraltar-Messenger site (not particularly mine) but this issue woud apply to so many others. Thank-you. " phithx Last Week 60745 WP_Query::parse_query() does not handle invalid query arg values xknown Query normal normal Awaiting Review defect (bug) new has-patch 2024-03-11T11:29:09Z 2024-03-11T11:31:45Z "The code in `WP_Query::parse_query` assumes that most query arguments have the correct type. However, this doesn't seem to be the case for the following arguments: Things that expect arrays, but the code that call them pass (unintended) invalid data types {{{ 'author__in' => 'string', 'author__not_in' => 'string', 'category__and' => 'string', 'category__in' => 'string', 'category__not_in' => 'string', 'post__in' => 'string', 'post__not_in' => 'string', 'post_name__in' => 'string', 'post_parent__in' => 'string', 'post_parent__not_in' => 'string', 'tag__and' => 'string', 'tag__in' => 'string', 'tag__not_in' => 'string', 'tag_slug__and' => 'string', 'tag_slug__in' => 'string', }}} Using most of the above query args in a `WP_Query::get_posts()` call result in a PHP fatal. Things that expect scalars: {{{ 'attachment' => array(), 'author_name' => array(), 'feed' => array(), }}} Using any of the above query args result in a PHP fatal on a default WP installation: {{{ alex@wayra core % cat .wp-env.json { ""core"": null } }}} http://localhost:8888/?attachment[]=admin {{{ Fatal error: Uncaught TypeError: urlencode(): Argument #1 ($string) must be of type string, array given in /var/www/html/wp-includes/formatting.php:5683 Stack trace: #0 /var/www/html/wp-includes/formatting.php(5683): urlencode(Array) #1 /var/www/html/wp-includes/class-wp-query.php(2183): wp_basename(Array) #2 /var/www/html/wp-includes/class-wp-query.php(3824): WP_Query->get_posts() #3 /var/www/html/wp-includes/class-wp.php(696): WP_Query->query(Array) #4 /var/www/html/wp-includes/class-wp.php(816): WP->query_posts() #5 /var/www/html/wp-includes/functions.php(1336): WP->main('') #6 /var/www/html/wp-blog-header.php(16): wp() #7 /var/www/html/index.php(17): require('/var/www/html/w...') #8 {main} thrown in /var/www/html/wp-includes/formatting.php on line 5683 }}} http://localhost:8888/?author_name[]=admin {{{ Fatal error: Uncaught TypeError: str_contains(): Argument #1 ($haystack) must be of type string, array given in /var/www/html/wp-includes/class-wp-query.php:2358 Stack trace: #0 /var/www/html/wp-includes/class-wp-query.php(2358): str_contains(Array, '/') #1 /var/www/html/wp-includes/class-wp-query.php(3824): WP_Query->get_posts() #2 /var/www/html/wp-includes/class-wp.php(696): WP_Query->query(Array) #3 /var/www/html/wp-includes/class-wp.php(816): WP->query_posts() #4 /var/www/html/wp-includes/functions.php(1336): WP->main('') #5 /var/www/html/wp-blog-header.php(16): wp() #6 /var/www/html/index.php(17): require('/var/www/html/w...') #7 {main} thrown in /var/www/html/wp-includes/class-wp-query.php on line 2358 }}} http://localhost:8888/?feed[]=admin {{{ Fatal error: Uncaught TypeError: str_contains(): Argument #1 ($haystack) must be of type string, array given in /var/www/html/wp-includes/class-wp-query.php:1018 Stack trace: #0 /var/www/html/wp-includes/class-wp-query.php(1018): str_contains(Array, 'comments-') #1 /var/www/html/wp-includes/class-wp-query.php(1868): WP_Query->parse_query() #2 /var/www/html/wp-includes/class-wp-query.php(3824): WP_Query->get_posts() #3 /var/www/html/wp-includes/class-wp.php(696): WP_Query->query(Array) #4 /var/www/html/wp-includes/class-wp.php(816): WP->query_posts() #5 /var/www/html/wp-includes/functions.php(1336): WP->main('') #6 /var/www/html/wp-blog-header.php(16): wp() #7 /var/www/html/index.php(17): require('/var/www/html/w...') #8 {main} thrown in /var/www/html/wp-includes/class-wp-query.php on line 1018 }}}" xknown Old Tickets 60566 Posts Page as Draft remains publicly queryable Cybr Query normal normal Future Release defect (bug) new 2024-02-17T11:46:03Z 2024-02-19T11:04:08Z "When assigning a Posts Page at ""WP Admin > Settings > Reading"" and afterward setting that page to draft, the page remains publicly queryable. This is possible via the `?page_id=` query (not `?p=`) and the provisioned slug." Cybr Old Tickets 60490 Add 'author__in' option to WP_Query 'orderby' options bburgay 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 Old Tickets 60468 "WP_Query matches any post when query parameter ""name"" is an empty string" miyarakira Query normal minor Awaiting Review defect (bug) new 2024-02-07T17:25:07Z 2024-02-07T17:25:07Z "`WP_Query` matches any post when query parameter `name` is an empty string. For example: {{{ $query = new WP_Query([ 'name' => '', 'post_type' => 'post', 'posts_per_page' => 1, ]); var_dump($query->posts); }}} The same is true for `get_posts()` which uses `WP_Query` internally. This might be the intended behavior, but it's unintuitive and surprising. It can (did) cause a bug in user code that expects such a query to return no results." miyarakira Old Tickets 60395 Filtering posts by open ping_status returns posts with closed ping_status jamieburchell Query normal normal Awaiting Review defect (bug) new 2024-01-31T07:06:00Z 2024-01-31T10:50:47Z "CLI command {{{wp post --ping_status=open}}} returns published sticky posts with a {{{ping_status}}} of {{{closed}}}. {{{ wp post list --ping_status=open --fields=ID,post_status,post_type,ping_status +------+-------------+-----------+-------------+ | ID | post_status | post_type | ping_status | +------+-------------+-----------+-------------+ | 2521 | publish | post | closed | | 2508 | publish | post | closed | +------+-------------+-----------+-------------+ }}} The same command with a different output format yields no results: {{{ wp post list --ping_status=open --format=ids (no output) }}} Setting an arbitrary {{{ping_status}}} still returns results; {{{ wp post list --ping_status=foobar --fields=ID,post_status,post_type,ping_status +------+-------------+-----------+-------------+ | ID | post_status | post_type | ping_status | +------+-------------+-----------+-------------+ | 2521 | publish | post | closed | | 2508 | publish | post | closed | +------+-------------+-----------+-------------+ }}} The command should return no results as there are no posts with {{{ping_status}}} of {{{open}}}. At the very least, the results output should be consistent regardless of format. Environment {{{ OS: Linux 4.18.0-513.9.1.el8_9.x86_64 #1 SMP Wed Nov 29 18:55:19 UTC 2023 x86_64 Shell: /bin/bash PHP binary: /usr/bin/php PHP version: 8.1.27 php.ini used: /etc/php.ini MySQL binary: /bin/mysql MySQL version: mysql Ver 15.1 Distrib 10.5.22-MariaDB, for Linux (x86_64) using EditLine wrapper SQL modes: WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli WP-CLI vendor dir: phar://wp-cli.phar/vendor WP_CLI phar path: /var/www WP-CLI packages dir: WP-CLI cache dir: /home/deploy/.wp-cli/cache WP-CLI global config: WP-CLI project config: /var/www/wp-cli.yml WP-CLI version: 2.9.0 }}} GitHub issue: https://github.com/wp-cli/entity-command/issues/453 " jamieburchell Yesterday 60796 An error for page and post without revisions support danielpietrasik Posts, Post Types 6.4 normal normal Awaiting Review defect (bug) new 2024-03-18T10:03:04Z 2024-03-18T10:03:04Z "Since **6.4.0** the `$revisions_enabled` argument was added to the arguments array of `register_meta()` function (https://developer.wordpress.org/reference/functions/register_meta/#changelog). For post and page with disabled revisions support there is an error: Error: Function register_meta was called incorrectly. Meta keys cannot enable revisions support unless the object subtype supports revisions. Please see Debugging in WordPress for more information. (This message was added in version 6.4.0.). In register_block_core_footnotes() function `revisions_enabled` argument is permanently set to true and it's makes this error." danielpietrasik 2 Days Ago 60791 Pre-populate slug using URL parameters on new post edit screen. gerardreches Posts, Post Types normal normal Awaiting Review enhancement new has-patch 2024-03-17T06:29:23Z 2024-03-17T15:28:10Z "get_default_post_to_edit() allows to pre-populate `post_title`, `content`, and `excerpt` from `$_REQUEST`. This URL will pre-populate the title and the content: /wp-admin/post-new.php?post_type=post&post_title=My+Title&content=aaaa I have an use case where I need to do the same for the `post_name`: https://wordpress.org/support/topic/set-title-and-slug-of-new-post-using-url-parameters/ I have a shortcode that allows me to load content from a custom post type, and it searches by slug (it needs to be this way for UX reasons). If the post with the provided slug doesn't exist, I register an admin notice alerting that the shortcode is trying to load an unexisting post, and offer a link to create the missing post with the specified slug. I need the slug to be pre-populated with the URL parameter, just as it is possible to do for title, content, and excerpt." gerardreches 4-7 Days Ago 60777 New terms created when a term with commas is added in post editor awesiome Posts, Post Types 6.4.3 normal normal Awaiting Review defect (bug) new 2024-03-14T17:35:07Z 2024-03-14T17:35:07Z "When a taxonomy term has commas e.g ""Red, yellow & green"" and you add the term to a post in the post editor, the term gets added but new terms get created for the words before and after each comma. E.g you add the term ""Red, yellow & green"" to your post. That term will get added. However, you will also notice that two new terms have been created called ""Red"" and ""yellow & green"". Not sure if this is the case with both Gutenberg enabled." awesiome Old Tickets 60646 Docs: Incorrect return type specified for get_post_custom with negative post ID value roytanck Posts, Post Types 5.8 normal trivial Future Release defect (bug) new has-patch 2024-02-27T15:11:58Z 2024-03-08T12:03:04Z "On the documentation page for `get_post_custom`, the return type section says: ""False for an invalid $post_id (non-numeric, zero, or negative value)."" https://developer.wordpress.org/reference/functions/get_post_custom/ However, the function applies `absint` to the `$post_id`. So if its value would be negative (i.e. -10), this would be converted a positive value (10), and `get_post_meta` would be called for that post. This post ID can then either exists (resulting in an array being returned) or not (empty string). Perhaps a negative numerical value should not converted? There's a potential for mix-ups? If we keep the code as is, the docs should probably specify that negative values are converted to positive." roytanck Old Tickets 60482 Password Protected stops working kitka Posts, Post Types 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-09T03:56:15Z 2024-02-09T03:56:15Z I have a site with 4 pages with different passwords to protect them. Every now and then the password just stops working and I need to edit the page, copy and paste the same password in and save it. Then it continues to work again for a while. I number of people visiting the site have reported the same issue. kitka Old Tickets 60433 Adding delete_post_{$post->post_type} action hook gerardreches Posts, Post Types normal minor 6.6 enhancement reviewing has-patch 2024-02-04T16:24:20Z 2024-03-18T08:19:05Z Is there any reason not to add a `delete_post_{$post->post_type}` action hook to the core? We have it for save and edit, so why not for delete as well. gerardreches Old Tickets 60427 "small ""ü"" in page as anchor causes a mistake when try to save (wrong JSON-response)" gregordoehnert Posts, Post Types 6.4.3 normal minor Awaiting Review defect (bug) assigned 2024-02-02T19:00:04Z 2024-02-02T19:00:04Z "I tried to make some changes on a page with pre-block content. It contains some anchors and everytime I tried to save the page after some small changes I got the alert ""Aktualisierung fehlgeschlagen. Die Antwort ist keine gültige JSON-Antwort."". The well know answer that there is something wrong with JSON. I found the reason is that in the anchors where small ""ü"" (a german umlaut). It happened with the anchor target as well as with the anchor link. And at the same time there are some anchors with other umlauts, namely with a big ""Ü"", which do not cause the issue." gregordoehnert Yesterday 60794 Central Payment Gateway API for WordPress and All Plugins beycanpress Plugins normal major Awaiting Review enhancement new 2024-03-18T03:02:49Z 2024-03-18T18:13:30Z "I think it's time to add a built-in payment gateway API to WordPress. Each plugin develops its own API and we develop custom plugins for each plugin. This is ridiculous. Imagine if there was a centralized API and PayPal, Stripe or any payment gateway was integrated for that API. All other plugins will use that API." beycanpress 4-7 Days Ago 60783 plugins_api() and parameters juliobox Plugins normal normal 6.6 defect (bug) accepted 2024-03-15T13:57:13Z 2024-03-18T04:04:23Z "Hello there, (running WP6.5+, might be useless to say) By reading the doc for `plugins_api()` you can read that some fields are included or not in the response, the doc says ''""$fields: Array of fields which should or should not be returned.""'' and then you have a list of fields, some true some false by default. Let's try it, this is my simple request on my plugin on repo: {{{#!php 'secupress', 'fields' => [] ) ); }}} Since the doc says ''""@type bool $contributors Whether to return the list of contributors. **Default false**.""'' I should not receive this field. Let see the response: {{{#!php string(37) ""SecuPress Free — WordPress Security"" [""slug""]=> string(9) ""secupress"" [""version""]=> string(7) ""2.2.5.1"" [""author""]=> string(44) ""SecuPress"" [""author_profile""]=> string(41) ""https://profiles.wordpress.org/secupress/"" [""contributors""]=> array(4) { ... }}} There is. Same for those params that are ""false"" by default but still included: ""sections"", ""versions"", ""reviews"", ""banners"", ""active_installs"" (I don't know for ""group"", can't get the thing). Also there is one param that is not affected by the arguments passed and always returned: ""num_ratings"". Finally there is some fields that are always returned where the doc can't help, I tried to use they array keys to cancel them, no chance, this is : ""author', ""author_profile"" (those 2 may be forced, that's ok), ""support_threads"", ""support_threads_resolved"", ""upgrade_notice"", and ""requires_plugin"" (I know it's new, but don't forget it) The patch may have to be done on w.org since this is the site that add too much data and to not respect the passed parameters. Thanks for your time" juliobox Last Week 60728 Install/upgrade latest supported version of plugin, when latest version of plugin is not supported Dreamsorcerer Plugins trunk normal normal Future Release defect (bug) new close 2024-03-07T20:49:11Z 2024-03-14T13:38:00Z "== Expected behaviour == When a user finds a plugin to install and the latest version requires a newer version of WordPress, an older version of that plugin which does support the installed version of WordPress is installed. When a user goes to the plugins page to update their plugins, the user is prompted to install newer versions of a plugin which still support the installed version of WordPress. == Actual behaviour == User is presented with an error telling them that the plugin doesn't support their version of WordPress and can't be installed. User is not shown any updates available for plugins where the latest version doesn't support the installed version, even if dozens of newer versions are available which do support it. == Problem == This becomes a particular problem when using something like the Debian packaged version of WordPress (where the version will only be updated every 2 years) when combined with plugins (e.g. Yoast) that, for some reason, keep increasing the minimum version every few months to the latest release. In the above situation, the user upgrades to a newer version of WordPress, but the plugin has already made a new release that requires an even newer version of WordPress. Thus the user doesn't get any notification or easy way to upgrade a plugin which is now several years old and doesn't work with the installed version of WordPress." Dreamsorcerer Old Tickets 60663 Plugin Cards: Links with `.button-disabled` are still clickable costdev Plugins normal normal 6.6 defect (bug) assigned has-patch 2024-03-01T03:04:20Z 2024-03-11T11:03:57Z "Props to @swissspidy for noticing this while testing Plugin Dependencies. Currently, links with a `href` attribute and the `.button-disabled` class are still clickable. We should prevent the default `click` handling for elements with the `.button-disabled` class. While this appears to have been the case in earlier WordPress versions, it may be more apparent in the increased AJAX-ified experience added by the Plugin Dependencies feature. **Milestoning for 6.5 for awareness, though I welcome thoughts on whether this is something that needs to be handled in 6.5, or should wait until 6.6.** == Testing Instructions These steps define how to reproduce the issue, and indicate the expected behavior. === Steps to Reproduce 1. Navigate to `Plugins > Add New Plugin`. 2. Click ""Install Now"". 3. Once installed, click ""Activate"". 4. 🐞 Once activated, click on the disabled ""Active"" button. === Expected Results When testing a patch to validate it works as expected: - ✅ The link does not work. When reproducing a bug: - ❌ The link still works despite the `.button-disabled` class being present." costdev Old Tickets 60550 A plugin is deactivated if it is updated and the plugin folder has been renamed at some point. ReneHermi Plugins 6.4.3 normal major Awaiting Review defect (bug) new dev-feedback 2024-02-15T14:56:38Z 2024-02-15T15:28:57Z "This seems to be a new unexpected behavior: A plugin whose folder has been renamed will be deactivated as soon as you update it. Reproduce: - Rename the folder of an activated plugin to something like plugin-name-xy (People do this all the time for several reasons) - The plugin will be disabled (expected due to the modified plugin folder) - Activate again the plugin via wp-admin - Update the plugin to a new version - The plugin folder will be renamed to plugin-name (Unexpected) - The plugin will be disabled silently (Unexpected) " ReneHermi Old Tickets 60507 Add a view for plugins with missing dependencies desrosj Plugins normal normal Awaiting Review feature request new 2024-02-12T14:39:07Z 2024-02-13T23:34:47Z "Instead of directing the user to review their plugins or look for plugins that cannot be activated, it would be really useful to have a filter (similar to Active, Update Available, etc.) that can be linked to. Maybe ""Missing Requirements"" or ""Unmet Requirements"". I don't love either of those names, but I prefer those over ""Missing Dependencies"" or ""Unmet Dependencies""." desrosj Old Tickets 60495 "Following ""plugins_list"": Add a filter in get_views() in class-wp-plugins-list-table" juliobox Plugins 6.3 normal normal 6.6 enhancement new 2024-02-11T23:21:34Z 2024-02-13T12:55:21Z "Since WP 6.3 there is a new filter named ""**plugins_list**"" added in #57278 Using this filter, we can now add a new array key like ""''my_plugins''"" and set some plugins in here. ""''my_plugins''"" is now considered as a ""''status''"" by the WP behavior, like ""''all''"", ""''recently_activated''"", etc, the whole list is here : https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-plugins-list-table.php#L49 We can also delete (unset()) one of them if we want too, (like hide the must-use plugins or the ""''upgraded''"" tab) So now WordPress will go through each iteration of the array keys (aka statuses) and create a tab link to get a new view, here : https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-plugins-list-table.php#L495 **What's the issue here.** WP will try to display a ""text"" for each iteration, if there is no case in the switch, it will still display the $text var, and indeed the last used value, aka incorrect value. But remember line 49, WP sets a list of allowed statuses, this shouldn't be there anymore since the new filter '''plugins_list''' allow us to add ANY status using an array key. We have to remove line 49 and modify line 52 to remove the in_array() stuff. Still need a check to keep the same behavior when a wrong status is loaded? it's already done line 315: https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/class-wp-plugins-list-table.php#L315 Now to get the correct translated label in get_views() we need a hook line 586 like: {{{#!php (%s)'; break; } }}} Now please test in WP 6.3.x, using this: {{{#!php post_name == $post_before->post_name ) { return; } // We're only concerned with published, non-hierarchical objects. if ( ! ( 'publish' === $post->post_status || ( 'attachment' === get_post_type( $post ) && 'inherit' === $post->post_status ) ) || is_post_type_hierarchical( $post->post_type ) ) { return; } /** * Allowes to stop {@see wp_check_for_changed_slugs()} function functionality. * * @param bool $is_skip If true the {@see wp_check_for_changed_slugs()} will be stopped. * @param WP_Post $post The post object. * @param WP_Post $post_before The previous post object. */ if ( apply_filters( 'skip_wp_check_for_changed_slugs', false, $post, $post_before ) ) { return; } $old_slugs = (array) get_post_meta( $post_id, '_wp_old_slug' ); // The rest of the function code } }}} " Tkama Old Tickets 60624 Permalinks corrupted christianbaltazar Permalinks 6.3.3 normal normal Awaiting Review defect (bug) new 2024-02-23T14:36:27Z 2024-02-23T14:36:27Z "Hello. We experienced an issue now on WP 6.3.3 while all of the sudden all pages started to return 404. This occured on a multisite installation hosting around 500 websites with many of them (presumably all) suffering from this error. Then we realised the quick and only solution was to either reboot the server(s) or manually flush the permalinks... Could you please give us a hand to understand the root cause of this. Best " christianbaltazar 4-7 Days Ago 60787 get_registered_meta_keys() should allow for late registration to improve performance sc0ttkclark Options, Meta APIs normal normal Awaiting Review enhancement new has-patch 2024-03-15T22:50:45Z 2024-03-19T00:26:05Z "For a site with many custom post types, custom taxonomies, and tons of custom fields -- the burden of register_meta() can become heavy especially when using a plugin like Advanced Custom Fields, Pods, and others. But we shouldn't have to register every single field on every single page load regardless of whether it's needed. That just drains performance on a given site and requires needless DB/transient/cache requests. The introduction of things like the Block Bindings API rely on fields registered through the REST API. You can register fields with the REST API during the `rest_api_init` action (which yeah, you pretty much have to register everything all at once) but at least it's not every page load. With the Block Bindings API rendering on the front of the site, this requires you having run your fields through `register_meta()` on any given page that might have that field bound. Related dev tutorial: https://developer.wordpress.org/news/2024/02/20/introducing-block-bindings-part-1-connecting-custom-fields/ **Proposed solution:** Run an action at the top of `get_registered_meta_keys()` so a plugin can run `register_meta()` ONLY at the time of that data being needed at the code level." sc0ttkclark Old Tickets 60659 get_subdirectory_reserved_name bypass on mutlisite knightrider123 Networks and Sites 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-29T12:07:13Z 2024-02-29T12:07:13Z "By default on Multisite installation, you cannot have subsite(subdirectory) with name /blog/ due to: https://developer.wordpress.org/reference/functions/get_subdirectory_reserved_names/ as this tigger an error when you try to create such subsite: {{{ The following words are reserved for use by WordPress functions and cannot be used as site names: page, comments, blog, files, feed, wp-admin, wp-content, wp-includes, wp-json, embed }}} But you can bypass that by creating subsite /aaa/ and edit name later on in network. I wonder is that a bug, and if so will it cause any issues using such subsites slug? The only one I have found so far is that if on main site you will have /blog/ page slug, after re-save slug will get the number at the end. Also, if you can bypass that, maybe it should be removed from reserved list? Apart from /blog/ slug I was able to replicate that for /comments/ using same bypass. I could not find any information in that matter. Thank you " knightrider123 Old Tickets 60582 Let WordPress multisite network setup be aware of Nginx Unit as a hosting environment javorszky Networks and Sites trunk normal normal Future Release feature request new needs-docs 2024-02-20T15:04:36Z 2024-03-12T12:45:58Z "Hi there, I work at F5 on the NGINX Unit team. I'd like to get WordPress to recognise when it's running behind a Unit environment, much like Apache, IIS, and Nginx proper, looking at the server header is sufficient for this. I already have a proof of concept locally with the required code changes. With that, I'd also like to help with adding configuration documentation to the handbook, and to help getting an official Unit-based docker container created as well. There are a few prerequisites that we still need to take care of on our (NGINX Unit) side, however here are all the references for work we already have: * PR to the WordPress docker library adding Unit: https://github.com/docker-library/wordpress/pull/875 * work to fix multisite handling within Unit: https://github.com/nginx/unit/issues/916 I'd like to start the conversation about adding a section to the handbook for Unit configurations like how NGINX has its own: https://developer.wordpress.org/advanced-administration/server/web-server/nginx/. I'd like help validating that Unit can handle all instances of multisite and single site functionality in a way that is expected. Let me know how else I can help. You can also find me in the WordPress Slack during normal working hours GMT. Thanks, Gabor" javorszky Old Tickets 60549 """Site Upload Quota Space"" should indicate network default and possibly site's current usage" MadtownLems 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 Last Week 60763 Allow resizing the indivigual content areas in Appearance / Menus namith.jawahar Menus trunk normal normal Awaiting Review enhancement new has-patch 2024-03-12T20:54:27Z 2024-03-12T20:57:22Z "The space to select posts, pages and custom posts for dropping into the menu is restricted to 200px height which makes it really difficult to select posts/pages when creating/editing menus. The user experience will be greatly improved if the section can be resized." namith.jawahar Old Tickets 60690 Consistency in Theme Update Warnings in Menu Marc4 Menus normal normal Awaiting Review enhancement new 2024-03-05T10:29:33Z 2024-03-05T10:29:33Z "When plugins are plugins pending update, a warning appears under ""Plugins"". However, even if are pending theme updates, the same warning does not appear under ""Appearance"". Considering that the security issues of an outdated theme can be the same as those of an outdated plugin, I think we should display the same warning in both cases. In the following image you can see a site with an outdated theme and plugin. At a glance you can only see a warning about ""Plugins"", but no warning about ""Apparence"", only inside ""Apparence > Themes"". Although ""Apparence"" has no updates, it would be nice to have the same warning as in ""Plugins"". I am attaching pictures to illustrate this." Marc4 Old Tickets 60673 Indicate submenu item level in admin nav menu editor and customizer nav menu editor joedolson Menus normal normal 6.6 enhancement assigned 2024-03-02T03:31:57Z 2024-03-05T15:23:23Z "Follow up to #32728 Following the closure of #32728, both navigation menu interfaces indicate whether an item is in a submenu. It would improve the experience for screen reader users to indicate what level an item is at." joedolson Old Tickets 60672 Improve menu toggle accessible name in admin menus joedolson Menus normal normal 6.6 defect (bug) assigned has-patch 2024-03-02T03:29:57Z 2024-03-12T15:08:54Z "Follow up from #32728 The Customizer accessible name format is ""Edit menu item: {item title} ({item type})"". The admin accessible name format is ""{item title} Menu item n of n"". It doesn't include the purpose of the control or the type, so the Customizer is providing better information; the admin menu needs to be updated. " joedolson Yesterday 60798 Investigate potentially failing Imagick PDF alpha channel test swissspidy Media normal normal Awaiting Review defect (bug) new dev-feedback 2024-03-18T11:30:17Z 2024-03-18T11:31:33Z "The test `\Tests_Image_Editor_Imagick::test_remove_pdf_alpha_channel_should_remove_the_alpha_channel_in_preview()` was introduced in #39216 / [56271]. On some hosting providers, this test appears to be failing with errors such as this: {{{ Tests_Image_Editor_Imagick::test_remove_pdf_alpha_channel_should_remove_the_alpha_channel_in_preview The intermediate size could not be retrieved. Failed asserting that false is of type ""array"". /tmp/wp-test-runner/tests/phpunit/tests/image/editorImagick.php:680 }}} Examples: https://make.wordpress.org/hosting/test-results/r57849/wpsabot-r57849/ https://make.wordpress.org/hosting/test-results/r57848/wetopibot-r57848/ We should investigate this failure to see whether it's an issue in core or with the hosting provider. The test mentions ""Ghostscript version >= 9.14"", so maybe it's just a matter of skipping the test if the installed Ghostscript version (`gs --version` I think) is older than that." swissspidy Old Tickets 60666 Unwanted section appears as a sidebar in 'Create gallery' section ukdrahul Media 5.0 normal normal 6.6 defect (bug) accepted 2024-03-01T09:04:35Z 2024-03-06T16:46:30Z "Unwanted section with 'Actions' and 'Create gallery' texts appear in the sidebar of Media Library and nothing happens on selection or click of the texts. To find the issue, please go through the below steps. 1.From the 'File' block add the block 'Gallery', then select Media Library. 2.Unwanted sidebar section with the specified texts appears." ukdrahul Old Tickets 60632 "The focus outline of the ""Upload files"" button is cut off" wildworks Media normal normal Awaiting Review defect (bug) new has-patch 2024-02-25T11:25:45Z 2024-02-25T13:22:36Z "In the media library, when the ""Media Library"" tab is selected and the ""Upload files"" tab is focused, the right side of the outline is cut off." wildworks Old Tickets 60610 Consider fixing user mistakes and/or adding unit tests for $preferred_ext in wp_mime_type_icon() sabernhardt Media trunk normal normal 6.6 enhancement accepted 2024-02-22T19:39:29Z 2024-03-06T16:48:20Z "Follow-up to ticket:31352#comment:54 The `$preferred_ext` value for `wp_mime_type_icon()` begins with a period, and developers might miss that. The function could check the first character and add the dot if it does not exist there. The function also could ensure that the letters are lowercase. For unit tests, the `test_wp_mime_type_icon_video` test in `post/attachments.php` checks the default `$preferred_ext` parameter value. Adding at least one more test with a specific `$preferred_ext` could help." sabernhardt Old Tickets 60569 Generate UUID for media slugs if attachment pages are inactive. peterwilsoncc Media normal normal Awaiting Review enhancement new 2024-02-19T02:36:19Z 2024-03-06T16:55:03Z "For hierarchical post types, WordPress compares slugs with those used by attachments to avoid collisions. The effect of this is that a page can not have the same slug as an uploaded image. [https://core.trac.wordpress.org/browser/tags/6.4.3/src/wp-includes/post.php?marks=5100-5101#L5100 Source code.] This remains the case now that attachment pages have been disabled by default. As the attachment pages slugs are now largely meaningless on new WordPress installs, the media slugs should not reserve nice names and prevent pages from using them. For example, a media file with the name `about-us.png` should not prevent the page `about-us` from existing. Steps to reproduce above: 1. Install WordPress 6.4 or later 2. Go to Dashboard > Media > Add new media file 3. Upload the file `about-us.png` 4. Go to Dashboard > Pages > Add new page 5. Title the page `About Us` and publish 6. Observe the page's slug is `about-us-2` If the attachment pages are disabled, the URLs for the media pages (as opposed to the image) can use `wp_generate_uuid4()` for the slug to avoid reserving nice names and preventing their use on available permalinks." peterwilsoncc Old Tickets 60548 Image editor: improve the browsePopup function afercia Media 6.3 normal normal 6.6 defect (bug) accepted 2024-02-15T14:10:11Z 2024-03-06T16:59:58Z "While auditing all the remaining jQuery deprecations still to address in core, I noticed a couple things that offer room for improvements in the `browsePopup` function of the core image editor. 1. The `browsePopup` function uses the `window.event` property, which is deprecated and should not be used. This is the `global` event. Instead, the event should be passed as a function parameter. Aside: instead of using inline events, it could have been better to consider a more modern approach. 2. When using the keyboard to navigate the items in the 'Image rotation' dropdown menu, the page scrolls. See attached animated GIF. There's some code in place to prevent page scrolling you may need to reduce your viewport height. See [55919] / #50523 " afercia Old Tickets 60499 Duplicate CSS in src/wp-includes/css/media-views.css afercia Media normal normal 6.6 enhancement assigned has-patch 2024-02-12T11:33:04Z 2024-03-06T17:00:44Z "There's about 60 lines (including empty lines) of duplicate CSS in `src/wp-includes/css/media-views.css` all related to the 'load more' button shown at the bottom of the media grid. Compare the CSS starting at line 1272: https://github.com/WordPress/wordpress-develop/blob/93ba10dae607581c00eac627e82dff61d3e5dca6/src/wp-includes/css/media-views.css#L1272 with the one starting at line 1317: https://github.com/WordPress/wordpress-develop/blob/93ba10dae607581c00eac627e82dff61d3e5dca6/src/wp-includes/css/media-views.css#L1317 While it doesn't harm anything, it's just redundant code that can be safely removed. Hint: use a tool of your choice to find all the duplicated CSS rulesets. There are a few online tools as well." afercia Old Tickets 60369 Shortcut for Select Button in Media Library hirschferkel Media normal normal 6.6 enhancement assigned 2024-01-29T11:58:30Z 2024-03-07T19:34:39Z "Hi there, there should be a shortcut to confirm the selected image in Media Library? It is possible to choose an image with Return Shortcut but there is no combination (and documentation) to just confirm the selection with keypad and insert it to the page … Dealing with lots of images is currently really cucumbersome, as one has to click the button manually each time again and again. [https://pasteboard.co/sX5B35Ns3tM7.jpg]" hirschferkel Old Tickets 60354 Image filter functions strip query string from image src sanchothefat Media normal normal Awaiting Review defect (bug) reviewing 2024-01-26T15:14:35Z 2024-01-27T00:07:47Z "The following 2 functions strip the query string from the image src found in the content but it's not clear why this is done. - wp_image_add_srcset_and_sizes: https://github.com/WordPress/WordPress/blob/master/wp-includes/media.php#L1708-L1715 - wp_img_tag_add_width_and_height_attr: https://github.com/WordPress/WordPress/blob/master/wp-includes/media.php#L2092-L2094 When using an external image service like Photon, Tachyon, or some other integration that provides resizing via a query string this breaks the generated srcset & sizes calculation, and can make the width and height attributes use the original image dimensions when the same image file name is used up to the start of the query string. Take the following 2 image URL examples: - https://example.com/images/kitten.jpg - https://example.com/images/kitten.jpg?resize=300,200 The query string means these are 2 different images but those functions will treat them both as the original." sanchothefat Old Tickets 60345 Add duplicate checking for uploaded attachments joedolson Media normal normal Awaiting Review enhancement new 2024-01-25T16:39:34Z 2024-01-25T16:39:34Z "It can be very difficult to tell whether you've already added a given document or image to your media library if it's no longer in recent items. The lack of sorting or filtering makes specific difficult to locate. Based on a [https://wordpress.slack.com/archives/C02SX62S6/p1706115251959409 conversation on duplicate detection in #core-media], we think that a starting point for this is to hash the meta data for an attachment at the time of upload and store that as attachment meta. We could then check for that hash value before uploading a new document, and prompt the user to use the old attachment if it already exists. The specific meta data would probably need to vary depending on the type of attachment." joedolson Old Tickets 60291 Support Lossless WebP in WP_Image_Editor_GD adamsilverstein Media 5.8 normal normal 6.6 defect (bug) new needs-unit-tests 2024-01-19T01:08:14Z 2024-02-19T17:09:20Z "While WordPress has supported WebP lossless since WebP support was introduced in WP 5.8 (https://make.wordpress.org/core/2021/06/07/wordpress-5-8-adds-webp-support/) - outputting lossless sub-size image when you upload a lossless WebP - this only worked correctly when Imagick was installed as at the time lossless was not supported in PHP's bundled GD. PHP's bundled GD supports lossless output for WebP images since PHP 8.1, see see php.watch/versions/8.1/gd-webp-lossless. The capability to handle lossless WebPs can be detected in GD by the presence of the `IMG_WEBP_LOSSLESS` constant. To fix this - similar to Imagick, GD should output WebP lossless images when lossless WebP images are uploaded. " adamsilverstein Last Week 60722 incorrect display of mail due to outdated version of PHP mailer studiodv Mail 6.4.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2024-03-07T10:47:34Z 2024-03-18T14:59:57Z "Good morning, I am experiencing problems when displaying order confirmation emails and contact forms from multiple WordPress websites. This code is displayed first in the emails: Content-Type: text/html; charset=UTF-8 I've already been looking into what could be causing it. There it was indicated that it was due to the PHP Mailer version of WordPress. Could it be that the PHP Mailer update is not current with the new version (6.4.3) of WordPress? Yours sincerely, Diana" studiodv Old Tickets 60420 Default sender address thinlinecz Mail normal normal Awaiting Review defect (bug) new 2024-02-02T01:06:19Z 2024-02-02T01:06:19Z Hi, if installed, the default sender address of all emails sent from the application is something like wordpress@domain.com. For the majority of sites, this mailbox doesn't exist, which causes numerous problems with delivering. And even the sender's domain doesn't exist in DNS (has no MX record), if it's on subdomain. Couldn't it be better to show warning at first login to set up the address of the sender, which is both real and functionable? thinlinecz Yesterday 60801 New sessions are created when user authenticates but there already are active sessions robert681 Login and Registration 6.4.3 normal normal Awaiting Review defect (bug) new 2024-03-18T18:28:41Z 2024-03-18T21:07:37Z "**The problem:** When a user logs in to WordPress a new session is created. If the user opens a new browser tab and navigates to website/wp-admin, the user does not need to authenticate because of the session cookies are saved in the browser, which is the expected behaviour. The same happens even when the user closes the browser completely and reopens it within the duration of that session. However, if the user navigates to the URL *website/wp-login.php* on the website they are already logged in, the user is presented with a login page, and upon authenticating WordPress creates a new session and new cookies etc, instead of ""retrieving"" the existing logged-in session. **How to reproduce:** 1. Log in to a WordPress website 2. Open a new browser tab on the same browser (you can close the previous one) 3. Navigate to the login page of the same website you are already logged in to: *website/wp-login.php* 4. Log in At this point there are two different sessions for the same user in the database and in the browser the user has multiple sets of cookies for the different sessions. **The issues this causes:** 1. Excessive amount of unnecessary session data in the database. We've seen some large websites with tens of thousands of session entries in the database. 2. Site admins who try to control / limit / manage the number of simultaneous user sessions with third party plugins end up having a lot of problems, such as locking out legit users etc **Possible solution?:** There are a few possible solutions, however, the easiest one we can think of is to check for session cookies in the users' browsers whenever they access the *wp-login.php*, and if there are, retrieve that session." robert681 Last Week 60748 auth_redirect() login check doesn't exist or doesn't work kratosgemini Login and Registration normal normal Awaiting Review defect (bug) new 2024-03-11T13:11:38Z 2024-03-11T13:33:04Z "The `auth_redirect()` documentation states: ""Checks if a user is logged in, if not it redirects them to the login page."" [https://developer.wordpress.org/reference/functions/auth_redirect/] However, unless a call to `auth_redirect()` is wrapped inside a `is_user_logged_in()` check, then it always sends people to the login page (even if a user is already logged in). I don't know if the documentation is incorrect or if there is a bug in the code. To reproduce, all you need to do is something like this: {{{#!php add( 'invalid_email', __( 'Error: There is no account with that username or email address.' ) ); $errors->add( 'invalid_email', __( 'Error: The email address is not correct.' ) ); $errors->add( 'user_email', __( 'Error: The email address is not correct.' ), array('form-field' => 'email', ) ); }}} The 1st is an error message when you try to login using an email address that is not used as a user in this site, the key is ""invalid_email"" The 2nd is an error message when you try to register a new user with an email address that is not correctly formatted, the key is ""invalid_email"" The 3rd is an error message when you try to update your personal profile with an email address that is not correctly formatted, the key is ""user_email"" So we have 2 keys and 2 messages (like ""A1 A2 B2"", should be ""A1 B2 B2"") but the message 2 is sharing both, we should clearly decide is ""invalid_email"" is when the email does not exists in our site OR when the email is not correctly formatted. I suggest that the 2nd message should share the ""user_email"" and let the ""invalid_*"" for the login stuff, like we already have ""invalidcombo"" or ""invalid_username"" that shares the same kind of issue. thanks for your reading time" juliobox Last Week 60726 The WordPress core password reset needs to pre-populate the username to meet WCAG 2.2 estelaris Login and Registration normal normal 6.6 defect (bug) accepted 2024-03-07T17:09:25Z 2024-03-07T19:33:35Z "According to new WCAG 2.2 success criterion for [https://www.w3.org/TR/WCAG22/#dfn-processes 3.3.7 redundant entry]. The criterion establishes that information previously entered by or provided to the user that is required to be entered again the same process is either: * auto-populated, or * available for the user to select There are 3 exceptions: * re-entering the information is essential, * the information is required to ensure the security of the content, or * previously entered information is no longer valid. Once the user has performed the process of requesting a new password, the redirected form should have the username filled-in to pass. As of now, this is the form that the user is redirected to: " estelaris Old Tickets 60668 Missing translation in login_header() first parameter juliobox Login and Registration 2.1 normal minor 6.6 enhancement accepted has-patch 2024-03-01T10:22:14Z 2024-03-02T09:19:02Z "Hey there Actuel code from WP (wp-login.php): {{{#!php Import > Run Importer, then selecting ""Download and import file attachments"" on the import options, the media (what appears to be a native Featured Image in my case) does not import, and displays this following message for each failed media import: {{{ Warning: Undefined array key ""file"" in .../wp-includes/media.php on line 1723 }}} When looking into the matter, it appears in **wp_img_tag_add_srcset_and_sizes_attr** on line 2154 and 2155 where **wp_get_attachment_metadata** is called, which may return false, then it's sent directly into **wp_image_add_srcset_and_sizes**, where it (on 1723) tests a **preg_match** on it without testing if **$image_meta** is an array or if **key_exists**, etc. {{{ 2154 $image_meta = wp_get_attachment_metadata( $attachment_id ); // <--- returns array|false 2155 return wp_image_add_srcset_and_sizes( $image, $image_meta, $attachment_id ); }}} {{{ 1723 if ( preg_match( '/-e[0-9]{13}/', $image_meta['file'], $img_edit_hash ) // <--- $image_meta may be false }}} Get blame says this code has been around for over 4 years. [https://github.com/WordPress/wordpress-develop/blame/6.4/src/wp-includes/media.php#L2138-L2159] My scenario is importing a custom post type (that is identical to generic post type) with only WYSIWYG content and a featured image, to a local dev site on my personal computer from a public site (w/ full DNS with SSL cert), so there should not be an issue with fetching the images I believe. Either way, this error is a bug, and needs a way to fail more gracefully if the issue is else where in the Import process." shanemac10 Old Tickets 60375 Site Transfer Protocol zieladam Import normal normal Awaiting Review enhancement new 2024-01-30T10:16:53Z 2024-03-12T10:41:23Z "Migrating WordPress sites involves custom, error-prone logic. There are no canonical tools and the guidelines seem lacking. Let's: 1. Formalize a list of steps involved in transferring a WordPress site between hosts 2. Build a canonical plugin that implements those steps and enables easy site migrations 3. Merge it into WordPress core once its stable This is relevant for: * Site migrations * Creating and restoring site backups * Staging and development environments * WordPress Playground imports and exports * Moving live sites into Playground and vice versa ... probably a lot more. == ZIP bundle as the export format The [https://github.com/WordPress/data-liberation/discussions/53 Data Liberation proposal] makes a great argument for a "".zip"" bundle as the export format. I would love to leverage it here. A wordpress.zip file with all the site files and the data in an .sqlite (or plaintext .sql) format sounds like the most natural and convenient way of moving WordPress sites around. Large sites may seem problematic at the first glance, as 300GB zip archives are difficult to manage. However, the ZIP format was built with streaming, compression, chunking, checksums, and seeking in mind. It is a good fit for handling imports that are many GBs large even on a host with 64 MB of ram allocated and not enough hard drive space to hold the import file itself. To support that last point – I’ve built a [https://github.com/WordPress/wordpress-playground/pull/880 streaming zip encoder and decoder in JavaScript] for Playground. It can cherry-pick a single file from https://downloads.wordpress.org/plugin/gutenberg.17.5.2.zip by transferring only a few kilobytes and without downloading the entire 10+MB archive. It works with zip files, and it would work with a Synchronization API endpoint where the zipped fragments are generated on demand. === Differences with WXR Unlike WXR imports this is looking to transfer a site in its entirely with the Transfer Protocol. The export bundle should include every database table, every installed plugin, every asset and file in the wp-content directory. It must also include meta information such as the domain from which the site is being exported and all custom wp-config.php settings. This will be necessary in order to automate the transfer. == Tasks involved in site transfer * Set IMPORTING constant so things shut down: * Stop sending emails * Database replication * Cleanup jobs/CRON jobs that might filter on post creation * Communicate source and destination site domains/base URLs * Rewrite URLs in the database to match new site URL * Rewrite URLs in all files including wp-config.php, wp-content, sunrise.php, mu-plugins, etc. * Communicate wp-config.php settings, including things like WP_SITEURL and plugins directory, theme directory, content directory, memory limits, and other settings. * Let the target site set the database credentials. * Copy all content from source to destination site, including users, site options, database * tables. * Bonus if there's no post-processing via tools like `wp search-replace`. The transferred data would rewritten as the transfer happens (e.g. to adjust the site URL). * Bonus if we can cryptographically secure the conduit through which the transfer takes place to prevent someone intercepting a transfer (e.g. create a private/public keypair, only allow a single transfer at a time, use that certificate to authenticate the transfer. * Bonus to track transfer state, communicate progress on it, and allow for pausing and resuming a transfer. * Bonus if we can start a database transaction log via $wpdb or similar system when starting a transfer so that the source site can continue to serve requests and ensure that the destination site gets a full concurrent update to its data. == Challenges * This assumes a blank slate on the target site otherwise we risk overwriting ids or mismatching ids. * The right design could become a foundation for live synchronization between WordPress sites. == Related efforts * https://github.com/WordPress/playground-tools/pull/124 * https://github.com/WordPress/data-liberation/discussions/53 * https://github.com/WordPress/wordpress-playground/pull/880 Co-authored with @dmsnell cc @dufresnesteven @berislavgrgicak @tellyworth @dd32 @barry @payton @peterwilsoncc @swissspidy @miyarakira @matt @youknowriad @mamaduka @aristath" zieladam Old Tickets 60650 sanitize_locale_name() should reject non-strings dd32 I18N 6.2.1 lowest trivial Awaiting Review defect (bug) new 2024-02-28T05:46:20Z 2024-02-28T09:53:14Z "While debugging some locale-related oddities, I ran into `sanitize_locale_name()` happily accepting arrays. {{{ wp> sanitize_locale_name( [ 'test@test' => 'test@test' ] ); array(1) { 'test@test' => string(8) ""testtest"" } }}} This is not uncommon for WordPress functions that rely upon `preg_replace()` and a number of other sanitize functions behave similarly. I would expect an array input to return either `''` as `array( .. )` is not a valid string." dd32 Old Tickets 60554 Add support for using only PHP translation files swissspidy I18N trunk normal normal 6.6 enhancement assigned has-patch 2024-02-15T19:18:41Z 2024-02-16T11:18:16Z "In WordPress 6.5 we're adding support for PHP translation files. They still require accompanying `.mo` and `.po` files. However, it doesn't have to be this way! It should be possible for projects (plugins, themes, and core) to only use `.l10n.php` files. A few areas that would need changing: **wp_get_installed_translations()** `wp_get_installed_translations()` is used for getting the list of installed translations for plugins/themes/core when updating language packs and also when uninstalling plugins/themes (to remove the translations again). **Language_Pack_Upgrader** `\Language_Pack_Upgrader::check_package()` checks whether there are `.mo` and `.po` in the language pack. It should also support language packs with only a `.l10n.php` file. **load_textdomain() / load_default_textdomain()** Not sure about this one. Right now you can pass an `.mo` file path, even though the file doesn't exist, and WordPress will load the `.l10n.php` counterpart. So technically no change is required. However, what if you want to directly pass an `.l10n.php` file path instead?" swissspidy Old Tickets 60429 Deprecated: Implicit conversion from float to int loses precision retrovertigo I18N normal minor Awaiting Review defect (bug) new 2024-02-03T02:42:48Z 2024-03-07T09:10:41Z "**Describe the bug** Running WordPress 6.4.3 this PHP warning comes up: {{{ Deprecated: Implicit conversion from float 4294967295 to int loses precision in /var/www/html/wp-includes/pomo/mo.php on line 208 }}} **To Reproduce** 1. Run WordPress 6.4.3 2. Switch on WP_DEBUG and WP_DEBUG_DISPLAY 3. Load the site 4. See warning printed out See https://github.com/LeoColomb/pomo/issues/16 for a screenshot. " retrovertigo 3 Days Ago 60788 Content-Disposition support in download_url() seems broken siliconforks HTTP API 6.4.3 normal normal Awaiting Review defect (bug) new 2024-03-16T01:12:30Z 2024-03-16T01:12:30Z " In https://core.trac.wordpress.org/changeset/51939 a change was made to resolve ticket https://core.trac.wordpress.org/ticket/38231 to make `download_url()` use the `Content-Disposition` header to specify the name of the downloaded file. I realize I'm a bit late to the party here since the ticket was opened more than 7 years ago and the change was made more than 2 years ago, but I think that this change was flawed and needs to be reconsidered (and possibly reverted entirely). The way it was implemented seems fundamentally broken and has the effect of making `download_url()` basically impossible to use reliably. Consider the following simple PHP script named `echo.php`: {{{#!php true` by default) be added to `$args` in `class WP_Http`. The option would affect `class Curl` under `function setup_handle` where `$data = http_build_query($data, '', '&');` It would then look like (or similar): class-wp-http.php (line 206): {{{#!php 'body' => null, 'query_body' => true, 'compress' => false, }}} class-wp-http.php (line 322): {{{#!php $options = array( 'query_body' => $parsed_args['query_body'], 'timeout' => $parsed_args['timeout'], }}} Curl.php (line 393): {{{#!php } elseif (!is_string($data)) { $data = $options['query_body'] ? http_build_query($data, '', '&') : $data; } }}} When I make these changes to my copy of WordPress, the API works and it does not affect the rest of the core." elzix Old Tickets 60565 download_url() returns inaccurate error message on missing URL argument hinnerk HTTP API 6.4.3 normal trivial 6.6 enhancement reviewing has-patch 2024-02-16T20:53:37Z 2024-02-19T19:48:29Z "Expected: {{{#!php array(1) { [""http_404""]=> array(1) { [0]=> string(14) ""Not Acceptable"" } } [""error_data""]=> array(1) { [""http_404""]=> array(2) { [""code""]=> int(406) [""body""]=> string(0) """" } } [""additional_data"":protected]=> array(0) { } } }}} see https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/file.php#L1214 {{{#!php Reading this message appears. The Privacy Page is NOT SELECTED. The homepage is another page and that is what is selected. There is nothing else in there. OctoTooT Last Week 60735 Problem: Updating failed. The response is not a valid JSON response r3ndy General 6.4.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2024-03-09T02:50:17Z 2024-03-09T12:20:40Z "I encountered an error message when publishing or updating. Due to a mistake in a wrong sentence, the error message appears. You will get the error message ""Updating failed. The response is not a valid JSON response"". Why did it happen? - WordPress 6.4.3 running theme GeneratePress. - .htaccess file according to wp settings - Permalinks postname settings - Already started with HTTPS - REST API no 404 error message" r3ndy Last Week 60732 Update old document URLs to new ones mkismy General normal minor 6.6 enhancement accepted commit 2024-03-08T15:53:24Z 2024-03-12T06:51:33Z "Some articles that was in https://wordpress.org/documentation/ was moved under https://developer.wordpress.org/advanced-administration/ and the old URLs has a redirect. However URLs in php files still refer to the old ones so I thought the URLs should be updated to avoid unnecessary redirects." mkismy Last Week 60717 Font Library: Add an ability to replace font oglekler General trunk normal normal Awaiting Review enhancement new 2024-03-07T03:31:40Z 2024-03-17T18:54:01Z Instead of the error or notice that the font already exists, the font library should allow replacing the font. Sometimes a font can be corrupted for some reason, and you need to update it. So, the better flow should be to ask the users if they want to replace the font(s). oglekler Last Week 60716 "Font Library: Replace error message ""A font face matching those settings already exists"" with notice" oglekler General trunk normal normal Awaiting Review defect (bug) new 2024-03-07T03:25:56Z 2024-03-17T18:53:45Z If the font already exists, it is not an error, and should not scare the user. oglekler Last Week 60700 Coding Standards fixes for WP 6.6 mukesh27 General normal normal 6.6 task (blessed) new has-patch 2024-03-06T05:03:13Z 2024-03-18T15:44:26Z "Previously: - #59650 (6.5) - #58831 (6.4) - #57839 (6.3) - #56791 (6.2) - #55647 (6.1) - #54728 (6.0) - #53359 (5.9) - #52627 (5.8) - #51799 (5.7) - #50767 (5.6) - #49542 (5.5) - #49222 (5.4) - #47632 (5.3) - #45934 (5.1)" mukesh27 Last Week 60699 Docblock improvements for 6.6 SergeyBiryukov General normal normal 6.6 task (blessed) new 2024-03-06T04:57:35Z 2024-03-11T14:06:52Z "Previously: - #59651 (6.5) - #58833 (6.4) - #57840 (6.3) - #56792 (6.2) - #55646 (6.1) - #54729 (6.0) - #53399 (5.9) - #52628 (5.8) - #51800 (5.7) - #50768 (5.6) - #49572 (5.5) - #48303 (5.4) - #47110 (5.3) - #46543 (5.2) - #42505 (5.1) - #41017 (4.9) - #39130 (4.8) - #37770 (4.7) - #32246 (4.6)" SergeyBiryukov Last Week 60698 Add optimized set lookup class. dmsnell General trunk normal normal Awaiting Review feature request new 2024-03-06T01:18:34Z 2024-03-06T01:18:34Z "In the course of exploratory development in the HTML API there have been a few times where I wanted to test if a given string is in a set of statically-known strings, and a few times where I wanted to check if the next span of text represents an item in the set. For the first case, `in_array()` is a suitable method, but isn't always ideal when the test set is large. {{{#!php contains( '¬in' ) ) { … } while ( true ) { $was_at = $at; $at = strpos( $text, '&', $at ); if ( false === $at ) { $output .= substr( $text, $was_at ) break; } $name = $named_character_reference->read_token( $text, $at ); if ( false !== $name ) { $output .= substr( $text, $was_at, $at - $was_at ); $output .= $named_character_replacements[ $name ]; $at += strlen( $name ); continue; } // No named character reference was found, continue searching. ++$at; } }}} ---- Further, because WordPress largely deals with large and relatively static token sets (named character references, allowable URL schemes, file types, loaded templates, etc…), it would be nice to be able to precompute the lookup tables if they are at all costly, as doing so on every PHP load is unnecessarily burdensome. A bonus feature would be a method to add and a method to remove terms. ---- In [https://github.com/WordPress/wordpress-develop/pull/5373 #5373] I have proposed such a `WP_Token_Set` and used it in [https://github.com/WordPress/wordpress-develop/pull/5337 #5337] to create a spec-compliant, low-memory-overhead, and efficient replacement for `esc_attr()`. The replacement `esc_attr()` is able to more reliably parse attribute values than the existing code and it does so more efficiently, avoiding numerous memory allocations and lookups." dmsnell Old Tickets 60674 Reducing WordPress archive weight sebastienserre General normal normal Awaiting Review defect (bug) new dev-feedback 2024-03-02T10:36:48Z 2024-03-02T20:59:49Z "I've opened an issue on Github but, it's also surely easiest to duplicate it here to follow up it. The main idea f this ticket is to find a way to reduce the WordPress archive zip file. --- Github Description --- Over the year, WordPress archives weight have increased and... I think we can't change this but we can surely do something on old feature which are no more used. I know the backward compatibility is something really important to the WP leads eyes but we can't continue (IMO)to as 43% of the web to download files always heavier. Maybe we could work with Core team to determine which functions are no more used and deprecated from years. Removing them will make WordPress liter. I think to Classic editor, We could move all the classic editor features to the Classic Editor plugin. It would make the archive liter for the most part of the new users. Features would always be available thanks to the plugin. https://github.com/WordPress/sustainability/issues/30" sebastienserre Old Tickets 60656 Add Linktree icon to social icons options tingc888 General 6.4.3 normal normal Awaiting Review feature request new 2024-02-29T08:15:58Z 2024-02-29T08:15:58Z Linktree, Carrd, etc are becoming more popular. I'd like to include a social icon link for these, but most espcially Linktree in my situation. tingc888 Old Tickets 60652 font_dir filter enters an infinite loop if wp_get_upload_dir() is used in the filter callback mmaattiiaass General trunk normal normal 6.5 defect (bug) reopened has-patch 2024-02-28T13:20:40Z 2024-03-19T01:58:08Z "Calling wp_get_upload_dir() inside a font_dir filter callback produces an infinite loop. Use this snippet and try to install a font using the font library to reproduce the issue: {{{#!php Export menu. Originally reported here: https://github.com/WordPress/gutenberg/issues/59109" mmaattiiaass Old Tickets 60600 found some spelling mistakes azimjamshed General normal normal WordPress.org defect (bug) reviewing 2024-02-22T11:47:53Z 2024-02-22T12:10:41Z "I found some spelling mistakes in the WordPress Plugin documentation No.1 ---- https://developer.wordpress.org/plugins/shortcodes/shortcodes-with-parameters/#parsing-attributes:~:text=shortcode.%20In%20the-,exampe,-above%2C%20it%20will It will be - ""example"" not exampe. No.2 ---- https://developer.wordpress.org/plugins/internationalization/how-to-internationalize-your-plugin/#basic-strings:~:text=To%20echo%20a,instead%20of%20writing%3A and it will be ""translation"" not tranlsation. " azimjamshed Old Tickets 60583 Custom Fields: Two options are displayed by default wildworks General normal normal Awaiting Review defect (bug) new 2024-02-20T15:26:09Z 2024-02-20T15:26:09Z "In WordPress 6.5, whether you are using the Classic Editor or Block Editor, you will see two options in the custom field select box: - footnotes - origin In WP6.4, these two options are not displayed. My guess is that these two should be used internally and do not appear to be user-editable fields." wildworks Old Tickets 60579 Notice: Undefined index: name in /wp-includes/class-wp-roles.php on line 293 mrsize General 6.4.3 normal minor Awaiting Review defect (bug) new has-patch 2024-02-20T09:56:44Z 2024-02-21T10:26:47Z "[[Image(http://servtest.ovh/notice-wp.jpg)]] I have some notices on my dashboard, and fix the bug by modifying the function in core file, line 279 : {{{#!php roles ) ) { return; } $this->role_objects = array(); $this->role_names = array(); foreach ( array_keys( $this->roles ) as $role ) { // Vérifier si 'name' est défini pour le rôle actuel if ( isset( $this->roles[ $role ]['name'] ) ) { $this->role_objects[ $role ] = new WP_Role( $role, $this->roles[ $role ]['capabilities'] ); $this->role_names[ $role ] = $this->roles[ $role ]['name']; } else { // Gérer le cas où 'name' n'est pas défini (éventuellement définir une valeur par défaut) $this->role_objects[ $role ] = new WP_Role( $role, $this->roles[ $role ]['capabilities'] ); $this->role_names[ $role ] = 'Nom par défaut'; } } /** * Fires after the roles have been initialized, allowing plugins to add their own roles. * * @since 4.7.0 * * @param WP_Roles $wp_roles A reference to the WP_Roles object. */ do_action( 'wp_roles_init', $this ); } }}} " mrsize Old Tickets 60572 block_core_navigation_render_inner_blocks loses caret for parent items anaid General 6.4.3 normal minor Awaiting Review defect (bug) new 2024-02-19T12:18:58Z 2024-02-25T10:35:35Z "When we build a menu via the blocks editor the regular way, and create a parent menu items with a submenu, the parent menu item is (somehow) marked as a parent. It receives a caret automatically in Twenty Twenty Four theme. When programmatically creating a menu via `block_core_navigation_render_inner_blocks`, the parent-child relationship is not marked automatically. There is no dropdown caret in the parent menu item. Reproduction scenario: - Twenty Twenty Four theme - Go to Editor and manually create Navigation - Parent item ""Post A"" - Add a submenu - Child item ""Post B"" - View the website. Post A is parent, has a dropdown caret and Post B is below it Now, do it programmatically via block_core_navigation_render_inner_blocks: {{{ function block_core_navigation_render_inner_blocks($items) { return new WP_Block_List(array( new WP_Block([ 'blockName' => 'core/navigation-link', 'attrs' => [""label"" => ""Post A""], 'innerBlocks' => array(new WP_Block([ 'blockName' => 'core/navigation-link', 'attrs' => [""label"" => ""Post B""], 'innerBlocks' => [], 'innerHTML' => '', 'innerContent' => [], ])), 'innerHTML' => '', 'innerContent' => [], ]) )); } }}} View the website. There is no dropdown caret applied to the parent post (Post A)" anaid Old Tickets 60556 Link Box Half Off Left Side Of Screen hmnvtn General normal normal Awaiting Review defect (bug) new 2024-02-16T05:22:24Z 2024-02-16T05:22:24Z "If a link is near the left side of the screen, and you need to check the ""open in new tab"" box, often you can't because the link box is half off the left side of the screen. The only solution right now is to open your browser window to full-screen or space the link away from the left side of the page, add the variables, and then delete the spaces." hmnvtn Old Tickets 60546 Posts link management in post editor sidebar shaugatashraf98 General normal normal Awaiting Review feature request new 2024-02-15T10:24:12Z 2024-02-15T10:24:12Z Currently, in a post, when I add links, I have to manually manage the links. For example if I want to open all the links in a new tab, then I have to manually find them and then mark the checkbox. Instead, if all the added links were displayed in a section in the sidebar of the post editor window (similar to [this image]https://drive.google.com/file/d/1PlOlQ4_gG6eMC34Txk_iYGT60zzA1qhQ/view?usp=sharing), then it would be easier to manage all the links. shaugatashraf98 Old Tickets 60538 Missing wp-includes/css/classic-themes.min.css stylesheet bilalmughl General trunk normal normal Awaiting Review defect (bug) new close 2024-02-14T10:20:31Z 2024-02-14T15:35:10Z "== Bug Report === Description A warning is being displayed when adding new pattren using Hello Elementor 3.0.1 Theme. Warning: file_get_contents(/wordpress/wp-includes/css/classic-themes.min.css): Failed to open stream: The specified file or directory does not exist in /wordpress/wp-includes/script-loader.php on line 14 Warning: Cannot modify header information - headers already sent by (output started at /wordpress/wp-includes/script-loader.php:14) === Environment - WordPress: 6.5-beta1 - PHP: 8.0.30-dev - Server: PHP.wasm - Database: WP_SQLite_Translator (Server: 5.5 / Client: 3.40.1) - Browser: Chrome 121.0.0.0 - OS: Windows 10/11 - Theme: Hello Elementor 3.0.1 - MU Plugins: * 0-playground.php * 0-sqlite.php * WordPress WXZ Exporter 0.1 - Plugins: * Create Block Theme 1.13.8 * Debug Bar 1.1.4 * Health Check & Troubleshooting 1.7.0 * Test Reports 1.1.0 * User Switching 1.7.2 * WordPress Importer Git loader 0.8.2 === Steps to Reproduce 1. x. 🐞 Bug occurs. === Expected Results 1. ✅ The new pattern should be added without any warnings. === Actual Results 1. ❌ Warnings are displayed: Warning: file_get_contents(/wordpress/wp-includes/css/classic-themes.min.css): Failed to open stream: The specified file or directory does not exist in /wordpress/wp-includes/script-loader.php on line 14 Warning: Cannot modify header information - headers already sent by (output started at /wordpress/wp-includes/script-loader.php:14) === Additional Notes - This issue occurs when using Hello Elementor 3.0.1 Theme while attempting to add a new pattern. === Supplemental Artifacts Screenshot: https://take.ms/Ca9Rv Video: https://take.ms/QP6Yd" bilalmughl Old Tickets 60502 remove_function method removing next priority action too while removing current priority amritanshatwisetr General 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-12T12:03:58Z 2024-02-19T19:49:32Z "{{{ add_action('my_custom_hook', 'mycustomfunc1',9); add_action('my_custom_hook', 'mycustomfunc2',99); add_action('my_custom_hook', 'mycustomfunc3',100); function mycustomfunc1(){ echo 'mycustomfunc1
'; } function mycustomfunc2() { echo 'mycustomfunc2
'; remove_action('my_custom_hook', 'mycustomfunc2',99); } function mycustomfunc3() { echo 'mycustomfunc3
'; } add_action('wp', function(){ do_action('my_custom_hook'); exit; }); }}} Hi everyone, I found a strange behaviour from the WP core related to remove_action, here when we are removing `mycustomfunc2` and the `mycustomfunc3` automatically getting removed generating output like this- https://imgur.com/Y3aMVfF Appreciate if this being checked, initially it seems to be a clear bug. I can ensure I am using WP version 6.4.3 with no change in core files. " amritanshatwisetr Old Tickets 60486 Theme Export: Update the way we replace the version number. scruffian General normal normal Awaiting Review defect (bug) new has-patch 2024-02-09T13:25:03Z 2024-02-09T13:25:49Z "Updates the way we update the version number so it works when the version number is greater than 10. This was raised in https://github.com/WordPress/gutenberg/pull/40106/files/3ef38c98a083a382ca1490be535ba1ea314b49e8#r1479956056 GitHub PR: https://github.com/WordPress/wordpress-develop/pull/6076" scruffian Old Tickets 60452 @category tag is considered deprecated by phpDocumentor henry.wright General normal normal Awaiting Review defect (bug) new dev-feedback 2024-02-07T01:24:38Z 2024-02-23T23:27:59Z "The @category tag is used in wp-includes/class-json.php. According to phpdoc.org it is deprecated and isn't recommended. Ref https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/category.html > This tag is considered deprecated and support may be removed in a future version of phpDocumentor. It is recommended to use the @package tag's ability to provide multiple levels instead." henry.wright Old Tickets 60451 @subpackage tag is considered deprecated by phpDocumentor henry.wright General normal normal Awaiting Review defect (bug) new 2024-02-07T01:13:08Z 2024-02-07T01:13:08Z "The @subpackage tag is considered deprecated by phpDocumentor. Instead, the @package tag supports multiple levels. Source https://docs.phpdoc.org/3.0/guide/references/phpdoc/tags/subpackage.html > This tag is considered deprecated and support may be removed in a future version of phpDocumentor. It is recommended to use the @package tag's ability to provide multiple levels instead." henry.wright Old Tickets 60450 Button component is missing has-text class when text prop is used mmcalister General 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-06T22:03:33Z 2024-02-06T22:03:33Z "When using the [Button](https://developer.wordpress.org/block-editor/reference-guides/components/button/) component, adding text to the button will output the `has-text` class on the button. Alternatively, the Button component has a text prop that displays the given text inside the button, but when used, the prop does not output the `has-text` class on the button. {{{