__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' => '
',
] );
}
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.
{{{
}}}
For those who use the `text` prop, this creates a styling inconsistency and does not take advantage of the core `has-text` styling. The expected outcome would be that using the `text` prop outputs the `has-text` class on the button. ",mmcalister
Old Tickets,60449,Number system,raniak,General,,normal,normal,Awaiting Review,feature request,new,reporter-feedback,2024-02-06T21:57:43Z,2024-02-09T03:03:43Z,"I have looked everywhere and have been doing so for months. I still can't find the solution.
The numbering system starts again at 1 when I want it to continue in between images of titles. There has got to be a fix for this bug. Many people as I saw in my research for a solution are having the same problem. Please advice. ",raniak
Old Tickets,60445,We created a button and the website does not work and we cant log into wp admin for the website,cdawg029,General,,normal,critical,Awaiting Review,defect (bug),new,,2024-02-06T13:09:00Z,2024-02-06T13:09:00Z,"It seemed like when we added a button using HTML, CSS, and JavaScript, it worked fine. We integrated the RecruiterFlow API that was given to us by the RecruiterFlow team. We used PHP to interact with the API. The whole idea was to make a button that could open a pop-up window where one could import their CV and it would go straight to RecruiterFlow. When we tested it a couple of times and fixed bugs and logic issues, after more tests, we discovered that we couldn't access the WordPress dashboard directly from the Believe resourcing website. When trying to log into ""believeresourcing.com/wp-admin,"" I get an error referring to a JSON whitespace error. I can not access WordPress at all from the website, and when trying to log into believeresourcing from WordPress directly, I get an invalid password error.",cdawg029
Old Tickets,60443,Site crashes when attempting to swap template,chwinekawatches,General,,normal,normal,Awaiting Review,defect (bug),new,reporter-feedback,2024-02-05T17:51:53Z,2024-02-07T08:34:53Z,"Error: Minified React error #185; visit https://reactjs.org/docs/error-decoder.html?invariant=185 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.
at ul (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/vendors/react-dom.min.js?m=1706747918i&ver=18:1:82573)
at er (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/vendors/react-dom.min.js?m=1706747918i&ver=18:1:52952)
at H (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/compose/index.min.js?m=1706747918i&ver=454f32655f7e573fedaf:1:24429)
at https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/compose/index.min.js?m=1706747918i&ver=454f32655f7e573fedaf:1:24918
at H (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/compose/index.min.js?m=1706747918i&ver=454f32655f7e573fedaf:1:24429)
at https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/compose/index.min.js?m=1706747918i&ver=454f32655f7e573fedaf:1:24918
at Or (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/vendors/react-dom.min.js?m=1706747918i&ver=18:1:72976)
at qr (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/vendors/react-dom.min.js?m=1706747918i&ver=18:1:75017)
at $r (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/vendors/react-dom.min.js?m=1706747918i&ver=18:1:74857)
at qr (https://s0.wp.com/wp-content/plugins/gutenberg-core/v17.6.0/build/vendors/react-dom.min.js?m=1706747918i&ver=18:1:75614)",chwinekawatches
Old Tickets,60440,Fix limitation on tags/categories.,elenadosil,General,6.4.3,normal,normal,Awaiting Review,defect (bug),new,,2024-02-05T12:30:24Z,2024-02-05T12:30:24Z,"There is a hard limit of 20 tags returned. If a site has many many tags that include a specific string, when they use the type and search functionality in WordPress they don't get all the tags they expect returned.
Another limitation of how it currently works is; because it only returns max 20 results, the user tends to create a new tag when that tag already exists (but was not included in the 20 suggested results) so we get many duplicate tags.
The specific request is to alter the tag search functionality to return more tag results or offer the ability to return paged results.
We can see that default (20) is set here: https://github.com/WordPress/gutenberg/blob/2e01f2208e1e43492236684315f1654cb54e2973/packages/editor/src/components/post-taxonomies/flat-term-selector.js#L31",elenadosil
Old Tickets,60430,Spell enqueuing consistently,shailu25,General,,normal,trivial,Awaiting Review,defect (bug),new,has-patch,2024-02-03T14:44:20Z,2024-02-27T21:45:58Z,"Small Typo corrections in below files (Inline Documents)
- In wp-includes/widgets/class-wp-widget-custom-html.php Line no 58
- In wp-includes/script-loader.php line no 2430
- In wp-includes/widgets/class-wp-widget-text.php line no 47
{{{
enqueueing
}}}
it should be
{{{
enqueuing
}}}
",shailu25
Old Tickets,60423,Correct documentation for WP_Block_Parser_Frame class,jigar bhanushali,General,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2024-02-02T09:33:10Z,2024-02-02T15:33:06Z,"In the DocBlocks for the `__construct` of the class, the `@param` missing null type for `$prev_offset` and `@leading_html_start`",jigar bhanushali
Old Tickets,60422,We created a button and the website does not work and we cant log into wp admin for the website,cdawg029,General,,normal,normal,Awaiting Review,defect (bug),new,,2024-02-02T06:22:47Z,2024-02-02T06:22:47Z,"It seemed like when we added a button using HTML, CSS, and JavaScript, it worked fine. We integrated the RecruiterFlow API that was given to us by the RecruiterFlow team. We used PHP to interact with the API. The whole idea was to make a button that could open a pop-up window where one could import their CV and it would go straight to RecruiterFlow. When we tested it a couple of times and fixed bugs and logic issues, after more tests, we discovered that we couldn't access the WordPress dashboard directly from the Believe resourcing website. When trying to log into ""believeresourcing.com/wp-admin,"" I get an error referring to a JSON whitespace error. I can not access WordPress at all from the website, and when trying to log into believeresourcing from WordPress directly, I get an invalid password error.",cdawg029
Old Tickets,60418,Unwanted commented code,asgmehra,General,6.4.3,normal,normal,Awaiting Review,defect (bug),new,has-patch,2024-02-01T19:44:41Z,2024-02-06T11:28:18Z,"There are unwanted PHP commented code line showing when I update the wordpress theme. Test case: I have commented html code with PHP comment syntax in theme's functions.php file and then I start the theme to update on the ""Updates"" page. But when theme is updated, that commented code showing at top (Screenshot attached). I don't know it is a bug or not.",asgmehra
Old Tickets,60414,Core PHP autoloader proposal,aristath,General,,normal,normal,Awaiting Review,enhancement,new,has-patch,2024-02-01T13:15:07Z,2024-03-13T12:31:34Z,"Using a PHP autoloader can improve performance, and can be seen as a first step towards modernizing the WP codebase in the future.
This ticket is a continuation of the discussion on [https://core.trac.wordpress.org/ticket/36335 #36335]
The discussion in the original ticket was derailed many times, so this fresh ticket is an opportunity to discuss the Core proposal submitted on the [https://make.wordpress.org/core/?p=110295 Make blog]",aristath
Old Tickets,60384,Security Issues on one of the website,nagaraj987,General,,normal,major,Awaiting Review,enhancement,new,,2024-01-30T16:44:39Z,2024-01-30T16:44:39Z,"Hi,
I would like know what all are the security recommendations which needs to be enable in wp-engine as one of my website has hosted in wp-engine, so I want to be sure my website should be secure and it should be with recommended security configurations.
Could you please help me to provide those details asap, please let me know if need any more details like my website details.
The user ID which we are using is vendorrelations@releasepoint.com for wp-engine.",nagaraj987
Old Tickets,60371,get_home_path fails in headless mode.,fishpig,General,6.4.2,normal,normal,Awaiting Review,defect (bug),new,,2024-01-29T14:43:32Z,2024-01-29T14:43:32Z,"The core get_home_path function is incorrect when in a headless mode and siteurl and home are different.
The easy fix for this is to just add a filter to the return value so that we can return ABSPATH",fishpig
Old Tickets,60366,add call_for_blog for easy to switch blog and restore in multisite,denishua,General,,normal,normal,Awaiting Review,enhancement,new,,2024-01-29T09:48:09Z,2024-01-29T09:48:09Z,"add call_for_blog for easy to switch blog and restore in multisite
{{{
function call_for_blog($blog_id, $callback, ...$args){
try{
$switched = (is_multisite() && $blog_id && $blog_id != get_current_blog_id()) ? switch_to_blog($blog_id) : false;
return call_user_func_array($callback, $args);
}finally{
if($switched){
restore_current_blog();
}
}
}
}}}
usage:
{{{
call_for_blog(123, 'wp_update_post', ['ID'=>$id, 'post_title'=>$title]);
}}}
closure callback:
{{{
for_blog($shop_blog_id, function($id, $title){
$result = some_function();
if(is_wp_error($result)){
return $result;
}
$result = some_other_function();
if(is_wp_error($result)){
return $result;
}
return wp_update_post(['ID'=>$id, 'post_title'=>$title]);
}, $id, $title);
}}}
",denishua
Old Tickets,60355,Can't save object to metadata with `readonly` properties,Cawa-93,General,,normal,minor,Future Release,enhancement,new,needs-docs,2024-01-26T15:45:41Z,2024-02-12T21:52:11Z,"If I have class with `readonly` property
{{{#!php
$property_value ) {
$value->$property_name = map_deep( $property_value, $callback ); // <---------
}
}}}
",Cawa-93
Old Tickets,60352,Fix the architectural design of `/wp-includes/blocks/index.php`,azaozz,General,5.5,normal,normal,6.6,defect (bug),new,early,2024-01-26T00:15:33Z,2024-02-17T13:45:35Z,"Follow-up to #55067.
Generally the `*.php` files in all ""include"" directories are meant to be ""included"" in other files as the name suggests, not loaded directly. This is true for `/wp-includes` too. In addition these include-only files should not contain any ""loose"" PHP code that runs in the global scope, only functions and classes. These are pretty simple and easy to follow architectural PHP rules that ensure all code works well and avoid some exploit vectors.
However `/wp-includes/blocks/index.php` doesn't seem to be following them, similarly to many of the other files in the `blocks` directory. As far as I see this should be considered as a PHP code architecture bug and should be fixed. The changes should ensure that there is no output or errors when that file is loaded directly.",azaozz
Old Tickets,60328,Deprecated parameter default value of unregister_setting() is not correct type,crstauf,General,,normal,normal,Awaiting Review,defect (bug),reviewing,has-patch,2024-01-23T15:26:46Z,2024-01-29T15:23:34Z,"> The parameter callable `$deprecated` cannot default to an empty string. It must either default to `null` or the type has to be changed to `callable|string`.
-- Reported by gerardreches via User Contributed Notes.",crstauf
Old Tickets,60317,Cannot select an author from dropdown due to truncated users list,yanksyoon,General,,normal,major,Awaiting Review,defect (bug),new,reporter-feedback,2024-01-22T14:19:54Z,2024-02-28T05:41:29Z,"Hello team!
Currently, when we have over 50 users with same email signatures, e.g. over 50 users with email `@zemail.com` (with usernames starting with characters preceding z), and there is a user with username `zemail`, the user `zemail` can never appear in the dropdown since the request made by the dropdown
`http:///index.php?rest_route=%2Fwp%2Fv2%2Fusers&context=view&who=authors&per_page=50&_fields=id%2Cname&search=zemail&_locale=user` is sorted alphabetically.
This makes it impossible for the user to be selected as an author of a new post.
Would the search be better limited to usernames?",yanksyoon
Old Tickets,60311,Editing interface prompts error,chengjianping,General,,normal,normal,Awaiting Review,defect (bug),new,,2024-01-21T14:59:49Z,2024-01-21T14:59:49Z,"Error: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.
at Qr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:74697)
at Qr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:74770)
at Qr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:74770)
at Xr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:79821)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76707)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76584)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:78007)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76584)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76896)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76584)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76699)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76584)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76699)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76584)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76699)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76584)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76699)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76584)
at Yr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76896)
at Kr (https://bjhxrm.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.2.0:10:76",chengjianping
Old Tickets,60308,Inconsistent return of urls / get_bloginfo() vs get_template_directory_uri(),luckyfella73,General,6.4.2,normal,normal,Awaiting Review,defect (bug),new,,2024-01-20T11:07:32Z,2024-01-20T11:07:32Z,"It doesn't seem to happen in all server environments but on a WP instance hosted on IONOS (former 1&1) I get unexpected returns when using: `get_template_directory_uri()`
* I'm calling the page including `https:` and `www.` in the browser.
* I have `WP_HOME` and `WP_SITEURL` configured having the `www.` included.
* All urls relating to the page in the database have `www.` included.
* `wp-admin/options-general.php` shows the `www.` in both urls
When trying to load assets (js files) using `get_template_directory_uri()` to build the full url-path the `www.` is omitted. Due to crossdomain restrictions the files don't get loaded of course.
After looking at my configuration to find the error I might have done I found out that I get the domain with `www.` included when using `get_bloginfo('url')`.
`get_bloginfo('stylesheet_url')` on the other hand does not return `www.` in the url. That is unexpected to me.
{{{#!php
get_template_directory_uri(): "" . $get_template_directory_uri . """");
// returns 'www.'
$get_bloginfo_url = get_bloginfo('url');
echo (""
get_bloginfo('url'): "" . $get_bloginfo_url . ""
"");
// returns no 'www.'
$stylesheet_url = get_bloginfo('stylesheet_url');
echo (""
"");
}}}
Environment:
* WordPress 6.4.2 (latest the time of writing)
* all plugins deactivated
* PHP 8.1.27
",luckyfella73
Old Tickets,60492,Gallery crashes if images have caption.,newtonu,Gallery,6.4.3,normal,normal,Awaiting Review,defect (bug),new,,2024-02-10T14:39:43Z,2024-02-10T20:55:45Z,"Every time I try to add a gallery in the post with images that has the caption field filled up, the gallery crashes. If I try to create a gallery without the caption field it works as expected.
After the gallery is created and added to the post, I can use the caption field normally.",newtonu
Old Tickets,60436,Cannot create large Tiled Albums - causes crash,amdphreak,Gallery,6.4.3,normal,blocker,Awaiting Review,defect (bug),new,,2024-02-05T06:28:13Z,2024-02-05T06:28:13Z,Cannot create Tiled Album Gallery with large numbers of images. It crashes the editor on a fast 16GB RAM system. Browser tab slows to a crawl and crashes.,amdphreak
Yesterday,60793,wp_trigger error has a wrong wp_kses $allowed_html arguement.,nico23,Formatting,6.4,normal,normal,Awaiting Review,defect (bug),new,has-patch,2024-03-18T02:04:16Z,2024-03-18T02:15:45Z,"Elements and attributes need to be array keys, not values.
Came with: https://core.trac.wordpress.org/changeset/56707
Fix: https://github.com/WordPress/wordpress-develop/pull/6285",nico23
Old Tickets,60544,Allow individual blocks to be excluded from `excerpt_remove_blocks()`,jeremyfelt,Formatting,trunk,normal,normal,Awaiting Review,enhancement,new,,2024-02-14T23:16:54Z,2024-02-14T23:16:54Z,"In `excerpt_remove_blocks()`, it is possible to to filter the list of block names that should be included when generating excerpt text.
It should also be possible to selectively exclude (or include) individual blocks based on their individual attributes.
For this to work, a new filter would need to be inserted in `excerpt_remove_blocks()` and `_excerpt_render_inner_blocks()`.
I think it would then be enough to check with the existing logic as:
{{{
if (
in_array( $block['blockName'], $allowed_blocks, true )
&& apply_filters( 'excerpt_allowed_block', true, $block )
)
}}}
Then, if I added a custom attribute to a core (e.g. paragraph) block, I could add a filter to return `false` when that attribute was detected.
The current alternative for this is unhooking `wp_trim_excerpt()` from `get_the_excerpt()` entirely and then reusing it as forked code with an alternate version of `excerpt_remove_blocks()`.",jeremyfelt
Old Tickets,60391,links_add_base_url will encode all attribut in null passed in,pbearne,Formatting,,normal,normal,Awaiting Review,defect (bug),new,has-patch,2024-01-30T23:23:31Z,2024-01-30T23:41:44Z,,pbearne
Old Tickets,60689,Concerning use of external libraries,warui1738,External Libraries,,normal,normal,Awaiting Review,feature request,new,dev-feedback,2024-03-05T08:20:16Z,2024-03-05T10:17:53Z,"As you get more advanced in using wordpress the need arises to use external libraries like bootstrap,font library,icon libraries,tailwind etc,off course this can be added using insert code plugins.the biggest disadvantage of this is that
1.you cannot maintain libraries version
2.You cannot delete the libraries.
This problem can be solved through a feature request to create an interface to manage external libraries.In this feature:
1.User adds external libraries through a url
2.user can edit the libraries url
3.user can delete the libraries,libraries ceases to exist in the wordpress environment
4.Ability of the interface to distinguish/or give user opportunity to distinguish between and