Stars ticket summary owner component _version priority severity milestone type _status workflow _created modified _description _reporter 49820 Input and select elements are misaligned in the admin area Administration 5.4 normal trivial Awaiting Review defect (bug) new 2020-04-05T16:36:03Z 2020-04-13T07:38:57Z When placed side by side with inline select boxes, input elements are vertically misaligned in the admin area. Setting vertical-align to middle after line 78 of the /wp-admin/css/forms.css file – similarly to how select boxes are defined later in this stylesheet – seems to fix the problem. luigipulcini 1 45874 Content Section is overlapping the menu background valentinbora* Administration 5.0.2 normal trivial Awaiting Review enhancement accepted reporter-feedback 2019-01-09T12:36:13Z 2024-01-17T20:19:39Z "Hi, Just uploading some content into WordPress dashboard and saw a little layout bug, I'm not sure if it is kept like this but I thought, maybe it should be behind the menu background completely. As I have uploaded a screenshot, once the menu height finishes then the content is showing below. it should be behind the menu bar. [[Image(http://ahmadgulzar.com/wpscr.png)]] it can be fixed by just changing z-index of #adminmenuback from 1 to 3 {{{ #adminmenuback { position: fixed; top: 0; bottom: -120px; z-index: 3; } }}} Thanks " ahmadgulzar 2 54857 "New column ""template"" in pages/""screen options"" (enhancement)" Administration normal trivial Awaiting Review enhancement new 2022-01-19T11:15:03Z 2022-05-18T13:55:48Z " With WP5.9 FSE themes, editable “templates” are introduced . Therefore, in the list of “Pages” should now be a new column that displays the selected template name for each page. I suggest to offer a new checkable column option “Templates” within Pages/“Screen Options” to get a better overview of the assigned templates. " iStag 24795 OS X Treatment Administration 3.6 normal trivial Future Release enhancement new has-patch 2013-07-18T15:54:01Z 2017-02-05T14:09:10Z "Just a minor annoyance. Certain things are inherently different about using a Mac over any other Operating system. Specific to my case is keymappings. While I suspect most Mac users are smart enough to read ""Ctrl + A"" and translate that to ""CMD + A"", we should be explicit when we can. This patch inrtroduces pluggable function is_osx() that is really basic. Sadly, relies on User Agents and so is inherently flawed, but mainly useful anyway. Using this function, the Permalinks Options screen uses Command A instead of CTRL A when .htaccess is not writable. A little thing but annoying enough to warrant a patch." technosailor 46354 Update Count - Value Should Change as Updates are Applied Administration 5.1 low trivial Future Release enhancement new dev-feedback 2019-02-26T22:58:59Z 2020-02-14T10:54:33Z "The Update Count, shown in the Admin Bar, and the Admin Menu (against 'Dashboard' > 'Updates', and optionally against 'Plugins') should change to reflect the outstanding number of Updates available as Updates are Applied, whether they are applied individually on the Plugin Screen, or in bulk through the Updates Screen. This is not a high priority issue at all, but an extremely minor cosmetic change. I suspect that Javascript could be used to change the value as an Update completes successfully in any scenario. " Lucanos 44910 function for discriminating during auto saving Autosave normal trivial Awaiting Review feature request new has-patch 2018-09-07T05:33:12Z 2018-09-07T06:01:17Z "I want a function to distinguish auto saving like **wp_doing_cron** or **wp_doing_ajax**. The following code can be simplified. before {{{ if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) { //do something } }}} after {{{ if ( wp_doing_autosave() ) { //do something } }}} " mt8.biz 59458 Duplicate PHP version in PHPUnit job names on GitHub Actions Build/Test Tools low trivial Future Release defect (bug) new 2023-09-26T14:00:05Z 2023-10-16T09:20:06Z "1. Go to [https://github.com/WordPress/wordpress-develop/commits/trunk Commits] page. 2. Click on any of the GitHub Actions result icons (a green check mark or a red cross mark). 3. Note the duplicate PHP version in the job names, e.g.: {{{ PHPUnit Tests / PHP 7.0 / PHP 7.0 / MariaDB 10.11 PHPUnit Tests / PHP 7.0 / PHP 7.0 / MariaDB 10.11 multisite PHPUnit Tests / PHP 7.0 / PHP 7.0 / MariaDB 10.4 PHPUnit Tests / PHP 7.0 / PHP 7.0 / MariaDB 10.4 multisite PHPUnit Tests / PHP 7.0 / PHP 7.0 / MariaDB 10.6 PHPUnit Tests / PHP 7.0 / PHP 7.0 / MariaDB 10.6 multisite ... }}} The same is displayed in GitHub Actions checks on individual PRs. Appears to be related to [56439]." SergeyBiryukov 58547 Twenty Seventeen: Calendar block header cells should be centered Bundled Theme 6.2.2 normal trivial Awaiting Review defect (bug) new dev-feedback 2023-06-15T17:51:49Z 2023-06-15T19:01:32Z "The th elements in the Calendar block are not centered like the rest of the text in the Calendar which looks odd. " nkeller15 55994 Twenty Seventeen: Header image zooms in when scrolling down on Mobile Safari Bundled Theme normal trivial Awaiting Review defect (bug) new close 2022-06-16T14:44:08Z 2024-03-28T08:57:15Z "Steps to replicate - Open TwentySeventeen demo site in Mobile Safari (https://twentyseventeendemo.wordpress.com). - Watch the header image as you scroll down the page. (Note that this only seems to happen in Mobile Safari, and doesn't appear in Chrome/Safari on the desktop even with a small window) The header image zooms in slightly when scrolling down, providing a jarring experience for the viewer. The header image should not change size when scrolling. Originally reported here: https://github.com/Automattic/themes/issues/678" mrfoxtalbot 46233 Twenty Sixteen: Theme includes Screen Reader Text inside Card Bundled Theme low trivial Awaiting Review defect (bug) new reporter-feedback 2019-02-11T12:47:41Z 2021-10-26T23:35:14Z The function twentysixteen_entry_meta includes the screen reader text inside the span property using the author mf class. That means when parsed it would say, 'Author David Shanske' The screen reader text should be inside the byline span but outside the author vcard span. dshanske 45741 Theme block style dependencies while enqueuing Bundled Theme 5.0.2 normal trivial Awaiting Review enhancement new 2018-12-22T13:17:50Z 2021-11-30T16:02:34Z "Bundled themes enqueue a block style, such as /css/blocks.css in twentytwelve. These css rules sometimes overwrite the rules in the files with handles ''wp-block-library'' and ''wp-block-library-theme'' While the dependencies seem to be maintained, for the sake for completeness, shouldn't dependencies be made explicit in bundled themes' functions.php files? For example, dependencies in this enqueue? {{{ wp_enqueue_style( 'twentytwelve-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentytwelve-style' ), '20181018' ); }}} " superpoincare 1 55112 Twenty Twenty-Two: Button design Bundled Theme 5.9 normal trivial Awaiting Review enhancement new has-patch 2022-02-08T10:22:04Z 2022-02-08T14:44:45Z "It seems button elements are not styled in Twenty Twenty-Two such as {{{ }}} The browser default button appears with such code. It would be great if they have a style like other default themes. " umchal 60462 Twenty Twenty: Cover template overflows browser bar on mobile Bundled Theme normal trivial Awaiting Review enhancement new has-patch 2024-02-07T14:36:50Z 2024-02-07T23:32:42Z "Hey there! Twenty Twenty's cover template fills the whole background with the article image. This works as expected on desktop. On mobile however, some content gets covered by the browser bar. Replacing ''vh'' with ''dvh'' fixes that: {{{#!css .screen-height { min-height: 100dvh; } }}}" twiddler 50026 Twenty Twenty: Full height with short content Bundled Theme normal trivial Awaiting Review enhancement new dev-feedback 2020-04-28T22:35:16Z 2023-06-21T23:01:09Z "With the `twentytwenty` theme, when the height of the content in a page does not fill up the entire viewport, the page ends up with extra trailing whitespace. If we treat the `` as a flex box the page will always be filled: {{{ body { display: flex; flex-direction: column; min-height: 100vh; } main#site-content { flex: 1 } }}} " beaucollins 2 58189 post_type parameter in update_post_caches() accepts more than a single post type Cache API normal trivial Awaiting Review defect (bug) new has-patch 2023-04-25T09:16:03Z 2023-07-16T05:57:03Z In `update_post_caches()`, the `post_type` parameter is documented as only accepting a single post type, which is inaccurate. It actually accepts a single post type, 'any' for any post type, and also an array of post types. DrewAPicture 1 45417 Lack of actions when wp_cache_flush is called Cache API normal trivial Future Release enhancement new dev-feedback 2018-11-26T14:08:25Z 2018-12-02T22:48:40Z "The function definition of wp_cache_flush doesn't have a do_action call, and neither does WP_Object_Cache->flush. https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/cache.php#L97 https://core.trac.wordpress.org/browser/tags/4.9.8/src/wp-includes/cache.php#L498 I want to be able to run additional code whenever the object cache is flushed but currently I can't. Fixing this should be as trivial as adding {{{ do_action('wp_cache_flush'); }}} to the function definition of wp_cache_flush. I don't care about the name of the action or if it runs before or after the flush, I'd just like to have this functionality in the core. Preferably before WordPress 6.0. " k1sul1 1 51725 Canonical redirect and user_trailingslashit() Canonical 5.5.2 normal trivial Awaiting Review defect (bug) new needs-unit-tests 2020-11-07T01:06:54Z 2024-01-25T11:39:58Z "Hi, this bug is quite difficult to spot and it appears only when ''redirect_canonical()'' function is used to force the canonical redirect on front page and the trailing slashes are not added to the permalinks. Happily it is nothing serious. **How to reproduce this bug?** **Step 1. Remove the trailing slashes from WP permalinks:** First of all, you need to use ""Custom structure"" mode in Permalinks settings and remove the trailing slash (''/%postname%/'' => ''/%postname%'') in the adjacent input field. Therefore, the value of ''$wp_rewrite->use_trailing_slashes'' is changed to false. **Step 2. Trigger the canonical redirect on front page** Now let's disable the feed URL by redirecting the visitors trying to access it: {{{#!php ''http://example.com''). The problem is that the PHP notice is displayed then: ''Notice: Undefined index: path in /var/www/vhosts/maciejbis.net/example.com/wp-includes/canonical.php on line 576
'' I guess that the source of the problem is here (line 501): https://core.trac.wordpress.org/browser/tags/5.5.1/src/wp-includes/canonical.php#L501 {{{#!php $redirect['path'] = user_trailingslashit( $redirect['path'] ); }}} Unfortunately because of ''user_trailingslashit()'' function, the slash is removed and value is set to ''null''. The value of `$redirect['path']` should not be changed in this particular case (value '/' should be preserved). My first suggestion is to exclude ''user_trailingslashit()'' function there and not use it when value of `$redirect['path']` variable is just a single slash '/': {{{#!php $redirect['path'] = ( $redirect['path'] === '/' ) ? $redirect['path'] : user_trailingslashit( $redirect['path'] ); }}} Another idea is to do the same but directly in ''user_trailingslashit()'' function: https://core.trac.wordpress.org/browser/tags/5.5.1/src/wp-includes/link-template.php#L51 Basically this piece of code: {{{#!php if ( $wp_rewrite->use_trailing_slashes ) { $string = trailingslashit( $string ); } else { $string = untrailingslashit( $string ); } }}} can be replaced with: {{{#!php if ( $wp_rewrite->use_trailing_slashes ) { $string = trailingslashit( $string ); } else if ( $string !== '/' ) { $string = untrailingslashit( $string ); } }}} " mbis 51508 Fix for canonical.php Canonical 2.3 normal trivial Awaiting Review enhancement new 2020-10-13T12:20:40Z 2020-11-15T07:09:35Z "In extremely rare cases it is impossible to determine the path {{{#!php wp_dtl_exam_results * -> wp_dtl_exam_resultmeta */ function example_database_creation_for_wordpress_trac() { global $wpdb; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); $charset_collate = $wpdb->get_charset_collate(); $table_name = $wpdb->prefix . 'dtl_exam_resultmeta'; // MY ERROR IS: PRIMARY KEY (answer_id), // IT SHOULD BE: PRIMARY KEY (meta_id), // But the dbDelta function doesn't notice that, and says it created a table when it didn't. $sql = <<'; echo 'The table creation SQL:' . ""\n\n""; echo $sql; echo ""\n -- \n""; // This should give some warning or at least say table creation failed. It doesn't. It says the table was created. echo 'dbDelta results: ' . ""\n\n""; if ( $result ) foreach( $result as $m ) echo $m . ""\n""; else echo '(no results from dbDelta)'; echo ""\n -- \n""; // This should show the table name by checking information_schema, but it's an empty array echo 'Table query from INFORMATION_SCHEMA, this should show the table name: ' . ""\n\n""; $table_exists = $wpdb->get_results( ""SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '"". DB_NAME .""' AND TABLE_NAME = '"". $table_name .""';"" ); var_dump( $table_exists ); echo ''; exit; } example_database_creation_for_wordpress_trac(); }}} " radgh 58180 Specify the REGEXP format for meta_query Database 6.2 normal trivial Awaiting Review enhancement new needs-docs 2023-04-24T05:47:20Z 2023-08-01T11:33:44Z "Because of the fact that `meta_query` parameter with `['compare' => 'REGEXP', 'key' => 'foo', 'value' => '^bar']` working as substitution to raw SQL-request like `... foo.meta_key REGEXP ^bar ...` please, specify this explicitly in the [https://developer.wordpress.org/reference/classes/wp_meta_query/ documentation] - especially the fact that this REGEXP should not be wrapped in `/`" letraceursnork 46366 Posted Date - Field Arrangement - Reflect Locale Format OR Combine Fields Date/Time 5.1 normal trivial Awaiting Review enhancement new 2019-02-27T23:01:22Z 2019-05-27T17:19:04Z "In the ""Quick Edit"" form, as well as the Classic Editor's ""Publish"" Metabox, show 5 fields for entering the Publish Date for a Page/Post. [Month (Select)] [Day (Text)], [Year (Text)] @ [Hour (Text)]:[Minutes (Text)] This is the American format, with Month first, but is not a common format outside of the US. Even when the Date format is changed in Settings, that selected format is not used to arrange the Date Entry fields noted above. Suggestion: Integrate a JS Library which allows DateTimes to be entered in various formats, in a single field, and then be processed to produce a value in the format which is required. Example: I should be able to write a DateTime as ""2019-2-28 10:00"" and for that to be converted to ""2 Feb 2019 10AM""." Lucanos 53791 Small UI annoyance in block editor Editor normal trivial Awaiting Review defect (bug) new 2021-07-27T01:52:57Z 2021-07-27T02:29:05Z "When you have a paragraph block selected and click outside the paragraph block, the paragraph block stays selected but the righthand menu quickly jumps from Block to Post to Block, creating a flash of content which provides a bad user experience. See my short video (0:42) for a demonstration: https://www.youtube.com/watch?v=FpRg4vC8W2E" curtiskessler 53630 Prior State Recall for Panes in Editor (Collapse/Expanded) Editor 5.7.2 normal trivial Awaiting Review enhancement new 2021-07-08T18:54:18Z 2021-07-08T18:54:18Z "Background: I recently interacted with a site creator who posted this topic in the WordPress.org support forums: https://wordpress.org/support/topic/add-new-post-screen-layout/ Upon further exploration, I noted that it is possible to toggle various panes (especially pertaining to plugin features) to display or not display. However, if you toggle them to display (the default setting), the editor screen/viewport can become quite small, as much real estate is reserved for these panes. If a user toggles the panes to NOT display, it is not ideal, as they may need access to these panes sporadically. A possible solution would be to enable state memory. Essentially, each pane can be expanded or collapsed using a small arrow in the top right of the pane already. Screenshot: https://cloudup.com/cgzDJjk4UWu MY FEATURE REQUEST: Remember the state of each pane so that when the user returns to the editor, the various panes are in their last state (expanded or collapsed)." dansoschin 1 57626 Searches to add a link in post-edit, to be sortable/filterable to better find tags Editor normal trivial Awaiting Review enhancement new reporter-feedback 2023-02-03T14:30:14Z 2023-03-20T13:51:02Z "Currently when adding a link to a post, I can search for a term and get back a mix of posts, pages and tags. This is the intended behaviour. However, if the search term I am using is broad (e.g. 'Movies') and there are more than 20 posts on my site featuring the word Movies (this is often the case for a broad term), then WordPress will prioritise returning me 20 search results that are all posts, and will not return the Movies tag. This is a general sorting issue, the search function prioritises posts over tags. I'd like see a change where an exact tag match would always appears as the top result. If not, then an option to filter the search, perhaps with checkboxes to show Posts/Pages/Tags etc." joshduffetywong 1 46226 PeerTube 'automatic' embed Embeds normal trivial Future Release feature request new reporter-feedback 2019-02-10T14:55:06Z 2019-09-03T18:42:12Z "Would it be possible to add support for automatic Peertube embeds, the same as YouTube embeds work. https://peertube.video/videos/watch/217eefeb-883d-45be-b7fc-a788ad8507d3 " haywardgb 58663 Emoji: Consider eliminating expiry-based invalidation of wpEmojiSettingsSupports sessionStorage cache Emoji 6.3 lowest trivial Future Release defect (bug) new 2023-06-28T20:06:05Z 2023-07-19T16:09:30Z "Currently the results of the emoji-loader's tests for whether or not emoji are supported get cached in the browser's `sessionStorage` for 1 week. For most users, this expiration will never be reached since the browser tab would be closed and the `sessionStorage` cleared anyway. For the minority of users who keep a single tab open for weeks at a time, including those who restore tabs after installing an OS update, there can be scenarios where (1) the OS or Twemoji was updated to support emoji but the cache causes Twemoji to still be loaded, or (2) the emoji support was not changed and yet the browser re-checks support after a week unnecessarily. See [https://github.com/WordPress/wordpress-develop/pull/4562#discussion_r1243983163 GitHub pull request discussion] for more context and possible solutions. Nevertheless, as of #58472 the emoji tests have been greatly optimized so the cost of re-calculating support unnecessarily is not a meaningful performance hit, especially since ever since emoji support was introduced until now, the tests were being run on every page load anyway. This may not be worth the effort to resolve." westonruter 7 46227 Add Rel-Feed Link to Header Feeds low trivial Future Release enhancement reviewing needs-unit-tests 2019-02-10T17:35:29Z 2021-05-13T20:03:29Z "When the front page is not the posts page, proposing that Core add a link in the header to the actual posts page, using the rel=feed designator. https://blog.whatwg.org/feed-autodiscovery Example This would allow a system to figure out where the posts page is." dshanske 59729 By setting int to the parameter of the function path_is_absolute(), a Notice will always be output. Filesystem API 2.5 normal trivial Awaiting Review defect (bug) new 2023-10-25T10:12:11Z 2023-10-25T10:12:11Z "I found this problem from my client's server logs. The simplest way to reproduce it is as follows. {{{ % wp eval 'var_dump(path_is_absolute(1));' PHP Warning: Trying to access array offset on value of type int in /var/www/html/wp-includes/functions.php on line 2123 Warning: Trying to access array offset on value of type int in /var/www/html/wp-includes/functions.php on line 2123 PHP Warning: Trying to access array offset on value of type int in /var/www/html/wp-includes/functions.php on line 2133 Warning: Trying to access array offset on value of type int in /var/www/html/wp-includes/functions.php on line 2133 bool(false) }}} This occurs because the first character of String is processed as an array within the function. The client had written code like this: {{{ $new_path = path_join( $path, get_the_ID() ); }}} I think get_the_ID() should be cast to String, but why not make the function return False if it's not a String as well?" mt8.biz 2 45702 make_clickable() doesn't handle linked text being a URL with spaces within it Formatting low trivial Future Release defect (bug) new needs-unit-tests 2018-12-19T07:22:42Z 2019-04-03T16:39:31Z "As reported in https://meta.trac.wordpress.org/ticket/3998 > {{{ > https://codex.wordpress.org/Roles and Capabilities > }}} > turns into: > {{{ > https://codex.wordpress.org/Roles and Capabilities > }}} > Looks like either `make_clickable()` or `bbp_make_clickable()` is trying to make the URL clickable without taking the existing `` tag into account. As I've commented on the ticket: ---- This is a problem in `bbp_make_clickable()`, but is also present in `make_clickable()`. Given the input string of `https://codex.wordpress.org/Roles and Capabilities` both will return the invalid output. Both contain the following to correct it: {{{ return preg_replace( '#(]+?>|>))]+?>([^>]+?)#i', ""$1$3"", $r ); }}} But as the resulting HTML is the following it's not matched (due to the `` - which assumes that neither the linked text never has spaces or isn't a URL) {{{ https://codex.wordpress.org/Roles and Capabilities }}} Adjusting the regular expression to the following does work however for this specific case: {{{ return preg_replace( '#(]+?>|>))]+?>([^>]+?)([^<]*)#i', ""$1$3$4"", $r ); }}} As a work around, you can remove the spaces from the linked text, which avoids it: `https://codex.wordpress.org/Roles and Capabilities`. ---- Also created https://bbpress.trac.wordpress.org/ticket/3237" dd32 60138 make_clickable() processing emails start with www. incorrectly. Formatting normal trivial Awaiting Review defect (bug) new changes-requested 2023-12-22T10:23:05Z 2024-02-15T16:25:53Z make_clickable() processes www.blablabla.bla@gmail.com email as ftp address and appends https:// instead of mailto: olyahryhorenko17 60814 several typo corrections in formatting.php file audrasjb* Formatting normal trivial 6.6 defect (bug) accepted commit 2024-03-20T17:06:23Z 2024-03-20T17:36:50Z "several typo corrections in wp-includes/formatting.php file inline comments `parethesis` -> `parenthesis` `paretheses` -> `parentheses` `puctuation` -> `punctuation`" shailu25 59169 Deprecated arguments description is a bit misleading. General normal trivial Awaiting Review defect (bug) new close 2023-08-22T23:31:30Z 2023-08-23T09:39:10Z "Here: https://developer.wordpress.org/reference/functions/get_bloginfo/ in the description of the function “Deprecated arguments include: ‘siteurl’ – Use ‘url’ instead” is a bit misleading. “‘siteurl’ – Use ‘wpurl’ instead” is correct." sulemanhelp 1 51768 In documentation, replace references to 'list' with 'array' General normal trivial Awaiting Review defect (bug) new 2020-11-13T11:28:48Z 2020-11-14T15:00:02Z "In ticket #39049, a patch was submitted to replace the word 'list' with 'array' in one function. On that ticket, there was a [https://core.trac.wordpress.org/ticket/39049#comment:2/ comment] saying that ""the terms array and list are often used interchangeably in documentation throughout WordPress core. In fact, searching for ""a list of"" in core returns almost 150 results."" For this ticket, replace all occurrences of 'list' in function documentation with 'array'. " johannadevos 43654 "Silence ""JQMIGRATE: Migrate is installed with logging active, version x.y.z""" General low trivial Awaiting Review defect (bug) new close 2018-03-28T14:56:40Z 2021-11-17T19:05:55Z "jQuery Migrate annoyingly announces itself in the console when it loads. This message is not useful. Can we silence it? `JQMIGRATE: Migrate is installed with logging active, version 1.4.1`" markjaquith 60430 Spell enqueuing consistently 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 1 60818 Typo in wp-admin/includes/class-pclzip.php General normal trivial 6.6 defect (bug) new commit 2024-03-21T12:33:40Z 2024-03-21T15:14:14Z "If we go through wp-admin/includes/class-pclzip.php on line number 51 we can see it is mentioned "" reserved for **''futur''** use "". It should be ""reserved for ''**future**'' use""" nithins53 60070 Typo in wp-includes/class-json.php General normal trivial Awaiting Review defect (bug) new dev-feedback 2023-12-14T10:25:56Z 2024-01-27T21:12:45Z "If we go through wp-includes/class-json.php on line number 186 we can see it is mentioned: ""multibye"". It should be ""multibyte""." jayadevankbh 1 56905 css media query issue General 6.0.3 normal trivial Awaiting Review defect (bug) new reporter-feedback 2022-10-25T13:24:22Z 2022-10-25T16:29:28Z "The media queries used for the responsivness for mobile use a max-width of 767px and the min-width for the tablet one is 768px. However max-width is exclusiv so when the screen is exactly 767px you are neither in mobile or tablet mode. Unfortunately, when i put a window in half screen mode it is precisely 767px so this number is not that odd and other user could experience the same issue. (Tested on wordpress 6.0.3 and google chrome)" damien4444 1 59330 Improvement in wp_parse_args for mutli-dimensional arrays General 6.3.1 normal trivial Awaiting Review enhancement new has-patch 2023-09-12T13:36:22Z 2023-09-17T15:54:28Z "I noticed the function doesn't work well when multi-dimensional arrays are present: Example: Consider having following default params and settings. {{{ $defaults = array( 'settings' => array( 'option1' => 'default-value-1', 'option2' => 'default-value-2' ) ); $settings = array( 'settings' => array( 'option1' => 'new-value-1', ) ); $return = wp_parse_args($settings, $defaults); }}} The above example will return: {{{ Array ( [settings] => Array ( [option1] => new-value-1 ) ) }}} It will completely ignore the option2 key. My suggestion is to update wp_parse_args from: {{{ if (is_array($defaults) && $defaults) { return array_merge($defaults, $parsed_args); } }}} with: {{{ if ( is_array( $defaults ) && $defaults ) { return array_replace_recursive($defaults, $parsed_args); } }}} " Stachethemes 55330 Set global_styles_svg_filters transient to return true causing symbol `1` to be appeared on the screen in a production mode General 5.9.1 normal trivial Awaiting Review enhancement new 2022-03-07T18:14:12Z 2022-03-08T06:49:37Z "WordPress 5.9.1 PHP 8.0.15 When I set `global_styles_svg_filters` to return true (to prevent from being set - I don't use `theme.json` but request is sending so I want to disable it) it renders `1` at the top of the website Steps to reproduce on TwentyTwentyTwo theme: 1. Paste these lines in `functions.php` {{{#!php 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 1 49356 Add hook into get_user_locale() I18N 5.4 normal trivial Awaiting Review enhancement new dev-feedback 2020-02-04T10:09:30Z 2020-03-19T11:17:49Z "Hey there Like its friend get_locale(), get_user_locale() could benefit of a filter hook named ""user_locale"". What do you think?" juliobox 54716 """Remember me"" label changed to ""Keep me logged in""" Login and Registration 2.0 normal trivial Awaiting Review enhancement new 2021-12-31T22:36:46Z 2022-02-20T22:29:05Z "I think the label ""Remember me"" to be misleading. The default ""Remember Me"" checkbox behaviour is: >If checked your browser keeps you logged in for 14 days. >If unchecked you're logged out when you quit the browser, or after two days. The checkbox function is not to remember the user identity, but to keep the authentication valid. The task of remembering the user credentials is on the browser. I think that ""Keep me logged in"" would be clearer and more consistent with other services around the internet. ""Keep me logged in on this computer"" is even more accurate. There are variation on the wording, like [Keep me|Stay][logged in|signed in]. Twenty years ago I would just have suggested to add a tooltip (title) with an explanation, but it has already been established in #24766 that title attributes are to be phased out. Amazon uses a full blown popup to explain the function of the checkbox. [[Image(amazon-signin.png)]] Although a totally minor issue I would like to have a discussion about this. " Cyberchicken 49328 Add filter/action to append link to the login form footer inside the #login container Login and Registration normal trivial Awaiting Review enhancement new 2020-01-30T09:40:26Z 2020-01-30T22:07:05Z "At the moment, when using login_footer action, you can add the HTML at the bottom of login page. I think it can be useful to be able also to add some message or custom links to the #nav or #backtoblog area of the login form. At the moment, the only way is to use the hack described [here](https://wordpress.stackexchange.com/questions/99251/how-do-you-add-a-custom-link-to-the-wordpress-login-page) and it doesn't work for not English pages." oksanaromaniv 1 48951 email_too_short is not good email validation candidate Mail 5.4 low trivial Awaiting Review feature request new dev-feedback 2019-12-12T14:23:07Z 2020-08-09T18:18:07Z "Currently, both `is_email` and `sanitize_email` will invalidate/sanitize valid emails: {{{#!php 'admin@mailserver1' 'm@m' }}} Both are valid emails. ICANN just discourages using them. The problem comes when you work with decoupled WordPress, and the front end is using custom validation that allows such emails, but WordPress doesn't so you don't have consistent behavior. Plus this is just wrong, as the official specification allows such mails. https://en.wikipedia.org/wiki/Email_address#Valid_email_addresses " dingo_d 2 54091 Attachment details pane navigation not working after opening 81st (or greater) item and refreshing the browser antpb Media 5.8 normal trivial 6.6 defect (bug) assigned dev-feedback 2021-09-08T19:02:34Z 2024-03-27T15:26:10Z "Setup: - clean 5.8; - twentytwentyone active; - no plugins active. Steps to reproduce: - open media page; - click on the 41st item in the list; - notice the left arrow is enabled (which is to be expected, since there are previous items); - refresh the page. Notice the left arrow now - it's disabled. Not sure if this is intended, but since the item isn't loaded (in the grid), there's no previous but there's only next, which points to the first item. Clicking the right arrow goes to the it and you can't go back to the previous item." ppetrov2c 54452 Image Aspect Ratio on resize Media 5.8.2 normal trivial Awaiting Review enhancement new 2021-11-16T10:54:08Z 2021-11-16T10:54:08Z "With the picture block the css resize the picture width but never the height so it break is aspect ratio. Just need to add a height: auto to .wp-block-image img ." edgarwes 47237 Used different escape function on options-media.php Media normal trivial Awaiting Review enhancement new has-patch 2019-05-11T16:02:00Z 2019-05-11T16:33:37Z "I have checked the options-media.php file and found two different escape function. Example: {{{ 1) "" class=""regular-text code"" /> 2) "" class=""small-text"" /> }}} " dilipbheda 1 47436 Menu depth doesn't affect menu-item-has-children Menus 5.2.1 normal trivial Awaiting Review defect (bug) new 2019-05-30T17:19:32Z 2021-08-21T22:47:18Z "Hi, When you add a depth of 1 to wp_nav_menu it removes all the sub menus, but it leaves menu-item-has-children class on the original menu li tags, which means it is styled like it has a dropdown." mikeybinns 7 19272 Add Filter to Nav Menu Support Themes Text bhargavbhandari90 Menus normal trivial Future Release enhancement assigned needs-docs 2011-11-16T22:47:52Z 2022-07-01T09:51:33Z "Frameworks could use a filter here to customize the message: `_n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations )`. For example, it may be the child theme that doesn't support the menus. Also, if none are supported (say via add_theme_support), then when it's zero, it says: ""Your theme supports 0 menus. Select which menu appears in each location."" (which doesn't make much sense). So adding a filter can enable theme developers to further customize. An example use case: {{{ add_filter( 'nav_menu_theme_support_text' , 'wps_nav_menu_theme_support_text' ); function wps_nav_menu_theme_support_text ( $num_locations ) { if ( $num_locations == 0 ) $text = 'Your child theme does not support custom menus.'; else $text = _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ); return $text; } }}}" wpsmith 1 56599 """All"" view not selected for all relevant views for custom post type" Posts, Post Types 4.2 normal trivial Awaiting Review defect (bug) new has-patch 2022-09-19T10:58:34Z 2022-09-19T14:24:10Z When the screen options get saved, the parameter `mode=list` gets appended to the URL. For the posts table, the “All” view gets the `.current` HTML class, since `\WP_Posts_List_Table::is_base_request()` returns `true`. For all other post types—including pages—it returns `false`. alpipego 1 35538 "AllPosts page UI: link ""All"" has incorrect color" Posts, Post Types 4.4.1 normal trivial Awaiting Review defect (bug) new 2016-01-19T23:15:48Z 2023-07-09T20:45:45Z "STEPS TO REPRODUCE: 1) Log in (administrator), remove all posts. 2) Create new post. Go to AllPosts page. 3) Remove post to trash by clicking ""Trash"" menu item. EXPECTED RESULT: ""All (0)"" link color #000 ACTUAL RESULT: ""All (0)"" link color #0073aa" antonrinas 60646 Docs: Incorrect return type specified for get_post_custom with negative post ID value 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 1 44270 Non-public custom post types have rewrite rules enabled by default Posts, Post Types normal trivial Awaiting Review defect (bug) new has-patch 2018-05-29T22:02:32Z 2018-10-03T17:54:46Z "Is there a reason for the pairing of `public => false` with `rewrite => true` for default custom post type arguments? If there isn't can we change the default `rewrite` to inherit `public` at runtime? I often see a large rewrite rules array from plugin/theme private post types not declaring `rewrite => false` - if there's no need for them seems bit of a waste - a default WP install is 17 rules per post type, 17 possible unnecessary regex checks per-request. Usually it's two or three CPTs I see per site and they stack up quick." TheDeadMedic 1 46423 Posts on wp-admin page should be ordered by date_gmt and not date Posts, Post Types normal trivial Awaiting Review defect (bug) new 2019-03-05T19:28:23Z 2021-02-08T16:37:24Z "I believe the dates should be ordered by the absolute value of time (ie, UTC time) instead of by timezone. To illustrate, Current post sequence > Two [@ UTC 1900 (my timezone is set to New York UTC-5 1300)] > One [@ UTC 1800 (my timezone is set to UTC 1800)] Since 1300 is before 1800. Ordered by my `date` ---- Proposed post sequence > One [@ UTC 1800 (my timezone is set to UTC 1800)] > Two [@ UTC 1900 (my timezone is set to New York UTC-5 1300)] Since 1800 is before 1900. Ordered by absolute `date_gmt`." nickylimjj 1 43372 $wp_query->max_num_pages return value as float Query 4.9.4 normal trivial Awaiting Review defect (bug) new 2018-02-20T16:32:40Z 2022-02-10T15:13:40Z "As a page number, Integer would make more sense than Float. This is not a big problem but kinda annoying when you do strict comparison on this value. since no one will define a page number as float." ironghost63 1 46285 Search colums of WP User Query vars is not updated after applying user_search_columns filter Query 4.9.8 normal trivial Awaiting Review defect (bug) new 2019-02-20T08:21:54Z 2019-02-20T08:21:54Z While preparing the query variables of WP_User_Query , it appears that, after applying user_search_columns filter, the possibly modified array search_columns in WP_User_Query->query_vars argument is not updated . wonderyan 49555 Reorder WP_Query methods for a more logical placement Query normal trivial Future Release enhancement new 2020-03-01T18:03:01Z 2020-03-01T18:22:05Z "Conditional tag functions were initially ordered alphabetically in the source files. With some changes over the years, new functions were introduced and placed next to the closest related function. Now the order is mixed, and the placement of some individual functions like `is_month()` makes no sense in the overall structure. It would be helpful if the methods were ordered in a more logical manner, perhaps based on the [https://developer.wordpress.org/reference/classes/wp_query/#parameters Parameters] section of the DevHub reference, though that could also use some improvement. For the record, the current order is as follows: ||=In `wp-includes/query.php`=||=In `wp-includes/class-wp-query.php`=|| ||`is_archive()`||`::is_archive()`|| ||`is_post_type_archive()`||`::is_post_type_archive()`|| ||`is_attachment()`||`::is_attachment()`|| ||`is_author()`||`::is_author()`|| ||`is_category()`||`::is_category()`|| ||`is_tag()`||`::is_tag()`|| ||`is_tax()`||`::is_tax()`|| ||(moved to `deprecated.php`)||`::is_comments_popup()`|| ||`is_date()`||`::is_date()`|| ||`is_day()`||`::is_day()`|| ||`is_feed()`||`::is_feed()`|| ||`is_comment_feed()`||`::is_comment_feed()`|| ||`is_front_page()`||`::is_front_page()`|| ||`is_home()`||`::is_home()`|| ||`is_privacy_policy()`||`::is_privacy_policy()`|| ||`is_month()`||`::is_month()`|| ||`is_page()`||`::is_page()`|| ||`is_paged()`||`::is_paged()`|| ||`is_preview()`||`::is_preview()`|| ||`is_robots()`||`::is_robots()`|| ||`is_favicon()`||`::is_favicon()`|| ||`is_search()`||`::is_search()`|| ||`is_single()`||`::is_single()`|| ||`is_singular()`||`::is_singular()`|| ||`is_time()`||`::is_time()`|| ||`is_trackback()`||`::is_trackback()`|| ||`is_year()`||`::is_year()`|| ||`is_404()`||`::is_404()`|| ||`is_embed()`||`::is_embed()`|| ||`is_main_query()`||`::is_main_query()`||" SergeyBiryukov 8 53450 [WP_Meta_Query] Add faster LIKE based 'STARTSWITH' and 'ENDSWITH' compare modes for value query Query normal trivial Future Release enhancement new needs-docs 2021-06-18T15:57:59Z 2022-09-20T14:56:48Z "Currently the ""LIKE"" compare mode for meta value compares is only usable for ''contains'' queries as it always adds wildcards around all queries {{{LIKE '%query%'}}}. This makes one use the more complex REGEXP compare mode for queries which easily could be written with {{{LIKE '%query'}}} or {{{LIKE 'query%'}}}. As LIKE is faster than REGEXP it is preferable to use LIKE. See: http://billauer.co.il/blog/2020/12/mysql-index-pattern-matching-performance/ In addition people don't have to use the much more complex regex. Which tends to introduce errors in my experience as most people just copy & paste but do not understand how regex really works (not meant as an offense). So REGEXP should be avoided if possible. I would suggest naming the new compare types {{{STARTSWITH}}} and {{{ENDSWITH}}}. Also adding their {{{NON ...}}} counter parts to match up the ''LIKE'' behaviour. **Maybe** also add an alias for ''LIKE'' named {{{CONTAINS}}} as the current naming ''LIKE'' suggests that you could pass in the wildcards yourself. Which is not the case and thus misleading. But this is just for the sake of the tickets completenes. The pull request only contains code and tests for the new modes. As an alternative I thought about reworking the current LIKE mode to allow custom wildcard passing. But this will clearly break backward compat and thus I discarded this approach." janthiel 1 56168 Add a way easily perform advanced post fields queries Query normal trivial Awaiting Review feature request new 2022-07-07T13:12:12Z 2022-07-07T13:12:12Z "Currently if you want to perform advanced queries on the posts table you have to add your custom SQL to the query with the `posts_where` filter. For example, let's say we want to get the next page with a `menu_order` value greater than the current page we would currently do something like: {{{#!php query['menu_order_gt'] ?? null; if ( is_numeric( $value ) ) { $where .= "" AND {$wpdb->posts}.menu_order > {$value} ""; } return $where; }, 10, 2 ); $query = new WP_Query( [ 'post_type' => 'page', 'posts_per_page' => 1, 'menu_order_gt' => (int)get_post_field( 'menu_order' ) ] ); }}} I suggest adding a class like `WP_Meta_Query` but for post fields meaning we could achieve the same result as above but in a much cleaner and simpler way... {{{#!php 'page', 'posts_per_page' => 1, 'field_query' => [ [ 'field' => 'menu_order', 'value' => (int)get_post_field( 'menu_order' ), 'compare' => '>', 'type' => 'NUMERIC' ] ] ] ); }}} " thelevicole 57753 Quickedit characters on date fields Quick/Bulk Edit 6.1.1 normal trivial Awaiting Review defect (bug) new 2023-02-17T09:45:45Z 2023-02-22T20:51:17Z "I know this isn't a massive issue as content editors should use their common sense, but it seems like a user can enter random characters into the date/times via quick edits - Select a post - Press ‘Quick Edit’ - Try to insert letters, special characters in the ‘year’, ‘month’, ‘hour’, ‘minutes’ fields - Press ‘Enter’ " garbagedisco 60426 Update WP_Test_REST_TestCase::assertErrorResponse() to allow custom failure messages 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 52320 Empty entries in WP_Scripts 'extra' field Script Loader 4.5 normal trivial Awaiting Review defect (bug) new 2021-01-18T08:55:06Z 2021-02-23T18:56:23Z "When WordPress registers all the scripts in `wp_default_scripts()` the `add_inline_script()` will often add `false` to the extra field of the script. That `false` value does not do anything and can be easily removed by comparing against empty data from `get_data()` in `add_inline_script()`. Doesn't look like this has any effect on anything, as `false` values will later on be ignored. But this will save a few extra bytes of memory. Steps to verify: * Get the `$wp_scripts` global * Check some registered scripts, for example `$wp_scripts->registered->editor->extra['after']`. It will have two array values - one is `false` and one is the actual data `window.wp.oldEditor = window.wp.editor;` Or via debugging by putting a breakpoint in `wp-includes/class.wp-scripts.php` in `add_inline_script()` for `$script = (array) $this->get_data( $handle, $position );`" vanyukov 56335 use hash_equals to check password hash Security normal trivial Awaiting Review enhancement new close 2022-08-04T22:43:13Z 2022-10-12T18:14:08Z "today in wp-includes/class-phpass.php under function CheckPassword we find {{{ # This is not constant-time. In order to keep the code simple, # for timing safety we currently rely on the salts being # unpredictable, which they are at least in the non-fallback # cases (that is, when we use /dev/urandom and bcrypt). return $hash === $stored_hash; }}} and while i agree that a constant-time comparison is probably not needed, it's a trivial change to fix it, and better safe than sorry. I suggest changing it to {{{ if(PHP_VERSION_ID >= 50600){ return hash_equals($stored_hash, $hash); } else { # This is not constant-time. In order to keep the code simple, # for timing safety we currently rely on the salts being # unpredictable, which they are at least in the non-fallback # cases (that is, when we use /dev/urandom and bcrypt). return $hash === $stored_hash; } }}} PHP_VERSION_ID was introduced in 5.2.7, and i doubt WordPress still need to support PHP5.2. Unsure if WordPress still support 5.5? if the answer is no, the entire PHP_VERSION_ID can be removed. " hanshenrik 2 48051 Keeping default theme but removing inactive themes? Site Health normal trivial Awaiting Review enhancement new 2019-09-16T16:46:18Z 2019-09-16T16:50:22Z "Let me start by saying the default site-health report under Tools > Site Health is quite useful. Many of my clients have praised the addition by the WP team! However, while studying the site health report undert Tools >> Site Health on a couple of clients websites I found something interesting in the confusing type of way…. when there are unused themes it says “Remove inactive themes” then when you remove all unused themes it switches over and says “Have default theme available” I understand the reason it suggests this but why not add text in the “remove unused themes” suggestion accordion that says “keep one default theme” or something to that effect. Personally, I would make the accordion title say ""Keep one default theme, remove all other unused themes"". But that is just me. This is a trivial thing that would make the report a bit more useful to inexperienced users. " binarywc 2 53252 Track WP-CLI version in Site Health wpscholar Site Health 5.8 normal trivial Awaiting Review enhancement assigned dev-feedback 2021-05-21T18:32:45Z 2022-09-05T21:20:07Z Currently, there is no data about WP-CLI in Site Health. Assuming that WP-CLI is present, we should display the version number in the Site Health info tab. wpscholar 1 53572 "An ""acknowledged"" category for site health check for things managed outside of WordPress" Site Health 5.1 normal trivial Awaiting Review feature request new 2021-07-01T08:45:49Z 2021-10-16T21:16:54Z "I'd like to have an option to acknowledge single elements of the site health check or an option to mark them as read and done. Reason for this is that my managed wordpress hoster disables some features like the wordpress in-built updater to manage updates centralized and not from within the wordpress backends hosted by him. That's why wp_version_check() is disabled, but not that much of a problem to have it permanently affecting the site health. So the site health check should have more categories: something like ""done"" and an ""ignored"" (or ""acknowledged"") and and ""to do"" while ignored should affect the score as if it is done." paradonym 5 51211 Implement a consistent function to obtain the sitemap location Sitemaps 5.5.1 normal trivial Awaiting Review enhancement new has-patch 2020-09-02T01:52:56Z 2023-12-28T11:22:44Z "Would it be possible to implement a function that returns the active XML sitemap location? With so many major plugins choosing to disable the WP core sitemap to continue using their own, it is difficult for others to easily know which is actually being used– especially if those plugins have the option of disabling their sitemap functionality (which means we can't simply detect if the plugin is active to know). Notable sitemap locations: - **WordPress Core:** wp-sitemap.xml - **Yoast SEO:** sitemap_index.xml - **The SEO Framework:** sitemap.xml Perhaps the function can be as simple as applying a filter inside that plugins can hook into to modify the location? Something like the following: {{{ function get_sitemap_uri(){ return (string) apply_filters('sitemap_uri', home_url('/') . 'wp-sitemap.xml'); } }}} " GreatBlakes 50556 "Special characters in Theme Name in ""Add Themes"" page" Themes normal trivial Awaiting Review enhancement new has-patch 2020-07-04T08:02:13Z 2020-07-07T04:31:50Z "A lot of themes has special characters e.g. `&` in their name. It doesn't look good when those are being replaced in the ""Add Themes"" page with their Character Reference counterpart like `&`. [[Image(https://i.imgur.com/Weatfga.png)]] This patch aims to fix the issue." itowhid06 53298 Checking if wp-config-sample.php file exists before checking if wp-config.php exists Upgrade/Install 5.7.2 normal trivial Awaiting Review defect (bug) new dev-feedback 2021-05-29T20:34:43Z 2023-07-12T06:17:11Z "Currently in WordPress core, wp-admin/setup-config.php checks if wp-config-sample.php file exists before checking if wp-config.php exists. If the sample file exists, it then checks if the wp-config.php file exists, and if so, suggests deletion if necessary. For security, some WordPress users may delete the sample file, and restrict open_basedir for directory above that of the web root directory. Because of these two cases, the current order produces the follow error: `PHP message: PHP Warning: file_exists(): open_basedir restriction in effect. File(/var/www/example/wp-config-sample.php) is not within the allowed path(s): (/var/www/example/web:/var/www/example/private:/var/www/example/tmp:/tmp:...) in /var/www/example/web/wp-admin/setup-config.php on line 46` If the check for existence of sample file could be moved after checking if wp-config.php exists, we could avoid this error and avoid checking if sample file exists if wp-config.php does and not checking both if they both do. i.e. Moving the section commented `Support wp-config-sample.php one level up, for the develop repo.` to after the section commented `Check if wp-config.php exists above the root directory but is not part of another installation.` in `wp-admin/setup-config.php`" machineitsvcs 1 49014 Silence set_time_limit() call in wp-admin/includes/class-wp-upgrader.php Upgrade/Install normal trivial Awaiting Review defect (bug) reopened 2019-12-17T15:39:09Z 2019-12-24T04:03:22Z "Aggiornamento delle traduzioni per Twenty Twenty (it_IT)… Warning: scandir(/home/.dummy/temp/): failed to open dir: Permission denied in /home/user/wp/wp-includes/functions.php on line 2479 Warning: scandir(): (errno 13): Permission denied in /home/user/wp/wp-includes/functions.php on line 2479 Warning: array_diff(): Argument #1 is not an array in /home/user/wp-includes/functions.php on line 2479 Notice: set_time_limit() has been disabled for security reasons in /home/user/wp-admin/includes/class-wp-upgrader.php on line 468 Le traduzioni sono state aggiornate con successo. Tutti gli aggiornamenti sono stati completati. {{{#!php query_vars[$wpvar]) ) }}} to {{{ if ( ( !is_scalar($this->query_vars[$wpvar]) || is_array($this->query_vars[$wpvar]) ) ) }}} the errors went away. Bad plugin/theme code, notwithstanding, the fact that the conditional check fails at all indicates a need for ""refinement"". That's the whole point of these checks, to ensure bad code doesn't take down a website. I'm even wondering if a more streamlined code change for line 526 to {{{ if ( !is_string($this->query_vars[$wpvar]) ) }}} is more appropriate as string variables are all that rawurlencode() allows. I hated changing any core file. But, I was able to quickly address a small issue that shouldn't have been allowed by the core. I don't think this change would impact anyone, the function build_query_string() this code falls within has been depreciated, anyway. BTW, I'm not sure why is_scalar() is failing. However, I came across a few instances across the web with similar quirks. Everyone of those problems was addressed in a similar fashion (i.e. using is_array() or !is_string() instead of !is_scalar()). Source code from wp-class.php: {{{ 521 public function build_query_string() { 522 $this->query_string = ''; 523 foreach ( (array) array_keys($this->query_vars) as $wpvar) { 524 if ( '' != $this->query_vars[$wpvar] ) { 525 $this->query_string .= (strlen($this->query_string) < 1) ? '' : '&'; 526 if ( !is_scalar($this->query_vars[$wpvar]) ) // Discard non-scalars. 527 continue; 528 $this->query_string .= $wpvar . '=' . rawurlencode($this->query_vars[$wpvar]); 529 } 530 } }}}" chadschulz 4 33405 "Pagination - use of helip / ""..."" not logic in some cases" Themes 4.2.4 lowest trivial enhancement new has-patch 2015-08-18T16:40:31Z 2019-06-04T21:27:45Z "Hi there, I believe there is some improvement potential in the logic of the pagination. The ""..."" indicator does not really serve its purpose, in case you have it only hiding one page link - see attached screenshot. Would propose to change the function generating the pagination to only use it in case it at least covers 2 page links." th23 32863 set_custom_fields function in wp_xmlrpc_server class XML-RPC 4.2.2 normal trivial defect (bug) new 2015-07-02T10:04:32Z 2019-06-05T06:41:07Z "Hi, I was working with wp_xmlrpc_server class to insert and update woocommerce products but i found that my custom fields are not working properly. When i inspected the code of function set_custom_fields , i noticed that we are using wp_unslash to remove underscores from custom field keys. So keys like _price , _quantity and _stock were not working for the product custom post type. Secondly we are using add_post_meta to insert the meta data. Can we change it to the update_post_meta ? I have attached the updated function.Please test it and let me know. {{{ public function set_custom_fields($post_id, $fields) { $post_id = (int) $post_id; foreach ( (array) $fields as $meta ) { if ( isset($meta['id']) ) { $meta['id'] = (int) $meta['id']; $pmeta = get_metadata_by_mid( 'post', $meta['id'] ); if ( isset($meta['key']) ) { $meta['key'] = ( $meta['key'] ); if ( $meta['key'] !== $pmeta->meta_key ) continue; $meta['value'] = ( $meta['value'] ); if ( current_user_can( 'edit_post_meta', $post_id, $meta['key'] ) ) update_metadata_by_mid( 'post', $meta['id'], $meta['value'] ); } elseif ( current_user_can( 'delete_post_meta', $post_id, $pmeta->meta_key ) ) { delete_metadata_by_mid( 'post', $meta['id'] ); } } else{ update_post_meta( $post_id, $meta['key'], $meta['value'] ); } } } }}} Regards, Arif Skype: arifamir33 " marifamir 7 14110 Expose height and width attributes to 'wp_get_attachment_image_attributes' filter adamsilverstein Media 3.0 normal minor enhancement assigned reporter-feedback 2010-06-27T00:54:46Z 2023-10-11T13:51:39Z "The filter 'wp_get_attachment_image_attributes' allows you to alter the attributes of embedded images. However the height and width attributes aren't passed to this filter. These would be useful to have – I'm making a theme with a fluid layout where I have to remove all height and width attributes to ensure that the browser maintains the attribute of images when they're resized. I've attached a patch with a fix. In it I've also changed the function 'get_image_tag' so that I could remove the immensely pointless 'hwstring' function." divinenephron 2 37145 Admin submenu opens underneeth editor link tool Administration 4.5.2 low minor Future Release defect (bug) assigned dev-feedback 2016-06-22T07:00:54Z 2020-08-05T14:22:04Z "Sub menus of the admin menu opens underneath the editor's link tool. Possibly a z-index problem. [[Image(http://i.imgur.com/7PMPxb6.png)]]" Stoffe1 2 57577 Admin: Color schema is not applied correctly to beta labels in site editor Administration normal minor Future Release defect (bug) new changes-requested 2023-01-29T10:33:02Z 2023-06-27T05:47:51Z "When the color schema is not the default, the ""beta"" label assigned to Editor in the Appearance menu does not apply the correct background color. When you mouse over ""Appearance"" in the top menu, the background color of the beta label disappears." wildworks 1 53325 Automated Update Failed Notice After Update is Done Administration 5.7.2 normal minor Awaiting Review defect (bug) new 2021-06-03T03:58:36Z 2021-06-30T09:29:26Z "Hello Folks, In my WordPress instance, it showed me the core update for version 5.7.2 I have started updating WordPress but it took longer. I don't know if it was a network issue or any other. But somehow, my update was done. Now, when I am opening the WordPress Admin Dashboard, it gives me constant warning **""An automated WordPress update has failed to complete""** I guess when the update was in progress, in the file: update.php, Line number 804, the option s not getting updated for **""auto_core_update_failed""** " malavvasita 3 59365 Deprecated notice when calling get_admin_page_title() on some dashboard pages. Administration normal minor Awaiting Review defect (bug) new has-patch 2023-09-15T11:35:39Z 2023-09-17T17:22:35Z "{{{ Deprecated preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated wp-admin/includes/plugin.php:2092 preg_replace() wp-admin/includes/plugin.php:2092 get_plugin_page_hookname() wp-admin/includes/plugin.php:2056 get_plugin_page_hook() wp-admin/includes/plugin.php:1980 get_admin_page_title() }}} This occurs on all pages where global `$plugin_page` is null (Plugins, Tools, etc.) " apedog 9 42254 Duplicate news entries in Events & News dashboard widget Iceable Administration 4.8 low minor Future Release defect (bug) assigned has-patch 2017-10-17T18:15:20Z 2023-10-11T14:26:43Z "The first item in the News widget is always the latest post from the `wordpress.org/news` blog. The next 3 posts are selected from the `planet.wordpress.org` feed, which itself includes the `wordpress.org/news` blog. This can lead to duplicate entries: [[Image(https://cldup.com/R67ghZqMRh.png)]] One potential solution is to search the list of Planet feed items, to check ifany of them match the current News item. If one does, it would be removed, so that the next oldest item takes its place. Reported by @sergeybiryukov on Slack https://wordpress.slack.com/archives/C02RQBWTW/p1507073219000123 " iandunn 56384 Error in CSS for form input Administration 6.0 normal minor Awaiting Review defect (bug) new 2022-08-15T21:50:28Z 2022-08-15T22:12:27Z "In ''user-new.php'' and ''user-edit.php'', I created an interface to add some custom meta fields using checkboxes. The problem is that the CSS bit {{{ #adduser .form-field input, #createuser .form-field input { width: 25em; } }}} breaks my interface as I'm using the HTML {{{ }}} So ''.form-field input'' without excluding checkbox types, or specifically applying it to text/url types, stretches the checkboxes... Below I'm attaching two screenshots, the first with the CSS bit in effect, and the second with it disabled in the developer tools of the browser... [[Image(https://i.ibb.co/Lkf2r4P/Screenshot-2022-08-16-003733.jpg)]] [[Image(https://i.ibb.co/yPKBSCS/Screenshot-2022-08-16-003822.jpg)]]" princeofabyss 2 54073 Plugin removes menu items with no submenu page Administration 5.8 normal minor Awaiting Review defect (bug) new 2021-09-03T17:36:26Z 2021-09-03T17:36:26Z "I have a plugin which adds a menu page with the update_plugins capability. There is another plugin I noticed which removes the plugin icon from the menu bar, but the plugin page can still be accessed directly via URL. Instead of the plugin icon, there is only a black void (see image). Workarounds: 1) When I change the update_plugins capability in the add_menu_page method to activate_plugins, the problem is resolved. 2) If I were to have submenu pages for the plugin, the problem is resolved and the plugin icon is visible as it should be. To reproduce: 1) add menu page: {{{#!php allcaps['update_plugins'] = 0; }}} I have using WP 5.8, PHP 8.0.8, non-multisite install (locally and on prod). I have noticed this happens for other matching capabilities too (`activate_plugins`) for example. Screenshot: [[Image(https://imgur.com/LlXaxPl)]] The two conflicting plugins I am using are “Pre Party Browser Hints” (adds submenu page) and “Disable All WordPress Updates (removes update_plugins operation). I suspect this could be an issue with WP core code, because it does not seem like an intentional feature." samperrow 1 52344 SVG images overflows UI Administration 5.6 normal minor Awaiting Review defect (bug) new 2021-01-22T08:03:03Z 2021-02-02T08:02:34Z "Hello, This issue seems related to #51868. Using WP5.6 the issue can be triggered by installing MailPoet 3.58.0. (issue is not related to MailPoet, I just use this as a trigger example, maybe due to its interface on the right) When MailPoet is not selected the UI (including SVG-icons) seems fine. Selecting MailPoet however seems to trigger SVG-icons above MailPoet to grow and overflow to UI. Please see attached images for a better understanding: https://i.ibb.co/vxvxfrq/svg-normal.jpg https://i.ibb.co/t4RDMQt/svg-overflow.jpg Thank you for having a look at this issue. With best regards, TheRealShadowHunter" therealshadowhunter 1 51282 Select element does not honor admin color scheme on hover Administration 5.5.1 normal minor Awaiting Review defect (bug) new has-patch 2020-09-09T18:56:21Z 2020-09-23T23:54:09Z "When select elements are hovered, the text color changes to the ""default color scheme"" and not to the color scheme selected bu the user. For example, the user has selected ""sunrise"" color scheme the hover color on the select element should be from the ""red/orange"" palette. But it has the default color scheme's blue color. Since all other inputs honor the color scheme color select element should also follow the same. The fix should be that below selector should be added in color scheme CSS files with the respective scheme color. {{{ .wp-core-ui select:hover { color: #007cba; } }}} [[Image(https://i.snipboard.io/RMaoLd.jpg)]]" vaakash 51190 The display of the Media Uploads settings section should be improved Administration 4.0 low minor Awaiting Review defect (bug) new has-patch 2020-08-30T10:06:17Z 2020-11-09T20:37:02Z "If a plugin adds new media uploads settings fields when it's not possible to edit the uploads path/url, the table's first row unlike following is displayed in one cell instead of using the full row space. See screenshot below. [[Image(https://cldup.com/WoQoROPrzP.png)]] I believe checking for existing custom media uploads settings should also be checked when choosing whether to use the `colspan=""2""` attribute of the the first cell. See attached patch." imath 47465 current_action function - return types Administration 5.3 normal minor Awaiting Review defect (bug) new reporter-feedback 2019-06-03T12:32:37Z 2019-06-06T09:18:44Z "I received a PHP notice ""Array to string conversion"" that led me to the current_action() function in class-wp-list-table.php. This function can return an array as a valid value. For example this request will return an array: http://localhost/site/?action[]=1&action[]=2 But in this case: PHPDoc is incorrect. Should be: {{{ @return string|false|array }}} or/and this may break some of the scripts that use this function. simply because they use the result value as a string. Possible solution: add an additional check: IF array THAN take only the first value of the result. Thanks!" madeinua 2 49504 """Your homepage displays"" setting missing without explanation" Administration 5.3.2 normal minor Awaiting Review enhancement new 2020-02-24T20:05:25Z 2021-01-19T13:50:45Z "When there are no available pages, ie. no pages exist or there are only pages marked as private, the ""Your homepage displays"" setting isn't showing up at all in Settings >> Reading. There's no explanation why it's not available currently. Possible fix: provide a short piece of info on why this option isn't currently available." paulpela 2 43963 Add admin body class for multisite blog ID and network admin context Administration normal minor Awaiting Review enhancement new dev-feedback 2018-05-04T16:58:17Z 2018-06-26T17:05:06Z "In multisite, it'd be great to have an admin body class to safely scope CSS to specific blogs (i.e. `blog-2` or `network-admin`) available by default. I often filter `admin_body_class` to add these. One situation where I often use this is conditional override of the text Site Title in the Admin Bar with a logo -- but only if the logo exists. PHP can certainly be used to check context before printing conditional CSS, but the body class adds a safe, client-side scope and clear approach for avoiding in-admin style collisions. Example: {{{ if ( ! empty( $logo ) ) { ?> body.blog- li#wp-admin-bar-site-name > a.ab-item:first-of-type, body.blog- #wpadminbar .ab-top-menu > li#wp-admin-bar-site-name.menupop:hover > .ab-item:first-of-type, body.blog- #wpadminbar .ab-top-menu > li#wp-admin-bar-site-name.menupop.hover > .ab-item:first-of-type { font-size: 0; // safely hide default text background-image: url(""""); background-size: ; background-position: center; background-repeat: no-repeat; min-width: 120px; } "" /> "" /> search_box( $tax->labels->search_items, 'tag' ); ?> }}} which needs to be indented properly to make it more understandable. This can be check in other files as well where we are writing HTML as well as PHP. In this tickets preview how exactly the code is written so I am adding a screenshot as well https://prnt.sc/kmcjeu" prashantvatsh 1 55588 Enhancement request: Allow me to prevent admin_email changes Administration 5.9.3 normal minor Awaiting Review enhancement new 2022-04-18T19:06:11Z 2022-04-18T19:06:11Z "Subject says it all :) I would like a way to prevent changes to the admin_email option (the ""Administration Email Address"" on Settings -> General). The first/most obvious way to do this, to me at least, would be to create a new define, similar to WP_SITEURL, that always overrides the value of admin_email. That seems more comprehensive, but would involve digging into a lot of different places. Another possible implementation is to add a filter to update_option_new_admin_email (in wp-admin/misc.php) that lets you abort that call early." desmith 2 51343 Move Current Submenu to top of Admin Menu Administration normal minor Awaiting Review enhancement new 2020-09-18T12:48:11Z 2022-09-09T07:29:48Z "I propose moving the **current open submenu** to the **top of the adminmenu** so users can more easily navigate to submenu items without having to scroll. This would be especially helpful when using smaller viewports and/or sites with large/numerous submenus. The following CSS accomplishes this: {{{ #adminmenu { display: flex; flex-flow: column; } .wp-has-current-menu { order: 1; } .wp-not-current-submenu { order: 2; } #collapse-menu { order: 3; } }}} " markpraschan 1 60640 "Use of ""selected"" function for ""Week Starts On"" on General Setting page" Administration trunk normal minor Future Release enhancement new has-patch 2024-02-26T17:20:21Z 2024-02-27T12:38:47Z "For the dropdown of weekdays for the ""Week Starts On"" field is using the following turnery operation for ""selected=selectd"" `$selected = ( get_option( 'start_of_week' ) == $day_index ) ? 'selected=""selected""' : '';` We should use WP's `selected` function instead of turnery operation" bhargavbhandari90 26764 Welcome panel - misleading text chriscct7 Administration 3.5 normal minor Future Release enhancement reviewing has-patch 2014-01-03T17:12:32Z 2021-09-26T08:04:37Z "Welcome panel shows: - ""Write your first blog post"" - I have many posts... It should be ""Add a blog post""? - ""Add an About page"" - I have ""About"" page and also many other pages... It should be ""Add additional pages""?" pavelevap 1 30527 function to add separator Administration normal minor Future Release enhancement new has-patch 2014-11-27T15:07:32Z 2017-02-05T14:17:36Z "added the function `add_menu_separator( $position )`. Usage: {{{ add_action('admin_menu', 'separator'); function separator() { add_menu_separator(61); } }}} Adds a separator after 'Appearance'. - Just an example. " cfoellmann 6 47733 Undefined index HTTP_HOST in wp-includes/ms-settings.php on line 57 SergeyBiryukov Bootstrap/Load 5.2.2 normal minor Future Release defect (bug) reviewing dev-feedback 2019-07-18T17:10:16Z 2024-02-21T14:31:47Z "We get requests on our server of the form {{{ 175.143.12.??? - - [30/Jun/2019:10:22:45 +0200] ""GET / HTTP/1.0"" 500 73873 ""-"" ""-"" (dinse.eu) }}} This request uses HTTP/1.0 and results in a status code 500. The related entry in the PHP error log is {{{ [30-Jun-2019 08:22:45 UTC] PHP Notice: Undefined index: HTTP_HOST in /usr/www/xxxx/wp-includes/ms-settings.php on line 57 }}} 1. In ms-settings.php on line 57 it is not checked if {{{ $_SERVER['HTTP_HOST'] }}} is set. 2. Also I've found that in the case of this specific request {{{ $_SERVER['SERVER_NAME'] }}} is defined and not empty and can be used as a replacement. My suggestion is to first check if {{{ $_SERVER['HTTP_HOST'] }}} is set else check if {{{ $_SERVER['SERVER_NAME'] }}} is set and if both are not set to implement a graceful error handling. This may be related to #34353. WP 5.2.2 PHP 5.6.40 Server: Apache/2.4.25 (Debian) WP_DEBUG = true " JochenT 1 54117 Changing memory limit descriptions Bootstrap/Load 5.8.1 normal minor Awaiting Review enhancement new 2021-09-13T11:22:55Z 2023-11-28T14:01:11Z "Hi, A couple of things that stand out, WP_MAX_MEMORY_LIMIT is for the admin side of the site and WP_MEMORY_LIMIT is for the visitor side. If these were updated in the next version to more friendly names like WP_VISITOR_MEMORY_LIMIT and WP_ADMIN_MEMORY_LIMIT, it would be easier to set up these limits. How is the memory limit decided for WordPress? I've overridden the defaults since my server has 1GB max memory for PHP, so I've set them to 512 and 1024 respectively but is there a reason why the memory limits are set to arbitrary figures and not a percentage of the limit?" fyremoon 1 38650 Provide some guidance on what conditionals can/should be used in default-filters.php Bootstrap/Load low minor Awaiting Review enhancement new 2016-11-03T22:37:50Z 2017-06-21T23:12:12Z There are a lot of things you can't use in `default-filters.php`, such as `get_option()` or `is_customize_preview()`. Those deeply familiar with how load works might have some idea as to what's safe and what isn't, but it's generally confusing and a little opaque. I'd suggest some kind of inline comment at the top explaining the point of the file and what's generally safe (i.e. stuff in `load.php` as I understand?). helen 1 48229 Console error when running QUnit Test Suite Build/Test Tools normal minor Awaiting Review defect (bug) new close 2019-10-06T14:48:03Z 2023-06-20T20:09:43Z "There is a 404 (Not Found) error reported in the browser console for the `admin-ajax.php` file while running QUnit Test Suite. After selectively running the tests, I could narrow it down to the [https://core.trac.wordpress.org/browser/trunk/tests/qunit/wp-admin/js/widgets/test-media-image-widget.js#L11 image widget control] tests in the `Image Media Widget` module. Although all the tests are passing, this error should be fixed." Hareesh Pillai 2 29066 Grunt clean:dynamic task does not delete file/s from /build during grunt watch task Build/Test Tools 3.7 normal minor Awaiting Review defect (bug) new 2014-07-30T04:10:15Z 2019-02-25T01:44:52Z "When running the Grunt task `grunt watch` a file that is modified and saved should be cleaned from the /build folder and the modified file copied from the /src folder to the /build folder as part of the `watch:all` task: {{{ tasks: [ 'clean:dynamic', 'copy:dynamic' ], }}} Currently the `clean:dynamic` task does not actually 'clean' (delete) the file from the /build folder, the `copy:dynamic` task overwrites the existing file. Workaround: Do nothing and continue to have the file overwritten without cleaning first. Options: 1. Fix the `clean:dynamic` task to actually 'clean' (delete) the file from /build 2. Remove the `clean:dynamic` task from the `clean` and `watch:all` tasks list To reproduce: * Temporarilly remove `copy:dynamic` from the `watch:all` task tasks list * Run `grunt watch` * Edit a file from /src and save Expected Results: * Edited file should be 'cleaned' (deleted) in /build folder Actual results: * File remains in /build folder " netweb 2 53781 Tests_Embed_Template tests fail when run in isolation Build/Test Tools normal minor Awaiting Review defect (bug) new 2021-07-26T10:25:19Z 2021-09-28T03:32:26Z "When running the `Tests_Embed_Template` test in isolation, two of the tests fail. {{{ phpunit --filter Tests_Embed_Template }}} {{{ #) Tests_Embed_Template::test_oembed_output_post_with_thumbnail DOMDocument::loadHTML(): AttValue: "" expected in Entity, line: 10 path/to/wp/tests/phpunit/tests/oembed/template.php:66 #) Tests_Embed_Template::test_oembed_output_attachment DOMDocument::loadHTML(): AttValue: "" expected in Entity, line: 10 path/to/wp/tests/phpunit/tests/oembed/template.php:110 }}} Accidentally discovered when I added the `import` group to the `` `` and ran the complete test suite and those two tests - which are unrelated to the `import` tests - started erroring out. A tentative conclusion from that can be that: 1. The `Tests_Embed_Template` tests have an undeclared dependency on the tests in the `import` group. 2. The `Tests_Embed_Template` tests only pass by accident due to the **''order''** in which the tests are run, which is not guaranteed and can be influenced in more recent PHPUnit versions, so cannot be relied upon. Also see: https://phpunit.readthedocs.io/en/stable/configuration.html#the-executionorder-attribute This needs further investigation. Solution direction: The test should be made independent of the `import` tests. Originally reported in https://core.trac.wordpress.org/ticket/53363#comment:39" jrf 1 45088 Update package-lock.json for Mac, Linux, and Windows cross-platform compatibility Build/Test Tools normal minor Future Release defect (bug) new 2018-10-12T11:53:43Z 2018-10-29T12:07:42Z "Doing a ""clean"" `npm install` after #45064 on Windows 10 changed the package-lock.json a bit, adding a few `""optional"": true`. " azaozz 7 49728 [PHP 8] Prepare for the internal functions throwing `TypeError` or `ValueError` exceptions on unexpected types/values hellofromTonya Build/Test Tools normal minor 6.6 defect (bug) assigned needs-unit-tests 2020-03-30T12:02:20Z 2024-02-18T15:03:30Z "**Description** PHP 8.0 is still in the making, but we know that certain changes are coming up to make things more straightforward and in favor of exceptions instead of rather silent PHP warnings. One of these changes is that from PHP 8+, internal functions will throw an exception if the function call arguments are of a type that is not expected. The simplest example would be `strlen([])`, which would throw `TypeError: strlen() expects parameter 1 to be string, array given` exception in PHP 8. You can read more at the RFC (https://wiki.php.net/rfc/consistent_type_errors) and a detailed Change Record (https://php.watch/versions/8.0/internal-function-exceptions). WordPress has a PHPUnit annotation with the name `@expectedIncorrectUsage` that are used to track these kinds of errors. One example is at `Tests_DB::test_prepare_sprintf_invalid_args`, which uses the `@expectedIncorrectUsage` annotation to track PHP warnings, but instead, PHP 8's new TypeError triggers an exception (https://travis-ci.com/github/Ayesh/wordpress-develop/jobs/308369270#L2827). **Proposal** I propose to extend the `expectedIncorrectUsage` annotation to check the PHP version, and make PHPUnit expect a `TypeError` or a `ValueError`. Ideally, we should be expecting exactly a `TypeError` or a `ValueError` (sprintf too few arguments for example), which we can pass either from the annotation in the caller, or a check on the parent/sibling classes. " ayeshrajans 2 53414 Add how to run php coverage reports to readme.md hellofromTonya Build/Test Tools normal minor Future Release enhancement assigned needs-docs 2021-06-15T19:30:07Z 2021-11-10T02:03:18Z "With the@Covers getting added in #39265 we need to make it easy to run/create the coverage reports So let's add the instructions to the readme.md file" pbearne 3 52613 Add testing setup instructions on wordpress-develop repository readme Build/Test Tools normal minor Future Release enhancement new has-patch 2021-02-22T21:13:59Z 2021-11-10T02:05:46Z "While setting up my environment, I was surprised by running unit tests and seeing an error about a missing config file. {{{ Error: wp-tests-config.php is missing! Please use wp-tests-config-sample.php to create a config file. child_process.js:655 throw err; }}} While I do expect configuration setup when trying to run tests against a different local instance, seeing this error when trying to run this against the docker env made me question if I was doing something wrong. I have a pull request that makes some suggested changes in the readme to help guide others: https://github.com/WordPress/wordpress-develop/pull/1033" gwwar 1 50266 Had to specify mysql socket to run php automated test Build/Test Tools normal minor Awaiting Review enhancement new 2020-05-27T18:13:49Z 2020-05-27T18:29:44Z "I had to add mysql socket information to be able to run `phpunit`. Without it, phpunit complained that it could not connect to database. Hopefully someone can confirm this and add this information to the docs. Example in wp-tests-config.php: define( 'DB_HOST', 'localhost:/Applications/MAMP/tmp/mysql/mysql.sock' ); I followed all the instructions from here: https://make.wordpress.org/core/handbook/testing/automated-testing/phpunit/ . I am using MacOS Catalina 10.15.2." mmarco9 1 60370 Test Tools: Clarifying reusable workflows in Github CI Build/Test Tools normal minor Awaiting Review enhancement new 2024-01-29T12:59:58Z 2024-01-29T13:00:51Z "While working on https://github.com/WordPress/wordpress-develop/pull/5922 we had to increase the timeout limit for one of the reusable workflows of the repository: phpunit-tests-run.yml The problem is that the update were not being taken into consideration in the PR because we explicitly refer to the ""trunk"" version of that workflow in `phpunit-tests.yml` Github does offer a way to use relative links to other workflows from the same repository (instead of URLs), ti would have solved the issue there but it comes with a set of tradeoffs that need to be considered. For example, updating Node.JS version in the reusable workflow would need to be done for all the previous branches that WP still supports while forcing the use of the ""trunk"" workflow means we can update in a single place. The initial discussion about this happened on the following Slack Thread https://wordpress.slack.com/archives/C02RQBWTW/p1706523051675219 I'm opening this ticket so we can track this discussion and potentially address it (or not). " youknowriad 2 53118 Tests: review of correctly setting output expectations Build/Test Tools normal minor Awaiting Review task (blessed) new 2021-04-30T15:32:35Z 2021-04-30T15:32:35Z "While looking at the tests in the context of another ticket, @hellofromTonya and me came across various tests doing things like: {{{#!php assertRegExp( $regex, $contents ); }}} PHPUnit has dedicated functionality build-in to set output expectations which will then automatically test that the output conforms to those expectations. When using those, the above code would become: {{{#!php expectOutputRegex( $regex ); // Do something which generates output... }}} I suspect that in most cases were `ob_*()` functions are being used to ""catch"" output before testing it, this can (and should) be replaced with using the PHPUnit native `expectOutputString()` and `expectOutputRegex()` functions. Note: each test can only have **ONE** output expectation when using the PHPUnit native functionality. Also see: https://phpunit.readthedocs.io/en/9.5/writing-tests-for-phpunit.html#testing-output I'd recommending a complete review of the test suite to verify whether output expectations are tested correctly. To find all instances of this code pattern a search should be done for the use of `ob_*()` functions in the `tests/phpunit` directory." jrf 2 59493 Blank CSS line removed from code Bundled Theme normal minor Future Release defect (bug) reopened has-patch 2023-09-29T00:05:51Z 2024-02-14T18:27:37Z Removed a blank CSS which is not needed in the code. ravipatel 57758 Header > Group background color in adds padding to backend but not front end Bundled Theme 6.1.1 normal minor Awaiting Review defect (bug) new close 2023-02-17T16:41:01Z 2024-03-27T20:00:23Z setting Group background color in header adds padding to backend but not front end frdmsun 46771 Twenty Eleven: Negative values for padding Bundled Theme 4.9.8 normal minor Awaiting Review defect (bug) new dev-feedback 2019-04-02T12:27:37Z 2023-11-08T09:50:29Z "Line 2799 #ie7 article.intro Value Error : padding-left -7.6% negative values are not allowed : -7.6% Line 2800 #ie7 article.intro Value Error : padding-right -7.6% negative values are not allowed : -7.6% " Malae 54120 Twenty Fifteen: Fixed table layout Bundled Theme normal minor Awaiting Review defect (bug) new dev-feedback 2021-09-14T10:44:27Z 2022-07-08T17:16:46Z "The CSS for Twenty Fifteen contains a line forcing fixed layout for tables: {{{ table { border-collapse: separate; border-spacing: 0; border-width: 1px 0 0 1px; margin: 0 0 1.6em; table-layout: fixed; /* Prevents HTML tables from becoming too wide */ width: 100%; } }}} This causes unexpected behavior since you in Gutenberg have the option to select between a fixed or dynamic layout for table blocks, but this has no effect." Roenbaeck 2 60293 Twenty Fourteen: Table block does not have same design in editor and front. Bundled Theme normal minor Awaiting Review defect (bug) new changes-requested 2024-01-19T04:30:59Z 2024-02-26T12:00:06Z "Steps to reproduce the issue:- 1. Activate Twenty Fourteen Theme. 2. Choose a Table block. 3. Add some text and Colors. 4. Check in the editor side, table border color and the user side both. In the editor side, we have different border color and when you check front side that border color is different. Video Url - https://drive.google.com/file/d/1bk2uQX4fkzrvgDQl2IcS6kh0KKap1SMX/view?usp=sharing" pranitdugad 3 45673 Twenty Nineteen: Front page entry-title should be h1, not h2 Bundled Theme normal minor Future Release defect (bug) new 2018-12-17T11:08:42Z 2023-11-08T07:49:40Z Posts published on the front page should use h1. This is encouraged with HTML5, and prevents wrong content structure as seen here: http://take.ms/DWnFH perandre 58440 Twenty Nineteen: Inconsistent H1 font size Bundled Theme 5.0 normal minor Awaiting Review defect (bug) new has-patch 2023-06-01T17:20:06Z 2023-06-07T17:43:20Z "The H1 or .entry-title for pages is not the same between the editor and the front end for the Twenty Nineteen theme. The .entry-title class in the style.css overwriting it to be 2.25em large. Steps to reproduce the issue: 1. Activate Twenty Nineteen theme. 2. Edit a page 3. Inspect or notice page title font size in the editor (H1) 4. Save and view front end of page and inspect/notice difference in font size of page title" nkeller15 56143 Twenty Nineteen: Separator block alignment issue Bundled Theme 5.0 normal minor Awaiting Review defect (bug) new 2022-07-05T11:02:37Z 2022-07-05T18:08:42Z "Twenty Nineteen Themes Separator Block select Default style not center aligned in editor and Front side Steps to replicate: 1: Activate the Twenty Nineteen Theme 2: add Separator block 3: Select Default style I have given the video link of the issue below. https://www.loom.com/share/7f80bd907043491fbe8c28d30dd4cc1a" umesh84 46158 Twenty Nineteen: Slight flash of desktop menu when closing mobile menu Bundled Theme 5.0.3 normal minor Future Release defect (bug) new 2019-01-31T19:45:21Z 2019-01-31T19:47:30Z "Moved over from the discussion on #45905: When using Twenty Nineteen on a mobile device, you sometimes get a brief flash of the desktop menu when closing the mobile menu. Steps to reproduce: 1. Start with a test site with a longer menu, so you have the `...` more button. 2. Tap on the `...` button on a mobile device. 3. Click the 'Back' button. " laurelfulford 58474 Twenty Seventeen: Box shadow on Site Logo block looks odd Bundled Theme 6.2.2 normal minor Awaiting Review defect (bug) new dev-feedback 2023-06-07T15:26:43Z 2023-06-09T22:08:13Z "Steps to reproduce: 1. Activate the Twenty Seventeen theme 2. Add the Site Logo block to any page or post and add an image 3. Make sure link to home setting is toggled on 4. Save and view on front end " nkeller15 52716 Twenty Seventeen: consider style updates for box-shadow on linked images justinahinon Bundled Theme 5.0 normal minor Awaiting Review defect (bug) assigned has-patch 2021-03-04T20:32:41Z 2021-04-08T20:07:58Z "== Origin User report: https://github.com/WordPress/gutenberg/issues/22187 That report was only about the Media & Text block specifically but looking into I recognized it as a general issue with the styles from Twenty Seventeen and applicable to other blocks. == Steps to replicate 1. Add any block that supports inner blocks and background colors (Group, Columns) 2. Add a background color to the block 3. Inside the block, add any/all of the following blocks: Image, Gallery or Media & Text 4. Add a link to the inner block (Gallery block gets links via a setting the Inspector (block settings sidebar) == Results * In each block there is a box-shadow on the images * In the Gallery block the box-shadows double-up between images * In a Media & Text block with a background-color of its own, the box-shadow expands beyond the block background area == Expected Consistency between what is seen in the Block Editor and the frontend (i.e. Either without box-shadows on the frontend or with box-shadows in the Editor). == Screenshots === Blocks with linked images ||= Block editor =||= Frontend =|| || image pending || image pending || === Inline images with links Inline images are also styled differently between editor/frontend. ||= Block editor =||= Frontend =|| || image pending || image pending || " presstoke 1 59946 Twenty Sixteen: PullQuote Block border color not showing on frontend Bundled Theme normal minor Awaiting Review defect (bug) new 2023-11-22T04:20:45Z 2023-11-23T00:09:38Z "In Twenty Sixteen, add a pullquote block and apply border and colour to it. it showing on frontend Video url - https://drive.google.com/file/d/1J3nBmyGlt1TFFh5_ksvv97x9CcJu-2ns/view?usp=sharing" pranitdugad 1 56565 Twenty Sixteen: Quote Block Border Left color not reflected in editor Bundled Theme 6.0.2 normal minor Awaiting Review defect (bug) new has-patch 2022-09-14T06:29:23Z 2024-01-17T16:02:03Z "Theme Twenty Sixteen Quote Block Border Left color not reflected in editor Steps to replicate: 1: Activate the Twenty Sixteen Themes 2: add Quote block 3: Select color For better understanding I provide video attachment link. Video link: https://www.loom.com/share/bc19aee1e3cb4370a0642a403c61942f " umesh84 2 59880 Twenty Thirteen - Pullquote block having no effect when we change font-size. Bundled Theme 6.4 normal minor Awaiting Review defect (bug) new 2023-11-10T17:01:19Z 2023-12-16T09:08:11Z "Steps to reproduce the issue :- 1. Activate Twenty Thirteen theme. 2. Choose Pullquote block. 3. Add some text 4. Change in font size. You can able to see there is no difference in both the side in fonts. I have attached video for better understanding. Video URL:- https://share.cleanshot.com/pJgXND8tksl8PqXCL0sJ" nidhidhandhukiya 1 58499 Twenty Twenty theme table block having issue with color Bundled Theme 6.2.2 normal minor Awaiting Review defect (bug) new has-patch 2023-06-09T07:33:23Z 2023-07-13T06:57:04Z "Steps to reproduce the issue. 1. Activate Twenty Twenty theme. 2. Take table block. 3. Add some text. 4. Apply background color black or pink. 5. Now apply any color to the text. You can able to see it will not take the value of that choosen color if black or pink is set as a background color for editor side. Front side it is working fine it is having issue only in editor side. I have attached video for better understandng. Video URL :- https://share.cleanshot.com/plqBT1cn6hMbRR5g6Grz " nidhidhandhukiya 2 60196 Twenty Twenty-One: List Item blocks have extra margin in editor Bundled Theme 6.1 normal minor Awaiting Review defect (bug) new changes-requested 2024-01-05T06:17:26Z 2024-01-17T22:37:35Z "Steps to reproduce the issue. 1. Activate Twenty Twenty one theme. 2. Choose List block. 3. Add some data into list. 4. Apply some background color. Now check both the side you can able to see there is a difference in editor and front end in spacing. Editor side there is more spacing compare to front side. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/ZmNJlFXhGPj4bpJNNP4C" nidhidhandhukiya 1 52663 Twenty Twenty-One: Possible bug on primary navigation Bundled Theme normal minor Awaiting Review defect (bug) new has-patch 2021-02-25T21:27:42Z 2021-02-27T05:44:02Z "The primary navigation menu can get stuck in a vertical list view under specific circumstances. This bug seems to be affecting vanilla Twenty Twenty-One installations, and can even be replicated on the official theme preview page: [https://wordpress.org/themes/twentytwentyone/] In order to replicate, please follow these steps: 1) Load the Twenty Twenty-One theme preview, or a website based on the theme. 2) Force responsive design mode on your web browser, or resize the browser window to the appropriate dimensions, so that the hamburger (mobile) menu icon is displayed. 3) Open the mobile menu by clicking on the hamburger icon. 4) While the mobile menu remains open, exit responsive design mode, or maximize your browser window. 5) Now, the navigation bar links do not revert to their original positions - aka horizontally placed on the navigation bar. Instead, they are now placed in vertical order and overflow to the content area. Refreshing the page allows the navigation bar elements to return to their original locations. Exiting responsive design mode, or resizing the browser window, after closing the mobile hamburger menu, won't trigger the bug. Tested on Chrome, Chromium, Firefox, Edge and Opera. Could replicate on all of these browsers. The following CSS code seems to alleviate the issue: {{{ .primary-navigation-open .primary-navigation > .primary-menu-container { position: relative; } }}} " nek285 56015 Twenty Twenty-One: Preview Changes Background Colour To Default Bundled Theme normal minor Awaiting Review defect (bug) new 2022-06-20T12:38:18Z 2023-01-16T13:10:46Z "When using Twenty Twenty-One (have only tested on this theme), if you select a different background colour for the site in Customizer > Colors & Backgrounds the page is the correct colour in normal view preview but reverts to the default colour when previewed in Tablet or Mobile views. **Steps to reproduce: ** - Change to Twenty Twenty-One theme - Go to Appearance > Colors & Backgrounds - Edit background colour to anything of your choosing - Open the editor for a page - Click Preview - Choose Tablet or Mobile **What I expected to happen: ** I expected to see the site in the same colour as I have just chosen in the customizer **What actually happened: ** Site shows with default background (#D1E4DD) regardless of what colour has been chosen" mrfoxtalbot 58669 Twenty Twenty-Three: Search input border displays in editor but not on front side Bundled Theme normal minor Awaiting Review defect (bug) new close 2023-06-29T12:59:15Z 2024-03-28T05:54:15Z "I have reviewed Search block in different different themes and I found search input border does not display in frontend side for Twenty Twenty-Three. Please check the below provided video recording for a better understanding. Video Recording: https://share.cleanshot.com/Px5DpDrD3DLYKF1rYVd5" upadalavipul 1 55404 Twenty Twenty-Two, Site Edit, Group with Background Color Overflows Page Size on Mobile Bundled Theme 5.9.2 normal minor Awaiting Review defect (bug) new 2022-03-16T16:56:30Z 2022-03-16T18:38:56Z "When you add a group block with a background color to a footer template in the full site editor, the group block will overflow the page on a mobile device by a few pixels. For example, on a device that is 360 pixels wide will have approximately 10 pixels of overflow. The offending party is this CSS code: {{{ .wp-site-blocks .alignfull, .wp-site-blocks > .wp-block-group.has-background, .wp-site-blocks > .wp-block-cover, .wp-site-blocks > .wp-block-template-part > .wp-block-group.has-background, .wp-site-blocks > .wp-block-template-part > .wp-block-cover, body > .is-root-container > .wp-block-cover, body > .is-root-container > .wp-block-template-part > .wp-block-group.has-background, body > .is-root-container > .wp-block-template-part > .wp-block-cover, .is-root-container .wp-block[data-align=""full""] { margin-left: calc(-1 * var(--wp--custom--spacing--outer)) !important; margin-right: calc(-1 * var(--wp--custom--spacing--outer)) !important; width: unset; } }}} Where margin-right is the source of the problem. Turning that style off in my browser's developer console eliminates the extra space." joshuanan 58500 Twenty Twenty: Separator block's Default style is wider than Wide Line style in editor Bundled Theme 6.2.2 normal minor Awaiting Review defect (bug) new has-patch 2023-06-09T08:22:02Z 2023-06-10T09:27:47Z "Steps to reproduce the issue. 1. Activate Twenty Twenty theme. 2. Take separator block. 3. Choose wide-width and check that editor and front both side. In front side default and wide width working as expected but in editor side it not works proper. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/xLbqrymSPhRf1kPpSw7B" nidhidhandhukiya 59989 Twenty fifteen: Calender block Typography option is not working properly Bundled Theme normal minor Awaiting Review defect (bug) new 2023-11-30T04:39:00Z 2023-11-30T04:39:00Z "In Twenty fifteen, The Calendar block Typography option is not working properly. if we compare it with other themes when we change the typography size the whole content of the calendar changes but here only the bottom months change. Here is the Video for proper understanding : https://drive.google.com/file/d/1IpXUCDk5NY6H9b_SsO5c6y38RbiZTvCu/view?usp=sharing" pranitdugad 60064 Edit no-js CSS in bundled themes Bundled Theme normal minor Awaiting Review enhancement new dev-feedback 2023-12-13T21:56:39Z 2024-02-15T06:38:38Z "The CSS directive in `style.css` of the Twenty Fifteen theme `.no-js .main-navigation ul ul` should be altered to this `html.no-js .main-navigation ul ul` As other plugins like buddypress add their own `no-js` classes to the `body` which can cause conflicts. I have raised this with them directly: #buddypress9033 This could be widened into a broader ticket on a standard way of adding `no-js` classes that themes or plugins could follow as right now some add it to the `html` and some to the `body` class" shawfactor 3 47154 "Prevent ""Call to undefined function: get_header()"" error in theme files" Bundled Theme 5.1.1 normal minor Awaiting Review enhancement new 2019-05-06T16:43:44Z 2021-05-11T18:29:15Z "Referencing a ticket from 14 years ago(!) (#1530), I would like to propose that the default WordPress themes - and the theme developer guidelines - be updated to include protection from accessing theme files directly. Accessing these files give PHP warnings, usually as follows: {{{ Fatal error: Call to undefined function: get_header() }}} Whilst @markjaquith was correct in stating that theme files are not supposed to be accessed directly, bots are finding their ways into theme folders (and triggering index.php) specifically, resulting in the errors being logged. I believe it'd be good practice to extend the recommendation from the ""Writing a Plugin"" documentation ([https://codex.wordpress.org/Writing_a_Plugin#Plugin_Files]) to the ""Theme Handbook"" ([https://developer.wordpress.org/themes/template-files-section/page-template-files/]) Following that recommendation, updating twentynineteen et al to include this (or at least code similar in intention) as the first lines of PHP coding. {{{ defined( 'ABSPATH' ) or die( 'No script kiddies please!' ); }}}" devonto 44537 Twenty Seventeen: submenu is not available from keyboard with disabled java script Bundled Theme normal minor Future Release enhancement new 2018-07-06T15:01:43Z 2019-01-18T20:59:07Z webest 2 52551 Twenty Twenty-One: Search box alignment Bundled Theme 5.7 normal minor 6.6 enhancement new has-patch 2021-02-17T07:17:16Z 2024-03-18T10:28:19Z I was Customized theme twenty twenty-one search-box on tablet and smartphones view. here search-box text field and button are not in correct alignment. vinita29 55856 WP Cache stats size wrong? Cache API normal minor Future Release defect (bug) new has-patch 2022-05-27T10:38:10Z 2024-02-07T19:29:44Z "What is the size that gets reported there? (class WP_Object_Cache function stats()) Doesn't make much sense, as it seems random. It's not the runtime cache group memory size, since you serialize it, so it's not the same as the memory footprint. What is it supposed to mean, bc right now its just a number without a meaning. " malthert 2 31600 WP_Object_Cache incr & decr can use a more strict type checking on offset SergeyBiryukov Cache API 3.3 normal minor Future Release defect (bug) reviewing has-patch 2015-03-11T18:58:26Z 2017-03-17T21:35:26Z "While working on improving the unit tests for related ticket #28759 I wrote some tests that could not pass on the current code: passing an non-empty array as offset. Despite of it being an edge case, I want to have my tests pass, so I provide a patch." jipmoors 59661 WP_Query::generate_cache_key should consider changes to request via `posts_request_ids` filter. thekt12 Cache API normal minor Future Release defect (bug) assigned needs-unit-tests 2023-10-17T15:10:17Z 2023-11-28T16:15:20Z "In `WP_Query::get_posts()`, [https://github.com/WordPress/wordpress-develop/blob/781953641607c4d5b0743a6924af0e820fd54871/src/wp-includes/class-wp-query.php#L3175 $cache_key = $this->generate_cache_key( $q, $new_request );] doesn't consider the possibility for changes to the request via [https://github.com/WordPress/wordpress-develop/blob/6.3/src/wp-includes/class-wp-query.php#L3310 posts_request_ids] filter. This can result in cache collision. For example we have one page doing `get_posts` with this filter, and we have a different page that doesn't use the filter but does the same `get_posts` with exactly same args. This will result in two different request to have same result. To give overview, `posts_request_ids`filter is used to modify final `post_ids` in a split operation. Solution is to have check for `has_filter( 'posts_request_ids' )`, serialize outcome from global `$wp_filter[ 'posts_request_ids' ]` and set to to `args` before cache_key is generated. Seralization we also allow for the cases where just one of he array of filters set in `posts_request_ids` is modified. " thekt12 3 54303 [Object Cache] Allow global caching groups to be filterable / changed Cache API 5.8.1 normal minor Awaiting Review enhancement new dev-feedback 2021-10-21T13:02:06Z 2022-06-09T01:17:57Z "The Object Caching system differentiates between ""local cache groups"" and ""global cache groups"". This is essential for Multisite setups. Global cache groups store cached objects - as the name implies - globally. There is one cached object for all sites in the network. Whereas the local cache groups are stored individually per site. The cache groups are setup using the {{{wp_cache_...}}} API. Like https://developer.wordpress.org/reference/functions/wp_cache_add/ Which groups are actually global is setup in the Object Cache bootstrapping code here: https://github.com/WordPress/WordPress/blob/e791d7f5db8252ba66c7777c456ed80343a450aa/wp-includes/load.php#L732-L735 {{{ wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'useremail', 'userslugs', 'site-transient', 'site-options', 'blog-lookup', 'blog-details', 'site-details', 'rss', 'global-posts', 'blog-id-cache', 'networks', 'sites', 'blog_meta' ) ); }}} This is hardcoded and not filterable in any (reasonable) way. Currently you have to rely on the actual Object Caching implementation to allow one to change the global cache groups. The current globals setup is fine for the assumption of a default WordPress installation. But as it is with customizable software like WordPress, this is not true in any case. For example: If one would split the user information and move it from the (global) network level to the individual sites, one would have to remove all the user related groups from the global cache groups. This is currently not possible at all. There are some possible solutions: 1. Make the array of global cache groups filtereable - This might be a timing issue because the object cache system is loaded very early. But it might work. 2. Add a function to the Object Cache API to actually remove cache groups from the globals list. - This is the {{{add}}} function: https://developer.wordpress.org/reference/classes/wp_object_cache/add_global_groups/ - This could be extended with a counterpart: {{{ public function remove_global_groups( $groups ) { $groups = (array) $groups; $this->global_groups = array_diff_key( $this->global_groups, $groups ); } }}} This could then be leveraged from plugins at any point of time. Yet it still might kick in too late due to the early nature of the object cache system. 3. If timing issues are an issue, instead of the filters, one could make the filtering available using a constant ( WP_OBJECT_CACHE_NON_GLOBAL_GROUPS => array( 'users', 'usermeta' ) ). Yet this depends on PHP7+ 4. Configure the global cachegroups late when filters are available and allow default WP filtering Is this an Edge case? Yes! But it still is quite a burden on the flexibility of the Object cache that could be solved :-)" janthiel 58803 Infinite loop in canonical.php Canonical 6.2 normal minor Awaiting Review defect (bug) new 2023-07-13T17:49:02Z 2023-08-30T17:44:26Z "A site 24x7 monitor that points to a URL on our website leads to an error with infinite loops reported. This error started after the page being pointed by the monitor received a new Slug, leading to HTTP redirection due to autocomplete to the closest URL. Still, I believe it occurs only during periods of transient availability of our shared host. Looking at the source code [REF2] I believe there is potential for an infinite loop on line 800. Possible fix in [REF3]. By assigning the result of redirect_canonical() to a variable ($chained_redirect) before the if statement, we ensure that the same value is used throughout the if block preventing unnecessary recursive calls. References ---------- [REF1] HTTP/1.1 508 Loop Detected Server : nginx ... [REF2] https://github.com/WordPress/wordpress-develop/blob/6.2/src/wp-includes/canonical.php#L780-812 [REF3] // Protect against chained redirects. $chained_redirect = redirect_canonical($redirect_url, false); if (!$chained_redirect) " emerlen 45687 URL params get lost because of canonical redirect on static front page Canonical 5.0.1 normal minor Awaiting Review defect (bug) assigned 2018-12-18T12:13:31Z 2018-12-18T12:24:43Z "Please see #25143. A shortcode that changes its output via (prettified) URL params, i.e. `/test/1/`. Use the shortcode on a **static front page**. The params are added either with `add_rewrite_rule()` or `add_rewrite_endpoint()`, but **without adding query vars**. This is basically what the patch in #25143 fixed (3rd param ''false''): {{{ add_rewrite_endpoint( 'test', EP_PERMALINK | EP_ROOT | EP_PAGES, false ); }}} However, the later change on line 175 in changeset [36237] causes a request such as `/test/1/` to redirect to `/` **and the shortcode can't work with the param**. On a side note, adding the params as query vars causes the intended static front page to use the posts template because `is_home()` is ''true''.\\ I understand that if I don't want URL params to modify the query, I should not register them as query vars (see [ticket:25143#comment:21 boonebgorges]). However, the template change feels rather wrong to me, too (see [ticket:25143#comment:20 mordauk]). Thanks for listening." captain.crash 60721 redirect_canonical suddenly causes issues with paramter values and CDN Canonical 6.4.3 normal minor Awaiting Review defect (bug) new 2024-03-07T07:31:07Z 2024-03-07T07:31:07Z "Hi there, I was just wondering if anything has changed regarding https://developer.wordpress.org/reference/functions/redirect_canonical/? `https://some-domain.tld/?my_param=a+a` triggers a 301 redirect to `https://some-domain.tld/?my_param=a a` Now our CDN is set to pass URLs with `my_param` straight on to WordPress. Since that response with a 301, that's what gets cached by the CDN and causes a redirect loop. Is that something new? I hadn't had that issue before, but also not 100% sure if I sent a value like ""a+a"" before. Trying to figure out why this redirect loop happens now after years. I'll leave that ticket to be a bug, but if nothing has changed in redirect_canonical() then I guess it can just be closed. Thanks for your help." retrovertigo 2 51733 redirect_canonical unneeded redirect Canonical 3.3 normal minor Awaiting Review defect (bug) new 2020-11-09T18:27:18Z 2021-08-25T13:38:31Z "Recently caught an unneeded redirect in `redirect_canonical`. Started caching responses, and ended in a redirect loop. tl;dr Per [https://tools.ietf.org/html/rfc3986#section-2.2 RFC3986], `+` is a reserved character, and we should use `%20` to encode a space in URLs (percent encoding). Per [https://tools.ietf.org/html/rfc1866#section-8.2.2 RFC1866], encode query args as `application/x-www-form-urlencoded` in which case a space is encoded as a `+`. Posting here to discuss whether we want to fix this in core, or simply leave it as is. To reproduce: - Use any `twenty{year}` theme - Customize homepage - Select `A static page` - Visit homepage with query args, e.g. https://vubuesinessplantest.help/?test=a+b+c - A redirect occurs to https://vubuesinessplantest.help/?test=a%20b%20c Considering we're using `parse_str()` to parse query variables, and it correctly parses both RFCs I'd argue we shouldn't redirect in the case when query args are the same. Here's a filter I've written to skip redirects in this case: {{{#!php comment_ID ) ? $comment->comment_ID : $comment_ID;` I'm currently working on writing tests since most of the functions I'm mentioned don't have existing test coverage. I'm also uploading a patch with my proposed solution. If this seems like the right direction to go I'll add changes to the remaining functions and update the patch (and tests)." thomasplevy 2 48027 WP_Comment fields (e.g. user_id) have wrong types Comments normal minor Awaiting Review defect (bug) new has-patch 2019-09-12T09:37:44Z 2019-09-16T04:27:51Z "WP_Comment objects retrieved e.g. with get_comment have wrong types for some member variables, e.g. user_id. Example: {{{#!php class TestInsertBug extends \WP_UnitTestCase { public function test_insert() { $comment_id = wp_insert_comment( [ 'user_id' => 1, ] ); $comment = get_comment( $comment_id ); // will fail because $comment->user_id is a string $this->assertSame( $comment->user_id, 1 ); } } }}} The constructor of WP_Comment just applies the data to the variables, without setting/fixing the types (as e.g. WP_User does for the ID)." cneumann 47514 Change priority of make_clickable callback to boost performance Comments 5.2.1 normal minor Awaiting Review enhancement new 2019-06-09T21:16:48Z 2019-06-12T18:58:25Z "Hi! Preemptive: please excuse me if this ticket is inappropriate. Since WordPress' HackerOne states explicit disinterest in DoS related issues, I hesitated at first to create this ticket here. However, the effectiveness of the DoS attack and the signifcant performance boost I gained after I understood the logic behind the attack and changed a line of code made me think this might be worth sharing here. Last week one of our clients who runs a very high profile site with WordPress fell victim to a sophisticated DoS attack where attackers spammed the site with comments containing thousands of strings such as {{{ftp.z}}}. The processing of requests that displayed these comments took a huge portion of the server's available RAM. Long story short, we identified the following callbacks as the troublemakers: 1. {{{make_clickable}}} 2. {{{wp_kses_post}}} 3. {{{wptexturize}}} 4. {{{convert_chars}}} 5. {{{convert_smilies}}} 6. {{{force_balance_tags}}} 7. {{{wpautop}}} They all have in common that they operate on the entire comment string and attempt to parse out all HTML tags contained within them via REGEX functions, which takes up a lot of RAM. As a solution for our client, we established some more spam filtering for created comments. However, out of personal interest in how this attack worked I tried to understand the logic behind the attack. The reason the attackers had created comments containing thousands of strings such as ftp.x is that the {{{make_clickable}}} callback converts these strings into full {{{}}} tags via PHP's built-in {{{preg_replace_callback}}}. Per default, comments can only contain 65500 characters. The string {{{ftp.x }}} (including the whitespace) contains only 6 characters. Thus it is possible to have the string {{{ftp.x }}} contained 10916 times within a single comment. {{{make_clickable}}} then turns those 10916 strings into 10916 tags, leading to a comment containing over 500.000 characters. Since {{{make_clickable}}} runs first, all of the other 6 callbacks that operate on the comment string use REGEX to parse 10916 * 2 (one opening and one closing) tags, leading to a huge memory overhead. I figured that changing the priority of the {{{make_clickable}}} filter so that it runs after {{{force_balance_tags}}} significantly increased the efficiency of the RAM usage of our server when confronted with comments containing links. Since the {{{}}} tags are properly generated by WP itself, there is no reason to have it run through functions such as {{{force_balance_tags}}}. To reproduce the problem, just open a test setup of WordPress and navigate to a post that has comments enabled. Create a new one and open the developer console of the browser and type {{{comment.value = ""ftp.x "".repeat(10916)}}} Submit the comment and notice how long it takes to load the site. Imagine hundreds of such comments being loaded by hundreds of bots at the same time, then you get what happened to our client's site. The following shows the patch I applied (also attached as a diff file): {{{ --- a.php 2019-06-09 22:47:58.744746903 +0200 +++ b.php 2019-06-09 22:49:00.080742874 +0200 @@ -190,7 +190,7 @@ add_filter( 'comment_text', 'wptexturize' ); add_filter( 'comment_text', 'convert_chars' ); -add_filter( 'comment_text', 'make_clickable', 9 ); +add_filter( 'comment_text', 'make_clickable', 26 ); add_filter( 'comment_text', 'force_balance_tags', 25 ); add_filter( 'comment_text', 'convert_smilies', 20 ); add_filter( 'comment_text', 'wpautop', 30 ); }}} Best regards, Olliver " olliverh87 6 18630 Custom Comment Validation Error Comments 3.3 normal minor Awaiting Review feature request new has-patch 2011-09-09T19:49:33Z 2022-07-15T15:49:43Z "One of the things that bugs me about WordPress is not being able to customize the wp_die() function that is called on comment form validation. I have seen some people sugget core hacks, eek. I'm hoping that a hook is added to allow overriding of the default wp_die(). Maybe even a new template file wp_error.php that would be called first. I haven't found a lot of discussion on this in trac just #11286 and #10551" bandonrandon 59910 "Attempt to read property ""title"" on null" Customize 6.3.2 normal minor Awaiting Review defect (bug) new 2023-11-14T19:29:52Z 2023-11-17T03:11:00Z "Hello! I am upgrading some sites to PHP 8.1 and I noticed this warning when using the Customizer screen: {{{ [11-Nov-2023 06:17:08 UTC] PHP Warning: Attempt to read property ""title"" on null in /wordpress-versions/6.3.2/wp-includes/class-wp-customize-widgets.php on line 905 }}} " jrandyanderson 1 44820 CodeMirror in Customize - copy & paste bug Customize 4.9 normal minor Future Release defect (bug) new has-patch 2018-08-20T16:10:30Z 2023-02-26T14:56:51Z "Wrong behavior in CodeMirror: I go to **Customize > Additional CSS** and copy one selector including the opening curly bracket ""{"". I paste the copied text at the end of the content of the CSS textarea and press enter to create a new line. The new line won't be created, instead Autocompletion of CodeMirror is executed and the CSS attribute **''align-content''** is added. Animated screen capture as GIF: [https://hipp.design/media/code-mirror-copy-paste.gif] It only happens, when the selector is pasted at the end (of the textarea) and if the CSS field was already filled out and the Customize have been saved before. " dionysous 1 46301 Customizer iframe warning Customize 5.1 normal minor Awaiting Review defect (bug) new reporter-feedback 2019-02-21T22:46:34Z 2021-05-30T19:44:25Z "The preview in customizer (customize.php) causes a warning message in the browser console: An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing. Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive." mensmaximus 57128 Customizer shows link to site editor when previewing themes Customize 5.9.3 normal minor Future Release defect (bug) new 2022-11-16T12:22:30Z 2023-02-14T05:30:08Z "#54878 removes the link to the customer from the theme installer in some cases, and #57127 will cover another, but if a user navigates directly to the customizer with a theme get var then they still get a confusing experience. Repro steps: 1. Activate a block theme e.g. twenty twenty-three 2. Install an additional block theme but don't activate it 2. Go to /wp-admin/customize.php?theme=loudness (where loudness is the slug of the installed but inactive block theme) 3. Notice you are previewing the second, inactive theme. 4. Get a notice saying 'Hurray! Your theme supports site editing with blocks. Tell me more. [ Use Site Editor]' 5. Click Use Site Editor (goes to /wp-admin/site-editor.php?postType=wp_template&postId=twentytwentythree%2F%2Fhome) 6. You will be editing the active theme and not the theme you were previewing I expected to be editing the theme I was previewing." dsas 54211 Small css bug when using customize-controls in customizer.php Customize 3.4 normal minor Awaiting Review defect (bug) new dev-feedback 2021-10-02T11:21:51Z 2022-09-09T10:34:04Z The form code is wrong in the css for some elements. To reproduce problem, add in customizer.php custom two customize-control-radio and two customize-control-select. You see the 'radio' has extra 10px padding on bottom. The 'select' is missing the 10px padding. So it looks very bad when you organize the elements. So either remove the 10px or add the 10px to the 'select' css. akissz 3 47550 Some Unicode characters not saving in customizer Customize 5.2.1 normal minor Awaiting Review defect (bug) new 2019-06-17T13:47:59Z 2021-05-31T16:23:54Z "If you use upcoming Emojis (Like U+1F90D White Heart - https://emojipedia.org/white-heart/ ), WordPress is unable to save the change. Works at some places, doesn't work at other places. In the customizer, i can use the Emoji for the site title and description without any problems. If i instead try to use the emoji for a widget title the preview works, but saving does not. There is no error message, all other things i changed will be saved, just the affected field keeps it old value. Workaround: In areas where i am allowed to insert HTML, i can just write F90D; to use the emoji. " marvinside 60228 has_published_pages method does not always return intended result Customize 6.0 normal minor Awaiting Review defect (bug) new reporter-feedback 2024-01-10T18:07:22Z 2024-01-11T08:06:10Z "The has_published_pages method in class-wp-customizer-manager.php has the potential to return an inaccurate result. It only checks the retrieval of a single page. Thus if there are any 'get_pages' filters utilized to remove that first page from the return, then the has_published_pages method returns false when there are other published pages. Even if there are tens of pages published the function will still return false if that first page is filtered out of the get_pages call. This potentially inaccurate return can cause the Homepage Settings sub-menu to disappear from the Appearance->Customize menu. A more accurate measure of if the user has published pages would not rely on a single page." sconroy 8 21627 Filter for custom-background CSS selector peterwilsoncc Customize 3.4.1 low minor Future Release enhancement assigned needs-unit-tests 2012-08-18T11:46:55Z 2021-05-22T17:41:50Z "There should be an easier way for changing the css selector from body to html or any other then making your own callback. " Horttcore 56260 In case of missing primary key on wp_posts, Media uploader gives false feedback indicating folder permissions are missing, where in fact database structure is malformed. Database normal minor Awaiting Review defect (bug) new 2022-07-20T15:59:51Z 2022-10-26T15:43:29Z "Hi community, Files won't upload to the media library and a misleading feedback is presented to the user (indicating there is an uploads/months/day permissions issue), where in fact the file is written successfully to disk – but WP can't write to the wp_posts database. I stumbled upon this as part of #56259 whereby wp_posts missing primary key + A.I. attributes are not picked up by WordPress (even in its repair.php functionality). The same happens with failed media uploads. The UI reports the failure to write to a folder. Whereas the AJAX response is an unhandled full-HTML page. The UI error is a mismatch from the server response. Steps to reproduce:— • Break AutoIncrement and Primary Key for wp_posts (can happen through user misfortune or third-party plugin or failed migration). • Upload media • Failure notice reports disk permissions failure, whereas the issue is in fact the database structure issue. Forgive haste on this write-up." harryfear 59974 MAX_JOIN_SIZE wp-blog-header.php Database 6.3.2 normal minor Awaiting Review defect (bug) new 2023-11-27T21:24:05Z 2023-11-27T21:24:05Z "seeing this error in the error logs for a site with over 100k posts. seems to be non-critical. {{{ [27-Nov-2023 15:42:16 America/New_York] WordPress database error The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay for query SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (2,197,213,214,215,216,217,218,219,220,225,226,227,228,229) AND wp_posts.ID NOT IN ( SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id IN (31926,31927,31928,31929,31930,31931,31932) ) ) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish'))) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 24 made by require('/wordpress-versions/6.3.2/wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts [27-Nov-2023 15:43:10 America/New_York] WordPress database error The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay for query SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (3,221,222,231,232,233,234,235,236,237,239,241,243,244,245,246,247,248,249,250,273,276,277,281,282,287,397,398) AND wp_posts.ID NOT IN ( SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id IN (31926,31927,31928,31929,31930,31931,31932) ) ) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish'))) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 24 made by require('/wordpress-versions/6.3.2/wp-blog-header.php'), wp, WP->main, WP->query_posts, WP_Query->query, WP_Query->get_posts }}} " wkeithgardner 1 46932 dbDelta does not account for MySQL keywords being used as key names Database normal minor Awaiting Review defect (bug) new 2019-04-15T12:14:29Z 2019-04-16T00:46:51Z "This, is a bug, but it is an edge case. I realize that. In processing data coming from a third party, my plugin sets up a table in MySQL that uses the field name `key`. MySQL allows this because it is wrapped in back-ticks. The field does not cause a problem in the WordPress code, but I also index on that field and that does cause a problem. {{{ KEY `i_key` (`key`) }}} This causes a small problem with `dbDelta()`. The regex starting at line 2650 will not properly identify the index. Thus, the next line, 2676, will try to use the array element `$index_type['index_type']` which does not exist. This throws a warning in PHP. There are two possible solutions I see. 1. The simple solution is to add a check for an empty array above 2767. This won't solve the problem but it will stop the warning. 2. The more complete solution would be to change the regex to exclude the keyword matches if they are inside of backticks. This will solve the problem properly. There may be other solutions, those are just the ones I have identified. Cheers! :) =C= " CalEvans 40779 function_exists() audit in wp-db.php Database low minor Awaiting Review defect (bug) new dev-feedback 2017-05-16T14:47:06Z 2021-06-01T12:50:59Z "A few `function_exists()` checks can be removed from `wp-db.php`, thanks to recent load order changes, probably nobody having looked in a while, and generally being afraid to break DB drop-ins: All of these functions are in files now loaded ahead of `require_wp_db()`: * `is_multisite` (load.php) * `_deprecated_function` (functions.php) * `mb_strlen` (compat.php) Bonus: * `mb_check_encoding()` could *maybe* be a new function in compat.php (it's used 3 times in core, using `@` or `function_exists`) ---- The only caveats are the installation process, and 10+ year-old HyperDB versions that do the old-school deep-integration thing, of directly including files – they'll need extra scrutiny." johnjamesjacoby 1 56259 Database Repair doesn't check for missing primary keys / A.I. Database normal minor Awaiting Review enhancement new 2022-07-20T15:55:41Z 2023-03-09T10:44:21Z "Hi amazing WP community, This is the second time I've come across this issue in the wild. The built-in DB repair functionality (repair.php) doesn't attempt to verify or repair missing primary key / autoincrement attributes of the core wp_posts table (and possibly other important core tables). This affects fringe/edge cases where this core table has been corrupted due to third-party plugins or other user misfortune. We just need add some SQL to check for this health database attribute, such as: {{{ SELECT COLUMN_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'wp_posts' AND CONSTRAINT_NAME = 'PRIMARY'; }}} {{{ SELECT COLUMN_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'wp_options' AND CONSTRAINT_NAME = 'PRIMARY'; }}} (Adapted from source: https://stackoverflow.com/a/52288527/8800423) These should each return 1 result each. As part of 'repair', we could have auto-fix SQL to re-enable the auto-increment / primary key. There is obviously sometimes a 'market' for that fix: https://webshop.mijnpress.nl/shop/plugins/wpdb-wp-core-database-sql-index-primary-keys-fix-script/ (commercial; no association) There are quite a few edge/fringe cases recorded that this could help: • https://wordpress.stackexchange.com/questions/353713/wordpress-database-problem-wp-posts-primary-key • https://wordpress.stackexchange.com/questions/237076/resetting-auto-increment-primary-key • https://www.alexgeorgiou.gr/repair-auto_increment-primary-key-wordpress-mysql/ • https://wordpress.stackexchange.com/questions/329162/is-it-possible-to-fix-repair-all-index-primary-key-unique-and-all-other-stru • https://wordpress.stackexchange.com/questions/225641/wordpress-database-lost-auto-increment Additionally, in a sense this is a core functionality break if these database attributes are not present because posts will fail to create in the DB. Perhaps the detection and fix shouldn't be on advanced user’s manual use of repair.php. In which case, running a regular check with mosts WP requests would be non-performant. So perhaps this could be included as a CRON'd/infrequent health check within the WP Site Health scope? N.B. The popular non-core ""WP-DBManager"" plugin does not (at latest version 2.80.8) check for (let alone repair) this issue either." harryfear 3 56091 Using %i for table/field names in wpdb::prepare() craigfrancis Database 6.1 low minor Future Release enhancement assigned has-patch 2022-06-28T19:10:52Z 2024-01-29T20:10:29Z "Now `wpdb::prepare()` supports `%i` for Identifiers (e.g. table/field names), via commit [53575], and ticket #52506. Queries within WP Core should use this, to ensure variables are always quoted, and avoid static analysis tools flagging unescaped SQL input (a non-`literal-string`) for the `$query` parameter: {{{#!php prepare( ""SELECT ID FROM $wpdb->posts WHERE post_type = %s"", $post_type ); $wpdb->prepare( ""SELECT ID FROM %i WHERE post_type = %s"", $wpdb->posts, $post_type ); }}} I'll write a patch for the first set, but I suspect there will be a lot of changes, and they should be checked carefully." craigfrancis 55938 WP prefix on installation - instructions to be indicated Database normal minor Awaiting Review enhancement new 2022-06-07T12:48:50Z 2022-06-07T14:37:01Z "Following a bad experience, changing the database prefix from ""wp_"" to ""SAI"" for security. I found out that this is giving Woocommerce a problem with creating tables in the database. This problem is solved, but I create this ticket to give the idea during the next Update, to indicate how to change the prefix. I had put SAI instead of wp_ forgetting the _ and capitalizing, hence the problem I had encountered." valentindu62 2 48285 wp-config-sample.php should default to `utf8mb4` instead of `utf8` character set Database 5.3 normal minor Awaiting Review enhancement assigned has-patch 2019-10-11T03:50:07Z 2022-09-27T22:57:02Z "MySQL's `utf8` character encoding is not a correct implementation of the standard and doesn't work with 4-byte characters, which includes many emoji. `utf8mb4` is the corrected implementation. See https://medium.com/@adamhooper/in-mysql-never-use-utf8-use-utf8mb4-11761243e434 or just google ""mysql utf8 vs utf8mb4"" It would seem wise for `wp-config-sample.php` to default then to `utf8mb4` instead of `utf8` so that new installations have the improved character set." bchecketts 2 53236 Nonce lifespans are inaccurate and unintuitively affected by timezones Date/Time 2.5 normal minor Awaiting Review defect (bug) new needs-unit-tests 2021-05-20T09:51:46Z 2021-06-02T04:37:01Z "The docs on [[https://developer.wordpress.org/reference/functions/wp_verify_nonce/|wp_verify_nonce()]] specify that nonces are either 0-12 or 12-24 hours old by default, but this isn't true. In reality, the value `1` means < 12 hours old, but `2` means anywhere from 1 second to < 24 hours old. Observe what happens to the nonce tick value over a day: ||=local time=||=seconds since epoch=||=tick=|| ||2021-05-20T00:00:00+03:00||1621458000||37534|| ||2021-05-20T01:00:00+03:00||1621461600||37534|| ||2021-05-20T02:00:00+03:00||1621465200||37534|| ||2021-05-20T03:00:00+03:00||1621468800||37534|| ||2021-05-20T04:00:00+03:00||1621472400||37535|| ||2021-05-20T05:00:00+03:00||1621476000||37535|| ||2021-05-20T06:00:00+03:00||1621479600||37535|| ||2021-05-20T07:00:00+03:00||1621483200||37535|| ||2021-05-20T08:00:00+03:00||1621486800||37535|| ||2021-05-20T09:00:00+03:00||1621490400||37535|| ||2021-05-20T10:00:00+03:00||1621494000||37535|| ||2021-05-20T11:00:00+03:00||1621497600||37535|| ||2021-05-20T12:00:00+03:00||1621501200||37535|| ||2021-05-20T13:00:00+03:00||1621504800||37535|| ||2021-05-20T14:00:00+03:00||1621508400||37535|| ||2021-05-20T15:00:00+03:00||1621512000||37535|| ||2021-05-20T16:00:00+03:00||1621515600||37536|| ||2021-05-20T17:00:00+03:00||1621519200||37536|| ||2021-05-20T18:00:00+03:00||1621522800||37536|| ||2021-05-20T19:00:00+03:00||1621526400||37536|| ||2021-05-20T20:00:00+03:00||1621530000||37536|| ||2021-05-20T21:00:00+03:00||1621533600||37536|| ||2021-05-20T22:00:00+03:00||1621537200||37536|| ||2021-05-20T23:00:00+03:00||1621540800||37536|| …and over the boundary of a tick: ||=local time=||=seconds since epoch=||=tick=|| ||2021-05-20T14:59:58+03:00||1621511998||7535|| ||2021-05-20T14:59:59+03:00||1621511999||7535|| ||2021-05-20T15:00:00+03:00||1621512000||7535|| ||2021-05-20T15:00:01+03:00||1621512001||7536|| ||2021-05-20T15:00:02+03:00||1621512002||7536|| In this example, you can see that a nonce generated at 3pm and verified one second later will return 2 because of the tick change. The ticks do not align with timezones due to their basis in universal time, so nonces will always appear “old” to your code at certain times of the day, as touched on in ticket:33635#comment:2. I haven't thought of a way to reduce the huge variance in ages that have equal nonce values, but I did think of a way to make them more predictable. I've attached a patch that would align ticks to WP's timezone so there would be a predictable two ticks per calendar day, a.m. and p.m., starting at 00:00." lev0 2 48204 wp_exif_date2ts throws notice on empty date Date/Time 5.2.3 normal minor Future Release defect (bug) new has-patch 2019-10-03T19:39:39Z 2023-06-29T01:45:04Z "When an image has the EXIF field DateTimeDigitized defined, but set to an empty timestamp, like {{{ : : : : }}} a PHP notice is thrown during upload. I don't know how common this is, but I've seen it on several family photos that were scanned by my aunt. The EXIF info mentions both HP Scanjet 4370, FinePixViewer Ver.4.2, and FUJIFILM. Anyway, it can be pre-empted with this between the two calls to explode(): {{{ if ( ':' === $date ) { return ''; } }}} I've attached a sample file to replicate the problem." nosilver4u 1 57955 wp_localize_jquery_ui_datepicker parsing general settings date_format wrong Date/Time 6.1.1 normal minor Awaiting Review defect (bug) new changes-requested 2023-03-20T10:23:54Z 2023-03-20T19:08:16Z "Hi, I found that function **wp_localize_jquery_ui_datepicker** under wp-includes/script-loader.php isn't formatting **date_format** right. **date_format** settings may include scaped characters as in spanish: ""j \d\e F \d\e Y"" and this function using php **str_replace** isn't having in consideration that posibility so we end up having: ""d \dd\e MM \dd\e yy"" Expected output should be: ""d \d\e MM \d\e yy"" [https://developer.wordpress.org/reference/functions/wp_localize_jquery_ui_datepicker/ wp_localize_jquery_ui_datepicker] Thanks, " naamb 1 46655 Block editor adding line breaks between blocks Editor 5.1 normal minor Awaiting Review defect (bug) new 2019-03-26T13:09:51Z 2020-09-24T09:50:37Z When a post is created in the block editor the generated HTML receives 3 line breaks in between blocks. This isn't much of an issue in the browser but the line breaks are also inserted into feeds which are then displayed in some RSS readers. jchristopher 51186 CMD S Not saving/updating posts Editor normal minor Awaiting Review defect (bug) new reporter-feedback 2020-08-29T13:01:13Z 2021-05-04T06:01:57Z "Hi there, I have detected this today: pressing CMD S is not saving/updating posts. It shows the animation, as the post was being saved but it is not. I am using the classical editor. I am running WordPress 5.5 and have the following plugins installed: Add Categories to Pages AddToAny Share Buttons Classic Editor Contact Form Maker CSS & JavaScript Toolbox Lockdown WP Admin Select Post Snippets Select Really Simple SSL Really Simple SSL Select TinyMCE Advanced TinyMCE Advanced Urvanov Syntax Highlighter Wordpress Hide Posts WP Disable Automatic Updates " HairyPotter 2 56873 Core Blocks validation error from wordpress 6.0.3 Editor 6.0.3 normal minor Awaiting Review defect (bug) new 2022-10-20T21:47:17Z 2022-10-21T01:46:23Z Hello! There seem to be some validation errors of some core block patterns from version 6.0.3 (they seem to be inconsistencies of the style attribute). They can be viewed in the developer console. gigito78 50108 Custom Post Type with public => false still generates/reserves title as permalink Editor 5.4.1 normal minor Awaiting Review defect (bug) new 2020-05-06T22:30:47Z 2020-05-07T20:07:09Z "A message with a permalink is still shown/generated after publishing a post of a custom post type with public=>false. **prerequisite** - Generate a basic custom post type like this {{{#!php 'My Teasers' ); $args = array( 'label' => 'Teaser', 'description' => 'it is a custom post type', 'labels' => $labels, 'supports' => array( 'title', 'editor', 'custom-fields' ), 'hierarchical' => false, 'public' => false, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'menu_icon' => 'dashicons-groups', 'show_in_admin_bar' => true, 'show_in_nav_menus' => false, 'can_export' => true, 'has_archive' => false, 'exclude_from_search' => true, 'publicly_queryable' => true, 'capability_type' => 'page', 'show_in_rest' => true, ); register_post_type( 'teaser', $args ); } add_action( 'init', 'teaser_post_type', 0 ); }}} **issue** - create a post of the custom post type - type in a title and click on publish - it will ask if you're ready to publish, so click publish again - a new message appears: ""%post_title% is now live"" - below that is a generated permalink (domain.com/%post_type%/%post_name%/) (also ""view post"" and ""copy link"" buttons) The permalink leads to a 404 page which is correct, but the generated permalink and buttons should not happen (at least not be shown in the message), because the custom post type is public=>false. " TBschen 60181 Date Block setting issue Editor normal minor Awaiting Review defect (bug) new 2024-01-03T04:24:18Z 2024-01-03T07:16:13Z "In any theme, in Date Block, if I select any date it displays the date of the previous day while in the date picker it shows the proper date. also on the frontend, it show properly selected date. Video Url - https://drive.google.com/file/d/1JfOQGSlCkajEl_eg4VZ0gPiwB8JGVMee/view?usp=sharing" pranitdugad 60035 FSE: sidebar has incorrect breaking point Editor 6.4.2 normal minor Awaiting Review defect (bug) new close 2023-12-08T13:26:32Z 2023-12-20T23:16:49Z "The `.edit-site-layout__sidebar-region` container in the sidebar in FSE view has an incorrect breaking point, leading the UI to display the sidebar with an unwanted gap to its right at **exactly** 782px viewport. [[Image(https://cdn-std.droplr.net/files/acc_402767/kW2F1b)]]" corsonr 1 60155 Gallery Block issue with aligning individual images Editor normal minor Awaiting Review defect (bug) new close 2023-12-27T03:56:30Z 2024-01-10T05:34:32Z "In Themes earlier than twenty Twentyone, when images are added in the gallery block and if alignment is added on them, the Gallery block structure breaks. Video Url - https://drive.google.com/file/d/1RjgXCK8C9OLejMf6dqS_9WcaKvz4FK1S/view?usp=sharing" pranitdugad 1 60615 Gutenberg > Typography > Font > Manage Font : While fetching the the fonts, the loader is not alight in the centre. It should have equal top bottom spacing. Editor normal minor Awaiting Review defect (bug) new 2024-02-23T06:06:15Z 2024-02-27T05:35:40Z "== Bug Report === Description I believe the loader that appears should have equal spacing from top to bottom. === Environment - WordPress: 6.5-beta2 - 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: macOS - Theme: Twenty Twenty-Four 1.0 - 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.3 * WordPress Importer Git loader 0.8.2 === Steps to Reproduce 1. Go to Themes > Editor 2. Click on any heading or paragraph 3. Now, open a style 4. Click on Typography 5. Click on Font > Manage Fonts icon 6. Now, observe the loader appearing here which does not equal spacing from top-bottom. === Expected Results 1. ✅ IMO it should be centre-aligned. === Actual Results 1. ❌ Uneven top-bottom spacing. === Supplemental Artifacts Add as Attachments" krupajnanda 2 48915 Gutenberg Paragraph Block, Drop Cap missing sanitize rule for initial hard return line
Editor 5.3 normal minor Awaiting Review defect (bug) new 2019-12-09T05:01:54Z 2020-01-10T21:15:46Z "When content has dirty markups, or mistaken is made with hard return before input, more specifically a
markup as first element, Drop Cap option can be enable but there is no effect on the first letter in the rendered content. See example: {{{


Lorem Ipsum quam quasi mollitia

}}} " Giorgio25b 1 50110 Incorrect property docblocks in WP_Block_Type peterwilsoncc Editor 5.0 normal minor Awaiting Review defect (bug) assigned 2020-05-07T10:08:41Z 2021-02-09T05:33:50Z "In the class WP_Block_Type the docblocks declare `@var #TYPE#` for several properties of the class. Below I will use `attributes` as an example, but this counts for all the following properties: - render_callback - attributes - editor_script - script - editor_style - style The docblock defines that the property must be a certain value ('array' in the case of attributes), but it is not set in the constructor and is optionally set in the `set_props()` method, if `args` has been supplied with the correct property. {{{#!php /** * Block type attributes property schemas. * * @since 5.0.0 * @var array */ public $attributes; }}} This allows the property to be null, which conflicts with de docblock. == Proposed solution(s) === 1. Declare default value: This might change behavior, where null is expected (see `get_attributes()` for example) {{{#!php /** * Block type attributes property schemas. * * @since 5.0.0 * @var array */ public $attributes = array(); }}} === 2. Add possible null to docblock This would lead might lead to other conflicts, such as using the the null value as an array without a type check. {{{#!php /** * Block type attributes property schemas. * * @since 5.0.0 * @var array|null */ public $attributes; }}} === 3. Do not declare @var The `set_props()` method currently does not do any type checking, so in theory all the properties listed above are `mixed`. ''(intentionally borked example)'' {{{#!php new \WP_Block_Type( 'name', array( 'attributes' => 'This is not an array.' ) ); }}} This places responsibility of type checking on implementing code, which would be most 'correct' with the current `set_props()` method." nielsdeblaauw 1 53134 Keep current URL domain for View Post on View Post link Editor 5.7.1 normal minor Awaiting Review defect (bug) new 2021-05-02T19:53:25Z 2021-07-24T17:43:12Z "Hello, I am using BrowserSync to proxy my remote site to https://localhost:3000 on my local machine through ssh forwarding. I have noticed that the localhost domain name is reverted to my site real domain on the backend for the 'View Post' link, when updating a post using Gutenberg. This behavior does not happen with the classic editor. It would be great if the 'View Post' link could retain the localhost domain on post update. Steps to reproduce: 1) Run BrowserSync or equivalent as proxy 2) Open post for edit on backend on localhost domain 3) Check 'View Post' link, it should have localhost as domain 4) Click 'Update' or 'Publish' 5) Check 'View Post' link again and it will now have the site domain instead Classifying as bug as the behavior deviates from what the classic editor does." chamois_blanc 59535 Page/Post scrolls up while converting quotes to paragraph Editor 6.3.1 normal minor Awaiting Review defect (bug) new 2023-10-04T11:37:35Z 2023-10-05T04:40:02Z "I found this while testing the capture toolbar for the quote block for WordPress 6.4 beta2, but was able to reproduce it in 6.3.1. == Issue In the block editor, Page/Post scrolls up while converting a quote to a paragraph. == Steps to Reproduce 1. Open a post or page. 2. Insert Title and long text so that scroll bar appears. 3. At the end insert quote block 4. Write a quote and citation 5. Click on the block so that quote block toolbar appears 6. Click on quote icon (first icon in the quote toolbar) 7. Click on transform to ""Paragraph"" == Actual Result: Page/Post scrolls up while converting a quote to a paragraph. == Expected Result: Page/Post should not scroll up while converting a quote to a paragraph. " hardikgohil 1 53046 Scrollbars Broken in latest visual editor Editor 5.7.1 normal minor Awaiting Review defect (bug) new 2021-04-15T23:34:48Z 2021-05-18T06:14:18Z "Not only is the mouse disabled from scrolling using its scroll wheels, but the scroll bars on the side of the screen also are disabled except for the thumbs. You can drag the thumbs to scroll the content, but you can't click the arrows or scroll with the mouse. Rather clicking the arrows shows the clicked state of the arrow icons, but nothing scrolls. Also, from within a block, a new set of full-screen scrollbars appears inside the outermost scrollbars (which make no sense and do nothing--mostly because the box is 1 unit high and doesn't need to stroll)" WhirledPress 57962 The active state is not being displayed in the Justify content of the quick edit. Editor normal minor Awaiting Review defect (bug) new close 2023-03-21T07:54:30Z 2023-03-21T21:11:05Z While going through the blog I wan to make the title justified I found that the justify-content tab is not assigned the active state. I am also attaching the video for the same below. hilayt24 49293 When trying to add an existing post category to a post - simply check the box of this category Editor 4.8 low minor Future Release defect (bug) new 2020-01-26T12:24:41Z 2020-01-28T16:50:55Z "What happens now: When writing a new post and trying to add a new category for this post, if this category already exists - nothing really happens. What should happen: If this category already exists - simply check the box of this category. " shayatik 48539 WordPress Editor sometimes chops off titles in Chrome Editor 5.2.4 normal minor Awaiting Review defect (bug) new 2019-11-08T15:16:20Z 2019-11-08T22:38:19Z "Somtimes the WordPress Editor chops titles at the top of a page when editing. Unlike the ""missing images"" problem I reported, this one does NOT show up in Firefox. Example Attached" cube1us 51644 allowed_block_types breaks if array keys become non-sequential Editor 5.5.1 normal minor Awaiting Review defect (bug) new 2020-10-27T12:40:21Z 2021-02-23T20:38:16Z "When the blocks array is filtered using `allowed_block_types`, I want to remove some blocks. Using a loop and a combination of `array_search()` and `unset()`, I remove the blocks I need to remove. However, it seems that this results in all blocks being available (the same as returning true for `allowed_block_types`). This can be easily averted in your own hooked function by using `$blocks = array_values( $blocks )` to reset the array keys so they're sequential again. However, this seems like a minor bug worth fixing at root for anyone else removing blocks this way (apply `array_values()` to the array if an array is returned by the `allowed_block_types` filter). Not sure if this might be affected by decisions made for https://core.trac.wordpress.org/ticket/50706" gyrus 57823 buttons don't align center Editor 6.1.1 normal minor Awaiting Review defect (bug) new close 2023-02-28T15:44:54Z 2023-03-06T07:19:44Z "Buttons aren't aligning center. Container not set to `display: flex;` or `display: grid;` https://store.irishtradmusic.org/ The big button in the center centers when I add CSS: {{{ .wp-block-buttons { display: flex; } }}}" stinkykong 55844 color picker has scroll in styles menu Editor 6.0 normal minor Awaiting Review defect (bug) new 2022-05-26T12:29:42Z 2022-05-28T00:32:18Z in the color picker inside the styles menu moving your color picker circle to the right makes the color picker have a scrollbar in the bottom. tomkolron 1 11465 custom field duplicated westi* Editor 2.8.4 normal minor Future Release defect (bug) accepted 2009-12-16T21:09:23Z 2022-06-08T22:40:11Z "When I enter the information for a custom field and click on Preview without first clicking Add Custom Field, the custom field is saved. But then when I click Publish, it is saved again, appearing in the post twice. If I click Add Custom Field before Preview, subsequent Publish does not duplicate the custom field. But it is very convenient and efficient to be able to avoid a separate save of the custom field. " ericr23 1 53682 tags (keywords) with umlauts don't get saved in german locale Editor 5.7.2 normal minor Future Release defect (bug) new 2021-07-17T15:41:20Z 2023-07-09T16:44:05Z " == This report is about assigning keywords to an article. **First keyword:** ""Gärten"" with slug ""gaerten"" (exists already) **Second keyword:** ""Garten"" with slug ""garten"" (was not created yet) I tried to apply the new keyword ""Garten"", but once I saved the article, the keyword ""Gärten"" was assigned in the preview. I removed it and tried to assign ""Garten"" once again, but WordPress keeps applying ""Gärten"" to the article, even though **the editor showed ""Garten"" in the sidebar** (as expected). I then created the keyword ""Garten"" with slug ""garten"" manually in the keyword management interface. Now I have both keywords in my database. But still, when I try to assign ""Gärten"" in the editor, WordPress keeps changing it to ""Garten"", once the article is saved and I view the preview. The slugs are different (gaerten vs. garten), but it seems like the editor confuses the German umlauts in Gärten with Garten. I am using the latest WordPress 5.7.2 and the Classic Editor." spielautomat4 57812 wp-block-image caption Editor 6.1.1 normal minor Awaiting Review defect (bug) new reporter-feedback 2023-02-26T20:53:14Z 2023-03-06T07:29:23Z "In wp-block-image block caption at the front end shows " iouweb 2 57420 Add filter for wp_theme_get_element_class_name Editor normal minor Awaiting Review enhancement new has-patch 2023-01-04T10:09:25Z 2023-01-18T10:44:07Z "Hello, I think it would be a good idea to add a filter to the wp_theme_get_element_class_name or WP_Theme_JSON::get_element_class_name function return. This would allow to add classes programmatically to the elements. It could be something like that : {{{#!php the vimeo video player is with large blank space on top and bottom More details : Seems like this is the iframe code on the WP Public page : >> this width / height seems large and does not seems to come from the site theme either. " Trouffman 60729 YouTube embed start= Embeds 6.4.3 normal minor Awaiting Review defect (bug) new 2024-03-08T07:24:54Z 2024-03-08T07:24:54Z "Hi. I am experiencing an issue where I am seeing the video start time being either randomized or shifted for each load. Expected behavior: YouTube video embedded with a timestamp like {youtube_url}start=5064, video starts at 1:24:24 each time video is loaded on a blog post. Issue 1: if ""resize for smaller devices"" is active the start point is randomized before posting. E.g. at 5064 it start approximately 30 seconds before it should (say 5034). I shift the start time to 5094 to try and compensate, resulting in it starting earlier than previously (say 5004). I leave it at 5064 and publish the blog post, with the result of it starting at 0 seconds (incognito mode, fresh browser, logged in). Issue 2: Resize for smaller devices is turned off. Now the first time the video is loaded it starts where it is supposed to start at 5064 seconds (steps: start video -> refresh page -> start video -> refresh -> ...). But, for each time the blog post is loaded and the viewers presses play, the start time shifts back approximately 30 seconds. This does not happen in incognito mode, here it loads at the correct timestamp each time the page is reloaded and video started." chrdre 44074 oEmbed with many
 tags do not work		Embeds		normal	minor	Awaiting Review	defect (bug)	new		2018-05-14T14:31:21Z	2019-01-17T00:56:14Z	"If an oEmbed has more than ten {{{
}}} tags {{{WP_oEmbed::_strip_newlines}}} (called by {{{oembed_dataparse}}}} filter) returns a wrong result for it.

All {{{
}}} tags get temporarily replaced by a token, the newline stripping gets done and then the tokens {{{
}}} get replaced back to their HTML. The tokens unfortunately are just {{{__PRE__}}} plus a counter (e.g. {{{__PRE__0}}}, {{{__PRE__1}}}) Thus if there are more than ten {{{
}}} tags there will be tokens like {{{__PRE__10}}}. These obviously clash with previous tokens.

Granted, this is ''quite'' uncommon but nonetheless it should be fixed in my opinion."	jagszent
	57451	Cross Site Request Forgery on Admin of any wordpress site to export files		Export		normal	minor	Awaiting Review	defect (bug)	new		2023-01-12T13:13:23Z	2023-03-20T04:34:24Z	"[Marked as No Impact By WordPress Hackerone Team]

Cross-Site Request Forgery (CSRF) is an attack that forces an end user to execute unwanted actions on a web application in which they’re currently authenticated. With a little help of social engineering (such as sending a link via email or chat), an attacker may trick the users of a web application into executing actions of the attacker’s choosing

Steps To Reproduce:

1. Login to WordPress Backend as an Admin
2. Go-to Tools > Export > Select what to export
3. Select the Data you want to export. Capture this request using a web-proxy like BurpSuite
4. Since this is a GET request, Copy the URL to which request is made.
5. Send this URL to another admin or user with equal rights.
6. When he clicks on the URL, he shall download the file automatically.

The endpoint vulnerable:
`http:///wp-admin/export.php?download=true&content=all&cat=0&post_author=2&post_start_date=0&post_end_date=0&post_status=0&page_author=0&page_start_date=0&page_end_date=0&page_status=0&attachment_start_date=0&attachment_end_date=0&submit=Download+Export+File`

Recommendations
Enforce CSRF protection like wpNonce Token for file export endpoint.

Impact
Unauthorised File Download on an administrator's PC
An attacker can write a script which sends 100s of GET requests at once to the endpoint, and share the script to another user, and when he downloads 100 files at once, it shall also consume his disk space"	f41z4n
2	7813	export function does not preserve encoding	tott	Export	2.7	normal	minor	Future Release	defect (bug)	new	has-patch	2008-09-30T20:07:25Z	2019-03-15T00:31:35Z	"when exporting strings are always converted to utf-8 while header and encoding is set to encoding used in blog.

this causes trouble when importing later."	tott
1	57711	PclZipUtilTranslateWinPath() fails when php_uname() function not available		External Libraries	6.1.1	normal	minor	Future Release	defect (bug)	new	has-patch	2023-02-14T10:40:37Z	2023-12-03T01:10:39Z	"In PclZip class (wp-admin/includes/class-pclzip.php) PclZipUtilTranslateWinPath() calls php_uname(). If that function is disabled then the call fails.

php_uname() is disabled on EasyWP host (part of Namecheap).
https://www.namecheap.com/support/knowledgebase/article.aspx/9901/2279/easywp-list-of-php-functions-disabled-on-easywp-platform/

Core handles this by checking whether php_uname() exists (in wp-admin/includes/class-wp-debug.php).

Is it possible to get PclZip to do the same? I checked PclZip host site (http://www.phpconcept.net) but there was no contact info there.

This error arose while using https://wordpress.org/plugins/simply-static/"	daymobrew
1	34130	Thickbox previous arrow		External Libraries	4.3.1	normal	minor	Awaiting Review	defect (bug)	new	close	2015-10-02T15:22:51Z	2021-03-15T21:51:46Z	"The previous arrow in Thickbox does not work reliably. It sometimes displays 2 images, sometimes displays just the caption. 

Since that problem does not happen with the buttons, I suggest using the ""trigger"" function instead. The following code seems to work more reliably (staring at line 137):
{{{
function goPrev(){
	if(jQuery(document).unbind(""click"",goPrev)){jQuery(document).unbind(""click"",goPrev);}
	jQuery(""#TB_window"").remove();
	jQuery(""body"").append(""
""); tb_show(TB_PrevCaption, TB_PrevURL, imageGroup); return false; } jQuery(""#TB_prev"").click(goPrev); function goNext(){ jQuery(""#TB_window"").remove(); jQuery(""body"").append(""
""); tb_show(TB_NextCaption, TB_NextURL, imageGroup); return false; } jQuery(""#TB_next"").click(goNext); jQuery(document).bind('keydown.thickbox', function(e){ if ( e.which == 27 ){ // close tb_remove(); } else if ( (e.which == 190) || (e.which == 39) ){ // display next image jQuery(""#TB_next"").trigger( ""click"" ); } else if ( (e.which == 188) || (e.which == 37) ){ // display previous image jQuery(""#TB_prev"").trigger( ""click"" ); } return false; }); }}}" Eric3D 2 8828 Tags and Categories are undifferentiable in Atom and RSS feeds Feeds 2.7 low minor Future Release enhancement new has-patch 2009-01-09T11:48:18Z 2018-02-08T16:03:00Z "In RSS feeds this can be achieved using the 'domain' attributes of the category element. This is already done in WordPress export through the wxr_post_taxonomy function, so we just have to do the same in RSS feeds. In Atom feeds this can be achieved using the 'scheme' attributes of the category element. The Atom standard is not explicit about what to put in this scheme attributes. There is [http://edward.oconnor.cx/2007/02/representing-tags-in-atom an interesting topic on Edward O’Connor blog]. In my proposed patch, i decided to use the 1st representation and i also considered seriously the 2nd. In the patch, i'm also adding the 'label' attribute to the atom category element and changed the 'term' attribute to be the tag slug. Seems this are currently the best practices in the Atom community." znarfor 58939 Option to bypass fetch_feed cache on call. Feeds normal minor Awaiting Review feature request new 2023-07-30T20:47:35Z 2023-07-30T20:47:35Z "I have a use case where users are limited to the normal 12 hour cache restrictions, but I would like to enable admins to be able to bypass the cache and pull the feed. Maybe a filter or optional parameter that would allow this? " picard102 50287 FS_METHOD=ssh2 breaks some plugins Filesystem API 5.4.1 normal minor Awaiting Review defect (bug) new has-patch 2020-05-30T21:44:41Z 2020-08-27T20:24:02Z "Some plugins expect WS_Filesystem() call to work properly without options. SSH2 method requires several options to work. When plugin does not call request_filesystem_credentials() it becomes broken by FS_METHOD=ssh2 constant. WordPress can use FTP_* constants as defaults in WP_Filesystem_SSH2 when none options are provided to constructor." denkoren 49719 PHP warning when updating ro_RO translation to latest version Filesystem API 5.3.2 normal minor Awaiting Review defect (bug) new reporter-feedback 2020-03-28T15:22:55Z 2023-03-12T02:10:55Z "The PHP warning is this: {{{ Warning: chmod(): Operation not permitted in /var/www/html/wp-admin/includes/class-wp-filesystem-direct.php on line 168 }}} Everything seems to work fine after that. I have a big number of plugins but do not know how to test this with them disabled. I use a customized version of TwentyTwenty. Thank you." silviubogan 18 48689 PHP warnings after updating to WP 5.3: ftp_nlist() and ftp_pwd() expect missing parameters costdev Filesystem API 5.3 normal minor 6.6 defect (bug) assigned needs-unit-tests 2019-11-17T23:24:37Z 2024-02-06T05:48:16Z "I updated several websites to WP 5.3 without any problems. But on one wesite I got these PHP warnings both in the backend and in the website: {{{ Warning: ftp_nlist() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 402 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 226 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 226 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 226 Warning: ftp_nlist() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 402 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 226 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 226 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 681 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 226 Warning: ftp_pwd() expects parameter 1 to be resource, null given in /wp-admin/includes/class-wp-filesystem-ftpext.php on line 226 Warning: Cannot modify header information - headers already sent by (output started at /wp-admin/includes/class-wp-filesystem-ftpext.php:402) in /wp-includes/functions.php on line 5946 Warning: Cannot modify header information - headers already sent by (output started at /wp-admin/includes/class-wp-filesystem-ftpext.php:402) in /wp-admin/includes/misc.php on line 1252 Warning: Cannot modify header information - headers already sent by (output started at /wp-admin/includes/class-wp-filesystem-ftpext.php:402) in /wp-admin/admin-header.php on line 9 }}} I suppressed the ouput by ""muting"" the function calls with '@' in the file 'class-wp-filesystem-ftpext.php', i.e. changed {{{ftp_nlist()}}} to {{{@ftp_nlist()}}} etc.. I will be glad if any reason can be found and fixed until the next WP upgrade. " Hinjiriyo 3 24925 Improve no disk space error handling when updating plugins Filesystem API normal minor Awaiting Review enhancement new dev-feedback 2013-08-02T11:25:24Z 2021-07-20T23:02:17Z "I received the following uninformative error message when trying to update a plugin (roughly translated from Finnish): {{{ Error on updating BulletProof Security. Cannot create folder. /[WPDIR]/wp-content/upgrade/bulletproof-security.tmp. }}} The error was caused by not having enough disk space. The plugin update should check if that's the reason for the error and then display a more informative error message." Daedalon 1 46561 Make wp_normalize_path() on Windows resolve drive letter for drive–relative paths Filesystem API 3.9 normal minor Awaiting Review enhancement new dev-feedback 2019-03-19T09:18:48Z 2023-03-12T08:45:38Z "Though rarely used, Windows allows to omit drive letter in file path to treat is as drive–relative. This causes inconsistency where paths pointing to the same dir are not normalized to the same representation by `wp_normalize_path()`: {{{#!php Theme File Editor or Tools > Plugin File Editor The user is served a pop-up to let them know that they're editing the theme/plugin files and this could break the site. See screenshot attached. Just noting that the buttons aren't aligned. I am using Google Chrome Version 110.0.5481.77 (Official Build) (arm64) iOS: MacOS Monterey Version 12.6.1 Macbook Pro 16 inch, 2021 Chip: Apple M1 Max Here's how to view the popup: https://d.pr/i/QbYXe1 Here's a link to the screenshot of the mis-alignment: https://d.pr/i/UfpuJa " kimclow 1 60124 Grouping a Quote Block turns the Quote to a Paragraph Formatting 6.4.2 normal minor Awaiting Review defect (bug) new 2023-12-21T03:10:24Z 2023-12-21T03:10:24Z "When using the Block Editor and attempting to 'group' an existing Quote block, the 'Quote' block gets converted to a 'Paragraph' block. My expectation is that the Quote block would be grouped inside of a Group block, but instead it seems to convert the Quote block into a Group block and then has the quote content as a paragraph block within." hanttula 5 17491 Make is_email() compliant with RFC5322 (updated by RFC6854) Formatting 3.1.2 normal minor Future Release defect (bug) reopened needs-unit-tests 2011-05-18T14:48:52Z 2023-04-14T13:59:42Z is_email('toto.@toto.com') returns true arena 1 53041 colors.css is using the old blue. Formatting 5.7.1 normal minor Awaiting Review defect (bug) new dev-feedback 2021-04-15T12:51:29Z 2021-04-15T12:51:29Z "I love the new color pallet, but I noticed that colors.css overrules the new link color in common.css. colors.css is still using hex 0073aa, while common.css is using hex 2271b1. " DuisterDenHaag 1 24487 is_email() does not recognize IDN domains Formatting 3.5.1 normal minor Future Release defect (bug) new has-patch 2013-06-03T08:24:36Z 2021-04-28T09:58:52Z "Insufficient validation of the domain name in function is_email of wp-includes/formatting.php. !WordPress 3.5.1 > , including trunk. Test for invalid characters does not test Unicode symbols in international domain, such as Cyrillic domains and other Unicode domains." OlegCorner 1 58872 wpautop not disabled when blocks are inserted dynamically Formatting 6.1.1 normal minor Awaiting Review defect (bug) new 2023-07-21T18:17:09Z 2023-07-21T18:17:09Z "**WP Version** Tested on 6.1.1, but seems to still be present on the trunk. **Context** Our theme has multiple page-header styles. Users can insert any one of those as the first block of a page, or leave it out. If it's left out, we inject a default header block as the first block of the page using a customer WP_Block_Parser. We've also imported a large number of pages from a previous pre-Gutenberg WP system, so not all posts have block content. **The Problem** On legacy posts that do not have block content, wpautop is enabled, ''even for the injected header block'', resulting in extraneous
and

tags. If there's even a single block in the post content, the block renders normally. The source of the issue is that do_blocks (https://core.trac.wordpress.org/browser/trunk/src/wp-includes/blocks.php#L1166) renders the blocks based on the results of the parser, but disables `wpautop` based on a call to has_blocks(), which uses the unparsed content to determine if there are any blocks in the post. I recognize this is an edge case, as we're dealing with both legacy content and an (ab?)use of a custom block parser to inject blocks into blockless content, so it's not likely to be a high priority. But if the ""block_parser_class"" hook is going to allow us to override the parser, do_blocks should respect the blocks that are returned regardless of the original content string, and override wpautop accordingly. **Test Cases** Attached are: * A single.php page template file that succinctly captures the problem * The contents of two pages. One has no blocks and shows the wpautop problem. The other contains a single block and shows wpautop being disabled correctly. Use the Code Editor to enter this content into a page or post." jbeninger 5 47594 Add nbsp symbol codes to convert throught sanitize_title SergeyBiryukov* Formatting 5.3 normal minor Future Release enhancement accepted has-patch 2019-06-23T17:06:42Z 2021-10-28T21:01:12Z "Default filters needs to be supplemented nbsp codes such as {{{ [ '%e2%80%af', '%e2%80%87', '%e2%81%a0' ] }}} and {{{ [ ' ', ' ', ' ', ' ', '⁠', '⁠' ] }}} " hokku 2 44906 "Include greek accent characters on ""remove_accents"" function" Formatting 4.9.8 normal minor Awaiting Review enhancement new dev-feedback 2018-09-06T19:53:57Z 2018-09-13T01:19:43Z "Hi, I extended the ""remove_accents"" function to support greek accents. If you wish you can add it in core. I have just added greek characters after: {{{#!php elseif ( 'el' == $locale ) { }}} Thanks {{{#!php 'a', 'º' => 'o', 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE','Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'Þ' => 'TH','ß' => 's', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae','ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ý' => 'y', 'þ' => 'th', 'ÿ' => 'y', 'Ø' => 'O', // Decompositions for Latin Extended-A 'Ā' => 'A', 'ā' => 'a', 'Ă' => 'A', 'ă' => 'a', 'Ą' => 'A', 'ą' => 'a', 'Ć' => 'C', 'ć' => 'c', 'Ĉ' => 'C', 'ĉ' => 'c', 'Ċ' => 'C', 'ċ' => 'c', 'Č' => 'C', 'č' => 'c', 'Ď' => 'D', 'ď' => 'd', 'Đ' => 'D', 'đ' => 'd', 'Ē' => 'E', 'ē' => 'e', 'Ĕ' => 'E', 'ĕ' => 'e', 'Ė' => 'E', 'ė' => 'e', 'Ę' => 'E', 'ę' => 'e', 'Ě' => 'E', 'ě' => 'e', 'Ĝ' => 'G', 'ĝ' => 'g', 'Ğ' => 'G', 'ğ' => 'g', 'Ġ' => 'G', 'ġ' => 'g', 'Ģ' => 'G', 'ģ' => 'g', 'Ĥ' => 'H', 'ĥ' => 'h', 'Ħ' => 'H', 'ħ' => 'h', 'Ĩ' => 'I', 'ĩ' => 'i', 'Ī' => 'I', 'ī' => 'i', 'Ĭ' => 'I', 'ĭ' => 'i', 'Į' => 'I', 'į' => 'i', 'İ' => 'I', 'ı' => 'i', 'IJ' => 'IJ','ij' => 'ij', 'Ĵ' => 'J', 'ĵ' => 'j', 'Ķ' => 'K', 'ķ' => 'k', 'ĸ' => 'k', 'Ĺ' => 'L', 'ĺ' => 'l', 'Ļ' => 'L', 'ļ' => 'l', 'Ľ' => 'L', 'ľ' => 'l', 'Ŀ' => 'L', 'ŀ' => 'l', 'Ł' => 'L', 'ł' => 'l', 'Ń' => 'N', 'ń' => 'n', 'Ņ' => 'N', 'ņ' => 'n', 'Ň' => 'N', 'ň' => 'n', 'ʼn' => 'n', 'Ŋ' => 'N', 'ŋ' => 'n', 'Ō' => 'O', 'ō' => 'o', 'Ŏ' => 'O', 'ŏ' => 'o', 'Ő' => 'O', 'ő' => 'o', 'Œ' => 'OE','œ' => 'oe', 'Ŕ' => 'R','ŕ' => 'r', 'Ŗ' => 'R','ŗ' => 'r', 'Ř' => 'R','ř' => 'r', 'Ś' => 'S','ś' => 's', 'Ŝ' => 'S','ŝ' => 's', 'Ş' => 'S','ş' => 's', 'Š' => 'S', 'š' => 's', 'Ţ' => 'T', 'ţ' => 't', 'Ť' => 'T', 'ť' => 't', 'Ŧ' => 'T', 'ŧ' => 't', 'Ũ' => 'U', 'ũ' => 'u', 'Ū' => 'U', 'ū' => 'u', 'Ŭ' => 'U', 'ŭ' => 'u', 'Ů' => 'U', 'ů' => 'u', 'Ű' => 'U', 'ű' => 'u', 'Ų' => 'U', 'ų' => 'u', 'Ŵ' => 'W', 'ŵ' => 'w', 'Ŷ' => 'Y', 'ŷ' => 'y', 'Ÿ' => 'Y', 'Ź' => 'Z', 'ź' => 'z', 'Ż' => 'Z', 'ż' => 'z', 'Ž' => 'Z', 'ž' => 'z', 'ſ' => 's', // Decompositions for Latin Extended-B 'Ș' => 'S', 'ș' => 's', 'Ț' => 'T', 'ț' => 't', // Euro Sign '€' => 'E', // GBP (Pound) Sign '£' => '', // Vowels with diacritic (Vietnamese) // unmarked 'Ơ' => 'O', 'ơ' => 'o', 'Ư' => 'U', 'ư' => 'u', // grave accent 'Ầ' => 'A', 'ầ' => 'a', 'Ằ' => 'A', 'ằ' => 'a', 'Ề' => 'E', 'ề' => 'e', 'Ồ' => 'O', 'ồ' => 'o', 'Ờ' => 'O', 'ờ' => 'o', 'Ừ' => 'U', 'ừ' => 'u', 'Ỳ' => 'Y', 'ỳ' => 'y', // hook 'Ả' => 'A', 'ả' => 'a', 'Ẩ' => 'A', 'ẩ' => 'a', 'Ẳ' => 'A', 'ẳ' => 'a', 'Ẻ' => 'E', 'ẻ' => 'e', 'Ể' => 'E', 'ể' => 'e', 'Ỉ' => 'I', 'ỉ' => 'i', 'Ỏ' => 'O', 'ỏ' => 'o', 'Ổ' => 'O', 'ổ' => 'o', 'Ở' => 'O', 'ở' => 'o', 'Ủ' => 'U', 'ủ' => 'u', 'Ử' => 'U', 'ử' => 'u', 'Ỷ' => 'Y', 'ỷ' => 'y', // tilde 'Ẫ' => 'A', 'ẫ' => 'a', 'Ẵ' => 'A', 'ẵ' => 'a', 'Ẽ' => 'E', 'ẽ' => 'e', 'Ễ' => 'E', 'ễ' => 'e', 'Ỗ' => 'O', 'ỗ' => 'o', 'Ỡ' => 'O', 'ỡ' => 'o', 'Ữ' => 'U', 'ữ' => 'u', 'Ỹ' => 'Y', 'ỹ' => 'y', // acute accent 'Ấ' => 'A', 'ấ' => 'a', 'Ắ' => 'A', 'ắ' => 'a', 'Ế' => 'E', 'ế' => 'e', 'Ố' => 'O', 'ố' => 'o', 'Ớ' => 'O', 'ớ' => 'o', 'Ứ' => 'U', 'ứ' => 'u', // dot below 'Ạ' => 'A', 'ạ' => 'a', 'Ậ' => 'A', 'ậ' => 'a', 'Ặ' => 'A', 'ặ' => 'a', 'Ẹ' => 'E', 'ẹ' => 'e', 'Ệ' => 'E', 'ệ' => 'e', 'Ị' => 'I', 'ị' => 'i', 'Ọ' => 'O', 'ọ' => 'o', 'Ộ' => 'O', 'ộ' => 'o', 'Ợ' => 'O', 'ợ' => 'o', 'Ụ' => 'U', 'ụ' => 'u', 'Ự' => 'U', 'ự' => 'u', 'Ỵ' => 'Y', 'ỵ' => 'y', // Vowels with diacritic (Chinese, Hanyu Pinyin) 'ɑ' => 'a', // macron 'Ǖ' => 'U', 'ǖ' => 'u', // acute accent 'Ǘ' => 'U', 'ǘ' => 'u', // caron 'Ǎ' => 'A', 'ǎ' => 'a', 'Ǐ' => 'I', 'ǐ' => 'i', 'Ǒ' => 'O', 'ǒ' => 'o', 'Ǔ' => 'U', 'ǔ' => 'u', 'Ǚ' => 'U', 'ǚ' => 'u', // grave accent 'Ǜ' => 'U', 'ǜ' => 'u', ); // Used for locale-specific rules $locale = get_locale(); if ( 'de_DE' == $locale || 'de_DE_formal' == $locale || 'de_CH' == $locale || 'de_CH_informal' == $locale ) { $chars[ 'Ä' ] = 'Ae'; $chars[ 'ä' ] = 'ae'; $chars[ 'Ö' ] = 'Oe'; $chars[ 'ö' ] = 'oe'; $chars[ 'Ü' ] = 'Ue'; $chars[ 'ü' ] = 'ue'; $chars[ 'ß' ] = 'ss'; } elseif ( 'da_DK' === $locale ) { $chars[ 'Æ' ] = 'Ae'; $chars[ 'æ' ] = 'ae'; $chars[ 'Ø' ] = 'Oe'; $chars[ 'ø' ] = 'oe'; $chars[ 'Å' ] = 'Aa'; $chars[ 'å' ] = 'aa'; } elseif ( 'ca' === $locale ) { $chars[ 'l·l' ] = 'll'; } elseif ( 'sr_RS' === $locale || 'bs_BA' === $locale ) { $chars[ 'Đ' ] = 'DJ'; $chars[ 'đ' ] = 'dj'; } elseif ( 'el' == $locale ) { $chars[ 'Ά' ] = 'Α'; $chars[ 'ά' ] = 'α'; $chars[ 'Έ' ] = 'Ε'; $chars[ 'έ' ] = 'α'; $chars[ 'Ί' ] = 'Ι'; $chars[ 'ί' ] = 'ι'; $chars[ 'ΐ' ] = 'ϊ'; $chars[ 'Ύ' ] = 'Υ'; $chars[ 'ύ' ] = 'υ'; $chars[ 'ΰ' ] = 'ϋ'; $chars[ 'Ή' ] = 'Η'; $chars[ 'ή' ] = 'η'; $chars[ 'Ό' ] = 'Ο'; $chars[ 'ό' ] = 'ο'; $chars[ 'Ώ' ] = 'Ω'; $chars[ 'ώ' ] = 'ω'; } $string = strtr($string, $chars); } else { $chars = array(); // Assume ISO-8859-1 if not UTF-8 $chars['in'] = ""\x80\x83\x8a\x8e\x9a\x9e"" .""\x9f\xa2\xa5\xb5\xc0\xc1\xc2"" .""\xc3\xc4\xc5\xc7\xc8\xc9\xca"" .""\xcb\xcc\xcd\xce\xcf\xd1\xd2"" .""\xd3\xd4\xd5\xd6\xd8\xd9\xda"" .""\xdb\xdc\xdd\xe0\xe1\xe2\xe3"" .""\xe4\xe5\xe7\xe8\xe9\xea\xeb"" .""\xec\xed\xee\xef\xf1\xf2\xf3"" .""\xf4\xf5\xf6\xf8\xf9\xfa\xfb"" .""\xfc\xfd\xff""; $chars['out'] = ""EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy""; $string = strtr($string, $chars['in'], $chars['out']); $double_chars = array(); $double_chars['in'] = array(""\x8c"", ""\x9c"", ""\xc6"", ""\xd0"", ""\xde"", ""\xdf"", ""\xe6"", ""\xf0"", ""\xfe""); $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'); $string = str_replace($double_chars['in'], $double_chars['out'], $string); } return $string; } }}} " papazetis 1 49129 Incorrect German Umlaut substitutions Formatting 5.4 normal minor Awaiting Review enhancement new dev-feedback 2020-01-04T00:18:46Z 2020-01-04T09:39:30Z "Hello, as a native speaker, I find the German Umlaut substitutions quite strange. Correctly, ü is turned into ue, but Ü is turned into Ue. Since the second character should be considered as part of the former character, the former capitalization should be respected. This is especially strange in uppercase text: FRÖHLICH -> FROeHLICH KÖNNEN -> KOeNNEN If it was changed to be all uppercase, it would work much better: FRÖHLICH -> FROEHLICH KÖNNEN -> KOENNEN When used at the start of a word, it would also work fine, if capitalized: ÖFFENTLICH -> OEffentlich ÜBERGANG -> UEbergang Therefore, I would propose changing the table located in wp-includes/formatting.php:1941 (https://github.com/WordPress/WordPress/blob/master/wp-includes/formatting.php#L1941) to the following: {{{ if ( 'de_DE' == $locale || 'de_DE_formal' == $locale || 'de_CH' == $locale || 'de_CH_informal' == $locale ) { $chars['Ä'] = 'AE'; $chars['ä'] = 'ae'; $chars['Ö'] = 'OE'; $chars['ö'] = 'oe'; $chars['Ü'] = 'UE'; $chars['ü'] = 'ue'; $chars['ß'] = 'ss'; }}} Though, to be entirely correct, the surrounding characters would have to be checked, which would be difficult, given the current architecture. There even is a capital ß now, which would be substituted with SS. I am happy to hear any second opinions on this. Best regards, Benedikt" bmuessig 47557 Sanitize Email Suggestion Formatting 5.2.1 normal minor Awaiting Review enhancement new needs-unit-tests 2019-06-18T15:19:58Z 2023-03-23T16:11:52Z "I am using WooCommerce and I've noticed several customer emails come through like... {{{ example@example.com1234 example@example.com1234567812345678 }}} It's mostly due to the email input being the last one before the credit card step, but these emails are passing the validation and sanitization that exists: is_email and sanitize_email. I am doing something like the following to fix... {{{#!php tags Formatting 5.5.1 normal minor Awaiting Review enhancement new 2020-10-08T12:49:54Z 2020-10-08T12:49:54Z "Like the title says, wp_kses_post filters javascript tags, but not the actual javascript itself. If you sanitize some content using wp_kses_post that contains world!""; wp_kses_post($str); Outputs: hello myvar = 'foobar'; world! Expected output: hello world!" janmiddelkoop 54136 Slideshow gallery shown as a tiled gallery when using shortcode with Classic Editor Gallery 5.8.1 normal minor Awaiting Review defect (bug) new close 2021-09-16T19:18:33Z 2021-12-15T03:15:56Z "The issue is happening with the Gallery Block, [https://wordpress.com/support/wordpress-editor/blocks/gallery-block/2/ when added through the Classic Editor as explained here.] Adding it with the shortcode {{{[gallery]}}} and the variable {{{type: slideshow}}} outputs it as a tiled gallery instead of showing a slideshow. [https://wordpress.org/support/topic/what-options-are-currently-available-in-the-wordpress-gallery-shortcode-2 This was initially reported here as a Jetpack issue], but I was able to reproduce it without Jetpack installed, and with a default theme (Twenty Seventeen). " muffinpeace 1 47744 WordPress default galleries do not display properly on Safari 10.1 and possibly other older browsers Gallery 5.2.2 normal minor Awaiting Review defect (bug) new 2019-07-20T20:48:07Z 2019-07-25T21:38:27Z "The following thread details the problem: [https://stackoverflow.com/questions/33636796/chrome-safari-not-filling-100-height-of-flex-parent] Images are nested inside a flex container. The child elements have a height of 100% which does not work on these older browsers such as Safari 10.1. This is because the parent element does not have a set height. So the child element doesn't know what 100% height is. The correct way to do it is to remove the 100% height from everything and use flex throughout the elements. {{{ .wp-block-gallery .blocks-gallery-image, .wp-block-gallery .blocks-gallery-item { flex-direction: row; } .wp-block-gallery .blocks-gallery-image figure, .wp-block-gallery .blocks-gallery-item figure { height: auto; align-items: stretch; } .wp-block-gallery.is-cropped .blocks-gallery-image a, .wp-block-gallery.is-cropped .blocks-gallery-image img, .wp-block-gallery.is-cropped .blocks-gallery-item a, .wp-block-gallery.is-cropped .blocks-gallery-item img { height: auto; display: flex; } .wp-block-gallery .blocks-gallery-image figcaption, .wp-block-gallery .blocks-gallery-item figcaption { left: 0; } }}} The above CSS fixes the issue and should replace the current CSS. " billybidley 51828 gallery items not aligned when row has less items than column count Gallery 5.5.3 normal minor Awaiting Review defect (bug) new has-patch 2020-11-19T20:42:47Z 2020-11-19T20:42:47Z "If a gallery contains not enough images to fill up all columns, in some cases the layout looks wrong. In the last row, the images are spaced evenly over the row, but the alignment is off. Screenshot with problem: https://snipboard.io/yZEabf.jpg The problem, as far as I can see, is that there aren't enough gallery-item flex boxes to ensure the layout matches the layout of a full row. I simple fix (although I am altogether not sure if this is the right way to go) is to end the row with just as many empty gallery items as needed to fill up the row. The attached patch does this, and seems to fix the problem. Screenshot with fix: https://snipboard.io/IdtlJh.jpg I would also be fine if the three images were spaced evenly over the row, but then the left and right alignment should be the same. I don't know how that could be achieved. This is with the neve theme. I don't have a reproduction with the default theme, sorry." rolekwp 59843 Headers of the table on make.wordpress blog breaks after a few second of load ( check the url in description) General normal minor Awaiting Review defect (bug) new 2023-11-08T18:56:49Z 2023-11-08T19:25:19Z "The header of the first table in the following link breaks after a moment. https://make.wordpress.org/core/2023/11/08/merging-performant-translations-into-core/ " thekt12 2 58837 Horizontal Scroll Issue in theme/plugin Editor Page File Navigation Section General 6.3 normal minor Awaiting Review defect (bug) new has-patch 2023-07-18T09:45:04Z 2023-07-19T12:52:37Z "The bug pertains to the horizontal scroll behavior of the file navigation section on the theme/plugin editor page when the display width is below 780 pixels. **Expected Behavior:** The file navigation section should adapt its layout and display the necessary elements within the available width, without requiring horizontal scrolling. **Current Behavior:** When the display width falls below 780 pixels, the file navigation section in the theme/plugin editor page fails to adjust its layout properly. As a result, some elements within the file navigation section extend beyond the visible area, causing a horizontal scroll to appear. **Steps to Reproduce:** 1. Open the theme/plugin editor page. 2. Reduce the width of the display to below 780 pixels. 3. Navigate to the file navigation section on the editor page. Video Link: https://www.awesomescreenshot.com/video/19213200?key=de8384bcde8ae4bd0a80d87836612609 " mikinc860 52359 Links in Gutenberg Continue to be Built When Typing General normal minor Awaiting Review defect (bug) new 2021-01-25T12:35:42Z 2021-01-25T15:39:39Z "If adding a link to the trailing word or phrase in Gutenberg, the link continues to be built when you continue typing. Basically, the anchor tag keeps getting pushed to the right as you type. To reproduce...type a word or phrase and end in a linking word or phrase. For this example, we will link to the word WordPress. Highlight WordPress, click the link icon in the toolbar and add the URL https://www.wordpress.org. Then continue typing. The new text will continue as part of the link. Expected behavior would be that the link does not continue to be built after the target word or phrase." dlfulle 2 60579 Notice: Undefined index: name in /wp-includes/class-wp-roles.php on line 293 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 2 46346 Page counts and related calculations typically expect and document ints but are actually floats SergeyBiryukov General normal minor Future Release defect (bug) reviewing has-patch 2019-02-26T02:22:17Z 2021-10-13T18:27:34Z Should be an int, not calculated using rounding, preventing off-by-one errors. lev0 1 59273 Plugin: Create Block Theme Bug General 6.3 normal minor Awaiting Review defect (bug) assigned 2023-09-03T18:40:57Z 2023-09-04T11:40:34Z "I'm not sure where to file this bug. So please put it whereever it's relevant. When I use the Create Block Theme plugin with WP 6.3 and try to install a Google Font this error comes up: ""Error: `DISALLOW_FILE_EDIT` cannot be enabled in wp-config.php to make modifications to the theme using this plugin."" I have tried to enable this in the wp_config.php, but this does not work. Adding fonts should be more easy in the theme. " perthykjaerjensen 56098 Post Excerpt style in query loop not able to override if paragraph color is set in the global style. General 6.0 normal minor Awaiting Review defect (bug) new has-patch 2022-06-30T04:18:39Z 2022-07-12T16:54:34Z "Post Excerpt style in query loop not able to override if paragraph color is set in the global style. ex. The paragraph colour is set to RED. The Query loop excerpt colour is set to GREEN. The final output will be RED. " tnchuntic 1 54851 Prevent unnecessary code comments from being output to the front end General normal minor Awaiting Review defect (bug) new 2022-01-18T13:01:39Z 2022-01-19T13:44:18Z "Gutenberg's ""Post Comments"" block appears to pull its code from the WordPress' theme compat `comments.php` file here: https://github.com/WordPress/wordpress-develop/blob/a0b1f27de6c928fde51bbc7078b32ca9c9d6ed8d/src/wp-includes/theme-compat/comments.php#L30-L75 This includes some code comments that may be useful for developers, but don't actually need to be send to the front end: [[Image(http://cldup.com/ebPNDuXdBe.png)]] I'd suggest we change these from HTML comments to PHP comments, so they aren't visible in the outputted markup. --- Related: https://github.com/WordPress/gutenberg/issues/37989 Tested with Gutenberg 12.4 WordPress 5.8.3" kjellr 2 55930 Provide comment syntax for templates and template parts General 6.0 normal minor Awaiting Review defect (bug) new 2022-06-06T05:59:02Z 2023-01-17T21:16:31Z "''Thanks to all of you for working on this great Free Software project! '' I'm trying to add copyright and license information to my theme. I do so using SPDX headers using REUSE tool [https://reuse.software]. This adds information to the `.html` files using HTML comments (``). The **Site Editor** in **WordPress 6.0** doesn't seem able to handle with regular HTML comments in templates and template parts. On a new theme created using `new-empty-theme.php` this results in the following `index.html` page for example: {{{ }}} It renders just fine, but in the Site Editor these comments of templates and template parts get treated as blocks. This results in an error for each template and page template that has the HTML annotations: ""**This block has encountered an error and cannot be previewed.**''''"" [[Image(https://user-images.githubusercontent.com/7458098/172100897-8fdc7d30-13c1-443d-b951-d9d004c73118.png)]] Copying the block contents (source code) the resulting output is as follows: {{{

}}} So it seems that the comment is treated as a paragraph. Besides this being valid HTML, I couldn't find anything about a separate comment syntax in the [https://developer.wordpress.org/themes/block-themes/templates-and-template-parts/] documentation. **I expect the Site Editor to ignore non-wp comments rather than trying to parse them as blocks.** ''I documented some other experiences with using REUSE on WordPress themes in an issue at the REUSE project: [https://github.com/fsfe/reuse-tool/issues/537]'' " wprediscovered 1 33141 Search form clear button is clipped in Safari (OS X) General low minor Awaiting Review defect (bug) new has-patch 2015-07-27T15:06:53Z 2017-05-23T17:20:12Z "Safari's search boxes have an ""X"" to clear the search terms. It is getting clipped. OS X. The reason for this appears to be the padding on the search box, and that we're doing this: {{{ input[type=""search""] { -webkit-appearance: textfield; } }}} which we HAVE to do in Safari in order to control certain aspects of the display. [[Image(https://cldup.com/J90Zt5PGQW-3000x3000.png)]] There is a pseudo-selector we might be able to use to fix this: `::-webkit-search-cancel-button {}`" markjaquith 54282 Search terms wrapped in double quotes never return results directly from iOS Safari keyboard General 5.8.1 normal minor Awaiting Review defect (bug) new reporter-feedback 2021-10-17T21:39:08Z 2021-10-25T16:21:23Z "If a search term wrapped in double quotes is entered into a search field on a WordPress site in iOS Safari, it will never return results, even if the search term is known to exist on the website. The bug is caused by some lack of sanitisation of the type of double-quotes that are sent by the iOS Safari keyboard. That this is the case can be revealed by typing the search term, wrapped in double quotes, in a plain text editor on iOS, copying and pasting that into the WordPress search field in the browse and hitting return to perform the search; then, the search term succeeds in finding the (known to exist) result. " sadhaka 60572 block_core_navigation_render_inner_blocks loses caret for parent items 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 55486 register_block_type_from_metadata does NOT work within a theme but as a plugin General 5.9.2 normal minor Awaiting Review defect (bug) new needs-refresh 2022-03-30T01:02:26Z 2023-05-30T12:34:44Z "I created a wordpress block and it guides me to the official documentation and it came to work as an external plugin, taking into account the architecture of block.json for its use, however it has not worked for me when the block is required to be integrated into a theme, delivery wrong path request looking in plugin folder plus adding another path. example error peticion https://domain.local/wp-content/plugins/D:/xampp/htdocs/wp-content/themes/NewsPaper/inc/gutenberg/myblock/index.js?ver=d395fe5d9d90bd6565685c91d8d38888" andre3600 1 46780 wpColorPicker() close() method uses iris 'toggle' instead of 'hide' which can unexpectedly open the color pane General 5.1 normal minor Awaiting Review defect (bug) new has-patch 2019-04-03T07:09:04Z 2019-05-23T09:49:02Z "Using the close() method, one would expect that the color picker will get closed anyway and that nothing else would happen, even if the picker in question was already closed. However, when calling the close() method on an already closed picker (e.g. when you call close() on a set of three pickers, where only 2 might be open), the color pane will get displayed. While the close() method correctly will remove the wp-picker-open class and will set the aria-expanded attribute to false regardless, the actual iris picker is just using toggle: {{{ this.element.iris( 'toggle' ); }}} Instead, it would be safer to use {{{ this.element.iris( 'hide' ); }}} which would also be more in line with how the class and attribute are handled." maximus80 5 53262 "wp_robots() (via wp_die) triggers a ""doing_it_wrong_trigger_error"", but should not." General 5.7 normal minor Awaiting Review defect (bug) new dev-feedback 2021-05-23T21:43:29Z 2022-08-03T15:31:55Z "Hello there. In my plugin, I need to die early, like, right after the plugins are loaded, imagine this for a shortcut: `add_action( 'plugins_loaded', 'wp_die' );` This is the output: ''Notice: is_embed was called incorrectly. Conditional query tags do not work before the query is run. Before then, they always return false. Please see Debugging in WordPress for more information. (This message was added in version 3.1.0.) in /wp-includes/functions.php on line 5313'' {{{ # Time Memory Function Location 1 0.0002 369912 {main}( ) .../admin.php:0 2 0.0003 370552 require_once( '/wp-load.php' ) .../admin.php:34 3 0.0003 370960 require_once( '/wp-config.php' ) .../wp-load.php:37 4 0.0003 375568 require_once( '/wp-settings.php' ) .../wp-config.php:88 5 0.0410 1735152 do_action( ) .../wp-settings.php:423 6 0.0411 1735528 WP_Hook->do_action( ) .../plugin.php:484 7 0.0411 1735528 WP_Hook->apply_filters( ) .../class-wp-hook.php:316 8 0.0882 3856336 wp_die( ) .../class-wp-hook.php:292 9 0.0882 3874480 _default_wp_die_handler( ) .../common.php:275 10 0.0884 3876304 wp_robots( ) .../functions.php:3497 11 0.0884 3876304 apply_filters( ) .../robots-template.php:32 12 0.0884 3876712 WP_Hook->apply_filters( ) .../plugin.php:212 13 0.0884 3878216 wp_robots_noindex_embeds( ) .../class-wp-hook.php:292 14 0.0884 3878216 is_embed( ) .../robots-template.php:93 15 0.0884 3878216 _doing_it_wrong( ) .../query.php:881 16 0.0885 3879304 trigger_error ( ) .../functions.php:5313 }}} another notice will be trigger, same thing but line 13 will be `wp_robots_noindex_search`. Since WP 5.7 the `wp_robots()` function is called in a `wp_die()`, but `wp_die()` can be called before the query is done, this is not too soon to die ''(for once, got it?)''. A possible patch is to delay these default filters a bit later ''(wp-includes/default-filters.php)'' instead of adding them right away: {{{ add_action( 'wp', 'wp_late_robots_check' ); function wp_late_robots_check() { add_filter( 'wp_robots', 'wp_robots_noindex_embeds' ); add_filter( 'wp_robots', 'wp_robots_noindex_search' ); } }}} Thanks for your attention." juliobox 58668 "wrong ""domain"" returned by wpmu_validate_blog_signup when using on subsite in subdomain multisite" General 3.0 normal minor Awaiting Review defect (bug) new has-patch 2023-06-29T06:25:06Z 2023-06-29T06:30:52Z "`wpmu_validate_blog_signup` function relies on global `$domain` which will give wrong results when its triggered on subsite of subdomain multisite. In cases like this, `$domain` will be set to current subsite, which will lead to unexpected value of ""domain"" element in returned array. Triggering the function on subsite will lead to ""domain"" element having value like ""newsite.currentsubsite.network"" instead of ""newsite.network"". To fix this, `$domain` should be set based on `$current_network->domain` instead of global `$domain`." maniu 59916 API Docs: update comment endpoint does't have example request gavande1 General normal minor Awaiting Review enhancement assigned 2023-11-16T11:02:29Z 2023-11-27T18:39:26Z "**Details** I noticed that the comment update API endpoint doesn't have an example request, even though the API document has a title for it. **Link to doc** https://developer.wordpress.org/rest-api/reference/comments/#example-request-2" gavande1 56846 "All test classes that use the ""wp"" prefix should be renamed for consistency" General normal minor Awaiting Review enhancement new has-patch 2022-10-18T18:42:18Z 2023-07-25T21:15:25Z "About 170 PHP test classes use lowercase `w` and only 34 test classes use capital `W` in the `wp` prefix. Examples: `wp` : `Tests_Formatting_wpParseStr` `Wp` : `Tests_Category_WpListCategories` According to [https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/#test-classes| this document], the correct spelling is `Wp`. So, all test classes that use the `wp` prefix should be renamed for consistency." antonvlasenko 1 53541 Arguments passed to load_template() should be extracted General 5.8 normal minor Awaiting Review enhancement new dev-feedback 2021-06-28T12:52:53Z 2021-06-28T16:24:41Z "As was originally voiced in this thread when ability to pass arguments to templates was added in v5.5, these arguments should be extracted. As a plugin developer today, the new $args passing does provide as good an experience in terms of simplicity and documentation as the older method of passing query vars. This is because query vars are extracted. So if I'm building a plugin that has a product template and I want to render out $product variables, or pass an object in $product, then which would I prefer to offer to theme developers: Use `$args['product']` to access the $product object. OR Use `$product` to access the product object. Clearly having the vars extracted makes them easier to access. Perhaps the objection to this is that aside from the exception made for query vars we normally try to avoiding using extract(). However in this case I think an exception is warranted. Otherwise the effort put into making argument passing available is somewhat wasted because plugin developers will likely prefer to use query vars simply because they are extracted automatically. Another potential way to enable this would be through an option argument passed to load_template (which would have to first go through locate_template() as well, and that would be $extract_args = false, or $extract_args = true. I'd opt for the later to set the default to extract, but just having that option would let developers control the naming of variables they make available in templates. Reference to the announcement, argument passing in 5.5 https://make.wordpress.org/core/2020/07/17/passing-arguments-to-template-files-in-wordpress-5-5/ load_template() on trak: https://core.trac.wordpress.org/browser/tags/5.7.1/src/wp-includes/template.php#L709 " caseymilne 1 60355 Can't save object to metadata with `readonly` properties 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 59432 Compliant with W3C coding standards General 6.3.1 normal minor Awaiting Review enhancement new 2023-09-23T08:04:02Z 2023-11-10T22:15:06Z "When validating any WordPress site, warnings appear: 1. Trailing slash on void elements has no effect and interacts badly with unquoted attribute values. Example: `` `` Also in tags img, button etc 2. The type attribute for the style element is not needed and should be omitted. Example: `

00000000000000000000

xxxxxxxxxxxxxxxxxxxx

 
 

00000000000000000000

xxxxxxxxxxxxxxxxxxxx

 
 
}}} " Andy Schmidt 45904 Twenty Nineteen: .button doesn't override link color Bundled Theme 5.0 normal normal Future Release defect (bug) new 2019-01-10T16:00:41Z 2024-02-01T08:48:17Z "Originally reported by @crunnells in Twenty Nineteen's GitHub repo: I noticed this one [https://2019.wordpress.net/ the theme demo site] when I tried to change the ""Get in touch"" button into a link. If you put a link inside of an element with the `.button` class, the link color is the same color blue as the background, so the text can't be read. The same thing occurs when you try `
`, so we'll need to have an override on the link color so that it's readable. Moved over from: https://github.com/WordPress/twentynineteen/issues/746" laurelfulford 1 47044 Twenty Nineteen: Add padding for full-aligned text blocks inside of a full-width column block. Bundled Theme normal normal Future Release defect (bug) new has-patch 2019-04-25T13:19:46Z 2019-10-03T22:05:35Z "As noted by @dianeco, after #46999, text-based blocks inside of a full-width columns block now bump up against the edges of the screen: [[Image(https://cldup.com/KnBH49tlCQ-3000x3000.png)]] In the case of media/image blocks, it's likely that users ''will'' want these to bump right up against the edge of the page, so we should try adding some padding only to text-based blocks if possible. Note that this needs to be fixed in both the editor and front-end. " kjellr 45944 Twenty Nineteen: Added URL in :after styles for print.css is unreliable Bundled Theme 5.0.3 low normal Future Release defect (bug) new has-patch 2019-01-11T19:29:13Z 2022-07-20T23:47:48Z "The print styles for Twenty Nineteen include a little snippet meant to append the URL to links so it's visible when printed: {{{ a[href^=http]:after { content: "" < "" attr(href) ""> ""; } }}} Via: https://themes.trac.wordpress.org/browser/twentynineteen/1.2/print.css#L85 [[Image(https://cldup.com/iUgRDksax1-3000x3000.png)]] This snippet is based on recommendations in this article: https://www.jotform.com/blog/css-perfect-print-stylesheet-98272/ In practice, this appears to be fairly unreliable. In testing, @Joyously and I only see those URLs sporadically, and haven't been able to pin down why. More details: https://github.com/WordPress/twentynineteen/issues/609#issuecomment-439489841 If these rules aren't working correctly, I suggest we remove them from the theme. " kjellr 46215 Twenty Nineteen: Aligning table to center not working on front end Bundled Theme 5.0.3 normal normal Future Release defect (bug) new has-patch 2019-02-08T12:36:18Z 2023-05-26T08:49:20Z "When i add **Table block** in editor and assign Alignment ""Center"" from the toolbar it's working properly in backend but it's not working properly in frontend." iamjaydip 1 56138 Twenty Nineteen: Alignment issue in Button block Bundled Theme 6.0.3 normal normal Awaiting Review defect (bug) new 2022-07-05T06:12:45Z 2023-05-25T18:42:37Z "In Twenty Nineteen Theme, when we add Button block in editor side and change the alignment of Button then the ""Align right"" is not reflected in backend as well as frontend side. Steps to replicate: 1: Activate the Twenty Nineteen Theme 2: Add Button block 3: Choose ""Align right"" from Align option 4: View the page/post at editor side 5: Save Page/Post 6: View the page/post at front side For better understanding I provide video attachment link. Video link: https://share.cleanshot.com/6IuBdTOGj2AwxsqaPA3C Thanks " kajalgohel 2 53681 Twenty Nineteen: Audio are lacking bottom margin Bundled Theme normal normal Awaiting Review defect (bug) new 2021-07-16T16:40:25Z 2021-08-13T17:00:40Z "Audio in Twenty Nineteen are lacking a bottom margin Posts that have audio: Cover block with background image is too close to the media. Attached is a screenshot from Mozilla Firefox " PGeorgiev 1 60664 Twenty Nineteen: Avatar block size is different in the editor and front Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2024-03-01T07:41:16Z 2024-03-02T05:48:33Z "The default size for the avatar block is 96. But on the front this displays as 49.5px. The size is overwritten by the theme CSS: {{{ .avatar { border-radius: 100%; display: block; height: calc(2.25* 1rem); min-height: inherit; width: calc(2.25* 1rem); } }}} When the user changes the size in the block option in the settings panel, it is not reflected on the front. === Environment - WordPress: 6.4.3, also tested on 6.5 Beta - PHP: 8.1.23 - Server: nginx/1.16.0 - Database: mysqli (Server: 8.0.16 / Client: mysqlnd 8.1.23) - Browser: Chrome 122.0.0.0 - OS: macOS - Theme: Twenty Nineteen 2.7 - MU Plugins: None activated - Plugins: * Test Reports 1.1.0 === Steps to Reproduce 1. Add an avatar block. 2. Duplicate the block and adjust the size to be larger than the default. 3. Duplicate the block again and adjust the size to be smaller than the default. === Expected Results 1. ✅ Avatar size should match the size set in the block control === Actual Results 1. ❌ Avatar size does not match the size set in the block control " poena 2 45473 Twenty Nineteen: Avoid html code in translatable strings Bundled Theme normal normal Future Release defect (bug) new dev-feedback 2018-12-03T14:20:45Z 2023-04-28T04:05:03Z "As always only the translatable part should appear for translators to avoid issues. I came across this one: {{{#!php Published in
%title }}} " Presskopp 50144 Twenty Nineteen: Block-Setting doesn't work after updating theme to 1.5 Bundled Theme 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-11T12:50:13Z 2020-05-30T17:57:08Z "After updateing theme twenty nineteen to version 1.5 on WP 5.4.1 - the blocksetting - wide or fullsize - doesnt work any more (only at textblocks). Using gutenberg-editor it looks like it works - after activating the page, it doesnt work any more. The reset to 1.4 works only, if the hole wp is set to the state bevor and the Workbench is restartet. https://www.peterrohde.de/2020-05-11_123431.png " peter4711 45750 Twenty Nineteen: Bug in the menu on mobile devices; only partially visible desktop version of the menu sometimes shown instead of fullscreen mobile menu Bundled Theme 5.0 normal normal Future Release defect (bug) new 2018-12-23T11:35:44Z 2020-02-24T21:01:15Z When I click on the menu icon on websites (I've tried multiple websites, including uncustomized new installs) with the Twenty Nineteen theme, using a mobile device (iPhone 5s), it opens the mobile (fullscreen) version of the menu about half the time, but it otherwise opens the desktop version of the menu (non-fullscreen) which is only partially visible on a mobile device and not possible to use properly. I experienced this problem with the 5.01 and 5.02 versions of WordPress and the 1.0 and 1.1 versions of Twenty Nineteen. jklv 1 56536 Twenty Nineteen: Button align right not working Bundled Theme normal normal Awaiting Review defect (bug) new 2022-09-08T18:14:56Z 2023-03-20T16:53:32Z "Steps to reproduce: 1. Activate the theme Twenty Nineteen. 2. Add the button block. 3. Set the alignment as right. You will see it will not align in the right, it will align on the left." smit08 58099 Twenty Nineteen: Button block does not respect custom width in the editor Bundled Theme 5.7 normal normal Future Release defect (bug) new 2023-04-06T15:52:52Z 2023-04-06T21:38:08Z "Steps to reproduce the issue :- 1. Activate Twenty Nineteen theme. 2. Choose button block. 3. Apply width from 25, 50 or 75. You can able to see a different changes user side but editor side it remains same. I have attached video for better understanding. Video URL :-https://share.cleanshot.com/RQYncB59N8Yf42TzvMdQ" nidhidhandhukiya 56220 Twenty Nineteen: Centered H2 headings on full-width Cover blocks are not correctly centered Bundled Theme normal normal Future Release defect (bug) new 2022-07-14T15:40:20Z 2022-08-10T21:17:31Z "When H2 headings are added to a full-width Cover block and centered in the block editor, they do not appear visually centered on screen. This does not affect other heading sizes, only H2. == Steps to reproduce - Add a Cover block to a page and set the block to Full width - Add an H2 Heading block on top of the Cover block - Set the H2 Heading to center alignment - Add other elements like an H1 heading or paragraph and center those as well - View published page == What you expected to happen All centered elements should be centered horizontally. == What actually happened Only the H2 headings are not correctly centered; they are displayed too far to the left. Other elements are correctly centered. == Workaround This custom CSS may be used as a workaround: {{{ @media only screen and (min-width: 1168px) { .entry .entry-content .wp-block-cover.alignfull h2 { max-width: unset; } } }}} == Specs Replicated with Twenty Nineteen 2.3 WordPress 6.0.1 Gutenberg 13.6.0 active or inactive No other plugins active Firefox 102.0.1 / Chrome 103.0.5060.114 / Safari 15.3 MacOS 12.2.1 Browser size: ~~1008 x 499~~ 1512 × 748" zoonini 3 45858 Twenty Nineteen: Container content cut off on the right for specific browser widths Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2019-01-08T04:20:56Z 2019-01-31T22:20:41Z "Originally reproduced here: https://github.com/Automattic/jetpack/issues/11058 **Steps to reproduce:** - Install Twenty Nineteen on a site - Create a post or a page - Write content (or, what works best for reproducing is when one is using Jetpack's tiled gallery with circles layout) - Add a few images on that tiled gallery **What is expected?** The images appear in circles layout in full **What happens instead?** A few images are cut off, on the right **Notes:** After a bit of investigation on that Jetpack issue, the issue seems to be specific to this CSS declaration: {{{ @media only screen and (min-width: 1168px) { .entry .entry-content > *, .entry .entry-summary > * { max-width: calc(6 * (100vw / 12) - 28px); } } }}} It seems to impact all containers at specific browser widths." arunsathiya 59263 Twenty Nineteen: File block does not respect center alignment setting Bundled Theme 5.0 normal normal Awaiting Review defect (bug) new 2023-09-01T13:31:31Z 2023-09-01T18:06:36Z "In the Twenty Nineteen Theme, the File Block element may not be centered correctly on the front end of the website. This misalignment can result in a visually uneven layout. For a better understanding, I have attached a video. https://www.awesomescreenshot.com/video/20417359?key=343f6fb217d9d85baa05a68bcd238f6a Thank you." truptikanzariya 57396 Twenty Nineteen: Font size issue in Cover Block Bundled Theme 6.1.1 normal normal Awaiting Review defect (bug) new 2022-12-29T12:49:00Z 2023-06-08T13:30:12Z "In Twenty Nineteen Theme, when we add a Cover block on the editor side and add the overlay text after that change the font size of the text then the changes are not reflected in the backend as well as frontend side, and I think instead of changing the text size, this is changed the Image size. Steps to replicate: 1: Activate the Twenty Nineteen Theme 2: Add Cover block 3: Add Image and Text 4: Change the Font Size of the text from the Typography settings 5: View the page/post at editor side 6: Save Page/Post 7: View the page/post at the front side For better understanding, I provide a video attachment link. Video link: https://share.cleanshot.com/BxwGn4Db3gCrbhlD3v8L Thanks." kajalgohel 3 49931 Twenty Nineteen: Group color styles prevent custom colors poena Bundled Theme normal normal Future Release defect (bug) assigned dev-feedback 2020-04-17T09:42:10Z 2024-02-13T11:46:31Z "When TwentyNineteen was created, the ability to colorize various blocks was not as full-featured as it is today. You could easily choose text and background colors in a block, that would have no contrast at all. However this is less of an issue today, where the contrast checker will help inform you whether the text is sufficiently legible or not. In addition to this, the rules that colorize text according to what background color you applied to a group means that custom colors don't work at all, which will be more of an issue as global styles let you colorize more aspects. This was originally reported in https://github.com/WordPress/gutenberg/issues/21672." Joen 8 49787 Twenty Nineteen: Highlight text color isn't reflected in the editor poena Bundled Theme normal normal Future Release defect (bug) assigned has-patch 2020-04-02T21:59:12Z 2024-02-13T11:48:49Z "The new text color feature doesn't work in Twenty Nineteen, you are unable to change the text color. [[Image(http://cldup.com/M49Ikw3xxW.png)]]" karmatosed 1 45993 Twenty Nineteen: Image aligncenter inside column is broken Bundled Theme 5.0.3 normal normal Future Release defect (bug) new has-patch 2019-01-15T15:09:31Z 2019-04-24T15:31:37Z "Since Twenty Nineteen v1.2, the images set to aligncenter aren't centered on the front-end when placed inside a column (they're centered inside the editor). [[Image(https://i.imgur.com/ud1ZuvJ.png)]] " dianeco 1 46048 Twenty Nineteen: Latest posts block: Post title overlaps other titles on certain screen widths Bundled Theme 5.0.3 normal normal Future Release defect (bug) new has-patch 2019-01-21T15:56:20Z 2020-01-13T17:37:10Z "Affects: Only Twenty Nineteen. Does not affect other core themes like Twenty Seventeen or Twenty Sixteen. On certain screen widths, with the ""Latest posts"" Gutenberg block, the long post title overlaps with the nearby titles. This seems to happen only for titles having characters like ""/"" on it, at the end. I haven't been able to see if this is the case with other special characters. The attached images can help understand this better. Video https://cloudup.com/c2G8sjrlp1b showing that this is not affected with other themes like Twenty Seventeen." arunsathiya 45902 Twenty Nineteen: Mobile menu isn't scrollable Bundled Theme 5.0 normal normal Future Release defect (bug) new 2019-01-10T15:08:19Z 2020-02-24T21:08:50Z "As originally reported by @anevins in the Twenty Nineteen GitHub repo: https://github.com/WordPress/twentynineteen/issues/713 Twenty Nineteen's mobile menu uses a `fixed` position, and does not allow for vertical scrolling when menu items extend beyond the screen height. In this screenshot for instance, it's impossible to scroll down and see the additional menu items: [[Image(https://cldup.com/-nMFdadUIZ-3000x3000.png)]] Normally, this would be solved by applying `display: block` (instead of `table`), and `overflow-x: scroll` to the submenu. However, in this case, that results in long menus visible under their children submenus: [[Image(https://cldup.com/x3H73ceFfZ.gif)]]" kjellr 45796 Twenty Nineteen: Mobile menu needs improvement for navigating on touchscreen via keyboard Bundled Theme 5.0 normal normal Future Release defect (bug) new 2018-12-30T19:32:14Z 2020-02-24T21:03:04Z "Copied over from https://github.com/WordPress/twentynineteen/issues/723#issuecomment-450173083 (hattip @afercia): When the ""more"" menu is expanded on a touchscreen device, there are several hidden tab stops that cause issues when navigating the site via keyboard. These are: * hidden sub-menu items are still focusable * all the links in the page are still focusable When the menu is open it's still possible to tab away from the menu and navigate with the keyboard through all the focusable elements in the page. If the intent is to show a full-screen menu, the menu should behave like a modal and tabbing should be constrained within the modal." laurelfulford 3 46658 Twenty Nineteen: Navigation menu is messy with RTL language SergeyBiryukov Bundled Theme normal normal Future Release defect (bug) reviewing has-patch 2019-03-26T14:46:38Z 2019-10-15T14:25:23Z "Hello, For our languages switcher, we can add it in primary navigation menu with an options for adding country flag for each language. With a rtl language like arabic, we have a strange behaviour because of the first li tag does not have the behaviour expected. See first screenshot attached Unlike in twenty seventeen {{{ display: inline; }}} is used instead of {{{ display: inline-block; }}} When I corrected to {{{ display: inline-block; }}} it works well again in this case. See second screenshot attached Regards " manooweb 45901 Twenty Nineteen: On single posts with featured images, tall menus appear clipped Bundled Theme normal normal Future Release defect (bug) new 2019-01-10T14:56:59Z 2021-05-11T20:00:58Z "When viewing posts with featured images on desktop screens, tall menus are contained only within the featured image/header area. Overflow is cut off: [[Image(https://cldup.com/qMVpzNV5XH.thumb.png)]] A fix (removing `overflow: hidden;` from `.site-header.featured-image`) was pursued over on the Twenty Nineteen Github, but it led to problems in Internet Explorer: https://github.com/WordPress/twentynineteen/pull/724 --- Originally reported on the Twenty Nineteen GitHub repository: https://github.com/WordPress/twentynineteen/issues/720 " kjellr 2 53872 Twenty Nineteen: Post content and title are not properly aligned in the editor Bundled Theme normal normal Awaiting Review defect (bug) new 2021-08-04T13:35:48Z 2021-08-05T09:07:19Z "Following the upgrade to WordPress 5.8, Twenty Nineteen's post content is no longer aligned to match the front end. Instead, it's off to the left. Additionally, wide-alignments appear far wider in the editor than they do in the front end. Full alignments appear as expected. The post title is also moved over to the left, though I think that may have been happening since before 5.8. **Screenshots** Editor: [[Image(http://cldup.com/Qf0oxcjJ6Z.png)]] Front end: [[Image(http://cldup.com/2JarckRz7D.png)]] **Details** Tested with WordPress 5.8. Twenty Nineteen 2.1" kjellr 45991 Twenty Nineteen: Post titles are overflowing the content area Bundled Theme 5.0.3 normal normal Future Release defect (bug) new reporter-feedback 2019-01-15T10:11:02Z 2023-11-08T08:34:03Z "Post titles are overflowing the content area. In Twenty Seventeen the following code in style.css prevents titles from overflowing the content area. This code should be added to Twenty Nineteen as well. {{{ #page { word-wrap: break-word; } }}} " Dejan85 56567 Twenty Nineteen: Pullquote Block Text color not reflected on Front end Bundled Theme 6.0.2 normal normal Awaiting Review defect (bug) new has-patch 2022-09-14T12:49:40Z 2022-10-12T19:27:09Z "In the Theme Twenty Nineteen Pullquote Block Text color not reflected in Front side 1: Activate the Twenty Nineteen Themes 2: Add Pullquote Block 3: Change Text color 4: See Front side For better understanding I provide video attachment link. URL: https://www.loom.com/share/dd96363e35c74530bab44e8f71600706" umesh84 6 58169 Twenty Nineteen: Quote block having issue when font-size is selected Bundled Theme 6.2 normal normal Future Release defect (bug) new has-patch 2023-04-20T18:02:09Z 2024-02-12T09:05:34Z "Steps to reproduce the issue :- 1. Activate Twenty Nineteen theme. 2. Choose Quote block. 3. Change font size. 4. Now check that applied font-size both side admin and user side for citation text. You can able to see the difference between both the fonts. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/m4sv6stcg7PLCcwdH8QK" nidhidhandhukiya 46415 Twenty Nineteen: Responsive featured image Bundled Theme normal normal Awaiting Review defect (bug) new 2019-03-05T07:48:06Z 2019-11-14T16:02:37Z "Hi, On twentynineteen theme the srcset feature use a worst image quality. If the screen is e.g. 1600 pixels wide it takes the 1200 pixels thumbnail. I don't know if it's wanted. Thanks." SGr33n 3 45907 Twenty Nineteen: Right-aligned, uncaptioned images inserted via the Classic Editor do not extend beyond the text column Bundled Theme 5.0 normal normal Future Release defect (bug) new has-patch 2019-01-10T16:33:20Z 2020-02-21T15:15:42Z "Originally reported by @joyously on the Twenty Nineteen GitHub repo: https://github.com/WordPress/twentynineteen/issues/688 The Twenty Nineteen is designed to have right-aligned elements extend beyond the text column like so: [[Image(https://cldup.com/jqNamSAitA-1200x1200.png)]] This works in all cases ''except'' under the following conditions: 1. An image has been inserted via the Classic Editor. 2. The image is floated right. 3. The image does not have a caption. In that case, the image will appear tucked into the text column: [[Image(https://cldup.com/b_oMnbi4XQ-1200x1200.png)]] In that case, the images are housed within paragraph tags. For example: {{{

This is some text that the image will float around.

}}} The `

` inherits our max-width styles, and prevents the image from extending beyond the content column. In order to have the image extend beyond the paragraph's width, we'd need to pull it out via negative margins or relative positioning of some sort. The markup would be very different from the markup we're currently using for all other cases though — I'm not personally sure it's worth sorting out for this single use case, but leaving the issue here in case anyone comes across a simple solution. " kjellr 60621 Twenty Nineteen: Search block lacks styling in the editor Bundled Theme 5.8 normal normal Awaiting Review defect (bug) new changes-requested 2024-02-23T10:10:38Z 2024-02-27T10:01:03Z "Steps to reproduce the issue :- 1. Activate Twenty Nineteen theme. 2. Choose Search block. Compare the page in both editor and front side. You can able to see button default background color is different and input box default font-size and height is also different. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/cM956rcv66tqc9MYYw8J" nidhidhandhukiya 3 59204 Twenty Nineteen: Separator block does not center as expected Bundled Theme normal normal 6.6 defect (bug) new changes-requested 2023-08-25T10:59:49Z 2024-02-05T20:56:50Z "Steps to reproduce the issue. 1. Activate Twenty Nineteen theme. 2. Take Separator block. 3. Choose WideLine option. 4. Applied Align-center You can able to see both the side in editor and in the Front side that the Separator is not Center aligned. I have attached video for better understanding. Video URL :-https://share.cleanshot.com/TMvKdn60v7Jh0rzKmNG0" nidhidhandhukiya 2 45903 Twenty Nineteen: Some menu clicks trigger console errors audrasjb Bundled Theme 5.0 normal normal Future Release defect (bug) assigned has-patch 2019-01-10T15:50:18Z 2023-06-21T21:30:27Z "There are two scenarios where the Twenty Nineteen menu javascript triggers console errors: ---- First, on desktop screens, clicking the main navigation arrows produce the following error: {{{ TypeError: event.target.matches is not a function[Learn More] 4 touch-keyboard-navigation.js:285:9 toggleSubmenuDisplay/< ../wp-content/themes/twentynineteen/js/touch-keyboard-navigation.js:285:9 }}} [[Image(https://cldup.com/PqsNUSgudV.gif)]] Originally reported by @joyously in: https://github.com/WordPress/twentynineteen/issues/596 ---- Second, on touch-enabled screens, tapping menu items that have empty (`#`) `href` attributes result in the following console errors: {{{ TypeError: event.target.nextSibling is null[Learn More] touch-keyboard-navigation.js:223:5 toggleSubmenuDisplay/< ../wp-content/themes/twentynineteen/js/touch-keyboard-navigation.js:223:5 sendTouchEvent resource://devtools/server/actors/emulation/touch-simulator.js:301:5 handleEvent resource://devtools/server/actors/emulation/touch-simulator.js:212:7 TypeError: event.target.matches is not a function[Learn More] touch-keyboard-navigation.js:277:9 toggleSubmenuDisplay/< http://core.test/wp-content/themes/twentynineteen/js/touch-keyboard-navigation.js:277:9 }}} Originally reported in: https://github.com/WordPress/twentynineteen/issues/726 ---- It looks like a possible fix for one of these was explored by @jmau in the following PR, but it has not yet been tested: https://github.com/WordPress/twentynineteen/pull/753/files" kjellr 56719 Twenty Nineteen: Tag cloud block not centering Bundled Theme 6.0.2 normal normal Awaiting Review defect (bug) new 2022-10-03T06:29:00Z 2022-10-03T08:34:07Z "1)Activate the Twenty Nineteen theme. 2)Add the tag cloud block and select taxonomies from list 3)Now set the center alignment. You can see it will not be in center alignment." multidots1896 56455 Twenty Nineteen: Text Color issue in Pullquote Block Bundled Theme 6.0.1 normal normal Awaiting Review defect (bug) new has-patch 2022-08-29T07:16:04Z 2024-03-18T10:33:29Z "In Twenty Nineteen Theme, when we add Pullquote block in editor side, and choose text color, We can see that the text color is not reflected for ""Add citation"" text.But when we see the same Pullquote block at front side, text color for ""Add quote"" and ""Add citation"" is not reflected. Steps to replicate: 1: Activate the Twenty Nineteen Theme 2: Add Pullquote block 3: Enter some Text for ""Add quote"" 4: Enter some Text for ""Add citation"" 3: Choose Text color 4: Save Page/Post 5: View the page/post at front side For better understanding I provide video attachment link. Video URL : https://share.cleanshot.com/4DhJNFXRZcP8DJKYfZnp Thanks" kajalgohel 56456 Twenty Nineteen: Text Color issue when added background color in Pullquote Block Bundled Theme 6.0.1 normal normal Awaiting Review defect (bug) new has-patch 2022-08-29T09:01:12Z 2023-05-26T08:23:01Z "In Twenty Nineteen Theme, when we add Pullquote block in editor side, and choose text color after that choose Background color, We can see that the text color is not reflected for ""Add quote"" and ""Add citation"" text. Steps to replicate: 1: Activate the Twenty Nineteen Theme 2: Add Pullquote block 3: Enter some Text for ""Add quote"" 4: Enter some Text for ""Add citation"" 5: Choose Text color 6: Choose Background color 7: Save Page/Post 8: View the page/post at front side For better understanding I provide video attachment link. Video URL : https://share.cleanshot.com/CN6Zb1g87OIUmDsJgD9i Thanks" kajalgohel 1 56537 Twenty Nineteen: The latest posts block has alignment issue Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2022-09-08T18:33:26Z 2023-03-20T16:53:52Z "In the twenty nineteen theme, the latest posts block has a center alignment issue in the editor and front. Steps to reproduce: 1. Activate the twenty nineteen theme. 2. Add the latest posts block. 3. Set it in center alignment, and the format should be in list not in a grid format. 4. You will now see the issue clearly that it is not in center alignment. " smit08 59924 Twenty Nineteen: The navigation block submenu button is unreadable Bundled Theme normal normal Future Release defect (bug) new changes-requested 2023-11-17T15:42:25Z 2024-02-13T09:06:12Z "The navigation block has an option called ""Open on click"" that is available when there is a submenu. When the option is enabled, the parent menu item is a {{{'; } return $output; } add_filter( 'walker_nav_menu_start_el', 'twenty_twenty_one_add_sub_menu_toggle', 10, 4 ); }}} ... should be updated so it doesn't affect third party menu locations. Perhaps by using ... {{{#!php theme_location) && $args->theme_location === 'primary') { ... } }}} Thank you. Oliver" domainsupport 5 58608 Twenty Twenty-One: Text color is not reflected when having background color Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2023-06-23T11:15:47Z 2023-07-11T19:40:56Z "Originally reported as a Gutenberg issue: https://github.com/WordPress/gutenberg/issues/51828 In #52129, there was a problem with text being obscured in dark mode. The approach taken to solve this was to override the text color with `var(--table--has-background-text-color)` variable if it had a background color. Later, however, the table block now supports text color and can be set to any text color. The text color changed by block support i[[Image()]]s not applied because it is overwritten by the color of the `var(--table--has-background-text-color)` variable mentioned above." wildworks 1 54368 Twenty Twenty-One: Visibility issue on Input field of search widget in dark mode Bundled Theme normal normal Future Release defect (bug) new dev-feedback 2021-11-03T12:50:08Z 2023-03-25T17:44:38Z When the dark mode is on, the search input field is not that visible on the twenty twenty-one theme. https://imgur.com/a/bEEjM09 amin7 1 52185 Twenty Twenty-One: background image does not work with dark mode Bundled Theme 5.6 normal normal Awaiting Review defect (bug) new dev-feedback 2020-12-28T23:29:48Z 2020-12-29T00:58:24Z "I noticed that if I add a background image by going to Appearance > Customize > Background Image > Add image and turn on the dark mode the website changes the text to white but it does not have a dark background. Instead, it shows that background image which is hard to read white text on. I was trying to find a workaround where if it is in dark mode then make the background image either disappear or darken. I do not see anywhere to attach a file so it may not be with this ticket. Michael" WebsThatRock 1 58088 Twenty Twenty-One: letter spacing not applied to Quote block in Editor, on front-end, widgets area Bundled Theme normal normal Awaiting Review defect (bug) new 2023-04-04T18:50:44Z 2023-04-18T16:30:21Z "While investigating #58033 I noticed in the TT1 theme that letter spacing does not apply to any representation of the Quote block. Steps to reproduce: 1. install WP 6.1 or 6.2 (hasn't tested earlier versions) 2. install official TT1 theme from WP.org (v1.8) 3. go to Post > Add new and/or Appearance > Widgets 4. add a Quote block 5. click on the Quote in the List view of all the blocks in a post, and in block settings click Typography -> settings (3 dots) and add Letter Spacing with the value of 10px, for example 6. observe that after applying this setting to the block neither preview in the editor, nor widget area preview, nor post on front-end, nor widgets on front-end have this styling applied. Tested on both WP 6.1 and WP 6.2 with the latest TT1 theme from wordpress.org." oksankaa 2 60800 Twenty Twenty-One: prevent PHP 8 fatal error from non-string in $tags_list Bundled Theme normal normal 6.6 defect (bug) new has-patch 2024-03-18T16:07:35Z 2024-03-19T09:40:33Z "In `/inc/template-tags.php` there is a call to `get_the_tag_list()` - https://themes.trac.wordpress.org/browser/twentytwentyone/2.1/inc/template-tags.php#L154 The only check on the return value is an `if` condition. The problem is that a few lines down ( 159 ) it is required to be a string. But the `get_the_tag_list()` function is documented as being able to return `string|false|WP_Error` - https://developer.wordpress.org/reference/functions/get_the_tag_list/ When a `WP_Error` object is returned and used in the string context of the `printf()` a fatal error happens in PHP 8.1: {{{ PHP Fatal error: Uncaught Error: Object of class WP_Error could not be converted to string in twentytwentyone/inc/template-tags.php:159 }}} The `if` condition should be updated to ensure that the `printf()` only gets called if the return value of `get_the_tag_list()` is indeed a string. Something like: {{{ if ( is_string( $tags_list ) ) { }}}" josephscott 52354 Twenty Twenty-One: primary menu disappears at 481px Bundled Theme normal normal Awaiting Review defect (bug) new 2021-01-24T20:22:54Z 2023-05-17T21:10:51Z "Hi When I set screen width to 480px I see the mobile menu. At 482px, I see the desktop menu but at 481px there are no menus displayed. I am using a chrome browser on windows 10. No active plugins and a fresh install of the theme." stephenbrook 1 56638 Twenty Twenty-One: submit button colors inside a block with background color Bundled Theme 6.0.2 normal normal Awaiting Review defect (bug) reopened has-patch 2022-09-23T14:10:49Z 2022-10-25T12:30:09Z "When we use Post Comments Form Block and change the block setting like background color & font color in the specific Twenty Twenty-One theme. then front side post comments button design breaks. For better understanding, I have provided below video link. URL: https://share.cleanshot.com/8SDCpoyOds4BwHDvtAFR" upadalavipul 2 52885 Twenty Twenty-One: wrong drop cap alignment in RTL context Bundled Theme 5.6 normal normal Awaiting Review defect (bug) new has-patch 2021-03-22T16:33:30Z 2021-06-22T23:35:58Z "Drop cap is not correctly aligned when using RTL context along with Gutenberg editor (e.g. using WordPress in Arabic language. It's specific to the twenty twenty-one theme. There's [https://github.com/WordPress/gutenberg/issues/11756 an issue] open for it in Gutenberg's repo. From what we found, the culprit might be here: https://github.com/WordPress/twentytwentyone/blob/trunk/assets/css/ie-editor.css#L3220 Steps to discover: 1. Set WordPress language to Arabic; 2. Create a new post and add a new paragraph block (using Gutenberg); 3. When you enable drop cap, the alignment is wrong - it aligns left instead of right. Gutenberg has an implementation for handling RTL, basically replacing all ""right"" rules' values for ""left"". Not sure if this can be applied here, though. There's also the `float: inline-start` [https://developer.mozilla.org/en-US/docs/Web/CSS/float#browser_compatibility solution], but it's in draft state in MDN." rafaelgalani 57355 Twenty Twenty-Three Theme bug: marking text in backend is black Bundled Theme 6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-12-19T12:51:47Z 2023-03-06T05:57:26Z "Wordpress.com Twenty Twenty-Three theme Electric Design with change: color 2 blue >> black In the Gutenberg editor or Site Editor: BUG: when I mark text, the marking is black. As the text is also black, it is not possible to see the marked text. This has been in another color in the previous theme (Twenty Twenty-Two). " nmschaller 60778 Twenty Twenty-Three Theme: The Quote block style is not working as expected. Bundled Theme normal normal Awaiting Review defect (bug) new dev-feedback 2024-03-15T07:13:01Z 2024-03-15T10:06:33Z "Hello, I have reviewed and found that the ""**Quote**"" block style is not working as expected into the **Twenty Twenty-Three** theme. Here, I have attached video: Issue: [https://share.cleanshot.com/78X9q3xkwy0kkT5HvHFL] Thanks," viralsampat 2 58475 Twenty Twenty-Three: Aubergine variation's background implementation causes any block that impacts page height to impact header Bundled Theme low normal Awaiting Review defect (bug) new has-patch 2023-06-07T20:16:11Z 2023-06-20T16:59:53Z "Originally reported here and moving over: [https://github.com/WordPress/gutenberg/issues/51248 GB51248] This variation does the following for the background: {{{ linear-gradient(180deg, var(--wp--preset--color--base) 0 min(24rem, 10%), var(--wp--preset--color--secondary) 0% 30%, var(--wp--preset--color--base) 100%) }}} As Justin notes, in particular, the `min(24rem, 10%)` is essentially saying to use the lower value (either `24rem` or `10%`). On pages with little content, it is pretty much guaranteed to be 10% of the `` height. As a result, any block that can change the page height will run into issues. " annezazu 3 57322 Twenty Twenty-Three: Gradients clear upon saving when KSES filters are active Bundled Theme normal normal Awaiting Review defect (bug) new 2022-12-13T13:49:02Z 2023-01-03T12:28:49Z "The Twenty Twenty-Three theme has some style variations that include a background gradient such as Pilgrimage or Sherbet. When the KSES filters (*) are active, the background gradient gets cleared because the CSS value doesn't match [[https://core.trac.wordpress.org/browser/trunk/src/wp-includes/kses.php?rev=54933#L2533|this regex]] (see https://regex101.com/r/awcZif/1). (*) These filters are only registered when a user doesn't have the `unfiltered_html` capability (which is the case for [[https://core.trac.wordpress.org/browser/tags/6.1/src/wp-includes/capabilities.php?marks=591,592#L591|multisite regular admins]]), but can be manually enabled with `add_action( 'init', 'kses_init_filters' )`. ---- **Steps to reproduce** - Enable the KSES filters with `add_action( 'init', 'kses_init_filters' );` - Activate the Twenty Twenty-Three theme - Go to Appearance > Editor - Open the Styles sidebar - Click on ""Browse styles"" - Choose the Pilgrimage or Sherbet variation - See the background gradient applied in the preview (dotted background for Pilgrimage, rainbow gradient for Sherbet) - Save the changes - ⚠️ Note how the gradient disappears " mmtr86 57525 Twenty Twenty-Three: Incorrect home link Bundled Theme 6.1 normal normal Awaiting Review defect (bug) new has-patch 2023-01-22T14:44:58Z 2023-09-09T09:37:41Z "I've noticed that Twenty Twenty-Three Theme does not add a trailing / onto the Home page link when used in a sub-directory. Could also be happening in a top level situation although I've not tested. example.com/test -instead of- example.com/test/ This cause a 301 redirect and slows down page load. Not a big deal but then again, the fix is quick and easy. " Website Rob 1 57302 Twenty Twenty-Three: Query loop pattern not working Bundled Theme normal normal Awaiting Review defect (bug) new 2022-12-09T17:18:36Z 2023-03-20T16:55:13Z "Hello, I am not able to see a selected (First) Query Loop pattern of grid view on the front side in the Twenty Twenty-Three theme" hiren1094 56949 Twenty Twenty-Three: Screenshot of the new default theme Bundled Theme 6.1 normal normal Awaiting Review defect (bug) new dev-feedback 2022-11-02T04:02:28Z 2023-03-20T16:54:17Z "The screenshot of the new default theme TT3 is showing the backend editor, not the front view of it. Our theme guideline is, * The screenshot must not look like an advertisement. The reviewer can subjectively ask you to change screenshots if they find that it is not appropriate. https://make.wordpress.org/themes/handbook/review/required/ It seems that showing Global Styles in the screenshot is like an advertisement of the feature. I'm wondering if other themes can also update the screenshot showing Global Styles or Editor. " kafleg 1 56929 Twenty Twenty-Three: Sticky posts not visually different than regular posts Bundled Theme 6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-10-28T17:14:13Z 2023-03-06T06:17:25Z "When a sticky post exists, it isn't styled differently than other posts. The TT3 theme correctly: - Puts a sticky post as first in the blog roll - Applies the `sticky` class - Also shows the post in the original position, without the `sticky` class This was found when doing QA of the 6.1 release candidate: - https://make.wordpress.org/test/2022/09/21/help-test-wordpress-6-1/ == Replication - Install 6.1 and be sure that TT3 is active - Import the theme unit test data: - https://github.com/WPTT/theme-test-data - Navigate to the posts homepage and note that the sticky post doesn't look visually different than other posts but it does have the correct `sticky` class - Navigate to older posts until you find the sticky post where it should be. Note that it correctly does not have the `sticky` class Here's a screenshot to help visualize: https://i.getf.ly/wbuQpJqn " bgturner 59015 Twenty Twenty-Three: Theme failure after updates Bundled Theme 6.3 normal normal Awaiting Review defect (bug) new close 2023-08-09T05:03:36Z 2024-03-27T20:27:21Z "I updated WordPress to 6,3 - all OK. I updated Twenty-Twenty-three theme. Twenty-Twenty-three Live Preview returns completely blank screen. (Active theme : Generate Press works fine)" rossbateson 57368 Twenty Twenty-Three: unnecessary borders for linked images in Whisper variation Bundled Theme 6.1 normal normal Awaiting Review defect (bug) assigned has-patch 2022-12-21T18:14:44Z 2022-12-21T19:14:29Z "Since the Whisper style variation currently uses CSS `border` to give links an underline throughout. It is problematic in some scenarios where images have links wrapped around them. This can easily be overcome with a little further addition to the `styles/whisper.json`. " colorful tones 55009 Twenty Twenty-Two : More tag not supported Bundled Theme 5.9 normal normal Awaiting Review defect (bug) new 2022-01-31T13:39:11Z 2022-04-29T04:48:27Z "On page content {{{}}} tag not working. " ravipatel 58107 Twenty Twenty-Two :- PullQuote block Letter case is not working in citation text Bundled Theme 6.2 normal normal Awaiting Review defect (bug) new dev-feedback 2023-04-09T16:40:12Z 2024-01-28T23:38:22Z "**Steps to reproduce the issue : ** - Activate Twenty Twenty-Two theme. - Go to Posts / Pages > Add New Post / Page - Choose Pullquote block. - Add some text in Quote & citation. - Apply Letter Case in Pullquote You can able to see that Letter Case is not working in the citation text. I have attached video for better understanding. **Video URL** :- https://drive.google.com/file/d/1-ypweKmaHmNCmq38naNi5TV0LEldojCQ/view" shailu25 1 55033 Twenty Twenty-Two hamburger menu won't close properly Bundled Theme 5.9 normal normal Awaiting Review defect (bug) new 2022-02-01T21:31:11Z 2022-02-01T22:13:23Z "On my android pixel phone using chrome when you tap open the hamburger menu and then try to close it by tapping the x, it flashes quickly as if it closed for a split second and re-opens again. I'm testing this by using the preview button on here https://wordpress.org/themes/twentytwentytwo/" wpfed 1 55034 Twenty Twenty-Two horizontal scrolling on images and text Bundled Theme normal normal Awaiting Review defect (bug) new 2022-02-01T21:37:20Z 2022-02-03T08:34:51Z "When navigating on the blog post worth a thousand words or elements on pixel android phone in chrome, horizontal scrolling is present on the page originating from image and text content. Tested using the preview button on https://wordpress.org/themes/twentytwentytwo/" wpfed 55704 Twenty Twenty-Two: Allow customizing (top) padding through inspector controls Bundled Theme normal normal Awaiting Review defect (bug) new 2022-05-09T20:04:41Z 2023-09-09T09:29:23Z "The Twenty Twenty-Two (TT2) theme currently sets a fixed `padding-top` for the Post Comments block: https://github.com/WordPress/twentytwentytwo/blob/27054dbcb95f5d72cd943a0f3318c3ad97599f85/theme.json#L230-L236 This makes sense in the context of where that block is used in the theme's templates; however, it limits the block's usefulness when the user wants to customize the theme by moving the block elsewhere, since it always comes with that hard-wired top padding. To remediate this, I'd suggest making the block's padding customizable through Inspector Controls (I believe Gutenberg has controls for block padding now?) Alternatively, the padding could be removed, and a spacer block could be used instead (with its height set accordingly). The downside of this approach is that we can't set its height to a relative value like `--wp--custom--spacing--small`; we'd have to assign a fixed value to it instead. Furthermore, this would basically revert https://github.com/WordPress/twentytwentytwo/pull/127. --- This ticket is based on [https://github.com/WordPress/gutenberg/issues/40826#issuecomment-1121372226 this discussion] on a somewhat related GB issue." Bernhard Reiter 1 56904 "Twenty Twenty-Two: Block Navigation ""no decoration"" does not work" Bundled Theme normal normal Awaiting Review defect (bug) new 2022-10-25T09:28:27Z 2022-10-31T09:35:03Z "The ""decoration"" option in the Navigation Block has an option NOT to underline links in the menu (decoration:none). This option works correctly on some themes (Twenty Twenty-Three, Sparkle FSE) but not in Twenty Twenty-Two: https://cloudup.com/cwGQKTvnyzF Upstreamed from this original report: https://github.com/WordPress/gutenberg/issues/42766" mrfoxtalbot 1 58676 Twenty Twenty-Two: Comment text box is touching the screen border for mobile devices Bundled Theme normal normal Awaiting Review defect (bug) new 2023-06-30T04:53:24Z 2023-09-09T09:38:01Z "The comment textarea box is touching the screen border so the design does not look proper for different mobile devices like iPhone 12 pro, iPhone XR etc. Screenshot: [https://share.cleanshot.com/jFVNrx7tRZ2dNzvcjyfr]" himshekhar07 56626 Twenty Twenty-Two: Elements with alignfull in the content provoke a horizontal scrollbar Bundled Theme 6.1 normal normal Future Release defect (bug) new reporter-feedback 2022-09-22T16:09:12Z 2023-02-07T09:59:10Z "Add a cover block with full alignment to the content and you'll see a horizontal scrollbar. Current CSS: {{{ margin-left: calc(-1 * var(--wp--custom--spacing--outer)) !important; margin-right: calc(-1 * var(--wp--custom--spacing--outer)) !important; }}} Fix: {{{ margin-left: calc(-0.5 * var(--wp--custom--spacing--outer)) !important; margin-right: calc(-0.5 * var(--wp--custom--spacing--outer)) !important; }}} " markhowellsmead 56012 Twenty Twenty-Two: Image block alignment issue Bundled Theme 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-06-20T09:25:01Z 2022-07-01T14:42:47Z "In Twenty TwentyTwo Theme, When we add the left and right alignment of the image block, it does not work correctly. [https://streamable.com/vpmj53]" devtanbir 1 57542 Twenty Twenty-Two: Label text alignment issue in comment form Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2023-01-24T11:25:48Z 2023-02-24T15:41:39Z In the Twenty Twenty-Two theme, there is a comment form at the end of each post. In this form, label text should be aligned on top so it looks good when the comment box area is big. For more information please check the attached screenshot. patelhitesh 2 56341 Twenty Twenty-Two: Long text strings cause horizontal overflow Bundled Theme 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-08-05T12:07:40Z 2022-08-09T10:21:17Z "When viewed on narrow viewports, long strings will overflow outside the main content area. Older bundled themes would default to `word-break: break-all` to avoid this and I believe that Twenty Twenty-Two should also work this way by ""pushing"" long strings into multiple lines. The code below can be used as a temporary workaround. {{{ .wp-site-blocks * { word-break: break-all; } }}} " mrfoxtalbot 56496 Twenty Twenty-Two: Update comment block markup Bundled Theme normal normal Future Release defect (bug) new dev-feedback 2022-09-02T09:37:52Z 2024-01-19T11:13:34Z "The comment block markup in Twenty Twenty-Two is using an outdated version of the block: `` In the Site Editor, the block shows the following notice: You're currently using this block in legacy mode. This should be updated to use the latest version of the comments block, e.g. wrapped in the `` tag." mikachan 56427 Twenty Twenty-Two: editor font weight for bold text in Button block does not match front Bundled Theme 6.0.1 normal normal Awaiting Review defect (bug) new 2022-08-24T05:54:10Z 2023-05-30T01:17:57Z "Hello Team, For Twenty Twenty Two Theme, when we add Button block in editor side, and make the text bold at editor end the font-weight is coming 600 while at Frontend it is coming 700. Steps to replicate: 1: Activate the Twenty Twenty-Two Theme 2: Add Button block 3: Add Text in Button Block 4: Make Button text Bold from Top Toolbar 5: View the page/post at editor side 6: Save Page/Post 7: View the page/post at front side For Better understanding i am providing video attachment link Link: https://share.cleanshot.com/CNLRh4J9ut4dcWypHHuT Thank you." varshil151189 1 55934 "Twenty Twenty: ""Add citation"" text font-weight issue in Quote block" Bundled Theme 5.3 normal normal Awaiting Review defect (bug) reopened 2022-06-06T10:51:25Z 2022-06-09T07:13:13Z "In Twenty Twenty Theme, when we add a text on ""Add citation"" in Quote block and make the text as italic then in editor side it is visible as italic without font-weight. But when we see the same formatted text at front side, then it is with italic and having font-weight as bolder which is different from editor side. Steps to replicate: 1: Activate the Twenty Twenty Theme 2: Add Quote block 3: Add text in ""Add citation"" section 4: Select the added text and make them as italic 5: Save Page/Post 6: View the page/post at front side For better understanding I provide video attachment. Thank You." kmadhak 55581 Twenty Twenty: Aligned images cannot be resized or are properly displayed Bundled Theme 5.9.3 normal normal Awaiting Review defect (bug) new 2022-04-15T19:08:11Z 2022-06-22T11:14:56Z "Steps to replicate: 1. Create a new page 2. Add content to it and make sure you have a paragraph block and an image block. 3. Align the block to the right and modify its size. Two things will happen: 1. The size of the image is not respected. 2. The alignment is not the same(editor vs frontend) This happens with the latest version of WordPress(5.9.3) and Twenty Twenty(1.9)" robertghetau 2 48691 Twenty Twenty: Audio block alignment issue nielslange Bundled Theme 5.3 normal normal Future Release defect (bug) assigned needs-refresh 2019-11-18T03:17:49Z 2024-01-11T10:03:54Z "Hello The Amazing Team of Twenty Twenty, I am playing around with audio block and found alignment issue. See the attached image that best explains it better. [[Image(https://i.imgur.com/57TRzlj.png)]] I have searched previous tickets and didn't find it has been reported. I hope this isn't duplicate ticket. Best, Kharis " kharisblank 3 48718 Twenty Twenty: Block Left/Right Align Display Issues nielslange Bundled Theme 5.3 normal normal Future Release defect (bug) assigned 2019-11-19T00:08:27Z 2024-02-16T11:57:04Z "When adding an Embed block into the editor, the default alignment is center which displays correctly on the front end of the site: [[Image(https://i.snipboard.io/dvqUFb.jpg)]] However, if you attempt to align the embed block either to the left or right, the page/post navigation no longer clears correctly [[Image(https://i.snipboard.io/L8ZHxt.jpg)]]" JarretC 49929 Twenty Twenty: CSS issue for modal-menu.php Bundled Theme normal normal Awaiting Review defect (bug) new reporter-feedback 2020-04-16T23:39:35Z 2023-08-14T11:31:39Z "When the screen gets smaller, the following problems appear in the menu : 1. Toolbar moves away from the top of the page 2. the screen get scroll from bottom this problem is in both LTR and RTL http://s11.picofile.com/file/8394294584/InkedUntitled_2_LI.jpg" Parvand 4 59996 Twenty Twenty: Calendar block does not apply font size from block option Bundled Theme 6.1 normal normal Awaiting Review defect (bug) new has-patch 2023-12-01T10:37:05Z 2024-03-24T08:07:09Z "Steps to reproduce the issue. 1. Activate Twenty Twenty theme. 2. Choose Calendar block. 3. Change the font size. Now check the both the side editor and frontend. You can able to see that whatever the font size you have choosen that is applied n editor side but there is no difference in font size in the front side. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/FJGNHTjxP6KzXkJ12bfx" nidhidhandhukiya 1 52634 Twenty Twenty: Child Theme Search Modal Safari Throws Error in Parent asset/index.js Bundled Theme 5.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-02-24T02:39:40Z 2021-10-28T04:00:39Z "Twenty Twenty child theme, search modal on safari throws error in parent asset/index.js when search toggle clicked. Works fine in all other browsers. TypeError: null is not an object (evaluating 'modal.querySelectorAll') elements = modal.querySelectorAll( selectors ); null is not an object (evaluating 'modal.querySelectorAll')" wp89mkt 1 49467 Twenty Twenty: Cover template not displayed correctly in Safari and Chrome on iOS Bundled Theme 5.3 normal normal Future Release defect (bug) new 2020-02-18T15:44:41Z 2020-03-24T15:43:38Z "When using the Cover template in Twenty Twenty, the height of the cover template is displayed wrong in Safari and Chrome apps on i0S (on all versions since the creation of the theme). This means that people don't see the title of the page or the downward arrow on the cover template on their iPhone / iPad (or only see a part of it if the title is long enough). Both Edge and Firefox apps on iOS show the cover page correctly. This is related to #48837 " yari2u 49667 Twenty Twenty: Cover-Template scrolling issue Bundled Theme 5.3 normal normal Future Release defect (bug) new 2020-03-19T19:13:01Z 2020-03-24T15:43:48Z "When you Set a Site to Cover-Template and give it a Site-Image Chrome 80 for Android resizes the Site-Image when scrolling down. Also the Down-Arrow isn't in viewfield. The Response from the chromium Team is [here](https://bugs.chromium.org/p/chromium/issues/detail?id=1062641#c2)" beenni09052005 1 49008 Twenty Twenty: Design issue in Customizer on iPad Bundled Theme 5.3.1 normal normal Awaiting Review defect (bug) new has-patch 2019-12-17T10:08:17Z 2022-02-01T05:45:54Z "Hi, Design issue in customize.php on Twenty Twenty theme. For more information sees mention screenshot. Thanks" sumitsingh 4 48617 Twenty Twenty: Figure elements with inline style can overflow content bounds nielslange Bundled Theme 5.3 normal normal Future Release defect (bug) assigned has-patch 2019-11-13T22:30:45Z 2020-05-13T11:05:22Z "In content created in the classic editor, images that have captions and are set to alignnone or aligncenter can exceed the width of the entry content. This is caused by the inline style on the figure element overwriting the `width` set on `.entry-content > *` in style.css. **Steps to reproduce:** 1. Add an image while using the classic editor. 2. Set it to alignnone or aligncenter. 3. Add a caption. 4. Check on a screen size thinner than the width of the image. **Suggested solution:** (Condensed for clarity) {{{#!css .entry-content figure.alignnone[style*=""width""], .entry-content figure.aligncenter[style*=""width""] { max-width: calc(100% - 4rem) !important; } @media ( min-width: 620px ) { body:not(.template-full-width) .entry-content figure.alignnone[style*=""width""], body:not(.template-full-width) .entry-content figure.aligncenter[style*=""width""] { max-width: 58rem !important; } } @media ( min-width: 1280px ) { body.template-full-width .entry-content figure.alignnone[style*=""width""], body.template-full-width .entry-content figure.aligncenter[style*=""width""] { max-width: 120rem !important; } } }}} First reported by @derlynad." Anlino 5 48802 Twenty Twenty: Fixed Background Image on Cover template bugs on iPad Bundled Theme 5.3 normal normal Awaiting Review defect (bug) new 2019-11-26T21:26:10Z 2022-06-24T09:54:38Z "Originally reported on GitHub by @collet https://github.com/WordPress/twentytwenty/issues/956 In the Customizer, if the user selects the ""Fixed Background Image"" option for the Cover template (which is activated by default), the cover image on an iPad (iOS 13) is blown-up." ianbelanger 56360 Twenty Twenty: Font size issue in H1 Heading block Bundled Theme 6.0 normal normal Awaiting Review defect (bug) new 2022-08-10T10:53:10Z 2022-08-10T19:17:22Z "In Twenty Twenty Theme, when we add Heading block in editor side and change heading level to H1 and applied the background color, it is reflected proper in editor side but it is reflected in front side into the larger font size. Steps to replicate: 1: Activate the Twenty Twenty Theme 2: Add Heading block 3: Choose H1 heading level 4: Choose background color. 5: View the page/post at editor side 6: Save page/post 7: View the page/post at front side For better understanding I provide video attachment link. Video link: https://share.cleanshot.com/hUvyB1LHodVizNDuqxvB Thanks" kajalgohel 51599 Twenty Twenty: Image wrap problem on wide viewports Bundled Theme 5.5.1 normal normal Awaiting Review defect (bug) new 2020-10-22T03:45:43Z 2020-10-22T20:50:13Z "Using the wordpress test data. The 2020 theme has a problem with text wrapping around the 150x150 sample image. If the window is small it works correctly. but making the window wider it doesn't wrap and instead goes behind the image. Confirmed with Safari, Google Chrome, Firefox. All newest versions. Correct when window is small: Wrong when window is wide: " kenthinson 57544 Twenty Twenty: Incorrect Colour in editor for Separator Block Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2023-01-24T13:01:49Z 2023-06-27T05:06:15Z "The colour selection in the Separator Block settings shows incorrectly. The colour shown in the block setting is different from the one the separator has in the editor and the front end. Please refer to the video link for a better understanding: https://share.cleanshot.com/8PpMy6fxLxRJ2KbrY8Gm Bug Screenshot: https://share.cleanshot.com/pgGnkPC03PYbzZNtS9ml Also, the sepeator behaves weirdly on clicking it: https://share.cleanshot.com/BpSRGJX7f8MYVw80rcGD" bhaveshdesai13 2 50418 Twenty Twenty: Inline Images displaying as block Bundled Theme 5.4.2 normal normal Future Release defect (bug) new dev-feedback 2020-06-17T23:51:12Z 2023-06-06T22:43:17Z "Inline images (those added inside a paragraph block) will display on top of each other (as blocks) instead of next to each other (inline or inline-block). https://d.pr/i/13DtBl This will not happen in the editor, only on the public page/post: https://d.pr/i/vkV9vC I tried to reproduce this with several themes such as Rockwell, Brandsbury and Coutoire, but they all seem to work fine." mrfoxtalbot 2 49075 Twenty Twenty: Inserted images not responsive at smaller browser widths Bundled Theme 5.3 normal normal Future Release defect (bug) reopened reporter-feedback 2019-12-24T08:32:24Z 2020-02-20T16:50:26Z "Reported on the forums here initially: https://wordpress.org/support/topic/posts-images-are-not-responsive When decreasing the browser width down to the > 600px width you'll start to see some images being cut off. This is due to the following code: {{{ .entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.is-style-wide) { max-width: 58rem; width: calc(100% - 4rem); } }}} As inserted images are placed inside of a

element the code sets the max-width to something wider than what the browser width is. If the inserted image has a width set inline, it'll cause it to display past the border of the browser. max-width could be set to either 100% in this case or could be targeted using media queries to something where if the browser width is less than 600px the max-width is then set to 100% " JarretC 3 48684 Twenty Twenty: Issue with primary color in the block editor Bundled Theme 5.3 normal normal Awaiting Review defect (bug) new 2019-11-17T14:10:12Z 2024-01-11T07:09:58Z "Hi there, I found an error in css , when working with gutenberg editor in backend. When I select the primary color as background color the row editable functions dont work due to css error. This class should be fixed: {{{ .has-background.has-accent-background-color *:not(.has-text-color) { color: #f9f9f9; } }}} We can just delete this class or where else is it needed? Thanks Niko " grafruessel 59706 Twenty Twenty: Latest Posts block colors and padding Bundled Theme 6.3.2 normal normal Awaiting Review defect (bug) new dev-feedback 2023-10-23T11:59:17Z 2023-10-25T22:19:11Z "Hello Team, I have worked on the **""Twenty Twenty""** theme and found that the ""Twenty Twenty"" theme contains an issue for the **""Latest Post""** block. The text color does not change when we try to select text color from block settings. Also, When we select the background color, the padding is added in admin, But in the front end, the post text displays a sticky, The padding is not added for the front end. Here, I have provided the issue video: Issue: [https://share.cleanshot.com/5mkR0sVQ25VYM6xp434Y] Thanks," viralsampat 1 54126 Twenty Twenty: Left and right image alignment issue in front side Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2021-09-15T09:19:49Z 2022-07-26T02:42:44Z "In the twentytwenty theme, when we give alignment left and right to the image from the backend, the design is breaking due to some properties on that image in the front side. " aezazshekh 1 54412 Twenty Twenty: Letters move when opening accordion menu Bundled Theme 5.8.1 normal normal Future Release defect (bug) new reporter-feedback 2021-11-10T10:25:53Z 2023-04-28T15:53:28Z "I haven't changed anything, this is the original version of Twenty Twenty. This happens in any browser of the latest version, I have Windows 10. Gif - \\https://gifyu.com/image/ePvd screen - \\https://ibb.co/tX7XjTJ " mike77777 48729 Twenty Twenty: Margin reset for first-child and last-child is overridden for heading and blocks with alignment Bundled Theme 5.3 normal normal Awaiting Review defect (bug) new has-patch 2019-11-19T16:47:08Z 2024-01-16T15:59:55Z "By default Twenty Twenty set the first-child margin top to 0 and the last-child margin bottom to 0. {{{ entry-content > *:first-child { margin-top: 0; } .entry-content > *:last-child { margin-bottom: 0; } [class=""_inner-container""] > *:first-child { margin-top: 0; } [class=""_inner-container""] > *:last-child { margin-bottom: 0; } .wp-block-column > *:first-child { margin-top: 0; } .wp-block-column > *:last-child { margin-bottom: 0; } .wp-block-media-text__content > *:first-child { margin-top: 0; } .wp-block-media-text__content > *:last-child { margin-bottom: 0; } }}} For blocks that support alignment such as Columns, Cover, Embed, Gallery, Group, Image, Pullquote…, this code is overridden. For example by the following lines: https://github.com/WordPress/WordPress/blob/8e4b0c2c45c3702dc4650d3dc281a1909f28e5de/wp-content/themes/twentytwenty/style.css#L2842-L2863: {{{ .wp-block-archives:not(.alignwide):not(.alignfull), .wp-block-categories:not(.alignwide):not(.alignfull), .wp-block-columns:not(.alignwide):not(.alignfull), .wp-block-cover:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter), .wp-block-embed:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter), .wp-block-gallery:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter), .wp-block-group:not(.has-background):not(.alignwide):not(.alignfull), .wp-block-image:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter), .wp-block-latest-comments:not(.aligncenter):not(.alignleft):not(.alignright), .wp-block-latest-posts:not(.aligncenter):not(.alignleft):not(.alignright), .wp-block-media-text:not(.alignwide):not(.alignfull), .wp-block-pullquote:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright), .wp-block-video:not(.alignwide):not(.alignfull) { margin-bottom: 3rem; margin-top: 3rem; } }}} and the responsive margin values (4rem) at lines https://github.com/WordPress/WordPress/blob/8e4b0c2c45c3702dc4650d3dc281a1909f28e5de/wp-content/themes/twentytwenty/style.css#L5066-L5087 The margin reset CSS is also overridden for Full Width blocks {{{.alignfull}}} The margin reset CSS is also overridden for headings inside columns: https://github.com/WordPress/WordPress/blob/master/wp-content/themes/twentytwenty/style.css#L5096-L5103 {{{ .entry-content .wp-block-columns h1, .entry-content .wp-block-columns h2, .entry-content .wp-block-columns h3, .entry-content .wp-block-columns h4, .entry-content .wp-block-columns h5, .entry-content .wp-block-columns h6 { margin: 3.5rem 0 2rem; } }}} To respect Twenty Twenty design, when a block is first-child its margin-top should always be set to 0. When a block is last-child its margin-bottom should always be set to 0. " collet 52116 Twenty Twenty: Menu + Search can cause a scroll jump on close Bundled Theme normal normal Future Release defect (bug) new 2020-12-18T19:03:02Z 2021-11-03T14:12:36Z "If the Twenty Twenty Menu or Search modals are activated while the user is partially scrolled down the page, they will cause a glitchy reaction upon close: the page quickly scrolls to the top, and then back down to the original position. This is visible in Chrome or Firefox, but doesn't seem visible in Safari. Here are some GIFs to illustrate the issue: [[Image(https://cldup.com/82Y1UCd6mV.gif)]] [[Image(https://cldup.com/Oarqq6OQzP.gif)]] Originally noted in the [support forums https://wordpress.org/support/topic/toggle-close-search-menu-rapidly-scrolls-glitch/]. " kjellr 7 49025 Twenty Twenty: Modal menu link with hash should scroll to that section on the page. Bundled Theme 5.3.1 normal normal Awaiting Review defect (bug) new 2019-12-18T08:13:10Z 2021-06-12T09:39:29Z "Based on this support ticket: https://wordpress.org/support/topic/possible-bug-anchor-links-dont-work-in-js-flow-out-menu/ A possible fix would be to add this code in `index.js`, after [https://github.com/WordPress/WordPress/blob/c67763478840fabf689ecbd175dc682da1623069/wp-content/themes/twentytwenty/assets/js/index.js#L156 line 156]: {{{ goToAnchor: function() { document.addEventListener( 'click', function( event ) { var target = event.target; if ( target.closest( '.modal-menu' ) && 'a' === target.tagName.toLowerCase() ) { var url, targetHref; url = location.href.split( '#' )[ 0 ]; targetHref = target.href; this.untoggleModal( target.closest( '.cover-modal.active' ) ); if( '' !== target.hash && -1 !== targetHref.indexOf( url ) ) { setTimeout( function() { var fakeEl = document.createElement( 'a' ); fakeEl.href = targetHref; fakeEl.click(); }, 550 ); } } }.bind( this ) ); }, }}} And after [https://github.com/WordPress/WordPress/blob/c67763478840fabf689ecbd175dc682da1623069/wp-content/themes/twentytwenty/assets/js/index.js#L105 line 105], a call to the method: `this.goToAnchor();` " acosmin 58495 Twenty Twenty: Pull Quote Block issues Bundled Theme 6.2.2 normal normal Awaiting Review defect (bug) new has-patch 2023-06-08T13:33:24Z 2023-06-10T04:38:59Z "Pull Quote block citation on Twenty Twenty theme has these issues: 1. Pull Quote citation is always shown in Italics in Block Editor but normal in Frontend. 2. Pull Quote is shown in Bold in Frontend even if not selected in Block Editor. Even selecting options from Appearance has no effect on the frontend. 3. If you make the citation Italic, it becomes Italic & bolder. Then if you select Bold, it becomes bold. But if you select Bold first and then Italic, font becomes bolder and not bold. The HTML element depends on the first chosen option. How to Replicate: 1. Activate the Twenty Twenty theme 2. Insert Pull Quote block and enter quote and citation." jyolsna 55975 Twenty Twenty: Pullquote Block font-size issue Bundled Theme 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-06-14T11:47:38Z 2024-01-24T16:57:53Z "When we choose a Pullquote block in editor side and change the font-size of ""Add Quote"" and ""Add Citation"" text then it is not reflected. Steps to replicate: 1: Activate the Twenty Twenty Theme 2: Add Pullquote block 3: Add ""Add Quote"" text and ""Add Citation"" text 4: Choose Typography Size Option for more information I provided a video Video: https://share.cleanshot.com/YFEvesCAX75U534X1xXR Thank you." kmadhak 53158 Twenty Twenty: Pullquote block editor styling does not match front Bundled Theme normal normal Future Release defect (bug) assigned has-patch 2021-05-05T00:10:48Z 2021-11-05T05:34:47Z "Twenty Nineteen has a similar discrepancy reported on #53112 When the pullquote has default alignment, the text is still Garamond italic in the editor. Also, quotes aligned Wide or Full are not the larger font size." sabernhardt 59958 Twenty Twenty: Search block is not looking proper when large size is chosen Bundled Theme normal normal Awaiting Review defect (bug) new 2023-11-24T10:44:56Z 2023-11-24T16:58:59Z "Steps to reproduce the issue :- 1. Activate Twenty Twenty theme. 2. Choose search block. 3. Now change the size to large or xl You can able to see that editor side the design not looks proper. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/CDtNRZcsTTfHClvrPfhR" nidhidhandhukiya 1 56157 Twenty Twenty: Table font size not reflected in frontend Bundled Theme 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-07-06T11:35:19Z 2023-06-25T04:40:10Z "Twenty Twenty Table font size not reflected in front. Steps to replicate: 1: Activate the Twenty Twenty Themes
 2: add Table block
 3: Select Size URL: https://www.loom.com/share/dc28c0c09ef247e1afe55a0561c1c911" umesh84 50304 Twenty Twenty: Text in Verse Block in the block editor is too dark to see against a dark page background Bundled Theme 5.4.1 normal normal Awaiting Review defect (bug) new has-patch 2020-06-02T09:06:04Z 2022-08-17T15:53:01Z "The color of text in a Verse Block is dark, and when used on a site with the Twenty Twenty theme, and where the site's background is set to a dark color, it's not possible to see the text in the block editor. ==== Steps to reproduce 1. Activated Twenty Twenty on a test site on WordPress.com 2. Changed the site background (main content and header/footer) to black in Colors in the Customizer 3. Created a new post in the block editor, and added a Verse Block 4. Added text to the Verse Block (pasted from an external source, no external/inline styling was added to the pasted text). ==== What I expected Verse Block text should adapt to the dark background like text in other blocks, like a Paragraph Block. ==== What happened instead Instead, the text in the Verse Block is almost impossible to see because it's dark text against a dark background. ==== Browser / OS version Firefox Developer Edition v77b, macOS 10.15.5 (not sure what the user who reported this issue is using) ==== Screenshot / Video https://d.pr/i/dOYOBN/qWszm6Wi9y https://d.pr/i/luTBOl/5MIvbyOEBE https://d.pr/i/iq2G6M/7TtwenDVkH ==== Context / Source User report on WordPress.com (3022847-zen)" pauljacobson 2 56083 Twenty Twenty: The design of the ordered lists on the backend side is deteriorating Bundled Theme normal normal 6.6 defect (bug) new has-patch 2022-06-28T07:14:11Z 2024-03-27T21:29:59Z "When you set the ordered list style in the list style block and the list style number is more than 2 digits, the design of the text of the list on the backend side is deteriorating. To understand more, I have added a video link of the issue below. [https://share.cleanshot.com/SNNV2FjnfkxQp5e92rf7]" aezazshekh 52543 Twenty Twenty: Vendor prefix build steps are missing configuration Bundled Theme normal normal Awaiting Review defect (bug) new 2021-02-16T18:16:02Z 2021-02-16T18:16:02Z "When building Twenty Twenty, there are two steps that run over CSS files, a vendor prefixer and RTL conversion. The vendor prefixer uses postcss, but there is no `postcss.config.js` file. It looks like this wasn't brought over from github when the theme was initially committed. When `build` is run currently, we can see an error: > You did not set any plugins, parser, or stringifier. Right now, PostCSS does nothing. Pick plugins for your case on https://www.postcss.parts/ and use them in postcss.config.js. We should either remove the postcss commands from `build` (if so, we can also remove the dependencies), or add in a postcss config." ryelle 48730 Twenty Twenty: Wide and Full Width blocks top and bottoms margins don't respect original design causing layout issues Bundled Theme 5.3 normal normal Awaiting Review defect (bug) new has-patch 2019-11-19T16:58:13Z 2023-10-06T05:37:19Z "In the original design: - wide width blocks had vertical margins of 4rem on small devices, 6rem for @media (min-width: 700px) and 8rem for @media (min-width: 1000px) - full width blocks had vertical margins of 5rem on small devices, 6rem for @media (min-width: 700px), 8rem for @media (min-width: 1000px) and 10rem for @media (min-width: 1220px) Currently: - wide width blocks have vertical margins of 4rem on all screen sizes - full width blocks have vertical margins of 5rem on all screen sizes except 10rem for @media (min-width: 1220px) The correct values don't appear because there is an error in the CSS declarations at the lines below. While they intend to set the margins, they do nothing as complex selectors can't be set in the :not() pseudo-class (https://developer.mozilla.org/en-US/docs/Web/CSS/:not) https://github.com/WordPress/WordPress/blob/master/wp-content/themes/twentytwenty/style.css#L5255-L5259 {{{ .entry-content > .alignwide:not(.wp-block-group.has-background), .entry-content > .alignfull:not(.wp-block-group.has-background) { margin-bottom: 6rem; margin-top: 6rem; } }}} https://github.com/WordPress/WordPress/blob/master/wp-content/themes/twentytwenty/style.css#L5901-L5905 {{{ .entry-content > .alignwide:not(.wp-block-group.has-background), .entry-content > .alignfull:not(.wp-block-group.has-background) { margin-bottom: 8rem; margin-top: 8rem; } }}} it's important to set these margins back to their original values because currently 2 consecutive wide columns blocks don't display properly (because the negative margin-top calculation for the second columns block was based on the original margin values https://github.com/WordPress/WordPress/blob/master/wp-content/themes/twentytwenty/style.css#L5756-L5759). [[Image(https://i.imgur.com/5FJUYRr.png)]] " collet 3 48837 Twenty Twenty: Wrong cover height in Chrome mobile Bundled Theme 5.3 normal normal Future Release defect (bug) new 2019-11-29T13:36:04Z 2020-02-19T15:04:11Z "WordPress 5.3 with Twenty Twenty theme, all plugins disabled. Using Chrome mobile on Android the down arrow doesn't appear on screen unless you scroll down a little. Using Samsung browser it displays correctly. Can be reproduced opening http://endorfinamente.com.br on Android Chrome. Screenshots: [[Image(http://endorfinamente.com.br/tmp/Screenshot_20191129-102354_Chrome.jpg)]] [[Image(http://endorfinamente.com.br/tmp/Screenshot_20191129-102414_Samsung%20Internet.jpg)]]" oldnapalm 2 48734 Twenty Twenty: [em] tag with blank string inside ruins theme layout audrasjb* Bundled Theme 5.3 normal normal Future Release defect (bug) accepted has-patch 2019-11-19T19:21:36Z 2020-05-25T19:13:37Z "Hello! I’ve found a layout issue, concerning to ""em"" tag. When we use the ""em"" tag and try to separate paragraphs inside this tag with blank strings, all the parts that are not in “touch” with opening and closing tags are ""on their own"" in layout. Tags were used in Classic Editor. See the screenshot below. Here’s the source: https://drive.google.com/file/d/1KWMwDFlodidBTqjDJRfP9j0mmw6QMuo8/view?usp=sharing And here’s the result: https://drive.google.com/file/d/1Tzhi-hsaGDLDdJax8kMUonHe7tJaX2Q7/view?usp=sharing Here's addition example in English. The source code: {{{ This is some random text on the first line Here is more text on a second line Additional text on a 3rd line with the closing EM tag }}} And here's the result https://drive.google.com/file/d/1v9R127wdjPHjlXThMe9zjKXWz6V3xk8Y/view?usp=sharing Tested on clean Twenty Twenty theme without any additionsl CSS code. Tested on two different sites. The issue is recreated for WordPress versions 4.7.15, 5.2.4 and 5.3. One more experiment: if I put the strings in

...

tag, all the strings go to the left and ignore theme styles. Also tested the case for Twenty Nineteen: there is no such issue." derlynad 50311 Twenty Twenty: blocks are too narrow in editor when the Full Width Template is selected Bundled Theme normal normal Awaiting Review defect (bug) new 2020-06-03T17:32:16Z 2022-08-10T15:50:25Z "When selecting the Full Width Template in Twenty Twenty, the page content is up to 1200px wide in the frontend. However, the editor has a [https://github.com/WordPress/twentytwenty/blob/master/assets/css/editor-style-block.css#L77-L79 CSS rule] that forces `.wp-block` max-width to 610px. That produces a styles mismatch between the editor and the frontend. This issue is specially visible in blocks that have different layouts depending on the container width, like the WooCommerce Checkout block (see screenshots), but is still reproducible in any other block (see how the paragraph block line breaks do not occur on the same words editor ''vs.'' frontend)." aljullu 58030 Twenty Twenty: button block does not act on appearance change. Bundled Theme normal normal Awaiting Review defect (bug) new 2023-03-31T05:00:45Z 2023-03-31T16:33:07Z "Steps to reproduce the issue:- 1. Activate Twenty Twenty theme. 2. Choose a button block. 3. Change appearance to bold, semibold or anyone. You can be able to see any changes in the letter. I have attached a video for better understanding. Video URL :- [https://share.cleanshot.com/XDJkj2srjyMgc18cmQGQ] " himshekhar07 1 58024 Twenty Twenty: button block link does not inherit custom letter spacing Bundled Theme 6.2 normal normal Awaiting Review defect (bug) new has-patch 2023-03-30T11:41:09Z 2023-07-01T22:10:51Z "Steps to reproduce the issue:- 1. Activate Twenty Twenty theme. 2. choose button block. 3. Give letter spacing. You can able to see there is no spacing between the letters. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/B2GwwvWvlTvwZFMWD55P" nidhidhandhukiya 56174 Twenty Twenty: button block overlaps with other block Bundled Theme 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-07-08T07:22:39Z 2022-07-26T18:04:35Z "While using twenty twenty theme facing issue when we add button block and changing its alignment and adding other search block.Button block overlap with other block. Here is link:[https://share.cleanshot.com/rITjL3ots1sSlhb1sXqE]" multidots1896 56193 Twenty Twenty: font size issue in Post Title block Bundled Theme 5.9 normal normal Awaiting Review defect (bug) new 2022-07-11T10:36:25Z 2022-07-12T16:12:42Z "In Twenty Twenty Theme, when we add Post Title block in editor side and change the heading level, we can see that the font size of heading level is not reflected in editor side. It is only reflected in front side. Steps to replicate: 1: Activate the Twenty Twenty Theme 2: Add Post Title block 3: Choose heading level 4: View the page/post at editor side 5: Save page/post 6: View the page/post at front side For better understanding I provide video attachment link. Video link: https://share.cleanshot.com/yx5iwnPKbNDnqcSeCTex Thanks" kajalgohel 49154 Twenty Twenty: group blocks do not clear children Bundled Theme 5.3 normal normal Future Release defect (bug) new 2020-01-08T20:01:30Z 2020-04-29T15:50:46Z "**reproduced by:** 1. Create a group block 2. add a button within the group block 3. make the button float right **issue:** the group block will not clear floating children producing probably unwanted results in the frontend (and backend). **fixed by:** {{{ .wp-block-group__inner-container::after { content: """"; display: table; clear: both; } }}} " anonymized_14254218 56998 Twenty Twenty: large margins between widgets in footer (in admin area they seem smaller) Bundled Theme normal normal Awaiting Review defect (bug) new 2022-11-04T12:14:32Z 2023-06-22T00:03:16Z "Hi, There are large margins between widgets in footer in twenty twenty theme. https://ibb.co/qgdQGgV In admin area they seem smaller and look better. https://ibb.co/9hPLwdj Got advice to open trac ticket after opening support ticket at https://wordpress.org/support/topic/large-margins-between-widgets-in-footer-in-admin-area-they-seem-smaller/ and fixing the issue using css. " warrior7089 56011 Twenty Twenty: styles issue in Quote block Bundled Theme 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-06-20T06:59:32Z 2023-03-03T11:20:20Z "In Twenty Twenty Theme, when we add Quote block in editor side, the styles option named Plain is not reflected in front-side and editor-side. Actually the Default Styles and Plain Styles are looking same in both the side. Steps to replicate: 1: Activate the Twenty Twenty Theme 2: Add Quote block 3: Choose Plain styles option 4: See block at editor side(block is looking same, nothing change) 5: Save Page/Post 6: View the page/post at front side For better understanding I provide video attachment URL. Video URL: https://share.cleanshot.com/iIXb2WcfmC4un0eapOgG Thanks" kajalgohel 58223 Twenty Twenty: twentytwenty_get_post_meta needs global $has_meta Bundled Theme normal normal Awaiting Review defect (bug) new 2023-04-30T00:14:07Z 2024-01-25T20:30:56Z "There’s a bug in the Twenty Twenty theme in `twentytwenty_get_post_meta`. The bug prevents the action hooks `twentytwenty_start_of_post_meta_list` and `twentytwenty_end_of_post_meta_list` from displaying additional meta data when the default meta data fields are not populated. The variable `$has_meta` must be true for any meta to be displayed. It is set to `false` initially and is only set to `true` if one of the default meta are provided. For `single-bottom`, if no tags are in the post, `$has_meta` will be false regardless of additional meta attempting to be displayed by the action hooks. I solved the bug by defining `$has_meta` as a global inside `twentytwenty_get_post_meta`. From there, I was able to modify its value to true within my action hook function. Hope this can be fixed in the published version of the theme so I don’t have to use a hacked version. I posted on the theme support page and was asked to post a bug in this forum instead. Link to my theme support post: [https://wordpress.org/support/topic/twentytwenty_end_of_post_meta_list-needs-global-has_meta/]" chiefastro 3 49030 Twenty Twenty: video resize functionality also impacts other elements on the page Bundled Theme 5.3 normal normal Awaiting Review defect (bug) new dev-feedback 2019-12-18T17:34:13Z 2020-05-14T15:37:38Z "Twenty Twenty bundles a functionality named ""Intrinsic Ratio Embeds"", allowing videos ({{{iframe}}}, {{{object}}}, {{{video}}}) to be automatically resized on demand. This is practical, but can be problematic for some elements on the page that may not behave like a video, or that may not be in the post content at all. While plugins can use the {{{.intrinsic-ignore}}} CSS class to avoid being impacted by this, I wonder if we could be a bit more specific within the theme, and only target videos inside the post content. This would avoid conflicting with plugins adding iFrames and / or videos outside of the post content, like in widgets. " jeherve 60669 Twenty-Twenty-Two: The search block does not look the same same in the editor and the front. Bundled Theme 6.4.3 normal normal Awaiting Review defect (bug) new dev-feedback 2024-03-01T10:34:22Z 2024-03-01T15:42:09Z "Hello, I have reviewed and found that the ""Search Block"" border does not appear in front end. Here, I have attached its screenshots. Environment info Device: Macbook M1 OS: 14.3.1 (23D60) Browser: Google Chrome Version 121.0.6167.184 (Official Build) (arm64) WordPress version: 6.5-beta2 running, Gutenberg 17.8.0, Theme active: Twenty-Twenty-Two. Thanks," viralsampat 1 50317 Twenty-Twenty: Image Block Caption alignment is not centered on mobile version Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2020-06-04T16:48:43Z 2020-07-06T06:04:33Z "**Summary** The caption alignment within an Image Block does not align centre on mobile device. **Steps to Reproduce** 1. Add an Image Block with a caption to a page in the theme Twenty-Twenty 2. Align the caption to be centred, screenshot: https://d.pr/i/zus1yt 3. View page on mobile device, caption is still aligned left, screenshot: https://d.pr/i/Y8PxJR. But it is aligned correctly on desktop. **Expected Result** I expected the Image Block caption to also be aligned centred on mobile device. **Actual Result** Image Block caption remained aligned left on mobile, but was centred correctly on desktop view. **Additional notes** This was tested on theme Twenty-Twenty, where I could also replicate the issue on a test site. Works correctly and as expected on theme Twenty-Nineteen. Gutenberg: 8.2.1 CoBlocks: 1.23.0" spanglishwebs 2 53617 Update theme block patterns to current shape of used blocks Bundled Theme 5.8 normal normal Future Release defect (bug) assigned has-patch 2021-07-07T11:29:44Z 2023-03-25T18:05:22Z "There have been many enhancements and added features regarding block patterns which require their parsing in browsers idle time, during editor's loading. If we have deprecated versions of blocks in the patterns, they produce some info log messages in console. While this is not something that causes any problem, it can be a bit overwhelming if someone uses the dev tools. Of course it's a good practice to keep patterns up to date and it might even be an opportunity to explore/tweak patterns when some blocks change their shape (this is not happening often though). This should be included in 5.8. " ntsekouras 58715 WP Themes: Improve various globals documentation. Bundled Theme normal normal Awaiting Review defect (bug) new has-patch 2023-07-05T13:04:58Z 2024-01-22T06:56:12Z "I have reviewed the code and found some of the files need to be improved comment code. Please check the below files. File Name: - wp-content/themes/twentysixteen/functions.php - wp-content/themes/twentytwelve/functions.php - wp-content/themes/twentytwenty/functions.php" upadalavipul 58497 when the content of a page is structured into two columns, it causes the menu bar background to change unexpectedly. Bundled Theme 6.2.2 normal normal Awaiting Review defect (bug) new close 2023-06-08T23:27:10Z 2024-03-27T20:21:05Z "Not sure how to put this one in to words. 1. I have a nav bar at the top of twenty twenty three. Background color is set works fine. 2. yesterday I tried out adding a two column block in a page content area on edit page. (Still learning the new flow. getting better at it but still a learning curve). 3. about half of the nav bar on these pages with columns in the content area turns white. Not all of the nave bar, but half. 4. Confused me and looked for css solution before realizing it was the same template working fine on other pages and then realized it was the column. 5. Removing the column from the page content area fixes the issue. " noelhefele 3 59688 Add descriptions to patterns in bundled themes audrasjb Bundled Theme normal normal 6.6 enhancement reviewing has-patch 2023-10-20T02:09:00Z 2024-02-13T14:24:24Z "Patterns have a parameter called ""Description"". The description is used in the WordPress interface, to add context for users that can not see or use the pattern preview. For example users of screen readers. All patterns without the ""Inserter"" parameter set to ""false"" or ""no"", should use the description parameter (These patterns are hidden in the block inserter and do not use the descriptions). Patterns in bundled themes that are missing descriptions needs to be updated. Patterns can be registered using the patterns folder or with [https://developer.wordpress.org/reference/functions/register_block_pattern/ register_block_pattern()] and both type of patterns should be updated. " poena 58452 Add text-wrap: balance to theme styles Bundled Theme 6.2.2 normal normal Future Release enhancement new 2023-06-04T07:21:40Z 2024-02-21T12:59:39Z "Chrome 114 has introduced ""text-wrap:balance"" for CSS. The importance of it is explained in: https://developer.chrome.com/en/blog/new-in-chrome-114/ This helps in displaying content more evenly and often required for headings such as site title and description below it. So WordPress themes should have it. " superpoincare 53874 Bundled Themes: Measurement in 'px' is unnecessary Bundled Theme normal normal Future Release enhancement new has-patch 2021-08-04T17:21:06Z 2023-04-05T15:51:04Z Measurement in 'px' is unnecessary in bundled themes. ankitmaru 2 45293 Bundled themes: Add editor styles for form elements Bundled Theme normal normal Future Release enhancement new 2018-11-06T01:19:18Z 2020-02-24T20:51:06Z "Please add editor styles for basic form elements, e.g.: * input[type=text] * input[type=submit] * etc I am developing a block that generates a custom search form for a CPT. On the front-end, the block is styled by whatever the current theme uses for such elements. It would be great if Twenty Seventeen had editor styles for those elements so that it looked the same in the editor. I have opened this [[https://github.com/WordPress/twentynineteen/issues/480|same issue on GitHub for Twenty Nineteen]]. Doing this for all Twenty XXX themes would be great, but Twenty Seventeen & Nineteen are the only really important ones for me." pbiron 1 56487 Bundled themes: opt-in to appearance tools Bundled Theme normal normal Future Release enhancement new has-patch 2022-09-01T14:40:28Z 2023-12-20T01:36:02Z "Core themes are not getting the latest design tools in the editor because they require the theme to opt in. Previously it was only possible to opt-in via a setting in theme.json, but a theme support check was recently added: https://github.com/WordPress/gutenberg/pull/43337. I think we should add this theme support to bundled themes: `add_theme_support( 'appearance-tools' );` This will allow themes to use editor features like setting the border styles and spacing, as well future enhancements. I am not sure how far back we should go, but I think at least TT1 and TT." jffng 1 58519 Inline styles block styles in bundled themes Bundled Theme 5.8 normal normal Awaiting Review enhancement new dev-feedback 2023-06-12T14:11:07Z 2023-06-19T16:59:26Z "In [50836] function was added, to inline block styles, so for better performance. There are a number of small stylesheets in bundled themes that could do with that could use this functionality. To opt-in a stylesheet, simply add the path add an extra piece of data of the stylesheet. Like this. {{{#!php wp_enqueue_style( 'twentyfifteen-block-style', get_template_directory_uri() . '/css/blocks.css', array( 'twentyfifteen-style' ), '20230122' ); wp_style_add_data( 'twentyfifteen-block-style', 'path', get_template_directory() . '/css/blocks.css' ); }}} This could improve FE performance, as it remove a blocking request. " spacedmonkey 4 44777 Multiple bundled themes ignore/override ordered list types Bundled Theme normal normal Future Release enhancement new changes-requested 2018-08-11T21:02:47Z 2023-09-14T18:59:09Z If you set up an ordered list in Twenty Sixteen or Twenty Seventeen, and then try to add a type to it, WordPress ignores the type. You can get only a numbered list. Greg Raven 2 49175 Optimize font-loading techniques for all WordPress Twenty themes Bundled Theme 5.3.2 normal normal Awaiting Review enhancement new dev-feedback 2020-01-12T08:09:55Z 2023-02-25T20:47:29Z "Right now, I'm using the Twenty Seventeen theme for several websites and the Google Font Libre Franklin, included in that theme, is loaded like this: {{{ }}} For performance reasons, given as this is a font which already has fallbacks defined in the {{{body}}} property, it'd be better to add {{{display=swap}}} and {{{rel=preload}}} to this link. Few links: [https://developers.google.com/web/updates/2016/02/font-display] [https://developers.google.com/web/updates/2016/03/link-rel-preload] [https://addyosmani.com/blog/google-fonts-font-display/] These small steps will **massively increase performance and PageSpeed scores for every core theme implementing these changes** for their Google Fonts. " mvanturnhoutziggonl 1 59012 Option to change Twitter Bird to Twitter X logo Bundled Theme normal normal Future Release enhancement reopened 2023-08-09T03:33:41Z 2023-08-15T05:29:38Z "The Twitter logo changed to X. The Twitter icon in the social widget block and embed block still has the bird logo in it. " kafleg 1 58836 Remove IE specific checks from more default themes Bundled Theme normal normal Future Release enhancement new 2023-07-18T09:26:42Z 2024-03-27T19:23:56Z "Follow-up to #56699 Remove IE conditional statements and register external resources without enqueuing them for four more themes: - Twenty Eleven - Twenty Twelve - Twenty Fourteen - Twenty Sixteen" sabernhardt 4 40486 Standard Themes: Logic for translated strings in connection with Screen Reader text can be improved Bundled Theme normal normal Awaiting Review enhancement new 2017-04-19T17:45:26Z 2024-01-24T09:33:18Z "There are 2 strings including: {{{ screen-reader-text""> ""%s"" }}} 1) {{{#!php Continue reading ""%s"" }}} & 2) {{{#!php Edit ""%s"" }}} In german (as an example, I assume this happens too in other languages) the syntax for 1) needs to be reversed like that: {{{#!php ""%s"" weiterlesen }}} 2) gets: {{{#!php „%s“ bearbeiten }}} which is correct for Screen Reader Users, but it should rather be capitalized in both cases so the button text doesn't start lowercase, see screenshot. https://translate.wordpress.org/projects/wp-themes/twentyseventeen/de/default?filters%5Bterm%5D=screen-reader-text%22%3E+%22%25s%22 We could now capitalize the strings in translation, but there must be a better solution!? PS: Yes, the quotation marks in our translation also needs a little attention, but that's not part of the ticket ;-) " Presskopp 1 60723 TT3: Wrap Navigation block in Row within the header.html template part tomjcafferkey Bundled Theme trunk normal normal 6.6 enhancement assigned has-patch 2024-03-07T12:11:25Z 2024-03-13T09:31:37Z Now that the Block Hooks API has been released as part of WordPress 6.4 3PDs may want to insert their own blocks into the header of the TT3 theme, specifically after the Navigation block. This currently causes problems because the Navigation block and it's siblings are treated as flex items due to its parent being a Row block. tomjcafferkey 58127 Twenty Eleven: Add escaping as per the WordPress VIP standards Bundled Theme normal normal Awaiting Review enhancement new dev-feedback 2023-04-13T14:48:47Z 2023-06-09T17:37:15Z "In the Twenty Eleven theme folder, the file named search.php has improper escaping on line number 21 as per the VIP standard. Issue screenshot: [https://share.cleanshot.com/3rPjnj33GHPcFfyL0rKh] The present line of code {{{ printf( __( 'Search Results for: %s', 'twentyeleven' ), '' . get_search_query() . '' ); }}} Improve line of code: {{{ printf( esc_html__( 'Search Results for: %s', 'twentyeleven' ), '' . esc_html( get_search_query() ) . '' ); }}}" himshekhar07 1 49764 Twenty Eleven: Add gradient background options that fit the theme color scheme Bundled Theme normal normal Future Release enhancement new close 2020-04-01T17:51:15Z 2024-03-26T20:20:43Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 54172 Twenty Fifteen: Replace frontend jQuery usage with vanilla JS flixos90 Bundled Theme normal normal Awaiting Review enhancement assigned has-patch 2021-09-23T19:11:38Z 2022-02-17T21:02:23Z "Using jQuery for a few simple JS interactions in WordPress themes is a common performance problem, which is in most cases relatively straightforward to address: Vanilla JavaScript has for the better part of a decade included enough APIs that work across all popular browsers so that the remaining benefits of jQuery are around a few utility functions, that could be re-implemented in a few lines of code. Using jQuery for such simple use-cases results in around 80% more JS code being loaded in the frontend. This ticket focuses on removing jQuery as a **frontend** dependency for Twenty Fifteen - specifically the frontend, as for example in the Customizer jQuery is loaded anyway (and performance is a bit less of a concern there). Also see #54171, which does the same for Twenty Twelve." flixos90 1 49761 Twenty Fourteen: Add gradient background options that fit the theme color scheme Bundled Theme 6.4 normal normal Future Release enhancement new close 2020-04-01T17:47:16Z 2024-03-26T19:46:06Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 6 45928 Twenty Nineteen: Add a filter to the $primary_color variable Bundled Theme normal normal Future Release enhancement reviewing has-patch 2019-01-10T22:21:51Z 2020-02-21T17:51:36Z "There should be a filter added to the `$primary_color` variable, so that child-themes and plugins can override the built-in default primary color if they choose. Currently, saturation, lightness, and selected text-color can all be filtered. Once the primary color is also filterable, it’ll allow for child themes and plugins to fully customize the color dynamics in the theme. See: https://core.trac.wordpress.org/browser/trunk/src/wp-content/themes/twentynineteen/inc/color-patterns.php#L15" allancole 1 45911 Twenty Nineteen: Add archive descriptions Bundled Theme 5.0.2 normal normal Awaiting Review enhancement new close 2019-01-10T16:56:53Z 2024-03-27T19:59:01Z "Originally reported by @dannycooper in Twenty Nineteen's GitHub repo: Archive descriptions weren't originally included in the theme's design, but it's been suggested they be added now. @kjellr created a mockup of what they should look like. Original issue here: https://github.com/WordPress/twentynineteen/issues/256" laurelfulford 1 49712 Twenty Nineteen: Add gradient background options that fit the theme color scheme Bundled Theme normal normal Future Release enhancement new close 2020-03-27T13:48:41Z 2024-03-26T19:34:25Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 1 45945 Twenty Nineteen: Consider adding a filter for the featured image color filter functionality. Bundled Theme 5.0.3 normal normal Awaiting Review enhancement new close 2019-01-11T19:35:36Z 2024-03-27T20:32:46Z "Originally raised by @hvianna and @grapplerulrich in this GitHub thread: https://github.com/WordPress/twentynineteen/issues/722 To make it easier for child themes to disable the featured image filter built into Twenty Nineteen, it might be helpful to add a filter for that functionality. Something along the lines of: {{{ function twentynineteen_image_filters_enabled() { return apply_filters( 'twentynineteen_image_filters_enabled', 0 !== get_theme_mod( 'image_filter', 1 ) ); } }}}" kjellr 2 45917 Twenty Nineteen: Consider adding a search option in the page header Bundled Theme 5.0.2 normal normal Future Release enhancement new 2019-01-10T18:50:26Z 2019-08-12T19:08:09Z "Originally noted by @dartiss in the Twenty Nineteen GitHub repository: https://github.com/WordPress/twentynineteen/issues/583 Twenty Nineteen only has one widget area (in the page footer) and does not allow users to place a search field on the top of the page. Many users would likely benefit from that functionality, so it could be considered for a future release. " kjellr 45946 Twenty Nineteen: Consider adding a slide-out animation when the touch menu is closed Bundled Theme 5.0.3 low normal Awaiting Review enhancement new 2019-01-11T19:42:29Z 2019-01-12T01:33:49Z "For the mobile menu, we have a nice slide-in animation for when the menu opens, but we do not have a slide-out animation when the menu closes. This would be a nice additional level of polish to include. Current slide-in animation for reference: [[Image(https://cldup.com/ap0GOkaZQe.gif)]]" kjellr 2 45943 Twenty Nineteen: Consider adding additional social media icons Bundled Theme 5.0 low normal Awaiting Review enhancement new has-patch 2019-01-11T19:10:22Z 2022-10-04T02:26:09Z "There have been a handful of requests for additional icons to be added to the social media links iconset in Twenty Nineteen: - Wikipedia (Proposed by @klaas1): https://github.com/WordPress/twentynineteen/pull/707 - Discord (Proposed by @silas2209): https://github.com/WordPress/twentynineteen/pull/705 - Mastodon (Proposed by Marko Saric): https://github.com/WordPress/twentynineteen/issues/711 Wikipedia and Discord have working patches already (attached): [[Image(https://cldup.com/e-JpiWU-h9-3000x3000.png)]] Twenty Seventeen has a similar social media iconset included, and has received similar requests: #43342, #45328 I don't see an issue with adding these ones (especially the ones that have patches already), but I will note that we should probably agree on some limitations around these sorts of additions: there are a near-infinite number of social media services out there, and we won't be able to include them all. In addition, each icon added provides a (admittedly very tiny) file size bump, and as these services update their logos over time, there'll be maintenance required to keep these up to date. Here is the current list of supported icons in Twenty Nineteen, for reference: https://codex.wordpress.org/Twenty_Nineteen#Add_Social_Icons" kjellr 1 45924 "Twenty Nineteen: Consider making the ""—"" divider in the header translatable." Bundled Theme 5.0.2 low normal Future Release enhancement new has-patch 2019-01-10T20:32:57Z 2019-04-24T14:38:01Z "Twenty Nineteen uses an em dash to separate the site title from the tagline: [[Image(https://cldup.com/n92WHtHO2t-3000x3000.png)]] As originally noted by @pixolin in the Twenty Nineteen GitHub repository, in non-english languages, the em dash is not always the most appropriate/common character for this situation. To address this, we should consider allowing this to be translatable. Note that the em dash is currently inserted (and hidden when appropriate) via CSS, so this could require a bit of a reworking of that functionality. Original report: https://github.com/WordPress/twentynineteen/issues/557" kjellr 45919 Twenty Nineteen: Improve comments in `twentynineteen_setup` Bundled Theme 5.0.2 normal normal Future Release enhancement new 2019-01-10T19:07:51Z 2020-11-25T00:04:40Z "Originally reported by @joyously in the Twenty Nineteen GitHub repo: The new interfaces for the editor should be clear and instructive. Many people will look to this theme for ""How To"" information. The comments need to indicate what the add_theme_support really does. The call for the old editor should be marked as such. Currently, it's a bit sparse: {{{ // Add support for Block Styles. add_theme_support( 'wp-block-styles' ); // Add support for full and wide align images. add_theme_support( 'align-wide' ); // Add support for editor styles. add_theme_support( 'editor-styles' ); // Enqueue editor styles. add_editor_style( 'style-editor.css' ); // Editor color palette. add_theme_support( 'editor-color-palette', array( array( 'name' => __( 'Primary Color', 'twentynineteen' ), 'slug' => 'primary', 'color' => twentynineteen_hsl_hex( 'default' === get_theme_mod( 'primary_color' ) ? 199 : get_theme_mod( 'primary_color_hue', 199 ), 100, 33 ), ), ) ); // Add support for responsive embedded content. add_theme_support( 'responsive-embeds' ); }}} There is also a separate function for enqueuing `twentynineteen-editor-customizer-styles` which should have good comments. This handle name is questionable, because it is editor and customizer, so it's confusing. Does it need to say customizer? If I'm looking at this to figure out how to change my theme for the new editor, I can't really tell what's what. Copied over from: https://github.com/WordPress/twentynineteen/issues/634" laurelfulford 2 46108 Twenty Nineteen: Include contributing.txt file with Sass compiler instructions Bundled Theme 5.0.3 normal normal Awaiting Review enhancement new has-patch 2019-01-25T18:26:30Z 2019-01-29T13:57:39Z "In the GitHub repository, there is a `CONTRIBUTING.md` document with instructions for how to compile the Sass for Twenty Nineteen. This file was not migrated over to core. For those working with the theme (both for direct contributions, and for their own purposes), it'd be helpful to bundle instructions for working with the Sass via the included build tool. The attached patch ports over the ""Compiling SCSS"" section from the document on GitHub, as a new `contributing.txt` file. https://github.com/WordPress/twentynineteen/blob/master/CONTRIBUTING.md#compling-scss" kjellr 2 45985 Twenty Nineteen: Introduce better theme support for responsive images Bundled Theme 5.0.3 normal normal Future Release enhancement new 2019-01-14T17:11:10Z 2022-12-21T17:52:53Z "As originally reported by @mor10, in the Twenty Nineteen GitHub repository: https://github.com/WordPress/twentynineteen/issues/50 ---- Currently, for images inserted within posts, the sizes attribute of the responsive images markup does not map to the actual displayed width of images. According to my tests (using a `1920x1080px` non-aligned image, inserted via Gutenberg (and set to `Image Size: Full`): The `sizes` markup is output as: `(max-width: 1920px) 100vw, 1920px` - At viewports `<300px`: A `300px` image is loaded - At viewports `>300px`: A `768px` image is loaded - At viewports `>768px`: A `1024px` image is loaded - At viewports `>1024px`: A `1568px` image is loaded - At viewports `>1568px`: The original `1980px` image is loaded Since this is not a full-width image, each of those image sizes is actually wider than necessary, resulting in a larger file size. For a more specific example: at a screen width of `1024px`, this non-aligned sample image is loaded in at `1568px` wide. As per theme rules, it actually appears only `700px` wide in the layout. On a non-retina screen, there's no need to load a `1568px` image for a `700px` space. Twenty Nineteen should include some theme-specific markup to properly assign `sizes` values that map to theme styles. This was done in Twenty Seventeen for instance: https://github.com/WordPress/WordPress/blob/master/wp-content/themes/twentyseventeen/functions.php#L491-L517 At the time of writing, this issue is blocked by Gutenberg: We can currently issue a custom `sizes` attribute for non-aligned images like the example above, but it is not currently possible to have the theme customize the `sizes` attribute for full/wide images. See the following GitHub issues for reference: https://github.com/WordPress/gutenberg/issues/6131 https://github.com/WordPress/gutenberg/issues/6177 https://github.com/WordPress/gutenberg/pull/11973 ---- I'm including patches ported over from two of @mor10's PRs on the original Twenty Nineteen repository: **Modifying the `sizes` attribute for non-aligned body images** (This currently causes negative results for `full` and `wide` images) https://github.com/WordPress/twentynineteen/pull/701 [attachment:""45985-regular-images.patch""] **Adding custom `sizes` attributes, including `wide` and `full` variants** (This is dependent on [https://github.com/WordPress/gutenberg/pull/11973 Gutenberg #11973] being merged): https://github.com/WordPress/twentynineteen/pull/629 [attachment:""45985-all-images.patch""]" kjellr 1 45878 Twenty Nineteen: Search widget input field width is too narrow on wide screens Bundled Theme 5.0.2 normal normal Awaiting Review enhancement reopened has-patch 2019-01-09T14:02:14Z 2019-03-05T16:37:55Z "At screens below ~600px, the search input field is 100% of the parent container, but above that it changes to `width: auto;` which causes it to shrink to ~170px. I suggest we make that a little larger by removing auto and setting a max-width in the CSS. Below 598px: [[Image(https://cldup.com/N7c64xcdCn-2000x2000.png)]] Above 600px: [[Image(https://cldup.com/8WGvnHWHLQ-3000x3000.png)]] --- This issue was migrated over from Twenty Nineteen's GitHub repository: https://github.com/WordPress/twentynineteen/issues/747" crunnells 3 47925 Twenty Nineteen: Size of style.css seems excessively large (225% as large as the next largest theme's CSS) Bundled Theme 5.0 normal normal Future Release enhancement new 2019-08-22T21:34:10Z 2022-10-26T20:59:22Z "I just did a check of the size of each core theme's `style.css` and here's what I found (first column is byte size): {{{ 221622 twentynineteen/style.css 98458 twentyfifteen/style.css 83559 twentyseventeen/style.css 81216 twentyfourteen/style.css 70311 twentysixteen/style.css 57356 twentyeleven/style.css 57106 twentythirteen/style.css 37606 twentytwelve/style.css 24688 twentyten/style.css }}} The `style.css` for Twenty Nineteen is 225% the size of the next-largest core theme stylesheet, for Twenty Fifteen. Between 5.2.2 and 5.3-alpha, the size of Twenty Nineteen's CSS has grown yet another 9KB. Prior to Twenty Nineteen, themes primarily had their CSS hand-written, I believe. As of Twenty Nineteen, SASS was used for the first time. Depending on how SASS is written, a little bit of code can end up generating a lot of CSS. Is this the case here for Twenty Nineteen? It doesn't seem the large amount of CSS is directly due to styling blocks, since the other themes have also been updated to style blocks. A large amount of CSS has negative impact on performance. Not only does it increase the amount of time to render the page (as CSS is render-blocking) through increased data transfer time and CSS parsing time, it also hurts performance once the page has loaded, as there is more CSS in memory and more selectors to be evaluating. How can the amount of CSS in Twenty Nineteen be reduced to be more in-line with the other core themes? ---- A few resources related to CSS performance: * [https://developers.google.com/web/fundamentals/performance/rendering/reduce-the-scope-and-complexity-of-style-calculations Reduce the Scope and Complexity of Style Calculations] * [https://developers.google.com/web/fundamentals/performance/critical-rendering-path/render-blocking-css Render Blocking CSS] * [https://css-tricks.com/efficiently-rendering-css/ Efficiently Rendering CSS]" westonruter 45955 Twenty Nineteen: get_the_archive_title filter issues Bundled Theme normal normal Awaiting Review enhancement new dev-feedback 2019-01-12T05:36:49Z 2019-01-12T06:37:21Z "I was testing the theme with a plugin that adds a custom post type and allows to set a custom title for the custom post type archive view using the following filter: {{{ add_filter( 'get_the_archive_title', 'slug_set_the_archive_title' ); }}} While this filter works fine in the previous WordPress themes, such as Twenty Seventeen, Twenty Sixteen and Twenty Fifteen, it does not work in Twenty Nineteen. It's possible to fix it by setting a priority parameter in the filter. For example: {{{ add_filter( 'get_the_archive_title', 'slug_set_the_archive_title', 99 ); }}} The problem is that it breaks a header style, meaning the title will have the style of the archive view prefix text (grey color and serif font style). Any idea what is the better way to use this filter in the Twenty Nineteen theme?" taskotr 1 49756 Twenty Seventeen: Add gradient background options that fit the theme color scheme Bundled Theme normal normal Future Release enhancement new close 2020-04-01T15:00:51Z 2024-03-26T19:38:50Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 39623 Twenty Seventeen: Consider removing custom header from internal pages if selected video header Bundled Theme normal normal Awaiting Review enhancement new needs-refresh 2017-01-18T14:53:04Z 2024-02-22T08:13:21Z "This came up as I first off didn't even notice I still had default custom header until went to that blog page on the front end. It felt logical to me that the video header I had set would continue in the main site or at least I'd not still see the default header image." karmatosed 41175 Twenty Seventeen: The letters in words with i, j, l look all the same in h3-headings that are also formatted strong. Bundled Theme 4.8 normal normal Awaiting Review enhancement new has-patch 2017-06-26T19:18:31Z 2023-02-25T20:31:57Z "I stumbled across a website today (brent.fm/how-we-work) that is using the Twenty Seventeen Theme. There are some pages that have text paragraphs that are formatted with the '''h3''' and '''strong''' HMTL-tag. Unfortunately these paragraphs contain a lot of words with ""i"" and ""l"" and even ""j"" like: like, guide, communicators, projects, etc. and these three letters (i,l,j) in the choosen theme font look all the same on Desktop mode, which makes it quite a bit difficult to read. The font-size though gets smaller on Mobile mode and is better readable then, because the letters look like they should: different. I'm not sure if this is really a bug because usually an h3-heading is not meant to be strong formatted also, but as it seems, that's what some people do and the font behaves quite unpleasant in this case, it would be good to have the designers (@melchoye ?) to pay attention to that, with this specific font. I was able to reproduce that on a fresh local installation of WordPress 4.8 on Windows. Screenshot is attached. " transl8or 2 39281 Twenty Seventeen: header.php forces thumbnails on all post types Bundled Theme 4.8 normal normal 6.6 enhancement reopened has-patch 2016-12-14T17:23:54Z 2024-02-22T06:48:27Z "My plugin has custom post type and custom 'single-post-type' views and doesn't utilize thumbnails in them. As a result layout appears broken, and there is nothing I can do to make the plugin compatible with Twentyseventeen. I went to have a look how WooCommerce deals with this, and it turns out that there is this piece of code in the style of twentyseventeen: {{{ .single-product .single-featured-image-header { display: none } }}} While that does work, I don't think it's a solution. At the very least there has to be a filter to dynamically disable the thumbnail from `header.php`" justnorris 49757 Twenty Sixteen: Add gradient background options that fit the theme color scheme williampatton Bundled Theme normal normal Future Release enhancement assigned close 2020-04-01T15:04:34Z 2024-03-26T19:44:08Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 3 55126 Twenty Sixteen: Replace frontend jQuery usage with vanilla JS sergiomdgomes Bundled Theme normal normal Awaiting Review enhancement assigned has-patch 2022-02-09T16:04:02Z 2023-05-19T09:06:26Z "`jQuery` is a large library, at around 90KB uncompressed, or 30KB gzipped. To make matters worse, it's usually enqueued in the head, and thus becomes part of the critical path, delaying first paint and subsequent metrics. Nowadays, the library is being enqueued for relatively little gain in many situations, given that the platform supports much of the functionality. Twenty Sixteen is an example of this, as it's relatively trivial to reimplement its functionality in native JS. This ticket focuses on removing jQuery as a frontend dependency for Twenty Twelve - specifically the frontend, as for example in the Customizer `jQuery` is loaded anyway (and performance is a bit less of a concern there). See also #54171 and #54172, which do the same for other themes." sergiomdgomes 3 49765 Twenty Ten: Add gradient background options that fit the theme color scheme williampatton Bundled Theme normal normal Future Release enhancement assigned close 2020-04-01T17:53:48Z 2024-03-26T19:27:25Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 2 49763 Twenty Twelve: Add gradient background options that fit the theme color scheme Bundled Theme normal normal Future Release enhancement new close 2020-04-01T17:50:16Z 2024-03-26T20:22:49Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 54171 Twenty Twelve: Replace frontend jQuery usage with vanilla JS flixos90 Bundled Theme normal normal Awaiting Review enhancement assigned has-patch 2021-09-23T19:10:28Z 2022-02-17T21:02:12Z "Using jQuery for a few simple JS interactions in WordPress themes is a common performance problem, which is in most cases relatively straightforward to address: Vanilla JavaScript has for the better part of a decade included enough APIs that work across all popular browsers so that the remaining benefits of jQuery are around a few utility functions, that could be re-implemented in a few lines of code. Using jQuery for such simple use-cases results in around 80% more JS code being loaded in the frontend. This ticket focuses on removing jQuery as a **frontend** dependency for Twenty Twelve - specifically the frontend, as for example in the Customizer jQuery is loaded anyway (and performance is a bit less of a concern there)." flixos90 1 55660 Twenty Twenty Two: Empty index.php breaks bbPress; consider including generic template loop? Bundled Theme normal normal Awaiting Review enhancement new has-patch 2022-05-02T23:19:31Z 2023-09-09T09:30:36Z "Twenty Twenty Two currently breaks bbPress; including a generic index.php would prevent this without inhibiting it's original intent. I.e. https://wordpress.org/support/topic/blank-topic-pages-on-bbpress-while-using-twenty-twenty-two-theme/#post-15610502 Or perhaps this is not the place for this, and bbPress can sense and compensate for block theme incompatibility? " Steveorevo 59934 Twenty Twenty-Four: PHPCS: Empty line required before block comment Bundled Theme 6.4 normal normal Awaiting Review enhancement new dev-feedback 2023-11-20T07:56:34Z 2023-11-24T22:42:14Z I have fixed Empty line required before block the comment PHPCS issue on the twenty-twentyfour theme's function file. pratikharadava 3 53564 Twenty Twenty-One: Consider adding block-templates support Bundled Theme normal normal Awaiting Review enhancement new has-patch 2021-06-30T16:35:42Z 2022-02-04T09:14:49Z "The template editor coming in WordPress 5.8 must be manually enabled on a per-theme basis. At time of writing, this is not turned on for any of the default themes: https://make.wordpress.org/core/2021/06/16/introducing-the-template-editor-in-wordpress-5-8/ It seems reasonable that at least Twenty Twenty-One should support this feature when it's introduced. " kjellr 1 55281 Twenty Twenty-One: Consider decreasing the selector specificity Bundled Theme 5.6 normal normal Awaiting Review enhancement new 2022-03-01T10:08:37Z 2022-08-11T19:36:08Z There is a CSS selector that selects almost any `a` tags and applies white background on focus. This forces users to use at least 4 classes on elements to override by specificity and complicate the code. You can see mentioned selector and how it overrides the focus color of a button with 3 classes already in attached screenshots. Why such strong selector is used there, is it really necessary, can we remove it or decrease the specificity? orkunaybek 57433 Twenty Twenty-One: Pagination issue Bundled Theme normal normal Awaiting Review enhancement new 2023-01-09T09:37:30Z 2023-03-20T16:55:31Z "In the Twenty Twenty-One theme, when we inspect the page set the width 768px then pagination links are not displayed. Steps to reproduce: Activate the Twenty Twenty-One theme Inspect the page and set the width to 768px The pagination links are not displayed" patelhitesh 57154 "Twenty Twenty-Three: Changing Size Preset from Button Typography is not affecting on front page ""Get in Touch"" button" Bundled Theme 6.1.1 normal normal Awaiting Review enhancement new 2022-11-19T17:36:09Z 2023-03-20T16:54:55Z "1. Go to **Appearance > Editor > Styles**(top right corner) **> Typography > Buttons** 2. Change the values(ie. S, M, L, XL, XXL) from Size Preset 3. Check the ""**Get in Touch**"" button from the left side preview. That's not affected by the size changes. Here is the video as well: https://youtu.be/UcOcMcHGK9s Thank you!" abidhasan112 56899 Twenty Twenty-Three: Quote block's citation styling cannot be changed Bundled Theme 6.1 normal normal Awaiting Review enhancement new 2022-10-24T22:00:01Z 2022-10-31T16:25:31Z "**Summary** In the Quote block the citation has less flexibility to be styled than the quote. Used WP 6.1 RC2 to test. **Steps to reproduce** 1. Add a Quote block in a Post editor 2. Try to change the Citation's font size, appearance and background **Expected results** The background, font size and appearance can be changed the same way the quote styling can be changed. **Actual Results** The citation styling stays the same while the quote styling changes. https://www.screencast.com/t/ciwoJmlowm" severinepozzo 57024 Twenty Twenty-Three: Randomly apply a style variation on activation Bundled Theme 6.1 normal normal Awaiting Review enhancement new dev-feedback 2022-11-07T19:28:49Z 2022-11-17T19:20:23Z "In addition to the default base styling, Twenty Twenty-Three comes with 10 additional style variations. When activating for the first time, an interesting way to showcase what the theme has to offer would be to randomly apply one of the 11 style variations." desrosj 57167 Twenty Twenty-Three: Replace base and contrast color names with ref values Bundled Theme normal normal Awaiting Review enhancement new dev-feedback 2022-11-21T18:20:55Z 2024-03-25T10:08:06Z "There have been previous discussions around the use of ""base"" and ""contrast"" as color names in the Twenty Twenty-Three color palette, here: https://github.com/WordPress/twentytwentythree/issues/36 I'd like to propose another idea that may help solve the naming issues, especially around these two colors. We could define these two colors in `styles.color.background` and `styles.color.text` instead of defining them separately in the color palette. We could then use `ref` values to reference them elsewhere in the theme.json files. The colors can still be defined in the color palette, but perhaps under a descriptive name, e.g. ""dark purple"". This means that the names of these two colors in the color palette would not need to match their purpose (e.g. background, foreground, base, contrast). I've created a PR to demonstrate the idea." mikachan 2 55320 Twenty Twenty-Two: Add Drop cap feature and the ability to change color of individual words other than links Bundled Theme normal normal Awaiting Review enhancement new 2022-03-04T13:39:24Z 2024-02-01T09:16:50Z "The monitor of the Twenty Twenty-Two forum asked me to relay this information to you: t-p wrote: If the theme is to be as flexible as suggested by the authors then the Drop cap as an option should be set true from the start so that all users can benefit, irrespective of technical knowledge. Please report that via https://core.trac.wordpress.org/newticket Please use the “Bundled Theme” component and start the Summary field with Twenty Twenty-Two Post Link: https://wordpress.org/support/topic/theme-upgrades-please/?view=all#post-15424860 ----------- Thank you." daveydo 54930 Twenty Twenty-Two: Improve the default template provided to the post/page template editor Bundled Theme 5.9 normal normal Awaiting Review enhancement new 2022-01-26T15:28:00Z 2024-02-01T10:00:52Z "Currently, selecting the ""New"" template option in the post/page editor results in a sample template that includes a generic header: [[Image(https://cldup.com/7juY60zOWn.gif)]] Instead of this template, Twenty Twenty-Two should provide one that's designed like its standard post/page templates, and uses the same header + footer. This was attempted during the theme's initial development, but was blocked because Gutenberg did not properly load a theme's template parts into this template editor: https://github.com/WordPress/twentytwentytwo/issues/177#issuecomment-954794119 There's a Gutenberg issue here to help fix that behavior: https://github.com/WordPress/gutenberg/issues/36124 Once that's taken care of, this issue can be resolved here in the theme. --- Originally reported by @poena on GitHub: https://github.com/WordPress/twentytwentytwo/issues/177" kjellr 55596 Twenty Twenty-Two: font-smoothing antialiasing setting Bundled Theme normal normal Awaiting Review enhancement new 2022-04-21T03:40:13Z 2022-06-14T19:14:11Z "Currently, at the top of 2022's style.css, font-smoothing is enabled by default by the following: `body {-moz-osx-font-smoothing: grayscale;-webkit-font-smoothing: antialiased; }` Critics of such anti-aliasing font smoothing say that it actually degrades the clarity of fonts on computer screens, particularly dark text on a light background. It switches rendering from subpixel-rendering to pixel level rendering: https://usabilitypost.com/2012/11/05/stop-fixing-font-smoothing/ https://github.com/google/fonts/issues/1170 Perhaps, font-smoothing should not be enabled by default in the default WordPress theme. Cheers, Sam " happysadhu 55169 Twenty Twenty-Two: use custom units spacer blocks Bundled Theme normal normal Awaiting Review enhancement new has-patch 2022-02-15T16:19:32Z 2022-02-15T16:43:49Z "Once https://github.com/WordPress/gutenberg/pull/36186 is backported to trunk and a minor release, we can use custom values in spacer blocks instead of static ones in the following templates, patterns, and parts: - header-dark-small (pattern and part) - header-dark-large (pattern and part) - home - index - search - archive" jffng 2 49711 Twenty Twenty: Add gradient background options that fit the theme color scheme Bundled Theme normal normal Future Release enhancement new close 2020-03-27T13:45:13Z 2024-03-26T19:31:55Z Now that we have the option for certain blocks to have gradient backgrounds, we need to add gradient background options to the theme that fit the themes color scheme. ianbelanger 2 48804 Twenty Twenty: Attach template parts with actions instead of directly including Bundled Theme 5.3 normal normal Awaiting Review enhancement new dev-feedback 2019-11-26T21:42:41Z 2019-11-26T21:54:34Z "Originally requested on GitHub by @thomasplevy https://github.com/WordPress/twentytwenty/issues/947 **The Problem** Not all custom post types are created equal. Some custom post types are like blog posts where meta information, post author information, and navigation between post types makes sense. Other custom post types behave more like native pages where navigation between pages is undesirable. This is a pretty generic and blanket statement and it's not always true. Custom post types are custom and the requirement differ greatly depending on the developer creating them. I am working to add Twenty Twenty theme support for my plugin [LifterLMS](https://github.com/gocodebox/lifterlms) and I have several custom post types which I'd like to be able to remove author and custom post type navigation for. Given the fact that custom post types utilize template at `template-parts/content.php` it is currently only possible for me to remove the navigation and author information by using custom CSS. The meta information I am able to disable using the filter `twentytwenty_disallowed_post_types_for_meta_output`. **Proposed Solution** I'd like to modify the template in question to either be wrapped in a filter which allow the inclusion of `template-parts/entry-author-bio.php` and `template-parts/navigation.php` to be disabled via a filter. For example: https://github.com/WordPress/twentytwenty/blob/dea9290e7ca3d38b7067c3b7107787db6554249a/template-parts/content.php#L68-L72 {{{ if ( is_single() ) { get_template_part( 'template-parts/navigation' ); } }}} Could become: {{{ if ( is_single() && apply_filters( 'twentytwenty_display_single_navigation', true ) ) { get_template_part( 'template-parts/navigation' ); } }}} If this does seem like an acceptable addition I'd be more than happy to write and submit the PR but I didn't want to spend time without a blessing from a core contrib or maintainer first. Thank you for considering this!" ianbelanger 1 49904 Twenty Twenty: Blog Layout Improvements Bundled Theme normal normal Awaiting Review enhancement new 2020-04-14T09:01:57Z 2020-04-23T12:11:42Z "**Background** I am suitably impressed by the Twenty Twenty theme's support and customization, but only to a point. While we can very impressively apply layouts to pages from a visual list of templates shown on the ""Change Layout"" screen, I was hoping for that same level of visual layout for the template of the blog article post page. Instead, what I'm greeted with is no visual layout possibilities of the blog's default post page. Other than a dropdown of Default, Cover Template and Full Width Template, there seems to be no way to modify the layout of the default blog article page. Even then, this dropdown won't even be necessary if the posts page can be customized with an overall layout template. Yes, I can modify each blog article itself one by one, but only within the constraints of the theme. I'm disappointed to find that no layout system exists to modify a blog's overall template page. This is particularly disappointing since WordPress is supposed to be software dedicated to blogging. It's great that so much development effort was given to allow many customization options for modifying pages, but I'm wondering why this same level of customization wasn't given to the blog template page for posts? **Enhancement Request** I'd like to request the following theme improvement. I'd like to see the Twenty Twenty theme allow application of visual page layouts to the default blog article template page in similar form to applying layouts to actual pages. This change will allow us to apply banner images and other decorative images around a blog article post like we can on standard pages. We can also properly space paragraphs, set colors, customize sizing of H1, H2, text and so on through the Default template rather than having to play games in Gutenberg using in-line CSS via each individual article OR by manually mucking about in the theme's CSS style sheet. Once a template is visually configured, the only thing writers need to do is write, not worry about a post's overall layout. Please consider this addition. If this is not the correct bug reporting system to report Twenty Twenty theme improvements, please let me know where to post it. If such a way to do what I suggest already exists in this theme and I'm missing it somewhere, please let me know that too." commorancy0 53202 Twenty Twenty: Buttons Are Not Responsive on Mobile Devices Bundled Theme 5.7.2 normal normal Awaiting Review enhancement new 2021-05-13T15:31:52Z 2021-05-15T04:05:02Z "On mobile devices and tablets, the buttons are not responsive. They appear like they would on the desktop website. The buttons should be responsive so users have enough area to click on. They are too small on the mobile and tablet versions of the website. This is what Google says about using buttons: > BE THUMB-FRIENDLY > People use their fingers to operate mobile devices—especially their thumbs. Design your site so even large hands can easily interact with it. > - Use large, centered buttons and give them breathing room to reduce accidental clicks. > - Pad smaller buttons to increase the clickable area. > - Pad check boxes by making the text clickable [https://services.google.com/fh/files/blogs/GoMo_Best%20Practices_GoMo%20Branded.pdf] This is how the page looks on desktop devices. [[Image(https://core.trac.wordpress.org/raw-attachment/ticket/53202/Web-capture_13-5-2021_75816.jpeg)]] This is how the exact page looks on mobile [[Image(https://core.trac.wordpress.org/raw-attachment/ticket/53202/Web-capture_13-5-2021_75945.jpeg)]] As you can see, the buttons are not responsive and do not take up the view so they can easily be clicked on by someone using the mobile device. [[Image(https://core.trac.wordpress.org/raw-attachment/ticket/53202/Web-capture_13-5-2021_8542.jpeg)]] If you change the width settings, this only changes the width of how the buttons will appear on desktop and mobile devices but it does not make them responsive. You can tell the buttons are not responsive because the size of the text within the buttons does not change. Here is a link to the page where I did the test: http://t2.dhosting.network/buttons-not-responsive-on-mobile ''Note: The images are from a desktop computer using the dev tools to change to the mobile view but I get the same result on my mobile device.''" deborah86 2 54852 Twenty Twenty: Consider less aggressive motion preference styles Bundled Theme normal normal Future Release enhancement new 2022-01-18T19:07:15Z 2022-01-19T06:14:30Z "Twenty Twenty styles create animations and transitions but then disable all that animation for people who set the reduced motion preference in their browser/OS. {{{ @media ( prefers-reduced-motion: reduce ) { * { animation-duration: 0s !important; transition-duration: 0s !important; } } }}} The theme needs to continue honoring the preference, but it could define each of its animations within a `(prefers-reduced-motion: no-preference)` media query—and remove the `0s !important` styles—instead. That way, the theme would be responsible for its own motion without disabling motion from other stylesheets (from plugins). Related: #54174 (Twenty Twenty-One)" sabernhardt 55948 Twenty Twenty: Not able to change the Text size or Color for Add citation in Gutenberg Quote block Bundled Theme 6.0 normal normal Awaiting Review enhancement new has-patch 2022-06-08T11:20:47Z 2023-06-02T07:21:13Z "Hello Team, In Twenty Twenty Theme when we select Quote block we cannot able to change the Text size or Color for the ""Add citation"" text. Also for the Left Border we cannot able to change its color. For more information please find the Video attached. Thanks." varshil151189 56557 Twenty Twenty: Remove font size and weight definition on cite element Bundled Theme 5.3 normal normal Awaiting Review enhancement new 2022-09-12T10:40:58Z 2022-09-13T02:35:57Z "The {{{cite}}} element in Twenty Twenty is styled in a way that makes it less flexible than it's meant to be, with a smaller font size and no italic. [[https://www.w3schools.com/tags/tag_cite.asp|The W3Schools example uses the element to wrap the title of a painting]], not the author, causing the title to have reduce emphasis (see tt-before.png). The default styling for the `cite` element is to simply have italic text (see intended.png). Suggestion: remove the font-weight, style, and size definitions from TT's `cite` element. See (tt-after.png) Example block markup: {{{
  • Do Androids Dream of Electric Sheep, Philip K. Dick
  • Neuromancer, William Gibson
  • The Diamond Age, Neal Stephenson
}}}" Joen 2 57978 Twenty Twenty: Separator block does not work well with gradients Bundled Theme normal normal Awaiting Review enhancement new dev-feedback 2023-03-24T10:31:49Z 2023-06-10T06:53:38Z "Steps to reproduce the issue :- 1. Download WordPress version beta version. 2. Choose Twenty Twenty theme. 3. Choose separator block. 4. Apply background color to separator block. 5. Now you can able to see that background color overlaps. Because of that design not looks as per requirements. I have attached video for better understanding. Video URL :- WordPress version beta version. https://share.cleanshot.com/Y9t7PKCBmJSB8dBW1hH4" nidhidhandhukiya 48801 Twenty Twenty: Starter Content could be improved Bundled Theme 5.3 normal normal Awaiting Review enhancement new 2019-11-26T21:16:22Z 2019-12-09T14:34:00Z "Originally reported on GitHub by @collet https://github.com/WordPress/twentytwenty/issues/959 The ""The New UMoMA Opens its Doors"" page is supposed to showcase what the user can do with the blocks (and how to do it) and be used as a starting point. Currently, a part of this page has a bad structure that can lead the users to use the block editor in a wrong manner. [[Image(https://user-images.githubusercontent.com/54663751/68325713-4472f600-00ca-11ea-86fe-2b3a39b399db.jpg)]] * This kind of layout should be built using 2 Columns blocks instead of one. The content for ""Theatre of Operations"" and ""From Signac to Matisse"" should be placed inside a second Columns block. * With a proper structure, it isn't necessary to use Group blocks inside Column block. * The Image block shouldn't be set to Full Width As a result the design is off, there is way too much spacing between a title and its image. With a proper structure, it should look like http://2020.wordpress.net/" ianbelanger 1 48726 Twenty Twenty: Wrong Text Color for Background Color & Subtle Background when used as background color for blocks Bundled Theme 5.3 normal normal Future Release enhancement new 2019-11-19T16:22:07Z 2024-01-16T14:59:39Z "To reproduce the issue: - In the customizer inside the Colors panel set the Background Color to `#000`, it will generate a white text color - In the editor, insert a block that supports background color (e.g. Paragraph) and select Background Color or Subtle Background as the background color using the color palette. The text color is black instead of white, which makes the text unreadable. The issue (front-end and editor) is caused by the CSS (which set the text to black) at the following lines: - [source:tags/5.3/src/wp-content/themes/twentytwenty/style.css#L2730 style.css line 2730] - [source:tags/5.3/src/wp-content/themes/twentytwenty/style.css#L2739 style.css line 2739] - [source:tags/5.3/src/wp-content/themes/twentytwenty/assets/css/editor-style-block.css#L198 editor-style-block.css line 198] - [source:tags/5.3/src/wp-content/themes/twentytwenty/assets/css/editor-style-block.css#L207 editor-style-block.css line 207] " collet 1 56205 Twenty Twenty: background color of column can affect the inner content color Bundled Theme 6.0 low normal Awaiting Review enhancement new dev-feedback 2022-07-12T13:52:54Z 2024-03-23T20:29:21Z "Steps to reproduce :- 1. Activate Twenty Twenty theme. 2. Choose Columns block. 3. Give background-colour Accent colour from the options. 4. In inner column give a white background. all the text under that column block is not visible because it is by default taking white colour. For better understanding please refer to this video. Video URL:- [https://share.cleanshot.com/vskbRyILtP0XkAq8aid4]" nidhidhandhukiya 55410 Update spacer block markup in patterns/templates registered by Twenty Twenty-Two and Core Bundled Theme 6.0 normal normal Awaiting Review enhancement new has-patch 2022-03-17T09:33:16Z 2022-03-17T09:33:38Z "The Twenty Twenty-Two theme registers block patterns and templates that contain deprecated markup for core/spacer blocks. They specify height attribute as a number (""height"":50) instead of a string that includes units (""height"":""50px""). Because of that, the block parser reports depreciation messages in browser console. The attached patch updates markup of block patterns and templates registered by modules that don't need to be compatible with pre-5.9 WordPress: the Twenty Twenty-Two theme and Core itself." jsnajdr 59506 Removed all the layout I had created on the main page Bundled Theme 6.4 normal normal Awaiting Review feature request new close 2023-09-29T18:44:52Z 2024-03-27T20:22:22Z "Al implementar el tema 2024, borró todo lo que había creado en la página principal, de últimas entradas, al menos tengo una página con el mismo diseño; pero fue doloroso, empezaré desde cero. Gracias por su atención. ---- [Google translation]: When implementing the 2024 theme, it deleted everything I had created on the main page, from last posts, at least I have a page with the same design; but it was painful, I'll start from scratch. Thank you for your time." samuelsuiri 43363 Twenty Seventeen: Custom URL for Header Video Bundled Theme 4.9.4 normal normal Awaiting Review feature request new 2018-02-20T04:52:11Z 2021-09-01T16:44:00Z "Good Day On the bundled theme Twenty Seventeen Version: 1.4. You are only able to upload a video under the Appearance / Customize / Header Media section. This results in video content being served from the Base URL. i.e. Thus it does not currently seem possible to serve the video from a CDN. https://cdn.stratuscloud.co.za/wp-content/uploads/2017/06/Flying.mp4 vs https://www.stratuscloud.co.za/wp-content/uploads/2017/06/Flying.mp4 Is it possible to override this value on database or file level or would this require an additional feature to be added to the Theme?" fbotha 1 54173 Twenty Twenty-One: Social icons Bundled Theme normal normal Awaiting Review feature request new dev-feedback 2021-09-23T19:34:24Z 2021-10-05T16:44:29Z "twentytwentyone/classes/class-twenty-twenty-one-svg-icons.php in that beautiful theme mail is take into account and and mailto: links are shown with an envelope icon shouldn't be the same with a tel: link ? (a phone icon) IMHO yes" marco.milone 2 48779 Twenty Twenty: Copyright and WordPress as text widget Bundled Theme 5.3 normal normal Awaiting Review feature request new dev-feedback 2019-11-24T11:46:32Z 2022-07-08T16:08:09Z "I would request to have all content elements easily editable. The only elements I couldn't change from the wp-admin interface were the footer copyright and wordpress text. I would like to change the Copyright to make it linkable and add creative commons to it. Now I had to do it a technical way by child theming, but not everyone is that technical. Custom HTML (copyright) & Text widgets (wordpress link) with a third footer or so could be a solution? Only disadvantage is that WordPress doesn't support PHP by default for security reasons so you can't add the actual site name by code. But a lot of sites doesn't use their company name as site name so it can also be some lorum ipsum text. e.g. © My Company " jurjendevries 1 60701 Bump default theme versions for WordPress 6.6 Bundled Theme normal normal 6.6 task (blessed) new has-patch 2024-03-06T05:03:35Z 2024-03-25T12:27:02Z "All bundled themes from 2010 to 2024 will need a version bump for the 6.6 release. Previously: #59816 - 6.5 #58832 - 6.4 #57857 - 6.3 #57689 - 6.2 #56450 - 6.1 #55754 - 6.0 #54783 - 5.9 #53277 - 5.8 #52704 - 5.7 #51919 - 5.6 #50889 - 5.5 #49743 - 5.4" mukesh27 3 60011 6.4.1 seems to deliver poor external cache performance compared with 6.3.2 Cache API 6.4 normal normal Awaiting Review defect (bug) new 2023-12-04T21:52:06Z 2024-01-10T13:52:41Z "Hello, After upgrading WordPress from 6.3.2 to 6.4.1 I noticed a performance degradation and started to investigate. The upgrade was done on our staging site, where as the production site still runs on 6.3.2 I went through all plug-ins and made sure that staging and production had the same code base and system running except for the WordPress versions. We use Redis version 6 as central cache for our sites, that all run on 2 instances in Azure Web Services for Linux, using PHP 8.2 as base. The cache miss rate has constantly been ~10% on version 6.3.2 but increased to ~34% on version 6.4.1. I have run the two setups side by side over the weekend and had a similar load on the sites and the figures above seem consistent over time. I have nothing more specific to share as to which lookups that fail, but it seems consistent over WordPress and plug-ins using the external cache. I have had a look on Pods behavior together with Pods support as I at first after upgrading saw a 1000% increased page load time and Pods was generating most of it. At this point the cache showed a missrate of >70%. But after saving Pods settings in 6.4.1, the update of alloptions seemed to get rid of that specific overhead and Pods were performing as the rest of the plug-ins. This is how I realized that the increased load time in 6.4.1 might be cache related as the miss rate did not go below 30%. As stated above, I have no firm examples of erroneous calls to share, it seems to be a general behavior. I am also attaching a link to an image showing Redis cache behavior with 6.3.2 on top, 6.4.1 below. If Cache API is the right component for this, I dont know, but it seemed to be close to my obeservaton. Kind regards, Bjørn Hasselberg [[Image(https://pro4uadmin.blob.core.windows.net/wordpress/6.3.2%20and%206.4.1%20cache.png)]] " bjornha 1 26402 Add option to DB if option is only present in cache when updating option Cache API 3.8 normal normal Future Release defect (bug) new needs-unit-tests 2013-12-04T17:57:07Z 2017-03-17T17:45:33Z "In very rare circumstances some options may not be in DB but in cache. On update if updating DB fails remove from cache and try to add option. This would eventually fix cache inconsistencies if they occur. Both update_option and update_site_option are affected." codix 8 23330 Allow autoloading all options, not just autoload = yes options Cache API 3.5.1 normal normal Awaiting Review defect (bug) new has-patch 2013-01-30T21:12:57Z 2022-09-30T14:40:54Z "For 5 years on wordpress.com we have ignored the autoload field for options. In wp_load_alloptions(), autoload = yes is not part of the query. Why? Because wordpress.com has a persistent cache. Thus, the transients that constitute the bulk of autoload = no options are stored in cache, never in the options table. Querying autoload=yes makes the query slower for no reason. Having autoload = no options also complicates notoptions caching. Core has a notoptions cache that would be unnecessary if you can assume that wp_load_alloptions() loads every option. If an option is not in alloptions, then it does not exist. Other large sites that use a persistent cache might also like to ignore the autoload flag. Core could automatically switch to ignoring autoload when an external object cache is being used, but administrators might want to control this so they can clean out old transients from options tables and do whatever other housekeeping is desired. So, let's add a filter that allows toggling this. When autoload is being ignored the wp_load_alloptions() query does not include autoload=yes and notoptions is not used." ryan 5 29247 Crucial caches are not cleared when deleting site Cache API normal normal Future Release defect (bug) new dev-feedback 2014-08-18T03:10:13Z 2022-07-08T15:07:55Z "`clean_blog_cache` clears a bunch of caches, but does not clear any of the options caches. The worst of these is the `alloptions` cache, which allows some behaviour to continue working on deleted sites. For example, `switch_to_blog` will continue to work without error, whereas if the cache is cleared, a `Table 'wordpress.{$prefix}_options' doesn't exist` error will be generated (helping in debugging). Another one that's problematic is the `is_blog_installed` cache. On that note, is there a reason we aren't checking site existence in `switch_to_blog`? (Still investigating this one.)" rmccue 1 38285 Object lookups by ID (or primary key) are not managed properly, lots of memory leaks Cache API normal normal Awaiting Review defect (bug) new has-patch 2016-10-11T17:02:42Z 2019-04-01T15:00:53Z "tl;dr this affects every object that uses the `WP_Post::get_instance()` paradigm of ""managing instances"" (spoiler: they are not) `WP_Post` and friends are supposed to add more sanity to caching and sanitization. They are not models, they are read-only data objects that strongly-type database rows. As such, it should be easy to maintain only one reference to any given row = one object per row, regardless of method of query, you should always get the exact same object. This tends to work if you pass around objects, but not when passing around IDs. Passing around IDs is a common use-case: {{{ $ids = get_favorite_posts(); foreach ( $ids as $id ) { $post = get_post( $id ); // wreak havoc } }}} In a theme: {{{ get_the_title( get_the_ID() ); }}} In Doctrine (or Hibernate, or any other ORM), each type is an Entity that is managed by an Entity Manager. There is never more than one instance of a single item. In WordPress, we get `get_post()` and a built-in non-persistent Array Cache. We also get `WP_Post::get_instance( $id )`, which makes us believe that `WP_Post` is managing instances. It is not. The Array Cache is maintaining all of these references. A few problems: * calls to `::get_instance()` will always touch the cache * The Array Cache clones objects before storing them, and clones objects before returning them * The Array Cache is storing `stdClass` instances, not `WP_Post` instance, so every item out of the cache also has to become a brand new instance of `WP_Post`. Storing the items as `WP_Post` objects would seemingly remove the need to return new instances, but they would be new instances nonetheless, since the cache clones every object before saving / returning. What needs to be done: * Object rows are stored strongly-typed * Cache does not clone objects How to test that this is happening (using WP-CLI): {{{ contains( $p ) ) { $store->attach( $p ); } } $mem2 = memory_get_usage(); \WP_CLI::line( round( ( $mem2 - $mem1 ) / 1024, 2 ) ); \WP_CLI::line( $store->count() ); } public function ids() { $store = new \SplObjectStorage(); $mem1 = memory_get_usage(); foreach ( range( 1, 20 ) as $i ) { $p = get_post( 27 ); if ( ! $store->contains( $p ) ) { $store->attach( $p ); } } $mem2 = memory_get_usage(); \WP_CLI::line( round( ( $mem2 - $mem1 ) / 1024, 2 ) ); \WP_CLI::line( $store->count() ); } } if ( class_exists( '\WP_CLI' ) ) { \WP_CLI::add_command( 'prof', Prof::class ); } }}} Both should print out 1. Without the patch, `ids` will print out 20 + a bunch of leaked memory. Patch for `WP_Post` + `WP_Object_Cache` attached" wonderboymusic 5 51372 Race condition causes an autoload option to leak outside of alloptions Cache API 2.2 normal normal Awaiting Review defect (bug) new dev-feedback 2020-09-22T07:55:45Z 2022-06-09T00:26:17Z "There is a problem with `add_option()` which causes an autoloaded item to leak outside of the `alloptions` cache key and into its own item under the `options` group. This becomes pretty broken with persistent object caching, because it leads to a state, where the option is stuck under its own cache key in the `options` group, and is unable to be deleted or updated, while the underlying database value is completely gone. I've been able to reproduce this in multiple ways, with persistent object caching turned on or off. The backend I used in my testing is [https://github.com/Automattic/wp-memcached wp-memcached], but it should be reproducable with any other backend. The first and easiest way is to just add an `error_log()` to wp-includes/options.php in `get_option()` right before `wp_cache_add()` that writes to the `options` group: {{{ function get_option() { ... if ( is_object( $row ) ) { ... if ( $option == 'foo' ) { error_log( 'leaked' ); } wp_cache_add( $option, $value, 'options' ); }}} Now in a simple plugin we can start writing the `foo` option, like this: {{{ add_action( 'init', function() { delete_option( 'foo' ); add_option( 'foo', 'bar' ); die(); } ); }}} The `autoload` flag defaults to `true`, so in this scenario the `foo` item should always end up in the `alloptions` cache key. However, if you run this in multiple parallel threads (with `ab` for example), you'll see the `leaked` message in your error log, which means `foo` has been written to the `foo` key under the `options` group. {{{ ab -c 100 -n 1000 http://localhost/ }}} Another way to reproduce this is to turn on a persistent object caching plugin, visit the site once to trigger a single `add_option()`, then check some of site options and cache keys: {{{ wp option get foo # says bar wp cache get foo options # error, because foo is autoloaded and stored in alloptions wp cache get alloptions options # big array with foo => bar at the end }}} You can also confirm the database value is there: In MySQL: {{{ SELECT * FROM wp_options WHERE option_name = 'foo'; +-----------+-------------+--------------+----------+ | option_id | option_name | option_value | autoload | +-----------+-------------+--------------+----------+ | 2403 | foo | bar | yes | +-----------+-------------+--------------+----------+ }}} Looks good so far. Now run the same `ab` test with concurrent requests, and check again. {{{ wp option get foo # says bar wp cache get foo options # says bar, because the value leaked from alloptions into its own item wp cache get alloptions options # big array, but NO foo => bar }}} And finally, in MySQL shell: {{{ SELECT * FROM wp_options WHERE option_name = 'foo'; Empty set (0.00 sec) }}} At this point the value is gone, and only remains as a stale item in Memcached under the wrong key. Deleting, adding, or updating the item will not work: {{{ $ wp option delete foo Warning: Could not delete 'foo' option. Does it exist? $ wp option add foo bar Error: Could not add option 'foo'. Does it already exist? $ wp option update foo baz Error: Could not update option 'foo'. }}} Flushing Memcached (or having the key evicted) will ""fix"" the stalemate, but will cause the data to be lost forever. Here's a brief overview of what could happen inside `add_option()` in two concurrent threads: {{{ Thread 1: add_option( 'foo', 'bar' ); Thread 2: add_option( 'foo', 'bar' ); 1: .. get_option( 'foo' ) // false 1: .. INSERT INTO // true 2: .. get_option( 'foo' ) 2: .. .. isset( $alloptions[ 'foo' ] ) // false 2: .. .. ->get_row() 2: .. .. wp_cache_add( 'foo', 'bar', 'options' ); // LEAKED 1: $alloptions[] = ... 1: wp_cache_set( 'alloptions', $alloptions, 'options' ); }}} This is then followed by the next `delete_option()` call, which successfully deletes the data from the database and the `alloptions` key, so then future calls to `add_option()` will fail, because `get_option()` will always return the data from cache. I'm not sure about the best way to fix it. Here are a few thoughts: * Maybe `add_option()` should not rely so heavily on `get_option()`, and do its own checks with cache functions, depending on the `autoload` function argument * `delete_option()` could clear both the `alloptions` array item as well as the `$option` key in the `options` group * In `get_option()` if we were unable to retrieve the data from `$alloptions` and option cache, maybe query the `autoload` column together with `option_value`, before just assuming it's a no: {{{ $row = $wpdb->get_row( $wpdb->prepare( ""SELECT option_value, autoload ... }}} Then handle the cache addition differently, based on that autoload flag. This sounds the most reasonable to me, because this is exactly the place where the item is being put into the wrong key, which causes the other problems. I haven't actually tested this with 2.2, but it seems like that's where the `alloptions` vs `options` cache keys appeared inside `get_option()` right around r4855." kovshenin 1 39382 Skipping term cache cleaning when cache invalidation is suspended Cache API 4.3 normal normal Awaiting Review defect (bug) new 2016-12-23T16:15:41Z 2017-03-17T01:58:09Z "Since v4.3, `clean_term_cache` checks if cache invalidation is suspended, and bails early if it is. This behavior might be a bit obscure and unexpected, based on the documentation of `wp_suspend_cache_invalidation`. I understand that the responsibility of ensuring that the cache is properly invalidated falls on the caller of `wp_suspend_cache_invalidation`, according to the Codex, but I believe that the word ""''cache''"" can be easily misinterpreted as the ''object cache'', not including the (persistent) ''term cache''. Furthermore, even if persistent caches are not invalidated during invalidation suspension, there should probably be a simple function call to purge them all at once. One might suggest using `wp_cache_flush`, as its description states that it ""''removes all cache items''"", but that is also not exactly true, since the word ""''cache''"" does refer to the object cache at this point (expluding persistent caches, e.g. the term cache). I don't exactly think of this as a bug, and I can imagine the performance-related considerations and decisions that led to that behavior. I just believe that, even if nothing changes, a more detailed description of `wp_suspend_cache_invalidation` and `wp_cache_flush` would be really helpful." zachop 58662 Transients cannot contain non-ascii characters Cache API 6.2.2 normal normal Awaiting Review defect (bug) new 2023-06-28T19:34:17Z 2023-06-28T19:34:17Z "set_transient reference says: * Transient name is expected to not be SQL-escaped. Must be 172 characters or fewer in length. * Transient value must be serializable if non-scalar. Expected to not be SQL-escaped. Making note of above, and trying to set transient value with plain text, but containing non-ascii characters, the function fails to save the transient. Using simple preg_replace('/[^A-Za-z0-9 ]/','', )); solves the problem, but the transient no longer contains the original text string. As far as I see, serialization or json encoding the text string does not help, as it would still contain non-ascii characters. So, either the set_transient function should accept more complex value parameters, or documentation should state the limitation on the value parameter. I understand this may also be due to underlying memcached, but I do not see any mention in WP_Object_Cache documentation either that there are any limitations for the value/data to be stored." iarovuo 1 57366 WP 6.1 - Performance Regression Cache API 6.1.1 normal normal Awaiting Review defect (bug) new dev-feedback 2022-12-21T12:45:49Z 2023-04-20T13:25:04Z "Hi team, I am experiencing some significant performance regression when I upgrade from 6.0 to 6.1 (and 6.1.1). Page load time roughly triples across the site. I do not have a profiler running but using Query Monitor I can see a significant increases in object cache hits (14k to 110k). I understand this is partially expected due to the caching improvements. I am running a fairly large (170k posts) site with Woocommerce and a number of plugins. I am happy to provide more detailed analysis but not sure what is the best profiling tool or method to understand where the regression is coming from. If you can provide some guidance I will try to collect more data. Thanks, Jason" galapogos01 2 30430 WP_Object_Cache does not properly cache objects nested in arrays Cache API 2.0 normal normal Awaiting Review defect (bug) new needs-unit-tests 2014-11-21T00:17:31Z 2022-07-08T23:23:03Z "I noticed on a plugin that cached data wasn't coming out the way it was inserted. What was happening is that it was an array of objects. The code would then go and change the original data and the data in the cache is changed. I would expect data retrieved from the cache to be exactly the same as what was inserted. To make sure there was minimal performance impact I did some tests and the test script is attached. Initially I thought unserialize(serialize($data)) would be a good route, but it was twice as slow as rolling your own solution. I tried numerous methods and the function I initially build was always the fastest. The transient/option table doesn't have this problem because it calls maybe_serialize. Another way to fix this would be to call maybe_serialize on the set, and maybe_unserialize on a get but that would spread the cost to both functions and I think it is better to have the set be slightly more expensive than having every set and get take slightly longer. " jamesgol 58411 When Object Cache Pro plugin is enabled Cache API 6.2.2 normal normal Awaiting Review defect (bug) new 2023-05-26T03:32:24Z 2023-05-31T23:02:16Z "{{{ function update_term_cache( $terms, $taxonomy = '' ) { $data = array(); foreach ( (array) $terms as $term ) { // Create a copy in case the array was passed by reference. $_term = clone $term; // Object ID should not be cached. unset( $_term->object_id ); $data[ $term->term_id ] = $_term; } wp_cache_add_multiple( $data, 'terms' ); } PHP Warning: Undefined property: stdClass::$term_id in /.../wp-includes/taxonomy.php on line 3801 [24-May-2023 11:53:21 UTC] objectcache.error: Cache key must be integer or non-empty string, empty string given (require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('init'), WP_Hook->do_action, WP_Hook->apply_filters, WC_PB_Install::define_updating_constant, WC_PB_Install::is_update_pending, WC_PB_Install::must_update, WC_PB_Install::is_new_install, get_term_by, get_terms, WP_Term_Query->query, WP_Term_Query->get_terms, _prime_term_caches, update_term_cache) }}}" danidorad0 49692 _prime_post_caches should not do anything if object cache is not running Cache API 5.4 normal normal Awaiting Review defect (bug) new 2020-03-24T16:49:35Z 2020-03-24T19:08:44Z "From what I can see {{{ _prime_post_caches }}} does more harm than good when querying a large set of posts, and using the memory object cache. There should be a check with {{{ wp_using_ext_object_cache }}} and possibly a filter to override the behavior so this only takes action when object cache is in use." pcfreak30 54771 possible disagreement in the return types/values wp_cache_flush() and WP_Object_Cache:flush(). Cache API low normal Awaiting Review defect (bug) new 2022-01-09T18:26:11Z 2022-01-11T03:37:47Z "[https://developer.wordpress.org/reference/classes/wp_object_cache/flush/ WP_Object_Cache::flush()] always returns true. [https://developer.wordpress.org/reference/functions/wp_cache_flush/ wp_cache_flush()] returns the value of calling `WP_Object_Cache::flush()`. But, the DocBlock of `wp_cache_flush()` lists the return as: > True on success, false on failure. Is this discrepancy just a mistake, or is it because of the possibility of an object caching plugin returning something different?" pbiron 2 21650 replace serialize() with print_r() in stats() function in wp-includes/cache.php Cache API 3.4.1 normal normal Future Release defect (bug) new needs-unit-tests 2012-08-21T13:42:29Z 2022-10-10T19:46:05Z "In PHP 5.3 it is no longer possible to serialize data that contains a SimpleXMLElement object. It produces a fatal error. See https://bugs.php.net/bug.php?id=49800 The stats() function attempts to determine the allocated space for objects in the cache by using strlen() of the serialized object. This can fail for the reason above. Given that the figure returned is simply an estimation of the space I propose that the code is changed to use print_r( $cache, true ) instead of serialize( $cache ) ie. to become `echo ""
  • Group: $group - ( "" . number_format( strlen( print_r( $cache, true ) ) / 1024, 2 ) . 'k )
  • ';` This TRAC was raised after a longish chain of events starting with #18488 and the final response (today) which led to another chance discovery of a similar problem in the debug-bar plugin. http://wordpress.org/support/topic/plugin-debug-bar-fatal-error-uncaught-exception-serialization-of-simplexmlelement-is-not-allowed " bobbingwide 7 14254 update_meta_cache fails; query too large? pbearne Cache API 2.9.2 normal normal Future Release defect (bug) assigned has-patch 2010-07-09T19:49:22Z 2024-02-27T17:50:58Z "In the file meta.php, around line 183 in the 'update_meta_cache()' function, it tries to do a query but I noticed this can fail (ie. crash wordpress) if there are too many post id's in the query. The function is being called from query_posts(), with 'posts_per_page' set to -1. An example query that crashed it: {{{ SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN (1009,1006,989,933,902,860,859,858,857,793,838,837,836,827,825,310,780,777,776,775,774,773,770,763,760,759,758,757,728,756,755,754,753,752,751,750,748,746, 732,736,729,726,725,724,723,722,720,719,717,716,715,710,709,503,692,289,625,268,593,583,582,332,32,30,28,26,24,22) }}} Maybe there is some limit associated with queries of this type internal to wordpress, as this query works fine in phpMySql. Apologies if this is already reported or irrelevant in 3.0! " newpixel 2 44445 wp_cache_init() and WP_Object_Cache constructor has a memory leak Cache API 2.2 normal normal Awaiting Review defect (bug) new dev-feedback 2018-06-24T05:00:47Z 2019-05-03T17:45:12Z "When calling `wp_cache_init()` repeated in unit testing the WP_Object_Cache::__contruct() repeatedly registers '__destruct' as a shutdown function, and each time it does it leaks memory. There is a @todo comment above the `register_shutdown_hook()` that says the following so I would assume that this is no longer needed and we could just delete the line with the register_shutdown_hook()? ''This should be moved to the PHP4 style constructor, PHP5 already calls __destruct()'' I will upload a patch to delete the list, and a different patch to only call `register_shutdown_hook()` once, depending on what is appropriate." MikeSchinkel 6 28664 "wp_load_alloptions() fails to set object cache when persistent alloptions cache is ""0""" Cache API normal normal Awaiting Review defect (bug) new needs-unit-tests 2014-06-28T17:44:57Z 2022-07-08T14:55:25Z "When alloptions persistent object cache is set to `0`, `wp_load_alloptions()` fails to reset it with appropriate values. This results in every use of `get_option()` to produce the load alloptions query `SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'` because the object cache never gets appropriately populated. Specifically, `wp_cache_add()`won't set the alloptions value when it's already seen to be set. The end result is a massive impact on site performance when the object cache backend failboats. I'd expect WordPress to handle this scenario a bit more gracefully, possibly falling back to its internal object cache if it detects failures with the persistent object cache. However, it's debatable as to whether the solution lies within a drop-in, or whether it's the responsibility of core. `wp_cache_add()` is used over `wp_cache_set()` for performance reasons with *external* object caches — it doesn't matter one way or another for the internal object cache (genesis #4138). One option is to distinguish between them, and offer different behaviors. However, the most technically appropriate solution is likely to check that the data coming from `wp_cache_get()` is as expected. To answer your question before you ask it, I'm not sure how the Memcached persistent object cache value gets set to zero. It seems to come and go, sometimes occurring regularly when I restart Memcached, and I've seen the issue reproduce with both Ryan Boren's and Zack Tollman's drop-ins (meaning real bug is most likely outside of WordPress)." danielbachhuber 55999 wp_suspend_cache_addition should also disable cache setting? Cache API normal normal Future Release defect (bug) new dev-feedback 2022-06-17T09:30:15Z 2024-02-07T19:31:56Z "Right now wp_suspend_cache_addition is only checked when ""add"" to cache. However most plugins/developers only use wp_cache_set for updating/adding to the cache. This means in most plugins/cases, wp_suspend_cache_addition has no use, in fact it's rather unexpected behavior that only some functions can add to cache (namely: set, incr, decr) I propose we also check wp_suspend_cache_addition before setting the cache. This would also be in line with its function description: >Stops more data being added to the cache, but still allows cache retrieval. As ""set"" also ""adds"" (or at least modifies if already exists therefore adds/subtracts) data in cache." malthert 44412 'pre_cache_alloptions' filter in wp_load_alloptions() in option.php cannot be hooked Cache API normal normal Future Release enhancement new needs-docs 2018-06-20T12:47:32Z 2021-06-15T18:40:04Z "Whenever wordpress loads, it fetches all options with the wp_load_alloptions() function in the option.php file. There is a filter in the function before sending it to the cache: {{{#!php detected an advanced-cache.php file in the wp-content directory. It seems that this is not the advanced-cache.php file. Please remove this file and disable any other caching plugins to use this . Cache API normal normal Awaiting Review enhancement new reporter-feedback 2020-04-13T22:19:40Z 2020-04-14T11:27:37Z "==== How to Reproduce ==== Simply install and activate two cache plugins that use advanced-cache.php file from the admin dashboard one after another. Isn't that time to change how WordPress use the advanced-cache.php file? Why not make wp-settings.php file to look for: /wp-content/*-advanced-cache.php In this way cache plugin developers will be able to create file with their name and functionality such as: /wp-content/-advanced-cache.php In this way there will be no file replacing/removing and etc. and the whole plugin fight on who to use the advanced-cache.php file will be resolved. There will be no problem to have: /wp-content/-advanced-cache.php /wp-content/-advanced-cache.php /wp-content/-advanced-cache.php The other possible (with eventually slower processing) solution is the advanced-cache.php file to be searched for in all of the plugins directory: /wp-content/plugins/* In this way each plugin can store their advanced-cache.php file in their own plugin root folder: /wp-content/plugins//advanced-cache.php /wp-content/plugins//advanced-cache.php /wp-content/plugins//advanced-cache.php And again this will be resolved. Any ideas on that? Thanks in advance." jeffreycooper 57743 Add `$found` parameter to `wp_cache_get_multiple()` Cache API normal normal Future Release enhancement new has-patch 2023-02-17T04:09:25Z 2023-03-24T17:30:21Z "`wp_cache_get()` includes the forth parameter `$found`. It's a boolean passed by reference to allow developers to determine whether the returned value `false` indicates a populated cache with the value `false`. {{{#!php true, 'unset-key' => false, ) }}} " peterwilsoncc 2 55463 Add a limit to _prime_*_cache functions spacedmonkey Cache API normal normal Future Release enhancement assigned dev-feedback 2022-03-25T12:18:10Z 2023-07-09T22:24:31Z "The _prime_*_cache functions, like `_prime_post_cache` do a simple query to prime caches. This does a IN request to get all the objects. As we know the number of objects we wish returned, as have an array, we can add a simple LIMIT to the query to improve the performance of the query. Example: {{{#!php $fresh_posts = $wpdb->get_results( sprintf( ""SELECT $wpdb->posts.* FROM $wpdb->posts WHERE ID IN (%s) LIMIT %d"", implode( ',', $non_cached_ids ), count( $non_cached_ids ) ) ); }}} " spacedmonkey 10 45471 Allow caching of parse_blocks results francina Cache API 5.0 normal normal Future Release enhancement assigned dev-feedback 2018-12-03T12:08:15Z 2023-03-29T14:48:39Z "A *lot* of Gutenberg implementations are going to have to parse the blocks in a post. Core itself already parses the blocks on output, but also when trimming an excerpt in `excerpt_remove_blocks`. All this parsing is done with `parse_blocks`. Unfortunately, the only thing passed to `parse_blocks` right now is a string, with no way of caching it. My suggestion would be to add a cache key to the `parse_blocks` function, which defaults to false. I've attached a proposed patch to the function, if we agree on this we could then look at how to implement this in core itself." joostdevalk 28759 Cache API unit tests should verify public function, not WP_Object_Cache methods Cache API normal normal Future Release enhancement new has-patch 2014-07-05T20:03:51Z 2022-07-08T15:06:37Z "The public API for the WP object cache uses the global `wp_cache_*` functions. Traditionally, these functions are mapped to a class, `WP_Object_Cache`, that provides the logic for the cache through different class methods. The public API is then a wrapper for these methods. I think we should transition our unit tests to test the public API, especially as this makes it easier to test 3rd party caches against these tests. 3rd party object caches ''shouldn't'' be required to implement the `WP_Object_Cache` methods; they should only be required to implement the public functions. Additionally, having these tests test the public API will help should we ever decide to change the `WP_Object_Cache` internals." tollmanz 1 58356 Gravatar local image cache Cache API normal normal Awaiting Review enhancement new 2023-05-19T10:38:52Z 2023-05-19T10:40:09Z "One of the native features of WordPress is the ability to use images in comments or for users. By default, these images are based on email accounts and are loaded from Gravatar. Each time one of these images is to be uploaded, a call is made to the Gravatar CDN, which implies, every so often, a DNS request, downloading from an external server and reliance on a third-party service. NOTE: This proposal does not go into legal issues such as whether MD5 is secure or not, or whether privacy legislation such as GDPR must be complied with. This proposal is purely for performance. The idea would be to give the user the possibility to store the images every N hours, for example with an extra option in Settings → Comments. The images would be called once to be downloaded every N hours, a Cron system may be used for downloading, and a flag that warns if the image is in local or not (and not to make requests to the disk to check it, since it would be cached in the user data, which have to be loaded anyway). It is possible that on small sites the impact would be minimal, but on larger sites, or sites with many comments, the number of external calls would be reduced. In addition, this should also help the sustainability of the sites, since the decision of how often things are cached does not depend on Gravatar but on the user, in addition to the configurations that can be made by the hosting. Related: #14682 #16020 #44268 #55062." JavierCasares 4 56060 Implement wp_cache_replace_multiple() – and related WP_Object_Cache method Cache API normal normal Future Release enhancement new dev-feedback 2022-06-24T02:50:19Z 2023-04-20T17:53:59Z "See: #20875, #54574. See also: https://github.com/WordPress/wordpress-develop/pull/2018#discussion_r799643985 🫠 I would like to replace multiple values in a cache, but not `add` or `set` them if they do not exist. In my experience and understanding, `replace()` doesn't get much love because `_exists()` may be impossible to implement in certain backends – specifically (or especially) when `$group` is empty. My current situation is essentially juggling multiple backends, and only wanting to replace multiple values if they exist on one server and not add or set them until some other unrelated things happen. I went to call `wp_cache_replace_multiple()` and thought my IDE had deceived me when it wasn't autocompleting. Alas! Alas, I say! I can handle this In my own drop-in, and I can account for it in my own codes, but I think perhaps it's worth reconsidering this in core for the sake of parity with everything else. Thoughts?" johnjamesjacoby 1 60053 Improve cache flush handling for large multisite database upgrades Cache API normal normal Awaiting Review enhancement new 2023-12-12T15:24:52Z 2023-12-20T16:28:44Z "We run a large WP multisite (200 sub-sites) and with recent WP major version upgrades, the upgrade process has caused a significant performance drop while the database upgrade was in progress, causing downtime and 503 server errors. This seems to be mainly due to multiple back-to-back flushing of the object cache, network-wide, while the sites are under traffic. In `wp_upgrade()` I see two calls to `wp_cache_flush()` which would happen for each of the subsite DB upgrades and I was wondering if things can be improved there. - Could we make the cache flush to be more selective and drop specific groups rather than dropping the whole network cache? - Could we do only one cache flush at the end of the DB upgrade for all sites instead of dropping the cache for each of the subsites' DB upgrades? - For object caching implementations that support subsite cache flushing (e.g. OCP) could we maybe utilize that feature? I have attached some logs and reports from our APM. This was for upgrading from WP 6.3.x to 6.4.x, using Redis with Object Cache Pro, and 4GB of cached items." xParham 3 57906 Introduce `wp_cache_*_query()` helpers Cache API 6.2 normal normal Awaiting Review enhancement new 2023-03-10T23:08:03Z 2023-03-10T23:09:59Z "Ticket #57625 outlines the issue of the `last_changed` timestamp of cache groups changing often, resulting in new cache keys for the same query, while not (or only slowly) expiring old keys. On busy sites this can be large amounts of cache data. Giving object cache implementation more information about cached queries and sql results could make deleting stale cache keys much more efficient for each individual backend. Take this example: {{{#!php posts AS p $join $where $sort""; $key = md5( $query ); $last_changed = wp_cache_get_last_changed( 'posts' ); if ( $in_same_term ) { $last_changed .= wp_cache_get_last_changed( 'terms' ); } $cache_key = ""adjacent_post:$key:$last_changed""; $result = wp_cache_get( $cache_key, 'posts' ); }}} The cache key `adjacent_post:eecd152a77156d10fff6090cd03144c1:0.63115800 16784882730.54921700 1678488360` is pretty useless to an implementation. Introducing a new helper `wp_cache_get_latest()` would give an object cache more to work with to perform near instant invalidation, even with 10 of millions of keys: {{{#!php posts AS p $join $where $sort""; $key = md5( $query ); $last_changed = array( wp_cache_get_last_changed( 'posts' ) ); if ( $in_same_term ) { $last_changed[] = wp_cache_get_last_changed( 'terms' ); } $result = wp_cache_get_query( $key, $last_changed, 'adjacent_post', 'posts' ); }}} This would tell the object cache: - The query hash `$key` - The last changed timestamp to delete older data only - The type `adjacent_post`, so `wp_query` of the same `posts` group doesn't need to be flushed And the implementation can store these in a hash or sorted set, which makes invalidation instantaneous and low cost. Making this a progressive enhancement is cheap and easy: {{{#!php comments_base` and `$wp_rewrite->feed_base` respectively will fix this issue. NOTE: When testing feed URLs, changing `feed` with `feed_base` in `example.com/feed/` will not work. Feed URLs work in two places: `example.com/(feed|rss2?|rdf|atom)` and `example.com/feed_base/(feed|rss2?|rdf|atom)` ([https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-wp-rewrite.php?rev=42343#L860 see rules]). When you open `example.com/feed/` you match first rule where `feed` is type of feed. You need second rule to test it. There is quick workaround though: {{{#!php add_action( 'after_setup_theme', function() { $GLOBALS['wp_rewrite']->feed_base = 'mycustomfeedbase'; $GLOBALS['wp_rewrite']->feeds[] = 'mycustomfeedbase'; } ); add_action( 'parse_query', function( $q ) { if ( $GLOBALS['wp_rewrite']->feed_base == $q->get( 'feed' ) ) { $q->set( 'feed', 'feed' ); } } ); }}} Don't forget to flush rewrite rules." dimadin 4 43539 Custom feed types breaks redirect_canonical behavior SergeyBiryukov Canonical 4.9.4 normal normal Future Release defect (bug) reviewing has-patch 2018-03-13T15:54:47Z 2022-11-01T03:24:16Z "Hi. There's plugin ""fb-instant-articles"" which adds ""instant-articles"" feed type for facebook. final url looks like http://localhost/feed/instant-articles. But because ""redirect_canonical"" doesn't respect custom feed types it triggers 301 redirect to http://localhost/feed/instant-articles/feed/instant-articles/. ""instant-articles"" is registered with $wp_rewrite->feeds but this property isn't respected in ""redirect_canonical"" method: http://take.ms/kq0zJ http://take.ms/cbRPm We need there to support custom types too like that for example: http://take.ms/ljija " satantime 2 55880 Custom post type isn't redirected to its canonical URL Canonical normal normal Awaiting Review defect (bug) new 2022-05-31T11:54:44Z 2023-08-04T06:50:43Z "At the opposite of a custom taxonomy term which is redirected to its pretty URL when we use its plain permalink, a custom post type is not. 1. Set a custom permalink structure in WordPress permalinks settings like /%postname%/ 2. Register a custom taxonomy and custom post type by using the code below for example {{{#!php 'Custom taxonomies', 'singular_name' => 'Custom taxonomy', 'menu_name' => 'Custom taxonomies', ); register_taxonomy( 'custom_tax', 'custom_post', array( 'labels' => $custom_tax_labels, 'public' => true, 'rewrite' => true, 'hierarchical' => true, ) ); $custom_post_labels = array( 'name' => 'Custom posts', 'singular_name' => 'Custom post', 'menu_name' => 'Custom posts', ); register_post_type( 'custom_post', array( 'labels' => $custom_post_labels, 'public' => true, 'rewrite' => true, 'has_archive' => true, 'taxonomies' => 'custom_tax', ) ); } add_action('init', 'test_custom_taxonomy_and_post_type'); }}} 3. Create a custom taxonomy term: Custom term example (slug: custom-term-example) 4. Create a custom post: Custom post example (slug: custom-post-example) and link it to Custom term example 5. Try to get the plain permalink of the custom taxonomy http://example.org/?custom_tax=custom-term-example. We are redirected to the pretty URL http://example.org/custom_tax/custom-term-example/ 👌 6. Do the same with the custom post example plain permalink URL http://example.org/?custom_post=custom-post-example. We aren't redirected to its canonical URL which should be http://example.org/custom_post/custom-post-example 7. Notice that the {{{}}} is correctly set in the HTML source code by the {{{wp_get_canonical_url()}}} function https://github.com/WordPress/WordPress/blob/6.0/wp-includes/link-template.php#L3913 8. Note that the custom post type archive page isn't redirected either. http://example.org/?post_type=custom_post should be redirected to http://example.org/custom_post " manooweb 16 28081 Do a canonical redirect for pages when query var 'paged' is set SergeyBiryukov* Canonical normal normal Future Release defect (bug) accepted needs-unit-tests 2014-04-30T19:53:12Z 2023-03-22T13:28:23Z "Example: http://make.wordpress.org/core/features-as-plugins/page/2323/ You can append /page/{any number} to a page and still get the same content as http://make.wordpress.org/core/features-as-plugins/ The same doesn't happen for posts. [source:/trunk/src/wp-includes/canonical.php#L274]: Seems like l274 and l276 should be !is_singular() as it was before [6115]. (Block was changed in [9697].) Want to use this ticket to get some reasons for [6115]. Currently I only can think of custom page templates which are using a custom pagination, so maybe wontfix." ocean90 2 42512 Domain with special character redirect loop on homepage Canonical 4.5 normal normal Awaiting Review defect (bug) new 2017-11-11T11:31:53Z 2018-03-14T01:39:00Z "Hi, i am experiencing a problem with wordpress starting with 4.5 i think. Since this commit [1] i always get redirect loops on the home page. this issue seemed to be fixed, and i can confirm this on various wordpress instances. But one instance has a '''domain with a special character''' (""ö"" - german Umlaut), and the problem persists there. Also i am not the only user who can confirm this issue [2]. Currently i have to reset the line [3] to the old value after every update since it gets overwritten. This is not a solution, only a very bad workaround. Of course i already have tried to disable all plugins, themes etc. which could cause the issue. I can say, that the problem is not caused by the hoster since i have many wordpress instances running on the same hoster and no other does have this problem (and no other have a special character in the domain) Regards [1] https://github.com/WordPress/WordPress/commit/84a3b4407f9e03311aa591004f3bec0639f3ba3f?diff=unified [2] https://wordpress.org/support/topic/45-causes-infinite-redirect-on-static-front-page/page/2/#post-8156893 [3] https://github.com/WordPress/WordPress/commit/84a3b4407f9e03311aa591004f3bec0639f3ba3f?diff=unified#diff-dc3247fd3fa65f15e6fc5ce8c6fa2d42L175" stefan-niedermann 2 14773 Error in slug parsing leads to unlimited URLs for the same article = duplicate content Canonical 2.5 normal normal Future Release defect (bug) reviewing has-patch 2010-09-03T14:20:45Z 2023-10-19T20:10:42Z "an example says more than 1000 words: right url: http://ahmongwoman.wordpress.com/2010/09/02/i-am-not-hmong-and-i-dont-speak-spanish/ wrong urls: http://ahmongwoman.wordpress.com/2010/09/02/i-am-not------hmong-and-i-dont-speak-spanish/ http://ahmongwoman.wordpress.com/2010/09/02/i----am-not-hmong-and-i-dont-speak-spanish/ http://ahmongwoman.wordpress.com/2010/09/02/i-am-not-----hmong-and-i-------dont-speak---------spanish/ Problem: Wordpress returns the article with HTTP status code 200 for the wrong URLs. This is a serious issue for people regarding search engine optimization (duplicate content). Expected results: Wordpress returns HTTP Status code 301 with Location-Header and right URL to the client." thermoman 1 41577 Fix Notice fixing Canonical 4.8.1 normal normal Awaiting Review defect (bug) new 2017-08-07T00:09:12Z 2021-03-19T11:53:15Z "The file wp-includes/canonical.php produces Notices for undefined indexes when a requested uri has no path or query. The attached patch sets the indexes to empty strings. #6977 (which was not used) had a different approach. The currently used ""Notice fixing"" approach does not fix up $original which is used afterwards. " glehner 54758 Front page not embeddable when using a static page_on_front Canonical normal normal Awaiting Review defect (bug) new has-patch 2022-01-07T06:01:48Z 2022-01-07T09:11:15Z "When a site is configured with a page_on_front, Canonical kicks in and redirects the user to the homepage. This is caused by Canonical not being embed-aware. As an example, the WordPress.org homepage should be embeddable: {{{ $ curl -Is https://en-au.wordpress.org/embed/ | grep -E '^(HTTP|location)' HTTP/2 301 location: https://en-au.wordpress.org/ }}} The non-pretty embeds do however work, unfortunately WordPress doesn't link to these when rewrites are enabled: {{{ $ curl -Is https://en-au.wordpress.org/?embed=1 | grep -E '^(HTTP|location)' HTTP/2 200 }}} After the PR attached to this ticket: {{{ $ curl -ILs https://en-au.wordpress.org/embed/ | grep -E '^(HTTP|location)' HTTP/2 200 }}} The fix attached is a combination bugfix/enhancement, as I've fixed the bug by making canonical embed aware, so it redirects to the canonical embed location. The PR isn't complete, as it appears to still fail on one of the test-cases I added, and appears to have altered (Potentially fixed?) the behaviour of another canonical test. A more targeted fix would be to disable canonical when `is_embed()` is truthful." dd32 51916 Incorrect URL encoding and redirect in redirect_canonical Canonical 5.5.3 normal normal Awaiting Review defect (bug) new 2020-12-02T13:50:46Z 2020-12-02T13:50:46Z "1. Setup a site with pretty permalinks. 2. Visit a URL in the following format, where p=10 must be a valid post ID: https://mywordpress.site/?p=10&a%26b%3dc=1 3. WordPress core will redirect you to a cannonical URL. However it fails to escape the URL query correctly and you end up here: https://mywordpress.site/post-id-10-slug?a=b&c=1" pavoleichler 51700 Infinite redirect loop error when blog site is rewritten and real domain on another server Canonical 5.5.2 normal normal Awaiting Review defect (bug) new 2020-11-03T14:02:07Z 2020-11-03T15:45:55Z "I have my main site at: http://mainsite.com hosted on server A. I have my wordpress blog hosted on some other domain however it is rewritten to http://mainsite/blog (although under the hood is is on another domain http://myblogonmyserver.com) and it is hosted od server B. Both machines are Windows Server machines and PHP is 7.4 altought version of php is not an issue here. This bug is there for at least year. I found solution and source of bug. It is inside canonical.php file (around line 65) In latest version of wordpress (5.5.3) it is in fact around line 71 . I just added this part of code: {{{#!php `. So, we were happy to see the resolutions applied in that ticket. Unfortunately, while testing, we found that adding `/0/` to any URL is still possible, e.g. https://example.com/about-us/0/ does not redirect back to the canonical https://example.com/about-us/. Additionally, we have found that it is possible to append `/page/` followed by a number to the URL of a page that does not support pagination, e.g. https://example.com/about-us/page/0/, https://example.com/about-us/page/12345/, etc. In the latter example, the `` also changes from ""About Us"" to ""About Us – Page 12345"" as WordPress seems to think this is a valid paginated page. The `paged-12345` and `page-paged-12345` classes are also added to the `<body>`. These specific tests were done using the Twenty Twenty-One theme. Furthermore, appending `/page/0/` to the page that displays blog posts does not trigger a 404 or a redirect, e.g. https://example.com/blog/ is ""identical"" to https://example.com/blog/page/0/." daleharrison 50065 Load balancers forwarding host header with port and redirect loop Canonical normal normal Awaiting Review defect (bug) new 2020-05-03T05:44:47Z 2020-05-03T10:05:07Z "When running wordpress behind oracle cloud load balancer (ssl terminated there) redirection loop happens. After debugging its found oracle load balancer is appending port in host header. eg for https://testwp.mydomain.com request host header from load balancer is : https://testwp.mydomain.com:443 this causes redirect loop. Debugged issue to wp-includes/canonical.php Fixed by adding `$_SERVER['HTTP_HOST']= 'testwp.mydomain.com'` in wp-config Please find the attached screen shots " priyanr 1 50163 Perform a canonical redirect when paginated states of the front page are not found hellofromTonya Canonical normal normal Future Release defect (bug) assigned needs-unit-tests 2020-05-14T06:44:54Z 2022-04-04T05:37:27Z "As a followup to #45337, [34492], and [47727]. When example.com/ has a static front page assigned and uses `<!--nextpage-->` accessing non-existing pages uses example.com/page/3/ and Canonical won't kick in. This is because paged states of the front page use the `paged` query var, not the `page` query var. Should also fix https://meta.trac.wordpress.org/ticket/5184 :)" dd32 2 52376 Redirect loop occurs in taxonomy archive with URL-encoded slug. Canonical normal normal Awaiting Review defect (bug) new has-patch 2021-01-26T13:14:28Z 2021-01-29T18:12:20Z "The following steps will occur. 1. Create taxonomy with `rewrite => false`. {{{#!php <?php $args = array( 'label' => 'Genre', 'public' => true, 'rewrite' => false, ); register_taxonomy( 'genre', array( 'post' ), $args ); }}} 2. Create a term with URL-encoded slugs. ( example: 🏠, ワードプレス ) 3. Set Permalink structure to to something other than Plain. 4. Go to the archive of the created term. 5. Redirect loop. `remove_action( 'template_redirect', 'redirect_canonical' )`, it will not occur. " Toro_Unit 43249 Redirection issue with Japanese characters in query string on static front page Canonical 4.9.4 normal normal Awaiting Review defect (bug) new 2018-02-07T17:15:03Z 2018-02-09T10:54:03Z "Hello, I have found a bug that when a static page option is enabled from here: http://jom.x10.mx/wp-admin/options-reading.php Then, you accessed the home page with the Japanese characters on the query string, it causes redirection issues “ERR_TOO_MANY_REDIRECTS”. Example links are: http://jom.x10.mx/?%E3%83%89%E3%83%A0%E3%83%BB%E3%83%88%E3%83%AD%E3%83%94%E3%82%AB%E3%83%AB%E3%83%86%E3%82%B9%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97 http://jom.x10.mx/index.php?%E3%82%B6%E3%82%AF%E2%85%A1F%E5%9E%8B%EF%BC%88%E7%A0%B2%E6%92%83%E8%A3%85%E5%82%99%EF%BC%89 You can test this on any self hosted WordPress installation with the “static page” option enabled. This causes our client’s SERP to have been ruined. http://www.almondmarketing.co.uk/index.php?%E3%83%89%E3%83%A0%E3%83%BB%E3%83%88%E3%83%AD%E3%83%94%E3%82%AB%E3%83%AB%E3%83%86%E3%82%B9%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97 http://www.almondmarketing.co.uk/index.php?%E3%82%B6%E3%82%AF%E2%85%A1F%E5%9E%8B%EF%BC%88%E7%A0%B2%E6%92%83%E8%A3%85%E5%82%99%EF%BC%89" jomgapuz 4 35562 Single post pagination redirect back to page one with nextpage tag - WordPress 4.4.1 Canonical 4.4 normal normal Future Release defect (bug) new 2016-01-21T18:07:31Z 2017-02-07T19:11:07Z "When a single post post content, {{{$post->post_content}}}, does not contain the {{{<!--nextpage-->}}} tag, and we append more pages to the single post through the {{{content_pagination}}} filter, pagination works as expected Sample code to test {{{ add_filter( 'content_pagination', function ( $pages ) { $pages[] = 'This is another page we want to append'; return $pages; }); }}} However, when we add the {{{<!--nextpage-->}}} tag inside the post content ($post->post_content}}} and run the same sample code, any appended page simply redirects back to page one as a 404 header is set on appended pages. I tracked this down to the following block of code (lines 623 - 628) inside the {{{WP}}} class ({{{wp-includes/class-wp.php}}} which seems to be introduced in either v4.4.0 or 4.4.1 {{{ // check for paged content that exceeds the max number of pages $next = '<!--nextpage-->'; if ( $p && false !== strpos( $p->post_content, $next ) && ! empty( $this->query_vars['page'] ) ) { $page = trim( $this->query_vars['page'], '/' ); $success = (int) $page <= ( substr_count( $p->post_content, $next ) + 1 ); } }}} Removing those lines fixes the issue. What I recommend is that instead of simply checking for the {{{<!nextpage-->}}} and returning a 404 according to that, we must rather have a check that acts on the amount of pages we have counted immediately after the {{{content_pagination}}} filter and then return a 404 if the current page exceeds the amount of pages after the {{{content_pagination}}} filter" pietergoosen 1 36737 Single site reachable on multiple subdomains always redirected to site_url Canonical 4.5 normal normal Awaiting Review defect (bug) new close 2016-05-03T07:21:29Z 2021-01-14T22:11:33Z "We run a site which is reachable by multiple subdomains (nb. not multisite) For example customer1.site.nl, customer2.site.nl. A plugin uses the subdomain to display different data for each customer. The site url is set to www.site.nl. Since a recent update this stopped working. The visitor is always redirect to the site url www.site.nl. I tracked down the problem to canonical.php. When I replace this file with the version from 4.4.2 the old behaviour is back, ie. the subdomains are not redirected. There are no rewrite rules for these sub domains. " jsoft 57260 Static home page redirect error using post name premalinks behind reverse proxy Canonical 6.1.1 normal normal Awaiting Review defect (bug) new 2022-12-02T14:07:29Z 2022-12-02T16:42:02Z "In a WP site behind a reverse proxy all was working ok. I then set a static home page and all was still working. After I set post name permalinks, all pages kept working except home page, which had redirect errors. After some time spent researching the problem, I found that the problem was on line 69 of wp-includes/canonical.php: {{{#!php <?php $requested_url .= $_SERVER['HTTP_HOST']; }}} Instead of the value in `$_SERVER['HTTP_HOST']`, the value in `$_SERVER['HTTP_X_FORWARDED_HOST']` should be used. I wonder if that could be definitively fixed changing line 69 of wp-includes/canonical.php with {{{#!php <?php $requested_url .= isset($_SERVER['HTTP_X_FORWARDED_HOST']) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : $_SERVER['HTTP_HOST']; }}} " kappe72 6 18734 Subcategory archive does work with any name as parent category in URL Canonical 3.0.1 normal normal Future Release defect (bug) new dev-feedback 2011-09-21T15:10:46Z 2022-05-16T02:25:51Z "Parent category is ''parentcategory'' and his sub category is ''subcategory''. The URL will be ''domain.com/category/parentcategory/subcategory''. The problem is, that you will get the same page if you use any words as ''parentcategory''. Examples: - ''domain.com/category/xxx/subcategory'' - ''domain.com/category/subcategory'' - ''domain.com/category/foo/bar/subcategory'' IMO {{{redirect_canonical}}} should do his work here (and sometimes it does). In 3.1 it does redirect. In 3.1.4 it doesn't redirect; after r17549. In 3.2.1 it doesn't redirect. Duck_ found that it does redirect before r18079. In current trunk it doesn't redirect. " ocean90 1 51348 Trailing slash redirect removes pipes from query strings Canonical 5.5.1 normal normal Awaiting Review defect (bug) new 2020-09-18T15:31:29Z 2021-03-18T06:58:36Z "We are using some query strings for tracking and campaign purposes and some of them contain pipes. An example: {{{https://example.com/page?key=value1|value2}}} When using one of the template permalinks a trailing slash is added at the end and WordPress will redirect from non trailing slash url to a trailing slash one. Same goes the other way around when a custom permalink is set without a trailing slash and an url with a trailing slash is accessed. We noticed, that during this redirect all pipes in the query string are lost/removed/stripped. The example above will result in: {{{https://example.com/page/?key=value1value2}}}" simjost 2 11856 URL for 1st comments page is not canonical markjaquith Canonical 3.0 normal normal Future Release defect (bug) new dev-feedback 2010-01-10T19:17:42Z 2023-10-19T20:04:59Z "When WP generates URL for comments, it always includes comments page number. It should not do this when URL is for 1st comments page - in this case post URL is sufficient. WP should also redirect to canonical URL version when someone will try to load URL like site.com/some-post/comment-page-1." sirzooro 2 42423 Warning in redirect_guess_404_permalink if $query->post_type is an array instead of a string Canonical 4.8.3 normal normal Awaiting Review defect (bug) new 2017-11-02T20:02:01Z 2019-02-01T12:30:46Z "I am not familiar enough with WordPress to know if this is an issue or intended. redirect_guess_404_permalink has a block that looks like: wp-includes/canonical.php:594 {{{#!php // if any of post_type, year, monthnum, or day are set, use them to refine the query if ( get_query_var('post_type') ) $where .= $wpdb->prepare("" AND post_type = %s"", get_query_var('post_type')); else $where .= "" AND post_type IN ('"" . implode( ""', '"", get_post_types( array( 'public' => true ) ) ) . ""')""; }}} This works in the case that post_type is a single value, but if it has been changed to an array of values then this looks to trigger the warning: wp-includes/wp-db.php:1353 {{{#!php _doing_it_wrong( 'wpdb::prepare', __( 'The query only expected one placeholder, but an array of multiple placeholders was sent.' ), '4.9.0' ); }}}" augustuswm 1 60173 "Warning: Undefined array key ""host""" Canonical normal normal Awaiting Review defect (bug) new has-patch 2024-01-01T08:39:34Z 2024-02-15T16:25:25Z "I encountered an issue on my WordPress website where an ErrorException is thrown, displaying the following error message: {{{ ErrorException Warning: Undefined array key ""host"" }}} This error occurs in the canonical.php file on line 718 of the /wp-includes/ directory. Here is the relevant code snippet: `$compare_original = array( $original['host'], $original['path'] );` Additionally, the error stack trace includes the following information: `/wp-includes/canonical.php in redirect_canonical at line 718` " ainsleyclark 1 55993 Wrong canonical redirect for paged posts page Canonical normal normal Awaiting Review defect (bug) new has-patch 2022-06-16T13:55:21Z 2022-11-07T08:22:34Z "- Setup a site with a static front page and a posts page (let's call it ""Posts""). - Take note of the page_id of the posts page. 265 in my case. - Make sure to use pretty permalinks. - Create sufficient posts to be able to display the page 2 of the posts page. - In the address bar, type `https://mysite.com/?page_id=265` (the posts page plain permalink) => The site is correctly redirected to `https://mysite.com/posts/` - In the address bar, type `https://mysite.com/?paged=2&page_id=265` (the paged posts page plain permalink) => The site is wrongly redirected to `https://mysite.com/page/2/` and displays an empty content. I would expect the url to be redirected to `https://mysite.com/posts/page/2/` " Chouby 1 41712 canonical infinite redirect bug Canonical normal normal Awaiting Review defect (bug) new has-patch 2017-08-23T15:27:56Z 2021-01-11T17:20:29Z "I had an infinite redirection problem caused by ""redirect_canonical"" (wp-includes\canonical.php) I have a query string parameter ex: ""http://mysite.com/mypage/?q=test%2C+test"" and it was redirected infinitly to itself because of: {{{#!php <?php // yes, again -- in case the filter aborted the request if ( ! $redirect_url || strip_fragment_from_url( $redirect_url ) == strip_fragment_from_url( $requested_url ) ) { return; } }}} my $requested_url was in lowercase ""http://mysite.com/mypage/?q=test%2c+test"" because of: {{{#!php <?php $requested_url = preg_replace_callback('|%[a-fA-F0-9][a-fA-F0-9]|', 'lowercase_octets', $requested_url); }}} but my $redirect_url was ""http://mysite.com/mypage/?q=test%2C+test"" so the both url was different because of the ""%2c"" vs ""%2C"" I solved it by adding: {{{#!php <?php add_filter( 'redirect_canonical', 'my_redirect_canonical', 10, 1 ); function my_redirect_canonical($redirect_url){ $redirect_url = preg_replace_callback('|%[a-fA-F0-9][a-fA-F0-9]|', 'lowercase_octets', $redirect_url); return $redirect_url; } }}} " yprince 6 30581 http/https pages have different canonical URLs joostdevalk Canonical 2.9 normal normal Future Release defect (bug) assigned needs-refresh 2014-12-02T22:40:18Z 2019-04-03T12:48:19Z "If you have SSL turned on, but don't force redirect, http and https pages will have different URLs. Ideally, I think the canonical URL should always use http unless `FORCE_SSL` is turned on. Even a filter for `rel_canonical` would be better than what we have now. Unhooking and creating your own version of `rel_canonical()` works, but if multiple plugins do this, you end up with multiple canonical URLs set on every page. Related: #18660, #14458" betzster 5 39827 notice in wp-includes/canonical.php:392 SergeyBiryukov Canonical 4.7.2 normal normal Future Release defect (bug) reopened needs-unit-tests 2017-02-10T02:28:03Z 2024-02-15T09:23:06Z "Hello, We're getting notice in wp-includes/canonical.php:392, but it requires some specific steps to obtain it. Steps: 1. Setup a clean install of WPML 2. Set permalinks to postname without ending slash: /%postname% 3. Create a page in secondary language 4. Set this page as Home Page (under Settings/Reading) but only in the secondary language When you enter ""home page"", you get 404 because a page for original language does not exist. In line 121, you get {{{$redirect_url = get_permalink($redirect_post);}}} and value of $redirect_url is for instance ""http://testsite.dev?lang=fr"". As you see, there is no ""/"" before ""?"", that's why path is empty. You have already fixed the similar issue in line:77-79 {{{#!php // Notice fixing if ( !isset($redirect['path']) ) $redirect['path'] = ''; }}} I suspect, we need the same fix before line: 392 {{{#!php $redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']); }}} " jakubbis 1 33821 redirect_canonical does not consider port in $compare_original Canonical 2.3 normal normal Future Release defect (bug) new needs-unit-tests 2015-09-11T03:18:16Z 2019-09-23T21:12:34Z "In the `wp-includes/canonical.php` file the `$requested_url` is built starting at line 64. It combines `is_ssl()` for protocol, `$_SERVER['HTTP_HOST']`, and `$_SERVER['REQUEST_URI']` - but it does not consider `$_SERVER['SERVER_PORT']` This causes a redirect loop for us because we run HTTPS on port 8443. I suggest checking to see if a port other than 80 or 443 is being used and adding that as part of the comparison - suggested patch attached." willshouse 57724 redirect_canonical() may not work if site_url contains port number Canonical 6.1.1 normal normal Awaiting Review defect (bug) new has-patch 2023-02-15T07:34:58Z 2023-02-17T09:22:03Z "If site_url contains port number (for example, local test with http://localhost:8001/), `redirect_canonical()` may not work as expected because port number is ignored when constructing `$redirect_url`. For example, ""http://localhost:8001/category/name?paged=2"" will not be redirect to ""http://localhost:8001/category/name/page/2""." obache 4 50084 redirect_canonical() need additional hook Canonical normal normal Awaiting Review defect (bug) new 2020-05-04T18:52:25Z 2020-05-05T11:18:25Z "There is no hook in [redirect_canonical()](https://wp-kama.ru/filecode/wp-includes/canonical.php#L12-625) function that allow as to extend it's logic. For example, I have the following permastructure `/%post_id%/%post_name%`. And I can visit the post by such URL `/123`. But I need the redirect to right URL `/123/postname`. And if I try to use the `redirect_canonical` hook to fix this BUG, the hook won't work, because it's too late and the hook is never triggers. At the bottom of the function [we have such code](https://wp-kama.ru/filecode/wp-includes/canonical.php#L572-605): {{{#!php <?php if ( ! $redirect_url || $redirect_url == $requested_url ) { return; } ... $redirect_url = apply_filters( 'redirect_canonical', $redirect_url, $requested_url ); }}} Why there is no hook before `return`? Hook that allows us set our own `$redirect_url`... " Tkama 25 34353 redirect_canonical() – Undefined indexes 'host' and 'scheme' Canonical 4.3.1 normal normal Future Release defect (bug) reopened needs-unit-tests 2015-10-19T08:47:03Z 2023-08-19T00:05:18Z "Hello, We have a problem on our Blog (http://blog.mila.com). Since over half a year, we get these notifications on top of our wordpress blog: '''Notice: Undefined index: HTTP_HOST in /opt/wordpress/wp-includes/canonical.php on line 66''' '''Notice: Undefined index: HTTP_HOST in /opt/wordpress/wp-includes/nav-menu-template.php on line 558''' The notifications come and go, so i don't know what the problem is.. This is line 66 in the canonical file: {{{#!php <?php $requested_url .= $_SERVER['HTTP_HOST']; }}} And this is line 558 in nav-menu-template.php: {{{#!php <?php $current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_root_relative_current ); }}} We know that the notification is shown because the variable HTTP_HOST is not set, but we don't know how to fix that. It would be great if you could help" theamila 5 49220 rel_canonical generates the wrong canonical structure for paginated pages. Canonical 4.6 normal normal Awaiting Review defect (bug) new 2020-01-17T17:31:20Z 2022-11-04T14:57:35Z "`rel_canonical` is responsible for generating canonical permalink structures for pages. For example, when visiting the WordPress.org homepage, the canonical permalink is set to `https://wordpress.org/`. `rel_canonical` has some built in handling of paginated page structures, but this does not seem to be doing the correct thing. A paginated page has the url structure of `https://example.com/page/2`. However, on this page the canonical tag would be output as: `<link rel=""canonical"" href=""https://example.com/2/"" />` As well as simply being wrong, this can conflict with WordPress's `wp_guess_url` functionality. For example, https://central.wordcamp.org/page/5/ canonicalises to https://central.wordcamp.org/5/, which when visited redirects to the ""5-reasons-you-should-attend-wordcamp-nyc"" post (due to the presence of ""5"" in the slug). I would imagine this could seriously confuse some search engines. This situation is made worse by the fact that only a small proportion of pages created through WordPress have legitimate pagination. In these cases the page should canonicalise to the first page, but I believe handling of non-paginated pages would be better considered in a separate ticket. This has come to light as a result of the following meta tickets which are contributing to the current SEO issues on wordpress.org: https://meta.trac.wordpress.org/ticket/4198 https://meta.trac.wordpress.org/ticket/4564 This bug is only affecting sites with pretty permalinks enabled." bradleyt 50149 url issue on category slugs Canonical 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-12T11:09:34Z 2020-05-12T17:53:32Z "This url structure is used to split the posts of a category into pages. {{{ .../category/{category_name}/page/2/ }}} However, if you use /0 before the /page/2/ section, the system ignores /0 and it does not redirect to the 404 page and opens the /page/2 archive page. But in this page, the single_cat_title() function does not return a value. {{{ .../category/{category_name}/0/page/2/ }}} Even all parameters entered before /0 are ignored too {{{ .../category/{category_name}/1/2/3/4/5/abc/0/page/2/ }}} " ersinkurtdal 1 36420 A more forgiving redirect guesser Canonical normal normal Awaiting Review enhancement new dev-feedback 2016-04-05T14:13:37Z 2017-08-16T19:53:17Z " I would like the redirect guesser to be more forgiving using SOUNDS LIKE . Here's a small suggestion: {{{#!php function redirect_guess_404_permalink() { global $wpdb; if ( get_query_var('name') ) { $where = $wpdb->prepare(""(post_name SOUNDS LIKE %s"", $wpdb->esc_like( get_query_var('name') ) ); $where .= $wpdb->prepare("" OR post_name LIKE %s)"", $wpdb->esc_like( get_query_var('name') ) . '%'); .... }}} It would be even better if it could be implemented using levenstein distance if that is not too heavy on resources. https://github.com/fza/mysql-doctrine-levenshtein-function " gorillum 17653 Canonical Redirect when space(s) are used instead of hyphens when requesting a page SergeyBiryukov* Canonical 3.0 normal normal Future Release enhancement accepted 2011-06-02T01:25:08Z 2018-08-19T03:31:39Z "Create a page with a slug that contains a hyphen (eg. /page-name/). If you then visit /page name/ (ie. use a space instead of a hyphen), WordPress currently manages to locate and display the page-name page. This could cause duplicate content issues. The same issue occurs if multiple spaces are used instead of a hyphen. As an example, this is the original page: http://jamesc.id.au/test-page/ This page is accessible via: * http://jamesc.id.au/test%20page/ * http://jamesc.id.au/test%20%20page/ * http://jamesc.id.au/test%20%20%20page/ * http://jamesc.id.au/test%20%20%20%20page/ and so on. WordPress should either output a 404 error, or redirect to /page-name/. Tested using the latest 3.2 trunk (r18110)." jamescollins 9 18660 Enhance rel_canonical function, add filter joostdevalk Canonical 3.3 normal normal Future Release enhancement assigned has-patch 2011-09-14T15:59:03Z 2019-10-16T10:07:49Z "I think it's a bit shortsighted to think that only singular pages need the canonical tag output in the `<head>`. Considering the fact that just about any page on your site can be accessed with a malformed URL, I think it's time to enhance this function. The attached patch is just a first pass. But I think it gets us started in the right direction. There's also a filter before output, so themes and plugins can further enhance the output of this plugin (related #14458). Patch is against [438126]." nathanrice 1 50506 PHP warning appearing in 404 page and 'post_type' query var is Array Canonical 5.4.2 normal normal Awaiting Review enhancement new needs-unit-tests 2020-06-29T11:34:44Z 2020-06-29T11:46:39Z "Fixed PHP warning appearing in 404 page and 'post_type' field is Array (not string), more exactly function: `redirect_guess_404_permalink` line 700 in '''wp-includes/canonical.php''' To replicate this issue simply add this code inside plugin/theme: {{{ function _debug_php_warning_on_404( $query ) { $query->set( 'post_type', [ 'post', 'portfolio', 'page' ] ); } add_action( 'pre_get_posts', '_debug_php_warning_on_404' ); }}} Then try a missing page slug __domain.test/missing-content__ it will show a warning: wpdb::prepare was called incorrectly. The query only expected one placeholder, but an array of multiple placeholders was sent. Please see Debugging in WordPress for more information. (This message was added in version 4.9.0.) The fix is to replace line 700 and check for array ""post_type"" query var: {{{ if ( $post_type = get_query_var( 'post_type' ) ) { if ( is_array( $post_type ) ) { $where .= "" AND post_type IN ('"" . implode( ""', '"", esc_sql( $post_type ) ) . ""')""; } else { $where .= $wpdb->prepare( ' AND post_type = %s', $post_type ); } } }}}" arl1nd 1 40082 Pretty links for users when searching Canonical 4.7.3 normal normal Awaiting Review enhancement reopened 2017-03-09T15:12:23Z 2018-08-14T09:50:45Z "When using the site search, users are shown the ugly URL when taken to the results page: > example.com/?s=keyword It appears as though search results can have pretty URLs: > example.com/search/keyword Maybe show the pretty URL in the browser instead?" henry.wright 21 4328 Redirect Old Slugs feature needs to redirect slugs for pages, not just posts, and redirect old permalink structure SergeyBiryukov Canonical 2.2 normal normal Future Release enhancement reviewing needs-unit-tests 2007-05-24T01:52:44Z 2022-01-25T14:30:12Z "Create a page, browse to it, edit it, change its slug, WP redirects to the old page's slug and serves a 404. Wasn't WP 2.1 or WP 2.2 supposed to make the redirect old slug feature built-in? Along the same lines, it would be sweet if instead of simply redirect old slugs, WP would redirect old urls. When the date changes, when the page parent changes, or when the permalink structure changes, the url changes but neither of WP, the redirect old slug plugin, the permalink redirect plugin, or anything else catches this." Denis-de-Bernardy 2 52865 Strip 'enclosed' trailing spaces in URLs Canonical low normal Awaiting Review enhancement new 2021-03-19T10:32:40Z 2021-03-19T10:42:06Z "#20383 made improvements that strip trailing punctuation from URLs. E.g., https://ma.tt/2012/03/productivity-per-square-inch%20 redirects correctly to the canonical URL. However, URLs like https://ma.tt/2012/03/productivity-per-square-inch%20/ (which 'enclose' the trailing space with a trailing slash) are ''not'' redirected. It, and others like it, typically return a 404 error. This kind of 'broken link' pattern is ''extremely'' common on the web; particular as a trailing slash is often appended to a malformed URL ''before'' WP runs (e.g., via a server/htaccess/nginx configuration). We should refine the canonical redirect logic (in `redirect_canonical`) to also consider and redirect these types of requests. **Considerations** - The ""''Remove trailing spaces and end punctuation from the path''"" section of `redirect_canonical` doesn't consider the presence of trailing slashes in the URL. This could/should be adapted to catch those. - There might be cases where a user 'legitimately' has a permalink structure (or slug) that ends in `%20` or `%20/`. That might(?) make a fix more complicated than just sniffing for whether the permalink structure ends with `/`. - It looks like it's inconsistent in WP where `%20` (and/or `%20/` ) can be added to slugs or structures. It's stripped in some places, but not in others. - ''Should'' a permalink or slug be 'allowed' to contain, or end in, a space character? If this is being stripped in some parts of WP, maybe that's a good argument to prevent it elsewhere/everywhere. In which case, fixing this becomes a lot simpler. " jonoaldersonwp 35248 "WordPress should remove domain trailing dot (as/like it removes ""www."")" Canonical 4.4 normal normal Awaiting Review enhancement reopened 2015-12-29T00:35:21Z 2020-01-31T16:22:59Z "I think, WordPress should redirect from address with trailing dot of domain to version without the dot, like it redirects from address with ""www."". I have read about which version is correct and seems version without dot is allowed according to RFCs, and it is very widely used, and even almost nobody know that trailing dot can be used. ( https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol ""The first definition of HTTP/1.1, the version of HTTP in common use, occurred in RFC 2068 in 1997, although this was obsoleted by RFC 2616 in 1999"" -> https://tools.ietf.org/html/rfc2616#section-14.23 ""The Host field value MUST represent the naming authority of the origin server or gateway given by the original URL."" -> https://tools.ietf.org/html/rfc2616#section-3.2.1 ""For definitive information on URL syntax and semantics, see ""Uniform Resource Identifiers (URI): Generic Syntax and Semantics,"" RFC 2396 ..."" -> http://tools.ietf.org/html/rfc2396#section-3.2.2 ""The rightmost domain label of a fully qualified domain name will never start with a digit, thus syntactically distinguishing domain names from IPv4 addresses, and may be followed by a single ""."" if it is necessary to distinguish between the complete domain name and any local domain."" )" qdinar 1 35437 dot in permalinks Canonical normal normal Future Release enhancement new 2016-01-13T06:49:02Z 2019-01-08T13:53:11Z "Just try to add dot in request uri (begin or end of any part) – it will return status 200, but should 404 or may be it should redirect to url without dots, otherwise it generates duplicate pages that is not so good. For example. Correct url is http://site.com/some/url/ Let's try: http://site.com/.some/url/ – will return status 200 and open the correct page. The same behavior if: http://site.com/some./url/ http://site.com/some/.url/ http://site.com/some/url./ Temporary solution in functions.php helpful for me: {{{#!php <?php function clear_uri($var) { global $clear_processed; $clear_processed = true; $str = trim($var, '.'); if( $str[0] == '.' || $str[strlen($str)-1] == '.' ) $str = clear_uri($str, '.'); return $str; } $clear_processed = false; $parts = explode('/', trim($_SERVER['REQUEST_URI'], '/')); foreach($parts as $k => $s) { if( $s[0] == '.' || $s[strlen($s)-1] == '.' ) $parts[$k] = clear_uri($s); } if( $clear_processed ) { $location = '/' . implode('/', $parts) . '/'; header(""Location: "" . $location, true, 301); exit; } }}} " vk_code 59868 Database insert with emoji fails when table has columns with both utf8mb3 (utf8) and utf8mb4 charsets Charset 4.2 normal normal Future Release defect (bug) new needs-unit-tests 2023-11-09T14:41:41Z 2023-12-14T21:19:02Z "The `wpdb::get_table_charset()` function currently sets the charset to `utf8` when it detects that both `utf8` and `utf8mb4` charsets are present in the table's column definitions. That same function also swaps in `utf8` for `utf8mb3` as they are effectively the same thing. This means that the `wpdb::strip_invalid_text_from_query()` function used early by the `wpdb::query()` function to determine whether text is safe to be inserted, ends up stripping `utf8mb4` safe characters because it forces the use of `utf8` in the called `wpdb::strip_invalid_text()` function. This results in insert queries failing where a table has columns with both `utf8mb3/utf8` and `utf8mb4` collations used, and there are emojis or other 4 byte characters being used in the column that has a `utf8mb4` charset and collation defined. I propose that the `wpdb::get_table_charset()` function should use `utf8mb4` as the returned charset when it detects that 2 charsets are defined on the table, and they are `utf8` and `utf8mb4`, instead of the current behaviour of returning `utf8`." ianmjones 1 51485 Wrong encoding of dynamic block properties Charset 5.5.1 normal normal Awaiting Review defect (bug) new 2020-10-08T13:12:57Z 2020-10-08T13:12:57Z "After update to 5.5.1 German umlauts in dynamic block properties ( strings ) are incorrectly encoded/saved in the database. Something like this as request: <!-- wp:hsu/mitarbeiterblock {""dataPostanschrift"":[""Universität"",""Fakultät für Elektrotechnik"",""""], becomes (response & db): <!-- wp:hsu/mitarbeiterblock {""dataPostanschrift"":[""Universitu00e4t"",""Fakultu00e4t fu00fcr Elektrotechnik"",""""] To reproduce, modify a request and insert umlauts like öäü in properties of a block." sosere 3 46017 """Mine"" comment count isn't updated when replying to or moderating a comment." Comments 5.1 normal normal Future Release defect (bug) new has-patch 2019-01-17T02:59:49Z 2019-01-24T04:40:53Z "To reproduce: - Visit `/wp-admin/edit-comments.php`. - Click Reply on a comment. - Type some text in the comment, click Reply. The ""All"" and ""Approved"" counts update as expected, but the ""Mine"" count doesn't." pento 1 60693 """Previously approved comment"" for logged out users bug" Comments 6.4.3 normal normal Awaiting Review defect (bug) new dev-feedback 2024-03-05T14:30:41Z 2024-03-07T17:00:03Z "When ""Comment author must have a previously approved comment"" is checked in the discussion settings, comments made by registered users who are logged out, go to moderation every time. The check comment function looks for previous comments under their user id but if they have only commented while logged out, no id is recorded. This bug has caused our users and our team major frustration. Can someone please address? Thanks!" jmorti 1 43695 $depth and $args are switched when using custom callback in wp_list_comments() Comments 4.9.5 normal normal Awaiting Review defect (bug) new has-patch 2018-04-05T05:55:31Z 2021-11-26T11:12:27Z "For the custom function I am using the [latest function from walker](https://github.com/WordPress/WordPress/blob/master/wp-includes/class-walker-comment.php#L343) as a base. When you use custom callback in comments.php template: {{{#!php <?php // comments.php $args = [ 'type' => 'comment', 'format' => 'html5', 'style' => 'ol', 'short_ping' => true, ]; // Use our custom callback if it's available if( function_exists( 'custom_render_comment' ) ){ $args['format'] = 'custom'; $args['callback'] = 'custom_render_comment'; } wp_list_comments( $args ); }}} The arguments that get passed to custom_render_comment function are switched: {{{#!php <?php // custom_render_comment.php function custom_render_comment( $comment, $depth, $args ) { /* var_dump($depth): array(15) { [""walker""]=> NULL [""max_depth""]=> string(1) ""5"" [""style""]=> string(2) ""ol"" [""callback""]=> string(21) ""faeiv2_render_comment"" [""end-callback""]=> NULL [""type""]=> string(7) ""comment"" [""page""]=> int(0) [""per_page""]=> int(0) [""avatar_size""]=> int(32) [""reverse_top_level""]=> bool(false) [""reverse_children""]=> string(0) """" [""format""]=> string(6) ""faeiv2"" [""short_ping""]=> bool(true) [""echo""]=> bool(true) [""has_children""]=> bool(true) } } var_dump($args): int(1) */ } }}} The result is this error: {{{ Warning: array_merge(): Argument #1 is not an array in [...]/wp-content/themes/mytheme/inc/render-comment.php on line 56 }}} I haven't found any mention of switching arguments in the WordPressCodex. The fix is easy, just switch those variables, but I think it should be addressed somewhere in the documentation." vincurekf 14 12104 'moderate_comments' capability by itself should grant the user the permission to See/Edit all comments from the Comments menu. Comments 3.0 normal normal Future Release defect (bug) new has-patch 2010-01-31T22:25:24Z 2021-11-08T19:10:31Z "I tried to create a Comment Moderator role today and realized it wouldn't work. My intention was to create a role for people who can't write or edit posts, but can keep an eye on the comment threads. I created the role like so: {{{ #!php add_role('moderator', 'Moderator', array( 'read' => 1, 'moderate_comments' => 1, )); }}} ... then created a new user with that role. When I logged in as my test user, I realized that it was for all intents and purposes a Subscriber. I couldn't see any admin panels but the Dashboard, my profile, and the Tools. I went poking around in edit-comments.php and discovered that it's checking for another capability altogether: {{{ #!php if ( !current_user_can('edit_posts') ) wp_die(__('Cheatin’ uh?')); }}} I double-checked wp-admin/includes/menu.php and it agreed that 'edit_posts' was the minimum capability to see this page, so I tried adding 'edit_posts' to my new role, and I still couldn't get there. Later on in edit-comments.php, when actually trashing a comment, there is a check for 'moderate_comments', but it's a moot point: this screen doesn't even show up in the admin menu, and if you navigate directly to it, you'll get the ""You do not have sufficient permissions to access this page"" message. I thought it was entirely possible I'd missed some finer point of creating roles, so I redid it with Justin Tadlock's excellent Members plugin, and that didn't work either. This behavior might be intentional, but if so, I'm not following the logic. I know roles are due for an overhaul in the next version or two." sillybean 53310 All Comments are not visible in comment section in WordPress Backend Post Section Comments 5.7.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-05-31T15:25:09Z 2021-06-25T07:21:03Z "All Comments are not visible in comment section in WordPress Back-end Post Section - Ex : 1. If I have 104 Comment in My Post then I am able to see only latest 100 comment 2. If I have 21 Comment in Post then I am able to see only 20 comments **Reference Video Link:** https://www.loom.com/share/45c015457f81401ea4cabbb562c5ef34 **Note : This issue occurs in Backend post section**" shailu25 57513 All the comments not showing properly in edit posts Comments normal normal Awaiting Review defect (bug) new has-patch 2023-01-20T10:27:56Z 2023-01-20T10:27:56Z "We have found that not all comments load when show more comments click on edit post. e.g. Consider there are 23 post comments in one post then if we click on show more posts then after showing 20 posts button will hide 3 left comments not be shown. Please check the below screenshot. Edit Post: https://share.cleanshot.com/VjDCLQ9XLvcvXg65qPHd Comment list: https://share.cleanshot.com/rVrLqjFdLK6YzBznPzmG" aniketpatel 2 40164 Apace HTTP 414 error on deleting comments in bulk Comments 4.7.3 normal normal Awaiting Review defect (bug) new has-patch 2017-03-15T15:41:13Z 2017-03-15T21:23:12Z "Bit of an edge case, but I just had to delete 3000 comments from a WP site I took on and I was doing them in 200's (so not to over run the server and so I can check for any legitimate comments). Doing this, the first 200 comments were ""spanmmed"" fine, but then you do the next 200, it generates a 414 error as the url becomes something like: {{{ /wp-admin/edit-comments.php?s=&comment_status=moderated&pagegen_timestamp=2017-03-15+15%3A31%3A06&_total=200&_per_page=200&_page=1&paged=1&_ajax_fetch_list_nonce=ef4afc8347&_wp_http_referer=%2Fnew-site%2Fwp-admin%2Fedit-comments.php%3Fcomment_status%3Dmoderated%26paged%3D1%26spammed%3D200%26ids%3D814%2C365%2C2177%2C813%2C2021%2C812&_wpnonce=461233332d&_wp_http_referer=%2Fnew-site%2Fwp-admin%2Fedit-comments.php%3Fcomment_status%3Dmoderated%26paged%3D1%26spammed%3D200%26ids%3D814%2C365%2C2177%2C813 }}} Basically for every process it duplicates the url and if you have 100+ ID's in each request, it passes a really long url string 1) Is there a reason why all the comment ID's are passed to the url? 2) Can this be amended so in edge cases, so the 414 error isn't generated as it can and will frustrate some people." garethgillman 1 40319 Apostrophe in commenter's name prevents comment_whitelist setting from working. Comments 4.0 normal normal Future Release defect (bug) new has-patch 2017-03-30T18:30:04Z 2020-03-20T05:26:22Z "If a commenter has an apostrophe in their name, and they have a previously approved comment, and the comment_whitelist setting is enabled (""Comment author must have a previously approved comment""), the commenter's comment will always end up in moderation. The cause of this can be traced to r38738. If the name has an apostrophe, it will be slashed; the author name was previously included directly in the SQL, with the slash properly escaping the apostrophe, but when the query was updated to use `prepare()`, the author name was not unslashed. Affects 4.7, 4.7.1, 4.7.2, 4.7.3, and trunk. I've attached a patch that addresses the issue by unslashing the two `expected_slashed` parameters." cfinke 2 49869 Apply comment field filters to backend Comments normal normal Awaiting Review defect (bug) reopened has-patch 2020-04-10T16:21:27Z 2024-03-07T01:13:41Z "Recently, I had to work on an internally consuming WP project. I am a bit surprised how WP filters are mainly affecting only visual side, instead of applying to backend functions. so, for example: {{{ add_filter('comment_form_default_fields', 'website_remove'); function website_remove($fields) { if( isset($fields['url']) ) unset($fields['url']); return $fields; } }}} it only removes 'url' input field from output of comment form. So, what is the point of that, if it can be simply achieved by css `display:none`. ? the intention is clear, that it should REMOVE ""url"" parameter from comment system at all. However, at this moment, even if people use 'comment_form_default_fields' filter to remove `url`, it is almost meaningless - anyone in front-end form can just insert `url` field (i mainly say bots, but also typical user can just insert ""url"" parameter in browser ""inspect element"") and submit form and in backend, in `wp-includes/comment.php :: wp_handle_comment_submission` still accepts the `url` field. In parallel of the fact that WP advocates ""never trust user input"", the filters should be applied firstly and mostly to backend functions in my mind. I firmly reckon that the filters (in any other WP form too) should be applied in both front-end and back-end functions for same parameter. So in backend, the same filter should be applied to comment fields ( in `wp-includes/comment.php :: wp_handle_comment_submission`): {{{ $comment_data = apply_filters('comment_form_default_fields', $comment_data, true); }}} the third parameter is indication whether the filter is in BACK-END (true) or FRONT-END (false). So, in front-end output of comments (`wp-includes\comment-template.php`, function `comment_form`) the filter can now be: {{{#!php <?php $fields = apply_filters( 'comment_form_default_fields', $fields, false ); }}} instead of {{{#!php <?php $fields = apply_filters( 'comment_form_default_fields', $fields); }}} Hope you understand my concern. Every filter for fields should affect two places - output and input." ttodua 53674 Approved comment isn't displaying when its parent comment is spam Comments normal normal Awaiting Review defect (bug) new 2021-07-15T23:50:09Z 2021-07-15T23:50:09Z "The steps to reproduce: 1. Publish a blog post 2. Comment on that blog post 3. Reply to the comment you posted in step 2 4. Reply to the reply you posted in step 3 Make sure all comments are approved. You should get this displayed: {{{ Post - Comment 1 -- Comment 2 --- Comment 3 }}} If you now visit wp-admin and change the status of the second comment to ""spam"", you will get this displayed: {{{ Post - Comment 1 }}} The first comment is displayed. The second comment is spam and shouldn't be displayed. However, the third comment is still approved. Why isn't the third comment displayed?" henry.wright 46931 Argument type mismatch Comments normal normal Awaiting Review defect (bug) new has-patch 2019-04-15T11:26:11Z 2020-10-16T00:36:26Z "In `wp-includes/comment-template.php`, we have argument types mismatched in DOC block of `comment_form_title` function. Please check if the proposed patch works." subrataemfluence 6 54149 Audit `get_comment()` response checks. hellofromTonya Comments 5.9 normal normal Future Release defect (bug) assigned has-patch 2021-09-21T02:14:44Z 2022-09-27T16:55:50Z "There are currently 164 calls to `get_comment()` across 36 files in the codebase (see attached file), with more pending with at least one upcoming PR. Some of these calls check the response of `get_comment()` in one of the following ways: {{{#!php <?php $comment = get_comment( $comment_id ); if ( $comment ) {... if ( ! $comment ) {... $comment ?... ! $comment ? ... if ( empty( $comment->comment_ID ) {... if ( ! empty( $comment->comment_ID ) {... }}} Some do not check the response at all. A [https://wordpress.slack.com/archives/C02RQBWTW/p1630738445035900 discussion on Slack] between myself and @jrf led to the suggestion that we audit the use of `get_comment()`. @hellofromtonya suggested two alternative checks on the response: {{{#!php <?php if ( ! $comment instanceof WP_Comment ) {... if ( null === $comment ) {... }}}" costdev 1 48724 Button text type when editing a comment Comments normal normal Awaiting Review defect (bug) new reporter-feedback 2019-11-19T12:21:37Z 2019-12-05T05:29:09Z "When editing a comment in wp-admin the button to update says ""Update How"" instead of Update Now. As per attached screenshot. (on latest WordPress 5.3)" tchburn 43759 CS: Fix violations for wp-includes/class-wp-comment-query.php Comments normal normal Awaiting Review defect (bug) new has-patch 2018-04-13T11:46:50Z 2020-10-16T00:46:01Z Working on a patch for this during WordCamp London, currently. jipmoors 52930 Can't close Insert/Edit Link Pop Up when Editting a Comment Comments 5.7 normal normal Awaiting Review defect (bug) new 2021-03-28T07:25:12Z 2021-03-28T07:44:01Z "Hi! Today I tried to insert a link using the link button while editing a comment of mine on my own website, using the back end. I can add as many links as I want, but I can't close the pop up with mouse or keyboard, by clicking on the X or Cancel. " thesimarchitect 3 57979 Can't upload images to WordPress Comments Comments 6.0.3 normal normal Future Release defect (bug) new dev-feedback 2023-03-24T13:39:57Z 2023-10-16T15:35:22Z As the admin, I am unable to upload images from my image library to a WordPress comment posted by a user. Please Note: I can upload images to my own comments, but not a user-generated comment. On the admin page, I edit a user comment, click IMG button, add the image URL, and the correct code is added to the comment. When I click UPDATE, the image code disappears. Please note that all existing images in Comments display properly. This is a new problem. Theme is Genesis Magazine Pro. I tried: deactivating all plugins, multiple browsers, multiple operating systems (PC and Mac), and multiple computers. Also contacted my web host, WP-Engine, who has had other reports of this problem and believes it is a WordPress issue. Site is buildingadvisor.com. Thank you! sbb 60281 Cannot unset comment_notes_before Comments 3.0 normal normal Future Release defect (bug) new needs-unit-tests 2024-01-18T12:11:15Z 2024-01-18T17:02:39Z "I want to reorder comment fields by unsetting and setting them back in my chosen order. Here's my code: {{{ function my_reorder_comments_fields( $fields ) { $comment_notes_before_field = $fields['comment_notes_before']; $comment_field = $fields['comment']; $author_field = $fields['author']; $email_field = $fields['email']; $url_field = $fields['url']; $cookies_field = $fields['cookies']; unset( $fields['comment_notes_before'] ); unset( $fields['comment'] ); unset( $fields['author'] ); unset( $fields['email'] ); unset( $fields['url'] ); unset( $fields['cookies'] ); $fields['author'] = $author_field; $fields['email'] = $email_field; $fields['comment_notes_before'] = $comment_notes_before_field; $fields['cookies'] = $cookies_field; $fields['comment'] = $comment_field; return $fields; } add_filter( 'comment_form_fields', 'my_reorder_comments_fields' ); }}} Result - https://imgur.com/a/ebY1HBW You can see that `$fields['comment_notes_before']` remains on top. To prove the point, I changed my code to just unset all fields: {{{ function my_unset_comments_fields( $fields ) { unset( $fields['comment_notes_before'] ); unset( $fields['comment'] ); unset( $fields['author'] ); unset( $fields['email'] ); unset( $fields['url'] ); unset( $fields['cookies'] ); return $fields; } add_filter( 'comment_form_fields', 'my_unset_comments_fields' ); }}} Result: https://imgur.com/a/B5wNngj So `$fields['comment_notes_before']` isn't getting unset while all other fields do." bugnumber9 2 56539 Check if index in $args isset / ! empty before using it in Walker_Comment methods or create default $args in case if it is empty Comments normal normal Awaiting Review defect (bug) new has-patch 2022-09-09T08:23:59Z 2023-06-08T08:41:52Z "Taking into account the comments in #53449, I suggest local fix for the comments walker (wp-includes/class-walker-comment.php). Class Walker_Comment uses some $args indexes without checking if they exist. And in my case, they don't exist, $args are empty array and I am getting notices. I will consider adding $args into the call, but they are commented as optional and don't suppose to be used in such way. Examples: public function start_el uses: {{{ $args['short_ping'] $args['format'] }}} And {{{ $args['style'] }}} is used without checking that it exists in several methods - end_el, end_lvl, ping, comment, html5_comment, start_lvl. " oglekler 4 41581 Cleared Comments stuck in moderation Comments 4.8.1 normal normal Awaiting Review defect (bug) new 2017-08-07T18:32:40Z 2018-08-31T23:57:30Z "I am the third person to report this issue, since it was first reported in June on the [https://en.forums.wordpress.com/topic/comments-stuck-in-moderation-queue-even-though-akismet-cleared-this-comment?replies=44 Dot Com Forum]. A Staff Member responded to the ticket, at the time, and stated that they would be filing a Bug Report, but we have not heard back. A third user reported the issue on the [https://wordpress.org/support/topic/comments-held-in-moderation-even-after-previously-approved-comment/#post-9388458 Dot Org Forum] 2 months and 2 weeks ago. Not all cleared users are getting their comments bumped into moderation. This is the case for all three of us. The only plugin the other dot org user and I have in common is the Akismet plugin and I disabled that to confirm that it didn't fix the problem. Please advise." fb2ts 3 41037 Comment author can't edit their comment(s) if they aren't the post author Comments normal normal Awaiting Review defect (bug) new 2017-06-14T00:26:14Z 2019-11-22T11:42:32Z "In {{{map_meta_cap()}}}, the {{{edit_comment}}} meta capability is eventually mapped to {{{edit_others_posts}}} which results in comment authors not being able to edit their own comment(s) if their comment(s) are on a different user's post. Note 1: The issue is specific to the author role. The editor role doesn't see the issue because this role has the {{{edit_others_posts}}} cap. Note 2: The problem doesn't exist if the comment author is also the post author. This is because, in such cases, {{{edit_comment}}} is mapped to either {{{edit_published_posts}}} or {{{edit_posts}}}" henry.wright 2 47393 Comment form submission with invalid fields incorrectly returns 200 OK response Comments 4.1 normal normal Awaiting Review defect (bug) new has-patch 2019-05-26T15:28:48Z 2020-10-25T04:31:58Z "This follows up on #11286. I just noticed that a bunch of error responses are returning 200 status code: * `comment_author_column_length` * `comment_author_email_column_length` * `comment_author_url_column_length` * `comment_content_column_length` * `require_name_email` * `require_valid_email` * `require_valid_comment` The origin of this seems to be this [https://core.trac.wordpress.org/ticket/11286#comment:44 comment]: > * Validation errors: 200. I agree completely w/bpetty. This isn't a 4xx error: the request was understood and the client received a response. I don't think this is right. Sure the request was understood, but it was understood to be incorrect. Should they not be 400 (Bad Request)? The argument against 400 was this [https://core.trac.wordpress.org/ticket/11286#comment:21 comment]: > The HTTP Specification says that 400 is for when ""the request could not be understood by the server due to malformed syntax"". So whilst this might be an appropriate response for invalid inputs (e.g. bad email address), I don't think it should be used in wp-includes/comment.php for duplicate comments and comment flooding. There 403 is more appropriate. Nothing here specifically arguing against using 400 for invalid fields. Also, more recently the REST API sends 400 status code responses in `\WP_REST_Comments_Controller::create_item()` for these errors: * `rest_comment_exists` * `rest_invalid_comment_type` * `rest_comment_content_invalid` * `rest_comment_author_data_required` * `comment_author_column_length` * `comment_author_email_column_length` * `comment_author_url_column_length` * `comment_content_column_length` * `comment_flood` The exceptions are `comment_duplicate` which returns [https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/409 409] (Conflict), and the generic DB error `rest_comment_failed_create` which returns with a 500 error code, as expected. For the length errors, a [https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/413 413] (Payload Too Large) code may be more specific. Also, for comment flooding, what about the status [https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429 429] (Too Many Requests)? The REST API should perhaps be updated to use this instead of 400. All this to say, to align with the REST API the comment form submission errors should use 400+ error codes instead of 200." westonruter 2 55409 Comment link navigation positioning messed with comment, when i try option “break comment to 50 top level” Comments 5.9.2 normal normal Awaiting Review defect (bug) new 2022-03-17T03:51:08Z 2022-03-17T03:57:26Z "Navigation on comment positioning is messed up. Check my screenshot here. https://prnt.sc/ErlX_M6nLwxL and here https://prnt.sc/OwxWUUTdMW_T and here https://prnt.sc/XZcJsPknS5zo those screenshot is from my live site. everything is updated to latest version. i also try to test it on local environment, the issue persist. " mryudha 23 36208 Comment queries should ignore comments associated with non-active custom post types Comments 4.4 normal normal Future Release defect (bug) new has-patch 2016-03-11T13:50:28Z 2023-10-17T13:16:37Z "As of 4.4 we introduced the `_doing_it_wrong()` (r34091) when checking meta capabilities on custom post types that aren't registered. This also spread and affected comments, primarily on the dashboard where we show comments and try to add links for these and check the users capability against them, they will produce this wonderful output: > PHP Notice: map_meta_cap was called <strong>incorrectly</strong>. The post type shop_order is not registered, so it may not be reliable to check the capability ""edit_post"" against a post of that type. Please see <a href=""https://codex.wordpress.org/Debugging_in_WordPress"">Debugging in WordPress</a> for more information. (This message was added in version 4.4.0.) in /wordpress/wp-includes/functions.php on line 3827 Ideally, `WP_Comment_Query` should bypass comments associated to non-existing post types as well. In the attached patch I've introduced both `post_type__in` and `post_type__not_in` which accepts an array of post type string names. I've also added the default value for `post_type__in` to `get_post_types()`, as by default you'd never want to query for non-existing data any way, but this allows the query to be overwritten via filters, or directly with a new construct for those who have the need. I am wondering if the use of `post_type = 'any'` would need to short-circuit the new arguments to avoid breaking BC (current tests all pass with the patch applied though) ? Related #16956 What this looks like (from #34918): [[Image(http://crosseyedeveloper.com/wp-content/uploads/2015/12/commentcap.jpg)]] It also shows up on the Dashboard in the comments widget: [[Image(http://crosseyedeveloper.com/wp-content/uploads/2015/12/commentcap21.jpg)]]" Clorith 48519 Comment reply form in admin incompatible with most custom fields plugins Comments 5.2.4 normal normal Awaiting Review defect (bug) new 2019-11-06T22:17:16Z 2019-11-06T22:17:16Z "If you are using any plugin that adds custom (meta) fields to comments the admin interface for replying isn't compatible. The front-end comment template includes various hooks for plugins to use. The admin however does not (at all). See: Front-end: `wp-invludes/comment-template` function: `wp_comment_reply()` from around line 2393 Admin: `wp-admin/includes/template.php` function `comment_form()` from around line 437 In my case it's a compatibility bug with required fields created by Pods. Within WP Admin it won't show the custom fields and this doesn't save any comments because required fields are not filled. Some missing hooks: Filters: - `comment_form_default_fields` - `comment_form_fields` - `comment_form_logged_in` (Not needed as it's in WP admin) - `comment_form_field_comment` - `comment_form_field_{$name}` - `comment_form_submit_button` (Not sure if this is desirable in WP admin) - `comment_form_submit_field` (Not sure if this is desirable in WP admin) Actions: - `comment_form_before` - `comment_form_must_log_in_after` (Not needed as it's in WP admin) - `comment_form_top` - `comment_form_logged_in_after` - `comment_form_before_fields` - `comment_form_after_fields` - `comment_form` " keraweb 8 46713 Comment reply link uses inconvenient eventlistener Comments 5.1 normal normal Awaiting Review defect (bug) new has-patch 2019-03-29T09:04:48Z 2023-06-17T02:01:37Z "When comment-reply.js was rewritten recently the behavior of the reply-button changed. It now seems to use 'touchstart' as eventlistener which makes it really ""touchy"" to use on mobile. It's almost impossible to use scroll now since you always trigger the touchstart event which opens the reply-box." szandman 39958 Comment reply/cancel links work badly when comment form is above the comment list Comments normal normal Awaiting Review defect (bug) new dev-feedback 2017-02-23T22:36:25Z 2018-01-15T14:41:01Z "If the comment form is below the list of comments, as in default WP themes, reply and cancel links work as follows: When you click reply, the form moves directly under the comment (page doesn't scroll). When you click cancel, the form jumps back to original position (page doesn't scroll). Consider any theme where the comment form is output before the list of comments. (This is a standard request, to make it easier for people to comment without having to scroll through lots of existing comments first). When you click reply, the form moves from its original position to under the comment, causing the whole page to scroll up a significant amount. The textarea gets focus, meaning if it has scrolled off the top of the screen as is quite likely, the page jumps to ensure it is visible, but you don't see important things like the reply heading, cancel link, or comment label. When you click cancel, the form reverts back to its original position, jumping the whole page content down significantly, often leaving you in a completely random part of the page. This is very disorientating from a user perspective. I'm not sure what a workaround is - perhaps some way of saving your vertical position prior to a click and restoring it after a click to make it look like there is no jump." smerriman 40293 Comment template - warning Comments 4.8 normal normal Awaiting Review defect (bug) new has-patch 2017-03-29T07:15:59Z 2017-10-11T11:29:50Z "Hi, in the `comments_template` function, you are entering a divide-by-zero condition at line '''1379''' of the `wp-includes/comment-template.php` file. The line described above is like this. {{{#!php <?php $comment_args['offset'] = ( ceil( $top_level_count / $per_page ) - 1 ) * $per_page; ?> }}} I believe this will solve. {{{#!php <?php $offset = 0; if ( $top_level_count && $per_page ) { $offset = ( ceil( $top_level_count / $per_page ) - 1 ) * $per_page; } $comment_args['offset'] = $offset; ?> }}} I'm using a default install with theme Twenty Seventeen. Thank you!" victorfreitas 3 40143 Comment template functions don't check for comment existence Comments normal normal Future Release defect (bug) new needs-unit-tests 2017-03-13T16:59:35Z 2024-02-08T16:10:20Z "Discovered during debugging an issue with Circle Lite theme, which uses [https://themes.trac.wordpress.org/browser/circle-lite/1.0.9/comments.php?marks=55#L42 comment_text( true )] in `kopa_comment_callback()` function. That, while being an invalid usage (the function treats `true` as a comment ID), causes an inconsistent behaviour, depending on the existence of the comment: * If the comment with ID 1 exists, the function returns its text, as expected. That's obviously not what the author of the theme intended, but still the correct behaviour of the function. * If the comment with ID 1 does not exist, the function returns the text of the current comment in the loop instead of an empty string. What happens is `get_comment( $comment_ID )` returns null (as expected), but then null is passed to `get_comment_text()`, which treats it as the current comment. After investigating more, it looks like most of comment template functions are either affected in a similar way or cause an undefined property notice when passed a non-existing comment ID. Let's bring some consistency here." SergeyBiryukov 1 46963 Comments meta box offset bug for custom comment types Comments normal normal Awaiting Review defect (bug) new has-patch 2019-04-17T13:13:39Z 2019-04-30T09:57:56Z "There is a conflict in the 'comments' meta box when used in combination with custom comment types. The `Show more comments` link loads duplicates, without an offset due to this line of code: https://github.com/WordPress/WordPress/blob/72979b167d913bf49745fa737654bdf6d13168de/wp-admin/js/post.js#L99 {{{ this.st = jQuery('#the-comment-list tr.comment:visible').length; }}} For custom comment types, the `comment` class may not exist. See how comment classes are generated here: https://github.com/WordPress/WordPress/blob/03240dd3f4442546562824bc6a10ed7c197bd6b2/wp-includes/comment-template.php#L466 {{{#!php <?php $classes[] = ( empty( $comment->comment_type ) ) ? 'comment' : $comment->comment_type; }}} You can see an example of this with WooCommerce which uses a comment type named 'review' (https://github.com/woocommerce/woocommerce/issues/23313). Because the comments out output without the `comment` class and instead they have a `review` class, the JS code fails to set the correct offset. Possible solutions: - Output `comment` class for custom comment types in addition to their custom class. - Revise jquery selector to be more generic e.g. count the `tr` elements instead." mikejolley 3 42459 "Comments metabox doesn't load all the comments when clicking ""Show more comments"" link" Comments 4.8.3 normal normal Awaiting Review defect (bug) new 2017-11-07T18:04:17Z 2018-07-31T18:11:29Z "Recently, I found an issue related to the Comments meta-box on a post edit screen. To reproduce the bug, go to the article with a certain number of comments. Suppose there are 25 comments. Then go to the post edit screen, enable the comments and scroll down to view all the comments(you will see 10). Then click the link ""Show more comments"" at the bottom of the section. You will see the second part of the comments (10 again), and the link ""Show more comments"" will disappear. You may notice that you can't load the remaining comments(5). Why this happened? My short investigation below. I found that on my opinion there is a mismatch in amount of loaded comments between the ''commentBox'' object(`/wp-admin/js/post.js`) and comments meta-box init script(`/wp-admin/includes/meta-boxes.php`). First have a look at `/wp-admin/includes/meta-boxes.php:741` {{{#!php <script type=""text/javascript"">jQuery(document).ready(function(){commentsBox.get(<?php echo $total; ?>, 10);});</script> }}} As you can see there are 10 comments set to be loaded. Then go to `/wp-admin/js/post.js:42-45` {{{#!js if ( ! num ) num = 20; this.st += num; }}} As you can see there is default `num` value set to 20. Important: then commentBox.st was increased by a `num` value. But now have a look at ""Show more comments"" link onclick attribute. {{{#!php <a href=""#commentstatusdiv"" onclick=""commentsBox.load(26);return false;"">Show more comments</a> }}} As you can see `commentsBox.load(26)` call will update `commentBox.st` but then `commentBox.get(26, 20)` will be called (because `num = 20`). But to fit the init script(`meta-boxes.php`) it should be `commentBox.get(26, 10)`. My solution here is to set default `num` value to 10. So I guess `/wp-admin/js/post.js:42` should looks like this: {{{#!js if ( ! num ) num = 10; }}} Let me know if I missed something and we can't accept new default `num` value. I have tested it on my local end. It works well after I changed `num` default value to 10." rku4er 1 60161 Comments on pages where comments are not allowed Comments 6.4.2 normal normal Awaiting Review defect (bug) new has-patch 2023-12-28T10:15:28Z 2024-02-15T08:26:09Z Recently I’ve had comment moderation requests on a site where comments are not allowed (both in the Settings > Comments and in the page Settings). I don’t know how these comments are submitted. The targetted page is the Privacy Policy page. is0ph 7 35501 "Dashboard page: incorrect work of ""Activity"" group box bottom counters" adamsilverstein Comments 4.4.1 normal normal Future Release defect (bug) assigned has-patch 2016-01-17T21:22:17Z 2019-01-10T22:26:26Z "STEPS TO REPRODUCE Create new post, add comment through front end, go to dashboard page, click showed up menu items Approve/Unapprove/Spam/Trash in different combinations: - click ""Approve"" and quick click ""Trash"", - click ""Unapprove"" and quick click ""Trash"" - quick click ""Approve"" twice EXPECTED RESULT: bottom counters ""All"", ""Pending"", ""Approved"", ""Spam"", ""Trash"" counts correct. ACTUAL RESULT: see attachment." antonrinas 6 51082 Default value for comment_type changed can lead to comments not shown and malfunctioning plugins Comments 5.5 normal normal Awaiting Review defect (bug) new 2020-08-20T14:58:04Z 2021-12-17T15:45:14Z "Had a situation where a theme would not show comments any more with WP 5.5, it would show correct number of comments but not the comments content. Using 5.4.2 backup made the comments appear again. After some research found this remark at `wp_insert_comment()` {{{ @since 5.5.0 Default value for `$comment_type` argument changed to `comment`. }}} The theme in question uses a callback function for `wp_list_comments()` with this code: {{{ switch ( $comment->comment_type ) : case '' : // print normal comment here... break; case 'pingback' : case 'trackback' : break; endswitch; }}} That causes the comments not to be shown because `$comment->comment_type` is `'comment'` with WP 5.5 and not an empty string any more. Many themes with callbacks including Twenty Twelve, Twenty Eleven compare to `'pingback'` and `'trackback'` first and then as `default` case print normal comment, without checking real value of `$comment->comment_type`. That's why the new behaviour of WP 5.5 accidentally works with many themes. For backward compatibility `$comment->comment_type` should be set to empty string instead `'comment'` when using a callback or a deprecated notice or similar should be triggered." Ov3rfly 59191 Disqus Commenting Plugin Blocked by Twenty Twentythree Theme Comments normal normal Awaiting Review defect (bug) new close 2023-08-24T18:19:29Z 2023-08-24T20:03:20Z "Hi there, This is Ryan at Disqus. We've noticed that WordPress theme Twenty Twenty-three blocks the Disqus Commenting Plugin from loading, which is confusing for WordPress site owners trying to use and test this plugin, or install Disqus generally to their site while using this theme. Please note that the Disqus plugin is designed to load over and replace the native WP comments form. I've attached two images of the same page with different themes, and you can see Disqus appearing correctly in the theme with green background, but only the WP native comments form appears in the Twenty Twenty-three theme We're happy to collaborate or provide additional details as needed, I can be reached directly at `email address removed`. Edit by @audrasjb: email address removed." disqussupport 57432 Edit comments capability issue Comments normal normal Awaiting Review defect (bug) new 2023-01-09T08:46:16Z 2023-03-31T14:14:20Z If the user does not have capability to edit comments, the checkbox for Discussion - Allow comments disappears. This will store the null value into database and cause comments form as not visible. AitThemes 1 58058 Fix PHP open and close tag placement in /wp-admin/comment.php LineNo 175 Comments normal normal Awaiting Review defect (bug) new changes-requested 2023-04-02T10:55:40Z 2023-04-02T16:29:51Z This PR fixes a PHP open and close tag placement issue on line 175 of the WordPress file /wp-admin/comment.php. The original code embeds a multi-line PHP snippet within an HTML block, but the PHP open tag is not on a line by itself. The updated code moves the PHP open tag to a new line so that it is on a line by itself, as required by best practices. This improves the readability and maintainability of the WordPress core codebase. moinrrahmed 52875 If a post is in trash related comments cannot be removed or trashed Comments normal normal Awaiting Review defect (bug) new reporter-feedback 2021-03-21T08:27:43Z 2023-03-29T18:53:32Z Comments to trashed or removed posts need to be visible with a clear note in the 'In response to' column that they are related to the trashed/removed post. oglekler 43946 Inconsistent encoding of comment_content Comments 4.9.5 normal normal Awaiting Review defect (bug) new reporter-feedback 2018-05-03T10:50:13Z 2018-05-04T12:39:24Z "The contents of the comments.comment_content field in the WordPress database are stored inconsistently depending on whether the user creating the comment was logged in or not. {{{ > select comment_ID, comment_content, comment_type from wp_comments where comment_ID > 7; +------------+-----------------------------------------------------+--------------+ | comment_ID | comment_content | comment_type | +------------+-----------------------------------------------------+--------------+ | 8 | This is a good & strong comment (comment, anon) | | | 9 | This is a good & strong comment (comment, auth) | | +------------+-----------------------------------------------------+--------------+ }}} In the example above, comment 8 was left by an anonymous user, and comment 9 was left by an authenticated user. Notice how the comment_content field has been HTML-escaped for ID 8, but not for ID 9. === Steps to reproduce: * Install a fresh copy of WordPress * As the site administrator, navigate to the default ""hello-world"" post * Leave a comment including characters that should be escaped when output to HTML, e.g. & * Log out * Navigate to the default ""hello-world"" post * Leave a comment including characters that should be escaped when output to HTML, e.g. & Compare the contents of the two comments in the wp_comments table. " leewillis77 2 55309 Incorrect post comment count after deleting comment with replies Comments 5.9.1 normal normal Awaiting Review defect (bug) new dev-feedback 2022-03-03T16:29:07Z 2022-03-03T17:50:55Z "If you move a comment to the trash, and that comment has sub-comments, none of those comments are visible (which is desired) but post->comment_count is reduced by 1 rather than by the total number of comments that have now been hidden. For example: post has 1 comment with 3 replies. Comment count is 4. Delete the first comment. Now no comments are visible but comment count is 3. The first comment has comment_approved set to 'trash' but the other 3 comments are still '1'. Perhaps the right fix is that when trashing a comment, all of its sub-comments are also trashed explicitly rather than implicitly." jwz 3 58014 Invalid Post ID when updating a comment in editing Comments 6.2 normal normal Awaiting Review defect (bug) new has-patch 2023-03-29T19:10:59Z 2023-04-04T16:23:33Z "== Bug Report === Description Invalid Post ID when i update a comment Content of the post: the comment made in front-end on a lorem post created by hand no feature image. Content of the comment: A test is when you are made to make little drawings to see if you are not crazy. I just try to add the word: ""Really"" at the end of the comment === Environment - WordPress: 6.2 - PHP: 7.4.1 - Server: Apache/2.4.43 (Unix) - Database: mysqli (Server: 8.0.16 / Client: mysqlnd 7.4.1) - Browser: Chrome 111.0.0.0 (Linux) - Theme: Twenty Twenty-Three 1.1 - Language : FR - MU-Plugins: None activated - Plugins: * WordPress Beta Tester 3.3.7 === Steps to Reproduce 1. Go to `Posts > Add New` and create a new post. 2. On the frontend, add a comment. 3. Click `Edit`. 4. Add a word. 5. Click `Update`. x. 🐞 Bug occurs. === Expected Results 1. ✅ The post must be updated and the word added. === Actual Results 1. ❌ I have the error message : **Invalid Post ID** 2. ❌ Checking the content after the error. The content has not changed." wplmillet 2 13792 Invalid reply link from comment admin when comment nested level > max Comments 2.9.2 normal normal Future Release defect (bug) reopened needs-unit-tests 2010-06-09T07:05:56Z 2017-07-31T16:17:39Z "I have a blog with nested comments enabled, max depth of 4. When the last level comment is posted, it no longer contains a Reply link. However, in the Comment admin, the Reply link is still present. If used, this new reply will show up at the very bottom of the comment list once posted (even if other newer regular comments are entered, this new reply will still show up at the very bottom). The bug is, basically, that Comment admin doesn't respect the max nested value." archon810 51589 Missing whitespace between comment reply title and cancel comment reply link Comments normal normal Awaiting Review defect (bug) new reporter-feedback 2020-10-21T17:55:10Z 2020-11-08T15:13:16Z "Hi, There's a missing whitespace between the comment reply title and the cancel comment reply link. This results in: ""Reply to A WordPress CommenterCancel reply"". The {{{cancel-comment-reply-link}}} is wrapped in {{{<small>}}} tags. In file comment-template there's a whitespace before the opening tag: {{{'cancel_reply_before' => ' <small>',}}} But somehow it's being ignored in comment form. Stripped perhaps? Was not able to find what causes this. More info here: https://wordpress.org/support/topic/cancel-comment-reply-link-in-comments-form/." Guido07111975 58544 Need to verify safe website URL in comment form Comments normal normal Awaiting Review defect (bug) reopened has-patch 2023-06-15T12:18:00Z 2023-06-21T20:50:17Z "Hello, We need to verify the website URL in the comment form and It should be safe before inserting into the database." hiren1094 41788 PHP Fatal error: Call to a member function has_cap() on a non-object in wp-includes/comment.php Comments 4.8.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-09-03T22:16:34Z 2020-12-14T19:20:14Z "{{{#!php if ( ! empty( $commentdata['user_id'] ) ) { $user = get_userdata( $commentdata['user_id'] ); $post_author = $wpdb->get_var( $wpdb->prepare( ""SELECT post_author FROM $wpdb->posts WHERE ID = %d LIMIT 1"", $commentdata['comment_post_ID'] ) ); } if ( isset( $user ) && ( $commentdata['user_id'] == $post_author || $user->has_cap( 'moderate_comments' ) ) ) { }}} If get_userdata() returns false, this code can lead to a fatal error." kirbyde 36058 "PHP notices and invalid ""View Post"" link on edit-comments.php when post type does not exist" Comments normal normal Future Release defect (bug) reviewing 2016-03-03T05:48:30Z 2017-05-06T17:13:37Z "Steps to reproduce: 1. Register a custom post type 2. Create a post 3. Create a comment on that post 4. Stop registering the post type 5. Visit wp-admin/edit-comments.php The markup built in `WP_Comments_List_Table::column_response()` for the ""In Response To"" column requires a valid post permalink, as well as the post type label corresponding to ""View Post"". Since permalinks to non-existent CPT objects cannot be valid, and since non-existent CPTs don't have any post type labels, it seems to me that we can probably bail out of this method early if the post type doesn't exist. Similarly, `column_date()` probably shouldn't attempt to link to the post if the post type doesn't exist." boonebgorges 55891 "Please add an action for additions within the ""comment-metadata"" div" Comments 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-06-01T09:06:43Z 2023-10-04T12:49:19Z "I would like to add additional data to the "".comment-metadata"" div, and there is no way to do that. If I want to display the extra info for admins only, I can use the 'comment_text' filter, but that's a nasty hack, and obviously only shows up for users who are able to edit comments, so it doesn't help the general case. I suggest adding an action just before or just after the call to edit_comment_link in class-walker-comment.php around line 460 (and also 360?)" jwz 60475 Possible incorrect type for $comment_id in get_comment_author filter Comments 6.0 normal normal Awaiting Review defect (bug) new has-patch 2024-02-08T15:44:40Z 2024-02-21T11:41:00Z "After r52818 the `$comment_id` param of the `get_comment_author` filter, which is [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/comment-template.php?rev=56687#L47 documented as numeric string], may be an `int`, in case a non-existing comment ID is passed to the `get_comment_author` function. The topic has been briefly discussed in https://core.trac.wordpress.org/ticket/54379#comment:8 mentioning that the numeric string type is here for compatibility. I'm attaching a patch containing a fix for the issue, as well as a PHPUnit test demonstrating the behaviour." david.binda 58723 Remove deprecated parameter tests in comments_link() Comments normal normal Awaiting Review defect (bug) new reporter-feedback 2023-07-06T06:50:47Z 2023-08-27T10:29:05Z "In `comments_link()`, two unused parameters are checked if they're not empty. If they are, only a deprecation warning is shown for a WordPress version of the distant past. I suggest removing the parameters altogether. If we _must_ keep these deprecation warnings, at least use `if ( $deprecated )` instead of `if ( ! empty( $deprecated ) )` for the former is about 2.7x faster while achieving the same." Cybr 1 59965 Reply link: Elements with visible text labels do not have matching accessible names Comments 4.1 normal normal 6.6 defect (bug) new 2023-11-26T04:17:54Z 2024-03-05T15:59:12Z "Hi, When I scanned the page with PageSpeed ​​Insights, it gave the following error for reply link: Elements with visible text labels do not have matching accessible names. aria-label problem. Because it is the same as the text. I solved it like this: I edited line 1822 in the wp-includes/comment-template.php file. I deleted it to be empty inside the quotes. The problem is fixed. I hope it will be fixed in new updates. Topic: https://wordpress.org/support/topic/reply-link-elements-with-visible-text-labels-do-not-have-matching-accessible-na/" halilesen 46943 Settings ->Discussion bad view dropdown in mobile version Comments normal normal Awaiting Review defect (bug) new 2019-04-15T23:00:28Z 2019-10-21T16:44:39Z "Settings ->Discussion all dropdown are bigger on the responsive view. so need to make it size small same as desktop view and content align proper same as desktop view. " ketanumretiya030 52682 Total comment count is wrong with two meta queries on the same key Comments 5.6.2 normal normal Awaiting Review defect (bug) new 2021-03-01T11:09:49Z 2021-03-01T11:09:49Z "The code below filters the comments shown in admin with a meta query. It works fine in that the comments in the list are filtered correctly, but it sends the results count way off (i.e. the one shown above the comment list table, to the right). For example, when there are 3 matching comments, above the table it says “45 items”. [[Image(https://i.imgur.com/yyXUSJE.png)]] I have traced this to the way the SQL is built in WP, with multiple outer joins to the meta table. When the query for comments is run, a GROUP BY is added so only unique IDs are returned. But when the count query is built, there is no GROUP BY so the count includes the meta rows and gets the wrong result. {{{#!php <?php function poc_comments_list_table_query_args ($args) { $meta_query = array ( 'relation' => 'OR', array ( 'key' => 'my_meta_key', 'compare' => 'NOT EXISTS', ), array ( 'key' => 'my_meta_key', 'value' => '', 'compare' => '=', ) ); $args['meta_query'] = $meta_query; return $args; } add_filter ('comments_list_table_query_args', 'poc_comments_list_table_query_args' ); ?> }}} The intent is to return comments where either the meta value does not exist at all, or the meta value exists with a value of empty string. The result is the same if filtering pre_get_comments instead of comments_list_table_query_args (with the code adjusted of course as pre_get_comments passes a full WP_Comment_Query object instead of just the arguments). I found the following old tickets which seem somewhat related: https://core.trac.wordpress.org/ticket/29685 https://core.trac.wordpress.org/ticket/23369 Thanks." salubritas 3 17771 URL-encoded comment_author_url gets broken by MySQL varchar 200 length limit SergeyBiryukov Comments 3.2 normal normal Future Release defect (bug) reviewing dev-feedback 2011-06-12T03:46:44Z 2017-03-18T17:38:56Z "!WordPress sometimes pings back with long permalinks that exceed comment_author_url column length limit of 200, which results in generating unusable broken links to the post. It easily reaches to the limit, especially if the permalink contains url-encoded multibyte title as postname. (e.g. 23 characters of UTF-8 Japanese become a 207 characters long url-encoded string. Incomplete url-encoded string may trigger 400 Bad Request too.) '''Solution:''' In pingback(), use shortlink instead of regular permalink if the URL is longer than 200 characters. It seems to work ok with wp.me shortlinks." tenpura 1 53228 Unspamming a comment should respect `comment_previously_approved` setting Comments normal normal Awaiting Review defect (bug) new 2021-05-18T21:28:27Z 2021-05-18T21:32:57Z "On the ""Settings > Discussion"" page, the ""Comment author must have a previously approved comment"" setting (`comment_previously_approved`) allows a user's comments to be automatically set to `approved` status (a.k.a. `comment_approved = 1`). However, if a comment from a previously-approved author is incorrectly-marked as spam (either internally via `check_comment()` or from an anti-spam plugin like Akismet) and later, a moderator marks the comment as ""Not spam"", this comment is not automatically approved. Instead, the comment is placed in the moderation queue (`comment_approved = 0`). WordPress makes this determination during unspamming here: https://github.com/WordPress/WordPress/blob/f4631a98f50f6275d0284527cf9fd7009e439e55/wp-includes/comment.php#L1717-L1722 Specifically, if the comment has a previously-trashed status from the `_wp_trash_meta_status` meta value, WordPress will use it. Otherwise, an unspammed comment's status will be marked as `pending` or `0`. Our users believe this is a UX issue. Previously-approved authors should not have their comments placed in `pending` after the comments are unspammed. We're working around this issue at the moment, but thought we would ask if this is a bug or if this is by design." r-a-y 50202 Use <strong> tag instead of <b> tag in `Walker_Comment::html5_comment` Comments normal normal Future Release defect (bug) new 2020-05-18T14:32:56Z 2020-08-26T13:48:40Z It is well documented that when some text is bolded using the <b> tag, it will come to no benefit for users using screen readers. This patch aims to fix that in an instance of `html5_comment` method in `Walker_Comment`. itowhid06 4 35937 "Visual improvements for the comment ""pending status""" Comments normal normal Future Release defect (bug) new 2016-02-24T16:25:05Z 2019-01-13T16:55:31Z "Splitting this out from #35392. While working on #35392, noticed and agreed there's room for some visual (and further accessibility) improvements. Specifically, the comment ""pending status"" relies on a small ""flag"" icon, followed by a `[Pending]` text. From a design perspective, this could use some love. Whether it would be some additional, descriptive, text or a new icon etc. it would be possible to expand the new text or icon with some `screen-reader-text` in order to provide a reasonably understandable feedback for assistive technologies users. Worth noting this applies to the Dashboard ""Recent Comments"" widget and the list of comments in the Comments screen and Edit post screen as well, where the pending status information is conveyed using just color. cc @melchoyce [[Image(https://cldup.com/IWyv7rKuEE.png)]] " afercia 4 40352 WP REST API, Comments Not Triggering 'comment_post' Comments 4.7 normal normal Awaiting Review defect (bug) new dev-feedback 2017-04-04T06:50:37Z 2019-11-26T14:44:32Z "Hello, I’ve noticed that when comments are created using the WP API that notification emails are not sent out to the author of the post or moderators. (When testing, If I add the comment via the admin interface, it works as expected). On debugging, I noticed that the filter ‘comment_post’ is not being called when inserted via the API. For now, I used the following workaround: {{{#!php function mytheme_comment_inserted($comment_id, $comment_object) { wp_notify_postauthor( $comment_id ); } add_action('wp_insert_comment','mytheme_comment_inserted'); }}} I already posted on the support forum here: https://wordpress.org/support/topic/wp-api-comments-not-sending-notifications/#post-8987973 and it was suggested this could be intentional behaviour but that this also could, in fact, be reported as a bug? Thanks! Chris" stickypixel 41826 WP_Comment_Query can generate negative offset in LIMIT clause Comments 4.9 normal normal Awaiting Review defect (bug) new has-patch 2017-09-07T11:40:49Z 2017-09-08T19:03:35Z "The {{{paged}}} argument in {{{WP_Comment_Query}}} was introduced in #38268 There's a problem with the {{{paged}}} as 0 case. '''Example:''' When the {{{paged}}} is 0 and {{{number}}} is 2, {{{WP_Comment_Query}}} generates the LIMIT clause: {{{ LIMIT -2, 2 }}} instead of {{{ LIMIT 0, 2 }}} According to the MySQL documentation, the offset in the LIMIT clause shouldn't be negative: https://dev.mysql.com/doc/refman/5.7/en/select.html I think we should handle it in the same way as in {{{WP_Query}}}, where the 0 case is treated as the default, that is 1. " birgire 58450 WP_Comment_Query status argument documentation misses any Comments normal normal Awaiting Review defect (bug) new 2023-06-03T15:50:16Z 2023-06-03T15:50:16Z "In the code, there is a comment that reads 'any' overrides other statuses. 'all', if I read correctly, would not cover 'spam' or 'trash'. So, the documentation should be amended." dshanske 59440 WP_Comments_List_Table bulk actions do not account for user permissions. Comments 6.3.1 normal normal Awaiting Review defect (bug) new 2023-09-25T10:01:22Z 2023-09-25T10:01:22Z "Unlike other list tables, the comment list table's get_bulk_actions() does not check the current user's permissions which leads to a confusing UX if a user can for example, edit comments, but not delete them (due to custom permissions). {{{#!php <?php protected function get_bulk_actions() { global $comment_status; $actions = array(); if ( in_array( $comment_status, array( 'all', 'approved' ), true ) ) { $actions['unapprove'] = __( 'Unapprove' ); } if ( in_array( $comment_status, array( 'all', 'moderated' ), true ) ) { $actions['approve'] = __( 'Approve' ); } if ( in_array( $comment_status, array( 'all', 'moderated', 'approved', 'trash' ), true ) ) { $actions['spam'] = _x( 'Mark as spam', 'comment' ); } if ( 'trash' === $comment_status ) { $actions['untrash'] = __( 'Restore' ); } elseif ( 'spam' === $comment_status ) { $actions['unspam'] = _x( 'Not spam', 'comment' ); } if ( in_array( $comment_status, array( 'trash', 'spam' ), true ) || ! EMPTY_TRASH_DAYS ) { $actions['delete'] = __( 'Delete permanently' ); } else { $actions['trash'] = __( 'Move to Trash' ); } return $actions; } }}} The correct capability to check for here would be ""edit_comment"" and return an empty array on permissions mismatch. There does not seem to be granularity in map_meta_cap for comments - only edit_comment for all actions (I think). " snicco 4 46243 WordPress Comments Core Query Comments 5.0.3 normal normal Awaiting Review defect (bug) new dev-feedback 2019-02-13T03:48:45Z 2021-03-26T16:16:24Z "Hello, **Issue:** We have over 400K+ posts and I saw this slow query on any WordPress area on each page. We had 2M+ comments. **Question:** This Query is working on all pages on Dashboard or Settings, Plugin section and any sections why does it? It should works on only all Posts list? **Solution:** I have noticed that Header Bar has Comments Icon and that has displayed the Pending Comments count. I have tried to disable it via custom Filter for following. {{{ function admin_bar_remove_comments(){ global $wp_admin_bar; $wp_admin_bar->remove_menu('comments'); } add_action( 'wp_before_admin_bar_render', 'admin_bar_remove_comments' ); }}} **Slow Query:** {{{ SELECT comment_approved, COUNT( * ) AS total FROM wp_comments GROUP BY comment_approved }}} **Environment Information:** WP Version 5.0.3 (also tested 4.9.8) Theme: Twenty Seventeen (other themes) Plugins: Query Monitor Thanks." Uranbold 45498 Wrong order of arguments in call_user_func() for Walker_Comment::start_el() SergeyBiryukov Comments normal normal Future Release defect (bug) reviewing needs-unit-tests 2018-12-06T16:52:14Z 2019-01-16T05:46:01Z "Arguments order for rendering all types of comments is `$comment, $depth, $args` except for the custom callback: `call_user_func( $args['callback'], $comment, $args, $depth );` This causes every custom callback to throw an error when you use `$args` and `$depth` as you'd expect. For example, `comment_reply_link()` inside callback can not be used like it's suppose to be used, like so: {{{#!php <?php comment_reply_link( array_merge( $args, array( 'add_below' => 'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth'], 'before' => '<div class=""reply"">', 'after' => '</div>' ) ) ); }}} You need to replace `$depth` and `$args`, like so: {{{#!php <?php comment_reply_link( array_merge( $depth, array( 'add_below' => 'div-comment', 'depth' => $args, 'max_depth' => $depth['max_depth'], 'before' => '<div class=""reply"">', 'after' => '</div>' ) ) ); }}} " milana_cap 2 51492 Wrong order of comments when using numbered pagination Comments 5.5.1 normal normal Awaiting Review defect (bug) new dev-feedback 2020-10-10T11:16:25Z 2020-10-10T13:08:00Z Using paginate_comments_links() to show numbered pagination in comments instead of 'older comments' or 'newer comments' causes a problem. When comments are broken into pages, with the last page and newer comments shown by default, the numbered pagination shows the current page as the last in the pagination. For example, if there are 60 comments broken down to 20 comments per page, the initial post-loading shows page 3 as the current page (instead of page 1) and a person has to navigate backwards to read other comments (page 2 then page 1). askel45 11 29462 comment pagination in reverse order should display a full number of the latest comments Comments 3.9 normal normal Future Release defect (bug) reopened dev-feedback 2014-09-02T07:12:47Z 2021-03-16T16:01:41Z "set the following discussion setting: break comment into pages with 5 top level comments per page and the last page displayed by default Comments should be displayed with the newer comments at the top of each page have a post with 6 comments only the last comment made is displayed by default instead of the expected 5 last comments." mark-k 45585 comments ordering by date, orders them only for the current page. Comments 4.9.8 normal normal Awaiting Review defect (bug) new 2018-12-11T15:35:05Z 2018-12-12T08:15:33Z "'''Tested''': on 5.0 and 4.9.8 (found it on 4.9.8) '''Steps to reproduce''': 1. add comments (skip if existing) 2. change the comment dates 3. activate pagination in comments in wp-settings -> discussion and set comments display ""newest"". '''Mentions''' I did testing on both Twenty Seventeen and Twenty Nineteen, the result is the same, it will order comments by date for the current page, not all comments and then split in pages. '''Expected behaviour''' Order comments then split them in pages, now it does vice-versa, where it orders the comments by date after they are being split in pages." rwky 1 56499 count() used in the loop condition Comments lowest normal Awaiting Review defect (bug) new has-patch 2022-09-02T12:40:53Z 2022-09-21T15:22:51Z The use of count() inside a loop condition is not allowed; assign the return value to a variable and use the variable in the loop condition instead. krunal265 1 43015 function get_previous_comments_link not working in front page Comments 4.9.1 normal normal Awaiting Review defect (bug) new dev-feedback 2018-01-03T11:44:16Z 2019-06-24T16:29:01Z "Hey, function get_previous_comments_link generate wrong url in front page, but it's ok in typical page, it's because of the permalink, wordpress hasn't full permalink in front page." devlife 4 34475 get_comment_link incorrect page number in returned url. SergeyBiryukov Comments 4.3.1 normal normal Future Release defect (bug) reviewing needs-unit-tests 2015-10-28T16:36:42Z 2019-10-03T22:15:05Z Since 4.3 core update the get_comment_link function returns incorrect page numbers for paginated comments. Have tried using default twentyfifteen theme with no plugins enabled and issue still persists. Property118 40901 get_comments_number_text() third argument not used in certain situations Comments normal normal Future Release defect (bug) new needs-docs 2017-06-01T13:43:43Z 2019-06-21T13:02:54Z "`comments_number()` is a wrapper for echoing `get_comments_number_text()`. Reference: https://codex.wordpress.org/Function_Reference/comments_number The 3rd parameter's description: Text to display when there is more than one comment. % is replaced by the number of comments, so '% so far' is displayed as ""5 so far"" when there are five comments. This doesn't seem to work as expected. In particular, the parser doesn't look just for '%' but also for strings with spaces in front or behind this sign, after which it processes it in a illogical way. For example, this code {{{ <? _e('Read on', 'anytextdomain'); comments_number(' and add the first comment', ' and see the first comment', ' % so far'); ?> ... }}} results in: `Read on 2 komentarze...` (""komentarze is a Polish translation of ""comments"", which is ok). Where's the ""so far"" string? Now another example with text before the % sign: {{{ <? _e('Read on', 'anytextdomain'); comments_number(' and add the first comment', ' and see the first comment', ' and view % comments'); ?> ... }}} The result is bizarre: `Read on2 komentarze...` With some testing it seems that some strings passed as the 3rd argument are being kept, but it's totally illogical and requires review. If this is somehow intended, it should be explained in the Codex. So far, even the Codex example doesn't work as intended. I also checked that I'm not using any `comments_num*` filters. Workaround: use `get_comments_number()` with conditional code." eclare 1 47413 nested paragraphs in comment post errors Comments 4.5 normal normal Future Release defect (bug) reviewing has-patch 2019-05-28T05:32:48Z 2021-05-15T22:42:25Z "Line 30 in ‘wordpress/wp-comments-post.php’: {{{#!php <?php '<p>' . $comment->get_error_message() . '</p>' }}} An example of the Html code generated: {{{ <p><p><strong>ERROR</strong>: please fill the required fields (name, email).</p></p> }}} The reason is that in function **_default_wp_die_handler**, line 3072 in ‘wordpress/wp-includes/functions.php’ (WordPress 5.2.1), there already is a paragraph tag. {{{#!php <?php $message = ""<p>$message</p>"" }}} I would suggest removing the paragraph in ‘wp-comments-post.php’. Simply: {{{#!php <?php $comment->get_error_message() }}} ought to do. " tnbnicer 52582 wp_cache_* duplicate/redundant storage and insufficient clearing of cache Comments normal normal Awaiting Review defect (bug) new dev-feedback 2021-02-21T14:32:09Z 2021-02-21T16:07:12Z "This is something I'm currently encountering, but have not been able to fully investigate myself (yet). **Summarized backstory; ** Using Redis, sometimes maxes memory > needs flush. Started investigating whats taking up soo much memory (relatively simple sites). ~42,000/67,000 records stored are for `get_comment_child_ids` and `get_comments`. (By far not that many comments on my sites) Looking for a single specific comment ID it is repeated between 30-50 times, while in theory it should be just once (unless using it in different contexts? (->query_vars)) **Possible cause; ** For the methods `get_comments` and `fill_descendants` the `wp_cache_get_last_changed( 'comment' );` is used to create a cache key for the comments / childs. https://core.trac.wordpress.org/browser/tags/5.6.1/src/wp-includes/class-wp-comment-query.php#L432 https://core.trac.wordpress.org/browser/tags/5.6.1/src/wp-includes/class-wp-comment-query.php#L998 When a new comment is inserted for example, there is a attempt to delete the comment cache by calling `clean_comment_cache()`, but it seems this is based on the comment ID, which is not the same as the key / doesn't target the childs. The 'last_changed' is however changed at the same time in that function; https://core.trac.wordpress.org/browser/tags/5.6.1/src/wp-includes/comment.php#L3195 Which I think makes it impossible for the prior cached data to be found because it uses that in the key. This causes it to store the same data over and over (redundant), even when it hasn't changed for those comments, with new cache keys without clearing the old ones (duplicate). Could be I'm completely off, but wanted to get another pair of eyes on it. If whats described is actually happening it looks pretty major for caching efficiency. " sormano 8 32366 wp_count_comments() is hardcoded into /wp-admin/menu.php and queries all comments every single page load within the admin area, regardless of if edt_posts is removed from top menu or not Comments 4.2 normal normal Future Release defect (bug) reopened close 2015-05-12T23:07:12Z 2020-04-16T23:10:53Z "wp_count_comments() is hardcoded into /wp-admin/menu.php and queries all comments every single page load within the admin area, regardless of if edt_posts is removed from top menu or not. This is reproducible with 0 plugins and any core theme, as long as you have a large number of comments. Currently working on a site with 5,000,000+ comments and unless we comment out the following code in /wp-admin/menu.php, the server gets hammered. With multiple people in the admin area at the same time, it's even worse, since it loads on every single page load. The code: /wp-admin/menu.php - Line 94-97 (4.2.2) {{{ $awaiting_mod = wp_count_comments(); $awaiting_mod = $awaiting_mod->moderated; $menu[25] = array( sprintf( __('Comments %s'), ""<span class='awaiting-mod count-$awaiting_mod'><span class='pending-count'>"" . number_format_i18n($awaiting_mod) . ""</span></span>"" ), 'edit_posts', 'edit-comments.php', '', 'menu-top menu-icon-comments', 'menu-comments', 'dashicons-admin-comments' ); unset($awaiting_mod); }}} it's wp_count_comments that causes the large queries, when you have a lot of comments, but I comment out his entire section so that there isnt any errors with removing the creation of $awaiting_mod since it's being called on the next couple lines, before it is unset. Before I found the source, and saw that it was hard coded, I was hoping for some sort of hook to disable this entire function and/or a way for the wp_count_comments() to not be called if the item was removed... but thats not currently possible. I'm new to working on core, so i'm not sure on the best way to attack this issue. I figured it was best to bring up the issue and learn how you guys tackle the code. Open to coding a solution myself if somebody can point me in the right direction. Thanks." justindocanto 53639 "Ability to add checkboxes to ""Email me whenever"" section" Comments normal normal Awaiting Review enhancement new has-patch 2021-07-10T14:50:22Z 2022-06-02T11:26:29Z "In wp-admin > Settings > Discussion, there is a section ""Email me whenever"". The 2 options in this section are: - Anyone posts a comment - A comment is held for moderation There's currently no way for a plugin to add more checkboxes to this list." henry.wright 14 20977 Add Dynamic Comment Statuses Comments 3.4 normal normal Future Release enhancement new dev-feedback 2012-06-15T17:12:07Z 2020-01-14T02:35:50Z It would be great to add some filters/actions that would allow plugin developers to add additional statuses to comments. supercleanse 39505 Add an option to add custom classes to comment_reply_link() Comments 4.7 normal normal Awaiting Review enhancement new has-patch 2017-01-06T14:08:03Z 2017-01-06T18:45:38Z In many cases, I want to add custom classes to comment reply link. I can use js or handle comment link string. But it's better if have an option to add custom classes to link via PHP. truongwp 1 48480 Add comment_form_opening_tag and comment_form_closing_tag filters Comments normal normal Awaiting Review enhancement new 2019-11-01T12:12:17Z 2019-12-03T15:38:11Z "I'd like to be able to customize the `div#respond.comment-respond` wrapper around the comment form and replace it with a suitable HTML5 element, but it seems to be one of the few things one _can't_ change within the form. Therefore I'd like to suggest two filters added to `comment-template.php:2451`: `apply_filters( 'comment_form_opening_tag', '<div id=""respond"" class=""comment-respond"">' );` And `comment-template.php:2643`: `apply_filters( 'comment_form_closing_tag', '</div>' );`" powerbuoy 2 43298 Add filter to hide comment types from showing up in the default query schlessera Comments normal normal Awaiting Review enhancement assigned dev-feedback 2018-02-12T15:05:23Z 2019-01-16T06:50:09Z "Comment types are not something WordPress supports by default. However, there is some data and API support for it. The `wp_comments` table contains a `comment_type` column which can be used for this purpose. The big downside is that by default these will be shown in all comment overview. Both on the frontend and the backend. There are plugins that already do this. The examples that triggered this ticket are [https://github.com/woocommerce/woocommerce/blob/d2e9b366121166c7cb26936bd2c251f3dd7ebd5d/includes/class-wc-comments.php#L110 WooCommerce] and [https://github.com/WordPress/gutenberg/pull/4685/files#diff-df5e27f1866a42a0c24ae7c0b17b1bc6R496 this PR on Gutenberg]. These plugins use the `where` clause in the pieces of the query to make this possible. I propose we add a 'simple' filter that can hide specific comment types from view. If `comment_type` is not queried in any other way, this blacklist will make sure that all comment types in the blacklist are not returned from the query. '''Why not wait for full comment_type support?''' Full `comment_type` support is a much bigger effort. This filter would benefit us in the short run and doesn't conflict with full `comment_type` support." atimmer 1 59488 Add index to comment_type and comment_approved fields in comment table Comments 3.0 normal normal Awaiting Review enhancement new 2023-09-28T12:43:53Z 2023-09-28T12:43:53Z "Follow on from #58368 It is common to query comments by `comment_type` or `comment_approved`. There are several query done in the admin to get counts for different screens. But for sites with many comments, this results in slow returning queries. Add database indexes to these two fields to improve database performance. " spacedmonkey 1 47447 Allow client-side storing of comment meta Comments normal normal Awaiting Review enhancement new 2019-05-31T15:46:52Z 2019-05-31T15:46:52Z "As a modern counterpart to #12431, I think it'd be nice if plugins could add comment meta from the client side as well. An example use case would be [https://github.com/iandunn/compassionate-comments a plugin that identifies toxic comments, and then encourages the author to rephrase it to be more kind before it gets submitted]. It's currently possible by adding a `preprocess_comment` callback that examines `$_POST`, verifies and sanitizes the data, and then adds it to `$commentdata` before that gets passed to `wp_insert_comment()`. It could be much easier and standardized, though. Ideally, I think a client-side script should be able to just append a hidden input field named `comment_meta[]` to the `.form-submit` element, and have it be automatically added via `wp_insert_comment()`, rather than being ignored by `wp_handle_comment_submission()`. Since it's coming from the client side, the data can't be trusted. We need to verify that it was added by the enqueued script, and then sanitize it. Maybe there could be something similar to `register_post_meta()` with a `allow_in_form` boolean param, and a `sanitize_callback` param." iandunn 4 48536 Allow cmd/ctrl-enter to submit comment forms in wp-admin davidbaumwald* Comments normal normal Future Release enhancement accepted dev-feedback 2019-11-08T12:02:30Z 2020-02-10T19:19:27Z "This is a follow-up on #41545 which says: > I think it'd be a nice enhancement for comment forms in both the admin and front end to submit this way. However, the r45790 introducing the feature does so only for frontend. Submitting comment by pressing ctrl/cmd + 'enter' does not seem to be working in wp-admin. It would be cool if the new feature could be added to wp-admin as well." david.binda 55470 Allow for finer-grained callbacks for wp_list_comment Comments 2.7 normal normal Awaiting Review enhancement new 2022-03-27T17:48:00Z 2022-03-27T18:16:41Z "I've implemented a variety of different custom comment types, so logically, I'd like to allow for default customized comment output for these different types and still allow a theoretical theme to provide its own callback. Unfortunately, the only two options are a custom callback or a custom Comment Walker. Using the 'wp_list_comments_args' filter to make a custom comment walker the default, and reimplementing the start_el option is the only way to do this...but this means again, the possibility of unanticipated interaction. So, in thinking about this, proposing two enhancement options...looking for thoughts before I write up some code for consideration. 1. Enhance the callback argument in wp_list_comments. Allow it to be an associative array or a string. If an associative array, the key would be comment_type. It would allow the 'all' parameter key, which would mean that the 'all' callback would be used if nothing more specific was provided. If this is a string, it would just set that to the all parameter and use the same logic. This would allow differing callbacks to be called per comment...if you choose to display them mixed. 1. Add a filter inside start_el to allow for greater logic at this point before triggering the built-in or custom callback on a per-comment basis. Now, ideally, the solutions would be found in #35214 with some form of comment registration, but as that would have to be backward compatible, and that it has been 6 years since that conversation started suggests this simpler solution may make sense in the interim and even afterward." dshanske 2 38925 Allow override of depth limits on comment reply link Comments 4.7 normal normal Future Release enhancement new dev-feedback 2016-11-24T06:41:07Z 2020-05-26T20:21:04Z "The core code currently hides the Reply link if a comment is at the maxDepth setting for comment nesting, but this appears to only be a constraint on the presentation. The API still allows replies through URL parameters and the REST interface, which demonstrates that there is not a functional reason for the constraint. I'm proposing that plugin authors are allowed to override this constraint by setting `$args['limit_by_depth'] = false` in a `comment_reply_link_args` filter. This requires only a minor, inconsequential change to comment-template.php per the attached patch. Note the '[https://wordpress.org/plugins/infinite-comment-replies/developers/ Infinite Comment Replies]' plugin currently achieves this by completely rewriting the reply link and thus masking everything that is handled in the core production of the link. The proposal above is a better option to achieve the same effect." TravisR 2 44485 Allow some functions from comments-template.php to accept a comment or post ID Comments normal normal Awaiting Review enhancement new has-patch 2018-07-01T14:11:57Z 2018-07-01T14:11:57Z "Nowadays, it's not uncommon to have to use some templating functions outside of the loop. Most of them already accepts a comment or post ID (get_permalink, ...). But, that's not the case for some functions related to comments. I did a small update of the file to allow that." tristanleboss 57106 Allowing comment form error pages Comments normal normal Awaiting Review enhancement new has-patch 2022-11-14T14:27:08Z 2022-11-14T15:21:43Z "Current status quo: As of now, it is not possible to have customized a customized validation for forms (covered in #57105 ) And every single error will either end in a wp_die() or an exit. Proposal: Instead of always ending in `wp_die()` we could forward to the referer page, including the error_message and the $_POST data, to prefill the form (especially with the comment, since these would be really painful if lost). `comment_form()` would require an enhancement to show errors. This idea is still in progress, I'll provide a working proof of concept later, but I wanted to open this for discussion. Note: Will also need some kind of representation for the Rest API." apermo 6 48088 Anonymous Avatar should be served locally Comments low normal Future Release enhancement new 2019-09-20T17:12:35Z 2019-11-01T17:09:20Z "Right now, even the mystery man is retrieved by querying gravatar. We should have a local copy of the anonymous avatar that is served. At the least, if there is no requirement for an email, which is what is used to provide the gravatar requests, why make requests to gravatar? We could say caching gravatar responses is plugin territory, and while I would like to do with with gravatar for performance, this is about not making a call in the first place." dshanske 3 39133 Check email length in is_email() Comments 4.8 normal normal Awaiting Review enhancement new has-patch 2016-12-07T05:38:44Z 2020-07-17T14:50:12Z "In reference to this ticket - https://core.trac.wordpress.org/ticket/38506#comment:12 It would be better to check email length within the is_email() itself instead of validating it at various other places. " PranaliPatel 1 30979 Check for context menu before closing commentReply SergeyBiryukov* Comments normal normal Future Release enhancement accepted has-patch 2015-01-11T14:40:41Z 2021-08-27T13:34:20Z "Login to WP-Admin, go to the comments section and ""Quick edit"" or ""Reply"" to a comment. Bring up the context menu either with a right-click or the menu key, press ESC and the context menu and the comment box will close. [[Image(https://i.imgur.com/xnhrZDr.png)]] I understand that this is the expected behaviour but this can be frustrating at times. If you bring up the context menu while typing a long reply but decide not to autocorrect and press ESC to close the context menu everything you've typed so far is gone :( The ""Compose email"" section of both Gmail and Outlook.com close themselves when ESC is pressed but don't if the context menu is open. So I thought WordPress should also have the same behaviour. The patch checks for a right click or menu key press before doing `commentReply.revert()`." jesin 2 54473 Comments listing screen in wp-admin doesn't expose if a comment was left by a logged in user Comments normal normal Awaiting Review enhancement new has-patch 2021-11-19T05:34:17Z 2021-11-20T00:26:35Z "When viewing wp-admin/edit-comments.php it's not possible to determine if comments are being left by an ""anonymous"" user, or by a logged in user, despite this being stored in the comments table. This is particularly useful for Sites where users need to be logged in to comment, or for sites with public registration enabled (such as WordPress.org). Using #meta5485 as an example, spammers can register and then leave spam comments on posts, but it's not immediately visible what their user login is, or have any link to their profile - Having a link directing the moderator to the users profile, in addition to being able to spam just the comment, would be greatly beneficial for those use-cases. There's already a bit of information overload on the comments listing author section, so perhaps for logged in users the information shown might be able to be adjusted/minified/etc. There might not be any reason to display the Email address for example." dd32 1 39028 Comments on private posts or specific edge cases can get a confusting white screen error. Comments 4.4 normal normal Awaiting Review enhancement new 2016-12-02T14:29:01Z 2017-08-03T14:00:53Z "I have a plugin that uses the private status for a custom post type used in private BuddyPress groups. When a group member tries to comment on one of the post type he's getting a white screen. I've fixed the issue on my side, problem was about caps mapping. But still, i was pretty confused by this behavior. At first i thought it was a fatal error, but xdebug returned nothing, so i've looked in my error.log again nothing ?? Then i've found some returned WP_Error was missing data like the 403 status in `wp_handle_comment_submission()`. As this function was introduced in 4.4, i guess it first appeared in 4.4. I think it could be interesting to have a screen looking like this in this kind of cases : [[Image(https://cldup.com/ymyxLMacts.png)]] I suggest the attached patch." imath 45998 Comments trashed after reply Comments 5.0.3 normal normal Awaiting Review enhancement new reporter-feedback 2019-01-16T02:58:34Z 2019-01-16T16:42:52Z "I found A Bug into your software. Which is Whenever I click on **Approve and Reply** option in comments, then it's automatically trashed.. Please Fix it." pkkarn 1 22579 Confusion of WP admin Discussion settings Comments normal normal Future Release enhancement new 2012-11-24T20:46:05Z 2019-11-05T13:26:24Z "On the ""Settings>Discussion"" page: 1) ""'''Default article settings'''"" should be replaced by ""'''Default comment settings'''"" (because these important settings do not only apply to posts (''articles'')), but also to pages! 2) ""'''Allow people to post comments on new articles'''"" should be replaced by: --> ""'''Allow people to post comments'''"" (best option in my opinion) or --> ""Allow people to post comments on new pages and posts"" Sorry if this is not the right place to make such suggestions." Lorangeo 2 40355 "Default to ""https://"" in comment author URL field" Comments normal normal Awaiting Review enhancement new dev-feedback 2017-04-04T15:56:58Z 2021-06-07T10:00:12Z "One pet peeve of mine with commenting on other people's WordPresses, is on new sites I haven't commented on yet (or aren't powered by Jetpack Comments) that I need to type `https://` in every Website field. Traditionally, this field is currently empty unless a cookie exists (see: `wp_get_current_commenter()`). Tangentially, recent efforts across the web to SSL all-of-the-things (`\o/`) makes this field an interesting opportunity to gently nudge the web in the direction of `https://` feeling more like the norm than the exception. A plugin can easily enable this (and I'll likely make one today) but I'll offer up the idea here first. Patch imminent." johnjamesjacoby 1 41110 "Display full content of ""Pending"" comment on WP Dashboard" Comments 4.8 normal normal Awaiting Review enhancement new has-patch 2017-06-21T05:42:37Z 2017-06-21T06:23:25Z """Recent Comments"" widget in WP dashboard displays a list of Pending and recent comments. A ""Pending"" comment has all the action items - approve, reply, edit, trash, spam. But, these items are of no use, because the complete comment text is not visible. It will be good to display the full content of the ""Pending"" comments. OR Add a toggle to display the full content without having to go to ""Comments"" page. " puneetsahalot 2 13363 Edit Comments: Pending > Approving shouldn't make them disappear from screen wonderboymusic Comments 3.0 normal normal Future Release enhancement assigned has-patch 2010-05-11T23:35:45Z 2023-11-16T17:40:18Z "Edit Comments: Pending > when clicking Approve the comments shouldn't just disappear from the screen. They should collapse and have an undo status like when you trash or spam a comment. ENV: WordPress trunk r14573 (3.0-beta2-14565) " lloydbudd 57105 Enhance wp_handle_comment_submission() with a custom validation Comments 6.2 normal normal Awaiting Review enhancement new 2022-11-14T14:06:08Z 2022-11-14T20:23:46Z "As of now, there is no way to do a custom validation on comments, but it is pretty much mandatory in most European countries to ask for consent when storing the data. In 4.4.0 the filter `comment_form_fields` was introduced, which allows to add a custom checkbox for that very consent. My example below shows exactly this case, it comes with an html5 form validation via the `required` attribute, by due to the missing server side component, that is a weak validation(at best). I propose to add a counterpart filter inside of `wp_handle_comment_submission()` that will allow exactly this missing server side validation. {{{#!php <?php /** * Allows a custom validation. * * @since TBD * * @param null|WP_Error $custom_validation Your possible custom error. * @param array $commentdata Array of comment data to be sent to wp_insert_comment(). * @param array $comment_data The raw comment data from the function call. */ $custom_validation = apply_filters( 'comment_form_fields_validation', null, $commentdata, $comment_data ); if ( is_wp_error( $custom_validation ) ) { return $custom_validation; } }}} `$comment_data` will pretty much contain the content of `$_POST`. (Patch with exact position see attachment) Example use case(simplied): {{{#!php <?php namespace CustomNamespace // This is already working since 4.4.0 function comment_privacy_field( array $fields ): array { $fields['privacy'] = '<input id=""privacy consent"" name=""privacy-consent"" type=""checkbox"" value=""yes"" required><label for=""comment-form-privacy-consent"">Yes I consent...</label></p>'; return $fields; } add_filter( 'comment_form_fields', __NAMESPACE__ . '\comment_privacy_field' ); // This is new in my proposal function comment_validation( $custom_validation, $commentdata, $comment_data ): ?\WP_Error { if ( ! isset( $comment_data['privacy-consent'] ) || empty( $comment_data['privacy-consent'] ) ) { return new \WP_Error( 'require_consent', 'You have to consent', 200 ); } return $custom_validation; } add_filter( 'comment_form_fields_validation', __NAMESPACE__ . '\comment_validation', 10, 3 ); }}} This would allow us to add any custom validation. Note: Any comment form error will result in a `wp_die()` page, which would likely need an overhaul in this case too. But I will create a separate ticket for that topic." apermo 3 44923 Filter .children class on nested comments list Comments normal normal Awaiting Review enhancement new 2018-09-09T20:52:44Z 2019-04-21T07:19:28Z "The `start_lvl()` method of `Walker_Comment` should have a filter hook to customize the `.children` class. This will allow theme authors to utilize their preferred system or CSS framework for handling nested comment lists. And, `.children` is generic and requires writing nested CSS selectors to target it. This change would put the comment walker on par with the nav menu walker, where we have the `nav_menu_submenu_css_class` filter hook." greenshady 4 19739 Filters to allow comments on draft & trash post_status posts Comments 3.3 normal normal Future Release enhancement new needs-unit-tests 2012-01-04T19:01:18Z 2023-03-02T15:52:31Z "I'd like to use comments on draft posts as part of an editorial workflow. Will this be as easy as adding a filter to fire before the current comment_on_draft action that can be checked before exiting? I'll try that and add a patch if it looks good. Related #13276. Not relevant to #18630, I think." cyberhobo 50361 Highlight if link targets in comments don't refer to the link text Comments normal normal Awaiting Review enhancement new dev-feedback 2020-06-10T20:36:48Z 2020-06-10T20:42:02Z I'm thinking of some kind of solution to warn if links in comments are not what they seem to be to give a little security extra. They can be misused to inject bad stuff if clicked as an admin. I changed class-wp-comments-list-table.php to show a hint like on the screenshot to show you what I mean. What do you think? How could this be done in a non disturbing way? Or don't we want it at all? You decide. Presskopp 7 33627 In-Context Comment Moderation Comments normal normal Future Release enhancement new 2015-08-31T17:24:33Z 2021-01-27T19:20:14Z "One of the more painful points in the comment moderation UX revolves around knowing whether or not a comment is in context. Right now, WordPress says who a person was replying to and offers a link to the frontend of that comment on replies to a comment. However, it can be quite tedious to go view the original comments a bunch of people were replying to to see if the reply was in-context. An easy fix for this would be to offer a ""Show context"" link next to the ""replying to {name} link on replies, that when clicked, would ajax show the comment the pending comment was originally replying to. " chriscct7 3 39084 Introduce singular capabilities for managing individual comments Comments normal normal Future Release enhancement new needs-unit-tests 2016-12-04T22:14:50Z 2017-07-14T19:41:15Z "As we did in #35614 for taxonomy terms, singular capabilities should be introduced for approving, unapproving, spamming, unspamming, editing, and deleting individual comments. This would allow fine-grained cap checks such as current_user_can( 'edit_comment', $comment_id ) and current_user_can( 'approve_comment', $comment_id )." johnbillion 1 41731 Make it Easier to Locate Restored Comments SergeyBiryukov Comments 4.8.1 normal normal Future Release enhancement assigned 2017-08-25T19:30:34Z 2019-06-21T17:56:20Z "When a comment is in the trash, WordPress does not allow you to edit its details without restoring it first. After restoring the comment, it disappears from the Trash and the user is then required to locate it either by memorizing the post it's on or searching for it in the backend. It doesn't show up on the approved comments page because of its original published date. I suggest that if a single comment is restored, it takes users to the post it's on. Even better would be taking the user straight to where the comment is in the Discussions meta box. However, since users can hide this meta box via the screen options, I'm unsure how to account for that. Perhaps redirecting users to the post where the comment is displayed is enough?" jeffr0 6 23634 New hook for adding content after each comment chriscct7 Comments normal normal Future Release enhancement assigned has-patch 2013-02-26T19:29:57Z 2017-10-23T14:56:06Z "Similar to #18561 (which is for a new ""after post"" hook) add a hook that fires after each comment output with {{{wp_list_comments}}}." lancewillett 2 56261 Normalize comment function parameters with mixed case names SergeyBiryukov* Comments normal normal Future Release enhancement accepted 2022-07-20T16:30:32Z 2023-02-08T14:39:53Z "Background: #56244 As of WordPress 2.9, core normalizes the `user_ID` parameter to `user_id` when passing data to comment functions, see [12267], [12300], and [28915]. We should consider normalizing other parameters in the same way as it was done for `user_ID` → `user_id`: * `comment_ID` → `comment_id` * `comment_post_ID` → `comment_post_id` * `comment_author_IP` → `comment_author_ip` Then any combination of these parameters would work regardless of the case. This would allow extenders to name variables in accordance with the WordPress coding standards: * `$comment_id` * `$comment_post_id` * `$comment_author_ip` and use them subsequently in a `compact()` call without having to worry about a case mismatch. This would also allow us to revert some of `compact()` rearrangements made in [53719] and [53723]: {{{ $compacted = array( 'comment_post_ID' => $comment_post_id, 'comment_author_IP' => $comment_author_ip, ); $compacted += compact( 'comment_author', 'comment_author_email', 'comment_author_url', ... 'user_id' ); }}} which could then be: {{{ $compacted = compact( 'comment_post_id', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_ip', ... 'user_id' ); }}} The list of functions this may affect: * `wp_insert_comment()` * `wp_new_comment()` * `wp_update_comment()` * `wp_filter_comment()` * `wp_handle_comment_submission()`" SergeyBiryukov 11 6286 "Proposed changes to ""E-mail me whenever"" Discussion Options" Comments 2.5 normal normal Future Release enhancement new 2008-03-18T19:14:55Z 2019-03-15T00:40:35Z "WRT the ""E-mail me whenever"" options on the Discussion options page: [[Image(http://img132.imageshack.us/img132/4215/picture1vf1.png)]] 1. For ""a comment is helf for moderation,"" the ""me"" is ambiguous. It should specify that it means the blog admin e-mail address. 1. For ""anyone posts a comment,"" again, ""me"" is ambiguous. In this case ""me"" means the author of the post. The comment notification setting is personal, and therefore should be set in the profile options (where it can retain the ""me""). Some authors may want e-mail notification, others might not." markjaquith 10 47595 Re-evaluate whether comment form should still get the HTML5 novalidate attribute Comments 3.6 normal normal Future Release enhancement new has-patch 2019-06-24T08:15:42Z 2024-01-12T14:59:01Z "Given a theme that declares theme support for `html5` via: {{{#!php <?php add_theme_support( 'html5', array( 'comment-form' ) ); }}} The result is that not only are the HTML5 input types used (e.g. `email`) but the comment form itself also gets a `novalidate` attribute added to it. This prevents HTML5 client-side validation from being performed on comment form when submitting which was added due to [https://core.trac.wordpress.org/ticket/15080#comment:2 concerns] about browsers implementing validation in very different ways. Nevertheless, this concern was about browsers ''9 years ago'' so it would be worthwhile to see if this is still a problem. (The attribute was added in #15080 via r23689.) If `novalidate` remains important to keep there is a case for optionally allowing it to be removed in order to rely only on client-side validation only. The [https://wordpress.org/plugins/pwa/ PWA feature plugin] adds support for '''Offline Commenting'''. This works by having the service worker intercept the `POST` submission to `wp-comments-post.php`: it then makes the request, and if it fails fails due to the user being offline, the service worker will replay it later when the user comes back online via the [https://github.com/WICG/BackgroundSync BackgroundSync API]. However, if client-side validation was not performed then it is possible the user omitted a required field or provided a bad email address, so when they do come back online and the comment is synced, the server would then reject it and it would be more difficult for the user then to find out that their previously-posted comment actually failed. If no filter is available for removing the `novalidate` attribute, then it has to get removed via hacks like using JS or via PHP with output buffering. But again, is there still a case for adding the `novalidate` attribute in the first place? Is not client-side validation a ''better user experience'' (if browsers now are now consistent in validation)? For that matter, is there even a case for the `format` attribute and shouldn't HTML5 ''always'' be used?" westonruter 6 22889 Reconsider no-JS ?replytocom= links SergeyBiryukov* Comments normal normal Future Release enhancement accepted dev-feedback 2012-12-12T15:13:20Z 2023-03-03T07:03:13Z "We have a no-JS fallback for comment replies. Normally JS moves the comment form around. For people with JavaScript disabled, they follow the `?replytocom={123}` link. This results in a lot of extra crawling by search engines (potentially an additional crawl per reply-able comment!) in exchange for enabling an awkwardly executed, likely underused, and non-essential feature for non-JS users. I'd like to consider making comment reply JS-only." markjaquith 4 33735 Reduce Duplication and Improve Comment Notification Email Functions SergeyBiryukov Comments low normal Future Release enhancement reviewing needs-unit-tests 2015-09-04T22:55:04Z 2021-01-27T19:20:55Z "Had touched on this in #33587. wp_notify_postauthor and wp_notify_moderator have some duplicative code that could be eliminated and simplified. The functions for notification also lack a filter similar to the one for displaying the comment text. Proposing the function to show the comment in text form in the notification be separated out into its own function with a filter, and the default text be improved somewhat. " dshanske 52480 Refine the display of the comment approval notification opt-in confirmation message Comments normal normal Future Release enhancement new dev-feedback 2021-02-09T17:09:29Z 2021-04-09T15:36:56Z "Follow-up to #52406. The confirmation message shown to a user ''after they opt-in'' to receiving a notification of their pending comment's approval is currently displayed inline with a preview of their comment. This means the display of this confirmation message is only shown if the user opts in within 10 minutes of posting their comment. If they take longer than 10 minutes then their opt-in is respected but they see no confirmation message. As mentioned in the comments in [comment:7:ticket:52406] 10 minutes is likely long enough but no research was done. Let's identify if this functionality needs to be improved. Options: * Extend the time limit further. This needs to take into consideration #49956. * Disconnect the display of the confirmation message from the comment preview, and always show a confirmation message. Would need to take into consideration the cache headers on the page. * Fix the comment spam problem some other way and remove the time limit. * Do something else. * Do nothing and leave it as-is. " johnbillion 60238 Remove comments completely option Comments 6.4.2 normal normal Awaiting Review enhancement new 2024-01-12T08:43:00Z 2024-01-12T08:43:00Z "Hi, On my site [https://www.casivo.se casivo.se] and other sites in our network I've noticed that even if comments is turned off, it keeps sneaking in random comments for approval and I can't seem to figure out why, I don't have a comment field anywhere on the site in the code. Is it through some wierd place I'm overlooking? It's on posts but I don't have any comment-code inside the single.php Would be nice if we can just have a option to ""disable comments"" Best regards" linus89 27 33717 Send Notification Email When a Comment is Approved From Moderation Comments normal normal Future Release enhancement assigned has-patch 2015-09-04T00:43:09Z 2021-05-13T20:02:21Z Currently in WordPress, commenters have no idea their comment is approved unless they visit the page often. When a comment is held for moderation, WordPress should send the commenter an email notification when their comment is approved. I'm using the [http://wptavern.com/an-easy-way-to-notify-users-when-their-comment-is-approved Comment Approved] plugin to add this functionality to WordPress but I really think it should be a core feature. jeffr0 3 17913 Site-level comment options may override individual post settings. Improve help/docs. Comments normal normal Future Release enhancement new has-patch 2011-06-27T20:46:43Z 2019-11-18T18:11:40Z "Post comments may be automatically closed for a site's posts if site option 'close_comments_for_old_posts' is true and the post was published before 'close_comments_days_old' days ago. These two options are set in options-discussion and override the 'comment_status' of an individual post. The edit posts screen's comment meta box displays comments open/close status, allowing publishers to open or close comments for a single post. It's possible the site-level discussion settings will override the individual post yet we still might display a different post comment status than the site settings allow. 1. Enable site-level option to close comments on articles ( wp-admin/options-discussion.php#close_comments_for_old_posts ) 1. Enter a days value of 1 for maximum impact 1. Edit a post published over a day ago 1. View the Discussion meta box ( #commentstatusdiv ) 1. Interact with the 'comment_status' field I would like to better communicate expected failure and let the post author or editor know this particular setting has been overridden at the site options level. If the current user can manage options I might you could link to the override in the options page. I created a new test blog, set comments to auto-close after a day, and checked allow comments in the post screen. I was wondering why comments_open() was false for the post when I was looking at a checked box on the post screen." niallkennedy 60533 The comment tree is old – maybe it’s worth changing it? Comments normal normal Awaiting Review enhancement new reporter-feedback 2024-02-13T19:54:34Z 2024-02-20T02:26:48Z "Maybe it’s worth considering a new approach to comments on WordPress? It’s about the tree – the rooting of comments. Currently it may be level 10. And later there is no reply button – because they usually get narrower. Or maybe it’s worth ending this rooting and switching to something – where every statement will be treated as a response. Completely without roots and their depth – which has been causing problems in long conversations for years. Maybe it would be worth creating it like on the forums – i.e. on a completely different system, without this limitation. Isn’t it worth thinking about? Sometimes conversations are long and it’s a real pain to keep talking to anyone on WordPress. Because – either they are becoming narrower – or the comment ends after the 10th comment – because it cannot be moved as a child. It is probably worth changing it to some other approach, more known from forums – where the number of comments and conversations as – answer to answer does not matter how many of them there are." Danishsard 4 39282 The process for approving and then replying to a comment can be made more visible Comments 3.1 low normal Awaiting Review enhancement new 2016-12-14T18:17:51Z 2020-09-01T15:53:25Z "The workflow for approving and then immediately replying to a comment has a shortcut in WordPress, but it's not obvious. If you don't know about it, you can waste time and effort switching between the pending and approved views on the comment moderation screen after approving a comment and then wanting to reply to it. The `Reply` link on a pending comment is actually a shortcut for approving and then replying to a comment. The `Reply` link text should be updated to `Approve and Reply` to reflect this and make comment moderation a more enjoyable process." johnbillion 2 58375 Turn comments off by default for attachment pages (or make is easier to do so without code) Comments normal normal Awaiting Review enhancement new dev-feedback 2023-05-22T14:49:42Z 2023-05-25T07:09:59Z "If a new user is installing WordPress the first time, it lasts some time until the first spam comment appears. Typically, they now disable comments on **Settings -> Discussion**. First problem: this is just disabling the comments for ''future'' posts. Now they learn about bulk editing posts, which works fine. But the website is now online for some time and more media is uploaded, and now the spam comes to the next open comment form: **on attachment pages**. Not sure if attachment pages follow the setting from the discussion page, but there will be many media items with open comments. Now we have the second problem: On the grid view, there is no way to disable the comments at all (you need to follow a link to get to the single media edit page). On this page you need to customize the screen options to enable the meta box, and now you can disable the comments for ''this'' media item. This has to done manually for every media item with open comments (but there is no way to see if the comments are open - so you need to edit every media item). This could be a real pain for websites with many media items. **I would recommend changing the behavior and have comments on attachment pages turned off by default.** I think it will be easier to educate theme developers to turn them on again if the theme uses them (e.g. photography themes) as documented here: https://make.wordpress.org/core/2015/07/06/comments-are-now-turned-off-on-pages-by-default/ This is already discussed in the comments on this post. Related tickets: #12991 and #21391 Another way could be to use the idea of this comment: https://core.trac.wordpress.org/ticket/12991#comment:22 If turning the default to off is not possible, we could use the bulk edit to enable/disable the comment/pingback/trackback feature. The need for such a feature could be seen in the plugin directory, as there are more than one plugin for disabling comments on attachment pages (and more): https://wordpress.org/plugins/disable-comments/ https://wordpress.org/plugins/smart-attachment-page-remove/ https://wordpress.org/plugins/disable-comments-rb/ https://wordpress.org/plugins/comments-plus/ https://wordpress.org/plugins/disable-comments-on-attachments/ https://wordpress.org/plugins/disable-comments-by-click5/ https://wordpress.org/plugins/no-page-comment/ https://wordpress.org/plugins/stop-media-comment-spamming/ https://wordpress.org/plugins/disable-comments-wpz/ https://wordpress.org/plugins/disable-post-comments/ https://wordpress.org/plugins/close-comments-on-media-attachment/ These add up to more than a million active installations." zodiac1978 57314 Update all references to wp/v2 to namespace field in class-wp-rest-comments-controller.php Comments normal normal Awaiting Review enhancement reopened has-patch 2022-12-11T18:11:02Z 2022-12-12T11:17:55Z This is a very minor change to make it easier for other classes to extend this class and define their own namespace. ihenetudan 3 10653 Update comment_author when display_name changes SergeyBiryukov Comments 5.1 normal normal Future Release enhancement reviewing dev-feedback 2009-08-19T19:43:29Z 2021-04-05T12:31:54Z One thing that has bothered me recently is the fact that your previous comments doesn't get updated when your display_name is being updated. Which could cause some confusion. I wrote a function (see attached file for further reference) that takes care of this but I would love to see a similiar feature in the WordPress core. mptre 3 55922 Update wp_list_comments type parameter to allow array or string Comments 2.7 normal normal Awaiting Review enhancement new 2022-06-05T06:27:24Z 2022-06-05T06:27:24Z "Right now, the options here are all, or a specific comment type. This should allow for multiple comment types as allowed in WP_Comment_Query " dshanske 15 10931 Verify Comment Email Addresses of Registered Users Comments 2.8 normal normal Future Release enhancement assigned has-patch 2009-10-08T14:34:44Z 2021-05-06T09:05:36Z "When leaving a comment with an email address of a registered user, WordPress should force the visitor to login or change the email address in the comment form. Anyone can impersonate a blog's user if they know the user's email address." mtdewvirus 1 40073 "WP_Comment_Query should support a comment type of ""comment""" Comments 4.8 normal normal Future Release enhancement new 2017-03-08T20:44:29Z 2017-03-13T16:18:07Z "Scenario: User is leveraging the `comment_type` field in their theme or a plugin, and desires all comments to have a type. They assign ""regular"" comments a `comment_type` of ""comment"" as that seems to make sense. If they then ask for those comments using `get_comments` or another function which leverages `WP_Comment_Query`: {{{ $comments = get_comments( [ 'type' => 'comment', ] ); }}} The returned list will not return any comments which have `comment_type` set to ""comment"", only those with no type at all. As this behavior (the swallowing of ""comment"" as a type entirely, rather than looking for `['','comment']`) is undocumented, perhaps `WP_Comment_Query` could be altered as such: {{{ 715 case 'comment': 716 case 'comments': 717 $comment_types[ $operator ][] = ""''""; ___ $comment_types[ $operator ][] = ""'comment'""; ___ $comment_types[ $operator ][] = ""'comments'""; 718 break; 719 720 case 'pings': 721 $comment_types[ $operator ][] = ""'pingback'""; 722 $comment_types[ $operator ][] = ""'trackback'""; ___ $comment_types[ $operator ][] = ""'pings'""; 723 break; }}} A sounder approach would probably be to allow a flag to be passed: {{{ 708 foreach ( $_raw_types as $type ) { ___ if ( empty( $this->query_vars['ignore_default_types'] ) ) { 709 switch ( $type ) { ... 729 } ___ } else { ___ $comment_types[ $operator ][] = $wpdb->prepare( '%s', $type ); ___ } ... 735 } }}} An alternative might be to throw an exception when setting `comment_type` to one of the default values using `wp_new_comment`, `wp_insert_comment` and similar functions. (I feel since there is no way to retrieve a comment when the type is one of these ""reserved"" words with standard WP functions, comments should probably not be able to be saved with a ""reserved"" type using standard functions if `WP_Comment_Query` is not altered.) At the very least, the documentation for comment ""insert"" functions should mention that there are reserved keywords on `comment_type`, note what they are, and that if you use one of them you will need to use the `comments_clauses` filter to allow them to be retrieved." rogerlos 1 50538 WP_Comments_List_Table should not show views that have a count of 0 pbiron Comments normal normal Awaiting Review enhancement assigned dev-feedback 2020-07-02T17:14:28Z 2021-03-12T11:00:37Z "Other core list tables that have a get_views() method do not output a view if the count for that view is 0, e.g., `WP_Posts_List_Table` doesn't output ""Pending (0)"" if there are no posts with $post_status === 'pending'). However, `WP_Comments_List_Table` does output ""Pending (0)"" if there are no pending comments. For consistency's sake, I think `WP_Comments_List_Table` should skip views with count of 0. Related: #47495" pbiron 41339 WP_Comments_Query::__construct() should allow a 'status__not_in' parameter Comments 4.9 normal normal Future Release enhancement new needs-unit-tests 2017-07-15T19:47:02Z 2017-07-30T15:24:18Z "`WP_Comments_Query::__construct()` (and hence, `get_comments()`) currently allows a `status` parameter to get comments with a specific status. It would be useful to also allow `$status__not_in` to exclude comments with specific stati. Related: #41338" pbiron 6 10975 comment form nonce Comments normal normal Future Release enhancement new 2009-10-19T06:49:16Z 2020-02-27T17:33:32Z "This adds a nonce to public comment forms, via the comment_form action. " tellyworth 1 47306 comment reply event listener: need ability to run custom js function Comments 5.1 normal normal Future Release enhancement reopened 2019-05-17T16:24:11Z 2019-06-20T16:32:16Z "I wrote the comment-tweaks plugin, which adds the tinymce editor to the comments field. When threaded comments are enabled, clicking on a Reply link moves #comment within the dom, and that breaks tinymce - I need to be able to run a bit of js when a Reply link is clicked to remove the editor, then move the element, then add the editor back. Prior to 5.1, the comment reply link had an onclick attribute calling moveForm(), and I simply overwrote the single onclick handler with a custom one. This is/was a bit of a hack, but worked fine (as long as no other plugin was hoping to also take over onclick). Recent changes (#46260) to comment replying changed how event listeners are handled for the comment Reply and Cancel reply buttons, which now uses a MutationObserver to (re)add click/touchstart listeners every time the document body changes. I can no longer overwrite the onclick handler, as it will be re-added in subsequent document changes. I could probably add my own MutationObserver, handle the race of which fires first, and continue to overwrite the core click/touchstart event handlers, but this is just another hack and I would rather fix it correctly, where other plugins could utilize event handlers on those links as well. Note that I need more than just the ability to add my own event listeners, as they fire in the order they were added, and I need to remove the editor prior to moving #comment (addComment.clickEvent() firing), and add it again afterwards. A javascript ""action hook"" that fires in clickEvent() ahead of moveForm() and another which fires afterwards may be a viable solution. (And another pair of ""action hooks"" in cancelEvent().) Probably could make the entire click/cancel event handlers just call the action hook and add the current clickEvent/cancelEvent code in functions called via those same hooks, so they could be overridden if needed? (I don't need to overwrite them myself if I can order a call before and after them, but perhaps other plugins would.)" jnorell 54234 comment_type of reply should be same as parent Comments normal normal Awaiting Review enhancement new 2021-10-08T11:58:54Z 2021-10-18T19:11:33Z "When you creating a reply for custom comment_type. Lets say our comment_type is for 'product_review'. When we create a reply from admin panel. The comment_type of the reply created as 'comment', which doesnt make sense. So our reply will not be shown in comment_list for 'product_review'. Or we can make user decide if this comment should be created as the same comment_type as the parent via checkbox in the comment reply form in admin panel." erikdemarco 1 58156 finetune wp_update_comment_count Comments normal normal Awaiting Review enhancement new has-patch 2023-04-19T05:42:00Z 2023-07-08T22:20:01Z "there is a @todo in {{{function wp_update_comment_count}}} and I see no reason for not changing the code, which would make it a bit more effective. current: {{{#!php if ( $do_deferred ) { $_deferred = array_unique( $_deferred ); foreach ( $_deferred as $i => $_post_id ) { wp_update_comment_count_now( $_post_id ); unset( $_deferred[ $i ] ); /** @todo Move this outside of the foreach and reset $_deferred to an array instead */ } } }}} new: {{{#!php if ( $do_deferred ) { $_deferred = array_unique( $_deferred ); foreach ( $_deferred as $i => $_post_id ) { wp_update_comment_count_now( $_post_id ); } $_deferred = array(); // for clarity, it is not even needed } }}}" Presskopp 43792 get_comment_excerpt filter should tell if the comment was shorted or not Comments normal normal Awaiting Review enhancement new dev-feedback 2018-04-17T22:14:58Z 2019-01-16T06:50:09Z "The design I am currently working on has long comments shortened to 100 words, and a 'show more' / 'show less' link is added. I only want to add the 'show more' text if the comment has been shortened. There is a filter before get_comment_excerpt() returns that I can use to add my link. However it does not pass along information about whether or not the comment was shortened. As a workaround I can check if the comment ends in ""…"", but it would make sense to add a boolean value to the filter arguments to make this easier/cleaner." mattkeys 1 53215 get_comments_number should also need comment_type Comments normal normal Awaiting Review enhancement new 2021-05-16T03:12:29Z 2021-05-16T10:56:30Z Currently, I can use comments_template for custom comment types. For easier manageability, developers don't need to make their own function to get a custom comment count. Its a lot easier if WP have additional 'comment_type' parameter for its get_comments_number() function erikdemarco 7 36424 graphically visualize if comments are closed (in wp-admin/edit.php) Comments normal normal Future Release enhancement new has-patch 2016-04-06T08:08:36Z 2018-03-12T17:02:29Z "it would be nice if the pages or posts list would not only show the number of comments per page but if it also could show a symbol if comments for this particlar page or post are closed. proposal: - the lock symbol https://developer.wordpress.org/resource/dashicons/#lock - or https://developer.wordpress.org/resource/dashicons/#edit combined with a kind of ""forbidden"" sign/strike, similar to https://developer.wordpress.org/resource/dashicons/#hidden " pixelverbieger 1 35650 title_reply_to should work when javascript is enabled Comments normal normal Future Release enhancement new 2016-01-28T21:51:05Z 2019-06-21T01:16:40Z "`title_reply_to` is a parameter in the `comment_form` function, and has even been around since 2.7 in the `comment_form_title` function, allowing you to display a different heading when replying to a comment, including who you are replying to. While a cancel comment reply link does appear, having a different heading is a very useful concept for making it clear to users exactly what they are doing. Except, nobody ever sees it because it only applies when javascript is disabled. Everybody* has javascript enabled. The javascript for replying to comments should be updated to change the heading based on this parameter. " smerriman 43183 wp-comments-post.php endpoint support for OPTIONS Comments normal normal Awaiting Review enhancement new reporter-feedback 2018-01-30T17:13:04Z 2019-07-01T12:24:37Z "Under some circumstance we may need cross-posting from one domain to another (without the wp-json API). At least lets preflight requests flow normally https://github.com/WordPress/WordPress/pull/338 " drzraf 1 41760 wp_list_comments callback params Comments normal normal Awaiting Review enhancement new dev-feedback 2017-08-30T18:44:15Z 2017-08-31T09:05:53Z "In `wp-includes/class-walker-comment.php`, methods `comment()` and `html5_comment()` have following order of @params: `$comment, $depth, $args`. However, when you try to modify comment markup using `callback` argument for `wp_list_comments()`, order of params is `$comment, $args, $depth`. Is it possible to make the same order of params?" milana_cap 1 57732 Add a filter for comment template block Comments 6.1.1 normal normal Awaiting Review feature request new 2023-02-16T10:01:03Z 2023-02-16T10:01:03Z "It would be good to be able to filter the block content when rendering comments in the comment template block. This would enable developers to inject content in / before / after specific comments. Ideally something like this on line 68 of /wp-includes/blocks/comment-template.php ... {{{#!php <?php /** * Filters each comment before being added to the comment template block * * @since 6.2.0 * * @param string $block_content The content of the comment block. * @param object $comment The comment object. */ $block_content = apply_filters( 'comment_template_comment_block_content', $block_content, $comment ); }}} Would this be possible? Thank you, Oliver" domainsupport 4 16252 Allow comment reparenting to fix poor threading Comments normal normal Future Release feature request new has-patch 2011-01-15T23:12:25Z 2023-11-23T06:26:37Z "For the OCD among us, it would be super nice to be able to edit the comment_parent, to properly thread comments made in the wrong place/threading order. Choose your own UI, but even just a numeric editor in the Quick Edit area would be a huge enhancement." Otto42 53038 Comment Moderation by Specific Post or Page Comments 5.7.1 normal normal Awaiting Review feature request new 2021-04-15T07:35:08Z 2021-04-15T07:35:08Z "At present the basic comment moderation system within WordPress seems to be largely an either on or off affair at the universal level. So, if I make a new post then all I can really do is apply those filters universally or turn comments on or off. The issue here is that, sometimes, specific posts can attract more problematic anonymous comments than others (we often know this in advance, but sometimes we only learn it later). What we really need is thus an extra option to enable manual comment moderation on specific posts and pages. In short, if this is enabled on a specific post, then any comment posted would require manual approval by an admin (or the post author) before being displayed. The 'Edit Comments' summary page may also require some additional categorisation in order to help display and order related comments, separate from others (maybe a 'Moderated Comments' option at the top next to 'Bin ()' etc.). Every other system I use for reviews, forums etc. has the ability to do things like this. But I have not found any dedicated or properly supported plugins to do it and believe that it should exist as a core feature." ispreview 19 40031 Consider Adding Web Annotations to WordPress Comments normal normal Awaiting Review feature request reopened 2017-03-04T05:20:30Z 2018-02-19T23:30:39Z "This is a strawman ticket published to generate discussion and hopefully concensus. The W3C has standardized [https://wptavern.com/web-annotations-are-now-a-w3c-standard-paving-the-way-for-decentralized-annotation-infrastructure Web Annotions] to decentralize annotations across the web ''(""annotations"" being a superset of commenting.)'' As WordPress' mission is to ''""Democratize Publishing,""'' and as WordPress is by far the most widely used tool for publishing content on the web that also allows other people to comment on said content, it would seem fitting ''(at least to me)'' that WordPress would empower users of WordPress to control their own annotations across the web, moving forward. How might to work? WordPress could offer three (3) new and yet related features: 1. Add enhancements to the commenting system to accept references to annotations. 2. Enable a WordPress site to be an ''""Annotation Server.""'' This would likely leverage the existing comment system where the comments could be associated with a new custom post type where each inidividual post could collection annotations for and represent one ""persona"" of a given registered user as well as how that persona could be presented to the outside world in the form of a URL that represents the user. 3. An ''""Annotate This""'' feature similar to ''""Press This""'' which can store annotations at the user's own WordPress site where the Annotate This UI could become the UI for commenting on all future WordPress websites (and potential non-WordPress sites) that offer feature 1. For those that doesn't offer feature 1 this UI could provide functionality to more easily transfer the comment to the foreign commenting system ''(such as copying it to the clipboard on user request)'' and possibly even implement commenting for specific well-known services ''(Twitter, Facebook, LinkedIn, Disqus, Medium, etc.)'' Note that some people's first reaction to this idea might be ''""that's plugin territory""'' -- which I can appreciate -- but there are four (4) reasons why I think this is core territory instead: 1. It is reasonable to assume that 80% of WordPress users would want to maintain their own comments in addition to their own posts, 2. This idea only really has benefits if it can become ubiquitous, e.g. If the 3 features are all available. If a plugin then an individual can only ever control one side of annotations thus dooming their implementation to obscurity. Note that a ''""Feature Plugin""'' slated for a future version of WP core is not ''""plugin territory""'' that I am arguing against. 3. It is a W3C recommendation, not some startup 3rd party service so it is likely to be adopted by many if not all of the web in the next few years. Why should WordPress not be the tool that helps define for the world how annotations should best be utilized, before some walled-garden like Facebook establishes the defacto-approach ahead of WordPress? 4. And finally, WordPress's mission is to ''""Democratize Publishing""'' and I cannot think of many other feature requests that are more ''""on-mission""'' than this one, Thoughts?" MikeSchinkel 3 47926 Disable website field in comment section Comments normal normal Awaiting Review feature request new 2019-08-23T06:03:40Z 2023-11-20T10:29:42Z "Hi, Please make it possible to hide website field in comment section. It is not useful at all. Just spammers post fake comments for link building. I know It can be hide via css code, but not all users know how to do that. And I noticed that the css code for hiding this field may not be the same for all themes. Thanks a lot" longman2020 4 44226 Link to Privacy Policy in comment consent Comments 4.9.6 normal normal Awaiting Review feature request new 2018-05-25T13:18:42Z 2021-10-29T09:31:19Z "Hi! It's possible add the url to privacy policy after consent in comments? Thank You!" paolobros 53040 Prune IP and Email Addresses from Comments After X Days Comments 5.7.1 normal normal Awaiting Review feature request new 2021-04-15T07:49:35Z 2021-04-17T21:19:05Z "In order to aid compliance with new data privacy laws (e.g. GDPR in the EU / UK etc.) we would like a new feature, which when enabled would automatically prune the IP and email address details attached (privately) to anonymous comments after X days. A simple settings field to set the number of days would be all that is required to enable it, while leaving the field blank would be akin to disabling the feature. I am conscious, from my own website, that retaining such details can be helpful when tackling spammers/bots. But I also tend to find that, after a few months, there is no longer any real benefit to retaining that data and in our legal privacy policy we'd like to reflect a time period for its retention. The site we have currently has a decade worth of email and IP details associated to past comments and much of that could really do with being removed. Sadly, there is no easy approach for this, without wiping the comment and display names out too. In an ideal world we'd probably set a 365-day (1 year) timer and comments older than that would lose their IP and email details. Alternatively, a way to partially obfuscate old IP and email address details would be another option. But retaining such data indefinitely is legally something that has become difficult to support." ispreview 52283 Reply to comments via emails Comments normal normal Awaiting Review feature request new has-patch 2021-01-12T17:51:17Z 2021-02-02T08:18:11Z "Following up the discussion I had with @AudrasJB about exploring this interesting feature (I understood it was discussed during latest development chat), here are the results of my searches/tests. ==== WordPress Core’s Post via email feature ==== [[Image(https://cldup.com/PdoTXB08-2.png)]] First, I remembered WordPress was including this feature: the first thing I did was testing it! NB: in order to test emails, I’ve set my local [https://gist.github.com/loziju/66d3f024e102704ff5222e54a4bfd50e Postfix configuration to use Gmail] as a relay). === My thoughts about the feature:=== 1. I was surprised we need to visit `site.url/wp-mail.php` to get the mails. I was expected a WP Cron task to be scheduled. 2. Sending an email with Gmail to the mail server is adding a post with a title but without content. 3. The `POP3()` class (in `src/wp-includes/class-pop3.php`) could enjoy some improvements and possibly use [https://www.php.net/manual/en/book.imap IMAP functions] if available into the WordPress server config. ==== Introducing a Comment via email feature ==== For the rest of this ticket, please note I chose a specific use case to run my tests: **Replying to a post author notification**. I believe this notification is a good first candidate for the feature, as post authors are not any given user of the site: the site has their emails and **we can control the post author email before inserting the comment reply to avoid the spam risk**. === Identifying the incoming email is a reply to a comment === I’ve explored if there was an email header available to transport some information from the post author notification to the reply sent to the Mail server used by the WordPress site. The only one available seems to be the `References:` one. [[Image(https://cldup.com/L5sdLdl4Sr.jpg)]] The format of this reference must be like this `<.*@site.url>`. Most of the time, we’ll get this reference and will be able to use it most of the time (75% according to my tests). So I’ve edited the `wp_notify_postauthor()` function to include references about the author, post and comment and override the `Reply-To:` header so that replies are sent to the WordPress mail server (the one we can set into the Settings > Writing > Post via email section). For the references, I tried to use a meaningful format, just like GitHub does: `<author_username/post-type/post-ID/comment-type/comment-ID@site.url>` === Extracting the comment reply interesting parts === This is the most difficult part of the feature. Some information are available into the reply email headers but we need to extract the content of the reply out of the email body (mostly multipart) and only it. It will require a lot of tests with different Email Softwares & Online services because there’s not a standardized way of delimiting the reply. I’ve tested with Apple Mail, Gmail (online), Outlook (online), GMX (online). I’ve looked for already existing parsing script on GitHub and found, to ease the job: - [https://github.com/daniele-occhipinti/php-email-parser Plancake Email Parser] (GPLv3) - [https://github.com/willdurand/EmailReplyParser EmailReplyParser] (MIT License) - [https://github.com/zbateson/mail-mime-parser MailMimeParser] (BSD 2-Clause “Simplified”) For my tests, I’ve decided to go with Plancake, even if I had to edit some parts of it, it was pretty easy to use. Using it, I was able to easily extract: - The author email (`From:` header) - The references about the author, the post, and the parent comment (`References:` header) - The reply date (`Date:` header) The only issue was with Apple Mail: the references are broken the site URL part is missing, so I had to fallback on the comment permalink (included into the quoted comment below the reply) and use a Regex to extract the parent comment permalink and validate this parent comment, the post and the author. For the body content, I was able to easily extract the plain text content of multipart emails or recreate it for `text/html` only emails (eg: GMX) using the `wp_kses()` function. But then, I had to use some complementary Regex to only get the reply text. My first target was the real `smtp.sender` email that is used by every tested Email services (Gmail, Apple Mail, Outlook, GMX) to inform when and by who the comment was made. As we don’t know what's the smtp.sender for sure (in my case it’s the Email I use to relay localhost to Gmail), I’ve used a Regex to search for **<**`emailformat`**>**. If not found I fallback to the first line of the quoted notification that looks like `> some translated text ""Post Title""`. Finally I’m looking for more than two hyphens (usually used over the email signature) or underscores (used by Outlook). All this is done into the `src/wp-mail.php` before the code used to post via email for simplicity. So if you plan to apply the attached patch to test, you’ll need to go to this url `site.url/wp-mail.php` to fetch commment replies made via emails. It’s working ! [[Image(https://cldup.com/w64Mz6V_cv.jpg)]] === My thoughts about the feature: === - It’s a great way to improve/promote try to bring back more conversations into WordPress comments - We should probably use 2 different Mail Server accounts if it is used to Post via email to take no risk a comment content might be wrongly used to create a post and vice versa. - According to the above point, an option to activate the feature could be added to the Discussion settings. Into the patch, I’m using a filter. - We should use a scheduled WP Cron Job to fetch emails. - We could take this opportunity to improve the `POP3()` class, I’ve tested IMAP functions and it’s easing the way to extract email parts (See [https://www.php.net/manual/en/function.imap-fetchbody.php imap_fetchbody]) - We should provide support the feature completely for post author notifications focusing on code to extract the comment content from emails and to insert comments. - We should include hooks to make it possible to use services like JetPack, Mailgun, Sendgrid or any other ones for huge site needs. The attached patch is there to have a first proof of concept. It should be improved. Thoughts, feedbacks & patch improvements are very welcome. 👋" imath 45 35214 Custom Comment Types Comments normal normal Future Release task (blessed) assigned 2015-12-24T00:28:11Z 2021-07-13T16:02:18Z "It's time to take another look at Custom Comment Types. We have a nice stable example in post types, but there's a '''lot''' to do here, so we'll use this as a centralized tracking ticket for everything. As such, I'm sure the description here will be fluid for a while as we figure out how much there is to do. Here's a rough list of things that need to be looked at and addressed: * UI/UX - In order for custom comment types to be really useful, we need to put some serious thought into the UI/UX surrounding comments in the admin. * The `comment_type` field needs to start using `'comment'` instead of `''` for comments. This will mean an upgrade routine as well as some back-compat work. * We need to decide what to do about non-default comment types in various admin areas (comments table, recent comments, etc). The thing that makes most sense is for `WP_Comment_Query` to be adjusted to only show default comment types (comments, pingbacks, and trackbacks) by default. Additional comment types would then be handled by whatever plugin or theme adds them. Unfortunately, this is a breaking change (comment:58:ticket:12668) because right now those areas show all comment types. Maybe we can create new management areas to be able to pull these out of the default one? Lets put our heads together. * A lot of existing functions, like `comment_type()`, will need to be fixed to make room for newly registered comment types and their registered strings. Previous tickets for history: #25674 #12668 " aaroncampbell 53927 Add test for _get_cron_array() Cron API normal normal Awaiting Review defect (bug) new has-patch 2021-08-13T21:14:16Z 2021-08-17T16:22:38Z pbearne 2 47590 Add unit tests for requests to wp-cron.php Cron API normal normal Future Release defect (bug) new needs-unit-tests 2019-06-22T13:51:07Z 2019-06-30T22:07:49Z "1. Ensure scheduled events are rescheduled correctly 1. Ensure single events are removed from the cron array 1. Ensure future events are not changed. 1. Ensure `doing_cron` transient is deleted." peterwilsoncc 2 57534 Cron events stop working after PHP 8.0 update Cron API 5.9 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-01-23T18:37:56Z 2023-08-08T16:18:52Z "Hello, I noticed that all wordpress cron events cease ruining upon migrating to PHP 8.0. When I change back to 7.4 the crdo events resume. " domagron 22 57271 Cron unschedule / reschedule event errors audrasjb Cron API 6.0 normal normal Awaiting Review defect (bug) assigned needs-unit-tests 2022-12-04T09:55:55Z 2024-03-07T01:04:44Z "Multiple users have reported errors since v6.0 across installs with completely different themes and plugins ... {{{ [09-Nov-2022 11:28:28 UTC] Cron unschedule event error for hook: do_pings, Error code: could_not_set, Error message: The cron event list could not be saved., Data: {“schedule”:false,”args”:[]} [09-Nov-2022 18:05:03 UTC] Cron unschedule event error for hook: wordfence_processAttackData, Error code: could_not_set, Error message: The cron event list could not be saved., Data: {“schedule”:false,”args”:[]} [21-Nov-2022 07:53:04 UTC] Cron reschedule event error for hook: wf_scan_monitor, Error code: could_not_set, Error message: The cron event list could not be saved., Data: {“schedule”:”wf_scan_monitor_interval”,”args”:[],”interval”:60} [21-Nov-2022 07:53:04 UTC] Cron unschedule event error for hook: wf_scan_monitor, Error code: could_not_set, Error message: The cron event list could not be saved., Data: {“schedule”:”wf_scan_monitor_interval”,”args”:[],”interval”:60} }}} There are many more examples on the support thread https://wordpress.org/support/topic/cron-unschedule-event-error-for-hook/ I have so far been unable to find a way to manually re-produce this issue but this is what I have discovered so far ... So this error happens when `wp_unschedule_event()` and `wp_reschedule_event()` fails. `could_not_set` error is presented by` _set_cron_array()` which is the return function for `wp_unschedule_event()` and `wp_schedule_event()`. `could_not_set` error is returned by `_set_cron_array()` when the updating of the cron table fails with `update_option( 'cron', $cron );`. `update_option()` fails when … 1) The `$option` parameter is empty This should never happen 2) The old option value is the same as the new option value This suggests the cron job is running more than once but may not be the only reason ... ? 3) The database insert query `$wpdb->update()` fails This is a bit worrying but shouldn’t be the case as surely there should be an accompanying database error? I think we can rule out (1) seeing as the `$option` parameter is never empty. We can maybe rule out (2) because from the thread above, this happens on high traffic sites as well as low traffic sites and on sites using the default wp-cron firing as well as cron fired by the system … ? The leaves (3) being the most likely cause of the ""bug"". I have tried to assign to @audrasjb (I hope that's OK to do?) because they added the commit on the 20th September that started to highlight the issue https://github.com/WordPress/WordPress/commit/84d19848666a81584e0007a6ab7f7ad3c990d71a I realise that this is not going to be easy to diagnose until the issue can be manually replicated but I think it should be looked into. Oliver " domainsupport 2 36082 Schedule post, not added to cron, shown as 'scheduled' in admin. Doesn't publish. Cron API 4.4.1 normal normal Awaiting Review defect (bug) new 2016-03-03T14:08:09Z 2019-06-04T18:13:40Z "Hello, We have an intermittent problem on a high traffic site. The issue is that occasionally, a post will be scheduled but not picked up in cron (we log whats in the cron). In the admin, it shows as being scheduled but obviously never posts because it's not actually present in the cron. What could make this happen? The site has about 20 users in the admin, with around 30 pageviews/second on frontend. (4 webservers etc)" dencreativeltd 6 39340 Scheduled Posts are being missed (problem with wp-cron.php?) Cron API 4.6.1 normal normal Awaiting Review defect (bug) new 2016-12-20T09:45:33Z 2020-04-03T14:39:45Z "Scheduled posts are missing their set time. This is not an issue with out server times, nor is it an issue with the cron jobs. I have seen that many other users are experiencing problems with this, but as of yet there has been no word from WordPress. Has this been fixed in 4.7? Or is this still outstanding? " remarkablemike 2 29581 Scheduled Posts do not work in WordPress 4.0 Cron API 4.0 normal normal Awaiting Review defect (bug) new 2014-09-08T04:56:28Z 2019-06-04T18:13:38Z "The post says ""missed schedule"" after the scheduled time has passed. We have to manually force the publishing by changing the date and updating from the admin. We've done it on installs with no conflicting plugin and replicated the issue on different installs as well. All show the same behavior. This was not the case through 3.9.2." pro99 1 34913 Unscheduling cron jobs fails when original arguments were not an array. Cron API 3.0 normal normal Awaiting Review defect (bug) new dev-feedback 2015-12-08T13:31:40Z 2021-09-02T05:39:24Z "The Cron API does not check whether the cron job arguments passed are an array when scheduling a cron job. This inadvertently allows for scheduling cron jobs with string, integer or other arguments. However when unscheduling the cron job using `wp_clear_scheduled_hook()`, the arguments are ''always'' cast to an array which leads to cron jobs which '''*can*''' be scheduled, but can't be '''''*un*'''''scheduled using `wp_clear_scheduled_hook()`. The `wp_clear_scheduled_hook()` does throw a `deprecated` notices when non-array arguments are passed in, but this will most of the time go unnoticed as this function is most often used in a plugin deactivation routine. The patch which I'm submitting makes sure that cron job arguments are always cast to an array. The patch is backward compatible in that it: * will not break the `schedule_event` filter for plugins (which are ''doing it wrong'') which expect their original non-array argument to test against. * will schedule all newly schedule events with array arguments independently of how the arguments were passed. * will upgrade the cron array to ensure that all arguments are arrays. The patch includes unit tests proving the existence of the bug and the fixing of it by this patch. As far as I can see, this bug was introduced by the changes in https://core.trac.wordpress.org/changeset/12462 and has been in WP since 3.0. The patching of this bug also brought to my attention *another* (ancient) bug where in the cron option upgrade routine `_upgrade_cron_array()` the array structure wasn't respected properly leading to `Undefined index: args` notices and the inadvertent removal of cron events which were scheduled on the same hook for the same timestamp with different arguments. That bug has also been fixed in this patch." jrf 3 51716 WP Cron - looses entries Cron API normal normal Awaiting Review defect (bug) new has-patch 2020-11-05T20:42:26Z 2020-11-24T11:47:00Z "Hello, I've been working with an external API for submitting orders from Woocommerce. To ensure the system is responsive I've been calling the scheduled events to save the orders to the API shortly after the order is submitted. I have noted that if items are saved at the same time. One of the events will not be saved. This appears to be caused by the cron task being build around a single database record (object), and in many cases would be completely fine, but is not reliable when being used in any great capacity. I understand my use-case isn't potentially what this was designed for, but there is room for improvement with the scheduled events to ensure reliability. I'm not 100% sure if I'm correct here, but it also appears that these tasks are also run when subsequent web requests are made, is there any current normalized interface for setting this up to run via an OS cron task or similar. To ensure other visitors requests aren't slowed down by checks (small) and events being activated (potentially slow). " Nate1 2 55556 WP cron daily issue Cron API normal normal Awaiting Review defect (bug) new 2022-04-11T08:36:02Z 2022-04-11T08:36:02Z "In wordpress, a day is defined as having 24 hours: wp-includes/default-constants.php: define( 'DAY_IN_SECONDS', 24 * HOUR_IN_SECONDS ); but that doesn’t take summer/winter time into account of course. While it is being stated above the definition that these values are approximate and are provided for convenience, the DAY_IN_SECONDS is being used in the “daily” cron definition. This means - in case of DST - if you plan something to happen daily at midnight (say membership status recalc, half of the year it will happen one hour later/earlier (depending on the day you planned it initially). So, in order to be sure something happens daily “as soon as the new day starts”, you need to plan it at 01:00 at the earliest to be sure it is always on the same day (in case of DST). Since the fixed wp schedules are in fact “fixed”, why not have them calculate “daily” as the DateTime function “+1 day”? The same goes for weekly, monthly, yearly. The basic schedules could even be thrown away and WP could e.g. translate 'daily' to '+1 day' on the fly. I know WP cron doesn’t run exactly the moment you want it (unless you use system cron), but if running something “daily” at around midnight and it causes it to be ran at 23:00 instead, you might be giving people an extra free day entrance (again for memberships). Moreover, getting rid of ""schedules"" and moving cron to its own database table would be even better (planning a recurring action should not require the need for a schedule definition via a filter, but use ""last executed time"" + the recurrence definition in datetime notation as a cron-definition). But this last remark is a whole other discussion, so not for this issue (but I would be willing to invest time in this to help develop it)." liedekef 5 11800 doubled execution of cron jobs westi Cron API 2.9.1 normal normal Future Release defect (bug) new dev-feedback 2010-01-07T11:17:53Z 2021-04-04T10:34:28Z "Hi, as I've already mentioned in ticket #11505 , cron-jobs occasionally get executed twice (e.g. daily backup arrives two times). I've changed the code according to the patch attachment:ticket:11505:ticket-11505-stop-gap.patch (which derives from [http://wpengineer.com/ping-problem/]) after my comment:ticket:11505:49 and had no doubles within this time period. This week I've upgraded to WP 2.9.1 and since then backups arrive two, sometimes three times, again. Looking at the changes from 2.9 to 2.9.1, I have no other explanation for this behavior. - Maybe we should consider having a closer look again on this patch attachment:ticket:11505:ticket-11505-stop-gap.patch . Greetz, Berny" neoxx 57589 transition_post_status hook does not fire when cron publishes scheduled post. Cron API 6.1.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-01-30T22:32:39Z 2023-01-31T20:16:19Z "Ever since the most recent 6.1 update, a critical hook of ours is not firing any more. We have a custom cache clearing plugin that clears the nginx, redis and Cloudflare cache for a bunch of our landing pages. It runs on our site when a post's status changes from from 'future' to 'publish', from 'publish' to 'trash' or when a post is originally published of updated. We use the transition_post_status hook to trigger these cache clears. Everything was working great until the 6.1/6.1.1 updates. After the wp 6.1 update, the manual publish/update operations done directly using the wp-admin work fine, but when our cron runs to publish a scheduled post the transition_post_status hook does not fire at all. But here is the most curious thing... the ""publish_future_post"" cron job is not created when we schedule a post for the future. The function check_and_publish_future_post() uses this cron job to decide what posts need to be published, but the cron job never appears in my action scheduler or in my events tab of the wp-control plugin. So that mean that the wp_publish_post() function does not run, and the filter hooks don't fire. But the post DOES publishes as expected on the wp-cron. It is beyond weird, and i cant figure it out. Here is what I have done and tested thus far: I have tested all of the following hooks: none of them work either: - transition_post_status - future_to_publish - future_post I am using a manual cron fired from my ubuntu server, and I have confirmed my cron is firing using an output.log, and I can also confirm that other wp-cron jobs are running as as normal. I have tried both a conventional wget 'doing_wp_cron' and a wp-cli cron jobs, and both fail (see examples below): - * * * * * wget -q -O - --no-check-certificate https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1 - * * * * * cd /path/to/www; /usr/local/bin/wp cron event run --due-now >/dev/null 2>&1 In order to get back to where we were, I have had to spin up my own cron that publishes future posts myself, so I have solved this issue on my end, but I cannot be the only one experiencing this, so I thought that I would submit this information for your review, thanks!" tele2rn 56490 wp-cron.php using count() on null Cron API 6.0.2 normal normal Awaiting Review defect (bug) new 2022-09-01T16:47:36Z 2022-09-04T12:35:06Z "WE're using PHP 8.0 and the latest version of WordPress (6.0.2), we tried with all plugins disabled and the default theme enabled and we're having this fatal error happening every minute: {{{ PHP Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in wp-includes/class-wp-hook.php:292 }}} Here's the stack trace: {{{ #2 wp-cron.php(138): do_action_ref_array('wp_privacy_dele...', NULL)"",""Thu Sep 01 2022 18:37:06 GMT+0200 (Eastern European Standard Time)"" #1 plugin.php(524): WP_Hook->do_action(NULL)"",""Thu Sep 01 2022 18:37:06 GMT+0200 (Eastern European Standard Time)"" #0 /nas/content/live/bbgsstaging/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters('', NULL)"",""Thu Sep 01 2022 18:37:06 GMT+0200 (Eastern European Standard Time)"" }}} It looks like the default WordPress core hook ""wp_privacy_delete_old_export_files"" is causing this error. We excluded this hook but then ""wp_version_check"" caused the same fatal error. This issue also happens when on PHP 7.4, but on 7.4 it's just a warning, but it's also occurring. We're happy to provide additional information or access to our staging site if needed." Bishoy.A 60657 wp_schedule_event problem Cron API 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-29T08:44:32Z 2024-02-29T08:59:37Z "In some cases there are some problems with wp_schedule_event. It schedule the event, if we use wp_next_scheduled, it gives a timestamp, but using WP Crontrol, it doesn't appear there. Below some code to reproduce it. If you click on the button, it will schedule 500 events. Wait a bit, that 100 or so are processed (look at the logs or use WP Control to check). Then click again. The logs show that they should have been schedules, there is a timestamp and the transient is created. But it's not really scheduled, it doesn't appear with WP Control, and the transient is not deleted (for the 2nd round) {{{ if (!class_exists(""NSM_Test_Cron"")) { class NSM_Test_Cron { function __construct() { add_action('admin_menu', array($this, 'my_custom_button_menu')); add_filter('cron_schedules', array($this, 'cron_schedules')); add_action('nsm_test_cron', array($this, 'nsm_test_cron')); } public function cron_schedules($schedules) { if (!isset($schedules['nsm_60_seconds'])) { $schedules['nsm_60_seconds'] = array('interval' => 60, 'display' => '60 Seconds'); } return $schedules; } function my_custom_button_menu() { add_menu_page('My Custom Button', 'Custom Button', 'manage_options', 'my-custom-admin-button', array($this, 'my_custom_button_page')); } function my_custom_button_page() { error_log('my_custom_button_page'); if (isset($_POST['action']) && $_POST['action'] == 'myaction') { error_log('my_custom_button_page action'); for ($index = 0; $index < 500; $index++) { $args = array(array('email' => 'toto@foo.org', 'user_id' => '1234', 'tags' => $index)); if (!wp_next_scheduled('nsm_test_cron', $args)) { $error = wp_schedule_event(time(), 'nsm_60_seconds', 'nsm_test_cron', $args, true); set_transient( 'doing_cron_' . $index, $index ); error_log('error -> ' . print_r($error, true)); error_log(""wp_next_scheduled ($index)-> "" . print_r(wp_next_scheduled('nsm_test_cron', $args), true)); } } } ?> <div class=""wrap""> <h2>My Custom Button</h2> <form action="""" method=""post""> <input type=""hidden"" name=""action"" value=""submit_my_custom_form""> <?php wp_nonce_field('my_custom_form_nonce'); ?> <input type=""text"" name=""my_custom_data"" placeholder=""Enter some data""> <input type=""hidden"" name=""action"" value=""myaction""> <input type=""submit"" class=""button button-primary"" value=""Submit""> </form> </div> <?php } public function nsm_test_cron($args) { $error = wp_clear_scheduled_hook('nsm_test_cron', array($args)); error_log('nsm_test_cron -> ' . $args['tags']); sleep(1); delete_transient( 'doing_cron_' . $args['tags']); } } } new NSM_Test_Cron(); }}}" odoremieux 1 52655 Ability to Change the wp_next_scheduled() function output. Cron API normal normal Awaiting Review enhancement new has-patch 2021-02-25T15:04:10Z 2021-02-28T23:48:55Z "If I want to replace WP Cron with the Action Scheduler Library it is necessary to change the wp_next_scheduled() function output by overriding it using a filter to use as_next_scheduled_action() function. {{{ function wp_next_scheduled( $hook, $args = array() ) { $next_event = wp_get_scheduled_event( $hook, $args ); if ( ! $next_event ) { return false; } return apply_filters( 'wp_next_scheduled', $next_event->timestamp, $next_event, $hook, $args ); } }}} If we use 'pre_get_scheduled_event' filter, it will also override the default Cron functions. So that I think 'wp_next_scheduled' is necessary." infosatech 2 35491 Add a function to check whether a hook is scheduled Cron API normal normal Future Release enhancement reopened has-patch 2016-01-17T04:46:47Z 2019-06-04T18:11:28Z "I'm working with a plugin that calls `wp_schedule_event()` with an unpredictable value for `$args`. Sometimes it would be helpful to know whether this plugin's event is scheduled, but because I can only guess at `$args`, I can't always detect it with `wp_next_scheduled()`. The attached patch attempts to address this scenario with a function that checks only whether a hook is scheduled, regardless of its `$args`. " dlh 58470 Add configurable batching to `wp_scheduled_delete` for controlling cleanup operations Cron API 6.3 normal normal Awaiting Review enhancement new 2023-06-06T22:08:46Z 2023-06-07T14:17:17Z "When posts are trashed, they are automatically cleaned up by the `wp_scheduled_delete` wp-cron task. However, both the frequency that this cron task runs and the number of posts that can be cleaned up at once time lack configurability. Imagine a shop which has more than 100,000 orders: trashing thousands or tens of thousands of them at once could cause the website to become unresponsive when it comes time to clean up the trash. I suggest adding two constants: ||= Constant Name =||= Default Value =||= Description =|| || `EMPTY_TRASH_SCHEDULE` || `daily` || The cron schedule on which the trash scheduler runs. This is useful for increasing the number of times the cleanup process runs when using batching to delete many posts. || || `EMPTY_TRASH_BATCH_SIZE` || `50` || The maximum number of posts to delete at once. || It may also be useful for these and `EMPTY_TRASH_DAYS` to have filters to improve cleanup operations overall." johnrom 60645 Add pre-fire hook for cron Cron API trunk normal normal Awaiting Review enhancement new has-patch 2024-02-27T12:38:20Z 2024-02-27T12:42:17Z "Followup to https://core.trac.wordpress.org/ticket/56048 https://core.trac.wordpress.org/changeset/54258 This adds an additional hook before every cron event to allow for custom code to run before a cron hook Use cases: - custom error checking (e.g. if a cron even has no callbacks,...) - load libraries/functions/classes that are only needed for a specific number of cron events and would otherwise slow down the site/cron - this hook allows you to handle multiple at once which is useful for e.g. dynamic hook names or for cases where you need to run it for a number of hooks (instead of adding 100 add_action with same callback) " kkmuffme 3 49693 Drop duplicate recurring cron events whyisjake* Cron API 5.4 normal normal Future Release enhancement accepted has-patch 2020-03-24T19:03:36Z 2021-01-31T21:54:52Z "It's easy to break a site by mistakenly scheduling millions of events because of a typo or a bad check. Here's one example: https://wordpress.org/support/topic/error-in-addcustomcronschedule-degrades-site-performance/ In the past, I've also seen plugins use `get_option` and all kinds of different checks, instead of `wp_next_scheduled`. Fixing the site afterwards can be a bit of a PITA, specially for high traffic ones. DB replication is often an issue when the `cron` option grows in size due to the bug. It's probably a good idea to prevent scheduling recurring events that have the same hook, schedule and args. Additional thoughts: - This might make the `wp_next_scheduled` check obsolete when queuing an event? - Changing the arguments of `wp_schedule_event` isn't something I wanted to do, but considering the current code for reschedule/unschedule in `wp-cron.php`, it seemed the best route (case of missing schedule, and trying to get interval from the event that we're rescheduling). - We're currently doing this with a `schedule_event` filter. Another route could be to add it to `default-filters`, but I think it should be in the Cron API itself." aidvu 1 43801 Need better documentation to show importance of checking for args while using wp_schedule_event and wp_next_scheduled Cron API normal normal Future Release enhancement new has-patch 2018-04-18T15:47:51Z 2021-01-29T12:44:57Z "While the user notes https://developer.wordpress.org/reference/functions/wp_next_scheduled/#user-contributed-notes do relay the importance. I believe it is important that the documentation also be more clear about the issue. When coded incorrectly something like {{{ function schedule_my_event(){ if ( ! wp_next_scheduled( 'myevent' ) ) { // This will always be false wp_schedule_event( time(), 'daily', 'myevent', array( false ) ); } } add_action('init','schedule_my_event'); }}} It's potentially disastrous for a site. The cron value in the options would keep on increasing until the database could no longer withstand it. So keeping that in mind I feel the documentation for both wp_next_scheduled and wp_schedule_event should highlight this point more." digamberpradhan 40161 Wrong documented or coded 'schedule_event' filter Cron API low normal Future Release enhancement reopened 2017-03-15T12:39:06Z 2019-01-08T03:28:43Z "https://core.trac.wordpress.org/browser/trunk/src/wp-includes/cron.php#L41 says that $event parameter should always be an object. But the following code allows to terminate script only when passing ""false"" values to filter ("""", array(), null, 0 or false), whereas checking false as object will produce error. The documentation should be changed to force check isset( $event->hook ) when using this filter, otherwise the filter should be changed to something like this {{{#!php <?php $event = apply_filters( 'schedule_event', $event->hook, $event ); if ( ! $event->hook ) return false; }}} " esemlabel 3 28635 Add status codes and hooks to wp-cron.php chriscct7 Cron API normal normal Future Release feature request reopened has-patch 2014-06-25T18:06:05Z 2023-07-14T11:09:06Z "I've been debugging a site problem which turned out to be one of the cron actions resulting in a memory limit breach, and so PHP did a fatal error in the middle of the cron loop. (It's a high-traffic site so it has `DISABLE_WP_CRON` with system cron pinging wp-cron.php every minute.) There is currently very little debugging hooks provided in `wp-cron.php` to help diagnose why and where a scheduled event hook is failing. Some ideas for how `wp-cron.php` could be improved to facilitate debugging (and also to help with general logging): * Return a status message pinpointing at which point `wp-cron.php` exited * Return relevant HTTP status codes * Allow `die` behavior to be overridden, similarly to how `wp_die()` is used elsewhere * Add hooks before before and after each level in the triple-nested crons loop. " westonruter 6 50781 500 error caused by customize_changeset_uuid for non-authenticated users Customize 4.7 normal normal Future Release defect (bug) new needs-unit-tests 2020-07-27T08:40:21Z 2023-02-25T05:22:45Z "Hello, I have noticed that if a non-authenticated user visits a URL containing the following get parameter: `?customize_changeset_uuid=SOME_ID_HERE` WordPress returns 500 error. There should be no reason to allow bots to flood someones Apache log with 500 errors by simply adding a get parameter. If a user is not authenticated and they add the `?customize_changeset_uuid=ID_HERE` parameter they should either be redirected or the get parameter should be ignored rather than getting a 500 error. Thanks for the consideration. " bacardy4 45168 Additional CSS complains of markup inside CSS comments Customize 4.7 normal normal Future Release defect (bug) new 2018-10-24T20:17:17Z 2021-05-30T19:36:39Z "When adding CSS to a site via Appearance > Customize > Additional CSS, the syntax validator will complain if it finds markup regardless of it being inside a /* */ comment. Steps to replicate: 1. Go to Admin > Appearance > Customize > Additional CSS 1. Add a comment with some markup in it `/* this is <a> markup test */` 3. Hit Publish 1. See attached error message - but note that no indicator as to what line contains the markup appears. The only workaround is to remove the markup from the comment. Ideally the syntax validator should not care about anything in CSS comment blocks." useStrict 46540 Admin bar CSS shouldn't be added in the customizer Customize 4.5 normal normal Future Release defect (bug) new dev-feedback 2019-03-16T19:42:48Z 2021-05-30T19:49:09Z "I was playing with the Customizer selective refresh and noticed that the admin bar class WP_Admin_Bar doesn't check if the user is in the Customizer, thus it may add the 46px top margin and whatnots even if there is no admin bar. So to reproduce the bug, create a partial where the `render_callback` has wp_head() in it. " nabil_kadimi 1 38573 Ajax requests in customizer controls don't inject customized state as done in preview Customize normal normal Future Release defect (bug) assigned 2016-10-30T21:01:04Z 2017-01-21T17:19:51Z "In the customizer preview, Ajax requests now get the `customized` state injected via `jQuery.prefilter`. In the customizer controls pane, however, this was not also implemented. This is important to ensure that that requests to the REST API will return back the expected previewed state. Also relates closely to #38122." westonruter 54252 Appearance - Customize : Only widgets is displayed in the customizer options using Safari 15.x Customize 5.8.1 normal normal Awaiting Review defect (bug) new 2021-10-13T02:33:50Z 2021-10-19T14:18:17Z "This is the main issue that is obvious. When selecting Appearance - Customize, only the Widgets option is displayed when using Safari 15.x on iOS or macOS devices. The issue appears in other places, am continuing testing to verify. This occurs using a clean 5.8.1 installation with 2021 theme installed. No other plugins installed or active. No browser extensions are installed or running. This also occurs on ipadOS 15.x " archteryx 57521 Appearance -» Customize not working after update 5.8 Customize normal normal Awaiting Review defect (bug) new reporter-feedback 2023-01-21T17:47:59Z 2023-02-22T18:11:18Z "The appearance -» customize is not working after wordpress update to version 5.8 and above. The only thing that appears in the info is ""your are customising"" but the menu and submenus doesn’t appear or load. I tried to uninstalled all plugins, used the default themes (Twenty Twenty 2.1 and Twenty Twenty-One 1.7) but it still doesn’t work. I tried on versions 5.8, 5.9, 6.0 and 6.1. Only in version 5.7 it working normally! In the server is installed PHP version 7.4. Thanks for the help!" va2m 57899 Bad javascript in customize-controls.js for padding-top causes bugs Customize normal normal Awaiting Review defect (bug) new reporter-feedback 2023-03-09T23:06:44Z 2023-03-21T16:38:35Z "The code for sections ""Release header element if it is sticky."" and ""Reset position of the sticky header."" is very bad old code and should be coded in a more modern way now. This code causes bugs in many situations and should either be eliminated all together and replaced with modern css only/instead or improved javascript to not include a forced css for padding-top." akissz 2 43444 CSS Editor Error Not Displaying Correctly Customize 4.9 normal normal Future Release defect (bug) new reporter-feedback 2018-02-28T22:55:14Z 2019-12-05T04:48:01Z "Every time I’m making a change in the custom CSS I get this annoying message that should only appear when I’m ready to publish changes. When I click publish and there’s errors, that’s when this notification needs to appear. I get it when I’m in the process of editing CSS and it always throws off my position when and I lose the location of where I was editing. It’s even worse when Inspect Element is pulled up. It should ONLY be giving me an error message when I’m going to publish the CSS changes. It’s literally notifying me of errors when I’m not finished editing the CSS. When I click “Publish” it needs to be notifying me of errors and then to confirm, not make me lose my placement and give me an error when I’m not even finished writing out what I need to… Screen capture: https://www.youtube.com/watch?v=cWyD4cYfpEA" nistuj817 55954 CSS editor marks some lines as errors even though they're perfectly fine Customize normal normal Awaiting Review defect (bug) new 2022-06-09T12:38:17Z 2022-06-09T13:32:17Z "I keep getting error messages in the WP CSS Editor in Live view for pieces of code which are perfectly fine, even according to a CSS3 validator. E.g.: {{{ .post-content a:not(.tags a){ text-decoration: underline; } }}} It's kinda annoying. Please update it to relevantly mirror CSS versions and standards." zikamatej 53925 CTRL + S does not “publish” customizer changes Customize normal normal Awaiting Review defect (bug) new 2021-08-13T18:18:54Z 2021-08-13T20:38:01Z "If I edit post or page and press CTRL + S on my keyboard, it will publish (or save) the content BUT if I’m using the WP Admin > Appearance > Customizer and press the same hotkey nothing works. p.s. - can visit thread here: https://wordpress.org/support/topic/ctrl-s-does-not-publish-customizer-changes/" vondelphia 1 25333 Can't remove theme support for certain custom header arguments Customize 3.4 normal normal Awaiting Review defect (bug) new has-patch 2013-09-16T18:10:17Z 2017-02-14T18:44:16Z "While working on a ticket I tried to `remove_theme_support` the `custom-header` feature and add it back with a different default image, which did not work. Removing theme support *does* remove the feature array from the features global, but adding anything back resurrects the old values ignoring the new ones for: * header-text * height and width * default-text-color * default-image This seems to be happening because of the back-compat code that works with the older constants. It defines the constants if they were not defined, and uses the values next time `add_theme_support` is called, bringing back the values from the first call to `add_theme_support`. The workaround would be to not use `remove_theme_support` and instead call `add_theme_support` with the needed values *before* the call you're trying to override, which was sort of intended for child themes, because they run earlier, so this issue is far from major, but still lame. Run this during theme setup to reproduce: {{{ add_theme_support( 'custom-header', array( 'default-image' => '%s/foo.png', ) ); var_dump( get_theme_support( 'custom-header', 'default-image' ) ); // foo.png remove_theme_support( 'custom-header' ); add_theme_support( 'custom-header', array( 'default-image' => '%s/bar.png', ) ); var_dump( get_theme_support( 'custom-header', 'default-image' ) ); // expected bar.png but got foo.png }}} Excuse my debugging skills ;)" kovshenin 49421 Cannot use conversion specifications in `theme mod` default values Customize 5.3 normal normal Future Release defect (bug) new 2020-02-12T17:50:26Z 2021-09-26T03:07:44Z "This is a follow-up to #34290. With the fix [46395] it is no longer possible to have a `theme_mod` which is itself a format string and has a default value which includes a conversion specification, e.g. {{{#!php \printf( \get_theme_mod('site_copyright', 'Copyright %%1$s; all rights reserved.'), \get_bloginfo('name', 'display') ); }}} With a double `%%`, the default string is now unchanged, but with a single `%` it is replaced with the ‘template directory’ URL. It is now no longer possible to achieve the desired `%1$s` in the default string. Also, where the default is something like `100%`, the code supplying the default value to `get_theme_mod` now needs to test the WordPress version to know whether it should pass `100%` or `100%%`. A fix might be for the `sprintf` code path also to be followed if the string contains a double `%%`. Or revert the change (so that the behaviour of `get_theme_mod` is more clearly defined as it was before - i.e. the default value is a format string and literal `%` signs need escaping as `%%`) and find another solution to the initial problem. " jqz 3 39891 Chrome rendering issue with Customizer, widgets, and checked radios Customize normal normal Future Release defect (bug) new dev-feedback 2017-02-16T16:38:59Z 2021-05-29T16:56:54Z "Steps to reproduce: - Open up Chrome (at least on Mac, have not tested on PC) - Open up the Customizer - Edit any sidebar - Add any widget '''that contains at least one radio field that is checked''' - Reduce the height of the browser window until a vertical scrollbar appears in the pane Once the vertical scrollbar appears, the entire pane vanishes. Upon further investigation, it appears to be Chrome ""max-width paint"" type issue. Basically, the checked radio element sets a `text-indent` of `-9999px` on the `:before` item to hide the browser rendered checkmark. It seems that this expands the width of the painted area very very far to the left (outside the visible window). I say this because if you mess around with the indent by lowering it, eventually the bug disappears. You can even see the right side of the painted area vanish (screencast attached showing this below). Here's some CSS changes I tried that fixed it: - Lower the text-indent to something higher (as in smaller negative number) than about `-8000px` - Set the `.widget` element position to `static` (previously set to `relative`) Here's some screencasts: Detailing how to create the bug: [[Image(http://d.pr/i/WEil+)]] Example showing why I think it's some sort of ""max paint width"" rendering issue: [[Image(http://d.pr/i/gLzq+)]] Example showing how setting the `position` on the `.widget` item to `static` fixes things: [[Image(http://d.pr/i/4P9a+)]]" joelworsham 51093 Custom CSS output runs through the wrong filter for custom user role Customize 5.4.1 normal normal Future Release defect (bug) new 2020-08-21T12:15:08Z 2020-10-26T21:14:31Z "I added a custom user role, which is able to see the Custom CSS in the Customizer. As soon as a user with such a role publishes the Customizer settings, the Custom CSS gets filtered through the wrong filter. This wasn’t the case in WordPress < 5.5 and is a new issue. My created user role: {{{#!php <?php function add_custom_role() { add_role( 'custom', esc_html__( 'Custom' ), array( 'update_core' => false, 'update_plugins' => false, 'update_themes' => false, 'activate_plugins' => false, 'edit_plugins' => false, 'edit_themes' => false, 'delete_plugins' => false, 'delete_themes' => false, 'switch_themes' => false, 'create_users' => false, 'edit_users' => false, 'delete_users' => true, 'edit_files' => true, 'edit_theme_options' => true, 'export' => false, 'import' => true, 'list_users' => true, 'manage_options' => true, 'remove_users' => true, 'edit_dashboard' => true, 'customize' => true, 'unfiltered_html' => true, 'delete_others_pages' => true, 'delete_others_posts' => true, 'delete_pages' => true, 'delete_posts' => true, 'delete_private_pages' => true, 'delete_private_posts' => true, 'delete_published_pages' => true, 'delete_published_posts' => true, 'edit_others_pages' => true, 'edit_others_posts' => true, 'edit_pages' => true, 'edit_posts' => true, 'edit_private_pages' => true, 'edit_private_posts' => true, 'edit_published_pages' => true, 'edit_published_posts' => true, 'manage_categories' => true, 'moderate_comments' => true, 'publish_pages' => true, 'publish_posts' => true, 'read' => true, 'read_private_pages' => true, 'read_private_posts' => true, 'upload_files' => true, 'copy_posts' => true, ) ); } add_action( 'init', 'add_custom_role' ); }}} Tested CSS: {{{ body > a { color: #fff; } }}} Actually CSS output: {{{ body < a { color: #fff; } }}} The data is stored correctly in the database, so it doesn’t seem to be a problem during the save function but rather during the output. Tested with WordPress 5.5 and Twenty Seventeen theme." kittmedia 46128 "Custom header ""Hide image"" button not displayed when randomizing images via theme setup" Customize 3.4 normal normal Awaiting Review defect (bug) new has-patch 2019-01-28T16:10:39Z 2019-12-11T21:33:31Z "**DESCRIPTION** When registering multiple [https://codex.wordpress.org/Custom_Headers custom header] images via theme code, and setting them to randomize (by enabling `random-default` custom header attribute), there is no ""**Hide image**"" button displayed. But the image should be displayed even in this case. The only way to enable ""**Hide image**"" button is to set `default-image` attribute during custom header registration in the theme code. But this actually effectively disables images randomization... ---- **HOW TO TEST/REPRODUCE** Append this code to Twenty Nineteen theme's `functions.php` file (without opening `<?php`) to test - see the code comments for more details: {{{#!php <?php function test_custom_header_hide_button() { /** * Registering custom header support. * * The issue description: * ====================== * When 'default-image' is set, there is ""Hide image"" button * displayed in ""Header Image"" section of customizer. But now * the 'random-default' does not work. * On the other side, if 'default-image' is not set, ""Hide image"" * button is not displayed in ""Header Image"" section of customizer * when we have 'random-default' enabled. * In both cases the ""Hide image"" button should be available. * * How to test: * ============ * Simply (un)comment the 'default-image' to see the difference * in ""Header Image"" section of customizer. * But do not save/publish your customizer as we are testing * how the theme code is treated in customizer! */ add_theme_support( 'custom-header', array( // 'default-image' => 'https://via.placeholder.com/1000x200/000099/ffffff?text=Image+default', 'random-default' => true, // Irrelevant, but required options: 'height' => 200, 'width' => 1000, ) ); // Registering some images to randomize from: register_default_headers( array( 'image-1' => array( 'url' => 'https://via.placeholder.com/1000x200/990000/ffffff?text=Image+1', 'thumbnail_url' => 'https://via.placeholder.com/250x50/990000/ffffff?text=Image+1', 'description' => 'Image 1', ), 'image-2' => array( 'url' => 'https://via.placeholder.com/1000x200/009900/ffffff?text=Image+2', 'thumbnail_url' => 'https://via.placeholder.com/250x50/009900/ffffff?text=Image+2', 'description' => 'Image 2', ), ) ); } add_action( 'after_setup_theme', 'test_custom_header_hide_button' ); // Display the custom header in theme footer for preview: add_action( 'wp_footer', 'the_custom_header_markup' ); }}} ---- **SCREENSHOT** [[Image(custom-header-setup-via-theme.png)]]" webmandesign 43074 Custom site identity Crop Image function does not work for images smaller than 512px Customize 4.9.1 normal normal Future Release defect (bug) new 2018-01-11T22:52:34Z 2021-05-30T17:20:37Z "Site Identity image. After the image source is selected, crop image popup window arises. Then the image is shown in a crop frame, but crop function does not work as crop frame does not react to mouse. Wordpress 4.9.1 Firefox 57.0.4 64 Internet Explorer 11.192.16299.0" obermeister8080 56825 Customiser colour picker and popups broken in 6.1 RC1 Customize normal normal Awaiting Review defect (bug) new reporter-feedback 2022-10-14T15:10:39Z 2022-10-18T08:35:55Z "When using the customiser, and selecting a colour, using a colour picker, in the 6.1RC1, the colour selector hovers under the page, rendering it badly, and making it hard to make changes within the colour picker. Here is how it looks in 6 https://www.bathroom-images.com/wp-content/uploads/2022/10/Wordpress_6.png Here's how it looks in 6.1 https://www.bathroom-images.com/wp-content/uploads/2022/10/Wordpress_6__RC1.png As you can see, it's obscured by the scrollbar, making the editing of colours impossible. It seems to happen to all of the popups for editing things in the customiser, killing usability. https://www.bathroom-images.com/wp-content/uploads/2022/10/typography_6_1_RC1.png Showing a typography selector drifting offscreen to the left, making it unusable. I noticed this issue in Gutenberg releases before, when testing, so it's somewhere inside the Gutenberg part of the code. Sorry I'm not technical enough to identify the cause." tecazwebdev 2 42046 Customize Themes: Clarify active and previewed themes Customize 4.9 normal normal Future Release defect (bug) new 2017-09-30T19:40:09Z 2018-01-15T18:05:32Z "The current active (live) theme is displayed first in the installed themes list, but not necessarily with anything indicating that it's active. The current previewed theme (in the current customize session) gets different styling and a ""Previewed:"" prefix on its name in the installed themes view. Let's clarify which theme is being previewed and whether it's active by highlighting it in the sidebar. Follow-up to #37661." celloexpressions 1 39475 Customize doesn't consider the hash in the URL after change Customize 3.4 normal normal Future Release defect (bug) new 2017-01-05T03:42:15Z 2021-05-24T03:03:41Z "When I open a page that has a hash in the URL, in the Customize, the behavior wasn't the expected. At least for me. The preview Iframe is loaded in the first time with the hash. But after a setting update, using the refresh transport, the hash disappear. Customizer URL /wp-admin/customize.php?url=http%3A%2F%2Flocalhost%3A8080%2F%23hide-entry-screen First preview Iframe href /?customize_changeset_uuid=e041a773-41df-4fcb-a800-01fa3249233d&customize_theme=senplo&customize_messenger_channel=preview-0#hide-entry-screen Second preview Iframe href (after a change) /?customize_changeset_uuid=e041a773-41df-4fcb-a800-01fa3249233d&customize_theme=senplo&customize_messenger_channel=preview-1 I debugged the customize JS scripts and saw that in the line 796 of the wp-includes/js/customize-preview.js file is set the frame URL. It come from api.settings.url.self value. I cannot identify where this value is the. In a quick test, I concatenated the hash with the URL and the second Iframe was loaded with it." edpittol 2 40272 Customize: Account for media queries in l10n.css Customize normal normal Future Release defect (bug) new 2017-03-27T07:48:03Z 2017-10-03T17:00:48Z "Noticed while working on #40271 / #40152. `wp-admin/css/l10n.css` contains some locale-specific CSS adjustments, some of them for the customizer. For example: {{{ .locale-de-de #customize-header-actions .button { padding: 0 5px 1px; /* default 0 10px 1px */ } }}} Now, that default is correct — as long as you are not using the Customizer on a smaller device. There, the default padding is `6px 14px`, not `0 10px 1px`. On an iPhone 6, that de_DE specific CSS looks like this: [[Image(https://cldup.com/8Zl2SQwmIT.png)]] As you can see, there's a clear lack of top and bottom padding." swissspidy 42873 Customize: Allow themes to be installed when SFTP credentials required Customize 4.9 normal normal Future Release defect (bug) new has-patch 2017-12-11T19:07:31Z 2018-01-15T18:46:31Z "Split out from #42184. Next steps: - Revert [41997] - Use [https://core.trac.wordpress.org/attachment/ticket/42184/42184.2.diff 42184.2.diff] - Fix the two known bugs: incorrect labels after cancelling the modal, and fix broken buttons after cancelling the modal Note that with [https://core.trac.wordpress.org/attachment/ticket/42184/42184.2.diff 42184.2.diff], SFTP appears to work as expected. The only issues are with canceling the modal, which happens much more in testing than in practice. [41997] seems like an overreaction to the minor bugs that we need to track down with that, which may seem worse than they are because they are more apparent in a testing workflow than in real usage. Either way, the fixes for that should not be particularly difficult. I'm not planning on working on this issue further, so someone else can take it on." celloexpressions 42614 Customize: Changesets can still be previewed even after having been published Customize 4.7 normal normal Future Release defect (bug) new 2017-11-18T00:44:05Z 2019-01-21T03:56:34Z "Steps to reproduce: 1. Change the site title to “First Changeset” 2. Save Draft. 3. Open frontend preview link in a new tab and see “First Changeset” as site title. 4. Back in Customizer tab, publish the changes. 5. Change the site title now to “Second Changeset” 6. Publish the changes. 7. Go back to the frontend preview in the other tab and reload. Bug: notice the first changeset is still able to be previewed even though it it is published (or rather, trashed, since in core a published changeset by default is immediately trashed for garbage collection if revisions support is not enabled). Note however that if you click the “Customize” link in the admin bar from the published changeset frontend preview, you'll land on the Customizer with an error (from [https://github.com/WordPress/wordpress-develop/blob/b424eecd0b255537ec3b7d87f8096d8158f92aae/src/wp-admin/customize.php#L77-L84 customize.php]): > This changeset cannot be further modified. It seems something similar should be done for changesets on the frontend. I can see a case for why being able to preview a changeset with a `publish` status could be useful. For example, if revisions are enabled for changesets, it could indeed be useful to preview an old published changeset to see old changes re-applied. However, when a published changeset goes straight to trash, these do not seem they should be able to be previewed. Should attempting to preview a trashed changeset be silently ignored or should there be an error message like when accessing `customize.php` with a trashed changeset?" westonruter 39913 Customize: Disable auto-trashing of published changesets in anticipation of revisions Customize 4.7 normal normal Future Release defect (bug) new 2017-02-18T22:29:08Z 2021-05-29T17:10:47Z "When changesets were introduced in 4.7 (via #30937), we decided by default to auto-trash a `customize_changeset` post upon publishing. The reason for this is that there was no UI for changesets and there would be no way to clean up old revisions from the UI, meaning the posts would just be added indefinitely. However, with revisions being planned for 4.8 being planned for in #31089 and #21666, it would perhaps be beneficial to disable the auto-trashing behavior so that once revisions support ''is'' added the revision history won't be empty. Nevertheless, even with changesets not being auto-trashed, there would still be [https://core.trac.wordpress.org/ticket/21666#comment:33 challenges] with reverting to a previously-published changeset: > == Challenges of Reverting to a Previously-published Changeset == > > Reverting to a revision of a changeset is easier than reverting to a previously-published changeset. When reverting to a revision of the current changeset, all this means basically is to reset the settings to match the state of the changeset at that revision. However, reverting to a previously-published changeset is more complicated/interesting. Take this changelog: > > 1. January 1st: User changes site title to “Foo”. > 2. January 2nd: User changes site tagline. > 3. January 3rd: User changes site title to “Bar”. > > Now, if the user clicks the changeset revision for January 1st, my assumption is that this will restore the site title of “Foo”. However, will it also include a revert of the change made to the tagline on January 2nd? Each changeset only contains the settings that were modified, so as it stands right now we would not know what to revert the tagline to since it's previous value is not captured. Whenever a changeset is about to be published, we could capture the current value for each setting prior to saving. This would allow us to roll back all of the changes made to the site between two published changesets. The process would involve walking over the previous changesets to gather up a list of the previous values and merge them and apply them to the current changeset for previewing. > > Complication: What about when a user makes a change to the tagline ''outside'' of the customizer? In that case the tagline would not be referenced in any changeset, and reverting to the changeset on the 1st would only rollback the site title. Would this be expected behavior?" westonruter 5 40831 Customize: Further improve JS inline documentation Customize normal normal Future Release defect (bug) new has-patch 2017-05-21T07:22:33Z 2019-01-14T06:45:08Z "We need to do another pass on the customizer code to ensure that inline documentation is added to JS. This is building on #27534, #27065, #21303, #39671 among others. The main files that need to looked at are: - `customize-base.js` - `customize-loader.js` - `customize-models.js` - `customize-preview.js` - `customize-preview-nav-menus.js` - `customize-preview-widgets.js` - `customize-selective-refresh.js` - `customize-views.js` Related to #39930" grapplerulrich 42872 Customize: Improve display of theme tag filters on mobile Customize 4.9 normal normal Future Release defect (bug) new 2017-12-11T19:04:32Z 2017-12-11T19:04:32Z "Split out from #42212. The filter bar disappears on screens shorter than a magic number (or narrower than a different, also magic number), unless you scroll all the way up to the top (quite difficult with one-column infinite scroll of themes). I don't happen to use this feature on any devices that would be affected by this problem, but the experience is quite subpar for those users currently. I'm guessing there might be some issues with CSS caching in the above screenshots, or, those that worked on the previous changes in this ticket may have a better idea of why certain browsers don't like something here. Probably worth exploring before 4.9 release if anyone is able to do that, though." celloexpressions 1 39091 Customize: Nav menu item controls should be inactive when items are excluded from preview Customize 4.3 normal normal Future Release defect (bug) new 2016-12-05T20:44:48Z 2017-01-15T23:03:48Z Plugins can exclude nav menu items from displaying in nav menus in a plugin like Nav Menu Roles. This is similar to how widgets can be conditionally excluded from sidebars via a plugin like Jetpack's Widget Visibility module. This is currently implemented for widgets, where a widget that is not shown in the preview will have its control's `active` state set to `false` (causing it to become partially-opaque rather than fully hidden). Something similar should be done for nav menu item controls that are excluded from the preview. westonruter 11 39128 Customize: Preview fails to load when domain mapping in use (home/siteurl domain mismatch) Customize 4.7 normal normal Future Release defect (bug) assigned 2016-12-07T00:12:58Z 2017-10-20T13:38:44Z "When the `home` URL and the `siteurl` have different domains, in 4.7 the preview shows the error message “Non-existent changeset UUID.” The reason is because the user is (probably) not authenticated on the frontend, and so the user cannot `customize` and since the changeset doesn't exist yet the user blocked from accessing the site. (The thought here is that the UUID serves as a unique key which would allow an unauthenticated user to access the preview if they knew it, though this wouldn't do any good for users who are previewing a theme switch since `switch_themes` capability is required regardless in that case). Note that the issue goes deeper when `FORCE_SSL_ADMIN` is enabled because the browser's cross-domain security policy blocks the preview frame altogether (in 4.7). Nevertheless, even as far back to 4.3 (at least) when attempting to access the customizer with the frontend (`home`) domain mapped to another domain from the backend (`siteurl`), the preview loads with a login form and submitting the form just results in the form being re-displayed indefinitely. The user can never advance past it. So cross-domain customizer preview seems to be broken prior to 4.7 as well. Note that the issue likely does not manifest in domain mapping plugins which dynamically change the `home` option (such as WordPress.com), as they do it conditionally based on whether or not the customizer is bootstrapped." RomainVB 6 40199 Customize: collapse suggested and previously uploaded header images with accordions Customize 3.9 normal normal Future Release defect (bug) new close 2017-03-18T22:23:12Z 2019-12-02T17:59:49Z "The custom header image control takes up quite a lot of space, which is why header videos are, somewhat confusingly, placed before the image control. We could improve this by collapsing the suggested and previously-uploaded images by default, making the headers/labels expandable/collapsable. That would allow larger image collections here without taking up too much space. Alternatively, other ways to show these collections should be considered, such as in the media modal. Eventually, we'll want this UI pattern to be able to expand to be used in other media controls." celloexpressions 2 42078 Customize: fix the color hue picker HTML and accessibility Customize 4.7 normal normal Future Release defect (bug) new has-patch 2017-10-03T21:57:49Z 2018-09-26T14:56:35Z "The hue color picker control used in the Customizer, for example with Twenty Seventeen, has an empty `<label>` element and incorrect markup: [[Image(https://cldup.com/tjBoOqM20j.png)]] the actual markup: {{{ <div class=""customize-control-content""> <label> <span class=""screen-reader-text""></span> <input class=""color-picker-hue"" type=""text"" data-type=""hue"" style=""display: none;""> <div class=""iris-picker iris-only-strip ... >{ rest of the iris color picker here}</div> </label> </div> }}} - the label is actually empty - it should not wrap the hidden input field and should use for/id attributes as per the WordPress accessibility standard - the iris picker should not be inside the label - the hidden input field should not be hidden, and should be used as an alternative way to enter a hue value Worth noting the normal color picker does use an input field as alternative to make sure everyone, with any device or ability, can enter a value: [[Image(https://cldup.com/syZnWhJHkC.png)]] " afercia 39352 Customize: menu widgets have two edit shortcuts Customize 4.7 normal normal Awaiting Review defect (bug) new 2016-12-20T22:59:37Z 2021-05-24T02:47:23Z "r39622 fixes the edit shortcut for menus inside widgets, but that still leaves two edit shortcuts for those partials, generally with one on top of the other. Right now the menu shortcut is on top of the widget shortcut, so I was thinking it might be worth while to hide one, but I wonder which one is the better experience for users? Clicking on the menu shortcut brings up the editor for that menu. [[Image(https://cldup.com/7lTAzaHguo.png)]] Clicking on the widget shortcut brings up the widget settings, which allow changing which menu is displayed there. [[Image(https://cldup.com/mWvyLgbTc1.png)]] It seems to me that both could be what a user might be looking for, but I think we can really only have one. Since you can click the ""Edit Menu"" button to get from the widget settings to the menu settings and not the other way around, I suggest we hide the menu shortcut, but I'm open to a dissenting opinion. cc: @folletto and @melchoyce for a UX perspective Split from #39101 " sirbrillig 3 39665 Customize: nav menu fallbacks don't get edit shortcuts Customize 4.7 normal normal Future Release defect (bug) new has-patch 2017-01-22T22:40:36Z 2017-10-18T19:52:19Z "`wp_nav_menu()` defaults to showing a menu of pages when no menu is set in a location. This is usually the case when a user first switches to a new theme. Since content is shown in the menu, I would expect to see an edit shortcut to be able to change what menu is displayed. But there isn't one. This is likely a bit of a technical challenge, but should be possible since the menu location is still there. There is a full refresh when switching a location to have an actual menu, so it's likely a matter of adding selective refresh support for menu fallbacks." celloexpressions 2 32577 Customizer QUnit tests not cleaning up dlh Customize 4.3 normal normal Future Release defect (bug) reviewing has-patch 2015-06-07T08:54:03Z 2022-07-19T16:29:49Z "Ideally everything should be removed from the DOM after the test or module is done. For now we can hide it to the left instead of top, it just moves down again as more tests are added." iseulde 31980 Customizer Theme Switcher Details Modal: previous/next/close buttons require double taps on IOS Customize 4.2 normal normal Future Release defect (bug) new reporter-feedback 2015-04-15T14:33:53Z 2021-05-22T20:12:17Z "Per comment:34:ticket:31794, there's an issue where double taps are required to trigger the previous/next/close buttons in the theme details modal. " DrewAPicture 33267 Customizer Theme details: too many events Customize 4.2 normal normal Future Release defect (bug) new has-patch 2015-08-04T23:28:42Z 2021-05-23T17:49:12Z "This happen just in the Customizer Theme details modal, not in the Themes screen. To reproduce, go in the Customizer and press the ""Change"" button next to the Active Theme title. Choose one of the themes in the left sidebar and press the ""Theme Details"" button. When the Theme Details modal opens the first time, there's just one `keydown` event attached to the theme overlay: [[Image(https://cldup.com/66ZTntnIuP.png)]] Now, navigate forth and back clicking on the next and previous arrows in the top left to see more themes details. After 10 times, there will be 10 `keydown` events attached: [[Image(https://cldup.com/kNtc6D9dsy.png)]] And so on and on, after 15 times, 15 `keydown` events attached, etc.: [[Image(https://cldup.com/5tgfv95ieb.png)]] What's happening? Every time next and previous are clicked, `api.ThemesSection.showDetails()` will replace the html in the modal to show the new details and it will also call each time `api.ThemesSection.containFocus()`. Then, `containFocus()` will attach a new `keydown` event each time it runs :( and it will also run each time jQuery UI `:tabbable`. At the end, after you navigate a few times in the Themes Details and then you tab inside the modal, it's very easy to run `:tabbable` literally hundreds of times for each ""Tab"" key press. Notice all this doesn't happen in the Themes screen because the div where events are attached to gets completely replaced by jQuery `html()` which removes also any data and events. This is not the case in the Customizer where events are attached to the theme overlay div which doesn't get replaced. To my understanding this should be refactored a bit: * attach the `keydown` event just once, in the attachEvents() function * split containFocus() in two separate functions: * a simplified containFocus() to just check the event keys and move focus * a new getTabbables() to get the tabbable elements just once for each theme details. * store the tabbables in a variable to be updated with getTabbables()" afercia 1 36911 Customizer and Theme Installer spinners should have different z-index Customize 4.5 normal normal Future Release defect (bug) new has-patch 2016-05-22T17:25:39Z 2021-05-23T20:07:43Z "My bad, I think this has to do with some previous changes I've made on these spinners. Looks like after [36518] the ""loading"" spinner in the Customizer is hidden, at least in some browsers. While the spinners used in the Customizer and in the Theme installer are basically the same and so the CSS rule for them was grouped in just one rule in [36518], I think the only CSS property that has to be different is `z-index`. As far as I see, the Theme installer needs a value of `-1` but this will hide the spinner in the Customizer so it has to be `0` here. The fix would be trivial but I'd greatly appreciate some testing to confirm the issue, in different browsers." afercia 1 48902 Customizer code editor CSS breaks on activate() (Or breaks when loaded later) Customize 4.9 normal normal Awaiting Review defect (bug) new has-patch 2019-12-06T13:37:55Z 2019-12-11T06:43:00Z "I've added css editor via {{{ WP_Customize_Code_Editor_Control() }}} which is hidden by default with provided active_callback. When activating control via JS in Customizer ex: {{{ wp.customize.control('my_custom_css').activate(); }}} it shows, but CodeMirror CSS is broken. " vukvukovich 2 38967 Customizer display Menus, although the theme not support menus Customize 3.9 normal normal Future Release defect (bug) new 2016-11-28T12:56:53Z 2021-05-24T02:55:36Z The Customizer display the panel ''Menus'', although the theme not support widgets or menus. elisa-demonki 1 49009 Customizer header overlaps top of preview at small screen sizes Customize 5.3.1 normal normal Awaiting Review defect (bug) new has-patch 2019-12-17T10:19:20Z 2023-06-07T13:56:08Z "Hi, Design issue in customize.php on Twenty Twenty theme when preview page. For more information sees mention screenshot. Thanks" sumitsingh 33139 Customizer on mobile: 'Save & Publish' button may overflow when translated. Customize normal normal Awaiting Review defect (bug) new dev-feedback 2015-07-27T12:50:16Z 2021-05-23T17:46:38Z iseulde 2 40183 Customizer strange slide out Customize 4.7.3 normal normal Awaiting Review defect (bug) new 2017-03-17T12:23:52Z 2021-05-29T17:18:28Z Don't know how to say it right what it looks like. Strange customizer behaviour when selecting text input or when clicking anywhere and dragging to the right. halftones 54063 "Customizer: First autosave after publish moves you out of the ""Block Settings"" area" Customize normal normal Awaiting Review defect (bug) new 2021-09-02T19:11:59Z 2022-01-03T21:48:03Z "Inside the customizer, I can open the widget section and edit blocks using gutenberg. For any block, I'm able to use the 3 dots menu and choose ""Show more settings"" to access Gutenberg's ""Block Settings"" area. Here, I may want to make several changes, like changing the text color, the background color, and the font size. However, in some circumstances, after making a single change, I'm taken out of the ""Block Settings"" area for seemingly no reason. I've found that certain plugins and themes can make this happen on more occasions (for example, on every autosave instead of only the first), but I have steps to recreate on a completely new, out of the box install using `wp-env`. As of now, this is 5.9-alpha-51726. My gutenberg repo is on da052f066b0f from 2021-09-02. Steps to reproduce - Cloned https://github.com/WordPress/gutenberg - Cd into it and `wp-env destroy && wp-env start` to create a clean WP - Visit http://localhost:8888/wp-admin/ and login with admin:password - Appearance -> Customize in sidebar menu - Widgets in sidebar menu - Plus sign button to create a new block, select paragraph block, type ""hello"" into it - Click on the block you just added to see the floating gutenberg bar - Click the three dots menu then select ""Show More Settings"" - Change the text color - Click 'publish' - Click on the block you just added to see the floating gutenberg bar - Click the three dots menu then select ""Show More Settings"" - Change the text color - Expect to see: Remain in the ""Block Settings"" area - Actually see: You are taken out of the block settings area Video: https://user-images.githubusercontent.com/937354/131900785-c9f3e678-349d-43fa-9862-ba712740ed03.mp4 This has something to do with Autosave in conjunction with [https://github.com/WordPress/wordpress-develop/blob/40edc2addb5284804e698beda487206f8dd70992/src/js/_enqueues/wp/customize/controls.js#L7207-L7216: this code] from the customizer. I remove the line `api.state( 'saved' ).bind( updateSectionActive );`, the bug no longer happens. I am confused why it happens sometimes and other times it does not. However, my steps to reproduce should always work. The reason this is an issue is when using blocks with complicated interfaces in this section, it becomes very difficult to use in the customizer, since potentially every change can bring you back and force you to choose ""... -> Show More Settings"" before doing more work." mreishus 5 29040 Customizer: Header Image not Updating when using static front page Customize 3.9 normal normal Future Release defect (bug) reopened 2014-07-27T15:56:39Z 2019-11-29T21:07:37Z "Using WordPress 4.0 Beta 2. Steps to reproduce: only happens if theme has default header image (with twenty fourteen) - Open Customizer - Open Header image section - Click on previously uploaded, theme default, or new uploaded image - current header updates in customizer controls and preview - changing header image activates the save and publish button, but after pressing it and closing customizer the header image is not changed - when returning to the customizer the newly uploaded image is not present, however it does appear in the media library - after switching themes and the switching back all images do show up (in another theme which has several default images and no header text) - Open Customizer - Open Header image section - Click on previously uploaded, theme default, or new uploaded image - current header updates in customizer controls - customizer preview does not update image, even after triggering a preview refresh with another control - changing header image activates the save and publish button, but after pressing it and closing customizer the header image is not changed Tried on Google Chrome and Safari on both Windows and Mac Is not always reproducible with every theme, inconsistent results." zhalsey 5 38954 Customizer: Increase preview refreshBuffer (perhaps with decay) when making rapid changes such as via text inputs Customize 4.6.1 normal normal Future Release defect (bug) new 2016-11-26T21:53:32Z 2021-05-31T16:30:52Z "Editing menu item fields (label, description, etc.) currently triggers preview refreshes with every keystroke (the Ajax requests are aborted when a subsequent request is triggered with the next keystroke). Usually menus support selective refresh, but that isn't always the case; and regardless, previewing should be debounced to a few hundred ms. This may have existed at some point, or may have been an oversight in 4.3. Confirmed that the behavior exists on 4.6.1, so not a recent 4.7 regression." celloexpressions 1 43168 Customizer: Iris color picker handle above section title Customize normal normal Future Release defect (bug) new 2018-01-27T18:58:05Z 2019-12-16T00:49:42Z "When Iris color picker is opened, the handle displays bevor the section title – if section is visible during scroll-up. Section title styles: {{{ #customize-controls .customize-info.is-in-view, #customize-controls .customize-section-title.is-in-view { z-index: 9; } }}} Handle styles: {{{ .iris-picker .iris-square-handle { z-index: 10; } }}}" crstnio 5 22037 Customizer: Live preview fetches page but does not display (show error message) Customize 3.4.2 normal normal Future Release defect (bug) new 2012-09-28T15:14:54Z 2021-05-22T18:03:28Z "I just set-up a plain installation of 3.4.2. Configured it for multisite use. Set-up two sites, both working fine. When going into a sites Appearance settings to customize the theme (TwentyEleven), the Customizer shows the control panel on the left, but the preview remains blank. Firebug shows no Javascript errors. '''It also shows, that a POST request is sent to fetch the front page and that the page is actually returned in the response. It appears the response is just not added to the right-hand preview area.''' ---- Per duplicate #28227: > When Customizer can't load due to an error, there's no indication as to what's going on. It would be nice if some information was presented instead of seeing a blank screen on the right side." marcoliverteschke 1 32667 Customizer: autofocus should load as soon as the panel/section/control is active Customize 4.3 normal normal Future Release defect (bug) new 2015-06-17T06:06:18Z 2020-11-29T16:34:19Z Currently, autofocusing waits until the preview loads fully, which can take quite a while on a lot of pages and themes. Widgets need to wait for this to determine whether they should be activated, but for most other sections, we should be able to autofocus as soon as the Customizer controls finish loading. For menus, this would shave seconds off of the percieved loading time of the Customizer. See https://make.wordpress.org/flow/2015/06/14/menus-in-the-admin-and-the-customizer-ux-flow-performance-comparisons/. celloexpressions 6 33085 Customizer: controls description inside labels are not real labels nor descriptions Customize 4.2 high normal Future Release defect (bug) reviewing 2015-07-22T22:45:01Z 2023-11-14T04:54:29Z "Splitting this out from #32493 (which changed its scope) I'd propose to investigate about the Customizer controls descriptions. Currently, they're inside the label element. The result is they're not a proper form label, since labels should be short. Longer descriptions should be associated with form controls using `aria-describedby`. As consequence for accessibility: as soon as a form control is focused, its label gets read out. In the following example from the new ""Site Icon"" functionality in 4.3, all the text highlighted in the blue box will be read out but the actual button text ""Select File"" won't. [http://www.w3.org/TR/html5/forms.html#category-label Buttons can have labels], that's correct HTML, but of course the label text will override the button text. Not to mention all the label text is clickable and will activate the button when clicked. [[Image(https://cldup.com/YrBf73CbMo.png)]] Same for input fields, the control description used as label will be read out as... a label. [[Image(https://cldup.com/cgetk_WbNT.png)]] Related: #31540" afercia 2 42329 "Customizer: interacting with text fields in a ""wide"" widget shifts child panel position in Safari." Customize 4.7 normal normal Future Release defect (bug) new has-patch 2017-10-24T23:06:54Z 2021-11-30T01:15:35Z "When a widget is defined as ""wide"" in the widget construct, there's a sudden shift of the ""widgets"" panel in the customizer when there's any interaction with a text field. This was observed in Safari Mac, versions 11 and 13 (latest). I've used WordPress 4.9-beta3-41983, but this happened also in 4.8.2. This bug was detected while I was using the Black Studio TinyMCE Widget plugin: https://br.wordpress.org/plugins/black-studio-tinymce-widget/. I have tested also with a simple widget plugin, and found the same bug. On both WordPress installations, the Twenty Seventeen theme was active, and there was just two plugins active: the test widget plugin and Black Studio TinyMCE Widget plugin. * Here's a video showing the bug: https://www.dropbox.com/preview/Screen-Recording-2017-10-24-20-39-12.mp4?share=1 * The widget plugin used in the test is here: https://dl.dropbox.com/s/thmywibr3fd2d1x/widget-test.php.zip" pagelab 1 36442 Customizer: when setting header image and site logo, also create a 2x image if possible Customize 3.9 normal normal Future Release defect (bug) new 2016-04-07T15:46:44Z 2017-01-24T18:49:45Z Currently after cropping an image for a header image or site logo, we make only smaller sizes images with the same ratio. These sizes are used (automatically) in srcset. We also need to make a 2x size for use on high density displays, if the original image is large enough. azaozz 4 36441 Customizer: when setting header image, site icon and logo, do not force the user to crop the image if cropping is not required Customize 4.3 high normal Future Release defect (bug) new 2016-04-07T15:33:28Z 2022-07-20T21:18:04Z "This is a long time standing UX ""weirdness"". When using ""the Cropper"" in the Customizer, it forces the user to crop the selected image even when it only requires scaling. To reproduce: - Open the Customizer and go to setting a site icon. - Upload an image that is square, I tested with 800 x 800px. We require 512 x 512px image for site icon, so the uploaded image only needs to be scaled. However on the next screen there is no ""Skip cropping"" button. If the users wants to use the whole image, they will have to ""crop"" it at 100% x 100% to get to the next step. " azaozz 1 60236 Customizer’s Widget's component should only be loaded when not using a Block Theme Customize 5.9 normal normal 6.6 defect (bug) new has-patch 2024-01-11T23:53:34Z 2024-02-27T11:54:58Z "Hi, The BuddyPress plugin has a feature to customize the notification emails it sends when users interact. This feature uses the Customizer from the WP Admin context only. When the current theme is a Block Theme, previewing/customizing notification emails is generating this Warning notice: `PHP Warning: Attempt to read property ""title"" on null in /path/to/wordpress.develop/build/wp-includes/class-wp-customize-widgets.php on line 905` After some search into the `WP_Customize_Manager` class I noticed, although these kind of themes do not use the `widgets` component all corresponding Customizer controllers were loaded although this was not necessary. Disabling the Customizer `widgets` component using the `'customize_loaded_components'` filter removed this Warning notice, so I could use this from BuddyPress when these kind of themes are active on sites. But I believe WordPress should only make the Customizer's widgets component available when the active theme is not a Block theme as BuddyPress might not be the only plugin to use the Customizer even if a Block theme is the active one." imath 1 51522 Customizing : Site Icon CSS Change Customize normal normal Awaiting Review defect (bug) new dev-feedback 2020-10-14T17:11:21Z 2021-06-01T17:59:24Z "When image not exits on provided path display css issue. Please review bellow screenshots. Issue : [[Image(https://prnt.sc/uzb75e)]] Solution : [[Image(https://prnt.sc/uzb622)]] " ravipatel 54443 "Database Error Breaks ""custom_css_post_id"" Theme Mod" Customize 4.7 normal normal Future Release defect (bug) new 2021-11-15T11:41:06Z 2023-05-18T09:27:08Z "We have now seen this issue on a couple of WordPress installations and it is rare but it happens. When MySQL falls over during a page load (for RAM issues or whatever) the request on line 1863 of **/wp-includes/theme.php** ... {{{#!php <?php $post_id = get_theme_mod( 'custom_css_post_id' ); }}} ... fails or it might be line 1866 ... {{{#!php <?php $post = get_post( $post_id ); }}} ... that fails. Either way, when line 1877 is executed and the database has by then recovered ... {{{#!php <?php set_theme_mod( 'custom_css_post_id', $post ? $post->ID : -1 ); }}} ... this results in the **custom_css_post_id** theme mod being set to -1 and all the Additional CSS is seemed to be wiped out from the Customizer. At this point the content of the post with post_type set as custom_css in the database has to be copied back into ""Customizer - Additional CSS"". Here is an example of a PHP error around the time that this happened ... please note that we have seen it happen on completely different themes and most recently on the latest version of WordPress (yesterday) ... {{{ [24-Feb-2021 20:46:45 UTC] WordPress database error Server shutdown in progress for query SELECT * FROM wp_posts WHERE ID = 2213700 LIMIT 1 made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/plugins/wp-property-feed/templates/archive-wppf_property.php'), get_header, locate_template, load_template, require_once('/themes/twentyseventeen/header.php'), wp_head, do_action('wp_head'), WP_Hook->do_action, WP_Hook->apply_filters, wp_custom_css_cb, wp_get_custom_css, wp_get_custom_css_post, get_post, WP_Post::get_instance }}} To fix this issue from re-occuring I think that **set_theme_mod** on line 1877 is replaced with ... {{{#!php <?php if ($post) { set_theme_mod( 'custom_css_post_id', $post->ID ); } }}} ... so that the theme mod cannot be broken and CSS cannot be lost when the database has a blip. What do you think? Oliver" domainsupport 3 39487 Default to 'transport'=>'postMessage' for a setting associated with a selective refresh partial noisysocks Customize 4.5 normal normal Future Release defect (bug) reviewing has-patch 2017-01-05T18:44:52Z 2020-11-13T05:32:14Z "As a WordPress developer, it can be confusing when registering a selective refresh partial to a setting doesn't work because I've omitted `'transport'=>'postMessage'` for the setting. When registering a selective refresh partial to a setting, I'd expect `'transport'=>'postMessage'` to be set dynamically for the setting." danielbachhuber 3 42075 Do not show default image on using WP_Customize_Cropped_Image_Control. Customize 4.2 normal normal Future Release defect (bug) new 2017-10-03T15:28:41Z 2021-05-29T18:19:17Z "Add New Control use WP_Customize_Cropped_Image_Control. Do not Show default image. But show Default button. When click the button, nothing happens. Instead of using WP_Customize_Image_Control, Show image. {{{#!php <?php function foo_customize_register( WP_Customize_Manager $wp_customize ) { $wp_customize->add_section( 'theme_options', array( 'title' => __( 'Theme Options' ), ) ); $wp_customize->add_setting( 'custom_image', array( 'default' => get_parent_theme_file_uri( '/images/default-header.jpg' ), ) ); $wp_customize->add_control( new WP_Customize_Cropped_Image_Control( $wp_customize, 'custom_image', array( 'label' => __( 'Upload an Image' ), 'section' => 'theme_options', 'width' => 1920, 'height' => 1080, ) ) ); } add_action( 'customize_register', 'foo_customize_register' ); }}} " Toro_Unit 46969 During customize theme - preview body/icons get cuts on left side Customize 4.7 normal normal Awaiting Review defect (bug) new dev-feedback 2019-04-18T07:45:12Z 2021-05-30T19:53:46Z "Hello, While we customize the theme from admin dashboard (Dashboard > Appearance > Customize), the preview body gets cut from the left side resulting the icons to be not displayed properly in iPod landscape and portrait mode. " shashank3105 1 43585 Dynamically created setting not received on previewer Customize normal normal Future Release defect (bug) new reporter-feedback 2018-03-20T14:38:12Z 2019-12-15T04:40:24Z "I try to create dynamic setting & control on customizer, but setting is not propagated on previewer when setting created. Setting that dynamically created will only available on previewer when previewer refreshed. i create a simple plugin to explain this issue : https://gist.github.com/jegbagus/e6bfe04fe45f4fa91b1fdc1c3b5b7a89 please take a look at browser console to see the message" jegbagus 1 52208 Favicon - Error when choosing / cropping an image Customize 5.6 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-01-03T11:47:53Z 2022-05-05T07:33:08Z "Hi, Steps to reproduce (using either Firefox or Chrome, latest versions in both cases): - WordPress 5.6 (Theme Twenty Fourteen 3.0) - Go to change the favicon of your theme - Select any image in the media library Two issues happen from here: - If your image is already 512x512px then nothing happens, you can not choose the image, you get stuck in the media library. - If your image is not already a square one, you can crop it but when hitting ""crop"", an error shows up (and no issues appear in the debug console) => https://i.ibb.co/sgqhHsx/Word-Press-Favicon.jpg I'm not sure if this issue is related to WordPress 5.6 or if it was already there before 5.6. I'm also not sure if the theme might be related to this issue as I haven't tested other themes. Thank you for your help. BR, Stephane." stfa76 57170 Fix invalid menu-item-parent Customize normal normal Future Release defect (bug) new reporter-feedback 2022-11-21T23:16:13Z 2024-02-05T20:37:38Z "Follow up to #56926. There seems to be a bug in the Customizer that may set `$menu_item->menu_item_parent` to be the same as `$menu_item->ID`. Steps to reproduce: https://core.trac.wordpress.org/ticket/56926#comment:21. There also seems to be a related JS error: {{{ Uncaught TypeError: parentControl is undefined .../wp-admin/js/customize-nav-menus.js?ver=6.2-alpha-54642-src:2330 }}} " azaozz 54184 HTML entities get decoded in Customizer text fields Customize 5.8.1 normal normal Awaiting Review defect (bug) new 2021-09-26T00:19:10Z 2021-09-26T00:19:10Z "= Part 1 1. Use `WP_Customize_Manager::add_setting()` and `WP_Customize_Manager::add_control()` to create a `text` setting/control with the default value `©`; 2. Navigate to the newly added setting in the Customizer. == Expected Result The literal text `©` is in the edit box (as specified for the default value). == Actual Result A copyright symbol (`©`) is in the edit box. = Part 2 1. Enter the text `&` in the above edit box (replacing what was there); 2. Publish (save) settings; 3. Reload the page and navigate to the setting once again. == Expected Result The literal text `&` is in the edit box (as originally entered). == Actual Result Only a single ampersand symbol (`&`) is in the edit box. = Note Same results if the setting is given type `textarea`. Whatever is entered into text controls, or provided for a default value, should be preserved as is. The WordPress Customizer has no knowledge of how it is going to be used and should not make presumptions that it is going to be used in HTML output. " jqz 44968 Header Text color option doing two jobs, so both suffer Customize normal normal Awaiting Review defect (bug) new dev-feedback 2018-09-19T20:39:00Z 2020-11-04T06:09:37Z "There are two issues, both of which have been addressed before. #23761, #22498 The Header Text color option and the Display Site Title and Tagline option use the same storage space (theme_mod), so there is no way to hide the title and use the color for other header text, and when the title is unhidden the color is (sort of) the default. Steps to reproduce: 1. In Customizer, note the header text color for comparison later. 2. Hide the site title. 3. Save and exit the Customizer. 4. Open Customizer and unhide the site title. 5. Look at the header text color and compare to value from step 1. What I expect: 1. The header text color could be used for other header text besides the site title. Hiding the title should not hide the color selection. 2. The color set before the title was hidden should be restored when the title is unhidden. What actually happens: 1. The color option is used to indicate the visibility of the site title, so the color is set to 'blank'. 2. Other text in the header cannot be styled with the header text color if the site title is hidden. 3. When the site title is unhidden, the header text color option shows a color for the swatch that is the default color, but the text input box is empty and the color indicator shows black (as if it were 0). Or just set the color of the header text, hide it, unhide it, and the color you chose is gone. I think it should be two separate options for color and hiding. I don't know how that would affect backward compatibility, but it is the best solution." joyously 50060 Header Video: Use playVideo after mute instead of autoplay to prevent video blocking because of autoplay with sound enabled Customize normal normal Awaiting Review defect (bug) new 2020-05-02T22:11:50Z 2021-06-01T02:53:06Z "Hi, wp-includes\js\wp-custom-header.js uses autoplay to play video. When it's a video managed by the NativeHandler, the mute attribute is set on the creation of the video element, so there is no problem. But when it's a YouTube video managed by the YouTubeHandler, the YouTube player is created with the autoplay option active, and the video is muted on the onReady event of the YouTube player. So it can happend that the video tries to autoplay before beeing muted, especially with Firefox, then the video is stopped by the web browser because there is autoplay with sound enabled. I propose to use e.target.playVideo() after e.target.mute() instead of autoplay to prevent the web browser from blocking the Youtube video if the autoplay starts before e.target.mute() is executed. Please see https://github.com/WordPress/WordPress/pull/471 with the pull request to correct the bug with this solution (or attached files). Best regards, Olivier Blanc, web developper" olivierblancdev 2 35559 Image wrapped in anchor disappear in Customizer (Safari) Customize 4.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2016-01-21T13:40:20Z 2021-05-23T18:52:05Z Medium and large size images that set as a featured images displaying through the_post_thumbnail disappear when viewing from customizer if height is not set strictly (400px for example). It disappear time to time – try to reload page or click menu links to update customizer window. halftones 46422 "Improve the Customizer header ""placeholder""" Customize normal normal Awaiting Review defect (bug) new 2019-03-05T18:42:24Z 2020-03-23T18:52:51Z "Splitting this out grom #43151. In #43151, all the Customizer ""placeholders"" used for the site logo, site icon, background image, and media widgets have been replaced with real `<button>` elements. For more details, please refer to that ticket. There's one special case left though: the header image ""placeholder"". This ""box with dashed border"" looks like a clickable thing but it's not clickable. The header image control works in a very peculiar way and its ""placeholder"" is only informative. Also, it has a few different states, depending on the current setting (see screenshot below). Its purpose is to communicate different states: - no image - randomizing uploader headers - randomizing suggested headers - finally, when a single image is set as header, it's replaced by the image To remove the potential confusion, I'd like to propose the simplest option: just make it look ''not'' clickable. Making it look like an ""info"" notice (the one with the blue border on the left), would make it clear it just communicates the current state and it's not clickable. " afercia 2 42140 Incorrect use of plural in class-wp-customize-themes-section.php SergeyBiryukov Customize 4.9 normal normal Future Release defect (bug) reviewing dev-feedback 2017-10-08T07:05:41Z 2021-06-08T23:23:42Z "Use of {{{__()}}} where {{{_n()}}} is needed. /wp-includes/customize/class-wp-customize-themes-section.php {{{ /* translators: %s: number of themes displayed. */ echo sprintf( __( '%s themes' ), '<span class=""theme-count"">0</span>' ); }}} " tobifjellner 31970 Live Preview header image crop is not correct size Customize normal normal Awaiting Review defect (bug) assigned 2015-04-14T15:51:37Z 2017-03-21T18:34:08Z "Steps to reproduce - Activate Twenty Fifteen - Live Preview Twenty Eleven - Add new header image and crop it - See that the image is large and distorted When you first select a new header image and are choosing where to crop it, everything looks good. Once you click crop and it shows the live preview, you can see that the image is the incorrect size." MikeHansenMe 44598 Main logo won't update when deleted and reuploaded with the same file name Customize normal normal Awaiting Review defect (bug) new has-patch 2018-07-17T16:37:15Z 2022-11-16T16:40:51Z "Hello, I'm experiencing the following bug: Adding a main gif logo in customizer by the media library and permanently deleting it, obviously does NOT permanently delete it but leaves some traces. When I change the color and/or the image format and reupload the slightly different file WITH THE SAME FILE NAME, WordPress displays the correct resolution in the attachment details along with the old thumbnail. Thus, although the image has been changed and rendered correctly, as I can see in the wp-content folder, the old image gets displayed on the page instead of the new main logo. Same for the cropping option before inserting. Refreshing the page doesn't help. Regards" mimoho 1 37586 Menu customizer: search results not properly filtered Customize 4.3 normal normal Future Release defect (bug) new dev-feedback 2016-08-05T16:36:50Z 2019-10-06T09:10:16Z "{{{customize_nav_menu_available_item_types}}} is a filter located in {{{class-wp-customize-nav-menus.php}}}. The purpouse of this filter is to restrict item types available in the Menu Customizer. This filter should be applied even if I perform a research using the search field in Menu Customizer. But this does not happens. While in Menu Customizer, doing a research, in search results shows up even items of specific types excluded with {{{customize_nav_menu_available_item_types}}} filter. We can resolve this issue using another filter always located in the same class: the {{{customize_nav_menu_searched_items}}} filter. With this filter we can restrict the selections of items received from the search result just before sending them to the frontend (ajax response). But this could be considered only a workaround and not a solution, because items should be filtered/excluded by type BEFORE wordpress performs the query to the database. We should suppose that, if we uses the {{{customize_nav_menu_available_item_types}}} to filter item types available on Menu Customizer, most likely we do not want search for elements of theese item types. " virgodesign 2 43197 Nesting @media rule inside @supports rule fails CSS validation Customize 4.9.2 normal normal Awaiting Review defect (bug) new dev-feedback 2018-02-01T10:13:49Z 2021-05-30T17:30:28Z "The CSS editor in the Customize panel returns 2 syntax errors when trying to insert a `@media` rule inside a `@supports` rule. It does work fine the other way around. See screenshot: [[Image(https://i.imgur.com/81b01Bp.png)]] Results are independent of specified properties & values. This might impact performance, because it is faster to skip the entire content of a feature query if a browser does not support a certain feature, rather than having multiple media queries with `@supports` in each of them. Besides, it can be functionally different, as explained here: https://stackoverflow.com/a/42438244 Tested on Chrome 63 and Windows 7. " neoqueto 1 42533 New pages scheduled via Customizer viewable as admin, 404 as visitor Customize 4.9 normal normal Future Release defect (bug) new 2017-11-13T15:12:36Z 2021-05-29T18:38:36Z "'''I'm not 100% if this is a bug, but here's the issue I am seeing:''' If I add a new page via the Customizer and schedule the changes for 5 minutes in the future: * As an admin viewing the '''Share Preview Link''', I can view the new page. * As a visitor viewing the '''Share Preview Link''', I get a 404 when trying to access the new page. ---- I posted a Google Doc with steps to reproduce and screenshots here: https://docs.google.com/document/d/1tiTjWjlUnVGNDaUZjFWmyg1BFRz6nF7tCTO-jjaXXUs/edit?usp=sharing '''If the document is unreachable, here are the steps from the doc:''' 1. Install a new WordPress site via Softaculous 1. Install WordPress Beta Tester plugin and upgrade to latest WordPress versions: 1. Access the Customizer 1. Menus > Top Menu > Add Items > ''Add New Page'' '''New Page 1''' > Add 1. Schedule the changes for the future, like 1 hour in the future. 1. Copy the Share Preview Link, you’ll need it in step 10. 1. Click the Share Preview Link 1. Click the link in the menu for '''New Page 1'''. You’re currently logged in as an admin, and you can see it. 1. Logout of WordPress. 1. As a visitor, access the '''Share Preview Link''' (the link you copied in step 6). 1. Click '''New Page 1''' in the menu. You’ll get a 404. This 404 I believe is a bug. If I’ve been working on ''New Page 1'' and I want a client to preview my draft, I would expect them to be able to see it without logging in. " bwmarkle 4 58183 PHP notice when accessing Customizer with a classic theme without widgets Customize normal normal Future Release defect (bug) new has-patch 2023-04-24T12:09:48Z 2024-02-22T20:59:37Z "If you open the Customizer with a classic theme that doesn't have any widget areas registered the following PHP warning is emitted: {{{ PHP Warning: Attempt to read property ""title"" on null in /var/www/html/wp-includes/class-wp-customize-widgets.php on line 905 PHP Stack trace: PHP 1. {main}() /var/www/html/wp-admin/customize.php:0 PHP 2. do_action($hook_name = 'customize_controls_print_footer_scripts') /var/www/html/wp-admin/customize.php:302 PHP 3. WP_Hook->do_action($args = [0 => '']) /var/www/html/wp-includes/plugin.php:517 PHP 4. WP_Hook->apply_filters($value = '', $args = [0 => '']) /var/www/html/wp-includes/class-wp-hook.php:332 PHP 5. WP_Customize_Widgets->output_widget_control_templates('') /var/www/html/wp-includes/class-wp-hook.php:308 }}} This seems to be similar to #54905. It seems that this is a similar issue, also mentioned by #56142, but not included in the fix deployed with [54419] since @westonruter wasn't able to reproduce it: https://core.trac.wordpress.org/ticket/54905#comment:38 This tickets adds the steps to reproduce it in the hope to then be able to find a fix. == Steps to reproduce 1. Create/Use a classic theme that does **not** have Widgets. 2. Open the customizer 3. Find the PHP warning in the logs. == Versions WordPress 6.2 PHP 8.2 (But also appears with other, older combinations, e.g. WP 5.9 and PHP 8.0)" kraftner 1 47564 Protect against recursive customizer navigation menu data Customize normal normal Future Release defect (bug) new has-patch 2019-06-19T19:54:58Z 2021-05-31T16:27:33Z "Recursive data can slip into navigation menu structure but client-script currently has no protection against, resulting in browser freezing when trying to edit navigation menus. Attached patch changes `getDepth()` to keep track of parent navigation menu item ID to avoid recursion." donpark 2 51962 Race condition in wp_get_custom_css_post() would clear the custom CSS entry Customize 4.7 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-12-08T03:11:04Z 2020-12-08T04:59:57Z "Our production system was recently affected by a (what it looks to me) race condition in `wp_get_custom_css_post()`; for reference here's the code in question: {{{#!php if ( get_stylesheet() === $stylesheet ) { $post_id = get_theme_mod( 'custom_css_post_id' ); if ( $post_id > 0 && get_post( $post_id ) ) { $post = get_post( $post_id ); } // `-1` indicates no post exists; no query necessary. if ( ! $post && -1 !== $post_id ) { $query = new WP_Query( $custom_css_query_vars ); $post = $query->post; /* * Cache the lookup. See wp_update_custom_css_post(). * @todo This should get cleared if a custom_css post is added/removed. */ set_theme_mod( 'custom_css_post_id', $post ? $post->ID : -1 ); } } else { }}} Our database went down after retrieving the `$post_id` from options. `get_post()` failed silently followed by `new WP_Query( $custom_css_query_vars );` that failed too while the DB was down. Eventually the DB became available and the `custom_css_post_id` setting was set to `-1`. As a result our website's styling was affected until we were able to restore the custom CSS stored in the `custom_css` post. I think better error handling within the `wp_get_custom_css_post()` could prevent such side effect from taking place." candrei 1 43896 Several flex and grid CSS properties listed as Unknown property in Customizer Customize 4.9 normal normal Future Release defect (bug) new has-patch 2018-04-29T01:11:57Z 2021-05-30T17:53:57Z "When I use the CSS editor in the Customizer it suggests element properties as I start typing them. One of the properties that it suggests is the justify-items property. When I save the settings in the Customizer I get a notice of ""Unknown property 'justify-items'."" I've checked some of the other flexbox and grid properties, and there are several others that this is the case for, namely: - justify-items - grid-gap - grid-column-gap - grid-row-gap - place-self The properties still work in supported browsers, they just display an error in the Customizer. Some valid values for properties that are recognized also give errors, such as the values of start and end for several grid properties." davidjlaietta 8 37516 Site title and tagline: allow ability to hide each independently Customize normal normal Future Release defect (bug) new has-patch 2016-07-29T17:44:11Z 2019-01-25T20:40:03Z By adding the ability for users to turn on or off the site title and tagline individually we would allow more flexibility. Currently it's both or none, this does not allow the flexility that users want over their site. There are valid cases where people do not want either. karmatosed 1 40146 Starter content can be silently published with other themes Customize 4.7 normal normal Future Release defect (bug) new 2017-03-13T18:07:33Z 2017-11-02T18:59:40Z "To replicate on a fresh install, open the Customizer with Twenty Seventeen active, preview a different theme, then ""Save & Activate"" the new theme. All of the Twenty Seventeen starter content will be published along with the new theme. The potentially confusing part of this behavior is that starter content might or might not have been in the preview, depending on the new theme. For example, in Twenty Eleven, some of the Twenty Seventeen starter widgets are visible in the preview, but the menu items aren't. I'm not quite sure what the preferred behavior would be in this scenario, assuming it's not the current behavior. The attached patch would have `WP_Customize_Manager::unsanitized_post_values()` skip any changeset values flagged as starter content when the current theme doesn't support it, but that might not be desirable." dlh 6 36191 Support responsive images in WP_Customize_Media_Control joemcgill Customize 4.1 normal normal Future Release defect (bug) assigned 2016-03-10T02:14:17Z 2021-05-23T19:01:25Z "When you add a custom logo, the preview in the Customizer sidebar isn't retina, even if the image file you uploaded is big enough. Discovered in https://core.trac.wordpress.org/ticket/35942#comment:13. Some additional comments there. Related: * #21455: HiDPI (retina) theme custom backgrounds * #36442: Customizer: when setting header image and site logo, also create a 2x image if possible" melchoyce 45669 Theme Default Suggested Header Image Not display Customize 5.0.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2018-12-17T08:03:45Z 2019-11-09T09:15:31Z " After Theme Setup, changes on default we select default image will not save after the publish of suggested image in customize section in every them i tested please resolve this bug." deepaksk45 37882 Typo in the tests/qunit/wp-admin/js/customize-header.js Customize 3.9 normal normal Future Release defect (bug) new dev-feedback 2016-08-30T13:56:49Z 2019-04-18T19:02:19Z Fix test header in the 'Custom Header: HeaderImage shouldBeCropped()' module tymvie 50696 UI issue in customizer menus section Customize 5.5 normal normal Future Release defect (bug) new 2020-07-19T05:42:31Z 2021-06-01T03:13:09Z "I have found 2 issues in customizer menu section 1) Input box-shadow issue if the input is invalid. 2) Add button properly not display I have attached an image for better understanding." dilipbheda 47445 Unable to set rows attribute for textarea input in the Customizer Customize 5.2.1 normal normal Future Release defect (bug) new has-patch 2019-05-31T12:58:10Z 2021-05-31T16:18:48Z "Hi there, Currently, when a textarea input is added to the Customizer via WP_Customize_Manager::add_control(), the number of rows is fixed to 5. See [[https://core.trac.wordpress.org/browser/tags/5.2/src/wp-includes/class-wp-customize-manager.php#L4140|line 4140 of the Customize Manager]]. Could this be fixed to be 5 by default, but enables me to override this?" timhavinga 36559 "Using ""widget"" as part of setting title breaks the customizer since 4.5" Customize 4.5 normal normal Awaiting Review defect (bug) new close 2016-04-17T10:02:56Z 2021-05-23T19:49:48Z "Hi, My theme ""'''Indie'''"" had several customizer options that have the word ""Widget"" as part of the '''add_setting''' and '''add_control''' title: {{{ 'widget_bg' 'widget_txt' 'widget_txt_highlight' 'widget_txt_highlight_hover' }}} This broke the customizer completely showing no options other than the widget panel. I've replaced these names and the customizer works again. This problem was reported to me since 4.5 release. Thanks Steven" steven_gardner 46352 Using a single quote locks up UI Customize normal normal Awaiting Review defect (bug) new reporter-feedback 2019-02-26T20:52:41Z 2021-12-15T06:11:40Z "Using the latest versions of WP and WC, and the Twenty-Sixteen theme while updating the appearance, and entering the Site Header Tagline, I tried to use a single quote. The entire UI locks up and goes to la-la land.. After a few Chrome says ""this page is unresponsive..."" Thought maybe someone might like to know about it.. Havent tried other themes or text lines.. Thanks " grampysbbq 8 33589 Using the customizer on wp-login.php (and similar) Customize 4.3 normal normal Future Release defect (bug) new 2015-08-28T15:16:45Z 2024-03-21T22:46:30Z "See related: https://core.trac.wordpress.org/ticket/28650#comment:19 I've been attempting to write a plugin to customize the `wp-login.php` page using the native customizer controls. So far it seems to work fine except that `postMessage` settings/controls do not update. I'm not sure why it doesn't work, as it appears that all of the customizer code is loading (maybe it isn't?), but something is getting messed up at runtime. The `refresh` setting works fine however. Any ideas as to what might be going on? Is this something that I can help get pushed into core? Since `wp-login.php` is sometimes a vital part of some sites, it makes sense that it should be available to edit in the customizer. I'm no expert but it seems that this may just be a missing hook that needs to be added to the `wp-login.php` file?" daronspence 55146 WP5.9 Customizer partially white-screens in Safari browser Customize 5.9 normal normal Awaiting Review defect (bug) new 2022-02-11T16:54:41Z 2022-02-11T17:07:42Z "Running (Mac) Safari 13.1.2, WordPress 5.9, on multiple sites. When loading the Customizer, I get a partial white screen – no left-column menu items (although the frame is there) and no page preview. Screenshot attached, and console error messages as follow: {{{ [Error] Failed to load resource: the server responded with a status of 404 (Not Found) (gutenberg.css, line 0) [Error] TypeError: o.addEventListener is not a function. (In 'o.addEventListener(""change"",function(e){r=e.matches})', 'o.addEventListener' is undefined) (anonymous function) (load-scripts.php:6:132) Global Code (load-scripts.php:6:111258) [Error] TypeError: undefined is not an object (evaluating 'c.Panel.extend') (anonymous function) (customize-nav-menus.min.js:2:10976) Global Code (customize-nav-menus.min.js:2:45601) [Error] TypeError: undefined is not an object (evaluating 'wp.customize.Control.extend') Global Code (slider-customizer.js:1:92) [Error] TypeError: undefined is not an object (evaluating 'wp.customize.Control.extend') Global Code (slider-control.js:1:86) [Error] TypeError: undefined is not an object (evaluating 'api.Control.extend') (anonymous function) (spacing-customizer.js:4) Global Code (spacing-customizer.js:160) [Error] TypeError: undefined is not an object (evaluating 'api.Control.extend') (anonymous function) (backgrounds-customizer.js:2) Global Code (backgrounds-customizer.js:31) [Error] TypeError: undefined is not an object (evaluating 'api.Control.extend') (anonymous function) (copyright-customizer.js:2) Global Code (copyright-customizer.js:12) [Error] TypeError: undefined is not an object (evaluating 'api.Section.extend') (anonymous function) (upsell-control.js:2) Global Code (upsell-control.js:12) [Error] TypeError: undefined is not an object (evaluating 'wp.customize.Control.extend') s (customizer.js:1:121358) (anonymous function) (customizer.js:1:131873) o (customizer.js:1:863) t (customizer.js:1:729) (anonymous function) (customizer.js:1:1826) Global Code (customizer.js:1:1829) [Error] Error: Minified React error #200; visit https://reactjs.org/docs/error-decoder.html?invariant=200 for the full message or use the non-minified dev environment for full errors and additional helpful warnings. (anonymous function) (react-dom.min.js:243:307) [Error] TypeError: The superclass is not an object. Oe (customize-widgets.min.js:2:28659) ke (customize-widgets.min.js:2:32932) (anonymous function) (customize.php:3105) [Error] TypeError: undefined is not a function (near '...wp.customize.section...') (anonymous function) (load-scripts.php:2:31711) }}} Selected Element {{{ <div id=""customize-preview"" class=""wp-full-overlay-main"">…</div> }}} :Benjamin" schmedia@… 46596 WP_Customize_Date_Time_Control class - date format ignores day of the month suffix (S) Customize 4.7 normal normal Awaiting Review defect (bug) new has-patch 2019-03-21T22:57:07Z 2019-03-22T18:32:31Z "When adding a date time control to the customizer using the WP_Customize_Date_Time_Control class with the add_control() method, the character for the day of the month suffix (S) is not replaced/stripped when formatting the date and gets displayed in the customizer. See attached image. Like other date formatting characters, the suffix should either be replaced with the get_option( 'date_format' ) value or be removed completely." F.Ilona 2 55051 WP_Customize_Nav_Menu_Item_Setting class needs hooks/filters parity for preview and update Customize 4.3 normal normal Future Release defect (bug) new 2022-02-02T18:46:59Z 2022-04-27T05:07:00Z "the `WP_Customize_Nav_Menu_Item_Setting` class needs parity with the `WP_Customize_Setting` class. The following actions exist in the `WP_Customize_Setting` class: `do_action( ""customize_preview_{$this->id}"", $this );` `do_action( ""customize_preview_{$this->type}"", $this );` [see source](https://github.com/WordPress/WordPress/blob/234877c9c3d81b6341bef5539ef52b0745b2a660/wp-includes/class-wp-customize-setting.php#L389-L411) and `do_action( ""customize_update_{$this->type}"", $value, $this );` [see source](https://github.com/WordPress/WordPress/blob/234877c9c3d81b6341bef5539ef52b0745b2a660/wp-includes/class-wp-customize-setting.php#L692-L703) The `preview()` and `update()` methods are overriden in `WP_Customize_Nav_Menu_Item_Setting` and ''don't'' have those `do_action` hooks, so there's no straightforward way to filter nav menu meta values on preview/update. For example, the Nav Menu Roles plugin adds meta fields to the Nav Menu Items in the customizer and am currently using a workaround to attach the preview/save routines since there's no direct way to do this with these hooks missing. Potentially related, the `WP_Customize_Nav_Menu_Item_Setting` class has an unimplemented `@todo` in the `preview()` method: see [source](https://github.com/WordPress/WordPress/blob/071c322bf2211db37cb38b4ddf4d2ed660e745d6/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php#L461) I'm not 100% certain what is meant there and if it can be ignored if those hooks are implemented. (a quick test suggests that I can filter the metadata in a callback on `customize_preview_nav_menu_item` once it exists. " helgatheviking 8 39254 When in Customizer Preview, starter content posts are not displayed in the loop westonruter* Customize 4.7 normal normal Future Release defect (bug) accepted needs-unit-tests 2016-12-12T21:03:24Z 2020-05-27T04:33:56Z "As discussed in [https://wordpress.slack.com/archives/core-customize/p1481567934000409 Slack], posts in Starter Content aren't appearing in the posts list. Being able to display the bundled content, specifically posts, is key for an improved user experience when configuring a new theme. Posts give structure to the theme, allowing users to see exactly how the theme will look with content. This would also allow theme developers to completely match the content bundled with the theme to the content on the theme’s demo site. This helps address the popular complaint amongst WordPress users that a newly installed theme looks nothing like the demo." tiagonoronha 1 53854 When opening Appearance/Customize, a different theme is activated, destroying all settings Customize normal normal Awaiting Review defect (bug) new reporter-feedback 2021-08-01T20:33:19Z 2021-08-02T00:16:08Z "Hi there: Twice today, I have clicked on Appearance/Customize and the site has activated a completely different theme, destroying all my settings and necessitating a complete site restore. Twice. The first time, I thought I'd clicked on a wrong button, but this second time I was careful. It's definitely a bug! Tracy Cooper-Posey Site where the error was produced: https://StoriesRulePress.com" TracyCP 54688 Widget overlap in customizer settings Customize 5.8.2 normal normal Awaiting Review defect (bug) new close 2021-12-23T12:08:01Z 2024-01-10T14:11:27Z In Twenty twenty one theme widget overlap in customizer settings when we adjust width of search widget and then selcting recent post widget on that tome widget are overlapping with above search widget. multidots1896 1 50730 _wpCustomizeSettings has invalid data for starter-content widgets Customize normal normal Awaiting Review defect (bug) new dev-feedback 2020-07-21T21:52:08Z 2020-11-05T19:41:21Z "Copying from https://github.com/WordPress/gutenberg/issues/20827. When Gutenberg is installed, and a site is set to ""fresh"", error messages are shown in the customizer for widgets included in a theme's starter content. The site with the starter content can not be published until the widgets are edited. In my tests, changing the widget title or content removed the error. It does not seem to be theme dependent, I tested different themes that includes starter content. It's reproducible on 5.4.2. **To reproduce** Steps to reproduce the behavior: 1. Create a new WordPress site or reset an existing install 2. Activate Gutenberg 3. Activate a theme with starter content, for example Twenty Twenty or Twenty Seventeen. 4. Go to the Customizer. 5. Press Publish 6. See the error: Unable to save due to 2 invalid settings. **Expected behavior** I expect the starter content to be saved without errors. **Additional info** I investigated the forementioned GitHub issue and it seems that `_wpCustomizeSettings` has invalid widget data when customizer is used on a fresh site with starter content. By invalid, I mean it fails the check in [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-wp-customize-manager.php#L2359 this line]. I'll send a PR on GitHub." alshakero 1 54723 _wp_customize_loader_settings 'host' Customize normal normal Awaiting Review defect (bug) new close 2022-01-03T16:43:43Z 2022-01-05T01:56:29Z "`Undefined array key ""host"" in <b>wp-includes/theme.php</b> on line <b>3511</b>` Because i want relative permalinks to my site i use a filter like this {{{ add_filter( 'home_url', function ($url){ return set_url_scheme( $url, 'relative' ); } ); }}} So, `$home_origin['host']` in file theme.php produces Undefined array " lagios.di 1 30969 adding theme support for 'custom-header' or 'custom-background' results to duplicate admin menu items Customize 4.1 normal normal Awaiting Review defect (bug) reopened dev-feedback 2015-01-09T21:54:06Z 2021-05-22T19:51:04Z "Wordpress 4.1 shows double 'Header' and 'Background' menu items in admin navigation menu on front-end when using add_theme_support( 'custom-header', $args ); add_theme_support( 'custom-background', $args ); Here is a screenshot of Twentyfourteen theme. http://snag.gy/djDFm.jpg This issue also exists in other themes I tested using the above hooks. This issue is not seen in previous WordPress version using the Twentyfourteen theme. " edville101 2 43122 customize.php fails to load with default changeset_uuid bpayton Customize 4.7 normal normal Awaiting Review defect (bug) assigned reporter-feedback 2018-01-18T00:46:13Z 2021-05-30T17:26:42Z "I am seeing a rare condition where users are unable to load the Customizer with no specified changeset and see the message ""Cheatin, uh? This changeset cannot be further modified."" In all cases, I am seeing two `customize_changeset` posts with the same GUID post name, one with draft status and the other with published status. When WP_Customize_Manager attempts to find a changeset to load by default, it finds the draft with the GUID, and when it attempts to load the post, it finds the published post with the same GUID and dies with the message mentioned above. I read WP_Customizer and theorized how this could be happening but have no theory worth mentioning. Still, this seems like some kind of race condition." bpayton 49666 customizer doesn't works when backslash is use in site title Customize 5.3 normal normal Future Release defect (bug) new has-patch 2020-03-19T10:24:01Z 2022-06-16T03:50:57Z "If there is ""\"" in the page name, ""Appearance> customize"" stops working as in the attached screenshot. [[Image()]]" rumyan 2 39461 default-preset option for custom background cannot be set by default Customize 4.7 normal normal Future Release defect (bug) new has-patch 2017-01-04T09:29:37Z 2021-05-24T03:01:57Z "I am trying to set a custom background by default for this theme https://wordpress.org/themes/islemag/ . This is my code: {{{ add_theme_support( 'custom-background', array( 'default-image' => get_template_directory_uri() . '/img/islemag-background.jpg', 'default-preset' => 'fill', 'default-repeat' => 'no-repeat', 'default-position-x' => 'center', 'default-attachment' => 'fixed', ) ); }}} When I open the customizer, the default preset option is set on ""fill screen"" but the background image is still small. Everything works great if I change the default preset and then change it back on ""fill screen"" I talked with developers in core channel on slack and @celloexpressions told me this: ''""Currently you need to define the default for each individual property (size, repeat, etc.) in addition to defining the preset. It would probably be better for consistency if each property is set based on the preset if the theme sets a preset.""'' Tried to set each property for custom background but with no luck. " cristian-ungureanu 51249 design issue under customize input box for Schedule in 5.5.1 Customize normal normal Future Release defect (bug) new dev-feedback 2020-09-05T09:43:54Z 2020-11-17T16:08:13Z "I have found a design issue in Schedule your customization changes to publish. Need improvement for design under the customize input box of Schedule. " rkradadiya 1 24844 get_theme_mods doesn't return the theme customizer preview's new values. Customize 3.5.2 normal normal Future Release defect (bug) new 2013-07-26T13:41:52Z 2017-02-14T18:44:32Z "Using the theme customizer API, you can call get_theme_mod($option) to return the value for a specific theme option. In the case of the user interacting with the theme customizer, if they have changed an option, the theme customizer replaces the saved option with the previewed / new setting by hooking onto the {{{theme_mod_$name}}} filter applied in {{{get_theme_mod}}}. However, should the user need or desire to retrieve all theme mods at once, the filter is not applied, and the new settings are never injected into the saved settings array. There's a workaround to simply loop through the settings and manually apply the filter, but it would be better if {{{get_theme_mods}}} had an argument like {{{$use_filter}}} and could add the filter in the core functionality. {{{get_theme_mods}}} is in [source:tags/3.5.2/wp-includes/theme.php#L746 wp-includes/theme.php] on line 746. {{{get_theme_mod}}} is in [source:tags/3.5.2/wp-includes/theme.php#L776 wp-includes/theme.php] on line 776. {{{theme_mod_$name}}} filter is applied in [source:tags/3.5.2/wp-includes/theme.php#L780 wp-includes/theme.php] on lines 780 and 785. {{{ theme_mod_$name}}} filter is added in [source:tags/3.5.2/wp-includes/class-wp-customize-setting.php#L72 wp-includes/class-wp-customize-setting.php] on line 72." nessworthy 2 39907 "Add ""Remove all widgets"" button for themes with multiple widget areas" Customize normal normal Awaiting Review enhancement new dev-feedback 2017-02-17T19:04:28Z 2021-05-29T17:01:57Z "I was loading giving one of my sites a new theme as a New Year treat. It only seemed fitting to put on Twenty Sixteen. As this was a simple site, I wanted the single column. Unfortunately, loading up the theme brought a few issues as I suddenly found a lot of widgets I didn't want. For example the footer areas, they were filled with defaults I didn't want. Going in and removing each one took several steps as there were multiples. Whether you want defaults or not may be something the theme can decide, but offering a 'remove all widgets' button I think would be easy enough to add into the Customizer and a great enhancement for the minimalists." karmatosed 4 41972 Add Import/Export functionality to the Customizer Customize 4.8.2 normal normal Awaiting Review enhancement new 2017-09-25T08:35:01Z 2018-07-13T03:25:18Z "As a theme author, a big part of our documentation and guidance is instructing people how to replicate different theme previews. Fr complex Customizer settings, it would be great to be able to provide a user with a file which could be uploaded to the site. Much like uploading an xml file to import the post/page content. I'm aware of plugins such as https://wordpress.org/plugins/customizer-export-import. However I think it would be a great enhancement to add import/export functionality to core, removing the reliance on a plugin and the extra burden this adds for beginner level users. This could also help alleviate issues raised in #27177. The import/export options could be a further development of the UI mentioned in #39896." anonymized_11892634 2 44665 "Add a ""Create New Menu"" button to the menu widget" Customize 4.3 normal normal Future Release enhancement new has-patch 2018-07-29T00:32:39Z 2020-11-30T00:20:15Z "Menu widgets in the customizer have buttons to edit the selected menu, which cross-link to the menus customizer panel. Before a menu is selected, there should be a ""Create New Menu"" button that links to the new menu section and automatically assigns the menu to the corresponding widget. This would be a big improvement in user flow, particularly for new users trying the menu widget for the first time, who may not understand the relationship between widget and menu objects. The UI should match the existing edit menu button." celloexpressions 3 33107 Add a Menu button: when clicked the icon does not rotate around center point Customize 3.9 low normal Future Release enhancement assigned dev-feedback 2015-07-24T01:47:32Z 2021-05-22T21:08:48Z "When clicking the ""Add a Menu"" button in the Menus area of the customizer, the icon doesn't quite rotate around its center point. On some browsers like Chrome and Firefox the icon is also misaligned and pulled up too high. Here's the icon in Firefox for example: [[Image(https://cldup.com/01NjVg0Qh7-3000x3000.png)]] Screenshot of the rotated icon combined with its original position: [[Image(https://cldup.com/uO_3o712gB-3000x3000.png)]] Here's some short videos of how the icon rotates when clicked: Firefox 39 (OS X) https://cloudup.com/cBb9kdrvjNZ Chrome 43 (OS X) https://cloudup.com/ciNZeSgbab7 Safari 8 (OS X) https://cloudup.com/cUmIW81nSht Safari is the only one that looks correct. The issue is partly caused by the ""add"" icon not a perfect square (it appears 1px wider in some browsers). By using the transform-origin CSS property we can improve how the icon rotates. Because of the icon being rendered 1px wider in some browsers it's not possible to get it exact, but it's certainly an improvement. Shown below are some videos of how they would look after some CSS adjustments using the transform-origin CSS property. Best viewed at normal size with the patch, but you get the idea: Firefox 39 (OS X) https://cloudup.com/ca2OWHuGe8q Chrome 43 (OS X) https://cloudup.com/c_5AROy460x Safari 8 (OS X) https://cloudup.com/c1YdWYfyMqd Also tested in IE 11 on Windows. First patch coming." sumobi 60149 Add user-friendly options for customizing the style of password-protected pages Customize normal normal Awaiting Review enhancement new 2023-12-25T16:07:00Z 2024-02-15T16:26:39Z "**What's Needed:** Introduce a section in the WordPress Customizer dedicated to password-protected page styles. Allow users to easily customize the background color, text color, font size, and other relevant styles. **Why It's Important:** Many users, especially those with limited coding knowledge, would benefit from a more accessible way to customize password-protected page styles. Enhancing the visual appearance of password-protected pages contributes to a more cohesive and branded website experience. **Proposed Implementation:** Provide a set of default options and allow for additional custom CSS if users want to make more advanced adjustments." bilalmughl 2 38549 Additional CSS lost when changing themes Customize 4.7 normal normal Future Release enhancement new dev-feedback 2016-10-28T14:37:14Z 2021-05-23T23:39:27Z When you change themes, the Additional CSS is lost. Change the theme back and it returns. I think there should be an option to retain the Additional CSS across any theme used. If we do not implement that, I have a funny feeling that many users will be confused as to where their custom CSS went. scottwyden 5 40243 Allow Manual Hue input for the HSL Color Picker Customize 4.7 normal normal Future Release enhancement new 2017-03-23T17:58:50Z 2021-05-29T17:23:19Z "The new HSL mode for the color picker is insanely useful! However, if someone has certain brand colors that they wish to incorporate, it might be helpful to allow a specific hue input via an integer value that will allow accurate matching. Right now, with the hue slider, it's anyone's best guess if they near their brand colors." calvinkoepke 2 42806 Allow installing themes in the Customizer on multisite Customize normal normal Future Release enhancement new dev-feedback 2017-12-05T17:47:40Z 2018-07-08T17:44:55Z "Currently the ""Install Themes"" section in the Customizer isn't added when using multisite. There is no technical problem with the installation process, as it still works correctly, simply by adding removing the restriction to only add the section (and enqueueing the related script) if `is_multisite()`, which I tested before opening this ticket. However, what would need to be figured out is how to deal with enabling themes, because by default an installed themes isn't enabled anywhere. And of course it would only be possible for the network administrator, but I think that would still bring a huge benefit, because right now it isn't possible in multisite at all. Here are two suggestions for possible approaches: 1. When in a multisite, there could be a notification like ""By installing a theme you also automatically enable it for this site."" Then, after the installation logic we would only need to handle that part automatically. If we go with that approach, we would need to make sure that the current user has both the `install_themes` and `manage_network_themes` capabilities. 2. When in a multisite, there could be a separate section ""Network Installed Themes"" that includes all themes installed, regardless of whether they're enabled for the site. Each themes would have a button to enable/disable it for the site. That section would require the user to have the `manage_network_themes` capability. We would furthermore need to ensure that themes are transitioned from the ""Network Installed Themes"" to the existing ""Installed Themes"" section and vice-versa when they are enabled/disabled for the site. Plus, when installing a theme through the ""WordPress.org Themes"" section, the user would need to be redirected to the ""Network Installed Themes"" section with that theme pre-seleted, to easily be able to enable and preview it. There are benefits to both ways: While the first approach will be much simpler to implement, it somewhat mixes installing and enabling themes into one. The latter approach will allow more flexibility, but may be overly complex. Especially since installing themes without being able to enable them will make the process useless in multisite, I think I prefer the first approach. Maybe a mix of both could be the right way too, where we start with implementing the first approach as a first iteration (that could even be merged into core as that), but keeping it future-compatible to possibly add a dedicated ""Network Installed Themes"" section later." flixos90 2 37281 Allow non-error notifications to be set for Customizer settings from PHP Customize normal normal Future Release enhancement new 2016-07-04T22:46:29Z 2019-04-19T21:05:35Z "An API adding notifications to Customizer settings was added in #34893. In JS a notification can be added of type `error`, `warning`, `info`, and custom. In PHP, however, only `error` notifications can be added to a setting, and this is done by returning `WP_Error` from a validation routing (or sanitization routine). It may be useful to allow other kinds of notifications to be added via PHP as well. This would likely require adding a `WP_Customize_Setting::$notifications` collection with a `WP_Customize_Setting::add_notification()` and `WP_Customize_Setting::remove_notification()` to provide a similar API in PHP for the general notifications API in JS. It seems clear that non-error notifications shouldn't be added by returning `WP_Error` instances from validation routines, but that the notifications could be added inside of such routines, for example: {{{#!php <?php class My_Setting extends WP_Customize_Setting { function validate( $value ) { $validity = parent::validate( $value ); if ( strlen( $value ) > 20 ) { $this->add_notification( array( 'type' => 'warning', 'code' => 'long_value', 'message' => __( 'This is a long value!' ), ) ); } } } }}} The non-error notifications could be sent back as part of full refresh and selective refresh responses in a similar way that error notifications are sent back and updated into the JS models." westonruter 30 38624 Allow starter content to apply after a site has already been set up and is no longer “fresh” Customize normal normal Future Release enhancement new 2016-11-02T17:26:32Z 2020-11-23T21:19:54Z "Starter content for themes was introduced in #38114. In order to prevent the starter content from overriding a site's existing content, a `fresh_site` option flag was added to prevent the content from applying after the site has been first updated. This means the starter content has limited use when installing new themes to try out during the life of a site. The primary problem for applying starter content on an existing site is how to handle the merge conflicts, how to decide when to use the starter content/configs and when to use existing site content/configs. One option would be a button to “reset” a site to use the starter content. For more granularity, once the starter content is applied there could be a list of the settings that were modified so that you could then go through and evaluate each change to see if you want to keep it. Each control that has a setting containing dirty starter content could be highlighted in some way with a button that allows you to revert the starter content or toggle the starter content so you can compare before/after. This is closely related to #21666 (Customizer reset/undo/revert) and #31089 (Add revisions of settings to the Customizer)." westonruter 1 39362 Checkbox control for 'Automatically add new top-level pages to this menu' not wrapped in checkbox customize control Customize 4.7 normal normal Awaiting Review enhancement new dev-feedback 2016-12-21T11:48:34Z 2021-05-24T02:50:58Z "When you go to set the menu in the customizer you have the option to check the Menu Options for Adding the top-level pages automatically to the current menu. This option isn't wrapped in the {{{ <li class=""customize-control customize-control-checkbox""></li> }}} This isn't a bug, but a hindrance if you want to customize the look of the customizer and would like to have all the checkboxes look the same. One could say that all one needs to add is the style for {{{ .input[type=""checkbox""] }}} but this is not true if you have a custom control that has a checkbox input, and you want to style it differently. In that case you'd need to overwrite additionally. Plus the current style is styled via {{{.customize-control-checkbox input[type=""checkbox""]}}} as well as with just {{{input[type=""checkbox""]}}}." dingo_d 1 42115 "Customize Menus: Add ""Your theme already has a basic menu"" view" bpayton Customize 4.9 normal normal Future Release enhancement assigned 2017-10-05T19:33:34Z 2021-05-29T18:22:01Z "When your theme creates a menu by default, we should display the following text: > Your theme already has a basic menu, to help readers find all your pages. If you’d like to choose what appears instead, create a new menu to replace the default. > > Click the button to start. > > [ Replace default menu ] See screenshot." melchoyce 1 38957 Customize Menus: Menu locations should be able to opt-out of menu item types that can be added to associated menus Customize 4.3 normal normal Future Release enhancement new 2016-11-26T22:24:31Z 2017-01-21T17:34:56Z "Certain menu locations are often designed to use a particular type of menu item - for example, social menus only make sense with custom links, or a custom nav menu walker may be used to display a deeper index of posts within taxonomy terms featured in a menu location. If themes could specify what types of content a particular menu location is intended to contain, the menus UI could correspondingly show/hide or prioritize the types of menu items in the available menu items panel. This should be handled with the `object` and `object_type` menu item parameters. As with #38956, this is difficult due to the current way the menu locations API works, and the fact that menus can be added to multiple locations. This should be considered a usability enhancement that is more conservative in hiding available menu items for items in multiple locations, and that adapts as menu locations are changed." celloexpressions 1 38956 Customize Menus: menus assigned to locations with limited depths should not allow deeper depths Customize 4.3 normal normal Future Release enhancement new 2016-11-26T22:16:54Z 2019-04-03T03:59:02Z "`wp_nav_menu()` allows themes to control how many levels of depth will be displayed in the menu hierarchy. However, the menus UI doesn't reflect this or explain why submenu items may not always be visible. There are often valid situations where menus can only accept one level of hierarchy (such as social menus), and the API allows this on the theme side but doesn't address the usability side of the issue. This may be tricky because depth is defined here a menu is displayed, not where a location is registered. Menus can also be assigned to multiple locations. A better API for menu locations may facilitate this improvement." celloexpressions 3 37417 Customize Nav Menus: more visible way to navigate the preview to a menu item object Customize 4.3 normal normal Future Release enhancement new has-patch 2016-07-20T02:22:43Z 2022-05-17T10:31:57Z "Nav menus in the customizer have the benefit of live preview. One of the more hidden aspects of this experience is the ability to view a menu item's object in the preview with the ""original"" link in the menu item options. Unfortunately, being hidden in the item properties dropdown, this feature is little-known. Can we add a link for this to the menu item handle somehow? I've create a preliminary (fully-functional) patch for this, and while I like the UX I think the UI could use work (feels cluttered). This helps to reinforce the connection between menus and content, as well as making it easier to see what an item is linking to when the current menu isn't shown in the preview. It also helps users that may not know that you can navigate links within the preview." celloexpressions 6 22880 Customize Themes without activation Customize normal normal Future Release enhancement new 2012-12-12T11:34:51Z 2021-05-22T18:12:20Z "Add a posibility to customize deactivated themes with the Theme-Customizer without activating them by default. Useful for Blogs running multiple Themes between which the frontend user can switch." kkkrys 42635 Customize: Add default value for customizeAction param for sections Customize 4.3 normal normal Future Release enhancement new 2017-11-20T05:30:21Z 2018-10-12T04:07:05Z "Currently the `customizeAction` has to be explicitly provided when dynamically adding sections via JS. If not, then the section header has broken layout. There should be a default value provided so that this doesn't have to be provided each time (see #42083). Adding a default value for `customizeAction` is complicated a bit by the fact that it [https://github.com/WordPress/wordpress-develop/blob/4af1237176c326e7840361fd580fdc3f97841e6a/src/wp-includes/class-wp-customize-section.php#L228-L233 varies based on whether the section has a parent panel]. The `getContainer` method of `wp.customize.Section` probably should check if `customizeAction` is empty and if so supply one: it could look to see if it has a `panel` parent, and if so, grab the title; otherwise, it can use the default “Customizing” value. A default value should have been originally provided in #30737. Workaround for plugins to provide a default value in the mean time: {{{#!php <?php add_action( 'customize_controls_enqueue_scripts', function() { wp_add_inline_script( 'customize-controls', sprintf( 'wp.customize.Section.prototype.defaults.customizeAction = %s;', wp_json_encode( __( 'Customizing' ) ) ) ); } ); }}} " westonruter 54119 Customize: Always Show Homepage Settings Customize 4.7 normal normal Future Release enhancement new dev-feedback 2021-09-14T06:58:32Z 2021-09-18T03:01:09Z "== Summary The options at Appearance → Customize → Homepage Settings are contextual. They appear only if the user has at least one published page. I am proposing tp always show Homepage Settings, regardless of the presence of published pages. == Why When you start a new website, the first page you think about is your homepage. So, when you go to look for Homepage Settings, you may not have published a page yet. Or, maybe you start working on your homepage, but it's still a draft. In this scenario, Homepage Settings is not there at all. A user who visited Customize would have checked there and not seen anything related to setting the homepage, so they would not think to check again for it after publishing their first page. If Homepage Settings were to always show, a user would immediately learn where to set a homepage, even if no pages appear in the dropdown yet to select their homepage. It's also worth noting that at Customize → Homepage Settings, you can use the 'Add New Page' option to create a new page using this interface, therefore a user with no pages yet can create their homepage here. By always showing Homepage Settings, this will avoid the confusion a new user faces with Homepage Settings not being present in Customize." donalirl 3 39031 Customize: Include theme as just another setting instead of passing as separate parameter Customize 4.1 normal normal Future Release enhancement new 2016-12-02T18:58:11Z 2021-05-24T00:19:53Z "The customizer state is currently split in two places: the `customized` settings (changeset) and the previewed `theme`. This separation of the theme from the settings makes sense to a degree since the settings are dependent upon which theme is active. There is currently an `active_theme` setting but it is a dummy setting which is used merely for the sake of wiring up the capability check for the themes panel. The `active_theme` setting is added with a comment: > unused - the theme is considerably more fundamental to the Customizer experience However, since the `theme` is not just another `setting` then this means that the theme cannot currently be made part of a changeset, and as such a theme switch cannot be previewed on the frontend by non-authenticated users and also a theme switch cannot be scheduled in the customizer. Ideally there could be a `theme` setting with the `switch_themes` capability that could be added to a changeset, and when that changeset is published, the `switch_theme` call should then be made. See also #22880." westonruter 7 39389 Customize: Make sure selective refreshed partial placement is scrolled into view Customize 4.5 normal normal Future Release enhancement new 2016-12-24T23:11:57Z 2022-08-26T08:01:45Z As of #36678 there are visible edit shortcuts in addition to the “shift-click to edit” behavior in the preview. This ensures that the corresponding control for a given element in the preview can be focused and discovered. However, there is no corresponding facility to quickly discover and jump to an element in the preview that corresponds to a given control. When making a change in a control any corresponding element (partial placement) in the preview should be scrolled into view. This is a key usability improvement. westonruter 42191 Customize: Selectively merge settings from autosave revisions Customize normal normal Future Release enhancement new 2017-10-12T04:06:54Z 2021-05-29T18:26:08Z "In follow-up on #42024, an autosave revision is created as part of changeset locking. When a user returns to the customizer after a lock has been lifted, they will be prompted to restore their revision. The restoration logic should only load settings from the changeset which are older than the settings in the `customize_changeset` post (see new setting prop `date_modified_gmt`), or the settings for which there is no existing setting in the changeset. This merge will more intelligently ensure that a user's restored autosave revision won't override the changes another user saved. There may be some cases, however, where selectively restoring parts of an autosave will have unexpected results (e.g. opting to include a newly-created widget, but not accepting the change to the sidebar), so more investigation will be needed. The problem of conflict resolution in the Customizer is a large problem which is also being worked on in the [https://github.com/xwp/wp-customize-snapshots Customize Snapshots] plugin. See also #31436 (Handle conflicts in concurrent Customizer sessions)" westonruter 3 42272 Customize: Use client-side templates for rendering base controls Customize 4.9 normal normal Future Release enhancement new 2017-10-19T03:05:59Z 2019-01-09T06:25:05Z "This is a follow-up on #30738. See patches on that ticket. Eliminating server-side rendering of the control content for server-side registered controls was not included as part of 4.9 due to it being a big change and it got too late in the release. This will necessarily need to include support for `dropdown-pages` which we didn't implement in #30738, since we ran out of time and wanted to rely on REST API for fetching the pages." westonruter 2 37916 Customize: ability to disable content creation in menus Customize 4.7 normal normal Future Release enhancement new 2016-09-01T20:55:33Z 2019-06-04T19:41:28Z "There should be a hook to disable the ability to create new posts (and eventually terms, see #37915) in nav menus in the customizer. Ideally, it should be able to be disabled for specific post types as well as all post types. For terms, we'll need to turn it off for the `post_format` taxonomy. This is being split out from the initial merge in #34923, where there are patches with an approach we could take here." celloexpressions 5 37915 Customize: allow terms to be created in nav menus boonebgorges Customize 4.7 normal normal Future Release enhancement assigned dev-feedback 2016-09-01T20:51:39Z 2021-05-23T23:16:18Z "Follow up to #34923. When setting up initial site structure, in many cases it's as important to be able to create new terms to add to menus as the ability to create posts. For users, the distinction between terms and posts probably isn't immediately clear, so this functionality gap may be confusing. There are several patches on #34923 that contain the needed framework here, but we need the ability to preview terms before we can add support for terms. This depends on #37914. Milestoning for 4.7 now for tracking, but we're waiting for that ticket before we can proceed here." celloexpressions 4 36581 Customizer Header Image Control should extend the cropped image control Customize 3.9 normal normal Future Release enhancement new 2016-04-18T19:55:06Z 2019-05-29T17:36:05Z "`WP_Customize_Header_Image_Control` was written (in 3.9) before all of the other customizer media controls were refactored to use the media library (in 4.1) and additional controls were introduced (in 4.2 and 4.3). It uses an almost entirely separate codebase right now, and by merging it back in to use the newer functions, future enhancements can be made in fewer places to apply to more controls, and the cropped-image control will likely benefit with some new reusable features as well. Additionally, this cleanup will simplify the codebase and make it much easier to contribute to and understand the way the headers UI works, and why. Ideally, we would be able to use `WP_Customize_Cropped_Image_Control` directly for header images by bringing more features that are currently specific to headers to all media controls. However, in practice we may end up needing it to remain a distinct control for various reasons. Regardless, it should extend WP_Customize_Cropped_Image_Control directly and make use of its functions in both PHP and JS where possible. Additionally, it should leverage the core API for JS-templated contols introduced in 4.1. See #29211, and #32861, which would likely be fixed in the process of implementing this ticket." celloexpressions 1 33469 Customizer Menus: Restore active menu to a location after selecting and unsetting another menu Customize 4.3 normal normal Awaiting Review enhancement new dev-feedback 2015-08-20T18:40:47Z 2021-05-23T17:52:53Z "When a location is specified for a menu and another menu is assigned to that location in the Customizer, the first menu is removed even if the new settings aren't saved. 1. Assign a menu to a location in the customizer. Click ""Save & Publish"". 1. Assign a different menu to that location, but do not save. 1. Uncheck the location from the second menu. Expected: The previously selected menu for that location should be restored. Actual: The location now has no menu assigned to it." morganestes 1 32768 Customizer Widgets and Themes search improvements Customize 4.2 normal normal Future Release enhancement assigned reporter-feedback 2015-06-23T18:06:29Z 2021-05-22T20:29:24Z "Widgets and Themes search would need the same improvements done for the Menu Customizer. Widgets: - activating ""Add a Widget"" with the Space bar doesn't prevent the default action, as a result the search field gets a space character and the placeholder text is gone. See https://github.com/voldemortensen/menu-customizer/issues/107 Both: - the search results (or no results) should be announced to assistive technologies, possible use case for wp.a11y.speak see #32720 - a short description of the ""live"" search functionality could help, see the Menu items search in core, i.e.: aria-describedby=""menu-items-search-desc""" afercia 41126 Customizer does not work if both wp_footer() and wp_head() functions are not present in the theme. Customize 4.7 normal normal Future Release enhancement new 2017-06-22T14:56:18Z 2017-07-05T21:06:03Z I know there is another ticket (#14752) that refers to when wp_head() and wp_footer() are not present in the theme and it was discarded. But in this case, I refer specifically to the Customizer. Since it will not work when those functions are missing, maybe we can disable it completely (maybe with a dismissible notice in the head) or find a way to include the necessary files and data and make it work even when those functions are missing. mdifelice 39609 "Customizer should display ""Fade"" effect for entire iFrame for settings using partialRefresh when selector is not visible" Customize 4.5 normal normal Future Release enhancement new 2017-01-17T01:30:41Z 2017-11-06T17:26:53Z "When modifying the value of a setting in the customizer that uses partialRefresh for the transport, typically, the element that is being modified on the live site fades out as the customizer replaces the element with the correct output. This gives the user a nice visual letting them know to be patient as the output is modified. In some cases, the element being modified may not be visible in which case there is no cue to the user to let them know things are being updated. A good example would be an advanced setting for changing the color scheme of the site which adds inline CSS to the head tag. Here is a little video example: https://cl.ly/illS (I don't use postMessage for this setting because there are filters in place so developers can hook in custom elements to be modified and for 3rd party plugin support). I'm sure there are other circumstances where a setting may be altering a ""hidden"" element. This is just one example and while there is very little delay in my specific example, I believe for consistency and UI purposes it would make sense to add the extra check to see if the element is visible and if not fade-out the whole iFrame during the refresh process. Thank you for considering!" AJClarke 7 39910 Customizer: Add ability to drag & drop widgets and menu items Customize normal normal Future Release enhancement new 2017-02-17T19:38:19Z 2021-05-29T17:06:55Z Currently when you add a new widget in the Customizer, the available widgets will show, but you can not drag and drop any of the those widgets, rather you have to select the widget then, that widget will be added in. Drag and drop does work on widgets that already exist or where just added. lukecavanagh 13 38707 Customizer: Additional CSS highlight, revisions, selection, per-page, pop-out Customize normal normal Future Release enhancement new 2016-11-08T06:04:04Z 2021-06-01T03:01:11Z "[[Image(https://core.trac.wordpress.org/raw-attachment/ticket/35395/customizer-css-i2.png)]] This ticket is to track the next steps of Additonal CSS after 4.7. See #35395 for the discussion so far. The MVP of the Additional CSS editor in customizer included the basic UI, navigation and backend work. There are various next steps that area already included in the design above, and can be done either in a single next release or staggered further as needed. From the latest discussed design, the features we already have ready to build are: 1. Syntax Highlighting 2. Revisions 3. Selection of items on the page (CSS selector) 4. Per-Page CSS as a complement of the current ''site-wide'' CSS for better management 5. The ability to pop-out the editor in a separate window for a more comfortable editing experience Just one special note regarding revisions: we might want to not do CSS revisions, and instead build the more flexible and general revision UI for the customizer as a whole. That's being discussed in #31089. " folletto 7 35827 Customizer: Create a dropzone for adding images Customize 4.1 high normal Future Release enhancement assigned 2016-02-13T22:27:11Z 2017-09-26T13:52:00Z "This is a follow-up to #35826. On panels that let you upload images (identity, header, background) we should make the ""no image set"" container a dropzone to drag & drop your images onto. Like the editor, when you drag and drop an image into those dropzones, it would open the media modal and start uploading the image." melchoyce 13 40432 Customizer: Should we stop contextually hiding features? Customize 4.0 normal normal Awaiting Review enhancement new 2017-04-12T22:20:48Z 2018-09-12T17:52:10Z "This is a continuation of the conversation in #39087. If something doesn't appear on a page you're previewing, it gets hidden in the Customizer panel. For example, if your archive pages have a sidebar, but your static pages do not, you will not be able to edit your archive sidebar. It will be hidden until you go to an archive page. The same goes for contextual theme options. For example, you can't assign sections to your homepage in Twenty Seventeen unless you're on your homepage. This is often very confusing for folks new to WordPress, as evident in the previous ticket linked above. I think we should change this behavior, and I'm interested in hearing what others think." melchoyce 1 39599 Customizer: when no title on page it adds weird content in navigation link Customize normal normal Awaiting Review enhancement new has-patch 2017-01-16T12:40:14Z 2017-07-26T01:46:39Z "I understand that that there may need to be a title, however if you have a page and remove the title you then get the following: [[Image(https://cldup.com/sc4tmiokFB.png)]] The output being `#20 (no title)` does make sense but couldn't we increase the usability here and just have it say 'no title'? Do we have to have `#20`?" karmatosed 3 40527 Decouple WP_Customize_Manager Customize 4.8 normal normal Future Release enhancement new 2017-04-22T10:59:58Z 2017-09-25T17:24:37Z "When you create multiple instances of `WP_Customize_Manager` it adds/removes multiple hooks in its constructor which should be executed single time. So let's say if I want to create two new changeset posts it I will do. {{{#!php <?php $data = array( ... // Some changeset data. ); $manager1 = new WP_Customize_Manager(); $manager1->save_changeset_post( array( 'data' => $data ) ); $manager2 = new WP_Customize_Manager(); $manager2->save_changeset_post( array( 'data' => $data ) ); }}} This will cause `wp_ajax_customize_save` to add twice with `$manager1` and `$manager2` it should add only once. `wp_ajax_customize_save` is a just example. See Constructor: https://github.com/WordPress/WordPress/blob/5f771393a318d333503d5e13525dfcd543819302/wp-includes/class-wp-customize-manager.php#L229-L369. So we should decouple `WP_Customize_Manager` class and maybe extract changeset methods in separate class `WP_Customize_Changeset`." utkarshpatel 1 50290 Edit Post and Edit Page is not showing in Admin Bar, When I open any Post or Page in new tab while in Customize Customize normal normal Awaiting Review enhancement new dev-feedback 2020-05-31T16:49:51Z 2021-06-01T03:06:11Z "In Customize, When I try to open any post or any page with the '''open link in new tab ''' or '''open lin in new window''', Edit Post or Edit Page is not showing in Admin Bar. But when I try to open any Category or Tag with the open link in a new tab or new window, it showing Edit Category and Edit Tag in Admin Bar. I have attached a gif file and screenshots for a better understanding." dhruvpandya 4 38072 Eliminate placeholder nav menu items in favor of auto-drafts in Customizer Customize 4.3 normal normal Future Release enhancement new 2016-09-16T05:46:06Z 2017-06-07T00:21:05Z "When nav menus were added to the customizer in 4.3, newly-created nav menu items were assigned a random negative integer to represent the ID for that `nav_menu_item` post. (This was also true of `nav_menu` terms for newly-created nav menus.) Upon saving the customized state, any such `nav_menu_item[...]` settings with negative IDs would then get inserted and assigned actual IDs which would then get sent back in the `customize_save_response` and the UI then replaces the placeholder nav menu item's control with the newly-inserted nav menu item's control. The key motivation here was to ensure that changes made in the customizer would not have an impact any part of WP until hitting Save. (What happens in the customizer stays in the customizer… until you hit Save.) Now, aside from a momentary flicker of placeholder nav menu item controls that get replaced with actual nav menu item controls, there is a key disadvantage to using such placeholder nav menu items (with negative post IDs): it is not possible to relate postmeta to them. There is a long-standing ticket #18584 for allowing nav menu items to be extensible to add custom fields in the customizer (and in the admin screen). In the call to `get_metadata` it has a behavior whereby it passes the supplied post ID through `absint` so if any postmeta are attempted to be related to placeholder `nav_menu_item` posts, they will fail to be accessed when calling `get_post_meta()`. Now, in #34923 there was the introduction of being able to create stubs for posts and pages inside the customizer so that they can have nav menu items created for them. The stubs created here are `auto-draft` posts which ensures that they do not affect other parts of WordPress and they will be automatically garbage-collected if never published. Now, the original Menu Customizer plugin did make an Ajax request for each created new nav menu items but they were `nav_menu_item` posts that were not related to a `nav_menu` (they were orphaned) rather than being `auto-draft`. We could consider going back to making an Ajax request to create each `nav_menu_item` (now an `auto-draft`) in the same way that is being done for post/page stubs. A downside of going to using Ajax to create new nav menu items (to reserve an auto-incremented post ID) is that adding a new nav menu item would no longer be instant. However, it would mean that upon save there wouldn't be any rebuild of nav menu item controls replacing placeholders with actuals, and as such it could mean a lot of code could be removed. But the most important benefit of switching to use `auto-draft` posts for nav menu items is that postmeta could then be created in the customizer and related to actual post IDs which could then be properly targeted in `get_post_metadata`filters. Alternatively, `get_post_meta` could just replace the `absint` with a call to `intval` and then ensure that the `get_post_metadata` filters apply with that negative ID, but then short-circuit if the filter doesn't return with `null` (since it wouldn't be able to find entries with negative IDs in the database). See feature plugin for adding custom fields to the customizer: https://github.com/xwp/wp-customize-nav-menu-item-custom-fields Note how the plugin has to postpone the presentation of custom fields until a newly-added nav menu item is saved the first time: https://github.com/xwp/wp-customize-nav-menu-item-custom-fields/blob/2ad056634441a74ba91982ca88b089297f630971/customize-nav-menu-item-custom-fields.js#L279-L284 Dependency for: #18584" westonruter 8 36582 Export main query from Customizer preview Customize 4.0 low normal Future Release enhancement assigned 2016-04-18T20:45:09Z 2021-05-23T19:56:36Z "Controls, sections, and panels in the Customizer support the concept of an active state (#27993) which controls whether or not the control is contextual to the current query. Controls may want more information than whether to hide/show, but to show contextual information based on which kind of query is loaded in the Customizer preview, such as if it `is_singular` or which post specifically was queried. This information should be exposed from the Customizer preview to the pane as well. An initial implementation of this has been implemented in the Customize Posts feature plugin: https://github.com/xwp/wp-customize-posts When the preview syncs the `WP_Query` data from the preview to the pane, the data should get sent along with the `ready` message along with the `activeControls`, `activeSections`, and `activePanels` data. When the data is received by the pane, it should get populated into a model which can have events attached to it. For example, a `wp.customize.Values` instance could be used as a collection to represent the query_vars. Or there could be one single `wp.customize.Value` that stores the exported `WP_Query` data in like `wp.customize.previewedQuery` which plugins could then listen to changes on. For example: {{{#!js wp.customize.previewedQuery.bind( function( newQuery, oldQuery ) { if ( newQuery.is_singular !== oldQuery.is_singular ) { if ( newQuery.is_singular ) { // We switched to a singular template! } else { // We switched to a non-singular template! } } } ); }}} Some thought will need to be given to how a JavaScript object is used to represent `WP_Query`. See Slack: https://wordpress.slack.com/archives/core-customize/p1461011732000103" westonruter 37275 Facilitate creating controls that manipulate settings with object values Customize 3.4 low normal Future Release enhancement new 2016-07-04T20:39:26Z 2019-04-19T21:05:06Z "While #37274 addresses the difficulty to manipulate updating settings that have object values, the Customizer JS API also does not facilitate creating controls that have fields which manage a setting that has a object value. The `MenuNameControl` provides a good example of a control that has a text field for managing a nav menu setting's `name` property: {{{#!js control.nameElement = new api.Element( control.container.find( '.menu-name-field' ) ); control.nameElement.bind(function( value ) { var settingValue = control.setting(); if ( settingValue && settingValue.name !== value ) { settingValue = _.clone( settingValue ); settingValue.name = value; control.setting.set( settingValue ); } }); control.setting.bind(function( object ) { control.nameElement.set( object.name ); }); }}} This works but it is tedious when scaling and makes it difficult to extend, as can be seen in the `MenuItemControl`. There should be a more declarative way to link a field to ''a property'' of a setting value object. One implementation of this can be seen in the [https://github.com/xwp/wp-customize-posts/blob/0.6.1/js/customize-dynamic-control.js Dynamic control] as seen in the Customize Posts plugin. While Core supports a `data-customize-setting-link` attribute in a control template to declaratively link an input field to a setting value, the Dynamic control Dynamic adds support for a `data-customize-setting-property-link` attribute which will link the input field to the a ''property'' of the (default) setting. This eliminates the need for custom JS logic to link the input elements. See an example control which has fields which manipulate a setting value containing a street address: https://github.com/xwp/standalone-customizer-controls/blob/master/class-customize-address-control.php This will facilitate extending nav menu items in the Customizer: #18584." westonruter 1 37274 Facilitate updating/extending Customizer setting values that are objects Customize 3.4 normal normal Future Release enhancement new 2016-07-04T20:22:46Z 2019-04-19T21:04:47Z "There is bit of a dance to work with setting values that are objects. Consider a `mailing_address` setting that represents a street address: {{{#!json { ""street"": ""123 Fictional St."", ""city"": ""Portland"", ""state"": ""OR"", ""zip"": ""97201"" } }}} Getting the value is as simple as `wp.customize( 'mailing_address' ).get()`, but updating the value is not so simple. To change the `street` part of this setting, the following is required: {{{#!js var value = wp.customize( 'mailing_address' ).get(); value = _.clone( value ); value.street = '123 Imaginary Ave'; wp.customize( 'mailing_address' ).set( value ); }}} The clone is required because objects are passed by reference, and if the `value` were to set directly, the subsequent `set` would not trigger a `change` event. Widgets and nav menus use objects as values in Core. Widgets aren't manipulated directly in JS (until #33507) but nav menus and nav menu items are. Here's the code for managing how a nav menu's name gets changed when the nav menu's name field is updated: {{{#!js control.nameElement.bind(function( value ) { var settingValue = control.setting(); if ( settingValue && settingValue.name !== value ) { settingValue = _.clone( settingValue ); settingValue.name = value; control.setting.set( settingValue ); } }); }}} To make it easier to work with setting values as objects, we could introduce a `wp.customize.Value#setExtend` method that allows an object value to be extended in the same way that `setState` works in React, take an object of key/value pairs that are merged on top of the existing value. Here is an example implementation: {{{#!js wp.customize.Value.prototype.setExtend = function( props ) { var value = _.clone( this.get() ); _.extend( value, props ); this.set( value ); }; }}} With this, to update the `mailing_address` setting value property in the above example could be changed to simply: {{{#!js wp.customize( 'mailing_address' ).setExtend( { street: '123 Imaginary Ave' } ) }}} See #26061. Related #37275." westonruter 6 38077 Facilitating embedding customizer controls outside of sections westonruter* Customize normal normal Future Release enhancement accepted 2016-09-16T20:14:50Z 2017-05-07T02:46:53Z "Controls are currently assumed to be always contained within sections in the customizer. This makes it difficult to reuse the controls in other contexts, such as embedding multiple controls inside another control or embedding a control outside the context of the customizer entirely. This will facilitate embedding customize controls on the frontend for contextual editing without having to have the customizer sidebar open or even having to go into `customize.php` at all. Some of the hacks required to get controls to appear outside of the customizer can be seen in https://github.com/xwp/standalone-customizer-controls The Media control in particular needs to be updated to remove the logic resize the player controls when the section is expanded. The `embed` method (used by widgets) also needs to not wait generally for a contained section to expand. Key dependency for #29071 (Make it easier to include an instance of the Customizer outside of customize.php) Depends on or is closely related to #37964 (Allow customizer controls to be encapsulated by accepting pre-instantiated settings)" westonruter 9 31436 Handle conflicts in concurrent Customizer sessions Customize 3.4 normal normal Future Release enhancement assigned 2015-02-24T19:42:44Z 2021-05-22T20:00:44Z "If two users open the Customizer at the same time and modify the same settings, the user who saves their changes last will win out, and the person who saves first will have their changes lost. (The frequency of the problem was reduced in #29983 since now only dirty settings now get POSTed.) The Customizer needs Heartbeat integration to add the “Post Locking” functionality. We don't need to lock the entire Customizer, however, from concurrent users: we need to add locking for individual settings in the Customizer. When a setting becomes dirty, we need to broadcast via Heartbeat to other users that the setting has been changed and thus any controls for this setting should be marked as ""locked"", with any changes prevented. This will become increasingly important as more and more settings are added to the Customizer and users go there more often to make changes. The locking UI could provide a button to copy the other user's change into the other Customizer session, and this could result in the control being editable again, with subsequent changes pushed out to other users as well, who would then also get the corresponding setting automatically updated if it was dirty, but if it was not dirty then it would remain in its clean state but with a locking notification added. This also should apply when a setting is modified by some means other than the Customizer: if someone is in the Customizer and another user changes a setting via an admin page or via XML-RPC or REST API, then this setting update should also be illustrated in the Customizer to note that the settings are stale and should be refreshed. This refresh could be done inline, without having to reload the entire page. For the issue of conflicting auto-incremented widget IDs across user sessions, see #32183. For the previously-reported issue specific for handling conflicts between editing widgets on the widget admin page, see #12722. For the introduction of concurrency locking for options pages (settings API), see #32202. Some enhancements for a feature plugin: The Customizer UI would benefit from having a list of users currently in the Customizer appearing somewhere, with a list of the changes each user has made. If someone left their Customizer session open, this list would also allow an administrator to sign the user out, using something like the [https://wordpress.org/plugins/user-session-control/ User Session Control] plugin; or the Customizer UI could provide a way to boot a user from the Customizer. For use of Heartbeat to keep nonces fresh, see #31897. See also #42191 (Customize: Selectively merge settings from autosave revisions)" westonruter 2 39040 Hide references to nav menu locations that are not visible in the customizer preview Customize 4.3 normal normal Future Release enhancement reopened 2016-12-03T12:16:53Z 2019-03-19T02:03:11Z "Could be helpful to have menu locations automatically updated when switching template parts. For example if I have two header style: header-singlemenu.php {{{#!php <?php wp_nav_menu( array( 'theme_location' => 'primary', )); }}} header-doublemenu.php {{{#!php <?php wp_nav_menu( array( 'theme_location' => 'primary-left', )); wp_nav_menu( array( 'theme_location' => 'primary-right', )); }}} Those got by {{{#!php <?php get_template_part('header', get_theme_mod('header_style','singlemenu') ); ?> }}} where ''header_style'' obviously can be '''singlemenu''' or '''doublemenu''' in functions.php i have {{{#!php <?php if(get_theme_mod('header_style', 'singlemenu') == 'singlemenu') { register_nav_menu( 'primary', __( 'Primary Menu', 'theme-slug' ) ); } else { register_nav_menu( 'primary-left', __( 'Left Menu', 'theme-slug' ) ); register_nav_menu( 'primary-right', __( 'Right Menu', 'theme-slug' ) ); } }}} When switching header style in customizer, menu location are not updated. You are bound to save your customization, reload the page and then you can be able to see new location. [[Image(https://i.gyazo.com/9fe4cca23b88c55877d65431c756f3a4.gif)]] " khela 4 38845 Implement HTML5 input validity constraints in customizer settings Customize 4.6 normal normal Future Release enhancement new 2016-11-17T23:58:38Z 2017-09-18T19:10:39Z "Ever since #28477 controls in the customizer have supported custom HTML5 input types along with new input attributes passed via the control's `input_attrs` param. The support, however, has been lacking because when a user supplies something that violates some of the constraints (such as `pattern` or `step`) there is nothing that blocks the setting from being saved (using setting validation model in #34893). So using the `input_attrs` along is in fact somewhat harmful if it is not accompanied by the same constraints being applied in the setting's `sanitize_callback` or `validate_callback`. The browser's built-in input validation error UI also does not show because no form actually gets submitted, and there are no calls to the poorly-supported `input.reportValidity()` method. To address these issues, I suggest that the default `validity_callback` for `WP_Customize_Setting` could look for any associated controls and then check the type of the value against the control's `type` and also check the value against the validation constraints defined in the control's `input_attrs` param, such as `min`, `max`, `pattern`, `step`, `maxlength`, and so on. In this way, a setting's `sanitize_callback`/`validate_callback` wouldn't even need to be defined since the validation constraints would be defined declaratively and checked automatically. It's not exactly the best pattern, however, for the setting's validation constraints to be defined on the control. So there could be a new `validation_constraints` param on `WP_Customize_Setting` where the validation input attributes could be defined instead of the on the control's `input_attrs`. A control could then automatically populate it's own `input_attrs` by copying from the setting's `validation_constraints`. These changes will ensure that setting validation routines will apply and error notifications will be displayed when settings fail validation on the server with a full refresh, selective refresh, or changeset update. In order to get the browser's native validation error reporting to appear, the JS control logic can be updated to call `input.reportValidity()` if it is available (it's currently only implemented in Chrome). See feature plugin: https://github.com/xwp/wp-customize-input-validity-constraints" westonruter 1 42331 Improve setting up header images in Customizer Customize 3.9 normal normal Future Release enhancement new 2017-10-25T11:47:08Z 2018-01-15T19:05:10Z "I think the process of setting up header images in Customizer can be more streamlined. When only 1 image is there (uploaded or suggested), why do we offer the 'randomize' option? If you click the button, it gets the 'selected' class, the preview greys out, but nothing has been changed (how could it having only 1 image) - 1) Shouldn't this button rather be only there if we have more then 1 image? 2) Small glich Scenario: Current header image is not set We have 1 uploaded image Set it to 'Randomizing uploaded headers' then delete the image (clicking 'X') Publish It's still set to 'randomize headers' instead of 'no image selected' I think it should switch to 'No image set' in the moment the image is deleted There was a lot of activity in #21785 I'm unable to sum this all up" Presskopp 3 40200 Introduce WP_Customize_Embed_Control Customize 4.7 normal normal Future Release enhancement new 2017-03-18T22:28:29Z 2018-07-08T17:36:03Z Similar to the previously-introduced `WP_Customize_Media_Control`, `WP_Customize_Embed_Control` would offer a UI framework for options that store media information. For this control, associated settings would always store the embed URL, whereas the media control stores an associated local attachment ID. This control would be used to add and manage options that use externally-hosted media via oembed. The initial core usage would be for the external header video control, and this would facilitate showing the embed within the customize pane so that you can directly see what the embed is in the pane, similarly to how the media controls show small previews in the pane to complement the full previews in the customize preview. celloexpressions 10 37887 Make attachments atomic until a Customizer session is published Customize 4.7 normal normal Future Release enhancement new 2016-08-30T16:50:18Z 2017-10-16T06:45:09Z "== Current behavior == When you upload attachments via a Customizer session they are: 1. Added to the filesystem. 2. Saved to the database as a new post. 3. Immediately visible in the Media Library to all other logged in users. == Desired behavior == Attachments that are uploaded during a Customizer session should not be published, or even visible by other logged in users, until the user decides to publish the changes. == Possible idea Until Customizer changed are published, all `attachment` posts that have been uploaded inside the Customizer could have their post status set to `auto-draft` rather than `inherit`. This will make them invisible inside the Media Library from other logged in users. All `attachment` posts uploaded during the Customizer session could be stored inside the new Customizer transaction, and the Media Library query could be made to only show those uploads during the current unpublished session. == Publish or Discard If a transaction (customizer changes) is '''published''', then the post status on these `attachment` IDs can be set to `inherit`, making them visible inside in the Media Library like normal. If a transaction (the customizer changes) is '''discarded''', then the `attachment` IDs can be force deleted via `wp_delete_attachment( $ID, true )` which will not only delete them from the database, but also from the filesystem." fjarrett 7 29071 Make it easier to include an instance of the Customizer outside of customize.php Customize 3.4 normal normal Future Release enhancement reopened 2014-07-30T20:27:19Z 2021-05-22T19:29:30Z "A lot of the bootstrapping of the customizer goes on either in customize.php or in function calls that are hardwired to this instance. We should make this code more modular, so there isn't so much boilerplate required to load a customizer instance on a different page." ericlewis 4 51820 Make starter content for fresh sites more discoverable Customize normal normal Awaiting Review enhancement new 2020-11-18T18:01:55Z 2020-11-18T18:01:55Z "Starter content currently only makes an appearance if you open the customizer on a ""fresh site"" (typically a new install). It's easy for a user to have made other edits before heading into a customizer, which means they'll never see the starter content, and may be left wondering why the theme preview doesn't look anything like their site. On the other hand, if starter content does manage to apply, they might wonder why the customizer preview doesn't look anything like their live site. For the current limited application of starter content, we should consider some kind of prompt to try it out in the customizer before anything else, and show a message in the customizer that starter content has been applied and won't show up on your live site until you hit publish. More broadly we should make starter content usable in more contexts, opening a ticket for that shortly." helen 1 49876 Menu section improvement ryokuhi* Customize normal normal Future Release enhancement accepted 2020-04-11T10:23:39Z 2021-07-30T15:53:54Z I use wordpress for more than 15 years i still wondering why you dont make the menu section easier, for example if someone have more than 100 categories in a woocomerce he can be lost in the categories and subcategories. It should be good idea to show BOLD wich of items are in use in the current menu preview, so can be easy use the other items. also need more flexibility in menu items column Dblii 43469 Native Site Icon feature in Customizer is outdated Customize 4.3 normal normal Future Release enhancement new 2018-03-04T14:17:06Z 2021-05-31T15:07:39Z "Hi, The native Site Icon feature in Customizer is outdated and should be updated. Windows: 1) There's only 1 Windows Tile (270x270px). To cover newer devices there should be a delcaration for the small, medium, wide and large Tile. Source [https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/samples/dn455106(v=vs.85) here]. 2) There should be a colorpicker for the Windows Tile. 3) Because the wide Windows Tile is rectangular (310x150px), there should be an additional file input for this Tile. 4) To overwrite the prefered XML browser configuration file, this should be added: {{{<meta name=""msapplication-config"" content=""none"" />}}} Regarding 2 and 3 check attachment. iOS: 5) Instead of using {{{rel=""apple-touch-icon-precomposed""}}} it's more common to use {{{rel=""apple-touch-icon""}}} nowadays. Example: {{{<link rel=""apple-touch-icon"" sizes=""180x180"" href=""/apple-touch-icon.png"">}}} Guido " Guido07111975 2 29316 Need more value and preview hooks for WP_Customize_Settings Customize 3.4 low normal Future Release enhancement new 2014-08-22T11:57:04Z 2018-03-20T01:22:38Z "There should have more filters to handle settings. for example: add {{{ apply_filters( 'customize_value', $this->defaults, $this); }}} or {{{ apply_filters( 'customize_value_'.$this->type, $this->default, $this); }}} before {{{ apply_filters( 'customize_value_' . $this->id_data[ 'base' ], $this->default ); }}} add {{{ do_action( 'customize_preview_setting', $this ); }}} before {{{ do_action( 'customize_preview_' . $this->id, $this ); }}} " dedepress 1 47990 Opening/Closing the 'Add Items' slideout in the Customizer Menu editor loses the check icon Customize 4.3 normal normal Future Release enhancement new 2019-09-06T08:09:50Z 2021-06-01T00:47:14Z "Hello, While testing [https://core.trac.wordpress.org/ticket/46830 46830] I came across a separate issue I'll open here. The checkbox to indicate an item (page/post) is in the menu gets reverted to the + add icon if you click 'All Items' button to open and close the select menu item drawer. It would be nice if the checkbox icon was persistent to continue to indicate to the user what items are selected in the menu. Thank you " garrett-eclipse 5 47692 Optgroup in Customizer Select Control Customize 3.4 normal normal Future Release enhancement new has-patch 2019-07-13T07:11:07Z 2020-07-27T02:09:14Z Optgroup add in Customizer Select Control chintan1896 2 47500 Optimize customizer load time Customize normal normal Awaiting Review enhancement new dev-feedback 2019-06-07T00:42:58Z 2021-05-31T16:22:13Z "Please see some discussion in slack for background and ideas https://wordpress.slack.com/archives/C0381N237/p1559852377000600 TLDR; More plugins and themes are using the customizer. It's a very good experience when making changes to options that affect the display of the site. As more controls are added the initial page render is taking longer and longer. Searching for things like ""WordPress customizer long load times"" results in tickets like https://wordpress.org/support/topic/customizer-takes-12-seconds-to-load/ In my own tests against a plugin I develop for I've found DOM Ready load times approaching 10 seconds. In default usage this is not apparent, but as themes and plugins use the customizer it becomes very slow. Ideally the initial page render should be more complete and then panels, sections, and controls can be added. This will make the page ""feel"" complete and more responsive." Nick_theGeek 40862 Partially visible controls within a pane do not scroll into view jpurdy647 Customize low normal Future Release enhancement assigned has-patch 2017-05-25T13:51:57Z 2020-11-25T19:39:42Z "If the widget pane has many widgets, sometimes the widget dialogue will not be visible when the edit shortcut icon is clicked on the page. If any part of the control is visible, it does not fully scroll into view even though the focus is properly set. A few notes: - If the widget is not in view at all wihtin the pane, it properly scrolls it into view and focuses. - The problem also occurs if the pane is not currently visible when the edit shortcut is clicked. Clicked edit shortcut on a widget in view in the sidebar: https://cldup.com/EPHX4omF81.png Clicked edit shortcut on a widget with part of the header visible in the pane: https://cldup.com/gOsa9rovWG.png" desrosj 2 44976 Proposal to add deregister_control_type(), deregister_panel_type() and deregister_section_type() methods to WP_Customize_Manager Customize normal normal Awaiting Review enhancement assigned dev-feedback 2018-09-21T06:17:24Z 2019-06-01T15:47:37Z "Today was the time I wish I am able to remove a registered customizer control. I also have a patch to implement a deregister_control_type()" Collizo4sky 38947 Proposition to add an optimized api.Events manager to the api.Value constructor Customize 4.7 normal normal Future Release enhancement new has-patch 2016-11-26T11:21:36Z 2019-12-05T05:19:54Z "It would be convenient to be able to bind, unbind and trigger `api.Value` instances by event id, instead of using only functions param like it's the case now. The `api.Values` constructor is already extended with the `api.Events` manager object, which is very useful. I propose to do something similar with the `api.Value` constructor. In order to not overload the `api.Value.topics` object with anonymous functions, a possible optimization would be to fallback on the previous binding method of `api.Value`, with a function type param directly added to the `api.Value.callbacks` ( `$.Callbacks` ) object, if no id is provided for the callback, and to populate the `api.Value.topics` property only when an id has been provided on binding. " nikeo 3 34747 "Provide more flexibility for ""You are customizing"" text" ryankienstra Customize normal normal Awaiting Review enhancement assigned close 2015-11-19T22:00:49Z 2021-05-23T18:37:12Z "I'd like to be able to customize the ""You are customizing"" text based on context: [[Image(https://dl.dropboxusercontent.com/s/bu33174tvkdrhnf/2015-11-19%20at%201.55%20PM.png?dl=0)]] Because these strings are rendered directly in `wp-admin/customize.php`, I have very little control over the text. Ideally, this HTML would be rendered by calling `WP_Customize_Panel::content_template()` for the primary panel in the customizer (and I could have different primary panels for each view). However, if this abstraction is hairy, a filter for the title and description would suffice. If no description was present, the `?` wouldn't appear. If no title were present, the informational section wouldn't appear." danielbachhuber 9 35186 "Put the Customizer ""back"" button next to the ""Close"" button" Customize 4.4 normal normal Future Release enhancement new 2015-12-21T15:44:55Z 2020-11-22T16:27:21Z "Seems like a pretty small thing. The ""Back"" button that takes you to the top of the Customizer menu scrolls out of view but the ""Close"" button does not. If we put the Back button next to the Close button, it would be slightly less confusing." DragonFlyEye 7 36447 Responsive preview icons in Customizer need tooltips iamjolly Customize 4.6 normal normal Future Release enhancement assigned dev-feedback 2016-04-08T02:44:59Z 2021-11-09T15:43:27Z "The new icons at the bottom of the Customizer for toggling the preview window of your site really need tooltips to indicate what they're for. Just like the tooltips on the Visual Editor icons, other icons in the Dashboard should have tooltips as well. As leading usability expert Jakob Nielsen explains; >A user’s understanding of an icon is based on previous experience. Due to the absence of a standard usage for most icons, text labels are necessary to communicate the meaning and reduce ambiguity. https://www.nngroup.com/articles/icon-usability/ Even the Google Design Guidelines recommend tooltips for icons https://www.google.com/design/spec/components/tooltips.html# I originally raised this as a post on the [https://wordpress.org/support/topic/responsive-preview-icons-in-customizer-need-tooltips Beta forum] but it was suggested that since it's getting late in the 4.5 release cycle it would be best to raise it as a Trac ticket." ahortin 1 43464 Search Options in Customizer Customize normal normal Future Release enhancement new 2018-03-04T07:05:30Z 2021-05-30T17:34:24Z "If a theme has more than few settings, finding the setting gets frustrating at times. A search functionality in the customizer will be helpful. Here is a plugin that we have developed as a POC: https://wordpress.org/plugins/customizer-search/ But I believe, it will benefit if it is added in the core. " brainstormforce 4 29288 Settings updated within the Customizer Preview are not synced up to main app Panel Customize 3.4 lowest normal Future Release enhancement new 2014-08-20T20:05:43Z 2021-05-22T19:32:28Z "The Customizer has two copies of models for the registered settings: one set in in the Customizer panel parent frame, and changes to these result in the settings getting copied over to the preview either via postMessage or via a refreshing the preview entirely. Updating a setting model from within preview directly, however, does not propagate up to the model. There is currently a one-way-sync from the panel to the preview. As a workaround, the preview can send messages to the panel for which handlers can apply the updates to the settings, but it would be good if this was automatic. By implementing a bi-directional syncing of settings between the panel and preview, there would be lots of opportunities for inline front-end editor controls to more easily be added into the preview directly. See also https://twitter.com/bradyvercher/status/502163462990995456" westonruter 2 48115 Sidebar starter content issue with Twenty Twenty Customize 4.7 normal normal Awaiting Review enhancement new dev-feedback 2019-09-24T00:15:38Z 2021-06-01T00:50:40Z "Hello, While testing the beta I found the sidebar contents functioned a little odd. On initial install the sidebars showing on the front-end match what was in Appearance > Widgets which is; Footer #1 (Search, Recent Posts, Recent Comments) and in Footer #2 (Archives, Categories, Meta) But navigating the Appearance > Customizer > Widgets showed the defaults as Footer #1 (About this site) and Footer #2 (Find Us) and once I published the Customizer I found the front-end showed these two and then now the Appearance > Widgets also showing these. So it seems the default widget content from TwentyTwenty only loads into Customizer as a default and isn't the actual defaults found on install in Appearance > Widgets. Thanks" garrett-eclipse 3 32861 Site Icon: Provide display for all existing site-icon cropped images Customize 4.3 normal normal Future Release enhancement reopened 2015-07-01T21:14:10Z 2019-06-04T19:30:23Z "Example: I had a picture and tried to set it up as site icon. I cropped this image and now I have `cropped-image.png` variant of this image 512 x 512 px. Then I tried other images and in the end I wanted to go with the first one. But when I selected this cropped image, I had to crop it once again even if right dimensions. So, now there is another `cropped-cropped-image.png` image in media library and it does not make sense... Also images for site icons should be somehow marked (as for header images in Customizer). How can I find my cropped images for site icon in media library when trying to set up site icon?" pavelevap 55766 Site icon checkbox to use the site logo Customize normal normal Awaiting Review enhancement new 2022-05-18T09:16:08Z 2022-05-18T16:59:50Z ​Logo and site icon are mostly the same. ​I suggest a checkbox near the site icon selection panel to indicate that the logo can be used. Most users use the logo as site icon. martiniwebb 10 30277 Split up Customizer JS into separate files and remove self-booting jQuery.ready call Customize 3.4 normal normal Future Release enhancement new 2014-11-06T20:11:45Z 2018-06-13T16:28:06Z "The `customize-controls.js` file is huge and is named incorrectly now with #28709 and the fleshed-out models for Panels and Sections. The file should be broken up into `customize-sections.js`, `customize-panels.js`, and `customize-utils.js`. The last of which should include the private function exposed as public methods off of `wp.customize.utils`. This may also include the `wp.customize.init()` mentioned in #29071. We need to stop booting the Customizer inside of these JS libraries with a direct `jQuery.ready` call, and instead let the including page invoke that. This is critical for code reusability and for unit testing. For instance, the `customize.php` page could do in the footer: {{{#!php <script> jQuery(function () { wp.customize.init( _wpCustomizeSettings ); }); </script> }}} For `wp.customize.utils`, see existing patch at: https://github.com/xwp/wordpress-develop/pull/47" westonruter 2 45737 Starter Content: Add support for terms and taxonomies Customize 4.9 normal normal Future Release enhancement new 2018-12-21T21:52:56Z 2019-12-14T01:53:55Z "Starter content has been a great tool not only for themes to showcase what they can do, but for some interesting work around custom onboarding flows that reduce the difficulties of getting started for various groups of new users. As work around these things matures though, it's starting to push against the boundaries of what starter content currently supports. I'd like to see support added for terms. They could work similar to how nav menus, featured images, etc work, allowing terms to be added and a symbol referencing them to be added to the post. {{{#!php <?php [ 'posts' => [ 'blog-post' => [ 'post_type' => 'post', 'post_title' => 'Blog post', 'post_content' => 'Lorem ipsum', 'term_ids' => [ '{{foo-category}}' ], ], ], 'terms' => [ 'foo-category' => [ 'name' => 'Foo', 'slug' => 'foo', 'taxonomy' => 'category', ], ], ] }}} " aaroncampbell 2 34233 There is not a body class filter within the customizer. Customize 3.4 normal normal Future Release enhancement new 2015-10-09T16:23:40Z 2019-12-11T06:58:49Z "I'm hoping for a way to filter the body classes for the customizer panel. https://core.trac.wordpress.org/browser/trunk/src/wp-admin/customize.php#L112 My particular use: I happen to have some custom controls on my widgets. I'd like to style them differently for superadmins versus other users. The rest of my application handles this as a body class, and does so in pure php via filtering. I know that's a pretty specific use, but I do find it surprising that there's not a filter here, given how useful it is in wp-admin and the front end. If it were to mimic admin body classes, where the classes are a new string, it would look something like {{{ $customizer_body_classes = apply_filters( 'customizer_body_classes', '' ); ?> <body class=""<?php echo esc_attr( $body_class ); ?> <?php echo $customizer_body_classes; ?>""> }}} I happen to prefer the front-end treatment, where existing classes are passed in as an array. In that case it would look more like {{{ $classes = array_map( 'sanitize_html_class', $classes ); $classes = apply_filters( 'customizer_body_classes', $classes ); array_unique( $classes ); $classes_str = implode( ' ', $classes ); <body class=""<?php echo esc_attr( $classes_str ); ?> ""> }}} I see some objections to a similar ticket here: #32623 But my request is slightly different because I'm not advocating that we re-use the admin_body_class fliter. Rather, I'm suggesting a new filter just for the customizer body class. This is my first ticket! I would be happy to attempt to make it my first patch as well if there is traction for this enhancement." scofennell@… 29948 Use contextual controls (active_callback) API for conditionally-displayed core contextual controls Customize 4.0 lowest normal Future Release enhancement new 2014-10-13T18:18:28Z 2017-02-20T18:33:50Z See `wp-admin/js/customize-controls.js`, near the bottom. Rather than doing some unstructured JS to show/hide controls based on the values of other settings, this should use custom callbacks for the active_callback argument when adding the control (in php). celloexpressions 3 40922 Use finer-grained capabilities with `customize_changeset` post type Customize 4.7 normal normal Future Release enhancement new needs-unit-tests 2017-06-05T04:44:01Z 2020-05-16T17:41:59Z "The `customize_changeset` post type is currently registered with all of its post type capabilities set to `customize`. As part of adding changeset endpoints in the REST API (#38900): > fine-grained capabilities should be introduced for the `customize_changeset` post `caps`, instead of mapping all to `customize`. @westonruter has compiled links to previous discussions and efforts around changeset capabilities here: https://github.com/WP-API/wp-api-customize-endpoints/pull/5#discussion_r118804994. An example of unexpected behavior caused by the current mapping is where a post ID is passed to `current_user_can()`, such as {{{ current_user_can( get_post_type_object( 'customize_changeset' )->cap->edit_post, $changeset_post_id ) }}} This is equivalent to `current_user_can( 'customize' )`, which means the post ID is ignored because `map_meta_cap()` doesn't check the `$args` when mapping the `'customize'` meta cap." dlh 2 39614 Video header: Support free formats like .webm/vp8 and .ogv/theora Customize 4.7.1 normal normal Awaiting Review enhancement new 2017-01-17T16:15:52Z 2017-03-13T00:51:54Z It seems like the theme do not support free formats like webm or ogv. This concerns me as the web should use open standards and not closed ones. Content wise, WordPress supports the use of both mp4 and webm to provide broader support of browsers and it seems like the same practice should be applied here. As I'm not a great programmer I will just create this ticket as a suggestion. fnadde42 1 38797 api.previewer.refresh() could return a deferred.promise() with custom server data Customize normal normal Future Release enhancement new has-patch 2016-11-15T09:49:46Z 2021-05-24T00:02:52Z "Following a discussion (https://core.trac.wordpress.org/ticket/38728#comment:8) with @westonruter, I'd like to propose an enhancement for the `api.previewer.refresh(`) method. There might be cases when a developer needs to fire a previewer refresh after a specific customizer change, and execute other actions when this refresh has been done. From a general standpoint, I think that the asynchronous nature of the refresh makes it a good candidate for returning a deferred promise. An example of use case could be that a developer has several predefined settings configuration available for a given theme. Each time a configuration is switched to, the settings have to be changed to a set of predefined values set in the api. Those predefined values are stored server side in say a custom post type ( like the changeset for ex. ). A way to do that would be to fire an `api.previewer.refresh()` when switching to a given predefined configuration, that would be followed on `api.previewer.refresh().done( ... )` by an update of the api values, if some conditions are met. With the current api, we can add callbacks to the `'synced'` previewer event, but it will be fired on all `api.previewer.refresh()` calls, with no possibility to target a specific refresh situation that should be followed by a custom action. This problem could be solved by making the refresh return a deferred promise. This $.Deferred() would be resolve() in the `onceSynced()` callback function (of the current refreh method), taking a `sent_preview_data` object as param. While this deferred would be implemented in the `api.previewer.refresh(`) method of customize-control.js, another minor addition in customize-preview.js could allow developers to easily pass custom server data on refresh to the panel this way, and then use those data once the refresh is done. This way, it would be possible to use the following kind of syntax to fire an action on demand after a specific refresh(). {{{ api.previewer.refresh().done( function( sent_preview_data ) { // fire actions after a specific refresh, when the preview is ready and synced // the sent_preview_data, could be an object sent when the api.preview.send( 'synced', preview_data() ), // providing customizable server informations that we may need after a refresh. } ); }}} On the preview side, in order to pass a server data object to the resolve refresh, the idea would be to introduce a `new api.Value()` that could be populated before the synced event occurence. The current code in [customize-preview.js]https://core.trac.wordpress.org/browser/trunk/src/wp-includes/js/customize-preview.js#L679 : {{{ api.preview.send( 'synced'); }}} could be replaced by : {{{ api.server_data = api.server_data || new api.Value( {} ); api.trigger('before_synced', api.server_data() );//<= developers can alter the api.server_data() here, before it gets sent api.preview.send( 'synced', api.server_data() ); }}} This way, a developer could pass custom data to the panel when `api.previewer.refresh().done()`, using the `synced` event, with this type of code : {{{ <?php add_action('wp_footer', function() { if ( ! is_customize_preview() ) return; ?> <script type=""text/javascript""> jQuery( function( $ ) { wp.customize.bind( 'before_synced', function( value ) { //the developer sets the server_data here, before it is sent to the preview wp.customize.server_data( { custom_data : <?php echo get_custom_data(); ?> } ); } ); } ); </script> <?php }); }}}" nikeo 20 39681 Add RGBA to Customizer color picker Customize normal normal Future Release feature request new 2017-01-24T18:39:25Z 2019-02-08T17:15:54Z "It would be helpful to provide a UI for changing color opacity in the Customizer's color picker. Some prior discussion about supporting RGBA in Iris here: https://github.com/Automattic/Iris/issues/13 See #21059" melchoyce 1 53807 Add function or filter to send all customizer setting default values to the database upon theme installation Customize normal normal Future Release feature request new dev-feedback 2021-07-27T23:41:15Z 2021-08-02T13:18:23Z "I am learning theme development and developing my first WordPress theme from scratch. My new theme contains ''many'' customizer settings, most of which include default values. I discovered recently that upon theme installation, these customizer default values only appear in the customizer view, but are not entered into the database and are not shown on the front end. To insert the customizer default values into the database so that they display on the front end upon theme installation, I believe (?) each theme mod must be manually entered into the database by using set_theme_mod(). This requires duplication of every default value twice within the theme code, and the addition of many lines of code for themes that create many new customizer settings. I recommend creating a function or filter that theme developers can activate within functions.php to send all default customizer values to the database upon theme installation. This will avoid having to duplicate default values in both add_setting() and set_theme_mod() and reduce lines of code in themes." curtiskessler 46629 Allow replacing placeholders in starter content posts/pages content Customize 4.7 normal normal Future Release feature request new 2019-03-24T21:43:51Z 2019-06-12T18:32:59Z The ability to create posts/pages doesn't really offer a whole lot of use out the gate unless a theme uses hardcoded urls for images in the content. It would be a great improvement if the same handling for placeholders in menus/theme_mods/options could be applied in context of posts/pages content. timph 6 38900 Customize: Add REST API endpoints for changesets Customize normal normal Future Release feature request assigned 2016-11-22T04:54:47Z 2020-11-06T13:51:48Z "In WordPress 4.7, the `customize_changeset` post type was introduce to persistently store the `customized` state until the staged changes are published (see #30937). In 4.7 the changesets were managed using the same `customzie_save` Admin Ajax request that has always been used to send customizer changes to WordPress. However, changesets are designed so that they needn't be used in the current “Customizer” app at all. A `customize_changeset` post can be created by any means (such as via WP-CLI) and as long as the HTTP request includes the `customize_changeset_uuid` query parameter, the changes stored within the changeset will be applied to preview in the response. As such, changesets for headless sites and apps consuming the REST API to also make use of WordPress's framework for previewing changes. In addition to an app being able to preview changes in read requests to the REST API, changesets must also be able to be written via the REST API. This is also relevant to creating new changesets for previewing changes on a site's frontend (frontend editing). The Customize Snapshots has some initial read-only endpoints for the REST API: https://github.com/xwp/wp-customize-snapshots/pull/63 It did not yet implement support for writing changes: https://github.com/xwp/wp-customize-snapshots/issues/64 A few points about what how the changeset endpoints could behave: - Allow changesets posts to be created and updated, ensuring that `content` is in the proper format as an object mapping setting IDs to setting params. The `content` could be the decoded contents of the `post_content`. - Prevent editing of `slug`, since the UUID should never change. - Allow making changes to the `content` via `PATCH` method updates. - Use the UUID (`post_name`) of the `customize_changeset` posts as the resource IDs as opposed to the underlying post ID. We really don't need regular post IDs since snapshots have UUIDs. Really a random `PUT` request could be made to create a snapshot if it just supplies a proper UUID. - Let the endpoint be `/changesets` as opposed to `/customize-changesets`. Ideally the `customize_save` Ajax requests initiated by `wp.customize.previewer.save()` and `wp.customize.requestChangesetUpdate()` could both make use of the changesets endpoints, replacing the use of the `customize_save` Admin Ajax request. Updates to a changeset should be invoking `WP_Customize_Manager::save_changeset_post()` to apply the changes to the post. Feature plugin repo: https://github.com/WP-API/wp-api-customize-endpoints" westonruter 8 42644 Customize: Add rich text control for managing tagline and new footer credit theme support Customize 4.8 normal normal Future Release feature request new 2017-11-20T19:47:50Z 2019-01-09T00:15:08Z "In #35243 we extended the Text widget to add TinyMCE. This depended on #35760 which introduced the `wp.editor.initialize()` API for dynamically-instantiating TinyMCE editors. Similarly in #41897 we introduced a Code Editor control which leveraged the `wp.codeEditor.initialize()` API introduced in #12423. It would seem that there should similarly be a rich text control available in the Customizer. The rich text control could be used to manage the site's tagline. This rich text control could also be leveraged by themes to manage a site's footer credits; the control could appear in the Site Identity section. Instead of “Powered by WordPress” being hard-coded into the theme's footer, it could instead be the default value for a `footer_credit` option. This would then allow a user to easily add additional site credits and copyright information to the footer of their site, without having to modify the theme template to do so. WordPress.com has a dropdown control with preset options for this “powered by” text and then a final option to hide for business plans. There could also be a “custom” option which could then reveal a footer credit rich text input where a user could supply links and other content allowed by the Text widget. Naturally the bundled core themes in WordPress.org could make this available by default without requiring a business plan. A new `footer_credit` theme support could be added support added to Twenty Seventeen to take advantage of this new functionality. Previewing the change to the footer text should be done with selective refresh. The rich text control could also be used in themes for managing other parts of the template, like business hours appearing in the header, without having to add a new widget sidebar. Editor should only initialize once the control's containing section is expanded, as was done with the Code Editor control. " westonruter 12 39752 Customize: add a post editing flow Customize normal normal Future Release feature request new 2017-01-31T20:09:14Z 2020-10-11T15:47:50Z "The Customizer has always prevented following any non-frontend links in the preview, which has disabled post links provided by `edit_post_link()` from working. This was worked around in #38648 by no-op'ing the edit links. One approach to solving this problem would be to bring post editing into the Customizer, which has been explored: https://github.com/xwp/wp-customize-posts Another approach would be: 1. Navigate to the appropriate edit post screen when an `edit_post_link()` is clicked on 2. Before 1), save a Customize changeset if the state is unsaved 3. Provide a UI on the edit posts screen to return to the Customizer after editing is complete 4. When returning to the Customizer, restore the changeset stored in 2) if one was needed. This would solve the problems of there being no way to edit posts from the Customizer, while not trying to stuff a (duplicate) post editing UI into a space that is not well-suited to it. This could also help to editing posts created in nav menus #38002" mattwiebe 28 21666 Customizer Revisions (previously reset/undo/revert) melchoyce Customize 3.4.2 normal normal Future Release feature request assigned 2012-08-23T10:09:49Z 2021-05-24T14:32:56Z "It would be useful to be able to reset the settings to the defaults as specified in the add_setting() class method when setting up each setting. These could be reset on a section by section basis and/or for ALL settings." dgwyer 5 40451 Customizer: Introduce plugin management Customize 4.7.3 normal normal Future Release feature request new dev-feedback 2017-04-14T18:23:53Z 2019-01-15T21:13:52Z "There is currently not a way to discover or upload plugins in the customizer, the only way is in WP Admin. https://codex.wordpress.org/Managing_Plugins#Automatic_Plugin_Installation https://codex.wordpress.org/Managing_Plugins#Manual_Plugin_Installation Themes already have #37661 and #40278." lukecavanagh 4 35857 Add QUnit tests for Customizer preview, including Selective Refresh Customize 3.4 normal normal Future Release task (blessed) assigned needs-unit-tests 2016-02-18T08:26:15Z 2023-03-17T17:06:23Z "Initial Customizer unit tests for PHP and JS were added in #28579. The QUnit tests were done specifically for the Customizer controls (pane) and not the Customizer preview. This was understandable since he preview was devoid of much unique JS functionality. With the introduction of the Selective Refresh component (#27355), this has changed. There needs to be a new QUnit test suite specifically for the Customizer preview. See @valendesigns initial foundation work here: https://github.com/xwp/wp-customize-partial-refresh/pull/32/files#diff-6fcbfd120899db12c05cdb1f6142cd87 " westonruter 1 30181 Add more Underscore.js array methods to wp.customize.Values and re-use _ for Customizer JS methods Customize 3.4 lowest normal Future Release task (blessed) new 2014-10-29T18:53:41Z 2017-03-14T17:02:13Z "Now that the Customizer explicitly uses Underscores.js (#26061), we should re-use Underscore.js as much as possible to eliminate duplicated logic, and to flesh out our Customizer models to have an API consistent with Backbone models. This depends on having QUnit tests (#28579)." westonruter 9 40278 Customizer: Introduce theme uploading Customize 4.9 normal normal Future Release task (blessed) new 2017-03-27T18:12:04Z 2020-11-22T16:01:06Z "This is an offshoot of #37661. Please note: this ticket only addresses uploading themes to the Customizer. It does not touch on browsing and discovering new themes. Theme switching in the Customizer was introduced in 4.2. Within the Customizer, you can preview any theme you currently have installed on your site. This feature would allow you to upload new themes directly from the Customizer, so you can preview them immediately without having to jump back into your themes admin screen. Additionally, this introduces a new header for the Themes section, which was initially mocked up in #21666. This header will hopefully clarify some of the confusion between going in and out of the Themes section, by adapting the back arrow the other Customizer panels use. See mockups for specific details and interactions." melchoyce 1 43664 $wpdb->get_results fails in specific cases with non-latin charaters in where clause Database 4.9.4 normal normal Awaiting Review defect (bug) new 2018-03-30T08:37:47Z 2018-04-08T19:09:08Z "Let's say we have user with display name 'Алексей'; {{{$wpdb->get_results(""SELECT user_login FROM $wpdb->users where `display_name`='Алексей' "", ARRAY_A);}}} executes normally {{{$wpdb->get_results(""SELECT user_login AS 'russian person' FROM $wpdb->users where `display_name`='Алексей' "", ARRAY_A);}}} executes normally as well but {{{$wpdb->get_results(""SELECT user_login AS 'person from Russia' FROM $wpdb->users where `display_name`='Алексей' "", ARRAY_A);}}} returns empty array and results in error: [table <table_prefix> Russia.doesn't exist] SHOW FULL COLUMNS FROM `Russia` That means 'from' in 'person from Russia' somehow gets in sql It's an obscure enough situation, but might signify that something is wrong with wpdb query handling" altert 46923 $wpdb->get_var() — empty sting becomes a NULL Database 5.1.1 normal normal Awaiting Review defect (bug) new 2019-04-14T15:47:24Z 2019-04-15T17:07:42Z "Because of the following condition, we get `NULL`, even if a real field value is an empty string! {{{#!php <?php return ( isset( $values[ $x ] ) && $values[ $x ] !== '' ) ? $values[ $x ] : null; }}} [source:tags/5.1.1/src/wp-includes/wp-db.php?marks=2460-2478#L2455 See `wp-db.php` Line 2477] I think it is better to delete `$values[ $x ] !== ''` check and return field value as it is if it exists - what is usually meant by NULL in PHP (empty string is not null!). " Tkama 6 37678 Add an action hook for plugins to do database upgrades on Database normal normal Awaiting Review defect (bug) new dev-feedback 2016-08-16T18:10:59Z 2019-04-18T21:27:24Z "Currently, plugins that have custom database tables usually hook into `admin_init` and pray for rain when comes to their database alterations. This pollutes the `admin_init` hook namespace quite a bit, particularly with database actions that are almost always necessary in order for plugins to actually work correctly. It would be nice if WordPress core had a dedicated action hook meant for executing database alterations & upgrades, no different than there being one for `plugins_loaded`, `template_redirect`, et all... I'm conflicted on where exactly this hook should be. I'm 95% sure it belongs somewhere after `admin_init` so that admin area plugins have a chance to hook everything in. I'm also 95% certain I don't want this as part of the plugin activation sequence, because it's becoming more common to deploy plugins via WP CLI, version control, or some other deployment process, and activation hooks aren't usually ran that way." johnjamesjacoby 1 54801 Avoid WPDB errors when examining installation state of a site/network Database 3.0 normal normal Future Release defect (bug) new has-patch 2022-01-12T15:15:04Z 2022-09-27T19:12:20Z "When trying to discover whether a given site is already installed properly or still needs to have its installation routine triggered, the queries that are executed by default generate a two WPDB errors on empty sites that cannot easily be avoided: - Enumeration of site IDs triggers an error for the missing `wp_blogs` table; - Setting of the site name property triggers an error for the missing `wp_sitemeta` table. [[Image(https://p141.p3.n0.cdn.getcloudapp.com/items/xQuzDx5J/af6ecbf1-e74a-4237-82d6-47cb0b18fd26.jpeg?v=d5c251cf4ad17f9c808bdf8394034636)]] This is an operation that is commonly done via WP-CLI, and while the errors do not change the outcome (i.e. the check will fail either way), they do fill up the logs unnecessarily for an operation that should be safe to do. ~~I'd suggest doing a quick check on these fundamental operations to see if the tables are present before manipulating them.~~ ~~**Performance considerations**~~ ~~The suggested fix (see PR that will follow) adds two DB requests which, even though they should be very cheap, should be properly cached to ensure no important negative performance impact.~~ ~~The alternative would be to change the logic in WPDB so that it can be silenced for operations that are known to be failing in an expected manner. However, that seems like a major change throughout multiple parts of the code.~~ ~~I'm happy to discuss alternative ways of fixing this, as I'm not too happy with introducing two DB requests like that.~~ I suggest using `$wpdb->suppress_errors()` around the two problematic calls to avoid showing these errors." schlessera 39811 Bug maybe_unserialize() broke mysql data. Database 4.7.2 normal normal Awaiting Review defect (bug) new 2017-02-08T13:53:06Z 2017-02-20T06:34:57Z "I have an issue what is realated to maybe_unserialize() function. Example: When someone made MySQL export or backup and you want that data to import in database again, widgets, some plugin setup, some template setup, particular WPBakery Visual Composer or similar visual editors lost it's setup. To get all work well I change function into this: {{{ function maybe_unserialize( $original ) { if ( is_serialized( $original ) ) { $fixed = preg_replace_callback( '!(?<=^|;)s:(\d+)(?=:""(.*?)"";(?:}|a:|s:|b:|i:|o:|N;))!s', 'serialize_fix_callback', $original ); return @unserialize( $fixed ); } return $original; } function serialize_fix_callback($match) { return 's:' . strlen($match[2]); } }}} -wit this code I get all data to work well but I'm unable to install new plugins or made any kind of update. What to do with it, how to fix this problem and can you made some update to this code or add some solution to not happen this problems? Here is also my StackOwerflow question: http://wordpress.stackexchange.com/q/255591/82023 Thanks!" ivijanstefan 60505 Column names in wpdb->insert aren't sanitized. Database 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-12T13:14:50Z 2024-02-12T21:40:45Z "Column names in wpdb->insert aren't sanitized, although the documentation says: ""Data to insert (in column => value pairs). Both $data columns and $data values should be “raw” (neither should be SQL escaped)."" Steps To Reproduce: {{{#!php <?php global $wpdb; $wpdb->insert(""wp_posts"", array(""id`) VALUES (sleep(1)); -- "" => 0)); }}} This will sleep one second. The WordPress security team has reviewed this and asked to open a public ticket. " kazet 7 26858 Comment duplicate check has a slow query pbearne Database 2.0 normal normal Future Release defect (bug) assigned has-patch 2014-01-17T04:38:22Z 2024-03-21T17:22:47Z "When checking for duplicate comments, the query is pretty slow: {{{ SELECT comment_ID FROM wp_comments WHERE comment_post_ID = '1' AND comment_parent = '0' AND comment_approved != 'trash' AND ( comment_author = 'foo' OR comment_author_email = 'foo@bar.com' ) AND comment_content = 'some content' LIMIT 1; }}} This will use the comment_post_ID index, which means it will scan all comments on that post. For a post with thousands of comments, this starts to get slow. Instead, we should change `KEY comment_post_ID (comment_post_ID)` to `KEY comment_post_ID (comment_post_ID,comment_content(255))`, to cover this case. Props [http://www.mysqlperformanceblog.com/2014/01/16/analyzing-wordpress-mysql-queries-query-analytics/ MySQL Performance Blog] for finding this." pento 58559 Database error bug in wordpress current version Database normal normal Awaiting Review defect (bug) new 2023-06-16T13:10:15Z 2023-07-03T17:13:01Z "{{{ 2023-06-16 8:52:53 47 [Warning] Aborted connection 47 to db: 'wordpressdb' user: 'wpuser' host: 'localhost' (Got an error reading communication packets) 2023-06-16 8:52:53 46 [Warning] Aborted connection 46 to db: 'wordpressdb' user: 'wpuser' host: 'localhost' (Got an error writing communication packets) }}} I am constantly seeing read and write errors in database due to wordpress in the current version. I have been running wordpress for years. Upon checking the logs the read errors last query is {{{ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND (wp_posts.post_author = 2) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish'))) ORDER BY wp_posts.post_date DESC LIMIT 0, 32 }}} The write error last query is {{{ SELECT DISTINCT post_author FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' LIMIT 2 }}} Both queries execute fine manually. The problem is not related to timeouts or max allowed packets as both execute manually. I noticed they are both increasing the aborted clients value in mysql. There is also no quit sent at the end of the mysql connections. It seems to be a bug within wordpress. I have literally gone through everything else possible to solve this bug." zoddshop63 1 38921 Defining filter pre_get_table_charset causes errors Database 4.2 normal normal Future Release defect (bug) new has-patch 2016-11-23T23:17:46Z 2020-05-27T08:29:22Z "In wp-db.php::get_table_charset(), a filter is defined, '''pre_get_table_charset'''. However, if this filter is defined, wp-db.php::get_col_charset() throws errors. This is because the latter assumes that it can find cached results cached in: {{{ $this->table_charset[]; }}} The assumption seems to be that if you add the '''pre_get_table_charset''' filter, you will also define the '''pre_get_col_charset''' filter. Code reference: [https://github.com/WordPress/WordPress/blob/master/wp-includes/wp-db.php#L2437] Note: defining this filter lets you hard-code the charset of tables, rather than doing a database lookup every time. This can be done quite safely because the most recent upgrade forced our DB tables to be '''utf8mb4'''." haoran 1 60037 Differentiate between minimum required MySQL and MariaDB versions Database normal normal Future Release defect (bug) new 2023-12-08T14:13:08Z 2024-02-16T23:23:14Z "Currently, there is only [https://core.trac.wordpress.org/browser/tags/6.4.1/src/wp-includes/version.php#L47 one minimum required version defined] and checked against for database software when determining if a server is capable of installing and running WordPress. It's currently set at `5.0`, though that will hopefully be updated to `5.5` in WordPress 6.5 (see #60036). This has worked over the past 12+ years without issue, even though WordPress supports running either MySQL or MariaDB. This is due to the fact that MariaDB versions previously followed MySQL's numbering scheme with each release representing a fully-functional drop-in replacement. However, in 2012 this changed when MariaDB jumped from version `5.5` to `10.0`, where they have continued to increment from (the current LTS version is `10.11`, and current short term support version is `11.2`). In the near future when support for any version of MariaDB > 5.5 is dropped, this check will become useless, because MySQL 5.7, 8.0, 8.1, etc. will always be lower than 10.0, 10.11, 11.0, etc. An additional angle to this problem is [https://make.wordpress.org/core/2023/04/19/status-update-on-the-sqlite-project/ a recent proposal to add support for SQLite]. The most recent version of that software is `3.44.2`. SQLite is not a drop-in replacement in the same way MariaDB is. But with that and other challenges to adding support aside, no versions of SQLite would work in WordPress today (even with the minimum currently set at `5.0`). The relevant code should be updated to ensure that the correct minimum version for the current database type is used when checking a server is properly equipped to run WordPress. Follow up to #60036." desrosj 57385 Disable foreign key checks when dropping tables inside wp_uninitialize_site() function johnjamesjacoby* Database normal normal Awaiting Review defect (bug) accepted dev-feedback 2022-12-24T15:01:09Z 2024-01-12T18:07:05Z "By default when removing the tables from a subsite, if the table has foreign key constraint it wont drop the table resulting in tables not being removed. so this line should be changed from this to {{{ foreach ( (array) $drop_tables as $table ) { $wpdb->query( ""DROP TABLE IF EXISTS `$table`"" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } }}} {{{#!php <?php $wpdb->query('SET FOREIGN_KEY_CHECKS=0;'); foreach ( (array) $drop_tables as $table ) { $wpdb->query( ""DROP TABLE IF EXISTS `$table`"" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared } $wpdb->query('SET FOREIGN_KEY_CHECKS=1;'); }}} or any other better alternative." naveen17797 2 60362 "Emojis cause ""Updating failed. Could not update post in the database."" error" Database normal normal Awaiting Review defect (bug) new has-patch 2024-01-28T01:59:48Z 2024-02-08T03:44:35Z "Hi guys I recently discovered what I think is a bug, 'confirmed' by the folks at Brainstorm Force. As of 26 January, I was suddenly unable to update certain posts and pages in WordPress. When I tried to save, I received the ""Updating failed"" error, but had made no backend or other changes to spontaneously create this error. I use Gutenberg. I stumbled across a GitHub thread about someone with a lightning emoji in a post with the same problem. With this in mind, I removed all emojis from the pages and posts that could not save and sure enough, all functionality was restored to normal after doing so. I verified this several times by re-introducing emoijis, which reintroduced the error. I've reported this to my host, Brainstorm Force (Astra theme devs) and now here. I hope it is of some assistance. Regards Mike liquidaudio.com.au" mikefitzman 2 40953 Empty values are handled inconsistently between wpdb->get_results() and wpdb->get_col() Database 0.71 normal normal Awaiting Review defect (bug) new dev-feedback 2017-06-08T17:18:39Z 2017-06-08T17:51:19Z "As outlined and discussed yesterday in Slack [https://wordpress.slack.com/archives/C02RQBWTW/p1496821047585923 here], [https://wordpress.slack.com/archives/C02RQBWTW/p1496844209230845 here], and [https://wordpress.slack.com/archives/C02RQBWTW/p1496850305693715 here], `wpdb` treats empty stored values differently in the `get_results()` and `get_col()` methods. This is because of the use of `get_var()` inside of `get_col()`, which defaults to null for empty values. For example, let's say you're running a query like `SELECT rate FROM sometable` through `get_results()`. With the default parameters and empty values for the column, you'd get something like the following: {{{ array(2) { [0]=> object(stdClass)#1734 (1) { [""rate""]=> string(0) """" } [1]=> object(stdClass)#1735 (1) { [""rate""]=> string(0) """" } } }}} If you ran that same query through `get_col()`, you'd instead get an array of `null` values: {{{ array(4) { [0]=> NULL [1]=> NULL } }}} This seems oddly inconsistent. And writing tests for the workaround is annoying in that creates the need to understand the core workaround in the future. Now, this code goes all the way back to [112], so changing the default behavior is not even on the table. Some solutions brainstormed with @boonebgorges and @johnjamesjacoby include: * A global flag to check against, i.e. `wpdb_get_col_force_strings( true );` * A global flag in the form of a constant * A settable `wpdb`-level flag * A new argument for `get_col()` to selectively change the behavior. The global flag ideas are attractive because they cover the entire DB stack: whether you're using the abstraction layers like `get_posts()`, `WP_Query`, or any of the other query classes, it ''just works'' all the way down the line. The settable `wpdb` flag is attractive only if you're really working with direct queries like we are in our custom table query classes. The same goes for a new argument in `get_col()`, though both could be implemented higher up the stack in the form of arguments or filters. I think a good first step here would be to try to benchmark performance for all of the listed options, just to see what we're looking at. The global flag choices seem like they could be the least impactful. In the short term, our workaround for AffiliateWP will probably be to create a wrapper for `get_results()` that simply plucks the values out so we can maintain consistency, but I'm not a big fan of writing and maintaining core workarounds in perpetuity. Whichever way we go in core, this is something that we should probably address. Who knows how many workarounds there are currently in the wild to fix this." DrewAPicture 55907 Failed to insert log entry: value too long Database 5.9.3 normal normal Awaiting Review defect (bug) new 2022-06-03T06:30:35Z 2022-06-03T06:30:35Z "Error log shows the following message: `Failed to insert log entry: WordPress database error: Processing the value for the following field failed: [COLUMN]. The supplied value may be too long or contains invalid data.` There's a chance this happens when the message contains an ampersand character (see [https://core.trac.wordpress.org/ticket/32315#comment:97 here]). Regardless, if a value cannot be inserted into the database, it should at least be written to the error log, as this provides context for an otherwise generic message. This should be the case with ANY log insert failure, not just long ones. Another helpful thing would be to output the call stack. In this particular case, the ""Failed to insert log entry"" doesn't seem to be written by WordPress core, and the absence of context makes it very difficult to isolate the cause. Seeing the field value and call stack would be of great help." galbaras 7 52496 Improve MySQL 8.0 support Database 5.4 normal normal Future Release defect (bug) new 2021-02-11T07:11:12Z 2024-02-05T20:45:49Z "While setting up the GH Action for the WP Importer plugin which runs the plugin integration tests (using the WP Core test framework) against various PHP/MySQL/WP combinations, I noticed a number of PHP/MySQL 8.0 combinations which error out during the running of the WP Core test bootstrap with errors which seem to indicate underlying incompatibilities with MySQL 8.0. Relevant files in the Importer plugin setting up the test environment: * https://github.com/WordPress/wordpress-importer/blob/master/phpunit/install.sh * https://github.com/WordPress/wordpress-importer/blob/master/phpunit/bootstrap.php Test run showing the errors: https://github.com/WordPress/wordpress-importer/actions/runs/556887133 == Errors reported: PHP 5.6 / MySQL 8.0 / WP 5.5 and latest (5.6) (Error line numbers are based on latest) {{{ PHP Warning: mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /tmp/wordpress/wp-includes/wp-db.php on line 1653 PHP Warning: mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /tmp/wordpress/wp-includes/wp-db.php on line 1653 PHP Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /tmp/wordpress/wp-includes/wp-db.php on line 1685 PHP Warning: mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /tmp/wordpress/wp-includes/wp-db.php on line 1685 }}} PHP 7.0 - 7.3 / MySQL 8.0 / WP latest (5.6) {{{ PHP Warning: mysqli_real_connect(): The server requested authentication method unknown to the client [caching_sha2_password] in /tmp/wordpress/wp-includes/wp-db.php on line 1653 PHP Warning: mysqli_real_connect(): (HY000/2054): The server requested authentication method unknown to the client in /tmp/wordpress/wp-includes/wp-db.php on line 1653 }}} **Note:** ''**with the exact same setup, the PHP 7.4/8.0 - MySQL 8.0 - WP 5.6 test runs will pass.**'' == Investigating needed I haven't dug into the code. Reporting it here for further investigation. I imagine that either the PHP/MySQL version check could be adjusted to indicate that MySQL 8.0 is only supported when running on PHP 7.4 or higher. Alternatively, the underlying issues will need to be solved. I also wonder if the WP Core tests in CI are being run against enough PHP/MySQL combinations, as I would imagine that these issues could have been discovered earlier if the above problem combinations would haved been used in WP Core CI. Related: #49344 #51740" jrf 1 50789 Improve WPDB logic around information_schema Database 5.5 normal normal Awaiting Review defect (bug) new 2020-07-27T17:43:37Z 2021-06-11T16:29:40Z "WooCommerce uses a query on `information_schema.table_constraints` to determine whether it needs to add a foreign key constraint to one of its tables. {{{ SELECT COUNT(*) AS fk_count FROM information_schema.TABLE_CONSTRAINTS WHERE CONSTRAINT_SCHEMA = '' AND CONSTRAINT_NAME = 'fk_wp_12345_wc_download_log_permission_id' AND CONSTRAINT_TYPE = 'FOREIGN KEY' AND TABLE_NAME = 'wp_12345_wc_download_log' }}} `$wpdb->get_table_from_query` returns `information_schema` which is not a table, it is a database containing the table `TABLE_CONSTRAINTS`. So it seems there is room to improve this method to extract the table name in cases where it is preceded by a database name. However, this is not the goal of this ticket. In the specific case of `information_schema` tables, we're more interested in the table referenced in the `WHERE` clause. My use case involves a `wpdb` drop-in, WordPress.com's hyperdb, which was the original source of this method when it was added in [30345]. We use hyperdb to map queries to database servers using table names as map keys. Given a table like `wp_12345_posts` we connect to the right database. The database `information_schema` exists in all database servers. When WooCommerce queries the table `table_constraints` it's looking for information about the table `wp_12345_wc_download_log`. To route the query to the appropriate database server, we are interested in this table name. I would propose adding this before the first `preg_match` in `get_table_from_query`: {{{ // SELECT FROM information_schema.* WHERE TABLE_NAME = 'wp_12345_foo' if ( preg_match('/^\s*' . 'SELECT.*?\s+FROM\s+`?information_schema`?\.' . '.*\s+TABLE_NAME\s*=\s*[""\']([\w-]+)[""\']/is', $q, $maybe) ) return $maybe[1]; }}} This returns `wp_12345_wc_download_log` which allows us to route the query to the correct database server. I am able to patch WordPress.com's drop-in to check this pattern before calling the parent method in core's `wpdb`. So there is no need to rush on our behalf. Does anyone know of a use case that relies on the existing implementation? It might be argued that a caller of this function would expect the return to be `TABLE_CONSTRAINTS` in this case. However, I was unable to find any tickets requesting a fix for the current behavior. I believe the best fix would be to return the table name from the `WHERE` clause." andy 44973 Issues with $wpdb->get_col_info Database 4.9.8 normal normal Awaiting Review defect (bug) new has-patch 2018-09-20T21:37:49Z 2018-09-23T14:50:24Z "When attempting to get certain column information using $wpdb->get_col_info I get the following error notice: Notice: Undefined property: stdClass::$primary_key in ..../wp-includes/wp-db.php on line 3211 Similar for 'not_null' and several of the other options. Name, type, etc. work just fine. It looks like not all the properties are set for all the options listed in the docs - https://codex.wordpress.org/Class_Reference/wpdb#Getting_Column_Information" drocks13 1 60503 MySQL VALUES function deprecated in MySQL 8 Database normal normal Awaiting Review defect (bug) new 2024-02-12T12:19:23Z 2024-02-12T22:19:14Z "e.g. for add_option SQL query (but issue happens in other places too, but not many) {{{#!php ""INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`)"" }}} we get the SQL logs spammed with: >'VALUES function' is deprecated and will be removed in a future release. Please use an alias (INSERT INTO ... VALUES (...) AS alias) and replace VALUES(col) in the ON DUPLICATE KEY UPDATE clause with alias.col instead Since WP 6.4 minimum SQL is 8+, so this deprecated syntax isn't necessary anymore, since the new syntax is supported in all supported SQL versions. This should have been fixed in WP 6.4, but at least now with WP 6.5 release, as it's easy to fix and avoid having a performance penalty from the deprecation notice handling/reporting. " kkmuffme 58965 No luck running WP when running PHP 8.2.8 + mysql Ver 15.1 Database 6.2.2 normal normal Awaiting Review defect (bug) new 2023-08-02T22:29:45Z 2023-08-02T23:00:52Z "Welp, cannot figure out how to get the latest version of WP installed...when I load it I get this error message: Your PHP installation appears to be missing the MySQL extension which is required by WordPress. Please check that the mysqli PHP extension is installed and enabled. I am using php-fpm and can see I have enabled: mysqlnd, pdo, pdo_mysql Obv can't run mysqli anymore...so I am not even sure why I am seeing this mysqli error? Anyone know how to work around it? Hopefully, it's just something dumb on my part but I am a bit restricted on the server this is running. " boyz2men 49482 Non-english slug can sometimes cause an error in WordPress query Database 5.3.2 normal normal Awaiting Review defect (bug) new 2020-02-20T08:49:16Z 2020-02-20T11:00:26Z "The error is {{{ Warning: vsprintf(): Too few arguments in wp-includes/wp-db.php on line 1397 }}} I found the root cause that if the encoded slug contains the {{{%f}}} or {{{%[0-9]f}}}. it will be converted to capital F (wp-db.php:1359) and will not be properly escaped (wp-db.php:1361) I found a ticket here #49140 but it has been closed." panjmp 53033 Remove comments, ping, to_ping columns from posts table Database normal normal Awaiting Review defect (bug) new 2021-04-14T22:10:47Z 2021-04-15T11:36:50Z The wp posts table still holds old columns that do not fit the future. The post table should be cleaned, the pings and comments features moved to meta and child custom post types. cacaflow 41278 SQL_CALC_FOUND_ROWS slow query Database 4.8 normal normal Awaiting Review defect (bug) new 2017-07-09T17:12:10Z 2017-07-19T18:41:46Z "In the logs of slow queries when searching for steel, the following types of logs appear: {{{ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND (((wp_posts.post_title LIKE '%donald%') OR (wp_posts.post_excerpt LIKE '%donald%') OR (wp_posts.post_content LIKE ‘%donald%’)) AND ((wp_posts.post_title LIKE '%trump%') OR (wp_posts.post_excerpt LIKE ‘%trump%’) OR (wp_posts.post_content LIKE '%trump%'))) AND wp_posts.post_type IN ('post', 'page', 'attachment') AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled' OR wp_posts.post_author = 186 AND wp_posts.post_status = 'private') ORDER BY (CASE WHEN wp_posts.post_title LIKE ‘%donald trump%' THEN 1 WHEN wp_posts.post_title LIKE ‘%donald%’ AND wp_posts.post_title LIKE '%trump%' THEN 2 WHEN wp_posts.post_title LIKE '%donald%' OR wp_posts.post_title LIKE '%trump%' THEN 3 WHEN wp_posts.post_excerpt LIKE '%donald trump%' THEN 4 WHEN wp_posts.post_content LIKE '%donald trump%' THEN 5 ELSE 6 END), wp_posts.post_date DESC LIMIT 0, 30; }}} How can I eliminate it?" lubimow 5 40088 Stop creating the `wp_links` database table Database 3.5 normal normal Future Release defect (bug) new close 2017-03-09T20:29:37Z 2022-08-10T19:19:35Z "In WordPress 3.5 (2012) the Links feature was disabled by default in new WordPress installations, and was hidden for old installations that had no links. See #21307. Every new WordPress site since then (including multisite) has continued to create an empty `wp_links` database table for a feature that was sunsetted 5 years ago." johnjamesjacoby 2 51486 The add_option function should not be able to update existing rows in the database. Database 2.9 normal normal Awaiting Review defect (bug) new needs-unit-tests 2020-10-09T01:12:29Z 2022-06-09T12:18:11Z "In certain edge cases, `add_option` is able to update existing option values. This should not be possible. If SQL is executed which instructs ""Insert XYZ"" into database, then the insert should fail if the key already exists in the database, unless the SQL specifies that an UPDATE should happen. The `add_option` function does check first to see if an option exists before attempting to add it to the database. In the overwhelming majority of cases, this works fine because when the option exists the function will return early before attempting to insert into the database. However, consider a scenario where an object cache is being used. And further consider that the object cache may report incorrectly. If the object cache tells `add_option` that the value doesn't exist in the database (but in reality it does!), then `add_option` continues on and attempts to insert the supposedly new option. In that particular circumstance, the SQL query, shown below, is executed which will insert the new row. And in the event that the option already exists, it will be overwritten. The issue here is that `add_option` shouldn't be able to update the existing value. The query should fail. Why is the `ON DUPLICATE KEY UPDATE` clause included here? {{{#!php <?php // Code here is from wp-includes/option.php Line 581: $result = $wpdb->query( $wpdb->prepare( ""INSERT INTO `$wpdb->options` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE `option_name` = VALUES(`option_name`), `option_value` = VALUES(`option_value`), `autoload` = VALUES(`autoload`) "", $option, $serialized_value, $autoload ) ); }}} I realize this is an edge case. If the object cache being used gives bad information to `add_option` then really its the object caching plugin at fault. However, I can't understand a possible circumstance where `add_option` should ever UPDATE an existing option. The SQL here should not include `ON DUPLICATE KEY UPDATE`. Am I missing something? Is there a good reason for that clause? What would happen if that clause were removed?" khag7 1 43893 The maybe_create_table() function has two definitions Database low normal Awaiting Review defect (bug) new dev-feedback 2018-04-28T14:22:56Z 2020-09-01T16:05:56Z "The `maybe_create_table()` function has two definitions: 1. https://github.com/WordPress/wordpress-develop/blob/c71a898f784d8435c07bcf9ec9e30560dd3abe19/src/wp-admin/includes/upgrade.php#L2187-L2219 2. https://github.com/WordPress/wordpress-develop/blob/c71a898f784d8435c07bcf9ec9e30560dd3abe19/src/wp-admin/install-helper.php#L40-L70 The latter is contained within a `function_exists()` check, but this still means the function's behaviour can differ depending on which definition happens to load. The function is not used at all in WordPress core. It (they?) should probably be deprecated." johnbillion 2 43578 Unexpected MYSQL data format Database 4.9.4 normal normal Future Release defect (bug) new dev-feedback 2018-03-19T19:36:00Z 2020-02-03T18:01:45Z "When I use field `user_id` in `$wpdb->insert` it set value to Integer, but the table I add data into has `user_id` text field. It works normally only if `format` parameter specified. Example: {{{#!php <?php $wpdb->query(""CREATE TABLE {$wpdb->prefix}_test (`id` INT, `user_id` VARCHAR(16))""); $wpdb->insert(""{$wpdb->prefix}_test"", ['id' => 1, 'user_id' => 'stringKey']); print_r($wpdb->get_row(""SELECT * FROM {$wpdb->prefix}_test WHERE id = 1"")); }}} Result: `stdClass Object ( [id] => 1 [user_id] => 0 )`" loranrendel 4 39273 Updating to 4.7 can break serialized data because $wpdb->determine_charset now forces utf8 when DB_CHARSET is set to utf8mb4 Database 4.7 normal normal Awaiting Review defect (bug) new dev-feedback 2016-12-14T05:05:58Z 2019-03-15T02:23:09Z "I've seen this happen several times now. `DB_CHARSET` is defined as `utf8mb4` and the columns in the database are set to `utf8mb4_unicode_ci`. However, the changes in 38581 are now forcing `utf8` causing the serialized array lengths to change when the data is queried and breaking them because the charsets don't match. I can't say for certain because I'm debugging this issue on a site that isn't mine, but I don't think anyone explicitly set `DB_CHARSET` to `utf8mb4` in `wp-config.php`. It appears that at one point, WordPress set that define and created (or updated) those tables to `utf8mb4_unicode_ci`. Deleting the `DB_CHARSET` define fixes the issue but that doesn't seem like an ideal solution for users who update and end up with a broken site. I'll admit this is a bit over my head, so I'm hoping someone smarter than me might be able to chime in with some more info :) I'm definitely available to keep the conversation going. Thanks! " justinbusa 30795 Upgrade bug affecting indexing Database 2.1 normal normal Awaiting Review defect (bug) reopened 2014-12-20T16:29:49Z 2019-03-22T13:46:01Z "Every time WordPress is updated I was getting an entry in my error_log as follows: WordPress database error Duplicate key name 'type_status_date' for query ALTER TABLE wp_posts ADD KEY type_status_date (post_type,post_status,post_date,ID) made by wp_upgrade, make_db_current_silent, dbDelta After some heavy back tracking through the code, this is coming from a mismatch between the reported indexing of my database and what WordPress is expecting. in particular to the 'post_status' part. It seems WordPress expects the 'SubPart to be NULL, only in my main site is was '1'. So, my index was reporting as: KEY type_status_date (post_type,post_status(1),post_date,ID) Rather than: KEY type_status_date (post_type,post_status,post_date,ID) This means the upgrade code is called on every update and fails on every update also. I've managed to force through a fixed on my own site by dropping the index and recreating it using SQL in PHPMyAdmin. Googling for the above error message it would seem I'm not the only one affected." MattyRob 59836 Using the pre_get_table_charset filter ensures wpdb->col_meta never gets populated Database 6.3.3 normal normal Awaiting Review defect (bug) new 2023-11-08T14:04:37Z 2023-11-08T19:20:09Z "I have a non-core table with a binary column that I use for selects and deletes (it's an efficient way to store UUIDs). I've noticed that whenever I attempt to do select from it, WP does a relatively expensive SHOW FULL COLUMNS FROM query, which seems to be uncachable. I've been attempting to use the pre_get_table_charset filter to get around this, but this then caused problems when get_col_charset() runs in the same call. It seems that inside get_table_charset() there is the line $this->col_meta[ $tablekey ] = $columns; which appears to be the only place that col_meta is ever populated. But it wont be populated for that table if you use the hook, so if something like this then runs: {{{#!php // If still no column information, return the table charset. if ( empty( $this->col_meta[ $tablekey ] ) ) { return $this->table_charset[ $tablekey ]; } }}} as it does in get_col_charset() then things just break. col_meta for that table is not populated and neither is table_charset. I'm too stupid to work out the best way to fix this I'm afraid. " c0ntax 1 43589 WPDB Update change NULL values to acceptable values Database normal normal Awaiting Review defect (bug) new has-patch 2018-03-20T19:43:32Z 2019-01-17T01:19:44Z "Hello, I'm creating a plugin in which i need to create a new SQL table, that I connect to REST API. My table has several fields that can't be NULL and some that can be NULL. If i do the update via the wpdb object (cf. below), NULL fields are updated with a NOT NULL value that I've never typed (a float that can't be NULL become 0.00000, a date -0001-00-00, ....). The expected behaviour would be to not update the line because the request is not OK. If I allow NULL values on these fields, values are NULL. It's like if somewhere the value was changed to be accepted by the sql engine. NB: the generated request is OK, when i access to the wpdb->last_query value. --------- code example --------- global $wpdb; $wpdb->update($table, $fields, $where, $fieldsformats, $whereformats); where $fields = array(""mynotnulldate""=> null, ""mynotnullfloat"" => null); Dorian " dorianrd 53320 Why delete_metadata and update_metadata slow performance? Database normal normal Awaiting Review defect (bug) new 2021-06-02T11:11:06Z 2024-03-26T18:30:14Z "I’ve been doing some investigating on the overall performance of a local WordPress with WooCommerce build and something doesn’t seem to be making sense, I’m not sure if I’m missing something or if it’s an oversight in the development. WooCommerce has ways of checking if meta keys and values need to be updated, for example update_post_meta in class-wc-order-data-store-cpt.php The plugin also has a method update_or_delete_post_meta for handling the meta of posts integration with the WordPress Core. Here’s where the confusion comes in, 1. [delete_metadata](https://github.com/WordPress/WordPress/blob/21cf92796123e98bcc9cc7981d80472977673fab/wp-includes/meta.php#L335) Why does delete_metadata by default query to see if it exists before running the DELETE operation? I understand the DELETE operation is expensive but in this instance, we know the keys that are going to be removed. I understand we could hook into the delete_{$meta_type}_metadata filter, return false and run the query ourselves but this doesn’t future proof things. I propose an additional filter and/or argument that allows you to bypass the initial lookup. 2. [update_metadata](https://github.com/WordPress/WordPress/blob/21cf92796123e98bcc9cc7981d80472977673fab/wp-includes/meta.php#L159) There is a similar problem here too. [Every update queries the database](https://github.com/WordPress/WordPress/blob/21cf92796123e98bcc9cc7981d80472977673fab/wp-includes/meta.php#L220) to see if a row already exists and if so, then use the add_metadata. If we know the meta key 100% exists, why go to the expense of then querying the database again? Once again, I appreciate this is added as a fail-safe to ensure the data gets stored but this leaves the developer with no “official” way of updating the meta without having to do a lookup first. Again, we can hook into update_{$meta_type}_metadata but this has the same problem as before.. breaking future changes. I propose the same as above for this method too. Has anybody else experienced this or found any solutions to excessive SQL lookups (other than relying on cache)?" cjj25 2 57072 WordPress 6.1 uses wrong database collation Database 6.1 normal normal Awaiting Review defect (bug) new 2022-11-11T10:35:00Z 2022-11-11T10:35:00Z "After upgrade to WordPress 6.1 some plugins started reporting ""WordPress database error Illegal mix of collations (utf8mb4_unicode_520_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT)"". See: https://wordpress.org/support/topic/database-error-after-upgrade-to-wordpress-6-1/ It seems that WordPress 6.1 wrongly detects database collation. This is probably related to #54841. Database section of the Site Health page (/wp-admin/site-health.php?tab=debug) displays: {{{ Database charset utf8mb4 Database collation utf8mb4_unicode_520_ci }}} Eariler versions displayed correct one: {{{ Database charset utf8mb4 Database collation utf8mb4_unicode_ci }}} Database collation should be utf8mb4_unicode_ci per server and database configuration: {{{ MariaDB [(none)]> SHOW VARIABLES LIKE '%_server' ; +----------------------+--------------------+ | Variable_name | Value | +----------------------+--------------------+ | character_set_server | utf8mb4 | | collation_server | utf8mb4_unicode_ci | +----------------------+--------------------+ 2 rows in set (0.002 sec) MariaDB [(none)]> USE wordpress; Database changed MariaDB [wordpress]> SELECT @@character_set_database, @@collation_database; +--------------------------+----------------------+ | @@character_set_database | @@collation_database | +--------------------------+----------------------+ | utf8mb4 | utf8mb4_unicode_ci | +--------------------------+----------------------+ 1 row in set (0.000 sec) }}} Server version: 10.6.10-MariaDB-log Having {{{define('DB_COLLATE', '');}}} in wp-config.php. Using {{{define( 'DB_COLLATE', 'utf8mb4_unicode_ci' );}}} did not fix the issue, nor changed collation information in Database section of the Site Health page." Krstarica 2 41302 WordPress not stopping queries which have reached limit and preventing users to load WordPress until query times out Database 4.8 normal normal Awaiting Review defect (bug) new 2017-07-13T07:28:09Z 2017-07-14T07:58:38Z "[[Image(Pasted image at 2017_07_13 10_14 AM.png)]] I have problem with WordPress mysql `max_questions=600, max_updates=600` limit {{{ User 'id1561843_wp_ac6601cd835d82e22d89d11a3ea228a0' has exceeded the 'max_queries_per_hour' resource (current value: 500) }}} After {{{ wp-db.php:830 }}} comes timeout. I suspect that that after limit is reached {{{ public function set_charset( $dbh, $charset = null, $collate = null ) { }}} throws and error. After that WordPress gets stuck on loading something. And you cannot make any other queries on other browser windows. Proper script should just kill the query after error that limit has been exceeded." juslintek 42381 Wordpress update does not check if database structure/scheme on existing site is equal to how it would be on a new install Database 4.8.2 normal normal Awaiting Review defect (bug) new dev-feedback 2017-10-30T18:19:44Z 2017-11-11T18:19:31Z "'''Description of bug''' When trying to add a category I receive the error: WordPress database error: [Duplicate entry ‘test’ for key ‘slug’] INSERT INTO wp_terms (name, slug, term_group) VALUES (‘Test’, ‘test’, 0) '''What seems to be the cause of the problem?''' My install does not allow a category (test) with the same slug as an existing tag (test). WordPress should allow this. On further investigation: in wp_terms table, the field slug has a UNIQUE constraint. This was changed in WordPress 4.1 [https://core.trac.wordpress.org/ticket/22023/ three years ago]. Duplicates are now prevented in WordPress code instead of in the database, but it seems like my site has skipped one or more database core updates. '''In short''' My install is up to date. But my database core structure/scheme is not up to date. wp_repair, wp_optimize etc. do not flag this. Also setting WP_ALLOW_REPAIR in wp-config.php does not flag this as an issue. I was able to fix this but potentially my database still has other undetected differences. Questions - Should WordPress check on update if a existing database structure/scheme matches how it should be if it were new install? - Should WordPress offer (after backup disclaimer etc.) offer to repair/update the database structure to the latest version? I submit this as a bug and not as a feature since I feel WP_ALLOW_REPAIR should detect if a WordPress table is setup correctly." mike_vl 2 49785 Wrong result / duplicates in query when using MariaDB Database 5.4 normal normal Awaiting Review defect (bug) new 2020-04-02T20:57:31Z 2020-04-03T11:45:56Z "The page parent selector uses a rest api endpoint that results in the following query: First 100 pages: {{{ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID NOT IN (51915) AND wp_posts.post_parent NOT IN (51915) AND wp_posts.post_type = 'page' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.menu_order ASC LIMIT 0,100 }}} Next group of 100 pages: {{{ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.ID NOT IN (51915) AND wp_posts.post_parent NOT IN (51915) AND wp_posts.post_type = 'page' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.menu_order ASC LIMIT 100,100 }}} etc.. In a site we've got a total of 128 pages that match this query. Resulting total is correct, however, there is 17 duplicates. This means that we're missing pages in the resulting page parent select input, and instead we have duplicates. Running query directly in database gives the same, incorrect, result. Replicating query as wp_query gives the same, incorrect, result. I've tested this with no plugins activated, twentytwenty theme. Same incorrect result. MySQL 5.5.5 - 10.1.44-MariaDB Ubuntu 18.04.1 WordPress 5.4 TwentyTwenty 1.2 I'm also getting one duplicate in my local duplicate (local by flywheel 3.3.0) using built in MySQL 5.7.23" Kim.Bertelsen 40695 `install_blog` suppresses database errors Database normal normal Future Release defect (bug) new has-patch 2017-05-08T20:18:03Z 2017-06-01T19:19:28Z "`install_blog` uses error suppression and `DESCRIBE $table` to detect the absence of tables. Error suppression can be removed in favor of `SHOW TABLES LIKE $table`, as in the patch on #40694. Another source of errors in `install_blog` is the call to `get_blogaddress_by_id`. This attempts to read the site's `home` attribute which hits the magic `WP_Site->__get`, which ultimately leads to a `SELECT` against the non-existent options table." andy 59481 dbDelta do useless request when type case is not the same between query and describe result Database 6.3 normal normal Awaiting Review defect (bug) new has-patch 2023-09-27T22:17:19Z 2023-10-17T22:40:55Z "While debugging why a call to `dbDelta` was not working, I discovered in the function output (an array of performed changes) that it was doing some useless changes: ""Changed type of wp_table.field from varchar(255) to VARCHAR(255)"". Indeed, on my MySQL 8.0.31 Windows x64 version (installed by Wampserver), if I do ""DESCRIBE wp_table"", the ""Type"" column of the result is always lowercase. If somehow, you wrote your ""CREATE TABLE"" statements with a different case for varchar columns, dbDelta will detect a change. It does it only for varchar. If I change my varchar to be lowercase in the SQL I use for dbDelta, it doesn't try to change the type. {{{#!php <?php $sql = 'CREATE TABLE `'.$wpdb->prefix.'table` ( `object_id` INT(10) NOT NULL, `group_term_slug` VARCHAR(255) NOT NULL ) '.$wpdb->get_charset_collate().';'; $result = dbDelta($sql); // Will contain both ""Created table wp_table"" and ""Changed type of wp_table.field from varchar(255) to VARCHAR(255)"" $sql = 'CREATE TABLE `'.$wpdb->prefix.'table` ( `object_id` INT(10) NOT NULL, `group_term_slug` varchar(255) NOT NULL ) '.$wpdb->get_charset_collate().';'; $result = dbDelta($sql); // Will NOT contain ""Changed type of wp_table.field from varchar(255) to VARCHAR(255)"", only ""Created table wp_table"" }}} " tristanleboss 2 46146 dbDelta not parsing enum correctly Database normal normal Awaiting Review defect (bug) new 2019-01-30T08:41:12Z 2022-11-17T19:28:49Z "Given an enum definition such as: {{{ enum('a', 'b') }}} The dbDelta function parses it as: {{{ enum('a', }}} Which causes a change to be detected on every execution. I'm also afraid other cases with spaces (like strings with spaces in enum values, etc.) will cause similar problem since the regular expressions in the dbDelta function seem to cover only some particular cases." janjakes 1 46145 dbDelta runs same updates on every execution Database normal normal Awaiting Review defect (bug) new 2019-01-30T08:37:30Z 2019-01-30T08:37:30Z "Given a SQL column with a definition such as: {{{ created_at TIMESTAMP NULL }}} The dbDelta detects the following changes: {{{ Changed type of table_name.created_at from timestamp to TIMESTAMP }}} But then executes a query using part of the original SQL: {{{ ALTER TABLE table_name CHANGE COLUMN `created_at` created_at TIMESTAMP NULL }}} Which leads to the same changes being detected again on the next run. This applies not only to case of the type but to many other cases such as ""int"" vs. ""int(11)"", ""bigint"" vs. ""bigint(20)"", etc. This will actually happen in every case when the given SQL differs from the exact ""expected"" form. " janjakes 2 40694 dbDelta uses suppressed errors to detect table absence Database normal normal Future Release defect (bug) new has-patch 2017-05-08T20:00:36Z 2019-12-01T08:38:14Z "In dbDelta, `$tablefields` is populated by the statement `DESCRIBE {$table}`. When the table does not exist, this statement fails with an error. This statement is executed with error suppression enabled. Handling of suppressed errors is customizable in database drop-ins. In one large case, suppressed errors are logged for analysis. These suppressed `DESCRIBE` errors are considered a bug because it's possible to check for the presence of a table without errors by using a `SHOW TABLES LIKE` statement. It would be preferable to leave error suppression out of dbDelta and use the `SHOW TABLES LIKE` statement, as in the attached patch." andy 36924 dbDelta(): Support more than one whitespace between field name and its type definition Database 4.5.2 normal normal Awaiting Review defect (bug) new 2016-05-23T22:42:46Z 2018-08-10T00:39:26Z "dbDelta() fails to remove multiple spaces between field name and field type definition in ALTER / CREATE statements. In result some table definitions may lead to constant ALTER statements to be executed which may easily crash MySQL server. Compare: == Correct {{{#!php $sql = ""CREATE TABLE some_table ( id bigint(20) NOT NULL KEY AUTO_INCREMENT, test varchar(100) NOT NULL, );""; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta($sql); }}} vs == Wrong, due to multiple spaces between 'test' and 'varchar' ALTER query is executed {{{#!php $sql = ""CREATE TABLE some_table ( id bigint(20) NOT NULL KEY AUTO_INCREMENT, test varchar(100) NOT NULL, );""; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta($sql); }}} == Possible fix: - in dbDelta() call trim() on $tablefield->Type, - or remove extra spaces during preg_match: replace: {{{#!php preg_match(""|"".$tablefield->Field."" ([^ ]*( unsigned)?)|i"", $cfields[strtolower($tablefield->Field)], $matches); }}} with: {{{#!php preg_match(""|"".$tablefield->Field.""\s+([^ ]*( unsigned)?)|i"", $cfields[strtolower($tablefield->Field)], $matches); }}}" matt_fw 2 57149 get_table_from_query() doesn't properly handle a prepared escape_like() table name Database normal normal Awaiting Review defect (bug) new 2022-11-18T15:15:43Z 2023-01-04T19:33:26Z "A common way to check if a table exists is to run a query like the following, the same way that `maybe_create_table()` currently works: {{{#!php <?php $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $table_name ) ); }}} This results in the prepared query for a table name such as `wp_my_custom_table` to end up being: {{{ SHOW TABLES LIKE 'wp\\_my\\_custom\\_table' }}} While the above isn't necessarily a proper query, it is still valid. The problem is that `$wpdb->get_table_from_query()` ends up returning the table name with extra slashes, e.g. `wp\_my\_custom\_table`. This specifically breaks HyperDB which is attempting to use that table name to determine the dataset to use." prettyboymp 2 51350 mysql nosql feature request Database normal normal Awaiting Review defect (bug) new 2020-09-18T16:51:58Z 2023-04-20T12:51:47Z WordPress cover 37% of the web, with plugins sites go heavy and NoSQL is best in performance and nowadays all hosting platform supports MySQL 8 if it upgrades it will be great. nabi009 46739 post attributes order not working correctly Database 5.1 normal normal Awaiting Review defect (bug) new 2019-03-30T18:28:38Z 2019-03-30T18:28:38Z "I set up the post attributes order with the code attached to be modified within the editor. add_post_type_support('post', array('page-attributes')); The post attributes section with the order field shows up but unfortunately does not save any values and does not show up the value set in the database. Please find more information here: https://stackoverflow.com/questions/55433707/wordpress-post-custom-order-not-working-showing-up-but-not-saving" nikischin 51097 post cannot be saved due to certain variant of Japanese Kanji Database 5.5 normal normal Awaiting Review defect (bug) new close 2020-08-21T21:33:08Z 2020-08-31T08:09:56Z "When I would like to save draft, wordpress failed with error message ""更新に失敗しました。 データベース内の投稿を更新できませんでした。"" (i.e. could not update a post in database). I figured out a variant of Kanji caused the problem. By mistake I used unordinary variant ""𠮟責"" instead of ordinary one ""叱責"". the unordinary one caused the trouble. " mogami74 41469 test_charset_switched_to_utf8() is not tested on Travis CI Database 4.7.1 normal normal Awaiting Review defect (bug) new 2017-07-28T00:26:11Z 2017-07-28T02:09:13Z "The `Tests_DB::test_charset_switched_to_utf8()` test (introduced in #37982) is skipped on Travis, because the test gets skipped when the environment's database driver supports utf8mb4. This makes the test useless. What sort of environment does not support utf8mb4? Presumably an older MySQL version. We should look into adding a build to Travis with a specific environment that allows this test to run. Related: #30462" johnbillion 46625 username and password automatically change to dexter Database 4.9.1 normal normal Awaiting Review defect (bug) new 2019-03-24T07:32:46Z 2019-03-24T10:18:13Z "Dear sir, username and password automatically change to dexter " ram181 1 55206 wp core api memory leaks Database normal normal Awaiting Review defect (bug) assigned dev-feedback 2022-02-20T05:37:43Z 2022-04-29T04:44:55Z "I've experienced the following two memory leaks in WP core. One involves $wpdb when `SAVEQUERIES` is defined truthy, and the other involves `$wp_object_cache` growing as a consequence of calling core api functions that themselves save to the object cache. Both have happened for me in cases where I'm doing large batch processing involving thousands or tens of thousands of posts. I've had memory usage exceed 512MB and cause crashes. I'm including unit tests here showing each memory leak and also the fix that I've used to prevent the memory leak and keep my batch jobs running. {{{#!php <?php /** * Class WP_Memory_Leak_Tests * * This class tests two cases that cause memory leaks in WordPress that could * lead to crashes, particularly in CLI jobs that work on larger batches. For * each of the cases ( one for the wpdb class and one for the global * $wp_object_cache ), we perform some seemingly innocuous task many times - * enough times to require that PHP allocate more memory because of a specific * action. * * Neither of the tests here show a particularly large memory increase, but I've * personally had both occur for me on large jobs hitting WP API functions. The * one with $wpdb->queries particularly has a tendency to blow up. */ class WP_Memory_Leak_Tests extends WP_UnitTestCase { /** * This tests a condition which exposes a memory leak in the WPDB class. * If 'SAVEQUERIES' is defined as truthy, then the $wpdb->queries property * can grow indefinitely. */ public function test_WPDB_Memory_Leak() { // Once a constant is defined, it can't be undefined, it's often defined in dev or staging environments. define( 'SAVEQUERIES', true ); // I'll just start my cron job to read the import file I've got. It's // got a decent number of records. $number_of_records = 1000; global $wpdb; $memory = memory_get_usage( true ); $peak = memory_get_peak_usage( true ); foreach ( [ 'first', 'second' ] as $pass ) { // first pass through, we'll apply a fix for this memory leak. // second pass through, we'll bypass the fix and the tests will fail. for ( $i = 1; $i <= $number_of_records; $i ++ ) { if ( 'first' === $pass ) { $wpdb->queries = []; } // for this test, we'll do direct calls to $wpdb $wpdb->query( $wpdb->prepare( ""SELECT * FROM $wpdb->posts WHERE ID = %d"", $i ) ); } $this->assertEquals( $memory, memory_get_usage( true ), ""$pass pass"" ); $this->assertEquals( $peak, memory_get_peak_usage( true ), ""$pass pass"" ); } } /** * This tests a condition which exposes a memory leak in wp cache API. If * a large batch job attempts to do a lot of something that ends up caching * things ( like, for example, get_post or wp_insert_post ), then unless * the cache is flushed regularly, the memory usage grows indefinitely. */ public function test_WP_Cache_Memory_Leak() { // I'll just start my cron job to read the import file I've got. It's // got a decent number of records. $number_of_records = 1000; global $wpdb; $memory = memory_get_usage( true ); $peak = memory_get_peak_usage( true ); foreach ( [ 'first', 'second' ] as $pass ) { // first pass through, we'll apply a fix for this memory leak. // second pass through, we'll bypass the fix and the tests will fail. for ( $i = 1; $i <= $number_of_records; $i ++ ) { if ( 'first' === $pass ) { wp_cache_flush(); } // Because our last test defined 'SAVEQUERIES', we need to // always apply this fix, otherwise that memory leak manifests. // With us doing a core API function `wp_insert_post`, the number // of queries is quite large and memory __really__ grows. $wpdb->queries = []; // let's say we're inserting posts, maybe from an excel file. // this caches some things, so $wp_object_cache grows. wp_insert_post([ 'post_type' => 'post', 'post_title' => ""post $i"", 'post_content' => ""pass $pass"" ]); } $this->assertEquals( $memory, memory_get_usage( true ), ""$pass pass"" ); $this->assertEquals( $peak, memory_get_peak_usage( true ), ""$pass pass"" ); } } } }}} " sllimrovert 59172 wp_query meta_query NOT EXISTS not creating correct sql query Database 6.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-08-23T12:53:28Z 2023-09-05T16:55:37Z "With the following wp_query: {{{#!php <?php $args = array( ""fields"" => ""ids"", ""post_type"" => ""shop_order"", ""post_status"" => array('wc-processing'), ""posts_per_page"" => ""-1"", ""offset"" => ""0"", 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'scg_is_glass', 'value' => ""1"", ), [ 'relation' => 'OR', [ 'key' => 'scg_processed', 'value' => ""0"", 'compare' => '=', ], [ 'key' => 'scg_processed', 'value' => ""0"", 'compare' => 'NOT EXISTS', ], ] ), 'date_query' => array( array( 'after' => date('Y-m-d', strtotime('-1 month')), ), ), ); }}} The outputeed sql query is the following: SELECT wp_posts.ID FROM wp_posts LEFT JOIN wp_postmeta ON ( wp_posts.ID = wp_postmeta.post_id ) LEFT JOIN wp_postmeta AS mt1 ON ( wp_posts.ID = mt1.post_id ) LEFT JOIN wp_postmeta AS mt2 ON ( wp_posts.ID = mt2.post_id AND mt2.meta_key = 'scg_processed' ) WHERE 1=1 AND (wp_posts.post_date > '2023-07-23 23:59:59') AND ( ( wp_postmeta.meta_key = 'scg_is_glass' AND wp_postmeta.meta_value = '1' ) AND ( ( mt1.meta_key = 'scg_processed' AND mt1.meta_value = '0' ) OR **mt2.post_id IS NULL** ) ) AND wp_posts.post_type = 'shop_order' AND ((wp_posts.post_status = 'wc-processing')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC If you looked at the bolded (mt2.post_id IS NULL) above you would expect it to be: **( mt2.meta_key = 'scg_processed' AND mt2.meta_value IS NULL )**" anteatersa 57000 wp_usermeta table is emptied because of a wrong query being executed Database 6.0.3 normal normal Awaiting Review defect (bug) new 2022-11-04T12:49:28Z 2022-11-04T12:49:28Z "On one website we encounter a very strange error. This SQL query is executed by the `delete_meta` function: {{{ DELETE FROM wp_usermeta WHERE umeta_id IN( umeta_id,user_id,meta_key,meta_value ) }}} This query empties the wp_usermeta table completely. We have tried to reproduce the error in a local development environment, but it is very hard to do so. In the `delete_meta` function the `\wpdb::check_safe_collation` and `\wpdb::get_table_charset` methods are called, in which the query `SHOW FULL COLUMNS FROM wp_usermeta` is executed. Apparently, in some occasions the next query fails, but the `\wpdb::$last_result` is not flushed, which then still contains the result of the `SHOW FULL COLUMNS FROM wp_usermeta` query (the column names). The result is returned to the `$meta_ids` variable in the `delete_metadata` and is then used in the delete query. The back trace of the function call is: shutdown_action_hook, do_action('shutdown'), WP_Hook->do_action, WP_Hook->apply_filters, ITSEC_Lib_User_Activity->update_last_seen, delete_user_meta, delete_meta I am reporting the issue here because I believe it is not related to the iThemes Security plugin but to WordPress itself. The only possible reason this happens I can think of, it that `\wpdb::$ready` is false, because in that case `\wpdb::query` returns false without flushing the last result: {{{ public function query( $query ) { if ( ! $this->ready ) { $this->check_current_query = true; return false; } // ... } }}}" jannesmannes 1 44163 wpdb->update() fails, showing no error message Database normal normal Awaiting Review defect (bug) new reporter-feedback 2018-05-20T18:54:05Z 2018-05-21T13:52:46Z "It's my second report about the incompletness of wpdb->update function. 1-2 years ago I've reported the scenario when it failed to update, but `last_error` was empty. Now, another scenario, when it fails , but `last_error` is empty, is the following: i.e. create a table with ""NOT NULL"" {{{#!php <?php $x= $wpdb->query(""CREATE TABLE IF NOT EXISTS `example_table` ( `rowID` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(150) NOT NULL, `id` varchar(150) NOT NULL, `data` LONGTEXT NOT NULL DEFAULT '', PRIMARY KEY (`rowID`), UNIQUE KEY `rowID` (`rowID`) ) "". $wpdb->get_charset_collate() ."" AUTO_INCREMENT=1;"" ); }}} then insert some empty value: {{{ $wpdb->insert(""example_table"", array(""name"" => ""James"", ""id""=>""123"", ""data""=>""blabla"") ); }}} then try to update {{{ $wpdb->update(""example_table"", array(""name""=>""Jonathan""), array(""id""=>""133"") ); }}} it doesnt update. I have dumped `$this->dbh` (in wp-db.php 1887 line), and it shows affected lines: 0 `last_error` is empty. After spending much time, found that I was missing ""required"" parameter and added {{{ $wpdb->update(""example_table"", array(""name""=>""Jonathan"", ""data""=>""new-blabla""), array(""id""=>""133"") ); }}} (""NOT NULL"" requirement caused failure) so, it's good, last_error contained some information, when affected lines are 0, or like such scenarios." tazotodua 49363 wpdb::query() does not detect LOAD DATA as an insert statement type Database 5.3.2 normal normal Awaiting Review defect (bug) new has-patch 2020-02-05T02:41:19Z 2020-02-05T02:41:19Z "The regular expression used to choose what return type a query should have does not include `LOAD DATA`. A query beginning with these tokens thus incorrectly returns `0` for the number of affected rows. The following patch would correct the issue: {{{#!patch --- a/wp-includes/wp-db.php +++ b/wp-includes/wp-db.php @@ -1973,7 +1973,7 @@ if ( preg_match( '/^\s*(create|alter|truncate|drop)\s/i', $query ) ) { $return_val = $this->result; - } elseif ( preg_match( '/^\s*(insert|delete|update|replace)\s/i', $query ) ) { + } elseif ( preg_match( '/^\s*(insert|delete|update|replace|load\s+data)\s/i', $query ) ) { if ( $this->use_mysqli ) { $this->rows_affected = mysqli_affected_rows( $this->dbh ); } else { }}} " lev0 1 46947 ‘❤’ in Comment Generates DB Error Database 5.1.1 normal normal Future Release defect (bug) new reporter-feedback 2019-04-16T13:02:03Z 2019-04-17T11:51:53Z "I got the following error message notice when a post comment included the ‘’ special character. When I approved the comment, there was no further error message generated. I have not seen this message before – but then again, we rarely get special character in comments. I am using WordPress 5.1.1. The WP-config: ‘define(‘DB_CHARSET’, ‘utf8′);’ Can someone please advise how to fix this? Regards and thanks, Angus Error message: *** [Thu Mar 21 02:17:57.574584 2019] [php7:notice] [pid 24789] [client 68.40.22.245:41759] WordPress database error Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,COERCIBLE) for operation ‘=’ for query SELECT comment_ID FROM xxxcomments WHERE comment_post_ID = 134978 AND comment_parent = ‘0’ AND comment_approved != ‘trash’ AND ( comment_author = ‘Rhonda Lott’ AND comment_author_email = ‘xxx@yahoo.com’ ) AND comment_content = ‘Amen And Amen! Thank you Rabbi!\xe2\x9d\xa4\xf0\x9f\x94\xa5\xf0\x9f\x92\xaf\xf0\x9f\x99\x8c’ LIMIT 1 made by wp_handle_comment_submission, wp_new_comment, wp_allow_comment, referer: https://www.hiskingdomprophecy.com/its-time-to-unearth-the-truth/ ***" HisKingdomProphecy 47818 $wpdb should update ->insert_id also when `LAST_INSERT_ID(...)` is found Database normal normal Awaiting Review enhancement new 2019-08-02T06:44:28Z 2019-08-02T06:44:28Z "It is possible to set the insert id pointer manually by in including `LAST_INSERT_ID(column)` anywhere in the statement. `$wpdb` however does not update it's internal `insert_id`, it does this only when the statement is 'insert' or 'replace'. This makes it harder to get the ID of an updated row. https://stackoverflow.com/a/46335863" cpiber 1 55202 A proper (error) message should be show when mysql setting autocommit=0 Database 5.9 normal normal Awaiting Review enhancement new 2022-02-19T16:35:11Z 2022-02-19T20:03:07Z "A proper (error) message should be show when mysql setting autocommit=0 Somewhere is the text: [https://make.wordpress.org/core/handbook/contribute/design-decisions/#some-esoteric-mysql-settings-are-not-supported Some esoteric MySQL settings are not supported] But why not add a simple error message? (Just because it takes tooo long to find out why the installer will not work without this message). " Luuk34 2 41944 Add %u support to wpdb->prepare Database 4.8.2 normal normal Awaiting Review enhancement new 2017-09-21T13:30:31Z 2017-09-21T15:30:20Z "MySQL unsigned int: 4bn [[BR]] PHP %d signed int: 2bn[[BR]] [[BR]] Maybe the standard should be %u not %d or at the very least support both while internally using %u for all key lookups?[[BR]] [[BR]] Especially since much of the WP Core specifically sets ID fields as bigint unsigned not null auto_increment.[[BR]] [[BR]] If a site never has more than 2bn records, and MOST will NEVER get that big, it is a non-issue but shouldn't the standard be consistent between the DB engine and the language processor (PHP)?" charlestonsw 20 15499 Add an index for get_lastpostmodified query OllieJones Database 3.0.1 normal normal Future Release enhancement reviewing dev-feedback 2010-11-19T18:20:31Z 2023-09-27T15:38:07Z "I had a friend (Jools Wills) look over a WordPress site recently, to get a fresh view on what might be optimised, and he noticed a query which might benefit from an additional index on `WP_Posts`. The query `SELECT post_modified_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_modified_gmt DESC LIMIT 1` in `get_lastpostmodified` is run for last modified date in GMT, and currently doesn't use an index. This SQL is run whenever certain types of feed are requested as far as I can see. We added `CREATE INDEX type_status_modified ON wp_posts (post_type, post_status, post_modified_gmt);` and `CREATE INDEX type_status_modified_no_id ON wp_posts (post_type, post_status, post_date_gmt);` and the query runs a lot faster now. The following timings were taken running the first query (`post_modified_gmt`) on a 36,362 row posts table. Note that it doesn't use filesort after the index has been added. ''Before:'' {{{ mysql> EXPLAIN SELECT post_modified_gmt FROM slgr_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_modified_gmt DESC LIMIT 1; +----+-------------+------------+------+------------------+------------------+---------+-------------+-------+-----------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+------------+------+------------------+------------------+---------+-------------+-------+-----------------------------+ | 1 | SIMPLE | slgr_posts | ref | type_status_date | type_status_date | 124 | const,const | 24718 | Using where; Using filesort | +----+-------------+------------+------+------------------+------------------+---------+-------------+-------+-----------------------------+ 1 row in set (0.03 sec) }}} * 0.21290683746338ms * 0.25690102577209ms * 0.230553150177ms * 0.2274341583252ms * 0.23083996772766ms ''After:'' {{{ mysql> EXPLAIN SELECT post_modified_gmt FROM slgr_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_modified_gmt DESC LIMIT 1; +----+-------------+------------+------+---------------------------------------+----------------------+---------+-------------+-------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+------------+------+---------------------------------------+----------------------+---------+-------------+-------+-------------+ | 1 | SIMPLE | slgr_posts | ref | type_status_date,type_status_modified | type_status_modified | 124 | const,const | 24718 | Using where | +----+-------------+------------+------+---------------------------------------+----------------------+---------+-------------+-------+-------------+ 1 row in set (0.00 sec) }}} * 0.00082707405090332ms * 0.00072288513183594ms * 0.00074386596679688ms * 0.00066494941711426ms * 0.00066208839416504ms In `get_lastpostmodified` both these queries are run, so the total savings in my case on a quiet server are nearly 0.5 seconds... worth having, I reckon. I've not created a patch for schema changes before, but I think the only place the change would need to go would be `scheme.php`? Suggested patch attached." simonwheatley 60254 Add filter to class-wpdb.php#query that allows to return data from filter return value Database trunk normal normal Awaiting Review enhancement new 2024-01-15T07:35:21Z 2024-01-15T07:35:21Z "Similar to #2721, but allows not only changing the SQL query, but also the return value. In our case, we want to cache some SQL queries from third-party plugins that refuse to implement an object cache. Here is an example of a plugin which runs a SQL query multiple times without using a cache mechanism: [[Image(https://i.imgur.com/qAF0eI5.png)]] I have prepared a suggestion for this, but I do not know if this covers all cases from `$wpdb` usage or needs some adjustments: https://gist.github.com/matzeeable/4473915b225aa1550d5da5b9b0b19b16/revisions" mguenter 46210 Add helpers for default/empty datetime value Database normal normal Awaiting Review enhancement new has-patch 2019-02-07T22:37:30Z 2023-02-24T20:17:08Z "Typing `0000-00-00 00:00:00` is error prone, and tedious. There are a few dozen usages of it sprinkled through-out WordPress. Hundreds of plugins also. I offer up the idea of 2 helper functions: * `__return_empty_datetime()` that simply returns `0000-00-00 00:00:00` * `is_empty_datetime( $datetime = '' )` to check if a variable is `empty()` or `0000-00-00 00:00:00`" johnjamesjacoby 1 54642 Add prepared query builder support for `$wpdb` to build prepared queries across multiple location. Database normal normal Future Release enhancement new has-patch 2021-12-17T09:07:50Z 2022-09-19T20:29:29Z "This requests scopes adding a query builder like API to WordPress, so that queries can be built across multiple functions, without needing to disable any PHPCS sniffs. Currently, if the query is not completely being built nearby, developers will eventually have to disable phpcs sniff, since they would need to combine or interpolate queries. Some examples of this are present in WP core as well, such as in the [https://github.com/WordPress/wordpress-develop/blob/954e9c153fe9d1b4f74d76bab9dd5175fd36cebc/src/wp-includes/class-wp-meta-query.php#L668 meta query], [https://github.com/WordPress/wordpress-develop/blob/954e9c153fe9d1b4f74d76bab9dd5175fd36cebc/src/wp-includes/taxonomy.php#L1585 taxonomy] etc. Although WP does a great job generally to avoid disabling phpcs, in the general plugin ecosystem, these examples are more prevalent. Note that most of the examples of disabling phpcs can be refactored to not needing to disable. However, as far as I can tell, building a query this way (across multiple functions/places) is not considered a bad practice, if this assumption is correct then we should support doing it better. This eventual disabling of PHPCS is risky and removes a major and effective protective layer. == Solution The solution for WordPress would be to provide an API where developers can build a prepared query in steps, and join them before executing in a safe manner. I looked at query builders for various ORMs such as Doctrine (Symphony), ActiveRecord (Rails), Laravel etc. While such extensive APIs would likely be overkill for WordPress, one possible solution is this hopefully simpler API that I am proposing in [https://github.com/WordPress/wordpress-develop/pull/2062 this PR 2062]. This PR adds a new class called `WP_DB_Partial_Query` which implements `__toString()` magic method so that it can be interpolated in sprintf calls. The objects of this class will represent a partial query and a new method `$wpdb->prepare_partial()` which will create and return these objects. This `$wpdb->prepare_partial()` method internally calls `$wpdb->prepare()` and takes exactly the same arguments. This PR also introduces a new placeholder `%q` (although this isn't necessary and `%s` can be used as well) which can be used to pass these prepared partial queries. I have added some examples to use the API in [https://github.com/vedanshujain/wordpress-develop/pull/1 this PR on my fork]. Note that this is only a PoC and implementation is not complete. Specifically, along with tests, a major component missing is to match against `%q` placeholders and quote the args if they are not objects of the `WP_DB_Partial_Query` class. I can polish the PoC more to get in an acceptable state if this is a direction that WordPress is interested to explore at all and there are no obvious problems with the general approach that I have missed. " vedjain 1 59106 Add secondary index on `wp_posts` table to improve media queries performance Database 6.4 normal normal Awaiting Review enhancement new 2023-08-15T11:49:34Z 2023-08-15T11:50:28Z "I've been recently been involved in migrating a large site database to MySQL 8.0. Upon testing the site, we've noticed that the MySQL 8 queries related to the Media library seem to take much longer than on MariaDB. Debugging the issue, it seems that MySQL 8, due to its Cost optimiser https://dev.mysql.com/doc/refman/8.0/en/cost-model.html, seems to prefer to drop the type_status_date index and to a full table scan to retrieve the results. Doing a FORCE INDEX(type_status_date) on the media query, like {{{ SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts FORCE INDEX(type_status_date) WHERE 1=1 AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status = 'inherit' OR wp_posts.post_status = 'private')) ORDER BY wp_posts.post_date DESC LIMIT 0, 20 }}} seems to improve the response time. However, a second alternative seems also to show better results, specifically targeting only the post_type, post_date and ID, something like {{{ create index idx_type_date on wp_posts(post_type, post_date, ID); }}} Running the explain analyze on the queries with each index, we seem to get a better cost number when the new index is used, 142 vs 744, which would indicate a better performance at the MySQL level, this being confirmed in our tests on a large database {{{ EXPLAIN ANALYZE SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts FORCE INDEX(type_status_date) WHERE 1=1 AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status = 'inherit' OR wp_posts.post_status = 'private')) ORDER BY wp_posts.post_date DESC LIMIT 0, 20 -> Limit: 20 row(s) (no early end due to SQL_CALC_FOUND_ROWS) (cost=744 rows=20) (actual time=12..13.1 rows=20 loops=1) -> Sort: wp_posts.post_date DESC (cost=744 rows=3620) (actual time=12..12.8 rows=7407 loops=1) -> Filter: ((wp_posts.post_type = 'attachment') and ((wp_posts.post_status = 'inherit') or (wp_posts.post_status = 'private'))) (cost=744 rows=3620) (actual time=0.0505..8.37 rows=7407 loops=1) -> Index range scan on wp_posts using type_status_date over (post_type = 'attachment' AND post_status = 'inherit') OR (post_type = 'attachment' AND post_status = 'private') (cost=744 rows=3620) (actual time=0.0459..5.63 rows=7407 loops=1) }}} {{{ EXPLAIN ANALYZE SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts FORCE INDEX(idx_type_date) WHERE 1=1 AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status = 'inherit' OR wp_posts.post_status = 'private')) ORDER BY wp_posts.post_date DESC LIMIT 0, 20 -> Limit: 20 row(s) (no early end due to SQL_CALC_FOUND_ROWS) (cost=142 rows=20) (actual time=0.214..15.3 rows=20 loops=1) -> Filter: ((wp_posts.post_status = 'inherit') or (wp_posts.post_status = 'private')) (cost=142 rows=688) (actual time=0.211..15 rows=7407 loops=1) -> Index lookup on wp_posts using idx_type_date (post_type='attachment') (reverse) (cost=142 rows=3619) (actual time=0.207..13.4 rows=7407 loops=1) }}} To replicate this, we've installed latest WordPress version and MySQL 8, and create the following post_status count structure: {{{ mysql> select post_status, count(*) from wp_posts group by post_status; +-------------+----------+ | post_status | count(*) | +-------------+----------+ | inherit | 7407 | | draft | 1 | | publish | 23 | | auto-draft | 1 | +-------------+----------+ 4 rows in set (0.01 sec) }}} Can this be considered as a core improvement to the wp_posts table that would directly benefit the Media related queries? Basically, if MySQL 8 decides that the new index is faster, specially for Media search queries, it will simply pick that on up as opposed to using the original index or dropping it fully if it considers its much more efficient to do a full table scan. From our database, a search query for term `test` shows an improvement of 0.5 seconds of this basic search media query: {{{ MySQL []> SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts FORCE INDEX(type_status_date) WHERE 1=1 AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status = 'inherit' OR wp_posts.post_status = 'private')) and post_title like ""%test%"" ORDER BY wp_posts.post_date DESC LIMIT 0, 1; +---------+ | ID | +---------+ | xxxxxxx | +---------+ 1 row in set, 1 warning (3.867 sec) MySQL []> SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts FORCE INDEX(idx_type_date) WHERE 1=1 AND wp_posts.post_type = 'attachment' AND ((wp_posts.post_status = 'inherit' OR wppp_posts.post_status = 'private')) and post_title like ""%test%"" ORDER BY wp_posts.post_date DESC LIMIT 0, 1; +---------+ | ID | +---------+ | xxxxxxx | +---------+ 1 row in set, 1 warning (3.244 sec) }}} Thanks for considering this." ovidiul 1 59269 Add support for adding metadata in bulk Database normal normal Awaiting Review enhancement new has-patch 2023-09-01T22:39:01Z 2023-09-01T23:43:31Z "Related: #34848 This ticket aims to introduce functions for bulk inserting metadata in a manner that's more performant than calling the `add_*_meta()` functions multiple times per object. This is particularly beneficial during large imports or data generation where `add_*_meta()` is called many times for a large number of users, posts, comments, or terms. This can be achieved by inserting all the metadata for the object in one INSERT query and only deleting the object's meta cache once. The existing filters and actions that are triggered when calling the `add_*_meta()` functions individually should still all be fired as expected, once for each meta key. The performance benefit should grow as the number of rows to insert increases, because both the number of database queries and the number of cache deletions for the object should remain constant (`O(1)`) rather than increasing correspondingly to the number of rows (`O(n)`). That said, there does appear to be a sweet spot after which the performance of one large INSERT query starts to degrade, although according to the PHPBench tests I've added it still remains overall more performant than multiple queries. Some more testing is needed across different payload sizes and database versions." johnbillion 4 38036 Add support for the utf8mb4_0900_ai_ci collation Database normal normal Future Release enhancement new 2016-09-13T10:11:38Z 2023-04-05T10:24:05Z "MySQL 8.0 adds the `utf8mb4_0900_ai_ci` collation, based on the current Unicode Collation algorithm. We should use it when possible. Note that the version check will need to be a little more complex than the `utf8mb4_520` check - MariaDB 10.x doesn't support `utf8mb4_0900_ai_ci`. " pento 3 54627 Adding More Timestamp columns to database Database normal normal Awaiting Review enhancement new 2021-12-14T23:54:04Z 2021-12-14T23:54:04Z "I would love to see 'created_at' and 'updated_at' as new columns to some of the default tables such as users, users_meta, etc. Mysql can autofill these columns automatically, and it is very useful information to know when rows are added or updated. I could also see 'created_by' and 'updated_by' as possible columns as well, so it is possible to know when the table row was created or updated by a particular User ID." bhubbard 7 45354 Adding index for meta_key and post_id in postmeta Database normal normal Awaiting Review enhancement new dev-feedback 2018-11-14T21:43:31Z 2023-12-19T22:49:54Z "We should add an index on post_id and meta_key as queries that contain these columns are incredibly common (even in loop in core on every page load basically). An index will improve query speed up to 100% even when only 1000 posts are in db. Test it yourself: {{{ ALTER TABLE `wp_postmeta` ADD INDEX `wp_postmeta_key_id` (`meta_key`,`post_id`); }}} " DuckDagobert 1 52527 Better RAM handling in wp-db.php Database 5.6.1 normal normal Awaiting Review enhancement new 2021-02-15T11:26:08Z 2021-02-15T11:26:08Z "Hello! I have to start by apologizing if I am in the wrong place, or if I am structuring this ticket badly. I don't have much experience here inside trac. I stumbled upon a fatal error when trying to load the WooCommerce status page. The system runs out of memory on line 2022 in wp-db.php. While the actual bug most certainly lies elsewhere, I got some hints from my host that the solution on line 2022 is not the best. I have no clue about this, but I thought I at least could submit a ticket and let the community decide! To paraphrase a translation, they say: wp-includes/wp-db.php line 2022 is a bad solution because of a database call that loads all results into RAM instead of iterating them one by one. But independent of this the error seems to be caused by a very large SQL-query that returns way too much data. Probably a bug somewhere. This is not a ticket to handle the bug that returns way too much data, but it's a ticket to flag the possible issue of bad RAM handling in wp-db.php. " Dekadinious 2 38760 Capture result size in bytes when SAVEQUERIES is true Database normal normal Future Release enhancement new 2016-11-11T19:49:44Z 2017-10-03T10:06:01Z Inside of `WP_DB::_do_query()`, it would be neat if `$this->result` was measured as size in bytes, so debugging tools had a better sense of how much data was running over the network. danielbachhuber 55115 Change deprecated wpdb::escape() method Database normal normal Awaiting Review enhancement new close 2022-02-08T15:47:19Z 2022-02-12T15:46:30Z "the function wpdb::escape( string|array $data ) is depreciate as per documentation [https://developer.wordpress.org/reference/classes/wpdb/escape/], but it's still using depreciated function such as wpdb::_weak_escape and itself. I think we shouldn't use depreciated functions since charity begins at home." azouamauriac 3 58344 Connect to database on first query Database normal normal Future Release enhancement new has-patch 2023-05-17T13:55:48Z 2023-09-14T03:37:54Z "Currently there is the database connection is made in `__construct` method by calling `db_connect` method. However with sites with persistent object caching enabled, this connection to the database may not be needed. It is common now for requests to have no database queries at all if persistent object caching is setup. Moving the `db_connect` call to the `query` method like this. {{{#!php public function query( $query ) { if ( ! $this->has_connected ) { $this->db_connect(); } if ( ! $this->ready ) { $this->check_current_query = true; return false; } }}} " spacedmonkey 5 45697 Database: Upgrading field collations Database normal normal Future Release enhancement new 2018-12-19T02:54:27Z 2022-08-22T15:43:24Z "[37523] added support for the `utf8mb4_unicode_520_ci ` collation, and #38036 exists to look at adding support for the `utf8mb4_0900_ai_ci` collation. With these variations, it's possible for a WordPress site to be installed, then MySQL is upgraded sometime later. Subsequent table changes (for example, a plugin creating a new table) would use the newer collation, while the original tables would use the older collation. This will cause `JOIN` queries between fields of different collations to fail." pento 17 28625 Enhancement: Add constants to support SSL connections for mysqli Database 4.0 normal normal Future Release enhancement assigned needs-unit-tests 2014-06-24T22:39:12Z 2023-06-24T12:22:46Z "In order to support SSL'ed MySQL connections with the `mysqli_*` functions introduced in WordPress 3.9 / PHP 5.5 `mysqli_ssl_set()` must be called to set the path to the SSL certs and keys to be used by the MySQL client before `mysqli_real_connect()` is called. We should add the following optional constants to allow for users to configure secure connections to the database. * `MYSQL_SSL_KEY` * `MYSQL_SSL_CERT` * `MYSQL_SSL_CA` * `MYSQL_SSL_CA_PATH` * `MYSQL_SSL_CIPHER` In addition this should only be set if the feature flag `MYSQLI_CLIENT_SSL` is set for the existing `MYSQL_CLIENT_FLAGS` constant." hypertextranch 41956 Errno in $wpdb Database normal normal Awaiting Review enhancement new has-patch 2017-09-22T13:30:45Z 2018-08-17T12:09:42Z "Since I use referential integrity in my plugin, there will be situation that the referential integrity will be violated. But, unfortunately there is not a proper way to identify the reason of the violation in $wpdb->last_error. It is only text, and could differ in diffenrent languages I assume. Since Mysqli contains also the errno, would it be possible to also present the errno as part of the result. In that case I could check the errorno to be 1451 for referential integrity violation. In my opinion a usefull enhancement of the WPDB class. If any help needed, just contact me" LeonN1960 16 54042 Extending wpdb::prepare() to support IN() operator Database normal normal Future Release enhancement new dev-feedback 2021-08-31T14:23:26Z 2023-09-17T10:53:12Z "wpdb::prepare() helps avoid SQL Injection vulnerabilities, by escaping most variables correctly. WP 6.1 added support for Identifiers (table/field names) with `%i`, in #52506. But it's also fairly common to make a mistake to include values with the `IN()` operator, for example: {{{#!php <?php $where = 'WHERE id IN (' . implode( ',', $ids ) . ')'; // INSECURE? }}} Developers need to be sure `$ids` has come from a trusted source, or use something like `wp_parse_id_list()` or `array_map('intval', $ids)`. ---- Maybe support could be added with: {{{#!php <?php $wpdb->prepare('WHERE id IN (%...d)', $ids); }}} Where `%...d` or `%...s` would safely (and easily) include a comma separated array of integers or strings - taking the idea of using '...' for variadics in PHP. https://wiki.php.net/rfc/variadics https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html#operator_in" craigfrancis 3 51769 Full-text search support Database normal normal Awaiting Review enhancement new dev-feedback 2020-11-13T12:18:27Z 2022-08-16T12:16:23Z "Let's talk about first-class fulltext search support in WP core. Is there any reason not to support FULLTEXT search in WordPress core for newer MySQL versions with the current search mechanism serving as a fallback for older MySQL versions? MySQL supports FULLTEXT indexes for MyISAM tables since version 3.23.23 and for InnoDB tables since 5.6. As @TimothyBlynJacobs noted, WordPress supports versions back to MySQL 5.0: https://github.com/WordPress/wordpress-develop/blob/master/src/wp-includes/version.php src/wp-includes/version.php As @desrosj noted: * The recommended versions are MySQL >= 5.6/MariaDB >= 10.1 as per https://wordpress.org/download/. * According to the WordPress stats page, a considerable amount of sites use MySQL 5.5 (35%), and some still use 5.1/5,0. Raising support to >= 5.6 is not really an option. The last discussion about that feature I found was from 10 years ago so maybe it's good time to re-evaluate: https://core.trac.wordpress.org/ticket/14722 " zieladam 1 39748 Function to insert or update DB value Database normal normal Awaiting Review enhancement new 2017-01-31T10:00:01Z 2017-10-29T17:06:57Z "Hello. I have been searching for long and couldnt found a good solution to the simple problem: lets say,in my plugin, I create a new table. Then I want to have a function, that updates a row in table, which's column (named EventId) equals i.e. 734 (if such row not exists, then create it). for that, I use my custom-created function: {{{#!php function UPDATE_OR_INSERT($tablename, $NewArray, $WhereArray){ global $wpdb; $arrayNames= array_keys($WhereArray); //convert array to STRING $o=''; $i=1; foreach ($WhereArray as $key=>$value){ $o .= $key . ' = \''. $value .'\''; if ($i != count($WhereArray)) { $o .=' AND '; $i++;} } //check if already exist $CheckIfExists = $wpdb->get_var(""SELECT "".$arrayNames[0]."" FROM "".$tablename."" WHERE "".$o); if (!empty($CheckIfExists)) { return $wpdb->update($tablename, $NewArray, $WhereArray );} else { return $wpdb->insert($tablename, array_merge($NewArray, $WhereArray) ); } } }}} //usage: {{{ UPDATE_OR_INSERT('my_table', array('new_page_content'=>'blabla'), array('EventId'=>734)); }}} it's good if there was built-in function that replaces this custom method" tazotodua 9 6492 Guids No Longer Have Permalink Format Database 2.5 normal normal Future Release enhancement reopened 2008-03-31T06:03:30Z 2019-08-30T01:26:43Z "When you create a new post using WordPress 2.5 the GUID is created in the http://siteurl/?p=<PostId> format even when permalinks are enabled. This is because the _transition_post_status function in /wp-includes/post.php now checks if the guid is empty (which it never is) before resetting/creating it with the proper permalink structure. Line 2841 should be removed. " brianwhite 13 37692 Introduce WP_Database_Table base class Database normal normal Awaiting Review enhancement new dev-feedback 2016-08-17T13:23:28Z 2017-03-15T17:20:50Z "I've always thought it odd that WordPress only versions blogs, and not each individual database table. On one hand, it's great that the schema changes rarely enough that WordPress core would not get a lot of use out of it. On the other, many plugins would benefit pretty hugely from a smart base class that encapsulated a lot of the procedural work of having custom database tables and maintaining a schema. BuddyPress, for example, comes with several object & metadata pairs, for groups, activity, friends, profiles, messages, notifications, etc... It currently takes WordPress's approach of having a big-dumb installer and a bunch of tangled together upgrade routines. I'd love it if each component could manage it's own schema on the fly, with it's own upgrade routines and database table classes to separate the responsibilities, but without needing to setup `admin_init` hooks and `version_compare()` checks for each component. Django has something similar currently, as do other open-source projects like Piwik, GitLab, Mattermost, etc... ---- I'm imagining that each core database table would extend the `WP_DB_Table` class, each with their own `db_version` and their own methods for upgrading to newer versions. Global tables (like `wp_users`) would use `site_id` `-1` in the `wp_sitemeta` database table to distinguish them as global, and not per-network or per-site. ---- This way, when a plugin like WooCommerce wants to introduce new database tables, they just extend the base class, pass in an array of column-keys & attributes, and the base class would handle the `$wpdb` table registration and all of the other bits and bobs. Eventually... eventually it could get paired up with some kind of a `WP_Base_Query` class to automatically handle cache-key assignments, and generate basic crud methods based on the parameters in the associated `WP_Database_Table` extension. ---- I think this becomes particularly useful in REST applications, where WordPress's APIs can be used and extended for any manner of scalable data storage outside of the core database schemas. Obviously this is a huge idea with lots of moving parts, and without a core need ideas like this are pretty slow on the go. I am already starting to do something similar in my own plugins though - just without the base class - and it feels much easier to maintain each plugin knowing there is a similar convention between them. See: https://code.flox.io/stuttter/wp-site-aliases/blob/master/includes/class-wp-site-aliases-db-table.php" johnjamesjacoby 2 39826 LIMIT clause not required in get_options function as there's already a UNIQUE KEY on option_name Database 4.7.2 normal normal Awaiting Review enhancement new dev-feedback 2017-02-09T23:41:05Z 2020-05-07T19:31:10Z "The Core get_options (wp-includes/option.php) uses LIMIT 1 to retrieve only a single row for an option. However, the option_name field already has a UNIQUE KEY in the table schema, so it's impossible for the db to contain or return more than one row for any option_name. Barring history I'm unaware of (if there used to not be a UNIQUE KEY on this field in the past), it's safe to remove the LIMIT 1 clauses from these queries (there are a few instances in the function. While LIMIT clauses can sometimes be harmful to performance, in this particular scenario that's not the case. However, it's just superfluous." arjenlentz 46179 Make fetch_array accessible in $wpdb Database normal normal Awaiting Review enhancement new 2019-02-04T09:38:25Z 2019-02-04T09:38:25Z "Hi, I want to suggest a change in $wpdb. I'd like to see a possibility to use fetch_array by myself rather than taking the result of a query as an array or object. Let me explain why. WordPress doesn't scale very well when you handle large amounts of data from the database. For example, if you want to display a list of all posts and you have like 5000 of them. You'd use WP_Query for that. Which is fine, I guess, for a limited number, but slow in this use case. So you'd query yourself. {{{ SELECT * FROM wp_posts WHERE post_status = 'publish' AND post_type = 'post' ORDER BY post_title ASC }}} If you give that to $wpdb, you'd receive an array with all 5600 posts and all the jazz attached to it. It takes 5 seconds and takes about 500 MB of PHP memory. I have now added an own class and established a second database connection. With that, I run the query above but the result remains in mysql. Instead of {{{#!php <?php foreach($results as $current) { // do stuff } }}} I now run {{{#!php <?php while($current = $mydb->fetch_array($results)) { // do stuff } }}} And I only need 30 MB of PHP RAM and 0.4s of time. This saves a lot of resources because you are able to get rid of a lot of PHP overhead. See, the MySQL result is in memory either way (because you did run the query) but you don't have to store everything from the result in PHP memory as well. You process them one at a time and only store (or output or whatever you need to do) what you actually need. I know this is nothing you'd usually do but there are other use-cases where an accessible fetch_array would come in handy in the interest of performance optimization - for example if your plugin utilizes a cronjob which has to handle large amounts of data. I don't assume this would break anything compatibility-wise as it is an additional method inside this class, so it would be a very nice addition. All you'd need is to add a new return method to $wpdb->query that returns the MySQL resource and a new method that exposes a fetch_array function to the public accepting said resource. Thank you a lot for reading my proposal and at least considering it :) -alduin" alduinwf 1 44292 Make use of protected process_fields Database normal normal Awaiting Review enhancement new 2018-06-01T12:23:58Z 2018-06-01T12:23:58Z "I have written an 'upsert' routine and thought it would be nice to have this functionality in WordPress core. Searching for results in this ticket https://core.trac.wordpress.org/ticket/22196. Not having a method for it, is okay. I already have my own implementation. However I need some field processing like the same way has been done for the insert and update routines. Unfortunately the method for that (process_fields) has been made protected. Is it desirable to make that method public or should I copy the logic of those routines to be able to use it?" andizer 46565 Mixed engine in tables, could bring to major WP failure! Also there is a small fix that could avoid that. Database 4.9.8 normal normal Awaiting Review enhancement new 2019-03-19T18:49:44Z 2019-03-20T07:40:01Z "''First of all ... after MySQL decided to make InnoDB the default engine ... many of us have mixed database with both InnoDB and MyisAM labeled tables. If a plugin add a new table now (it happened to us with both WPML and Woocommerce) the new table will be mostly InnoDB but old table could be MyIsAM. That can bring to JOIN failures, that in our case made us lost primary key or foreign key links, but will definitely cause also tables **permanent locks** (due to plugin/software crash), and that took finally to the main problem: **data (rows) inserted with ID = 0** THAT alone should be advertised a lot around plugin developers, that should check if their plugin tables are equal to the current-default-engine and if they are not, they should: ""alter TABLENAME engine = current-default-engine"".'' **Straight to the point:** Data with ID = 0 actually can make crash WordPress because of this: wp-includes/post.php:4867 Please note that this code will make WordPress go into a recursive infinite loop (causing ""fatal error memory exhausted"") if the ID = 0. I know that ID = 0 is an abnormal situation, but believe me, if having locked tables makes this happen, you want to add a handbreak to that. **This is a small fix, but you surely can do better:** {{{ // Start the search by looking at immediate children. if ( isset( $children[ $page_id ] ) ) { // Always start at the end of the stack in order to preserve original `$pages` order. $to_look = array_reverse( $children[ $page_id ] ); while ( $to_look ) { $p = array_pop( $to_look ); if (!array_key_exists($p->ID,$pidx)) { $pidx[$p->ID]=true; $page_list[] = $p; if ( isset( $children[ $p->ID ] ) ) { foreach ( array_reverse( $children[ $p->ID ] ) as $child ) { // Append to the `$to_look` stack to descend the tree. $to_look[] = $child; } } } } } }}} " Nokao 52253 New filter on wp-db.php Database normal normal Awaiting Review enhancement new reporter-feedback 2021-01-08T05:03:34Z 2021-01-08T18:54:25Z "I need to filter the database returned rows for a plugin I am developping. I cannot accomplish the functionality with current filters. I think that other devs may benefit from these couples of filters I propose. These lines of code placed in substitution of lines 2001 to 2006 of wp-db.php do the job. {{{ $this->last_result[ $num_rows ] = $row; /** * Filters the database returned row in a mysqli context. * * @since 5.6.1 * @param object $row Database fetched row. * @param string $query Database query. */ $row = apply_filters( 'returned_row_mysqli', $row, $query ); $num_rows++; } } elseif ( is_resource( $this->result ) ) { while ( $row = mysql_fetch_object( $this->result ) ) { $this->last_result[ $num_rows ] = $row; /** * Filters the database returned row in a mysql context. * * @since 5.6.1 * @param object $row Database fetched row. * @param string $query Database query. */ $row = apply_filters( 'returned_row_mysql', $row, $query ); $num_rows++; }}} Thanks in advance." guelben 1 49028 Provide functionality to suppress $wpdb query filter Database 5.4 normal normal Awaiting Review enhancement new reporter-feedback 2019-12-18T12:41:59Z 2020-02-08T13:52:34Z "The custom query class `wpdb` methods (`get_col`, `get_car`, `update`, `delete`...) all use the underlying `query` method which (since WP 2.1) has a filter hook 'query' which allows modification of the sql query. Some queries are specific to the internals of a plugin's functionality and are not meant to be exposed to other plugins/functionality, however, currently, there is no mechanism to suppress this filter. Would it make sense to add a boolean flag on the `$wpdb` instance which would allow developers to suppress any query modification? Something like `$wpdb->suppress_filters` which would be set to false by default." aurovrata 54669 Remove ONLY_FULL_GROUP_BY from incompatible wpdb modes Database 3.9 normal normal Awaiting Review enhancement new needs-unit-tests 2021-12-20T12:56:22Z 2022-06-15T20:52:56Z "as GROUP BY is non-deterministic otherwise, ONLY_FULL_GROUP_BY ensures this is not the case. which is why this is enabled by default since MySQL 8 I guess it was disabled originally, as some queries would have to be updated in WP core. I think however, this should be done now, as otherwise we're accumulating more and more technical debt." malthert 1 54324 Rename Table Function - maybe_rename_table() Database normal normal Awaiting Review enhancement new has-patch 2021-10-26T17:22:22Z 2023-01-09T16:23:27Z "I would like to see a helper function to rename tables, similar to maybe_create_table() in /wp-admin/install-helper.php. Having a maybe_delete_table() would be very useful as well." bhubbard 54560 Return null from wpdb::get_results when query fails Database normal normal Awaiting Review enhancement new has-patch 2021-12-02T17:14:55Z 2021-12-02T17:14:55Z "It's not currently possible to know if a query failed internal to `wpdb::get_results()` since the result of `$wpdb->query()` isn't checked. This diff introduces a `null` return from `wpdb::get_results()` when a boolean `false` is returned from `wpdb::query()`." jeffstieler 36 47280 SQL_CALC_FOUND_ROWS is deprecated as of MySQL 8.0.17 johnbillion Database normal normal Future Release enhancement reviewing changes-requested 2019-05-15T14:34:03Z 2024-02-22T07:49:16Z "Per https://dev.mysql.com/doc/refman/8.0/en/information-functions.html#function_found-rows > The SQL_CALC_FOUND_ROWS query modifier and accompanying FOUND_ROWS() function are deprecated as of MySQL 8.0.17 and will be removed in a future MySQL version. As a replacement, considering executing your query with LIMIT, and then a second query with COUNT(*) and without LIMIT to determine whether there are additional rows. This is not yet immediately important because most hosts are on 5.5, or 5.6, rarely 5.7, but given the speed with which trac tickets move that impact very core functionalities, I thought it best to open this ticket to get the work started. This impacts all the 6 places where it's being used, though one of them is in the WP_Query definition." javorszky 8 54346 Slow SQL queries fetching posts from specific categories craigfrancis* Database normal normal Future Release enhancement accepted has-patch 2021-10-30T11:05:53Z 2023-12-11T00:44:48Z "Noticed that REST API queries used in mobile app are very slow and found that such SQL queries can be optimized to be 10 times faster (1.8134 seconds vs. 0.1804 seconds) for wp_posts table having 800k records, see below. Very similar queries are used when displaying posts from specific categories on the web, meaning optimizing this could lead to significant speed up everywhere. The one responsible for this is WP_Tax_Query->get_sql_for_clause function. REST API to fetch posts from specific categories, e.g. `/wp-json/wp/v2/posts/?per_page=10&_embed=1&categories=63545,63546,63547,63548,63549,63552,76287&page=1` executes the following SQL query: {{{ SELECT wp_posts.ID FROM wp_posts LEFT JOIN wp_term_relationships ON ( wp_posts.ID = wp_term_relationships.object_id ) WHERE 1 = 1 AND ( wp_term_relationships.term_taxonomy_id IN ( 63545, 63546, 63547, 63548, 63549, 63552, 76287 ) ) AND wp_posts.post_type = 'post' AND( (wp_posts.post_status = 'publish') ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 }}} Query took 1.8134 seconds. This query can be optimized by using subquery: {{{ SELECT wp_posts.ID FROM wp_posts WHERE wp_posts.ID IN ( SELECT object_id FROM wp_term_relationships WHERE wp_term_relationships.term_taxonomy_id IN ( 63545, 63546, 63547, 63548, 63549, 63552, 76287 ) ) AND wp_posts.post_type = 'post' AND wp_posts.post_status = 'publish' ORDER BY wp_posts.post_date DESC LIMIT 0, 10 }}} Query took 0.1804 seconds seconds. " Krstarica 10 42352 Support use of native MySQLi prepared queries Database normal normal Future Release enhancement new early 2017-10-27T04:15:52Z 2023-09-09T22:23:23Z "When we added `$wpdb->prepare()` back in WordPress 2.3, we were forced to roll our own MySQL Prepared queries as the MySQL extension didn't support it. While the MySQL extension still doesn't, the majority of WordPress sites are likely using the newer MySQLi engine (by default, enabled for PHP 5.5+ which accounts for 70~80% of sites). That makes now a good time to start investigating the potential implementation and usage of native prepared queries in the future. Attached is a first-draft of implementing native prepared queries into WPDB, it has no fallbacks for MySQL at present, but it would be possible to force support in for it using a ""simple"" SQL parser. Unfortunately I expect that this draft is incompatible with many DB drop-ins, which is okay, this is only a draft and proof-of-concept. I'll attach some examples of how this first draft could be used in a comment below." dd32 47994 The additions of a new wp_posts table columns called post_level and post_patriarch Database normal normal Awaiting Review enhancement new 2019-09-06T23:29:48Z 2019-09-06T23:29:48Z "Many user are looking for an easy solution to sort table by page children. I understand their are functions like get_children, pre_get_posts, get_posts, wp_query. But if I wanted to extract the children directly from the db table wp_posts, their is no easy way. So I am suggest the Core team to add in an additional column: post_level. This is already noticed with the post list table's html row/td as a class (level-0) so it should be in the table. {{{ //Get all 1st generations of post based on 2 parents who are cousins SELECT p.* FROM $wpdb->posts p WHERE p.post_level = 1 AND p.post_parent = 123 OR p.post_parent = 345) //Get all 2nd generation pages of parent post id 1 SELECT p.* FROM $wpdb->posts p WHERE p.post_level = 2 AND p.post_patriarch = 1 }}} post_level depends on what level of Parent (0), Child (1) or Grandchild(2) or GreatGrandChild (3) a page is within the Hierarchy. post_patriarch (or lack of a better word) is always the level 0 parent ID This should also be consider for other tables as well(e.g menu_level) I hope this make sense. " samjco 5 41424 "Use a better error message than ""Error establishing a database connection"" when site isn't found" Database 4.9 normal normal Future Release enhancement new needs-unit-tests 2017-07-24T14:24:44Z 2017-11-22T08:58:59Z "In multisite, if this query returns no results, the database connection error is triggered: SELECT blog_id FROM wp_blogs WHERE domain IN ( 'example.com' ) AND path IN ( '/' ) ORDER BY blog_id ASC LIMIT 1 I think the error should not mention database connection but allude to the fact that the site was not found. For my use case, I had migrated a production database into QA and didn't update the domain to be qa.example.com so the connection failed. I hope this is helpful. I'm not sure I know what the exact solution is but I thought the connection attempt had failed, when in fact the connection had been made but the data was not as expected. Also, the failure was not found in debug.log." tthorp 1 41054 Use sargable date filtering where possible Database normal normal Awaiting Review enhancement new 2017-06-15T07:54:13Z 2017-06-15T12:13:22Z "Currently, many queries generated by WP use post_date in a non-sargable fashion, namely by filtering based on the output of a MySQL function taking post_date as a parameter. These can be easily rewritten to use the index on post_date without, to my eyes, breaking anything to boost performance. Here's an example: {{{ MariaDB [blog]> EXPLAIN SELECT * FROM blog.wp_posts WHERE YEAR(post_date) = 2017; +------+-------------+----------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+-------------+----------+------+---------------+------+---------+------+------+-------------+ | 1 | SIMPLE | wp_posts | ALL | NULL | NULL | NULL | NULL | 2684 | Using where | +------+-------------+----------+------+---------------+------+---------+------+------+-------------+ }}} vs {{{ MariaDB [blog]> EXPLAIN SELECT * FROM blog.wp_posts WHERE post_date >= ""2017-01-01"" AND post_date < ""2018-01-01""; +------+-------------+----------+-------+---------------+-----------+---------+------+------+-----------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +------+-------------+----------+-------+---------------+-----------+---------+------+------+-----------------------+ | 1 | SIMPLE | wp_posts | range | post_date | post_date | 8 | NULL | 262 | Using index condition | +------+-------------+----------+-------+---------------+-----------+---------+------+------+-----------------------+ }}} This optimization can be applied to any comparison between post_date and an already known parameter (from query_var). The only time it wouldn't be possible would be when comparing a portion of the date of two different posts (e.g. WHERE MONTH(x.post_date) == MONTH(y.post_date)) It's not much, but it's something. " ComputerGuru 2 40150 VARCHAR/TEXT inefficiencies Database 4.7.3 normal normal Awaiting Review enhancement new 2017-03-14T00:45:10Z 2017-03-14T00:45:10Z "From conversation with Matty Cohen, a selection of structural improvement suggestions, for performance and future-proofing. Note that these aspects have recently been applied to WooCommerce already, resulting in a much optimised/modernised default table structure. Current some of the TEXT and VARCHAR use in WP Core appear to be based on old information - that is, restrictions and behaviour from MySQL versions long ago. This has consequences for performance. First, VARCHAR. In MySQL 4.0, VARCHAR used to be restricted to 255 max. In MySQL 4.1 character sets such as UTF8 were introduced and MySQL 5.1 supports VARCHARs up to 64K-1 in byte length. Thus, any occurrence of VARCHAR(255) indicates some old style logic that needs to be reviewed. Why not just set the maximum length possible? Well... A VARCHAR is subject to the character set it's in, for UTF8 this means either 3 or 4 (utf8mb4) bytes per character can be used. So if one specifies VARCHAR(50) CHARSET utf8mb4, the actual byte length of the stored string can be up to 200 bytes. In stored row format, MySQL uses 1 byte for VARCHAR length when possible (depending on the column definition), and up to 2 bytes if necessary. So, specifying VARCHAR(255) unnecessarily means that the server has to use a 2 byte length in the stored row. This may be viewed as nitpicking in the margin, however storage efficiency affects the number of rows that can fit on a data page and thus the amount of I/O required to manage a certain amount of rows. It all adds up, so having little unnecessary inefficiencies will cost - particularly for larger sites. Best practice is to set VARCHAR to the maximum necessary, not the maximum possible - otherwise, as per the above, the maximum possible is about 16000 for utf8mb4, not 255 - and nobody would propose setting it to 16000, would they? But it's not much different, in stored row space a VARCHAR(255) requires a 2 byte length indicator just like VARCHAR(16000) would. So please review VARCHAR columns and set their definition to the maximum actually necessary, this is very unlikely to come out as 255. If 255, why not 300? Or rather 200? Or 60? Setting a proper number indicates that thought and data analysis has gone into the design. 255 looks sloppy. On to TEXT. TEXT (and LONGTEXT) columns are handled different in MySQL/MariaDB. First, a recap of some facts related to TEXT columns. The db server often needs to create a temporary table while processing a query. MEMORY tables cannot contain TEXT type columns, thus the temporary table created will be a disk-based one. Admittedly this will likely remain in the disk cache and never actually touch a disk, however it goes through file I/O functions and thus causes overhead - unnecessarily. Queries will be slower. InnoDB can store a TEXT column on a separate page, and only retrieve it when necessary (this also means that using SELECT * is needlessly inefficient - it's almost always better to specify only the columns that are required - this also makes code maintenance easier). A TEXT column can contain up to 64k-1 in byte length (4G for LONGTEXT). So essentially a TEXT column can store the same amount of data as a VARCHAR column (since MySQL 5.0), and we know that VARCHAR offers us benefits in terms of server behaviour. Thus, any instance of TEXT should be carefully reviewed and generally the outcome is to change to an appropriate VARCHAR. Using LONGTEXT is ok, if necessary. If the amount of data is not going to exceed say 16KB character length, using LONGTEXT is not warranted and again VARCHAR (not TEXT) is the most suitable column type. Applications don't need to care, so the db definition can be altered without any application impact. Summary: Particularly when combined with the best practice of not using SELECT *, using appropriately defined VARCHAR columns (rather than VARCHAR(255) or TEXT) can have a measurable and even significant performance impact on application environments. It is a worthwhile effort." arjenlentz 42703 WP_Query: Swap parsing date into own method Database normal normal Awaiting Review enhancement new 2017-11-26T17:32:44Z 2019-01-16T06:50:09Z "The WP_Query::get_posts also parses the date query. This is modular enough to swap it to its own method at last. A proof of concept has been made and all tests are still green. Some details and todos: - see https://github.com/ScreamingDev/wordpress-develop-1/commit/6bb681e8caf4df8ba4811690ee19f12ad1755371 - Check if the whole logic can be shifted to WP_Date_Query::get_sql Hint: The long run is about enabling WordPress to support multiple tables (per ""post-type""). To achieve this some enhancements to the current wpdb and WP_Query class are needed. This issues covers a small bit of it by refurbishing the source." screamingdev 10 41281 attachment_url_to_postid results in very slow query joemcgill* Database 4.9 normal normal Awaiting Review enhancement accepted 2017-07-10T07:53:25Z 2021-04-30T13:17:51Z "`attachment_url_to_postid` throws query like this: {{{ # wp-includes/media.php ll.3922 $sql = $wpdb->prepare( ""SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attached_file' AND meta_value = %s"", $path ); }}} But wp_postmeta table has index only of `meta_key`, this may cause file sort. == Why this is problem == Let's assume that you have 20,000 posts and each post has 10 attachments in your WP news site. MySQL filters rows with `meta_key` but still remain 200,000 possible rows. This causes file sort. `attachment_url_to_postid` is used not only in admin screen, but also in public area(e.g. AMP Plugin https://wordpress.org/plugins/amp/ ). Now twitter changes URL for mobile device if AMP version is available. So, MySQL CPU raises up to 100% by `attachment_url_to_postid` if site traffic is high, == Solution == To avoid slow query, I suggest adding another index. {{{ ALTER TABLE $wpdb->postmeta ADD INDEX meta_key_meta_value (meta_key(191), meta_value (64)); }}}" Takahashi_Fumiki 1 8924 autoload should be boolean in add_option() Database lowest normal Awaiting Review enhancement reopened 2009-01-22T23:51:48Z 2019-03-15T00:30:00Z "Regarding: CREATE TABLE `wp_options` (`autoload` varchar(20) NOT NULL DEFAULT 'yes', Why not boolean binary, or one character long? " jidanni 3 40357 dbDelta can't change primary keys, create AUTO_INCREMENT columns and doesn't make significant index changes Database 4.8 normal normal Awaiting Review enhancement new needs-unit-tests 2017-04-04T17:20:04Z 2017-04-04T18:21:02Z "dbDelta has three inter-related issues which center around changing indexes. 1) It isn't possible to change which column is the primary key 2) It isn't possible to add a new AUTO_INCREMENT column 2b) It isn't possible to modify an existing AUTO_INCREMENT to no longer be AUTO_INCREMENT 3) Indices with the same name are not dropped/re-created, even when the index definition is changed significantly. == Use case == A client had been tracking inventory in a custom table where the product ID was the primary key. When he opened a new location, we added a location column, and wanted to be able to track how many of each product was in each location. 1. A table's purpose is being expanded, or otherwise doesn't meet the needs of the data. Since the primary key is unique, we needed to add a new key column and change which column was designated as the primary key. 2. A table was originally defined without an AUTO_INCREMENT column and the need for such a column arises. The new column we wanted to add and use for the key was simply an AUTO_INCREMENT integer column. In testing we defined the new column and also defined a new UNIQUE index (so, not changing the primary key yet). Since dbDelta adds new columns before adding the new indices, and in separate ALTER TABLE statements, MySQL refuses to add a new AUTO_INCREMENT column without an index. The solution is to add the new column without the AUTO_INCREMENT designation, then add the UNIQUE index, then alter the table to use AUTO_INCREMENT. 3. A primary (or other key) could be significantly and intentionally altered, significantly changing how queries are run. I understand that WP doesn't want to drop and recreate indices when changing the sub-part of an index (see: https://core.trac.wordpress.org/ticket/34870#comment:21) However I think that it should change the index, if the definition is significantly altered. In the use case above, we could've changed the primary key to be `PRIMARY KEY(productId,location)` instead of adding a new column and switching the index to that column. In other use cases, changing from a BTREE to FULLTEXT index would change which types of queries need to a full table scan. == This Patch == This patch does the following: 1. You can now add a new AUTO_INCREMENT column to an existing table When a new AUTO_INCREMENT column is added to an existing table, the column creation is done in two parts. First the column is created as a non-AUTO_INCREMENT column, and a separate `ALTER TABLE` statement is set to run after index creation to enable AUTO_INCREMENT. Note: The CREATE TABLE statement given to dbDelta must provide the required indexes that MySQL expects. 2. You can now modify a column with AUTO_INCREMENT to no longer use AUTO_INCREMENT 3. You can change which column is the primary key 4. Significant index definitions cause an index to be dropped and re-created The cases that cause an index to be dropped and re-created are: * An index which wasn't UNIQUE, but now is or vice-versa * An index which changes index type (eg. FULLTEXT => BTREE) * An index which contains a different number of columns * An index which contains a different column order * An index which contains different columns Note: Changing the index sub-part or no longer defining the index in the table does not cause it to be dropped. == Other notes == 1. I've tried to use WP coding standards and comment my code well. I'd love feedback if there are things I can do better. 2. I've included a file, test.php which takes 13 table definitions, takes them two at a time, and converts between each possible combination. To run it, put it in the root WordPress directory and run `php ./test.php`. 3. Also, the dbDelta phpunit tests still pass." stuporglue 2 49654 maybe_drop_table Database normal normal Awaiting Review enhancement new 2020-03-16T17:37:38Z 2023-04-07T15:21:11Z We currently have a function for `maybe_create_table`, I was looking for one to `maybe_drop_table`. This would be a very helpful function. bhubbard 2 46576 short-circuit filter for dbDelta Database normal normal Awaiting Review enhancement new 2019-03-20T15:32:29Z 2019-03-20T15:32:29Z "`dbDelta` function can cause strange things on the large-scale WordPress installations. When you have large amounts of data, you don't really want to schema changes apply directly on the production. (at least we don't do that) So, I recommend adding new short-circuit filter to avoid that. (I know, returning an empty array with `dbdelta_queries` might be a workaround but not ideal for this job.)" m_uysl 58871 support uca14.0.0 collation in database where available Database 6.3 normal normal Awaiting Review enhancement new has-patch 2023-07-20T23:36:30Z 2023-09-25T00:17:50Z "Like #32105 supporting a modern collation is a good idea. MariaDB added this in 10.10.1 (ref: https://jira.mariadb.org/browse/MDEV-27009). As the current default is case insensitive, we'll follow the same insensitivity and use accent insensitive. So of the collations available, use uca1400_ai_ci. ref: https://mariadb.com/kb/en/supported-character-sets-and-collations/#collations" danielblack 1 46287 Add insert_ignore() method to wpdb to avoid unecessary boilerplate code Database normal normal Awaiting Review feature request new has-patch 2019-02-20T09:43:09Z 2019-02-20T10:44:33Z It's a very useful query, and easy to add to the core. Its usage would be less error prone, and code a lot DRYer if it were officially supported. lev0 12 57793 Add native support for SQLite Database normal normal Future Release feature request new has-patch 2023-02-23T07:10:43Z 2024-02-26T12:21:28Z "A few months ago, a proposal was published to natively support SQLite in WordPress Core (https://make.wordpress.org/core/2022/09/12/lets-make-wordpress-officially-support-sqlite/). That proposal outlines a lot of the benefits of supporting SQLite in Core. The proposal has received a lot of positive feedback, both from the community and the WordPress leadership so this Trac ticket is the next step, to promote collaboration and discussion. The performance team has been working on an implementation that adds support for SQLite via the SQLite Database Integration plugin (https://wordpress.org/plugins/sqlite-database-integration/). Before being published as a stand-alone plugin, it was implemented as a module in the Performance Lab plugin (https://wordpress.org/plugins/performance-lab/) where it received a lot of user-testing." aristath 2 58694 Enhancement in wordpress Database API Database 6.2.2 normal normal Awaiting Review feature request reopened 2023-07-01T12:11:08Z 2023-08-30T17:51:17Z "Hi im a wordpress developer and freelancer i also do wordpress Database optimization for my customers and I have a very smart suggestion to optimize the database structure of Beloved WordPress! issue: Keep in mind that every plugin and theme installed in WordPress will inject some data (options/post-metas/ etc) to the wpdb and when you remove them their data will remain (unused) inside user wp database with no clue or indication of what template or plugin the information was for! My suggestion: you can simply add an extra Argument for the core functions for adding options or metas (update_option or update_post_meta/update_user_meta) this Arg will add that plugin or theme base name to the added option or meta added like this -> update_option(""myopt"", ""myvalue"", $autoload, ""wooslider"") which the 4th arg is the name of my example plugin and its REQUIRED type ALSO the name of the plg/theme can be auto inserted from an PHP constant -> (define('WOODMART_CORE', __FILE__); ) NOTE: By using this new system, whenever a person wants to manually optimize the database, she/he can easily find out which information is not needed and quickly query and delete them, Also, the plugins that perform database cleaning are much easier and more efficient, fully automatically find out which plugins no longer exist and which information is related to them and can be deleted without any trouble! See the pic plz... https://mdezign.ir/wp-content/uploads/2023/07/aasdsadasdasd.jpg Consider this as a Great New development in order to optimize and speed up all WordPress sites! Thanks a lot. " mdesignfa 6 54070 "Increase CPT ""machine name"" limit from its current maximum of 20 characters." Database 2.1 normal normal Awaiting Review feature request new dev-feedback 2021-09-03T13:30:04Z 2022-10-04T18:08:03Z "In order to accommodate proper namespacing for Custom Post Types (as well as, potentially, transliteration from non-Latin alphabets), 20 characters is often not enough. Custom Taxonomies currently have a machine name limit of 32 characters. It would be nice to see CPTs have at least that many, although 64 characters would be even better." taupecat 54235 Script for handling metadata in wp_postmeta Database normal normal Awaiting Review feature request new needs-docs 2021-10-08T12:49:11Z 2021-10-08T13:47:16Z "Hello, Since wp_postmeta table gets so big, and most users just upload and delete and change themes/media sizes and reload and change again, etc. sooo often …could someone at WordPress just give a customizable function to handle data in that table? Specifically for images … I´m using a filter to prevent storing exif and iptc metadata in the same meta key for sizes (_wp_attachment_metadata): add_filter( ‘wp_read_image_metadata’, ‘__return_false’ ); but I had to delete manually all data that was previously added by default …and the same for unused images´ sizes. I guess wp-includes/media.php points something about this but I have no idea about unserializing, query for specific data, filtering results, deleting it, serializing again and restoring to db …I´m affraid this tasks have to be done manually by users with no code knowledge … Hope someone could write a custom php script for this. Thanks, Julia " julia77 1 59281 Support for Database Cursor Database normal normal Awaiting Review feature request new 2023-09-04T19:34:08Z 2023-09-27T13:47:35Z Is it possible to do a cursor query using the `$wpdb` instance or could it be added, which will return a generator (yield)? heera 1 51762 Unix authentication support via unix_socket Database normal normal Awaiting Review feature request new 2020-11-12T12:15:50Z 2020-11-12T12:15:50Z "Hi, It seems WordPress supports unix_socket for the database, but not unix authentication - it would greatly increase the security of deployments (one less password is always better) and accelerate deploying speed, as you can just use the unix user for authentication. More info here: https://mariadb.com/kb/en/authentication-from-mariadb-104/ Cheers!" biztems 3 15332 dbDelta($query) - do not create view Database 3.0.1 normal normal Future Release feature request reopened needs-unit-tests 2010-11-07T14:23:52Z 2018-07-30T08:45:42Z "during plugin creation I create few tables with dbDelta($query). that is working without problems. But on the end I create two views on this tables with dbDelta($query) - that is not working. The views are not created. The sql is ok, manually the create works." christian_gnoth 60096 Remove back-compat for database servers that don't support utf8mb4 johnbillion Database trunk normal normal 6.6 task (blessed) assigned has-patch 2023-12-18T19:45:03Z 2024-02-28T00:31:19Z Since [57173] the minimum supported version of MySQL is 5.5.5, which means the utf8mb4 charset is supported by all supported database servers. The back-compat code for handling servers that don't support it can therefore be removed, along with related tests and health checks. johnbillion 2 34435 Creating a post might fail during fall's DST switch due to ambiguous time Date/Time normal normal Future Release defect (bug) new needs-docs 2015-10-25T00:53:55Z 2019-05-30T06:24:04Z "When I use `wp_insert_post()` to create a post when `timezone_tz` is `Europe/London` [https://github.com/danielbachhuber/year-ago-today/blob/master/year-ago-today.php#L25-L32 ref], the post gets scheduled for the future. `$post_date` is established here: https://core.trac.wordpress.org/browser/tags/4.3/src/wp-includes/post.php#L3272 Because `$post_date_gmt` isn't supplied, it's set here: https://core.trac.wordpress.org/browser/tags/4.3/src/wp-includes/post.php#L3292 However, `get_gmt_from_date()` returns the same value as its supplied, when it should return an hour less (as Europe/London respects DST). `gmdate()` returns the proper GMT date (one hour less) so the post gets forced to `future` [https://core.trac.wordpress.org/browser/tags/4.3/src/wp-includes/post.php#L3310 ref] Here's debug of `get_gmt_from_date()`: {{{ <?php $format = 'Y-m-d H:i:s'; $string = '2015-10-25 01:23:08'; $tz = 'Europe/London'; $datetime = date_create( $string, new DateTimeZone( $tz ) ); echo $datetime->format( $format ) . PHP_EOL; // 2015-10-25 01:23:08 $datetime->setTimezone( new DateTimeZone( 'UTC' ) ); echo $datetime->format( $format ) . PHP_EOL; // 2015-10-25 01:23:08, but should be 2015-10-25 00:23:08 }}} Is this a bug in PHP, or how we're using `DateTime`? Tested on PHP 5.6.14, 5.5.9, and 5.5.27" danielbachhuber 1 55339 Date changes to ordered list (and default 1. 1.) when at beginning of line Date/Time normal normal Awaiting Review defect (bug) new 2022-03-08T11:54:11Z 2022-03-08T11:54:11Z "Hi, I have found that when I write a date (e.g. ""5. dubna 2022"" that is 5th of April, but in Czech format) at the beginning of line in post that WordPress renders it to default 1.1. at frontend. Text remains the same at backend but generated post at frontend: - changes to 1. 1. 2022 - and in html code there is ordered list When any characters are before the date on that line, nothing changes at frontend." jhn11 49012 Date format output incorrect in Finnish Date/Time 5.3.1 normal normal Awaiting Review defect (bug) new 2019-12-17T15:31:34Z 2022-04-29T22:49:19Z "Pretty much exactly the duplicate of previous tickets reporting this issue with at least Italian and Russian languages, like here: #48606 In my case the problem occurs with Finnish using 5.3.1. The date format ""F j, Y"" shows up as ""2 joulukuun, 2019"", which basically has F and j reversed." kipex 51625 Date/Time test failures during DST transition Date/Time normal normal Awaiting Review defect (bug) new 2020-10-25T01:25:22Z 2020-10-25T01:28:51Z "There are some tests in Europe/London and Europe/Kiev timezones that fail exactly during the hour of DST transition, October 25th 2020, 00:00 to 01:00 (UTC): {{{ There were 4 failures: 1) Tests_Date_Current_Time::test_should_return_correct_local_time The dates should be equal Failed asserting that 1603588676 matches expected 1603585076. /var/www/tests/phpunit/includes/phpunit7/testcase.php:38 /var/www/tests/phpunit/tests/date/currentTime.php:116 2) Tests_Date_I18n::test_should_return_wp_timestamp The dates should be equal Failed asserting that 1603585076 matches expected 1603588676. /var/www/tests/phpunit/includes/phpunit7/testcase.php:38 /var/www/tests/phpunit/tests/date/dateI18n.php:152 3) Tests_Date_Get_Feed_Build_Date::test_should_fall_back_to_last_post_modified Fall back to time of last post modified with no posts Failed asserting that false matches expected 1603588676. /var/www/tests/phpunit/includes/phpunit7/testcase.php:38 /var/www/tests/phpunit/tests/date/getFeedBuildDate.php:67 4) Tests_Formatting_Date::test_get_gmt_from_date_string_date The dates should be equal Failed asserting that 1603588686 matches expected 1603585086. /var/www/tests/phpunit/includes/phpunit7/testcase.php:38 /var/www/tests/phpunit/tests/formatting/date.php:88 }}} https://travis-ci.com/github/WordPress/wordpress-develop/builds/192590290 To reproduce locally, just set the system date to the date and time above. These should ideally be made less fragile. Since we already have some tests for DST specifically, perhaps these tests should use a timezone that does not observe DST." SergeyBiryukov 2 51945 Dates in REST API responses are incompatible with date-time JSON schema format Date/Time 4.7 normal normal Awaiting Review defect (bug) new dev-feedback 2020-12-05T13:08:06Z 2020-12-07T13:14:31Z "Most date properties of objects in a REST API response (for example the published date of a post) declare a JSON schema format of `date-time`. This is incorrect because `date-time` format requires a timezone identifier and dates in the REST API do not include one. The `date-time` format uses IETF RFC 3339 which differs from ISO 8601. The former requires a timezone identifier, the latter does not. Notably several date field descriptions in the REST API reference ISO 8601, which is also incorrect. Validating a REST API response against its JSON schema therefore fails due to the incorrect date format. == Tested with: * [https://github.com/ajv-validator/ajv AJV] * [https://github.com/java-json-tools/json-schema-validator json-schema-validator] Note that [https://www.jsonschemavalidator.net/ Json.NET Schema] contains [https://github.com/JamesNK/Newtonsoft.Json.Schema/issues/105 a bug which means it incorrectly allows a date without a timezone identifier]. == References: * [https://json-schema.org/draft/2019-09/json-schema-validation.html#rfc.section.7.3.1 JSON schema standard section 7.3.1] where it states that the `date-time` production from IETF RFC 3339 is used for its `date-time` format * [https://tools.ietf.org/html/rfc3339#section-5.6 IETF RFC 3339 section 5.6] where its `date-time` production ABNF is specified == Potential Solutions 1. Switch to using IETF RFC 3339 format for dates, and use the time zone of the site as the timezone identifier 2. Switch to using IETF RFC 3339 format for dates, use `Z` as the timezone identifier, and convert all dates to UTC 3. Remove `date-time` from the JSON schemas and don't change the format or timezone used for dates I think option 1 is preferable but this is technically a breaking change as REST API consumers might not expect a timezone identifier in the date fields even though the `format` declares that one will be present. " johnbillion 1 51289 Documentation issue: get_post_time is getting the time when published not when created SergeyBiryukov Date/Time normal normal Future Release defect (bug) reviewing has-patch 2020-09-10T19:50:39Z 2022-02-13T22:08:35Z "I'm having a doubt with https://developer.wordpress.org/reference/functions/get_post_time/ (probably the same with https://developer.wordpress.org/reference/functions/get_the_date/) They both say 'Retrieve the date on which the post was written.', but from some programming I'm doing now it looks more like 'Retrieve the date on which the post was PUBLISHED.'. Test: create a post in draft or pending and check that date using the function. (I'm doing it with a CPT) " casiepa 3 32386 Draft's Last Modified date incorrect if it is Scheduled obenland Date/Time 4.2.2 normal normal Future Release defect (bug) assigned 2015-05-14T10:03:41Z 2020-10-07T16:59:10Z "Once a Draft is Scheduled, the date of it its most recent revision is not shown under the Date column at Posts > All Posts. Instead, the Draft's scheduled publication date is shown in the Date column, alongside the label 'Last Modified'. Steps to recreate: 1) Create and save a Draft 2) Set a scheduled publication date and time for the Draft 3) Save the Draft 4) Check the 'Date' column at Posts > All Posts If you schedule a Draft for the future, for example, a Last Modified date from the future is shown under Date." lastnode 4 57035 Error in current_time() function when using timestamp and no value for gmt_offset audrasjb Date/Time 5.3 normal normal 6.6 defect (bug) reopened dev-feedback 2022-11-08T13:28:40Z 2024-02-18T14:59:54Z "This may be a but of an edge case, but if the gmt_offset is not set correctly a string is returned and then used in math to multiply against HOUR_IN_SECONDS. In PHP 7 and earlier this is dismissed as a warning so processing continues, but in PHP 8 this throws a fatal error. It looks like the function has some typecasting, but it is placed in the wrong spot. {{{ // Don't use non-GMT timestamp, unless you know the difference and really need to. if ( 'timestamp' === $type || 'U' === $type ) { return $gmt ? time() : time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); } }}} Should be {{{ // Don't use non-GMT timestamp, unless you know the difference and really need to. if ( 'timestamp' === $type || 'U' === $type ) { return $gmt ? time() : time() + ( (int) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); } }}} Again, this is potentially an edge case. Another ticket, #56358, was reported and closed when the user discovered a work around, but I think this fix is pretty simple and will solve for weird edge cases that can break sites in php8." Nick_theGeek 2 48207 Implement new Comment Date Functions Date/Time normal normal Awaiting Review defect (bug) new needs-unit-tests 2019-10-04T03:33:42Z 2019-11-08T11:42:21Z WordPress 5.3 introduces get_post_datetime() and get_post_timestamp(). Suggesting that these be mirrored with the equivalent functions get_comment_datetime and get_comment_timestamp. dshanske 1 46609 Incorrect posts date on saving scheduled posts draft Date/Time 5.1 normal normal Awaiting Review defect (bug) new 2019-03-22T16:19:24Z 2022-12-05T15:16:15Z "Hello: When a scheduled post is saved, the created post date is keept, instead of the scheduled date the user wanted to program. So, when the user make a preview of the post, the date showed is incorrect, because not correspond to the scheduled post date but to the present date. The date is corrected only when the post is programmed. I think the date of the post must be changed when the post was saved as a draft too. Best regards, Javier." Marlimant 5 53780 PHP 8.1: DateTimeZone::getTransitions() change Date/Time normal normal Awaiting Review defect (bug) reopened close 2021-07-26T09:48:55Z 2022-08-03T07:41:37Z "This is a follow-up to #49038. PHP 8.1 getTransitions, The data format that the library uses has changed, and will now only contain a list of transitions up until the last time the *rules* changed. https://bugs.php.net/bug.php?id=80963" autotutorial 1 60629 PHP Fatal error: Uncaught TypeError: gmdate(): Argument #2 ($timestamp) must be of type ?int, string given in wp-admin/includes/dashboard.php:1025 Date/Time 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-24T16:57:33Z 2024-03-18T17:00:40Z "== Bug Report === Description Describe the bug. === Environment - WordPress: 6.4.3 - PHP: 8.3.3-1+ubuntu22.04.1+deb.sury.org+1 - Server: Apache/2.4.52 (Ubuntu) - Database: mysqli (Server: 8.0.36-0ubuntu0.22.04.1 / Client: mysqlnd 8.3.3-1+ubuntu22.04.1+deb.sury.org+1) - Browser: Chrome 121.0.0.0 (Windows 10/11) - Theme: tfm4wp 23.05.1 - MU-Plugins: * wp-hide-loader.php - Plugins: * Advanced Cron Manager 2.5.2 * Cron Logger 1.2.1 * ct4gg 1.5.1 * Customer Tools For WordPress 1.1.0 * Cycles For WordPress 24.02.1 * Duplicator 1.5.8.1 * Loco Translate 2.6.6 * Query Monitor 3.15.0 * Solid Security Basique 9.3.1 * stats4wp 1.4.9 * Theme Check 20231220 * WordPress Beta Tester 3.5.5 * WP Hide & Security Enhancer 2.3.1 === Steps to Reproduce 1. Change Php 7.4 to php 8.3 2. login to admin dashboard x. 🐞 Bug occurs. At login to dashboard === Expected Results 1. ✅ What should happen. === Actual Results 1. ❌ What actually happened. [24-Feb-2024 15:34:00 UTC] PHP Fatal error: Uncaught TypeError: gmdate(): Argument #2 ($timestamp) must be of type ?int, string given in /var/www/vhost/dev-wordpress/wp-admin/includes/dashboard.php:1025 Stack trace: #0 /var/www/vhost/dev-wordpress/wp-admin/includes/dashboard.php(1025): gmdate() #1 /var/www/vhost/dev-wordpress/wp-admin/includes/dashboard.php(948): wp_dashboard_recent_posts() #2 /var/www/vhost/dev-wordpress/wp-admin/includes/template.php(1456): wp_dashboard_site_activity() #3 /var/www/vhost/dev-wordpress/wp-admin/includes/dashboard.php(271): do_meta_boxes() #4 /var/www/vhost/dev-wordpress/wp-admin/index.php(204): wp_dashboard() #5 {main} thrown in /var/www/vhost/dev-wordpress/wp-admin/includes/dashboard.php on line 1025" vanhoucke 2 55503 Post Date display issue if we set empty from General Settings page Date/Time normal normal Awaiting Review defect (bug) new 2022-03-31T14:04:23Z 2022-03-31T16:41:44Z "Hello, I have faced one issue with the post date field on the backend side. If we set empty Date and Time format from the General Settings page then the post date will be empty displaying on the edit screen of an article(any post type). We need to set any default date and time format to display or make the Date format and Time format field required. If any admin set it empty mistakenly then it will take hours to figure out the root cause of the issue." rishishah 1 57409 Post date/time selector on a different timezone than of the server's Date/Time 6.1 normal normal Awaiting Review defect (bug) new 2023-01-02T09:50:40Z 2023-10-30T17:58:04Z "I've noticed this bug since updating to WordPress 6.1, but I didn't know it had anything to do with timezones until I traveled to Brazil the past couple of weeks. My server is running on GMT-3, Brazil's timezone. While I was there, everything was ok. But here in Portugal (GMT), the post's date/time selector has a bug in which it doesn't circle the correct date on the calendar, but the previous day instead. I'm attaching a screenshot." rfischmann 1 55953 Problemas com a hora universla no wordpress Date/Time 6.0 normal normal Awaiting Review defect (bug) new needs-refresh 2022-06-09T11:11:53Z 2022-06-13T11:42:11Z "Senhores, Existe um ""DEFEITO"" no wordpress na parte de configuração na hora Universal contra Hora Local. Após configurar corretamente a hora local do sistema o WordPress soma 3 horas a mais e influencia no sistema bem como nos Pedidos que são feitos no Woocommerce, onde os pedidos sai com a data e horário universal, isto não é certo sendo que tentei várias formas de corrigir como podem ver no link do fórum de suporte: https://wordpress.org/support/topic/como-resolver-problema-da-hora-universal/#post-15721421 Isso é muito grave, principalmente para nós do Brasil e precisa ser corrigido URGENTEMENTE" pageupsolutions 5 43028 Remove numbers before month in dropdown, it makes user confused when drowdown is not opened Date/Time 3.3 normal normal Awaiting Review defect (bug) new has-patch 2018-01-05T12:01:10Z 2020-06-22T17:18:06Z "Bug: Remove numbers before month in dropdown, it makes user confused when drowdown is not opened 1. Navigate to Header from left Rail 2. Select ""Header Media"" 3. Make anu changes 4. Select ""setting"" icon near ""publish"" button from top 5. Select ""Schedule"" radio button 6. Check Date Field " nilamacharya 3 44597 Scheduling posts adds wrong seconds as post_date Date/Time 4.9.7 normal normal Awaiting Review defect (bug) new 2018-07-17T15:41:55Z 2020-08-25T22:06:53Z "Whenever I schedule a random post on wordpress, for example I give the date 2 August 2018 18:00, wordpress inserts the wrong seconds into the database in post_date. post_date of the example given would be something like `2018-08-02 18:00:22`. WordPress would add these 22 seconds, which is wrong, because I have defined only hours and minutes in the GUI, so seconds should not be just randomly defined. Here is a database example: [[Image(https://i.imgur.com/0KM1Jpw.png)]] " katsar0v 1 55242 Time options in Settings have changed to uppercase AM and PM instead of lowercase Date/Time 5.9.1 normal normal Awaiting Review defect (bug) new 2022-02-23T19:06:14Z 2022-03-08T13:46:47Z "Not sure exactly when this change has crept in, but it should ideally be reverted as uppercase use of AM and PM isn't considered correct. https://writingexplained.org/am-or-a-m-pm-or-p-m-do-i-capitalize-am-and-pm https://capitalizemytitle.com/ufaqs/are-am-and-pm-capitalized/ https://en.wikipedia.org/wiki/Date_and_time_notation_in_the_United_Kingdom All of the sources above state that lowercase use of am and pm should be used. " leecollings 5 58986 TypeError: Unsupported operand types: string * int * Date/Time 6.2.2 normal normal Future Release defect (bug) reopened dev-feedback 2023-08-05T17:08:48Z 2024-03-18T17:57:31Z "Path: `/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php` File: `class-wp-rest-posts-controller.php` Line: 1833 **Expression Error:** `get_option('gmt_offset') * HOUR_IN_SECONDS` **Rais Exception:** `TypeError: Unsupported operand types: string * int` Suggested Fix: `intval(get_option('gmt_offset')) * HOUR_IN_SECONDS` Thanks " nurielmeni 3 52220 Weekly archives/week 53 incorrect crossing over a year change Rarst* Date/Time 5.6 normal normal Awaiting Review defect (bug) accepted needs-unit-tests 2021-01-04T19:50:24Z 2021-01-05T20:28:24Z "I run a site that publishes items every single day, and I regularly make use of its weekly archives. The relevant dates here(via https://www.epochconverter.com/weeks/2020) are: 2020 week 52 is Dec 21 – Dec 27 2020 week 53 is Dec 28 – Jan 3 2021 week 1 is Jan 4 – Jan 10 Instead, my weekly archives come out as: 2020 week 52 is Dec 21 – Dec 27 2020 week 53 is Dec 28 – **Dec 31** 2021 week 1 is Jan 4 – [ongoing] [I can provide live URLs for these, just wasn't sure if self-linking was frowned upon.] There's three days in there that just…don't exist(in the archives; there ''are'' published entries). It's kind of a pain to find much information on weekly archives in the first place since they're not all that common in actual use and the search terms are broad but I'm currently trying to find someplace else that publishes often enough I can try feeding it a query string to see what happens. This replicates for previous year changes, ie. 2020 week 1 is Dec 30, 2019–Jan 5, 2020 but the archive just starts at Jan 1 instead. Also replicates with all plugins disabled and using Twenty Twenty-One." sugeneris 1 26798 While inserting a post some values for 'post_date' throw a PHP exception Date/Time 3.5 normal normal Future Release defect (bug) new changes-requested 2014-01-08T23:30:53Z 2022-07-14T21:16:57Z "If you try and insert a post with a date that does not have leading zeros (eg `2012-01-8` or `2012-1-08` or `2012-1-8`) a PHP error is thrown in [source:/trunk/src/wp-includes/functions.php#L4015]: `A non well formed numeric value encountered` due to the checkdate() call. Minimum code to reproduce: {{{ #!php $post_data = array( 'post_title' => 'some title', 'post_content' => 'some content', 'post_status' => 'publish', 'post_date' => '2012-01-8 12:00:00', ); wp_insert_post( $post_data ); }}} Two possible solutions: 1. Get strict about date formatting: ie: require leading zeros. If a date comes in without leading zeros a WP_Error() should be returned, an error should not get thrown. 2. Allow non-leading zeros. Either way using `substr()` in [source:/trunk/src/wp-includes/post.php#L2805] is at fault. I've attached a diff that uses a regex to parse the date using capture groups. Its much cleaner and will detect a badly formatted date and handle it gracefully. The regex does not require leading zeros. If leading zeros are required the regex should be changed to: `/^(?P<year>\d{4})-(?P<month>0[1-9]|1[012])-(?P<day>0[1-9]|[12][0-9]|3[01])/`" mobius5150 3 41011 get_calendar generates query with invalid date formats Date/Time normal normal Future Release defect (bug) new 2017-06-12T13:51:12Z 2020-09-22T05:31:12Z "Given a parameter like `?w=1400`, which is obviously not a week number, `get_calendar` will try to compute the date 9799 days into the year. It would make sense to check that `$w` is in a valid range, such as not greater than 53. At the same time, `get_calendar` does not check that `$m` is a valid date, resulting in `$thisyear == '0'` and a query of `SELECT DATE_FORMAT((DATE_ADD('00101', INTERVAL 9799 DAY) ), '%m')`." andy 3 26980 the_modified_date is lower than the_date when post is scheduled Date/Time 3.8 normal normal Awaiting Review defect (bug) reopened has-patch 2014-02-01T08:38:41Z 2021-05-05T21:43:34Z "I scheduled a post on 30th Jan for 1st Feb. When the post was published, the modified date shows lower than the published date. I am using {{{<?php the_date('F j, Y'); ?>}}} for first part & {{{<?php the_modified_date('F j, Y'); ?>}}} for the second part. [[Image(https://dl.dropboxusercontent.com/u/1830109/wp-381-date.jpg)]] This should show the_modified_date = the_date in case of scheduled posts? Thoughts?" tushonline 45047 user_registered returned as UTC Time instead of Local Time Date/Time normal normal Future Release defect (bug) new has-patch 2018-10-04T13:01:31Z 2020-04-22T15:52:04Z "I apologize if this has been discussed/covered before or I am missing something obvious, but I did a few searches, both through the code base and also bug-tracker/google, and couldn't find anything on this subject. While trying to debug a timezone issue for a client, I noticed that user_registered appears to be set to GMT/UTC time by default, rather than the local time set via settings. I searched the code and found where I think this is set: //wp-includes/user.php {{{#!php <?php $user_registered = empty( $userdata['user_registered'] ) ? gmdate( 'Y-m-d H:i:s' ) : $userdata['user_registered']; }}} I also tested adding a user on a relatively clean site via the default add user option and verified it gets set to UTC, regardless of the local time setting in wordpress. So, when you grab the user via get_userdata(), the $user_data->user_registered field looks like it will always be UTC time, unless presumably the user is created manually(wp_create_user or equivalent) and you set the time during creation. I think setting it in ALL cases to UTC probably makes sense, as you never know when a person is going to change their timezone settings in wordpress, the settings on their server, etc. And, timezones can be a pain to work with in general, so having it be UTC by default makes sense. However, when returning it back to the end-user, it would be useful to have it take into account their local timezone setting in WordPress, at least by maybe adding a $user_data->user_registered_local field to the user object. " kcrnc 3 49413 wp_exif_date2ts should use Datetime and accept an optional offset Rarst Date/Time low normal Future Release defect (bug) reviewing needs-unit-tests 2020-02-12T07:57:33Z 2022-01-19T12:47:53Z "I think this falls under the date/time component. This function should be updated to use DateTime and to accept an optional timezone offset. Right now, this is called by wp_read_image_metadata with the result the timestamp is wrong. This is because timestamps in exif are stored without timezone offsets, usually in local time. Storing it as a timestamp was therefore a mistake in my opinion as it will always be off. We should be assuming that the time is local site time unless an optional offset/timezone string is passed in. Separately, as newer cameras and most cell phones do store that offset, will be proposing changes for that in a separate ticket. " dshanske 56887 wp_exif_date2ts throws notice on slash formatted date Date/Time 5.2.3 normal normal Awaiting Review defect (bug) new 2022-10-22T11:15:51Z 2022-10-22T11:15:51Z "When an image has an exif date in the format ... > YYYY/MM/DD HH:MM:SS ... rather than ... > YYYY:MM:DD HH:MM:SS ... which is happening more and more I have noticed, the following PHP notices are thrown ... > PHP Notice: Undefined offset: 1 in /var/www/tourist.org.uk/html/wp-admin/includes/image.php on line 710 > PHP Notice: Undefined offset: 2 in /var/www/tourist.org.uk/html/wp-admin/includes/image.php on line 710 I think there are a lot of assumptions being made in wp_exif_date2ts() and I believe that a preg_match check like ... {{{#!php <?php if (preg_match('/^(?>\d){4}[:|\/](?>\d){2}[:|\/](?>\d){2} (?>\d){2}:(?>\d){2}:(?>\d){2}$/', $str)) { // Process and return exif date } else { return false; } }}} ... should be done instead. This is related to ticket [ticket:48204] " domainsupport 1 49414 wp_read_image_metadata should look for timezone offset Date/Time normal normal Awaiting Review defect (bug) new 2020-02-12T08:00:57Z 2020-02-15T19:56:57Z "Related: #49413 This function should look for where cell phones and cameras store timezone offset data. Storing the time as a timestamp is a mistake as the time in exif data is minus the timezone and in whatever time the device was set to, it would have been better to store as a formatted time as converting to timezone means that everything is off. EXIF supports storing timezone offset in several places, if there we should use it, otherwise assume site timezone. " dshanske 4 48740 Add constant for database date format Date/Time normal normal Awaiting Review enhancement new dev-feedback 2019-11-20T13:08:57Z 2019-11-20T14:18:36Z "A lot of core Date/Time code is dealing with `Y-m-d H:i:s` format, as stored for posts and other objects in database. This is effectively a so-called ""magic"" string, which is not self-explanatory and prone to user error if typed by hand (I messed up `i` with `m` for minutes more than once probably). Since there is no upstream PHP constant for this format, I suggest we introduce one in core and use it in place of magic string: {{{#!php define( 'WP_DATE_MYSQL', 'Y-m-d H:i:s' ); }}} Not absolutely sure about the name, I used `DATE_MYSQL` as class constant before, but `WP_DATE_DATABASE` might be more appropriately generic. To my knowledge there isn't a specific ISO or RFC designation for such format. If there is agreement on the need and the name I'll work on a patch for replacement and switch from strings in core." Rarst 10 29849 Better human_time_diff() Rarst* Date/Time normal normal Awaiting Review enhancement accepted has-patch 2014-10-03T10:54:41Z 2020-09-25T19:40:01Z "Given #9272 #18495 and #27271 I think it's time for a better alternative to `human_time_diff()`. My proposal is an entirely new function which: * Should be simple - no bazillion-dimensional arrays for arguments * Should not lack context in translatable strings - ""from now"", ""ago"" should be part of the resulting strings * Should have consistent strings, no abbreviations such as mins, yrs, hrs, secs * Should assume all timestamps have no offsets" kovshenin 52761 Date Permalinks Date/Time normal normal Awaiting Review enhancement new 2021-03-10T13:43:33Z 2021-03-10T16:23:53Z "This one surprised me that there is no functionality around it I could find in the code. A function to generate a date permalink. Specifically, in use case, let's say, in my post, I want to display the date.. March 10, 2021, and link it to the day archive. Then, on the day archive, I want a prev and next button for the day before and day after for better navigation. There is no simple functionality for this that I see. I can write functions to do this, but it seems to me there should be built in functions to figure out what date archive the current retrieved URL is, to generate the permalinks to a day, month, or year archive based on a WP_Post object/post ID or a DateTime object." dshanske 1 55685 Date setting should have two more options: j.n.Y and d.m.Y Date/Time 5.9.3 normal normal Awaiting Review enhancement new 2022-05-05T14:39:41Z 2022-05-05T18:30:39Z "Everytime I set up a WordPress site, I have to consult the PHP date formatting rules to get the site to show dates in the way that is standard in much of Europe, Post-Soviet countries, and many other places: `j.n.Y`. That is, 31.12.2022 for the last day of this year, or 5.5.2022 for today, with no leading zeroes. This is a shortened way of the official `d.m.Y`, which shows 05.05.2022 for today, with leading zeroes. Most of the time I see all types of organizations and individuals prefer the shorter version without leading zeroes, but this official notation has plenty of users as well. Both would be so helpful for so many users to have as one-click options in the site's General Settings page that I think it'd be great to add them there. **More info** https://en.wikipedia.org/wiki/Date_and_time_notation_in_Europe https://en.wikipedia.org/wiki/Date_format_by_country Searching the latter page for ""d.m"" finds 36 countries where either of these formats is in widespread usage. The combined population of these countries is approx. a billion people (e.g. Russia, Germany, Ukraine, Turkey, Israel, Poland). In addition to these, the list shows approx. 100 countries following the DMY order of date representation, without specifying the separators (dots ""."" or otherwise). The combined population in countries using j.n.Y or d.m.Y representations of dates might be well in excess of 1 billion people." Daedalon 4 28988 Detect Time Zones automatically at installation Date/Time normal normal Awaiting Review enhancement new dev-feedback 2014-07-22T19:19:50Z 2021-05-05T19:04:34Z "Currently, upon installing WordPress, one of the steps I always take is to go to Settings > General > Timezone to manually set my time zone. I've been using Wordpress for eight years, so I know to do it and how to do it, and it's just a minor inconvenience. However, I have seen people new to this platform be confused and/or not know how to change this. Is it technologically possible to use a geolocation service to query the IP address of the computer installing Wordpress and automatically set that service's best guess as to time zone, perhaps during the setup process? I would envision the UI option remaining in settings, in case, for example, a developer in one time zone builds a site for a client in another. But automatic detection would be perfect for the average new user. It would be one more element that just works out of the box for those who aren't particularly tech savvy. I did some searching in Trac to see if I could find a similar ticket and couldn't find any." danielmount 2 48935 Need to Remove strtotime() usage from core Date/Time 6.2 normal normal Awaiting Review enhancement new needs-unit-tests 2019-12-11T12:58:07Z 2023-04-06T10:38:43Z "`strtotime()` is routinely used in core for processing timezone-ambiguous input. Since it is affected by default PHP time zone setting (set by core to UTC on boot) it is also vulnerable to this setting being changed by third party code. Related change of `date()` to `gmdate()` in 5.3 release caused some new issues, because in some places while changing default time zone broke things combination of `strtotime()` and `date()` meant things got broken ''by the same amount'' and outputs were ""correct"" (ignoring the fact they would be implied in absolutely different time zone from intended). Dropping use of `strtotime()` in favor of date parsing with explicit time zone handling (such as `DateTimeImmutable` objects) is logical next step to make core insensitive to PHP time zone context." Rarst 3 48936 Remove mysql2date() usage from core Date/Time normal normal Awaiting Review enhancement new needs-unit-tests 2019-12-11T13:04:27Z 2023-02-24T15:20:34Z "`mysql2date()` was originally meant from processing times as stored by WP in database. Unfortunately its design is very limited because both time zone of input and output is ambiguous. It is interchangeably used for local and UTC times. As implementation detail that meant that it would produce incorrect output for formats including time zones for local time inputs. Time zone would happen be UTC from WP core setting PHP time zone to UTC on load. In 5.3 release this behavior was flipped to produce correct local time output for local time input, as considerably more common. Accordingly now ''UTC'' input produces incorrect output for formats with time zone. While the function is common and familiar, it is hardly irreplaceable and its design is so limited it seems to be unsalvageable. I propose we move towards eliminating its use in core and eventually formally deprecating it." Rarst 36 18146 Add user-level & front end timezone display flexibility according to a fixed time [GMT:0] Date/Time normal normal Future Release feature request assigned 2011-07-17T06:25:21Z 2023-05-30T04:01:59Z "Timezone can currently only be set on the blog level. This makes sure that the blog displays times in the timezone chosen by the blog's owner. It would also make sense to add a timezone setting for registered users, so we can show times in their own timezone, or use that setting as a default for new blogs or other features in a multi-site setting." RanYanivHartstein 49396 Inconsistent Time format Date/Time 5.3.2 normal normal Awaiting Review feature request new 2020-02-10T19:55:39Z 2020-05-29T05:51:59Z "Why is the time format in settings:general given as 12:51 pm (with other options) yet the time for scheduling a post is in military time (e.g. 13:51). And, there's no option for military time in the Time Format in general settings. It would be really great if this were consistent. It's really easy to intend to schedule a post for 4:31 pm, but it posts immediately, because wordpress is set to treat this as 04:31 (i.e. 4:31 am). " daveslc 58774 Sorting Posts after Published Date OR Last Update should be a standard function Date/Time 6.2.2 normal normal Awaiting Review feature request new 2023-07-10T20:19:01Z 2023-07-10T20:19:01Z "I am quite surprised that it is not a standard WP function to let the users of my website choose whether to sort Posts after Published Date OR Last Update Date! I have not even been able to find a plugin that adds this function. " hero2 9 10660 Time zone suggester based on nascent WordPress.org API call rmccue Date/Time 2.8.4 normal normal Future Release feature request assigned dev-feedback 2009-08-20T05:59:42Z 2019-09-02T06:45:02Z "The attached patch uses a new API call to http://api.wordpress.org/core/ip-to-zoneinfo/1.0/ to retrieve a suggested time zone based on client (not server) IP address. A button is added next to the existing dropdown list of time zones providing the option to ""Suggest a time zone"". This calls the API using an AJAX/JSONP request which then auto-selects a time zone for the user from the dropdown. Visual feedback is via a spinner when fetching and then a text response. Additionally the Date and Time settings have been split out to a new settings page. Related ticket: #10324" sambauers 57365 """Attempt Block Recovery"" functionality broken for buttons ""Convert to.."" click" Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2022-12-21T12:16:37Z 2022-12-30T05:56:34Z "When i edit the HTML manually and click away, the ""Attempt Block Recovery"" error appears. == BUG: **Clicking on the ""''Convert to HTML''"" or ""''Convert to Blocks''"" does nothing.** [[Image(https://i.imgur.com/fzLTpaH.png)]] The button ""Attempt Block Recovery"" itself works and reverts the action to the previous state before I edited the html. I also screenshotted the red text from the console: [[Image(https://i.imgur.com/1l0PjIv.png)]]" mikulabc 1 16478 """Get Shortlink"" button disappears if you edit the permalink" Editor 3.0 normal normal Future Release defect (bug) reviewing has-patch 2011-02-07T08:44:02Z 2021-09-22T13:25:54Z "Go to edit a post and change the permalink. The ""Get Shortlink"" button is overwritten by the AJAX response. I think it's a simple case of moving where the shortlink is added, see patch." solarissmoke 59340 """Open in new tab"" checkbox in hyperlink entry doesn't save" Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-09-13T16:37:54Z 2023-09-29T15:48:45Z "When interfacing, the ""Open in new tab"" selection sometimes doesn't work. Rapidly entering the information on a slow internet connection should reproduce the bug. It's probably tied to network information, where the ""Save"" button SHOULD send a delayed network transmission of the update. Instead, it drops the information. This compounds as a worse problem with the new UI information, since it requires several clicks to confirm each hyperlink's present status. The workaround is to wait 2-3 seconds after selecting the checkbox but before selecting ""Save"". This most heavily affects power users and users with slow internet connections." phileossopher 55714 & stored as & for Post Title and Excerpt in Editor Editor normal normal Awaiting Review defect (bug) new 2022-05-12T11:50:36Z 2022-05-20T09:00:58Z "Hi, When an Author/other user(who have Create post permission) creates a post and add a post title as `Hello & Welcome to WordPress` after save the post the post title is stored as `Hello & Welcome to WordPress` in DB. As this is stored like this it is showing same in the editor. This is happening with Excerpt also. **NB: This is not happening with Admin user or if you are using Gutenberg Editor.** Reproduce Steps: 1. Disable your gutenberg editor and enable classic editor. 2. Logged in as an Author. 3. Switch to a non block based theme. (skip if your theme is not block based) 4. Go to Post > Add New 5. Add Post Title, Excerpt as `Hello & Welcome to WordPress` 6. Save Post 7. You will see `Hello & Welcome to WordPress` as title " kapilpaul 1 53029 'separate_items_with_commas' does not display in Block editor meta section Editor 5.7 normal normal Awaiting Review defect (bug) new 2021-04-14T11:24:54Z 2022-01-06T15:53:02Z "I made a custom taxonomy and changed the label for {{{ 'separate_items_with_commas' }}} but the value I entered does not display in the block editor. I checked with the forum and it was discovered that it displays in the old editor but not the new. [https://wordpress.org/support/topic/separate_items_with_commas-not-showing-in-ui/]" imconfused4sure 4 60809 .editor-styles-wrapper styles opacity changed Editor trunk normal normal 6.5.1 defect (bug) new reporter-feedback 2024-03-20T03:57:30Z 2024-03-25T23:27:02Z "In WordPress 6.4.3, the block editor automatically applies this to `.editor-styles-wrapper`: {{{ .editor-styles-wrapper.mce-content-body, .editor-styles-wrapper.editor-styles-wrapper { opacity: 1; } }}} While testing WordPress 6.5, this no longer occurs. Our theme has `opacity: 0` applied to the body, and we use jQuery to change it to `opacity: 1` when the DOM is loaded. This means that in 6.5, our block editor has 0 opacity. The issue for us is that this also applies to the block editor and as a result we see a grey box instead of the blocks of content. In testing with WordPress Alpha 6.6 or with the latest Gutenberg activated this doesn't appear to be the case, is there a reason this was removed from the 6.5 core?" killerbeez 53723 503 Errors in Posts with Complex Gutenberg Content Editor normal normal Awaiting Review defect (bug) new 2021-07-21T17:45:50Z 2021-07-26T15:11:49Z "Trying to track down the source of an error I'm seeing across the sites/servers I host that appeared after the 5.8 upgrade. Symptoms so far are either: - A 503 Service Unavailable error - A Blank page. Server cutting off output at random point on each site, often in the middle of tag names or attributes (where there's no PHP, static content). This is happening on specific pages/posts. It is happening when viewing the page/post on the front end AND if you try to edit the post/page in the editor via the WP Admin. In both error cases, there are no PHP errors displayed, outside of the servers that were displaying the 503 error. In narrowing down the error, I tried removing filters from `the_content` on a hunch and found that if I removed the filter below, the pages started working without error: {{{ remove_filter( 'the_content', 'do_blocks', 9 ); }}} Once there, I tried setting `wp_posts.post_content` manually and narrowed the issue down to specific sets of blocks: Nested blocks with an HTML block that contains SVGs that have large-ish paths. Here's a gist with 3 different `post_content` HTML. https://gist.github.com/aut0poietic/9df32c4383bd8934db59671b77a673ee The example `post_content-broken.html` triggers the error consistently on all of my sites across multiple servers. The other examples are the same block content, with minor changes that DO NOT trigger the error. Our Ops folks could find almost nothing in the logs, spare this FastCGI error: {{{ [Tue Jul 20 15:36:00.465094 2021] [proxy_fcgi:error] [pid 3207915:tid 140096612689664] [client 172.31.1.17:58998] AH01067: Failed to read FastCGI header }}} Digging around, it seems like `WP_Block_Parser` may be having issues with the content. For giggles, I tried adding this code to a fresh site on a completely unrelated server (Flywheel Local) and couldn't trigger the issue. So there's obviously something on these servers that are contributing to the issue, I just can't narrow down what that could be. The server info from Site Health is pretty standard: {{{ server_architecture: Linux 4.18.0-240.22.1.el8_3.x86_64 x86_64 httpd_software: Apache php_version: 7.2.24 64bit php_sapi: fpm-fcgi max_input_variables: 4000 time_limit: 600 memory_limit: 256M max_input_time: 300 }}} I can post the full site health if needed. It goes without saying that I used the standard troubleshooting practices to test, including: - Disable all plugins - Set the theme to twentytwenty - Reset Permalinks Not sure where to go with this next. Help? Examples demonstrating the content from the Gist in action: https://help.okfosters.org/testing-broken/ https://help.okfosters.org/testing-working-remove-group/ https://help.okfosters.org/testing-working-remove-line-15/ If you need any more information, please let me know. " aut0poietic 1 47187 <!--more--> tag on same line as content prevents any edits to that line SergeyBiryukov* Editor 5.2 normal normal Awaiting Review defect (bug) accepted has-patch 2019-05-08T17:42:54Z 2020-11-23T02:56:44Z "Hi, We have noticed a bug in WordPress that prevents any edits to the line with a <!--more--> tag if the tag is on the same line at the end, like so: {{{ Test. <!--more--> Test2 }}} If you enter this into Text mode, then switch to Visual mode and move the cursor right after ""Test."" you won't be able to insert any characters. I tested this on 5.1 and 5.2." archon810 52565 A Scrollbar Appear in a right panel when editing a page or post Editor normal normal Future Release defect (bug) new 2021-02-18T07:41:31Z 2022-05-11T08:21:13Z "With WordPress 5.7 Beta 3, there is a scrollbar in right side panel when we add or edit any page or post. The scrollbar appear only on Mozilla Browser. In Chrome Browser there is no scrollbar. My Mozilla Browser version is 85.0.2" Pratik Jain 40675 Accented letter at end of line displays wrong Editor 4.7.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-05-05T09:48:17Z 2020-11-24T06:25:54Z "In WordPress (last version) if a line of text '''ends with an accented letter''' (ie ""Università""), the accented letter is displayed as a ""?"" (unknown character). If replaced with à it displays correctly. It happens on all wordpress sites I have (different plugins, different themes)." niente0 2 44835 Add a hidden input for 'original_post_status' to the inline-edit rows so it's available on the $_POST in save_post SergeyBiryukov Editor normal normal Future Release defect (bug) reviewing has-patch 2018-08-23T20:14:05Z 2019-01-21T22:49:01Z "Hello, Can we add a hidden input for 'original_post_status' into the '.inline-edit-save' div found in the inline-edit rows so that it's available on the $_POST object form save_post as it is when you save a post from the post edit screen. Background: I am writing a plugin for a client to introduce Draft Revisions on published posts. I have a cleanup function tied to save_post which purges the Draft Revisions if the post being saved has a status of 'publish' or was previously 'publish'. From normal post submission the original_post_status is available on the $_POST as it's a hidden input on the post editor. From inline-edits this fails as there's no hidden input for original_post_status. I searched for some time to come up with a solution and settled on a jquery trigger which injected the missing input when the inline-edit row opens. With it present the existing ajax/etc fires properly and populated the missing `$_POST['original_post_status']` that I required. Proposition: Add the hidden input for original_post_status onto the inline edit rows to make that information available to save_post. Thank you " garrett-eclipse 2 47676 Add support for If-Unmodified-Since header to make a conditional request when updating posts via REST API (for offline and collaborative editing) Editor 4.7 normal normal Future Release defect (bug) new has-patch 2019-07-11T00:52:43Z 2019-07-18T18:44:50Z "In order to guard against accidentally overwriting someone else's changes when updating a post via the REST API, there should be support added for [https://tools.ietf.org/html/rfc7232 Conditional Requests]. If a post update request includes an [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Unmodified-Since If-Modified-Since] header and the supplied date is ''before'' the post's `post_modified_gmt` then the request should fail with a [https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/412 412 Precondition Failed] response, with no change to the post being made. It seems generally useful to include this `If-Unmodified-Since` header when making requests to update posts in the editor as additional protection on top of post locking. Additionally, this header will be important when adding support for [https://github.com/WordPress/gutenberg/issues/6322 offline editing], in particular when a [https://developers.google.com/web/fundamentals/primers/service-workers/ service worker] (see [https://github.com/xwp/pwa-wp PWA feature plugin]) is sending queued REST API requests which were made while the user was offline (via [https://developers.google.com/web/updates/2015/12/background-sync background sync]). Since it could be several hours or days between when a post was edited and the user goes back online, there needs to be protection against overwriting the post on the server if it has been modified in the mean time. When the service worker uses background sync to re-send the request and it fails with a 412 Precondition Failed response, this would then be a signal for the service worker to re-submit the changes as an autosave revision which could then be shown to the user via some conflict resolution UI the next time they access the editor. As such, this is also important for the '''collaborative editing''' in a future phase. See also comments at https://github.com/WordPress/gutenberg/issues/6322#issuecomment-410578818" westonruter 1 57219 Additional CSS not visible in editor on List block Editor 6.1 normal normal Awaiting Review defect (bug) new dev-feedback 2022-11-28T11:21:52Z 2022-12-23T05:58:13Z "List block doesn't have Additional CSS classes loaded in the Gutenberg editor. For test, I opened a post that has Additional classes on List, they are not visible in the editor. Then I just saved the post without making any change.The result: Before: {{{ <!-- wp:list {""className"":""warnings-red spaced-half""} --> <ul class=""warnings-red spaced-half""> }}} {{{ After: <!-- wp:list --> <ul><!-- wp:list-item --> }}} This means that after every old post update, we have to add back additional classes. " ivojerkovic 43267 "Admin editor ""Insert link"" modal on mobile seems to have incorrect styling" Editor 4.8.3 normal normal Awaiting Review defect (bug) new has-patch 2018-02-09T06:32:50Z 2018-02-14T03:58:54Z "The modal box that pops up when you hit the link button of the editor in text mode is positioned strangely, in a way that on some devices you can't even hit the Add Link button, making it impossible to add a link. I looked at the css and noticed that the modal is in a fixed position in the center of the screen when the screen is big enough (the modal is 500px by 500px), and when the screen is smaller the modal is responsive. The issue seems to be that while the class #wp-link-wrap has a margin-top of -250px to center the modal in the middle, there is a media query ( max-width: 782px ) that specifies a margin-top of -140px. There is a separate media query (max-width: 520px) that's apparently trying to make the modal responsive but because the margin-top: -140px is applied, the modal box is way lower than it should be on mobile. I noticed there is a media query for the height also but that's targeting max-width 520px as well, so any mobile device that has a screen height larger than 520px would have the modal positioned awkwardly. I added a custom css in my admin screen that forces a margin-top of -250px as a quick fix, but I was wondering if this is a styling bug that's going to get fixed. I tested on several version of WordPress that I had access to, and I reproduced this in the latest, as well as versions 4.9.2, and 4.8.3. I checked an older site with version 3.9.2 and on this version the modal has a height of 280px that expands to 500px when I click on ""Or link to existing content"". I'm guessing the -140px margin was a declaration that was written for that version of the modal box that didn't get deleted when the modal box became 500px on default. Sorry if this is duplicate, I tried searching for a ticket that was similar but could not find anything." dannymasao 1 54907 After upgrading to 5.9 I get blank screens when trying to edit or add posts Editor 5.9 normal normal Awaiting Review defect (bug) new 2022-01-25T23:09:34Z 2022-02-07T18:00:16Z "I upgraded eturbonews.com to 5.9 and now I can no longer add or edit posts. It gives a white blank screen. I tried various browsers. I changed the theme. I disabled plug ins Nothing helps." eTurboNews 1 57289 Allow child themes to use template parts from parent themes in Full Screen Editor Editor 6.1.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-12-07T05:34:05Z 2022-12-13T16:50:08Z "Creating template parts in a theme for the Full Site Editor does not allow template parts from a parent theme to be used by a child theme. These will show when editing a template, and allow you to insert/update/delete them when editing templates, but an error message shows on the public-facing page - ""Template part has been deleted or is unavailable: *template-name*"". All that is needed is an additional check if a child theme is active and if so check against the parent theme as well as the child theme." catacaustic 1 44310 Apostrophe and/or Hyphen in Titles Rendered as ’ and – When Added as Link in Editor Editor 4.9.6 normal normal Awaiting Review defect (bug) reopened 2018-06-05T19:08:28Z 2023-10-23T20:54:27Z "I searched but did not see this issue reported previously. When an apostrophe and/or a hyphen is present in a blog post title or page title and those posts are added as links using the Insert Link option in the WordPress Editor, the apostrophe and hyphen are rendered as the following: - An apostrophe in a title is rendered as ’ in the Link Text (see attached images) - A hyphen (which is surrounded by spaces) in a title is rendered as – in the Link text (see attached images) I have tested on a vanilla WordPress 4.9.6 install with no other plugins active both on live installs on two different servers and a local development server and can reproduce this consistently. " midihead 2 52415 Apostrophe transformed in HTML entity in the page parent selector Editor 5.6 normal normal Awaiting Review defect (bug) new has-patch 2021-02-01T15:10:05Z 2021-02-14T14:02:24Z "Wordpress 5.6 If you have a page with apostrophe in the title, when you want to add this page as a parent page, the apostrophe is not interpreted correctly. Instead of having ""Aujourd'hui' we have ""Ajourd’hui"" I'm not sure if it's gutenberg related..." jihaisse 1 41511 Attachment page URL not created correctly for image uploaded directly to library before being added to post Editor 4.8 normal normal Awaiting Review defect (bug) new 2017-08-01T10:11:55Z 2018-03-22T20:36:13Z "=== To replicate: === 1. Visit Media ->Add New and upload a media file 2. Visit Posts ->Add New 3. Click Add Media 3. Select the media file previously uploaded and set Link To setting to Attachment Page 4. Publish the post 5. View post and click on image === What I expected: === To be taken to the attachment page for the image === What happened instead: === I got a Page not found error. Additionally the URL is formed as `http://SITE_URL/FILE_SLUG/` which is not the correct format for media attachment pages. I went back to the editor, clicked the image and clicked the edit icon. The Link To setting now shows that I have a Custom URL set instead of Attachment Page. Updating the setting to attachment page again changes the URL to `http://SITE_URL/YEAR/MONTH/POST_SLUG/FILE_SLUG/` If I now update the post, I can click the image to view the attachment page. === Context: === Reported via the [http://en.forums.wordpress.com/topic/problems-with-images-and-attachment-page-custom-url-settings WordPress.com support forums], but I've confirmed it on a non-WordPress.com site as well." kokkieh 58113 Author and Date Blocks do no line up. Editor 6.2 normal normal Awaiting Review defect (bug) new 2023-04-10T22:08:53Z 2023-04-11T07:15:02Z "The Post Author Block and the Post Date Block do not line up. The Author Block has a margin below and the date block does not. I inserted both into a row block. I made a hack correction by adding custom bottom-margin to the Date Block. These should be designed to display on the same line without custom adjustments." cwebba1 1 49393 Author user role, Gutenberg add picture from someone else, rest_forbidden_context crash, image size crash Editor 5.3.2 normal normal Awaiting Review defect (bug) new 2020-02-10T06:07:06Z 2020-10-25T04:43:08Z "Login as a user with role Author (important, user editor works normaly). Create post, add **existing picture from the gallery** to your article. In the console you'll get an error : [[Image(https://i.ibb.co/Xpkh5zs/bug-wordpress.png)]] /wp-json/wp/v2/media/11133?context=edit&_locale=user {code: ""rest_forbidden_context"", and you can't change the image size. - User roles Editor and Admin are not affected. - Uploaded picture by the Author are not affected. " debricon 1 45404 Autosave fails for custom post type item that belongs to a non-publicly_queryable post type Editor 5.0 normal normal Future Release defect (bug) new 2018-11-23T13:34:35Z 2018-12-11T15:30:21Z "To reproduce this create a CPT: {{{#!php <?php function custom_post_type() { $labels = array( 'name' => _x( 'Post Types', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Post Types', 'text_domain' ), 'name_admin_bar' => __( 'Post Type', 'text_domain' ), 'archives' => __( 'Item Archives', 'text_domain' ), 'attributes' => __( 'Item Attributes', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'add_new' => __( 'Add New', 'text_domain' ), 'new_item' => __( 'New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'view_items' => __( 'View Items', 'text_domain' ), 'search_items' => __( 'Search Item', 'text_domain' ), 'not_found' => __( 'Not found', 'text_domain' ), 'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ), 'featured_image' => __( 'Featured Image', 'text_domain' ), 'set_featured_image' => __( 'Set featured image', 'text_domain' ), 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), 'use_featured_image' => __( 'Use as featured image', 'text_domain' ), 'insert_into_item' => __( 'Insert into item', 'text_domain' ), 'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), 'filter_items_list' => __( 'Filter items list', 'text_domain' ), ); $args = array( 'label' => __( 'Post Type', 'text_domain' ), 'description' => __( 'Post Type Description', 'text_domain' ), 'labels' => $labels, 'supports' => array( 'title', 'editor' ), 'taxonomies' => array( 'category', 'post_tag' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => false, 'capability_type' => 'page', 'show_in_rest' => true, ); register_post_type( 'post_type', $args ); } add_action( 'init', 'custom_post_type', 0 ); }}} Then create an item and publish. After the item is saved, edit the title and wait until the autosave is triggered. The autosave fails without any JS error. Also if you make the CPT set ""public"" to false but ""publicly_queryable"" to true and create and publish an item after I refresh the editor I get the following JS error: {{{ TypeError: Cannot read property 'prefix' of null at PostLink (edit-post.js?ver=3.1.2:4769) at ph (react-dom.min.js?ver=16.6.3:97) at eg (react-dom.min.js?ver=16.6.3:125) at fg (react-dom.min.js?ver=16.6.3:126) at wc (react-dom.min.js?ver=16.6.3:138) at fa (react-dom.min.js?ver=16.6.3:137) at gg (react-dom.min.js?ver=16.6.3:135) at Ca (react-dom.min.js?ver=16.6.3:133) at Object.enqueueSetState (react-dom.min.js?ver=16.6.3:191) at ComponentWithSelect.q.setState (react.min.js?ver=16.6.3:20) }}} " kmgalanakis 58989 Avatar block alignment is not working well in some themes Editor normal normal Awaiting Review defect (bug) new close 2023-08-07T07:02:48Z 2024-02-07T08:55:35Z "Avatar block alignment is not working in some themes like Twenty Twenty-one, Twenty nineteen, Twenty Seventeen and Twenty Sixteen but it is working fine with Twenty Twenty-two & Twenty Twenty-Three. **The Main issue is that centre align is not reflected in editor side** Here is a Video of the issue along with how it works : https://drive.google.com/file/d/1YIng2VrJY9Zt1dgqD-Pg7_Lps4LaDoIW/view?usp=sharing" pitamdey 49382 Big span gap appears before feature SVG img in Gutenberg editor Editor 5.3.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-02-07T11:35:59Z 2020-12-07T05:33:12Z "After I inser SVG featured image to the post, appeared span tag (<span style=""padding-bottom: 1602.4%;""></span>) before img tag. It makes a huge gap before image. See the screenshot here: https://imgur.com/a/08MAGvG " MorgunovVit 1 56080 Block Editor Search Function Choke Editor 6.0 normal normal Awaiting Review defect (bug) new 2022-06-27T20:10:32Z 2022-06-27T20:10:32Z "The WP block editor has a problem in the search function. When in editor, using a search function in the add link box, WP sends out so many requests that the server cpu gets backed up, chokes the webpage, makes it inaccessible in a 508 or 503 resource limit stop. This is new with wp 6.0. Using he classic editor this does not happen. Searches in classic are rather prompt, as is adding tags in classic, rather quick. Switched to classic editor to avoid constant sever/cpu chokes while composing. WP needs to address this issue as the block editor is unusable on a low end server hosting package. Hosts just want to sell a bigger package, which is not necessary for a simple blog. " willburpig 54430 Block Editor does not save text where the ellipsis are in quotation marks . Editor normal normal Awaiting Review defect (bug) new 2021-11-12T16:43:52Z 2021-11-12T16:45:48Z "Block Editor does not save text where the ellipsis are in quotation marks. Example: ""Liefde Is..."" will show the following error - ""The response is not a valid JSON response."" Note: ""Liefde Is... "" with a space between the ellipsis and the quotes works well. " 7strel 3 59283 "Block Editor: Edit permalink slug for posts is only possible after clicking ""save as draft""" Editor normal normal 6.6 defect (bug) new changes-requested 2023-09-05T08:21:49Z 2024-02-05T21:01:58Z "Originally posted in Gutenberg https://github.com/WordPress/gutenberg/issues/50469 When creating a new post using the block editor, it's impossible to set the permalink of the post before you actually save the first draft of the post. It's different for the page editor where you can do so before. @andrewserong tracked this to the `permalink_template` property not being set on the initial request to fetch the auto-draft post." youknowriad 1 53785 Block Styles dropdown should use 'Default' instead of 'Not set' Editor normal normal Awaiting Review defect (bug) new 2021-07-26T14:41:11Z 2022-01-11T09:39:16Z "Issue: After registering a new Block Style to the WordPress Core Paragraph block I noticed the text used in the dropdown states ''""Not set""'' instead of ''""Default""'', which is used as a caption in the image. This is confusing to (new) users. Proposed solution: Change the text in the dropdown into ''default''. This matches the image caption and clearly indicates that this style is the default style. " BjornW 53391 Block editor Code and Preformatted failing to accept text Editor 5.7.2 normal normal Awaiting Review defect (bug) new 2021-06-13T12:52:01Z 2021-06-13T12:52:01Z "This file https://www.logikalsolutions.com/wordpress/wp-content/uploads/2021/06/u18-sources-list.txt real name sources.list not that it matters. When I pull this into any text editor, be it on Windows or Ubuntu and select-all, copy, then paste it into either a Code bock or a Preformatted block it does this: [[Image(https://www.logikalsolutions.com/wordpress/wp-content/uploads/2021/06/broken-preformatted-block.png)]] The end of the file actually looks like this in every text editor {{{ # backports: # # Software from a newer release of the distribution, or even from the # development branch of the distribution, but built against this release. # It may provide newer features, but should be considered untested. # # Note: Software in this repository WILL NOT receive any review or # updates from the Ubuntu security team. # #deb http://old-releases.ubuntu.com/ubuntu hardy-backports main restricted #deb-src http://old-releases.ubuntu.com/ubuntu hardy-backports main restricted #deb http://old-releases.ubuntu.com/ubuntu hardy-backports universe #deb-src http://old-releases.ubuntu.com/ubuntu hardy-backports universe #deb http://old-releases.ubuntu.com/ubuntu hardy-backports multiverse #deb-src http://old-releases.ubuntu.com/ubuntu hardy-backports multiverse }}} There is also an annoying thing happening when I scrape Linux shell scripts into Code blocks now. The first line is against the left margin and every other line is indented one space. Does not seem to matter what editor I scrape from. At first I thought it was a Scintilla based editor issue, then it happened with Notepad on Windows and Leafpad on older Ubuntu distros. Leafpad is as basic as basic editors get. It supports no formatting. I do not know if this cropped up earlier. I did not notice it until 5.7.2 but I might not have been paying attention. I have a geek blog and post a lot of code so this is critical. I have even switched themes in case this happened only in one theme. " seasoned_geek 1 59896 Block editor default styles not loaded when stylesheet with the same name as the theme is registered Editor 6.4 normal normal Future Release defect (bug) new reporter-feedback 2023-11-13T16:59:09Z 2023-12-18T21:42:36Z "I've got a custom theme that lives in a directory called ""coderpad"". Inside the theme I load a custom stylesheet with the handle ""coderpad"" which is registered via the ""init"" hook and enqueued via the ""wp_enqueue_scripts"" hook. I don't load any sort of custom editor styles as part of this theme. After upgrading to WordPress 6.4 the block editor fails to load any default styles. The content in the editor looks like a big wall of text without any formatting. My simple workaround is to only register the stylesheet when it's not an admin request: {{{ if ( ! is_admin() ) { wp_register_style( 'coderpad', get_template_directory_uri() . '/assets/css/coderpad.min.css', array(), null, 'all' ); } }}} This issue also appears to not happen if I rename the stylesheet handle to something like ""coderpad-foo"" Here are two screenshots of what is happening: https://imgur.com/a/kgKkrmw I'm not sure if there is logic somewhere that detects if a stylesheet with the same handle as the theme directory is registered then don't load default styles but thought I would post about this unexpected behavior. " kingkool68 56082 Block editor does not unset changed/dirty flag for nested types Editor normal normal Awaiting Review defect (bug) new 2022-06-27T21:20:07Z 2022-06-27T21:20:07Z "Edit a template and change a template parts or Reusable blocks. Go to save and there is an expected prompt to save the component. Don't save. Ctrl-Z to undo the change. The main template being edited still shows the Save button enabled, and on Save the component is still showing as changed. Uncheck to Not save the component. Edit another template. The Save button remains enabled because the component is still ""floating around"" with the unsaved flag set. The only way to clear this seems to be to simply re-save any template that includes the component, for a net effect of no change ... but this will still be recorded as a change, where the site is logging activity, even if just with a new timestamp. The problem: The user doesn't know if they have actually changed a component, and potentially affected a large number of existing published posts. The ""are you sure"" prompt is asking the user if they are sure they want to make such a change when there actually is no change being made. Expected behavior: The UnDo feature, and exiting without saving, should unset the dirty flag on any block or nested block or template where the current version equals the original." Starbuck 49782 Block editor problem after WP upgrde Editor 5.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-04-02T16:39:39Z 2020-11-27T11:42:17Z "stuartahamilton (@stuartahamilton) 4 hours, 55 minutes ago Since the WordPress update I have not been able to edit posts in the block editor as haf way down each page, the blocks are blocked (!) by a series of drop down menus as in the image link. Two of the these are related to plugins – Yoast and Ultimate Social Media. If I disable these the dropdowns disappear. One is, rather unfortunately, related to the theme I use, which is a real problem for such a large site. But one of the dropdowns is actually for the post settings themselves. Which I can do nothing about as that’s an actual WP thing. Anyone else having this problem? Fixes, advice, anything would be good. I’ve temporarily went back to the classic editor but would rather have a proper fix. Many thanks. The page I need help with: https://i.postimg.cc/wjYXt2LL/wperror.jpg" stuartahamilton 2 52855 Block editor sometimes missing some theme_support sections of sidebar Editor 5.7 normal normal Awaiting Review defect (bug) new 2021-03-18T20:17:10Z 2022-01-29T02:11:44Z "The block editor is sometimes missing sections in the sidebar related to what the theme supports, like page templates and featured image. It appears that post formats are unaffected, and also wide-blocks (which isn't in the sidebar, but is theme_support related). According to replies to this forum topic https://wordpress.org/support/topic/theme-support-for-post-thumbnails-stopped-working-after-upgrading-to-wp-5-7/ it is sometimes a JS error in unrelated code, but sometimes the existence of the theme's index.php file. A few users indicate it must be something else. Steps to reproduce the effect of index.php: 1. Using WP 5.6.x, activate a theme that supports featured images, such as Twenty Twenty. 2. Edit a post or page. 3. Note that the featured image (or page template) section is in the edit sidebar. 4. Rename the theme's index.php to testindex.php. 5. Repeat steps 2 & 3. 6. Update WP to 5.7. 7. Edit a post or page. 8. See that the featured image (or page template) section is missing. These steps repeated with the Classic editor show no missing sections." joyously 55369 Block styles preview are unstyled since 5.9 if styles are in a global editor styles css Editor 5.9.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-03-11T05:45:09Z 2022-03-11T18:49:16Z "Hello, Block stlyes registered with {{{ wp.blocks.registerBlockStyle( 'acf/featured-news', { name: 'featured-news-black', label: 'Featured news black', isDefault: false, } ); }}} Editor stylesheet enqueued with: {{{ function legit_block_editor_styles() { wp_enqueue_style( 'legit-editor-styles', get_theme_file_uri( '/style-editor.css' ), false, '11.0', 'all' ); } add_action( 'enqueue_block_editor_assets', 'legit_block_editor_styles' ); }}} Since WordPress 5.9 the iframe that shows the block styles show them unstyled as doesn't include the style-editor.css Thank you " JohnDBB 59321 "Block styles set via the ""css"" property in theme.json are ignored on the frontend in classic/hybrid themes" Editor 6.3.1 normal normal Awaiting Review defect (bug) new has-patch 2023-09-11T08:33:26Z 2023-09-14T06:42:37Z "### Description Block styles set via the ""css"" property in theme.json are ignored on the frontend in classic/hybrid themes. An example: {{{ ""blocks"": { ""core/latest-posts"": { ""color"": { ""background"": ""blue"" }, ""css"": ""& li a {color: pink}"" } } }}} The background color set via ""color"" can be seen in both the block editor and the frontend. The link color set via ""css"" can only be seen in the block editor. Block themes (I tested [Twenty Twenty-Three](https://es.wordpress.org/themes/twentytwentythree/)) are not affected by this issue, just classic ones. ### Step-by-step reproduction instructions 1. Install and activate a classic theme that ships a theme.json file, such as [Astra ](https://wordpress.org/themes/astra/). 2. Edit the theme's theme.json file and add the following in the `styles` section: {{{ ""blocks"": { ""core/latest-posts"": { ""color"": { ""background"": ""blue"" }, ""css"": ""& li a {color: pink}"" } } }}} 3. Edit a page and add a Latest Posts block and verify that the background color of the block is blue and the links are pink. 4. Save changes. 5. Head to the frontend version of the page and see that only the background color is applied. The links are not pink. ### Screenshots, screen recording, code snippet **Block editor:** [[Image(https://user-images.githubusercontent.com/2060659/253602606-e56391e7-e320-49f8-b939-7ac60f903a4b.jpg)]] **Frontend:** [[Image(https://user-images.githubusercontent.com/2060659/253602584-875cf30c-c96b-428e-93c6-71b1ad58cc2e.jpg)]] ### Environment info I'm using WP 6.3.1 NO Gutenberg plugin installed. PHP 8.0.22 MySQL 8.0.16 ### Please confirm that you have searched existing issues in the repo. Yes ### Please confirm that you have tested with all plugins deactivated except Gutenberg. Yes" leemon 59622 Block supports: Avoid warning for non string class attributes Editor 6.4 normal normal Future Release defect (bug) new has-patch 2023-10-13T20:13:02Z 2024-02-12T09:11:02Z "Block Supports: Avoid throwing warning when checking for class attribute as string. When encountering HTML tags with boolean or missing tags, the `get_attribute()` method in the HTML API returns `true` and `null`, respectively. If these returned values are sent directly into string comparison functions then as of PHP 8.0 they will throw `E_DEPRECATED` errors. In this patch, block supports is enhanced to check that the `class` value is a string before it performs string operations on it. --- There is a small likelihood of any real damage in production here, as these are only deprecation notices and the logic in these cases isn't affected by the change. That is, the intention of the code is maintained even when the attribute values aren't strings. For background support there's a tiny but benign defect when the `style` attribute is boolean. It will erroneously inject a `;` at the beginning of the wrapper's new `style` value. As this doesn't impact the rendering of the wrapper, it's not a true defect. Further review belongs to block rendering code, but this will occur in the Gutenberg repo since that PHP comes back into Core through the generated packages." dmsnell 1 55035 Block themes: Static homepage settings supersedes page template choice Editor normal normal Awaiting Review defect (bug) new 2022-02-02T04:34:07Z 2022-02-02T08:18:21Z "After assigning a page for blog posts using ""Settings -> Reading -> Posts Page"" and then attempting to edit the page (to use an alternate template), the theme ignores user choice of page template and instead assigns templates/home.html. This will likely prove quite frustrating to new users and those reluctant to switch to gutenberg/block theme editing. Thanks" madrooter 1 52794 Blocks not entering in correct place Editor 5.7 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-03-12T15:46:40Z 2021-03-31T21:55:57Z "I updated to WordPress 5.7, and ever since it's had this new glitch. Especially when I open a post and go to add a block for the first time in that session, it will insert the block at the very end of the post, instead of in the middle where I wanted it. Usually after that first glitch it works fine, but every once in a while it will do it again though I haven't determine the pattern for that one. Also, if I ever click out to the side of a block, perhaps to get a clearer image of what I just did, it will scroll me all the way down to the bottom of the post. This happens every time I do that. Since I use a lot of images, this is a huge annoyance. Thanks!" amyolsen12 1 48989 Blocks properly not showing on mobile device Editor 5.3 normal normal Awaiting Review defect (bug) new 2019-12-15T12:43:55Z 2019-12-16T09:02:25Z Gutenberg Blocks properly not showing on mobile passoniate 1 50146 Blocks: `serialize_block()` doesn't support `WP_Block_Parser_Block` Editor 5.3.1 normal normal Awaiting Review defect (bug) new has-patch 2020-05-11T18:07:28Z 2021-03-20T07:40:58Z "`serialize_block()` is documented as accepting a `WP_Block_Parser_Block`, but it treats the passed value as an array. Because `WP_Block_Parser_Block` doesn't implement `ArrayAccess`, passing one to `serialize_block()` generates a fatal error. The attached patch would allow instances of `WP_Block_Parser_Block` to be used with `serialize_block()` by casting them to arrays. It would make the same change to `filter_block_kses()`, which exhibits the same mismatch in behavior. If adding support for `WP_Block_Parser_Block` to these functions is seen as too risky from a perspective of maintaining compatibility with future iterations on block parsing, then simply changing the DocBlocks on these two functions might instead be the way to go." dlh 1 56859 Blocks: register_block_script_handle() does not account for symlinks Editor 6.0.3 normal normal Awaiting Review defect (bug) new 2022-10-20T00:05:06Z 2022-10-20T00:24:27Z "I love the fix added by #55513 and #54647 to detect if a block is being registered from a theme and to alter the enqueued URI appropriately. However, the way that a theme block is detected does not take symlinks into account. I have all of my custom themes/plugins in one location in my file system, and I symlink the folders I'm working on into a local WP install. I imagine there are other scenarios where a symlink might be used for theme folders as well. The output of `wp_normalize_path( get_theme_file_path() )` is the location of my local WP install: /Users/coryhughart/Dev/web/local/website/app/public/wp-content/themes/website-theme The output of `wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $script_path ) )` is the original path to the theme outside of the WP install: /Users/coryhughart/Dev/Blackbird/Client/website.com/website-theme/dist/blocks/hero/script.js Obviously symlink resolution is part of what `realpath` does. Is there a similar function/solution that could expand the path without resolving symlinks? Or is symlinking outside the scope of what is expected in a WordPress environment? " cr0ybot 2 50427 Bolding not working well Editor normal normal Awaiting Review defect (bug) new 2020-06-19T12:27:54Z 2020-06-19T12:29:59Z Every time I try to bold a title in my blog post, I need to highlight and press the bold key a couple of times. I highlight the title once and only a part of the line becomes bold. I have to highlight the title again before it all becomes bold. So this doubles the time I must do that function. MikeLev 2 57126 Broken CSS for Buttons (previously created by Gutenberg block editor) after WP 6.1 Update Editor 6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-11-16T11:55:57Z 2022-11-16T22:39:11Z "Have multiple sites using popular free themes (Blocksy and OceanWP) and the button CSS (layout, colors, etc) is all broken after recent update to WP version 6.1 According to Blocksy theme devs, they say it's due to the WP core update that could have been handled differently to avoid this issue. Only way to fix is to manually open every post or page with a button and then re-save the page. This is very time-intensive process for large sites with 100's or 1000's of posts and pages and also trying to remember or figure out which posts have buttons on them in the first place. Seems that WP core dev team should release a fix/patch for this issue. See for further clarification: https://wordpress.org/support/topic/anyone-seeing-broken-buttons-css-afer-last-updates/ https://wordpress.org/support/topic/mobile-view-for-buttons-is-wrong-css-no-margin-or-alignment/ Thank you " wordmax 2 40559 Bug when inserting images with TinyMCE for latest Chrome Editor 4.7.4 normal normal Future Release defect (bug) new 2017-04-25T02:03:44Z 2017-05-19T14:36:48Z "Environment: Windows 8.1 64bit Google Chrome ver 58.0.3029.81(latest) Google Chrome Canary ver 60.0.3079.0(Official Build)canary (64bit) Issue steps: Preparation test.jpg This is a test sentence.This is a test sentence.This is a test sentence. This is a test sentence.This is a test sentence.This is a test sentence. This is a test sentence.This is a test sentence.This is a test sentence. test.jpg is the name of the file to be inserted. 1)Select test.jpg with the mouse 2)Cut test.jpg with CTRL + X 3)Insert image from Add Media button After image insertion: <img src=""test.jpg"" />a test sentence.This is a test sentence.This is a test sentence. This is a test sentence.This is a test sentence.This is a test sentence. This is a test sentence.This is a test sentence.This is a test sentence. The img tag interrupts the sentence behind as described above. Please validate." dreative 53912 Bug when using Block-styles loading enhancements in WP 5.8 Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2021-08-11T05:16:43Z 2024-01-30T05:15:22Z "I'm not sure if this is a a bug, but when enabling this feature on Windows some of the blocks assets are not loaded on the frontend. When checking the {{{register_block_style_handle}}} function, some blocks are ignored as the {{{$is_core_block}}} variable is false due to slash inconsistencies in the {{{$metadata['file']}}} variable. Style of blocks that are registered from {{{register_core_block_types_from_metadata}}} are loaded, but the blocks that are registered from their respective directory; such as {{{register_block_core_latest_comments}}} are not loaded. Thank you!" wilbertalvis 3 60614 Button block's Outline style does not have border in non-framed editor Editor trunk normal normal 6.5.1 defect (bug) new dev-feedback 2024-02-23T03:44:34Z 2024-03-25T04:18:49Z "Hello, I have reviewed the button block and found that the button ""outline"" does not appear on the editor side. Here, I have attached its screenshots: **Environment info -----------------** Device: Macbook M1 OS: 14.3.1 (23D60) Browser: Google Chrome Version 121.0.6167.184 (Official Build) (arm64) WordPress version: 6.4.3 running, Gutenberg 17.7.0, Theme active: Twenty Twenty-Two, Thanks," viralsampat 1 59913 Buttons (and other blocks using RichText) don't work in editor if styled as flex or grid Editor trunk normal normal Awaiting Review defect (bug) new close 2023-11-15T14:41:38Z 2023-12-18T22:08:55Z "With the 6.4/6.4.1 updates, blocks that use the RichText component won't allow adding new text if the element is styled as a flex or grid item via CSS. To recreate the issue, I'm using a fresh WP install with no plugins. I've tested and the error occurs using both the Twenty Twenty-Four and Twenty Twenty-Two themes and add this CSS: {{{ .wp-block-button__link { display: flex; } }}} Then when I add a core/button block to the editor and click on the placeholder it won't allow typing any text. It appears that the placeholder has been selected even though it has pointer-events: none; set in its inline styles. If I set the element to `display: grid;` then it's easier to see the two elements in the button - the data-rich-text-placeholder span, and the zero-width space . If clicking on the span, typing input doesn't work. If clicking the  area, it works. Both elements are also there on 6.3.2 and clicking on either works with that version of WP. I'm guessing this is an issue with the latest Gutenberg updates?" nred 1 55509 CSS conflict in Custom Fields table Editor 5.9.1 normal normal Awaiting Review defect (bug) new has-patch 2022-03-31T21:33:26Z 2022-04-29T09:49:44Z "When using the [https://wordpress.org/support/article/custom-fields/ Custom Fields] feature, there are two conflicting CSS styles. More specifically the background-color in the following CSS bit: {{{ #postcustomstuff table { margin: 0; width: 100%; border: 1px solid #dcdcde; border-spacing: 0; background-color: #f6f7f7; } }}} with the background-color in the following CSS bit: {{{ .alternate, .striped > tbody > :nth-child(2n+1), ul.striped > :nth-child(2n+1) { background-color: #f6f7f7; } }}} resulting in all rows of the table in div#postcustomstuff to have the same background color (#f6f7f7)" princeofabyss 55827 Can't drag and drop block into empty column in list view Editor 6.0 normal normal Awaiting Review defect (bug) new 2022-05-25T13:35:05Z 2022-06-02T14:33:26Z When editing a page and using the List View to see the blocks, you can't drag and drop a block into an empty column. Only if there is already a block in a column can you drag and drop any other block into it in List View. You can, however, drag and drop a block into an empty column on the page itself. bhammondCVL 1 53744 Cannot set editor font-family via theme.json Editor normal normal Awaiting Review defect (bug) new close 2021-07-22T17:05:17Z 2021-07-23T09:00:56Z "As indicated on https://make.wordpress.org/core/2021/06/25/introducing-theme-json-in-wordpress-5-8/, ""The default font-family styles for the editor are not enqueued."" when theme.json is present in a theme. As far as I can see, there is no method to set the font-family of the editor without enqueuing a custom style sheet, which defeats the point of what I believe the new theme.json is pushing to achieve. Similarly, theme.json can specify the below property: {{{ settings.typography.fontFamilies }}} but it doesn't appear to do anything or be used anywhere in the editor. Is this future functionality, or is the handling of editor/block font-families an oversight in 5.8?" TwentyZeroTwo 1 57006 Cannot set font BOLD for multiple lines of text Editor 6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-11-05T12:20:54Z 2022-11-05T15:35:38Z "This was present before but it's not an option anymore. Selecting multiple rows of text cannot be CTRL+B or set to Bold anymore. You have to set to bold each line individually. " xecutable 1 59087 Can’t Paste Markdown Into WP 6.3 Gutenberg, Old Posts are Wonky Editor 6.4.3 normal normal Awaiting Review defect (bug) new 2023-08-13T01:25:29Z 2024-02-06T21:10:51Z "Not sure if this is a bug, but you can’t paste markdown into WP 6.3 Gutenberg. I mean you can paste it in the editor, but the page will be all screwy and uneditable. Also, all old posts where you previously pasted markdown are similarly messed up, many block errors, uncentered images, can’t edit, etc. I replicated this by creating a new post and just adding one block at a time, everything works fine. I then created a new post and pasted in markdown like I have been doing for years all the way up through WP 6.2.2, and the post was completely messed up and uneditable again. I sure hope they fix tihs! I write all of my posts in Obsidian using markdown and then paste them into the block editor. If I can no longer do this, no way I’ll ever upgrade to 6.3 again … had to roll back to 6.2.2 to fix everything." hmnvtn 56497 Categories (List) block center alignment is not working with dropdown in editor Editor 6.0.1 normal normal Awaiting Review defect (bug) assigned close 2022-09-02T09:46:43Z 2022-09-14T02:11:52Z "Categories block center alignment setting is not reflecting on editor side. 1. Activate the Twenty Eleven Theme 2. Add Categories Block (or ""Categories List"" block if Gutenberg plugin is activated) 3. Select the ""Display as dropdown"" option in the sidebar 4. Change the alignment to center Here is Screen Recording:[https://share.cleanshot.com/CDO3nlFrsNj3r6TpLJH5]" multidots1896 56976 Category filter not functioning for Latest Post Block in Guttenberg Editor 6.1 normal normal Awaiting Review defect (bug) new close 2022-11-03T10:05:06Z 2023-10-31T00:10:39Z "Hi I added the Latest Post Block in Guttenberg and I added a category filter as a number but after refreshing the page the number dissapear and the filtering posts by category is not working Best regards" forallatlantis 60799 Change the Header Tag in Link Modal from <h1> to <h2> for Better Accessibility Editor 6.4.3 normal normal Awaiting Review defect (bug) new 2024-03-18T15:38:57Z 2024-03-26T20:04:49Z "=== Problem: Currently, the WordPress link insertion modal in the text editor uses an <h1> tag for its title (""Insert/edit link""). This can create accessibility issues, as multiple <h1> 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 <h1> tag in the link insertion modal to a <h2> tag, or alternatively to a <span> 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 <h1> tag, followed by <h2>, <h3>, and so on. The current use of an <h1> 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 <h1>. === 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 1 56417 Changes from 'render_block_data' filter not always applied to inner blocks Editor normal normal Future Release defect (bug) new 2022-08-23T08:20:40Z 2024-02-06T09:51:38Z "When changes are made to `$parsed_block['innerContent']` using the 'render_block_data' filter, those changes are only applied to top-level blocks, not to inner blocks. The issue is how we deal with inner blocks in `class WP_Block`'s render method: we don't create a new instance between applying the filter and calling render on the inner block[https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/class-wp-block.php#L241], so changes to `innerContent` aren't actually applied. Ideally we should apply the same logic here as we do in the `render_block` function: [https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/blocks.php#L903]." isabel_brison 1 54040 Changing element text or background color should only affect color Editor 5.8 normal normal Awaiting Review defect (bug) new 2021-08-31T11:40:02Z 2021-09-07T13:33:39Z "Page elements get unintended padding when changing background or font color, violating the [https://en.wikipedia.org/wiki/Principle_of_least_astonishment principle of least astonishment]. In effect, the end-user is expecting that a change to the background color would have only one outcome. Instead, there is a second side-effect where the element gets padding. Padding is added to many elements via CSS selectors that mostly target "".has-background,"" such as the following. - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/heading/style.css#L76-L78 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/heading/style-rtl.css#L76-L78 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/list/style.min.css#L1 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/list/style-rtl.min.css#L1 - https://github.com/WordPress/WordPress/blob/270f2011f8ec7265c3f4ddce39c77ef5b496ed1c/wp-content/themes/twentytwentyone/assets/sass/05-blocks/group/_editor.scss#L18-L23 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/list/style-rtl.css#L72-L74 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/list/style.css#L72-L74 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/paragraph/style-rtl.css#L101-L103 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/paragraph/style.css#L101-L103 - https://github.com/WordPress/WordPress/blob/270f2011f8ec7265c3f4ddce39c77ef5b496ed1c/wp-content/themes/twentytwentyone/assets/sass/05-blocks/rss/_editor.scss#L104-L107 - https://github.com/WordPress/WordPress/blob/270f2011f8ec7265c3f4ddce39c77ef5b496ed1c/wp-content/themes/twentytwentyone/assets/sass/05-blocks/rss/_style.scss#L104-L107 - https://github.com/WordPress/WordPress/blob/8a11188d0f5728bc9bbdf331ff9174d45b1768a6/wp-content/themes/twentytwentyone/assets/sass/03-generic/vertical-margins.scss#L159-L161 - https://github.com/WordPress/WordPress/blob/270f2011f8ec7265c3f4ddce39c77ef5b496ed1c/wp-content/themes/twentytwentyone/assets/sass/05-blocks/paragraph/_editor.scss#L4-L6 - https://github.com/WordPress/WordPress/blob/1a7033e75ff6b5911b2b9d34ceee38e80084b85e/wp-content/themes/twentytwentyone/assets/sass/05-blocks/query-loop/_style.scss#L3-L8 - https://github.com/WordPress/WordPress/blob/1a7033e75ff6b5911b2b9d34ceee38e80084b85e/wp-content/themes/twentytwentyone/assets/sass/05-blocks/query-loop/_editor.scss#L3-L7 - https://github.com/WordPress/WordPress/blob/270f2011f8ec7265c3f4ddce39c77ef5b496ed1c/wp-content/themes/twentytwentyone/assets/sass/05-blocks/paragraph/_style.scss#L6-L8 - https://github.com/WordPress/WordPress/blob/0a2b52dfeb4e28e4ff3714899a2890a779c3748f/wp-content/themes/twentytwentyone/assets/sass/05-blocks/latest-posts/_style.scss#L112-L115 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/preformatted/style.css#L75-L77 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/preformatted/style-rtl.css#L75-L77 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/group/editor.css#L83-L86 - https://github.com/WordPress/WordPress/blob/8df663cbfafedd6e594c3df8101e6085dfe18035/wp-includes/blocks/group/editor-rtl.css#L83-L86 - https://github.com/WordPress/WordPress/blob/c3ea09ebb8034be04f42e5aaf5f523cbead7e2a4/wp-includes/blocks/columns/style.css#L85-L87 - https://github.com/WordPress/WordPress/blob/c3ea09ebb8034be04f42e5aaf5f523cbead7e2a4/wp-includes/blocks/columns/style-rtl.css#L85-L87 - https://github.com/WordPress/WordPress/blob/0638de4c60de0d9cf800ca887177b67ba8ad68f0/wp-content/themes/twentynineteen/style-editor.scss#L868-L880 - https://github.com/WordPress/WordPress/blob/270f2011f8ec7265c3f4ddce39c77ef5b496ed1c/wp-content/themes/twentyseventeen/assets/css/editor-blocks.css#L496-L498" brylie 8 13821 Changing visibility to password-protected without entering a password does not warn user kapeels* Editor normal normal Future Release defect (bug) accepted has-patch 2010-06-10T13:48:48Z 2019-06-05T07:15:00Z "Tested on r15182. If the status of a post is set to Password Protected, and a password is not specified before the user clicks the OK button in visibility and then either publishes, saves, or updates the post, no warning is given to the user that not setting a password forces the post or page to remain Public. In fact, if updating a post, and this is the only change made, the success message (1) for updating the post appears instead, even though no change was made to the post. If the post was previously published as Private, and switched to Password Protected without entering a password, then saved, the post switches to Public on save instead of remaining Private. Either a failure message upon updating or a warning to the user before saving should be displayed to the user to remind them that they didn't properly set a password. To reproduce the last case above: 1. Create a post. Publish it as Private. 2. Edit the post. Change the visibility to Password Protected, but do not enter a password. Click OK. 3. Update the post. 4. The post visibility will be changed to Public." markel 1 40882 Characters omitted when copying and pasting from Word Editor 4.7.5 normal normal Awaiting Review defect (bug) new has-patch 2017-05-29T19:48:44Z 2020-11-24T06:28:05Z "I have been preparing WordPress pages by arranging the information in Microsoft Word 2016, and then copying it from Word and pasting it into WordPress. My pages almost all include citations that I've copied from Google Scholar and pasted into Word. I noticed recently that in the citations, the following characters would be missing: - the (nonbreaking) space that follows the italicized publication name - the volume number that follows after that - the period that follows after that When I first noticed this, I went back through 70+ pages and it looked like these characters had been omitted every time. Note that when this happened again on another page yesterday, I decided to report a bug. I had already deleted the Word source file, so I tried to reproduce the behavior with a small new Word file. I found that I was never able to reproduce this behavior. Today I saw this behavior again on yet another new page. This time I've saved the Word source file, and I've confirmed that this happened again when I copied and pasted again. Please fix this if at all possible. Copying and pasting is such a reliable operation normally in every modern application that it's fairly easy to not realize that in WordPress this operation introduces errors that need to be fixed. Thanks!" janthony636 1 48787 "Classic Editor user interface CSS inconsistencies when toggling ""Enable full-height editor ...""" sabernhardt* Editor normal normal Future Release defect (bug) accepted has-patch 2019-11-25T10:28:30Z 2021-11-15T22:09:14Z "Splitting this out from #47477 after @johnjamesjacoby's feedback. When toggling the ""Enable full-height editor and distraction-free functionality"" setting, it appears the Classic Editor toolbar gets some CSS rules that make it look inconsistent depending on the state of the setting. Part of these inconsistencies are new in WordPress 5.3, while other inconsistencies can be reproduced on WordPress 5.2 thus are pre-existing to the recent CSS changes. Please refer to the attached animated GIFs below for better clarity. - #48101 changed the border color of various ""boxes"" in the admin from `#e5e5e5` to `#ccd0d4`. In the Classic Editor, seems that the new color applies only to the toolbar top border and only when ""Enable full-height ..."" is on. - The other toolbar borders and the bottom padding change when toggling the setting also on WordPress 5.2. Not sure this is intentional or if there's a good reason to have a different styling. I'd tend to think these are probably inconsistencies happened over time that should be fixed. Worth noting the Classic Editor will still be supported for a couple years but it's not meant to get new functionalities or improvements. Only bug fixes will be addressed. Personally, I'd be in favour of fixing these inconsistencies because they don't appear to be terribly complicated and the fix won't likely break anything. I'd also suggest to use the new border color `#ccd0d4` for better contrast." afercia 1 56039 Classic Editor: Current selection is not preserved when switching Visual to Text editor Editor normal normal Awaiting Review defect (bug) new has-patch 2022-06-22T11:58:49Z 2023-04-19T13:25:23Z "Plugin: Classic Editor == Problem In some cases (when formatting HTML attributes is disabled), the current selection when switching Visual to Text editor is not preserved. The selected text gets unselected and the editor does not jump to the previous selection position. This is because the regular expression is not appropriate. **Line 774 in `wp-admin/editor.js`** The regular expression to find the selection position is: {{{#!js var startRegex = new RegExp( '<span[^>]*\\s*class=""mce_SELRES_start""[^>]+>\\s*' + selectionID + '[^<]*<\\/span>(\\s*)' ); }}} This works well with: {{{#!xml <span class=""mce_SELRES_start"" style=""display: inline-block; ...""> }}} However, it does not work **when ""class"" is the last attribute**: {{{#!xml <span style=""display: inline-block; ..."" class=""mce_SELRES_start""> }}} ---- == Solution Changing `+`(1 or more) to `*`(0 or more) in the regular expression makes it work. `wp-admin/editor.js` **Line 775** {{{#!js '<span[^>]*\\s*class=""mce_SELRES_start""[^>]+>\\s*' + selectionID + '[^<]*<\\/span>(\\s*)' }}} ↓ {{{#!js '<span[^>]*\\s*class=""mce_SELRES_start""[^>]*>\\s*' + selectionID + '[^<]*<\\/span>(\\s*)' }}} **Line 779** {{{#!js '(\\s*)<span[^>]*\\s*class=""mce_SELRES_end""[^>]+>\\s*' + selectionID + '[^<]*<\\/span>' }}} ↓ {{{#!js '(\\s*)<span[^>]*\\s*class=""mce_SELRES_end""[^>]*>\\s*' + selectionID + '[^<]*<\\/span>' }}}" shge 59978 Classic editor cursor control Editor 6.4 normal normal Awaiting Review defect (bug) new 2023-11-28T16:10:55Z 2023-12-19T15:42:56Z Since WordPress 6.4.1 or one version earlier, when pressing the cursor right or cursor left button in the block editor, the page simultaniously swaps several lines down or up. Most of the times the edited line is swapping out of sight and you are losing orientation on your work. jjb100 60107 Classic editor cursor control Editor 6.4.1 normal normal Awaiting Review defect (bug) new 2023-12-19T15:58:30Z 2023-12-19T15:58:30Z "Since wordpress 6.4.1 or a version before, the classic editor reacts strangely to keystrokes. If you press the ""cursor left"" or ""cursor right"" keys on the PC keyboard, the edited text always scrolls up or down several lines ""uncontrollably"". The edited line often disappears from the screen, so that you lose the orientation to your work. This happens under Windows 10 Pro regardless of the browser used (Firefox, Opera). " jjb100 4 29159 Classic editor: Visual editor is disabled when user agent is obscured by a proxy Editor 2.0 normal normal Future Release defect (bug) new needs-unit-tests 2014-08-08T23:54:26Z 2020-11-24T04:56:39Z "user-agent checking is removing visual editor in function user_can_richedit. It took us many days to find a problem, which is described here: http://www.benjaminhorn.se/code/wordpress-visual-editor-not-visible-because-of-user-agent-sniffing/ It is not sensible to use user-agent as a check whether to show visual editor. Hopefully this check can be amended or removed in future WP versions. There are various hosting environments where this check fails. Plus you would constantly need to manually add new strings over time. We need to write plugins or theme hacks to circumvent this problem (that is after spending days of struggling to pinpoint the problem)." vmuryginIB 56956 Classic link editor in WordPress 6.1 Editor normal normal Awaiting Review defect (bug) new 2022-11-02T12:06:00Z 2022-11-13T01:18:10Z "После обновления версии WordPress, меню с загрузкой ""Страница"", ""Блок"", ""PDF файл"" и т.п. сползло вниз и не возможно выбрать варианты. ''Translation:'' After updating the version of WordPress, the menu loading ""Page"", ""Block"", ""PDF file"", etc. slid down and it is not possible to choose options." krmt 1 60396 Color Picker picks color by hex value Editor normal normal Awaiting Review defect (bug) new 2024-01-31T10:01:25Z 2024-01-31T10:01:25Z "If the theme contains colors which have same values but different name and slug, then if one of these colors is applied in editor, Colors declared first in theme.json is applied to the element. This will cause bug incase the style of Website is changed. " jigarpanchal 56693 Copying and Pasting Sporadically duplicates the pasted content, which cannot then be removed Editor 6.0.2 normal normal Awaiting Review defect (bug) assigned reporter-feedback 2022-09-29T18:21:31Z 2022-12-09T15:36:32Z Sometimes when we paste content over highlighted content, it duplicates it and then won't let us quickly remove the dups. adamvanbuskirk 57495 Cover block: fixed background doesn't work Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2023-01-18T12:00:31Z 2023-02-15T01:12:55Z "Although I switch ON the ""fixed background"" option, when I visit the website through my computer, the image flow together with the all the rest of the page contents. It works properly when I surf the website through my smartphone " ictgo 53256 Cover images within a column break the editor Editor 5.7.2 normal normal Awaiting Review defect (bug) new 2021-05-22T04:09:38Z 2021-06-11T15:58:30Z If text is added over an image (or cover images are used) within a column, the images stretch and the block editor becomes unusable. Tested on multiple themes with all plugins disabled. To recreate, add a column to a page (with 1 or 2 columns). Add 2 cover images within one column (or two images and add text over it). sprockettechweb 60157 Cursor moves to a different paragraph when use directional keys to navigate in a text Editor 6.4.2 normal normal Awaiting Review defect (bug) new has-patch 2023-12-27T08:44:47Z 2024-02-15T16:27:28Z "There is a bug when using the directional keys (left and right), to navigate in a text, the cursor moves to a different paragraph, usually gets hidden behind the toolbar (`class=""block-library-classic__toolbar""`). This might be because of the legacy classic editor block in Gutenberg editor, on small screens. " calinghiran 49480 Custom HTML with <script> incorrectly encodes '&' character Editor normal normal Future Release defect (bug) new 2020-02-20T04:47:34Z 2020-12-15T05:07:19Z "This was originally reported in the Gutenberg github repo (https://github.com/WordPress/gutenberg/issues/13186), but during a triage session in slack was identified as a core bug (https://wordpress.slack.com/archives/C02QB2JS7/p1579758213000600). #34698 is possibly related. ---- **Describe the bug** If the javascript code in a <script> block contains an `&` operator, it will be converted to `&`, which browser flags as a syntax error. The script will not work. I am using WP 5.0.2, Gutenberg updated Jan 3, 2019 (don't know where to find the version), hosted on easyWP. Example: {{{ <script> const hex = []; for (let i = 0; i < 256; i++) { hex[i] = (i < 16 ? '0' : '') + (i).toString(16); } function generateUUID() { const r = crypto.getRandomValues(new Uint8Array(16)); r[6] = r[6] & 0x0f | 0x40; r[8] = r[8] & 0x3f | 0x80; const h = Array.from(r).map(i => hex[i]); return `${h[0]}${h[1]}${h[2]}${h[3]}-${h[4]}${h[5]}-${h[6]}${h[7]}-${h[8]}${h[9]}-${h[10]}${h[11]}${h[12]}${h[13]}${h[14]}${h[15]}`; } </script> }}} **To Reproduce** Steps to reproduce the behavior: 1. Go to a Page 2. Click on 'add Custom HTML' 3. Paste the above HTML <script> snippet into the block. 4. Preview the change 5. Open the JavaScript console. You will see a syntax error: ""Invalid Character: '#'"": {{{ r[6] = r[6] & 0x0f | 0x40; r[8] = r[8] & 0x3f | 0x80; }}} **Expected behavior** I expect no syntax errors. The script should be rendered without any encoding of characters. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: Mac OS X 10.14 - Browser chrome and safari - Version chrome 71.0.3578.98 " talldanwp 47865 Custom Post Types – Published Posts – Preview Changes URL’s – Page not Found Editor 5.2.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-08-12T14:45:41Z 2020-11-05T03:36:39Z "Seeing as I started a forum discussion on this, perhaps the best place to start is there: https://wordpress.org/support/topic/custom-post-types-published-posts-preview-changes-urls-page-not-found/ It includes all I believe should be relevant to the topic." SwansonPhotos 57601 Custom browser user agent breaks visual editor Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2023-02-01T20:18:58Z 2023-02-01T20:18:58Z "If browser user agent is not in a certain parseable(?) format, editor is broken and allows only simple text editing. Set browser user agent e.g. to this text: `Some custom user agent` See also attached screenshots. Reproducible with Firefox and Chrome latest release. Won't register at GitHub due to reasons, so this bug report is here." Ov3rfly 1 53865 Custom fields overlaps Post content blocks Editor normal normal Awaiting Review defect (bug) new 2021-08-03T06:11:27Z 2021-09-17T05:50:12Z "When creating a post or edit an existing one, the Custom fields overlap Gutenberg blocks(wordpress version 5.8). I cannot enter content into those blocks so I cannot complete my post using the new editor. Also other Additional areas to the editor such as meta boxes from plugins(Yoast seo etc) are also overlapping the content. Screenshots 1.Add new post (without any plugins-theme: twenty twenty-one) :https://ibb.co/SyhWP9F 2.Edit post(with yoast SEO metabox-theme: twenty twenty) :https://ibb.co/3zm2kf4 Support ticket created at https://wordpress.org/support/topic/custom-fields-overlaps-post-content-blocks/?view=all#post-14724825 and @t-p responded to create a ticket in bug tracker. Thank You. " anjali94 59808 Custom fontSizes show up duplicated on the Editor along with default presets. Editor 6.3.2 normal normal Awaiting Review defect (bug) new close 2023-11-05T18:54:55Z 2023-11-06T22:01:50Z "When setting up custom fontSizes on theme.json, they show up duplicated on the Editor. However, if you select one of the default values, the input still selects the custom values. theme.json {{{ ""settings"": { ""typography"": { ""fontSizes"": [ { ""slug"": ""small"", ""size"": ""0.5rem"", ""name"": ""Small"" }, { ""slug"": ""medium"", ""size"": ""1rem"", ""name"": ""Medium"" }, { ""slug"": ""large"", ""size"": ""2rem"", ""name"": ""Large"" }, { ""slug"": ""x-large"", ""size"": ""3rem"", ""name"": ""Extra Large"" } ] } } }}} Screenshot: [[Image(https://autran.pro/test/wordpress.png)]] Expected Behavior: overriden default properties should not show up on the Editor. Actual Behavior: default properties are shown together with custom settings. Note: I've only yesterday started to learn/use WordPress - I am not sure how to properly flag bugs - if there's documentation on standards, please point me to it, I'd be happy to adjust. I also could not find this issue for 6.3.2 on previous tickets - apologies if it's duplicated." autranalexandre 1 55142 Custom, external or 3rd party styles are not loaded inside the preview iframe Editor 5.9 normal normal Awaiting Review defect (bug) new 2022-02-11T12:10:29Z 2022-02-11T12:10:29Z "Hello, Unfortunately, you messed a lot of things with the new iframe editor preview, conditional you set are ""crazy"" and work only for your cases otherwise you blocked or removed any custom/external/3rd party scripts. In this file src/components/iframe/index.js you made function **styleSheetsCompat** and that function has 2 problems: 1. If we include any external CSS file that file will not be loaded because of this case {{{ try { // May fail for external styles. // eslint-disable-next-line no-unused-expressions styleSheet.cssRules; } catch ( e ) { return; } }}} External files on Chrome browser will be blocked and cssRules result will be ""Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules at CSSStyleSheet"" - https://stackoverflow.com/questions/48753691/cannot-access-cssrules-from-local-css-file-in-chrome-64/49160760#49160760 Please check Google Font file issue - https://imgur.com/a/SPIPNvZ 2. The Second problem is 3rd party styles or theme custom styles. In the same file -> same function -> you can find this piece of code {{{ const isMatch = Array.from( cssRules ).find( ( { selectorText } ) => selectorText && ( selectorText.includes( `.${ BODY_CLASS_NAME }` ) || selectorText.includes( `.${ BLOCK_PREFIX }` ) ) ); }}} where {{{ const BODY_CLASS_NAME = 'editor-styles-wrapper'; const BLOCK_PREFIX = 'wp-block'; }}} If we have for example 3rd party style - Swiper.css you will block it because inside that file there is no **editor-styles-wrapper** or **wp-block** classes as selector https://www.screencast.com/t/YxASDqA97u0 and that file will not be executed/loaded. The same issue is with any custom theme or plugin styles that don't contain these classes. In my case, I have several CSS files which don't contain these classes and all files are blocked. Could you please consider changing this logic or adding some hooks/JS variables so we can be able to extend/change or add our items? Best regards, Nenad Obradovic" Nenad Obradovic 53537 Default content overwrittern when using a default post format Editor 5.0 normal normal Awaiting Review defect (bug) new has-patch 2021-06-28T09:07:54Z 2021-06-28T11:12:59Z "1. Programmatically define a default content. For example: {{{#!php <?php add_filter( 'default_content', function() { return 'My default content'; } ); }}} 2. Go to Settings > Writing and select a default post format, for example, 'image'. 3. Create a new post. I expect the editor content to display ""My default content'. It displays a block image instead. The test must be done ith a theme supporting post formats such as Twenty Twenty One." Chouby 57647 Deprecate wp_enqueue_block_support_styles function hellofromTonya Editor 6.2 normal normal Future Release defect (bug) reviewing changes-requested 2023-02-06T23:30:35Z 2023-02-13T22:08:46Z "Prior to the style engine classes being added to core, the code for block supports used the `wp_enqueue_block_support_styles` function to output a `<style>` tag containing the CSS styles for the block support. Using this function resulted in duplicate `<style>` tags being output on the site frontend, and redundant CSS rules. As of 6.2, it looks like all of the block supports and block's individual PHP rendering will have been refactored to use the style engine's approach of enqueuing styles, where styles are registered using a common call to the style engine, and then only output once in a single style tag. For example, the Layout block support uses `wp_style_engine_get_stylesheet_from_css_rules` instead of `wp_enqueue_block_support_styles`. Therefore, it should now be possible to deprecate usage of the `wp_enqueue_block_support_styles` function, and nudge any usage of that function over to use comparable style engine functions instead. Note: this deprecation should only occur once all usage of `wp_enqueue_block_support_styles` has been removed in core blocks, which should happen once the JS packages update for 6.2 has occurred, as that update should replace the call with a call to the style engine instead." andrewserong 54678 Difference between Posts List block and Query Loop block Editor normal normal Awaiting Review defect (bug) new 2021-12-22T03:46:42Z 2021-12-22T04:09:25Z "In WordPress 5.9 Beta4, when I edit a post and select the Posts List block, the Query Loop block is still placed. Is this correct? " nendeb55 1 55421 Different CSS order causes inconsistency between editor and actual page Editor normal normal Awaiting Review defect (bug) new 2022-03-18T12:16:36Z 2022-03-18T12:16:36Z "Fresh WordPress, 2022 theme, no plugins. There are some styles loaded as an external file by ""load-styles.php"" in the editor while being inlined in the actual page. This creates different cascading between editor and actual page, and hence a different design. About the screenshot - the margin above the image disappears on the actual page because of the issue described. There is no way of recreating it without custom CSS." asafm7 1 50648 Different behavior for default category term with editors Editor 5.5 normal normal Awaiting Review defect (bug) new 2020-07-13T13:42:14Z 2021-04-09T19:28:35Z "During some tests related to #43517 I found a different behaviors on how default `category` term is handled with block/classic/quick/REST API/XML-RPC API editors. I haven't found similar ticket on trac, so sorry in advance if it's a duplicate and you have already experienced a similar thing Here are the test I've done with table of results. === New post with empty `category` taxonomy ||= Editor =||=`category` result =|| ||Block||`Uncategorized`|| ||Classic||`Uncategorized`|| ||Quick||`Uncategorized`|| ||REST API||`Uncategorized`|| ||XML-RPC API||`Uncategorized`|| === Updating post by removing all `category` terms ||= Editor =||= `category` result =||= Notes =|| ||Block||—|||| ||Classic||`Uncategorized`|||| ||Quick||`Uncategorized`|||| ||REST API||—||This can be done by explicitly setting `categories` key to an empty string.|| ||XML-RPC API||`Uncategorized`||This cannot be done through XML-RPC interface|| === Updating a post there doesn't has any `category` terms (and without changing that taxonomy) ||=Editor=||= `category` result =|| ||Block||`Uncategorized`|| ||Classic||`Uncategorized`|| ||Quick||`Uncategorized`|| ||REST API||`Uncategorized`|| ||XML-RPC API||`Uncategorized`|| This different behaviour seems to be related to block editor that send taxonomy fields values only if they have been changed. And if you remove all categories, block editor will send explicitly an empty array: REST post controller calls `wp_set_object_term()` a second time in `handle_terms()` method: so it's the why the empty array will remove all terms. This isn't currently possible with classic/quick/XML-RPC API editors. The problem is with custom taxonomies as well. " enrico.sorcinelli 1 60225 Directional Keyboard Scrolling Jump Bug Editor 6.4.2 normal normal Awaiting Review defect (bug) new 2024-01-10T14:09:36Z 2024-01-23T11:49:14Z Before 6.4, scrolling through your content in the edit post page using keyboard behaved normally, the cursor moved either one line (up/down) or character (left/right) with the entire editor moving. With 6.4, keyboard scrolling makes the entire classic editor page jumps either to top or bottom depending on the position and direction. See video below attached. samikip 53583 Distraction Free Writing Mode not available on visual tab Editor 5.7.2 normal normal Awaiting Review defect (bug) new 2021-07-04T03:12:40Z 2021-07-04T03:12:40Z "When using the classic editor under keyboard shortcuts it states that Ctrl Alt W is the shortcut for distraction free writing mode. On the visual tab this shortcut doesn't work, and the icon is missing in 5.7.2. The reason I'm raising this issue is that in the past I had used this mode from an icon on the toolbar, and I was unable to locate it. The icon is showing on the text tab, and the shortcut works on this tab. The icon and shortcut are not able to be activated on the visual tab. Moving the cursor outside the text area exits dfw mode, although the icon shows that it's still activated. I'm not sure if this is intended. After checking a previous wordpress version of 5.5.5 I discovered that the icon was on the visual tab in this version, and the keyboard shortcut works as expected on both tabs. I tested this with a number of post types, such as posts, pages and products. To reproduce, load the edit post screen as described, then downgrade wordpress version to 5.5.5. The icon should now show on the visual tab." arthurdaly 42540 Don't move focus to the editor when switching editor mode Editor normal normal Future Release defect (bug) new 2017-11-14T10:38:33Z 2019-01-10T17:31:15Z "Splitting this out from #42530. When switching the classic editor from ""Text"" mode to ""Visual"" mode, the editor area is focused. Worth noting this is a TinyMCE behavior, not something WordPress does. For a number of years it always worked this way, with a few exceptions. For example, in 4.8.3 the editor is not focused for me, not sure if something changed in TinyMCE. Regardless of what happened to TinyMCE, I'd propose to finally discuss this behavior and evaluate if it's a good one for all users. It was discussed sometimes in the past, as part of other issues, see for example #30490 but never fully addressed. This issue is even more relevant now that #41962 is going to move focus to the editor in both Visual and Text mode, when there is a selection. Moving focus programmatically is often problematic because it generally assumes just one, specific, workflow. From an usability perspective, moving focus to the editor assumes users want to start typing immediately. This may or may not be true. It's an assumption. From an accessibility perspective, unexpectedly switching context is a huge concern. See also the discussion on #42530. Any thoughts and discussione welcome!" afercia 49894 Drag & Drop image upload error on multisite install when no upload space available Editor normal normal Awaiting Review defect (bug) new 2020-04-13T13:19:19Z 2020-12-15T05:38:22Z "On a multisite installation, a maximum upload space can be limited. When using the classic editor and it's drag-and-drop upload feature while not having enough available space for a site, the image file ends up being loaded in the browser (at least in chrome) with following JS error in console: {{{ Uncaught TypeError: Cannot read property 'uploader' of undefined in wp-includes/js/media-views.js:5268 }}} See: https://core.trac.wordpress.org/browser/trunk/src/js/media/views/uploader/editor.js?rev=46800#L161 I would expect the classic editor to display an error similar to the one which is being displayed in media modal when attempting to upload a file while not having any available space: {{{ Upload Limit Exceeded Sorry, you have used your space allocation of 1 MB. Please delete some files to upload more files. }}} " david.binda 53846 Drag and drop multiple blocks into container breaks editor Editor 5.8 normal normal Awaiting Review defect (bug) new 2021-07-31T04:16:22Z 2021-09-01T06:29:35Z "http://somup.com/crivq7Yzif I recently found a bug in 5.8 where dragging and dropping a group of blocks into a container (e.g. a column) breaks the editor and results in this error: **The editor has encountered an unexpected error.** Notes: - I'm using v.5.8 - Steps to reproduce the problem: Create a new post. Add more than 1 paragraph block with text. Add columns block. Add text to columns block. Select paragraph blocks. Drag and drop them into columns block. The editor will break. - The problem occurs on a fresh install of WordPress 5.8 with no plugins. - The expected result is to be able to have paragraph blocks successfully dragged into the columns block. Instead, the editor broke. Here is the error that shows up in the console: {{{ TypeError: e is null pp http://wptest1.local/wp-includes/js/dist/block-editor.min.js?ver=390a9f83b606a55e8b523c4d16bdb08c:12 gp http://wptest1.local/wp-includes/js/dist/block-editor.min.js?ver=390a9f83b606a55e8b523c4d16bdb08c:12 Bh http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:126 Dj http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:162 unstable_runWithPriority http://wptest1.local/wp-includes/js/dist/vendor/react.min.js?ver=16.13.1:25 Da http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 xb http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:162 Te http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:146 Pg http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:61 unstable_runWithPriority http://wptest1.local/wp-includes/js/dist/vendor/react.min.js?ver=16.13.1:25 Da http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 Pg http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:61 ha http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 Ja http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:224 ch http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:93 e http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 t http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 v http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 b http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 i Redux A http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 L http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 dispatch http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 Redux 17 A http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 L http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 f http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 ss http://wptest1.local/wp-includes/js/dist/block-editor.min.js?ver=390a9f83b606a55e8b523c4d16bdb08c:12 us http://wptest1.local/wp-includes/js/dist/block-editor.min.js?ver=390a9f83b606a55e8b523c4d16bdb08c:12 h http://wptest1.local/wp-includes/js/dist/compose.min.js?ver=6284a4846a73f9c3e3ff2d7bd0b47be7:2 ce http://wptest1.local/wp-includes/js/dist/compose.min.js?ver=6284a4846a73f9c3e3ff2d7bd0b47be7:2 T http://wptest1.local/wp-includes/js/dist/compose.min.js?ver=6284a4846a73f9c3e3ff2d7bd0b47be7:2 P http://wptest1.local/wp-includes/js/dist/compose.min.js?ver=6284a4846a73f9c3e3ff2d7bd0b47be7:2 A http://wptest1.local/wp-includes/js/dist/compose.min.js?ver=6284a4846a73f9c3e3ff2d7bd0b47be7:2 Aj http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:161 unstable_runWithPriority http://wptest1.local/wp-includes/js/dist/vendor/react.min.js?ver=16.13.1:25 Da http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 ab http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:154 Te http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:146 Pg http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:61 unstable_runWithPriority http://wptest1.local/wp-includes/js/dist/vendor/react.min.js?ver=16.13.1:25 Da http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 Pg http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:61 ha http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 <anonymous> http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:236 Ei http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:41 Cb http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:41 w http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:40 Md http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:35 oa http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:44 hj http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:117 Sh http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:152 Th http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:152 tj http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:152 Te http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:146 Pg http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:61 unstable_runWithPriority http://wptest1.local/wp-includes/js/dist/vendor/react.min.js?ver=16.13.1:25 Da http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 Pg http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:61 ha http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:60 Ja http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:224 ch http://wptest1.local/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.13.1:93 e http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 t http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 v http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 b http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 i Redux A http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 L http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 dispatch http://wptest1.local/wp-includes/js/dist/data.min.js?ver=7bfa3a673439e85e459d5ec92d30fdda:2 Redux 3 react-dom.min.js:125:24 }}} Thanks Israel Barragan for your help with this ticket!" lesleysim 59138 Duotone filter selector does not apply when using Image block alignment Editor 6.3 normal normal Future Release defect (bug) new close 2023-08-18T10:52:33Z 2024-02-20T05:50:28Z "Steps to reproduce the issue :- 1. Activate Twenty Seventeen theme. 2. Choose Image block. 3. Use Alignment 4. Give Highlight or shadow to the block. You can able to see it is working fine in editor side but having issue in front side when alignment is applied. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/tDbCt0h3fTLVMMhbK4xt" nidhidhandhukiya 60256 Edit the link Editor 6.2.1 normal normal Awaiting Review defect (bug) assigned reporter-feedback 2024-01-15T15:20:47Z 2024-01-15T15:34:43Z "I have a small image e.g. an arrow with an anchor link on it e.g. ""#section1"". I copy this image and want to edit the link. Then it adds the complete admin url to the link like this: https://gazetamercantil.com" mercantil 58813 Editing Slug to an Existing Slug causes wrong content to display Editor normal normal Awaiting Review defect (bug) new has-patch 2023-07-14T19:14:37Z 2023-07-19T18:52:15Z "**NOTE** This only works if you have the Classic Editor plugin active. I made a ticket there - https://github.com/WordPress/classic-editor/issues/201 - but they said it's a core bug. I am aware this is a weird one. The setup is as follows: 1. Make a clean website 2. Make a couple posts (content does not matter) 3. Install and Activate Classic Editor 4. Make a new post and save as draft 5. Copy the permalink from an existing post and paste it into the new post as the permalink, save as DRAFT (do not publish) 6. You will see the NEW post has a -2 added to the permalink (this is as expected) 7. Open the ORIGINAL existing post with the non -2 8. The post will display the content (title and all!) from the NEW post that is still in draft (this is NOT expected) This **does not** happen with the Block Editor, it can only be reproduced in Classic Editor, however the CE side feels this is a bug in core. I dug up that this is fixed in Gutenberg per #52422 however it still exists in classic editor. I can confirm that this happens from WP 4.9.x through 6.0.x '''without''' Classic Editor. As of 6.1.3, this is fixed in Block Editor, and only appears if you have the Classic Editor active." Ipstenu 51490 Editor Styles Not Loading in Correct Sequence for Blocks Editor 5.5.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-10-09T16:43:04Z 2021-01-28T22:44:20Z "In the block editor, styles loaded by WP core are overriding those from editor-style.css in a custom theme I'm building, causing particular display issues with line heights and margins for header blocks. It appears as though this is due to an error at line 190 of edit-form-blocks.php, the file that sets up $editor_settings. The line: **if ( $editor_styles && current_theme_supports( 'editor-styles' ) ) { ** The current_theme_supports check should be for 'editor-style' rather than 'editor-styles'. As a result, styles from editor-style.css are being skipped. (Some earlier sequence is loading the styles from editor-style.css, so they do exist in the block editor. However, the WP core styles loaded in edit-form-blocks.php are overriding them.)" susanwrotethis 1 39574 Editor patterns: add empty headings/quotes Editor 4.3 normal normal Future Release defect (bug) new 2017-01-13T14:49:16Z 2019-07-18T06:46:04Z "Currently some patterns normally only work if there's other text after the leading character(s). I you type `## Test` and press enter, a new h2 element will be created. If you type `##` followed by zero or more spaces, no heading is added and the `##` stays ""normal"" text. I think this is and should be the intended behaviour, so no empty elements are created. But if yout enter `## Test`, then move the cursor between `##` and Test followed by pressing enter, an empty heading will be created and the resulting html looks like this: {{{ <h2></h2> Test }}} Until switching to the text editor and back, you are not able to add text to the heading because it doesn't show up in visual mode. When doing the same with `>`, it doesn't create an empty blockquote, but removes the leading char. The visual editor is then adding an additional line of whitespace, where you can't put your cursor in. This line disappears also after switching to text mode and back. I've tested with WP 4.3 and 4.7.1. " mahu2401 31798 Editor: switch undo and redo in RTL Editor low normal Future Release defect (bug) new has-patch 2015-03-29T11:35:54Z 2021-06-01T13:46:56Z "The undo and redo icons in RTL should we switched. LTR: https://cloudup.com/cHOxlUfHbAp Current RTL: https://cloudup.com/cizBcGBMkCa Proper RTL: https://cloudup.com/cSCyiF_HxMA " yoavf 60681 Elements: Fix application of element class name when attributes are filtered Editor trunk normal normal 6.6 defect (bug) new has-patch 2024-03-04T07:25:07Z 2024-03-13T19:12:19Z "This ticket tracks the backporting of PHP files for the following Gutenberg changes: - https://github.com/WordPress/gutenberg/pull/59535 These changes fix a bug where if the block data was filtered via `render_block_data` the elements CSS class wouldn't be consistently applied breaking the feature. The initial solution that was merged in Gutenberg via https://github.com/WordPress/gutenberg/pull/59533 caused a conflict in CSS classes that https://github.com/WordPress/gutenberg/pull/59535 addresses." aaronrobertshaw 1 58260 Enable `elementpath` for the Classic Block TinyMCE editor afercia Editor normal normal Awaiting Review defect (bug) assigned has-patch 2023-05-05T14:47:07Z 2023-05-08T08:53:27Z "So far, the Classic Block renders the TinyMCE editor within the WordPress Editor canvas. In this case, disabling the TinyMCE `elementpath` makes perfectly sense, as it would be perceived as an extraneous I element, in this context. For this reason, `elementpath` is explicitly disabled in the TinyMCE settings, see https://github.com/WordPress/wordpress-develop/blob/d744c4d39729e2f1df76d93d99560d791ece3043/src/wp-includes/class-wp-editor.php#L933 See first screenshot for the current state. However, on latest Gutenberg, the Classic Block opens a modal dialog. The TinyMCE editor renders within the modal dialog. In this context, there's no reason to disable `elementpath`. The elements path shown in the TinyMCE status bar is a useful tool that helps users with selecting the elements within the editor. Currently, the status bar shows ad the bottom of the editor, but it's empty. See second screenshot. " afercia 2 52933 Error in browser console when newly published post is previewed a second time Editor normal normal Future Release defect (bug) new 2021-03-29T05:11:07Z 2021-11-08T14:24:48Z "Summary of Problem: When a new post or page is created then published, then [Preview] | [Preview in new tab] is selected, no problem occurs the first time. However if [Preview in new tab] is clicked a second time then the the console records this error (assuming post id 15): Failed to load resource: the server responded with a status of 400 (Bad Request) https://example.com/wp-json/wp/v2/posts/15/autosaves?_locale=user The error continues to occur every second time [Preview] | [Preview in new tab] is clicked. I have reproduced this on a fresh install of 5.7 both on local system and on hosted web server. Steps to Reproduce: 1) Login and create a new Post by clicking New | Post 2) Give the post a name and click Publish | Publish | x 3) Open the browser's javascript console 4) Click [Preview] | [Preview in new tab] 5) When the preview window appears, close it or tab back to the edit post screen (at this stage no error in console) 6) Click [Preview] | [Preview in new tab] again (error appears in console)" garethhadfield 2 53136 "Error with ""Add to Reusable blocks"" in WordPress 5.7.1" Editor 5.7.1 normal normal Future Release defect (bug) new reporter-feedback 2021-05-03T08:10:05Z 2021-08-31T14:06:33Z "Error when ""adding the first paragraph style to the reuse block"" in a new post with `core/paragraph` added (or used) in `register_block_style()` in WordPree 5.7.1 The error message is Error statement The editor has encountered an unexpected error Additional code (functions.php / Theme: Twenty Twenty-One) {{{#!php <?php register_block_style( 'core/paragraph', array( 'name' => 'blue-paragraph', 'label' => __( 'Blue paragraph' ), 'inline_style' => '.is-style-blue-paragraph { color: blue; }', ) ); }}} [[Image(https://f.easyuploader.app/20210503102556_54394978.gif)]] [[Image(https://f.easyuploader.app/20210503102810_6e724b33.png)]] " sawamura 3 52779 Error with saved blocks Editor 5.7 normal normal Future Release defect (bug) new dev-feedback 2021-03-11T14:38:12Z 2021-08-30T20:36:18Z After update to WordPress 5.7 there is no possibility to use saved blocks without make changes in original bock. That's mean I would like to use saved block, make some changes when I've added it to the post and didn't make change in saved block – it is not posible now. Could you please give me a tip how to use previous option of using saved blocks? lumay 56464 Event custom metabox with Gutenberg not showing correctly Editor normal normal Awaiting Review defect (bug) new 2022-08-30T12:06:03Z 2022-08-30T12:18:20Z "Hi there. I’m using The Events Calendar free version 5.16.4 and WP version 6.0.1. If in the settings I flag the use of Gutenberg with events, in the event backend page I can’t scroll down to the events metabox, therefore it’s impossible to insert event date and time or other fields. If the option is disabled everything works fine, but I can’t use Gutenberg, even by pressing the grey Gutenberg button on the top. I tried to check if it's a problem of height (solvable with CSS), but it seems the box is not filled at all, and it seems empty. See the screenshot. Everything is up-to-date, I tried to change versions and it seems the same, php is 7.4. I deactivated all plugins and changed theme, nothing changed." pasamedia 1 59270 Excerpts Not Showing Bold Text ... Editor 6.3 normal normal 6.6 defect (bug) new 2023-09-02T01:47:36Z 2024-02-17T14:26:45Z The text itself shows, but it does not show the bold attributes as it did up until 6.2.2. hmnvtn 45126 Expired session post editing continuation bug Editor 4.9.8 normal normal Awaiting Review defect (bug) new 2018-10-18T21:59:36Z 2020-11-12T05:59:06Z "While editing or creating a new post, it's not possible to continue your workflow in the same post when your WordPress session expires and you're asked to log in again. Attempting to save or publish from the existing screen after re-logging in from the pop-up dialogue will produce a ""link expired"" error. You then have to navigate back to the Dashboard and re-open the post you were working on. " ChrisDca 1 54948 Export template and template parts return empty zip file Editor 5.9 normal normal Awaiting Review defect (bug) new close 2022-01-27T12:23:53Z 2022-01-30T04:38:14Z When I'm trying to **export template and template parts**, it returns me an empty zip. mehedi890 57008 FSE Margin settings not working Editor 6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-11-05T19:44:46Z 2022-11-05T20:02:47Z In my test site, when I change the slider for margin settings for a block (eg buttons, social icons) the margin looks correct in the editor but does not appear in the final page. jcoonrod 60151 FSE theme Styles select Issue Editor normal normal Awaiting Review defect (bug) assigned 2023-12-26T11:46:13Z 2024-02-15T16:25:33Z "Hi, I am a WordPress plugin developer. While developping a feature I found a bug in styling gutenberg block. The issue is: Suppose I have four preset color. Ex. primary: `#000000`, secondary: `#7345F7`, tertiary: `#f0f0f0`, custom: `#7345F7`. When select the color property of a block if I select ""custom"" both ""custom"" and ""secondary"" got selected and in the backend the ""secondary"" is saved but I did not choose the ""secondary"" option. I think it selects based on color code rather than color slug. Issue image link : https://drive.google.com/file/d/1j-b1MH4u_gdV7vbVxaDhffbgmNEUFfnA/view?usp=sharing Thank You. Regards Tazeen Ehsan Teebro" tazeenehsan 54417 Featured Image Exceeds Container Editor 5.8.1 normal normal Awaiting Review defect (bug) new 2021-11-10T23:44:33Z 2021-11-10T23:44:33Z When a portrait-oriented featured image is selected on a WordPress post, it appears to be exceeding the boundaries of its container and obscuring other items on the right hand toolbar. The left edge of the Featured Image tab is still clickable, and the problem can be circumvented by closing the Featured Image tab. But, while it is open, any items behind the Featured Image are not visible or clickable. johnkakuk 1 55271 Featured Image Section Disappears In Block Editor Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2022-02-28T05:37:56Z 2022-03-08T14:18:32Z For some reason, the Featured Image Section just plain disappears in the Block Editor. I have to download the Classic Editor Plugin to see it. I thought this was a one time problem but it's a constant one when using WordPress 5.9.1 zennie62 57499 Featured Image block size options not displaying in FSE Editor normal normal Awaiting Review defect (bug) new 2023-01-18T13:17:43Z 2023-01-18T13:17:43Z "Featured Image block size options not displaying in FSE editor while they are visible in Gutenberg editor. Can you correct this please? Thanks Stephan Renault" StephanR 1 45370 Filter Issue blocks.registerBlockType Editor 5.0 normal normal Future Release defect (bug) new 2018-11-18T12:48:48Z 2019-01-12T12:36:59Z "My developer tells me there are changes regarding this filter within the latest Gutenberg release not yet added to WP5 beta blocks.registerBlockType We are using this for block visibility controls for 3rd party blocks." davedunn 1 58328 Floating toolbar labels Editor 6.2.2 normal normal Awaiting Review defect (bug) new 2023-05-16T15:11:34Z 2023-07-06T20:07:54Z "When you are typing an entry and select the bold or italic checkbox on the floating toolbar, the information label appears just below it. If you are typing and you mark a word with bold and then quickly scroll down and inadvertently click on the label, it is interpreted as if you clicked on the bold box again and removed the bold again. Sorry if this has already been reported. See screenshot for better understanding." Marc4 51418 Focus is not going or moving to editor options when using tab keys( Bold, Italic etc..) Editor normal normal Future Release defect (bug) reopened 2020-09-30T09:19:09Z 2020-10-30T15:02:56Z Focus is not moving / going to editor options or buttons while using Tab key in the keyboard in WordPress default editor. fornandakishore 60790 Font Library: Editor has encountered an unexpected error Editor trunk normal normal Awaiting Review defect (bug) new reporter-feedback 2024-03-16T10:02:59Z 2024-03-20T22:17:07Z "During the customization of the Blog template, an unexpected error was encountered by the editor when changing the line height after uploading a custom font. " shilpamanoj 55916 Font size in post editing is not validated Editor 6.0 normal normal Awaiting Review defect (bug) new 2022-06-04T09:12:21Z 2022-06-11T16:28:19Z "In the post editing page, the font size is constrained by front end HTML 'type=number'. [[Image(https://ibb.co/NLhJvKY)]] However, this font size can be changed by intercepting the requests. And the resulted HTML will contain the font size making no sense: <p style=""font-size:aaapx"">User’s blogs</p> This may result in data corruption or web injection." floridsleeves 49676 Gallery Block upload does not link to the right image Editor 5.3.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-03-22T18:08:50Z 2020-11-24T04:36:45Z "When uploading images directly from the Gallery Block, the image used is a fixed resolution image rather than the scaled image. The scaled image is the only one accessible through the Media Library, but the Gallery Block links to a fixed-size image. This is bad for performance, as the linked image is huge even when displayed in a tiny Gallery matrix: https://travellingsquirrel.altervista.org/kata-beach-in-phuket-the-quieter-alternative-to-patong {{{ img src=""https://travellingsquirrel.altervista.org/wp-content/uploads/2020/03/20190208_182104-3000x2250.jpg }}} It also makes any edit through the Media Library to not be applied to the displayed image, and vice-versa." romain145 2 55044 Gallery block UI issue Editor 5.9 normal normal Awaiting Review defect (bug) new 2022-02-02T09:30:26Z 2022-06-11T17:56:02Z "Hi, When i am putting padding on gallery block then beaking UI on content. more information see mentioned SS. Thank you" sumitsingh 57091 Global Styles: Element styles not working for third-party blocks Editor 6.1 normal normal Awaiting Review defect (bug) assigned 2022-11-12T18:45:31Z 2022-11-12T18:45:31Z "This is a follow-up to #56915. == The Problem: Element-specific global styles for third-party blocks still don't work. The styles are not added to the inline CSS in the frontend. ---- === **General global styles for third-party blocks work well:** {{{ { ""$schema"": ""https://schemas.wp.org/trunk/theme.json"", ""version"": 2, ""styles"": { ""blocks"": { ""my/third-party-block"": { ""color"": { ""background"": ""hotpink"" } } } } } }}} ✔ work well in the block editor ✔ work well in the frontend ---- === **Element-specific global styles for third-party blocks don't work:** {{{ { ""$schema"": ""https://schemas.wp.org/trunk/theme.json"", ""version"": 2, ""styles"": { ""blocks"": { ""my/third-party-block"": { ""elements"": { ""link"": { ""color"": { ""background"": ""hotpink"" } } } } } } } }}} ✔ work well in the block editor ❌ don't work in the frontend ---- == Investigation: Since it works fine in the block editor, I thought it must be unintentional that it doesn't work in the frontend. So I researched deeper and came across the {{{wp_add_global_styles_for_blocks}}} function. At the end of the function there is this part: {{{ function wp_add_global_styles_for_blocks() { ... // The likes of block element styles from theme.json do not have $metadata['name'] set. if ( ! isset( $metadata['name'] ) && ! empty( $metadata['path'] ) ) { $result = array_values( array_filter( $metadata['path'], function ( $item ) { if ( strpos( $item, 'core/' ) !== false ) { return true; } return false; } ) ); if ( isset( $result[0] ) ) { if ( str_starts_with( $result[0], 'core/' ) ) { $block_name = str_replace( 'core/', '', $result[0] ); $stylesheet_handle = 'wp-block-' . $block_name; } wp_add_inline_style( $stylesheet_handle, $block_css ); } } } } }}} In that part this happens: 1. With the statement {{{if ( str_starts_with( $result[0], 'core/' ) )}}} we check whether it is a core block or not. However, because of the {{{array_filter}}} before, the values of {{{$result}}} can only start with {{{core/}}} anyway. So this if statement is redundant. 2. So if {{{isset( $result[0] )}}} is {{{TRUE}}}, it always is a core block. Therefor the function {{{wp_add_inline_style}}} will be called only for core blocks but never for third-party blocks. ---- == Solution: * Remove the redundant {{{if ( str_starts_with( $result[0], 'core/' ) )}}} statement * Move the {{{wp_add_inline_style}}} function call outside the {{{if ( isset( $result[0] ) )}}} statement {{{ function wp_add_global_styles_for_blocks() { ... // The likes of block element styles from theme.json do not have $metadata['name'] set. if ( ! isset( $metadata['name'] ) && ! empty( $metadata['path'] ) ) { $result = array_values( array_filter( $metadata['path'], function ( $item ) { if ( strpos( $item, 'core/' ) !== false ) { return true; } return false; } ) ); if ( isset( $result[0] ) ) { $block_name = str_replace( 'core/', '', $result[0] ); $stylesheet_handle = 'wp-block-' . $block_name; } wp_add_inline_style( $stylesheet_handle, $block_css ); } } } }}} " ehtmlu 2 48336 Global block editor image styles causing problems Editor 5.3 normal normal Awaiting Review defect (bug) new 2019-10-17T05:34:17Z 2019-10-18T01:54:32Z "I was just testing WordPress 5.3 RC1 on my site and I noticed that the images layout was broken in one of the elements. The element is a custom theme element that is outside the main content area (it is not added from the editor). Then I noticed the following global CSS that is added globally for all images on the front-end in the /wp-includes/css/dist/block-library/style.css: {{{ img { max-width: 100%; height: auto; } }}} I think that there will be many others affected by this global CSS, especially the `max-width: 100%;` property. Some more dynamic elements (like sliders) that assume the default image max-width being none, and need the image to overflow its parent will now look broken with this global rule. I'm not very familiar with the block editor internals, but I believe that those styles should be somehow scoped to the block editor elements only and not applied globally to all elements on the front-end. " dennis_f 58045 Global style change cannot be reverted Editor 6.2 normal normal Awaiting Review defect (bug) new 2023-04-01T16:53:48Z 2023-04-01T16:53:48Z "After applying a background color to a Column block via Layout and clicking Apply Globally under Settings -> Advanced, all blocks changed to the same color, as expected. However, when reverting the background color of any Column block is set to transparent (when all checkmarks in the background color popup are deactivated), the recently-applied Global color remains, even if Apply Globally is clicked again. It is possible to change the selected block to another color (or gradient), as well as a new background via Apply Glohally to all blocks, but a transparent background cannot be restored in the theme." sidewaysdesign 2 53563 Global styles layout settings in the editor clash with the frontend Editor 5.8 normal normal Awaiting Review defect (bug) new 2021-06-30T14:43:33Z 2021-08-05T15:32:05Z "The `theme.json` file allows the `contentSize` and `wideSize` to be set: {{{ { ""settings"": { ""layout"": { ""contentSize"": ""580px"", ""wideSize"": ""900px"" } } }}} When these are set, blocks like the Group block show the Layout panel. Now the default width can be inherited, or blocks can be made wide. This all works great in the editor, due to the following autogenerated CSS: {{{ .editor-styles-wrapper .block-editor-block-list__layout.is-root-container > * { max-width: 580px; margin-left: auto !important; margin-right: auto !important; } .editor-styles-wrapper .block-editor-block-list__layout.is-root-container > [data-align=""wide""] { max-width: 900px; } }}} This works well on the frontend for blocks that are restricted to the content size. The following CSS is output: {{{ .wp-container-60dc7f6096866 > * {max-width: 580px;margin-left: auto !important;margin-right: auto !important;}.wp-container-60dc7f6096866 > .alignwide { max-width: 900px;}.wp-container-60dc7f6096866 .alignfull { max-width: none; }.wp-container-60dc7f6096866 .alignleft { float: left; margin-right: 2em; }.wp-container-60dc7f6096866 .alignright { float: right; margin-left: 2em; } }}} However for wide aligned blocks, none of the relevant CSS is output. {{{ .wp-container-60dc7f6096b14 .alignleft { float: left; margin-right: 2em; }.wp-container-60dc7f6096b14 .alignright { float: right; margin-left: 2em; } }}} There should be the following CSS: {{{ .wp-container-60dc7f6096b14.alignwide {max-width: 900px;margin-left: auto !important;margin-right: auto !important;} }}} The issue here comes from the difference between a block-based, and a hybrid theme. In a block-based theme, all blocks are full-width by default. Wide blocks can only break out of content width restricted blocks. In a hybrid theme though, the content area is restricted--usually through CSS. But wide elements still need to be able to be wider than this container. The only way to get the desired outcome is to wrap the content in a group using `the_content` filter hooked in super early. In addition using the layout controls hardcode alignment margins, which makes it difficult to control these through the theme's styles." Frank Klein 1 49857 Groups disappear after inserting something inside it in Gutenberg Editor 5.4 normal normal Awaiting Review defect (bug) new 2020-04-09T08:41:57Z 2020-04-09T16:10:16Z "**Description:** Since upgrading to 5.4, when I create a group using the Gutenberg editor, and then add something inside, the **group disappears from the UI**, but it remains in the source code. As we use this feature everyday as part of our company workflow, this bug is seriously affecting our daily operations as it causes layout havoc when we try to display an article's contents. This bug is related to ticket #49748. **Actions taken so far:** - Flushed browser cache - Ensured that assets are not cached - Reinstalled WP 5.4 - Disabled all plugins **Steps to reproduce:** 1. Create a new post (this issue also occurs on existing articles, but this bug is more easily highlighted in a blank article). 2. Create a new group. 3. Click on the (+) to add, say, a paragraph within it. 4. The group completely disappears from the editor, only the paragraph can be interacted with. The group no longer appears on the outside of the inserted paragraph, as it used to be in WP 5.3. The group itself still exists in the code editor." ple33 49891 Gutenberg Block Cover - Fixed Background Editor 5.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-04-13T11:38:23Z 2020-12-15T05:41:32Z Hello! In the latest versions of Google Chrome (80-81) and similar browsers, the fixed background in the Cover block has stopped working. It does not depend on the theme, nor on the installed plugins, nor on the custom code. Checked on working sites, on a local server. Php 7.4 and below. WordPress 5.4. Windows 10 Home Operating System. zabavljaev 58508 Gutenberg and CSS Editor 6.2.2 normal normal Awaiting Review defect (bug) new dev-feedback 2023-06-11T00:20:52Z 2023-06-11T00:20:52Z "ENGLISH Hello. I created a page, but when I deleted a photo from the gallery, all the content was deleted. Going to the revisions I was able to restore the content, but when updating, everything is deleted again. I changed the version from PHP8.0 to 8.1 but still the same. I deactivated the plugins and the error was repeated. Finally, with all these changes, I restored the page revision that has all the content, but I added a full stop to some text, I UPDATED and the content was no longer deleted. I activated all the plugins and the error returned. I started to disable GUTENBERG first, restored the revision without making changes to it, saved the page and it works fine. PS: I had to change from PHP8.1 to 8.0 because it throws errors in the Backend (css is disabled, still changing themes) THEME: ASTRA WP: 6.2.2 PHP at startup: 8.1 PHP at the end: 8.0 ---- ESPAÑOL Hola. He creado una página, pero al borrar una foto de la galería, se borró todo el contenido. Yendo a la revisiones pude restaurar el contenido, pero al actualizar, vuelve a borrarse todo. Cambié la versión de PHP8.0 a 8.1 pero seguía igual. Desactivé los plugins y el error se repetía. Por último, con todo estos cambios, restauré la revisión de página que tiene todo el contenido, pero le agregué un punto final a un texto, ACTUALICÉ y ya no se borró más el contenido. Activé todos los plugins y volvió el error. Empecé a desactivar primero GUTENBERG, restauré la revisión sin hacerle cambios, guardé la página y funciona bien. PD: Tuve que cambiar de PHP8.1 a 8.0 porque arroja errores en el Backend (se desactiva el css, aún cambiando de temas) TEMA: ASTRA WP: 6.2.2 PHP al inicio: 8.1 PHP al final: 8.0 " aiteok 2 56429 Gutenberg author box missing Editor 6.0.1 normal normal Awaiting Review defect (bug) new 2022-08-24T14:03:31Z 2022-11-05T22:30:57Z "There is a bug related to the author box missing when all of the following conditions are true: - When there are more than 70 users in a WP installation - When an Editor creates a post and saves it as a draft. This must be the only post of that user - If all the users are ordered alphabetically, that user must be above 60 in the order When this is true, if another Editor opens that draft, the author box won't be visible. There is an additional request that should fetch that user and it's returning error 403 If Administrator opens it, the author box is present The cause for the bug is the last condition that fails here - https://github.com/WordPress/WordPress/blob/master/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php#L445 because the function checks for the author of the post" lgadzhev 50548 Gutenberg default style not work Editor 5.4.2 normal normal Awaiting Review defect (bug) new dev-feedback 2020-07-03T10:46:23Z 2020-07-04T04:24:09Z "Hello, I found the Gutenberg default style dropdown not work. Please check the attached document. Thanks. " rkradadiya 57212 Gutenberg list block treating each UL as separate block? Why? Editor 6.1 normal normal Awaiting Review defect (bug) new 2022-11-26T17:44:58Z 2022-11-30T16:38:38Z "After WordPress core update 6.x we start seeing that Gutenberg block for LISTS is now treating each separate UL as what looks like a separate block, so that each UL can be dragged, reordered, copied, duplicated, font styles, etc... It is confusing, not intuitive. Previous method of Gutenberg lists was nice and simple, it was just one master (parent) list and all UL inherit the style of the parent without ability to treat ULs separately. Would be nice to have option in the Gutenberg LIST block to disable the treatment of ULs separately and just keep it one simple master list. " wordmax 48888 HTML being stripped from shortcode blocks in blog posts Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2019-12-05T18:24:31Z 2020-12-07T05:26:55Z "Hi team I have a MailChimp newsletter signup form in the sidebar of my blog. Occasionally I add the same signup form to the body of my blog posts. Previously when I have done this, the one from the sidebar has been removed and just the one in the blog post is displayed. I tried to do this yesterday and discovered that wherever I have done this, now neither signup form shows. I asked my tech guy to take a look and he found that whenever the shortcode for the newsletter signup form is included in a blog post, the HTML is being stripped from the code meaning it’s not displayed. He suggested I try adding the form to a blank page and embedding it in my blog post to fix the issue. I did this using Elementor and it didn’t work. My tech guy is fairly sure this is a bug as he doesn’t think any of the HTML should be being messed with. And he said he’s fairly sure it’s a WordPress bug not a plugin or theme bug. I am unsure how long this issue has being going on for. Has anyone else reported a similar bug? I’m using the latest stable version of WP." kmwade 1 47971 HTML markup bugs when using custom HTML editor Editor normal normal Awaiting Review defect (bug) new 2019-09-04T15:10:26Z 2019-09-04T15:52:30Z "Bonjour, Je hurle. Ca fait 10 versions que ce bug n'est toujours pas corrigé ! Quand on utilise à l'ancienne un seul champ pour les articles et pages et qu'on fait de l'édition HTML, l'éditeur rajoute des balises à la volée en ajax avant même que l'on est fini de terminer son code de fermeture de balise par exemple. Pire quand il manque une balise il fait des copier coller hallucinants de codes qui peuvent se répéter jusqu'à 10 fois partout : ce qui oblige à se retaper tout le code de la page pour enlever les dizaines d'ajouts inutiles mis à la volée par WordPress. Ce qui devait partir d'une bonne intention est en fait une catastrophe. Il n'est plus possible d'éditer le code html et à la moindre erreur toute la page est à refaire par le code rajouté.. Merci de corriger ce problème qui pour moi est très grave. Editer le code html à la main dans WordPress, c'est une base. Hello, I scream. It's 10 versions that this bug is still not fixed! When using an old field for articles and pages and making the HTML edition, the editor adds tags on the fly in ajax even before we are done finishing his code of tag closure for example. Worse when it misses a tag it makes copy glue hallucinating of codes that can be repeated up to 10 times everywhere: which forces to retype all the code of the page to remove the dozens of useless additions put on the fly by WordPress. What had to start from a good intention is actually a disaster. It is no longer possible to edit the html code and the slightest error the whole page is to be redone by the code added .. Thank you for correcting this problem which for me is very serious. Edit html code by hand in WordPress is a base." nantesweb 56813 Heading Block Margin Issue Editor 6.0.2 normal normal Awaiting Review defect (bug) new 2022-10-13T06:01:59Z 2022-10-19T16:16:24Z "I have checked the heading block WordPress latest version with the Twenty Twenty-Two theme. But the heading block left & right margins are not working. Screenshot of the issue: [https://prnt.sc/WLET9Xj4Adjc]" piyushpatel123 50443 Heading h2 rest api level Editor 5.4.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-06-22T00:26:00Z 2020-11-23T03:43:01Z "Во всех заголовках кроме h2, возвращаются нормальные атрибуты уровня. Не знаю с чем это связано. {{{ { ""blockName"": ""core/heading"", ""attrs"": [], ""innerBlocks"": [], ""innerHTML"": ""\n<h2>222222222222222</h2>\n"", ""innerContent"": [ ""\n<h2>222222222222222</h2>\n"" ], ""content"": { ""text"": ""222222222222222"" } }, }}} " zavod008 60075 Heading-Level Tooltip prevents from selecting a level Editor 6.4.2 normal normal Awaiting Review defect (bug) new 2023-12-14T18:54:34Z 2024-02-13T12:09:09Z "It now happened a few times that I wanted to change the heading level, but when the tooltip is visible, it is overlaying the next level, making it (sometimes) not clickable/selectable. [[Image(https://ekesto.com/wordpress/wp-content/uploads/2023/12/Screenshot-2023-12-14-at-19.48.37.jpg)]]" ekesto 59498 I18N issue in site editor Editor 6.3.1 normal normal Awaiting Review defect (bug) new 2023-09-29T10:02:37Z 2023-09-29T10:32:31Z "Hi, In the site editor, when a template or a template part, or even a style...is modified, the following message is displayed: ""Last modified a few seconds ago"". This string corresponds to: [https://translate.wordpress.org/projects/wp/dev/fr/default/?filters%5Bstatus%5D=either&filters%5Boriginal_id%5D=135&filters%5Btranslation_id%5D=131480] and as it's a variable we can't translate it. In french, for example, the message is ""Dernière modification il y a a few seconds"". In spanish, the message is ""Última modificación hace a few seconds"" We have a break in I18N here, due to this variable. Thanks for the modification. " jdy68 4 46964 "ID attribute value are used multiple times in ""Custom Field"" form" Editor 5.0 normal normal Future Release defect (bug) assigned has-patch 2019-04-17T13:34:14Z 2021-07-27T14:24:37Z "I have found that, ID attribute value like ""poststuff"" and ""postbox-container-2"" are used in multiple times in form of custom filed HTML. > Ex. id=""poststuff"" and id=""postbox-container-2"". I thought that, It will need to update for better coding standard & improve acessibility. Any suggestions are more welcomes...!!! " jankimoradiya 58759 Iframed block editor breaks printing some pre-registered scripts enqueued late Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-07-08T02:56:29Z 2023-07-08T02:56:29Z "https://core.trac.wordpress.org/changeset/56047/ changed the way scripts are loaded in the block editor which can have unexpected consequences for scripts that otherwise load successfully in other areas of wp-admin. This changeset broke enqueuing pre-registered scripts by handle, if the scripts were also registered beforehand. The following code can be used to demonstrate: {{{#!php <?php function register_my_script() { wp_register_script( 'test-script', '/foo.js' ); } add_action( 'admin_enqueue_scripts', 'register_my_script' ); add_action( 'wp_enqueue_scripts', 'register_my_script' ); add_action( 'wp_print_scripts', function () { wp_enqueue_script( 'test-script' ); } ); }}} The script is printed successfully globally across the site (wp-admin + front), including the editor in 6.2 and before. **Posts screen (404 shows script was printed)** [[Image(posts.jpg)]] **Block editor (no 404 and error in query monitor – script not printed)** [[Image(block-editor.jpg)]] Tested using revision 56164 as can be seen in the screenshot. Note, that the same script if registered on `init` instead is printed successfully in the block editor and Query Monitor shows the same ""missing dependency"" error. This shows that the change does not affect all pre-registered scripts but there is a matter of timing involved. Nonetheless, the above used to work so it is a breaking change. " aaemnnosttv 1 55884 Image aligned center disappears in the editor Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2022-06-01T01:46:52Z 2022-06-02T13:29:44Z An old bug returns. In the editor window, when you align an image to center, it disappears in the editor but still is visible when looking at the published page/post. See attached screenshot of the editor.[[Image(https://websentia.com/wp-content/uploads/2022/05/missingImageAlignCenter.png)]] stinkykong 1 31375 Image caption with heading adds an empty paragraph at page edits Editor 4.1 normal normal Awaiting Review defect (bug) new 2015-02-19T11:22:17Z 2020-11-24T06:11:30Z "Hi, I'm experiencing a problem when trying to use heading tags within image captions. Upon inserting (or editing) the image on a page, I wrote a heading before a block of text in the caption. The whole thing would look something like this: {{{ <h3>Heading here</h3>A block of text directly following the heading. }}} What happens is that every time I edit the page in any way (not even touching the image or image caption) there is an extra empty paragraph added to the caption text. That means that anything below the caption jumps one line further down at every edit. Just to see if this is some plugin conflict, I created a clean WordPress install without plugins, and tried the same thing. The problem was reproduced. Looking at the html code generated, there is a new <p></p> added at every page edit, and sometimes a couple of <br /> are inserted before the heading tags. Here is a link to my test site: [http://dev.webbkoncept.se/themetest/] I tried it using both themes twenty fourteen and twenty fifteen, experiencing the same bug." sweman 53154 Image in 'Media & Text' block not affected by 'Additional CSS class(es)' Editor 5.7.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-05-04T14:43:26Z 2021-05-19T13:55:30Z After the update, styles added to the image's 'Additional CSS class(es)' on the 'Media & Text' block no longer work. danieldau 1 49333 Image on text section of Media & Text block not displaying on front side Editor normal normal Awaiting Review defect (bug) new 2020-01-31T06:42:24Z 2020-02-19T20:45:01Z If we enable 'Crop image to fill entire column' option for Media & Text block, Image placed through Image block to the Text section of Media & Text block remains hidden on front end. ramizmanked 2 48796 "Image size reporting as ""thumbnail"" after most recent update" Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2019-11-26T15:53:35Z 2020-11-05T06:16:41Z "Recently, I noticed, when editing images in my existing blog posts, that the image size reported for all of the images on my blog is ""thumbnail"", when in fact, they were inserted into the post as ""large"" or ""full"". Is this a glitch that will be fixed? I hope so because there are old images in my blog, which were originally inserted incorrectly, and ARE in fact inserted as thumbnails. I correct these when I come across them in my editing, but now it's impossible to tell which ones are wrong because every image reports as being a ""thumbnail image"". Will this be corrected? " happy hooligans 56768 Images encoded with Base64 with a given string length appears weird in editor but kills the post render on the site Editor 6.0.2 normal normal Awaiting Review defect (bug) new 2022-10-09T08:26:27Z 2022-10-09T08:26:27Z "Dear Developers, I tried to put an image into one of my posts encoded with base64. The image is encoded from PNG to Base64 using macOS {{{ base64 -i input.png -o output.png.txt }}} command. The image converted and successfully edited in the related post image block by entering HTML editor and replaced the img src="""" with the following: {{{ <figure class=""wp-block-image aligncenter""><img src=""data:image/png;base64,<base64 long string>"" alt=""Alternate text"" /></figure> }}} When I switched back to preview mode, the image successfully displayed in the editor, however the post when published is broken. I have some screenshots from my blog site as well as the image as base64 file." burgatshow 45782 Images in blocks auto left align when centre align selected Editor 5.0.2 normal normal Awaiting Review defect (bug) new close 2018-12-27T22:25:43Z 2021-07-27T20:08:20Z When using Gutenberg block editor, images are automatically left aligning in preview and publish mode although in edit mode images are centre aligned. Confirmed in CSS code too. lifeadventurers 60527 Images with no title crash editor on hovor. Editor normal normal Awaiting Review defect (bug) new close 2024-02-13T15:46:25Z 2024-02-13T19:35:10Z "Issue seen in >= 6.3 Video of issue: https://youtu.be/wDxOzIeagBg Steps to reproduce: - Remove the title from an image in your media library - Go to editor screen, open media panel > images - Hover the image with no title" haykuro 1 54995 Impossible to type apostrophe in WP 5.9 + Twenty Twenty One theme Editor 5.9 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-01-30T09:02:25Z 2022-06-17T06:51:40Z "Working from a Chromebook with US international keyboard, the usual keys for typing single apostrophe ' and double apostrophe "" do not work in the Gutenberg editor." nmschaller 53968 In 5.8 Metaboxes hide post editor completely Editor 5.8 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-08-20T11:11:34Z 2021-09-10T15:21:29Z "In 5.8, when editing posts, pages or anything else, metaboxes hide the page title and the page content by default every time you open a post for editing. I use page as euphemism for all custom post types. Expected behaviour: metaboxes are below the page title and page content as is normal Current behaviour: metaboxes hide the title and the content, which cannot be edited without closing the metaboxes each time you open the page. The problem: 90% of the time the user wants to edit the title or content, most metaboxes are meant to be edited once and forgotten. browser: Safari, Mac OS" robertjakobson 6 54982 "In 5.9 (classic) post editor the author pulldown only lists users with ""edit_posts"" capability" Editor 5.9 normal normal Awaiting Review defect (bug) new dev-feedback 2022-01-28T21:52:56Z 2022-04-09T00:22:22Z "In WordPress 5.9 in the classic editor when editing a post, the “Author” pulldown only shows the administrators. In 5.8.3 it listed all of the authors (and contributors). Here’s the screenshot from 5.9 when using the classic editor: https://photos.app.goo.gl/zQjK441TmNKL2wJf9 It still shows all the authors (in 5.9) when I switch to the block editor. Here’s the screenshot using 5.9 with the block editor: https://photos.app.goo.gl/ZAiT1gdDHT9F6RLF7 In 5.8.3 it lists all of the Authors in the Author dropdown when using the classic editor: https://photos.app.goo.gl/qkyn4Bi3X3oDz3537 It looks like this was due to a change in the function post_author_meta_box in the file src/wp-admin/includes/meta-boxes.php It used to display all of the authors and contributors regardless of their capabilities and now it only displays users that have the ""edit_posts"" capability. Here's the commit that introduced the problem: https://github.com/WordPress/wordpress-develop/commit/0cf6d3e48d18b4e8cb932fa02bb82bf5de14a48c" joneiseman 59553 In Beta 6.4-beta2, when trying to add a row or container, I get the error Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2023-10-05T21:47:56Z 2023-10-30T18:16:41Z "This block has encountered an error and cannot be previewed. " texasfixer 45691 In Code View Bolded Text Has Strong tag wrapped around each character Editor 5.0.1 normal normal Awaiting Review defect (bug) new 2018-12-18T17:50:14Z 2018-12-19T17:03:48Z "When copying a word document over to create a new page, the formatting carries over...mostly. But when you look at the content in code view there are extra tags that is added which make the code look sloppy. Here is a sample of the extraneous code added when viewing the code; <p><strong>S</strong><strong>H</strong><strong>A</strong><strong>RING INFORMATION WITH ADVERTISERS </strong><strong>OR </strong><strong>OTHER THIRD </strong><strong>P</strong><strong>A</strong><strong>R</strong><strong>T</strong><strong>I</strong><strong>E</strong><strong>S</strong></p> Why is it adding a strong tag around each character? I am adding a screengrab of the Dev Tools and of WordPress 5.0 UI." codingsince007 55040 In WordPress 5.9 color palette overlap with circular color picker issue Editor 5.9 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-02-02T06:44:10Z 2022-02-03T09:40:45Z "In WordPress 5.9 color palette overlap with circular color picker issue are occured when we hover on circular color picker. I have attached screenshot for it." multidots1896 1 54439 In block editor for page/post setting, the 'P' not showing properly inside the drop-down Editor normal normal Awaiting Review defect (bug) assigned 2021-11-14T06:54:51Z 2021-11-14T18:05:33Z " Steps to reproduce: 1. Create/edit any page/post. 2. Go to settings and observe the drop-down value for the template. https://nimb.ws/IPKapT" pavanpatil1 2 30942 In quicktags settings, setting buttons to zero-length string doesn't give empty toolbar. Editor 4.1 normal normal Awaiting Review defect (bug) new has-patch 2015-01-07T16:48:15Z 2020-11-24T06:10:52Z "This issue was raised on WordPress stackexchange http://wordpress.stackexchange.com/a/174086/57034. If you set the buttons of the quicktags settings to a zero-length string, eg by using the `'quicktags_settings'` filter {{{ add_filter( 'quicktags_settings', function ( $qtInit ) { $qtInit['buttons'] = ''; return $qtInit; } ); }}} which typically results in the following setting in `tinyMCEPreInit` {{{ qtInit: {'content': id:""content"",buttons:""""},'replycontent': id:""replycontent"",buttons:""""}} }}} then quicktags just ignores it and uses the default buttons, due to this falsey test on line 263 of ""wp-includes/js/quicktags.js"" {{{ if ( settings.buttons ) { use = ','+settings.buttons+','; } }}} This can be worked around by using any non-falsey value in setting `$qtInit['buttons']` but that's somewhat non-intuitive. The proposed simple patch tests for string type so you can use `''` (and also tests for boolean `false` which is nice to have as well). {{{ if ( typeof settings.buttons === 'string' ) { use = ','+settings.buttons+','; } else if ( settings.buttons === false ) { use = ' '; // Any old truthy string. } }}} " gitlost 1 54587 In some gutenberg blocks the styles setting is not displaying image. Editor 5.8.2 normal normal Awaiting Review defect (bug) new 2021-12-06T12:41:51Z 2021-12-06T12:41:51Z "I am using the wordpress latest version and in all the themes, the gutenberg block having styles setting is not displaying img/text. Steps to reproduce: 1. Add Quote block. 2. Now in settings section the styles section has 2 options default and large. 3. But this both options are not displaying the image. I am attaching the images of this issue. Thank you." smit08 56744 Inaccuracy in user_can_richedit() function on /wp-includes/general-template.php Editor 6.0.2 normal normal Awaiting Review defect (bug) new needs-refresh 2022-10-06T03:45:14Z 2022-10-06T03:45:14Z "The user_can_richedit function assumes that the Editor can only be displayed for supported browsers, but it only considers known browsers (user-agent). Any others not known will be considered ""unsupported"" by the Editor. Below is the code snippet that handles this logic: {{{#!php <?php $wp_rich_edit = false; if ( 'true' === get_user_option( 'rich_editing' ) || ! is_user_logged_in() ) { // Default to 'true' for logged out users. if ( $is_safari ) { $wp_rich_edit = ! wp_is_mobile() || ( preg_match( '!AppleWebKit/(\d+)!', $_SERVER['HTTP_USER_AGENT'], $match ) && (int) $match[1] >= 534 ); } elseif ( $is_IE ) { $wp_rich_edit = ( strpos( $_SERVER['HTTP_USER_AGENT'], 'Trident/7.0;' ) !== false ); } elseif ( $is_gecko || $is_chrome || $is_edge || ( $is_opera && ! wp_is_mobile() ) ) { $wp_rich_edit = true; } } }}} The effect of this logic is that if the user-agent is not known, the Editor will be displayed ""broken"" in the graphical interface, as shown in the example below: [[Image(""https://resource.voelivre.com.br/wordpress_editor.jpg"")]] This is because in /wp-includes/class-wp-editor.php the print_default_editor_scripts function checks user_can_richedit to define the $settings variable that is used to load the editor settings according to the code snippet below: {{{ window.wp.editor.getDefaultSettings = function() { return { tinymce: <?php echo $settings; ?>, quicktags: { buttons: 'strong,em,link,ul,ol,li,code' } }; }; }}} This premise, of only considering the Editor compatible with known user-agents, can affect environments such as CloudFront from AWS because by default CloudFront uses the User-Agent ""Amazon CloudFront"" which is obviously not recognized by the user_can_richedit function and causes the breaking of the Editor without any notice to the user. I suggest that some message be included in the graphical interface informing that the Editor is not compatible with the specific user-agent, informing its name. Or that some specific message is created for CloudFront, informing about a bad configuration in the AWS environment. " tassiocoelho 60803 Include fonts directory in `get_space_used()` calculation Editor normal normal Awaiting Review defect (bug) new 2024-03-19T02:46:16Z 2024-03-19T11:37:00Z "As font files can be uploaded by users other than the network administrators on multisite installs, the `get_space_used()` function may need to be modified to include the new folder. This will ensure that all files are considered when calculating the amount of upload space available for individual sites on a multi-site install. This isn't super urgent in the early days of the font library so can wait until a 6.5 point release." peterwilsoncc 56310 Inconsistency when adding fonts to fontFamilies in wp_global_styles post Editor 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-07-30T07:49:46Z 2022-10-12T19:04:23Z "When fonts are added to the theme settings saved in a `wp_global_styles` post, they are processed differently by the FSE Global Styles editor than they are by `script-loader.php` The FSE Global Styles looks to see if the `fontFamilies` node exists and if it does then the fonts there are used to populate the ""Font Family"" dropdown in Global Styles overriding and ignoring any fonts outlined in `fontFamilies` in the theme's `theme.json` However, when the fonts are processed by `/wp-includes/script-loader.php`, the opposite happens ... the fonts in the `wp_global_styles` post are completely ignored and only the fonts in `theme.json` are added to `wp-webfonts` inline styles. I would have expected this to be consistent and for the fonts in the `wp_global_styles` post to be processed and for the ones in `theme.json` to be ignored as per the behaviour in the FSE Global Styles editor? Oliver" domainsupport 59149 Inconsistent Behaviour of Block Editor while Adding/Searching for Blocks Editor 6.3 normal normal Awaiting Review defect (bug) new dev-feedback 2023-08-19T05:56:17Z 2023-09-02T06:32:59Z "WP Version 6.3 I'm facing an strange issue while searching the fields from the block editor. When I'm at the end of page or when scroll to end of page then I'm trying to search a custom block it suddenly jump from its position. for details refer the below video url for same. https://www.awesomescreenshot.com/video/20061317?key=12384a49ae5e729e95556d9498c1a107 " dhruval04 1 56519 Inner blocks serialization bug in serialize_block function Editor 5.3.1 normal normal Awaiting Review defect (bug) new 2022-09-06T08:41:24Z 2022-09-13T05:53:18Z "Hi, The serialize_block function https://developer.wordpress.org/reference/functions/serialize_block/ fails when the number of inner blocks increases. The following custom function solved it for me. {{{#!php <?php function custom_serialize_block( $block ) { $block_content = ''; foreach ( $block['innerContent'] as $chunk ) { if ( is_string( $chunk ) ) { $block_content .= $chunk; } else { foreach ( $block['innerBlocks'] as $inner_block ) { $block_content .= custom_serialize_block( $inner_block ); } } } if ( ! is_array( $block['attrs'] ) ) { $block['attrs'] = []; } return get_comment_delimited_block_content( $block['blockName'], $block['attrs'], $block_content ); } }}} " saqibsarwar 2 38782 Insert/Edit link scrolling triggers AJAX requests for both (recent and search) rivers SergeyBiryukov Editor 4.6.1 normal normal Future Release defect (bug) reviewing 2016-11-14T14:57:00Z 2020-02-21T01:02:21Z "I noticed quite a number of insert/edit link related SQL queries. When testing the feature, I have noticed that in case a search keywords is typed into the search field and user scrolls down the results, not only the search river related AJAX is made, but also a recent river triggers an AJAX request. The behaviour currently looks this way: 1) opening the Insert/Edit link modal triggers following AJAX request: action: wp-link-ajax page: 1 2) putting in a keyword to search input triggers following AJAX request: action: wp-link-ajax page: 1 search: {keyword} 3) scrolling down the results of the search query produces two AJAX request: action: wp-link-ajax page: 2 and action: wp-link-ajax page: 2 search: {keyword} 4) as the search AJAX for page 2 returned `false`, scrolling up produces following AJAX only: action: wp-link-ajax page: 3 5) removing the keyword form the search input user is taken to the recent river which now already contains 4 pages of results Since this behaviour is producing a lot of SQL queries with an increasing offset, those queries are getting slow with increasing dataset. Shouldn't the implementation be triggering AJAX requests for visible river only?" david.binda 1 36159 Inserting Image on iOS Doesn't Respect Cursor Position Editor 4.2 normal normal Future Release defect (bug) new 2016-03-07T16:18:59Z 2019-06-05T07:07:40Z "When using Press This as a launch pad to edit a longer blog post, additional images added are inserted at the top of the post, rather than in the space in which the cursor has been placed. Here's a quick video displaying the issue. http://www.screencast.com/t/NtdCWRoJsWI " mrjarbenne 55058 Inspector Typography tools: Letter-spacing is misaligned next to Appearance Editor 5.9 normal normal Awaiting Review defect (bug) reopened has-patch 2022-02-03T07:13:17Z 2022-02-03T12:35:08Z "In WordPress 5.9 Editor Block Inspector typography settings components tool item letter-spacing and appearance select box alignment issues. " multidots1896 2 44617 Introduce new 'hasBlock' behavior for TinyMCE 'BeforeSetContent' and 'SaveContent' events Editor normal normal Future Release defect (bug) new dev-feedback 2018-07-20T13:21:23Z 2018-07-26T02:27:11Z "When TinyMCE editor content has Gutenberg blocks in it, we can assume `<p>` paragraph tags are included too. In this scenario, `wp.editor.autop()` should not be applied to the content. However, even when `wp.editor.autop()` isn't applied, TinyMCE applies `<p>` paragraph tags to all root nodes (e.g. the content of Shortcode Blocks). We can mitigate this behavior by stripping `<p>` paragraph tags from Shortcode Blocks on the 'SaveContent' event. From [https://github.com/WordPress/gutenberg/issues/4672 wordpress/gutenberg#4672]" danielbachhuber 59271 Issue With the Duotone filter With Image in Editor Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-09-02T07:06:23Z 2024-02-20T05:54:26Z "While Adding an Image & apply custom Duotone filter in it & choose custom Shadow & highlights to the image at that time image not display on front end with given shadows. It works in backend editor, But in frontend it doesn't work properly. refer below video form same https://www.awesomescreenshot.com/video/20433189?key=59d607fc51153fcb135dc6af3931b17c WP Version : 6.3 PHP Version : 8.0" dhruval04 1 54220 Issue with link tool in block editor Editor 5.8.1 normal normal Awaiting Review defect (bug) new 2021-10-04T22:30:42Z 2021-10-06T02:48:00Z After updating to 5.8.1, the link tool doesn't always work correctly. After I enter the text and press enter to add a link, it only links some of the words I highlighted. This is happening in Chrome on a Mac desktop. I haven't been able to recreate the issue on a PC. kristinelm 2 45620 Issues with WordPress 5.0 Editor normal normal Awaiting Review defect (bug) new 2018-12-13T10:54:40Z 2018-12-17T00:00:56Z "I have loved using WordPress over the last few years but cannot express how horrible this new version of WordPress is. It has made WP the least user friendly web editor in the universe... Here's a few of the things I find most irritating: Get rid of the multiple scrolling, including the ""Document"" panel on the right of screen (Permalinks, Categories, Tags etc) Preview button displays the existing published paged, not most recent edits Adding an image is more complicated, as is adding a link to media item such as a PDF document. Need to add a block, upload the PDF, copy the link, delete the block then create a hyperlink. Clicking the Use classic WordPress editor button doesn't work/no change Switching between visual editor and code editor involves more navigation. Please add it to the main tool bar If you preview a webpage it opens in the same tab as WordPress. Sometimes it is helpful easily view both the editor and the previewed page in order to make the required changes. Occassionally the Add hyperlink field is locked open, cannot close it, so it floats over the webpage being edited. Auto save can take too long. Even for a standard page of text with a feature image. " lccwgtn 2 48464 Issues with non-breaking spaces on Windows Editor normal normal Awaiting Review defect (bug) new 2019-10-30T11:01:40Z 2020-08-17T14:21:36Z "Hello, I recently noticed an issue with non-breaking spaces: when inserted with keyboard shortcuts (like `ALT+255` on Windows or `ALTGr+<` using an enhanced keyboard), they seem to be removed by WordPress (or not interpreted as such at all). We need to add them either by typing ` ` or by pasting it from an external file. Which is not very convenient. With @webaxones and @audrasjb we did some digging, here's what we found: 1/ It seems to appear only on Windows (tested on Windows 10) since JB tested it on his Mac and couldn't reproduce it 2/ It does not seem to be browser specific since we reproduced the bug on Chrome 78.0.3904.70 and Firefox 70.0; 3/ It's not plugin related since I've been able to reproduce it on a fresh install; 4/ It's not somehow Gutenberg related since I've been able to reproduce it on a totally random old version: WP 4.7.7 (fresh install as well, haven't tried with older versions); 5/ It may be related to #26842; 6/ Other shortcuts works fine; 7/ We tested the shortcuts on other browser-based editors (like Google Docs) and they work fine. As far as we know, it could be either (or both): - A very old issue with WordPress - A bug related to a change made in Windows or in browsers that affects how WordPress interacts with these shortcuts. Thanks, " peexy 14 19173 Issues with wp_editor() when used inside of a meta box. azaozz Editor 3.3 normal normal Awaiting Review defect (bug) reopened has-patch 2011-11-06T07:16:40Z 2021-07-07T18:20:53Z "I ran into a couple of obscure issues when adding an editor inside of a meta box. Errors are generated when moving the meta box around and then switching between the Visual and HTML editors. Also, the resize handle (.mceResize) is a bit too low when viewing the Visual tab when our custom editor has been added within a meta box. Tested in FF7 7.0.1 WPv3.3beta2 I'm adding the Editor within a meta box because it's the easiest way to add an Editor field type within the meta box/ CPT plugin I've made. It seems like it will be a common use case. Here's a simple plugin that adds an editor within a meta box. {{{ <?php /** * Plugin Name: WP Editor in a Meta Box * Plugin URI: * Description: Demonstration of WP Editor in a meta box. * Version: 1.0 * Author: goto10 * Author URI: * License: */ // file name: wp_editor-in-meta-box-test.php /* Meta box code based on http://codex.wordpress.org/Function_Reference/add_meta_box */ /* Define the custom box */ add_action( 'add_meta_boxes', 'myplugin_add_custom_box' ); /* Do something with the data entered */ add_action( 'save_post', 'myplugin_save_postdata' ); /* Adds a box to the main column on the Post and Page edit screens */ function myplugin_add_custom_box() { add_meta_box( 'wp_editor_test_1_box', 'WP Editor Test #1 Box', 'wp_editor_meta_box' ); } /* Prints the box content */ function wp_editor_meta_box( $post ) { // Use nonce for verification wp_nonce_field( plugin_basename( __FILE__ ), 'myplugin_noncename' ); $field_value = get_post_meta( $post->ID, '_wp_editor_test_1', false ); wp_editor( $field_value[0], '_wp_editor_test_1' ); } /* When the post is saved, saves our custom data */ function myplugin_save_postdata( $post_id ) { // verify if this is an auto save routine. // If it is our form has not been submitted, so we dont want to do anything if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; // verify this came from the our screen and with proper authorization, // because save_post can be triggered at other times if ( ( isset ( $_POST['myplugin_noncename'] ) ) && ( ! wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ ) ) ) ) return; // Check permissions if ( ( isset ( $_POST['post_type'] ) ) && ( 'page' == $_POST['post_type'] ) ) { if ( ! current_user_can( 'edit_page', $post_id ) ) { return; } } else { if ( ! current_user_can( 'edit_post', $post_id ) ) { return; } } // OK, we're authenticated: we need to find and save the data if ( isset ( $_POST['_wp_editor_test_1'] ) ) { update_post_meta( $post_id, '_wp_editor_test_1', $_POST['_wp_editor_test_1'] ); } } }}} '''Case 1:''' Steps to reproduce error:[[BR]] Activate test plugin.[[BR]] HTML tab is selected in our custom editor instance.[[BR]] Drag meta box containing editor around (ensuring the jQuery UI Sortable drop placeholder shows up, but the box does not need to be docked to a new location)[[BR]] Release the box[[BR]] Switch to the editor's Visual tab[[BR]] '''The following error occurs:''' j is null In file: /wp-includes/js/tinymce/wp-tinymce.php?c=1&ver=345-20110918 The top row of tinymce icons is also duplicated. Once the error occurs, we can no longer switch between tabs. '''Case 2:''' Steps to reproduce error:[[BR]] Activate test plugin.[[BR]] Visual tab selected.[[BR]] Drag meta box containing editor around.[[BR]] Release the box.[[BR]] switch to the editor's HTML tab.[[BR]] '''The following error occurs:''' Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIDOMHTMLDocument.implementation] In file: /wp-includes/js/tinymce/wp-tinymce.php?c=1&ver=345-20110918 Note: It may take a couple of tries when switching between visual/HTML tabs to trigger the errors. Sometimes the errors won't happen, but usually they do." goto10 1 58145 JS error: Uncaught ReferenceError: Element is not defined Editor 6.2 normal normal Awaiting Review defect (bug) new 2023-04-17T13:20:21Z 2023-11-22T12:35:42Z "I've got a console error on editor level uncaught ReferenceError: Element is not defined file: wp-polyfill-inert.js line:30 {{{ (function () { // Return early if we're not running inside of the browser. if (typeof window === 'undefined') { return; } // Convenience function for converting NodeLists. /** @type {typeof Array.prototype.slice} */ var slice = Array.prototype.slice; /** * IE has a non-standard name for ""matches"". * @type {typeof Element.prototype.matches} */ var matches = Element.prototype.matches || Element.prototype.msMatchesSelector; }}} suggestion {{{ (function () { // Return early if we're not running inside of the browser. if (typeof window === 'undefined' || window?.Element) { return; } // Convenience function for converting NodeLists. /** @type {typeof Array.prototype.slice} */ var slice = Array.prototype.slice; /** * IE has a non-standard name for ""matches"". * @type {typeof Element.prototype.matches} */ var matches = Element.prototype.matches || Element.prototype.msMatchesSelector; }}} " jankyz 6 45527 Jumping Cursor in Gutenberg Editor Editor 5.0 normal normal Awaiting Review defect (bug) new 2018-12-07T19:22:15Z 2020-05-28T03:37:48Z "While typing in a block / paragraph, the cursor jumps to the ''beginning'' of the paragraph. It happens while autosaving or language-correction. I testet Firefox 63, Edge and Chromium (all Windows 10). All WordPress-plugins were disabled, alls browser-plugins disabled. No mouse-movement at this moment, no keybord-buttons pressed. This problem happens since the 5.0 update. Video of the problem: [https://youtu.be/yJ2qSLq9hMs] In the video: I type some text and wait. While waiting the cursor jumps to the start of the paragraph. If I go on writing, the text is written at the beginning." pascalts 2 46153 Leading space after past text from docx Editor 5.0.3 normal normal Awaiting Review defect (bug) new 2019-01-31T01:09:31Z 2020-08-24T23:36:55Z "Please copy and past text from atatchment to block editor. You will see space before every text line. " alexufo 3 52621 Leave site? / Save alert Editor 5.6.2 normal normal Future Release defect (bug) new 2021-02-23T09:09:57Z 2021-06-02T05:00:57Z "The pop up alert for ""Changes may not be saved"" is still present in 5.6.2 Site example: The classic editor plugin is installed on the site, Gutenberg is disabled completely Custom post types which don't have the WYSIWYG editor on still have this message appearing. This bug was introduced in 5.6.1 and said to be fixed in 5.6.2 - it's still in the codebase " garbagedisco 1 41130 Link boundaries for links contaning images look bad Editor 4.8 normal normal Future Release defect (bug) new 2017-06-22T18:31:40Z 2017-11-20T22:59:27Z "In 4.8, the new link boundaries were introduced. For normal links they are fine and they highlight the link really nice. But if there's an image (inline-block element) in the link, the link boundaries look quite ugly. This is the case when you embed an image from the media library. The following code was used to generate the screenshot: {{{ [caption id=""..."" align=""alignnone"" width=""300""]<a href=""IMAGE_FILE""><img class=""size-medium ..."" src=""IMAGE_FILE"" alt=""Test"" width=""300"" height=""200"" /></a> Test[/caption] }}} If you click on the image, two narrow link boundary markers appear above and below the image (see screenshot). These are taking up extra vertical space, so the image 'jumps' a bit. Maybe it would be the best to disable the link boundary feature for links containing only images, in my opinion they don't provide any useful information and may irritate the user." mahu2401 1 50129 Link edit modal displayed over Featured image modal Editor 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-08T10:58:53Z 2020-05-08T13:16:14Z "Hi, When i was adding new post in admin side then media popup on showing editor link box. More information see mention screenshot. Thanks" sumitsingh 52601 Link validation issue on TinyMCE using Classic Editor Editor 5.6 normal normal Awaiting Review defect (bug) new 2021-02-22T15:25:49Z 2021-05-27T15:20:20Z "Just spotted a small issue on Classic Editor, during the 5.6.2 release party. New links seem to have a `data-wplink-url-error=""true""` attribute after they are inserted. It’s ok after the post is saved." audrasjb 59228 Links in 6.3 missing new window.nofollow.etc Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-08-28T18:01:09Z 2024-01-25T21:05:12Z "Hi Updated to 6.3 and when adding a link can add the link but there is no option for new window, nofollow, etc like before. I assume it is just missing not intentionally so passing it on. I can add it with code using the code editor but not as easy. Thanks in advance" tradiecorp 57004 Lost custom colours Editor normal normal Awaiting Review defect (bug) new 2022-11-04T20:43:02Z 2022-11-04T20:43:02Z "Using WP 6.1 running twenty twenty three theme and no plugins. I set custom colours, which then disappear when I do this: Set up custom colour, save view the site, edit the site, custom colours still there. However, if I go and edit the style json file (only a minor change - so no errors in json file), then I load the changed json style, then save, view site and edit site again ... the custom colours are not there. (I don't know where custom colours are kept - so I've assumed this may be a bug, rather than by design?) Thanks Alasdair" alasdair105 54051 Making a sentence or paragraph bold is intermittent Editor 5.8 normal normal Future Release defect (bug) new 2021-09-01T13:16:09Z 2021-11-02T15:39:00Z When I highlight a sentence and attempt to bold it, only part of the sentence gets bold. I then highlight and press bold again and might get the full sentence bold. Sometimes I have to go through this process a number of times to make the sentence bold. This slows me down and is a bug. MikeLev 52475 Metaboxes unable to be moved to side panel anymore? Editor 5.6.1 normal normal Awaiting Review defect (bug) new 2021-02-09T02:59:23Z 2021-02-19T07:09:23Z "Hi community, I am not entirely sure if this falls under WP or Gutenberg but at some point during recent updates moving metaboxes between main Gutenberg main screen and side panel stopped working. Before, you were able to click on this button to move metaboxes between main content and side panels. Now in some cases it still works, however, it seems like when you move all metaboxes to the content, that's where it's stuck (like on the image) and you can't move them around anymore. Both first and last metabox have their arrows going out disabled. [[Image(https://snipboard.io/JZBTPh.jpg)]]" rklis 45558 Move _draft_or_post_title() from wp-admin/includes to wp-includes Editor 5.0 normal normal Future Release defect (bug) new dev-feedback 2018-12-09T21:47:23Z 2019-04-08T06:38:33Z "In the WordPress 5.0 release package, the `wp_latest_comments_draft_or_post_title()` and `render_block_core_latest_comments()` functions don't exist because they were overwritten during `npm install` in the build process. That's because the changes from https://github.com/WordPress/gutenberg/pull/12326 were manually added to core, before that PR was merged (which happened today). Instead, we have `gutenberg_draft_or_post_title()` and `gutenberg_render_block_core_latest_comments()` in core now. That's certainly less than ideal. Not only because the prefix is wrong, but also because `gutenberg_draft_or_post_title()` / `wp_latest_comments_draft_or_post_title()` duplicated the existing `_draft_or_post_title()` function. We should fix this as soon as possible, before people try to use `gutenberg_` prefixed functions in their projects. That function was duplicated in Gutenberg because they didn't want to include admin functions in front-end facing code, which makes sense. Suggested solution: 1. Move `_draft_or_post_title()` to `wp-includes/template.php` 2. In the `block-library` package in Gutenberg, rename `wp_latest_comments_draft_or_post_title()` / `gutenberg_draft_or_post_title()` from `latest-comments.php` to `_draft_or_post_title()` and add a `function_exists()` check. This way, nothing should break. 3. Use that function in `render_block_core_latest_comments()` Alternatively to step 2, Gutenberg should just bump the minimum WP version to 5.0.1, which makes sure the `_draft_or_post_title()` function is available at all times. Benefits: 1. No duplicated code. 2. No `gutenberg_` prefixes in core" swissspidy 51323 Multiple Reference Id backend issue in Inner block component Editor normal normal Awaiting Review defect (bug) new 2020-09-16T11:44:19Z 2020-09-18T14:45:52Z "We want to show multiple inner blocks on backend in same block. For example, If we have one widget and in to that, If we want to use two reusable blocks. We need to add two values. But, Currently, It shows just one value in backend. In frontend, It works fine because we have PHP based rendering. In backend, It show same reusable multiple times, even if we have selected different reusable blocks. You can check in screenshot about reference id. https://ibb.co/R0Pw6wK" posimyththemes 2 53047 "My ""Posts"" page (when a static front is selected) uses the old editor" Editor normal normal Awaiting Review defect (bug) reopened has-patch 2021-04-16T02:12:40Z 2021-05-18T20:42:44Z "I'm using WP 5.7.1. Very strange, minor bug: Every page, except my Posts page, uses the Gutenberg editor. I'm told on the support forums that this is not normal. The Posts page, when I enter Edit, calls up what looks like the previous-generation editor. This persists when all plug-ins are deactivated. It even persists on another of my sites, which uses a completely different WP installation. Unfortunately, I don't know how this can be reproduced, since I can't make it NOT happen. Let me know what other info I can provide! " DavidSortOf 59511 Navigation Block issue Editor 6.3.1 normal normal Awaiting Review defect (bug) new 2023-10-01T16:20:25Z 2023-10-28T05:02:20Z While trying to add and edit description or any metadata on nav items. As soon as I press any key, it gets refresh. amitpomu 56054 Need to add some gap between input and range slider in Avatar block Editor 6.0 normal normal Awaiting Review defect (bug) new 2022-06-23T12:28:02Z 2022-06-24T07:44:53Z "While selecting avatar block if we change the border-radius from range slider at the 0th point the range slider pointer is touches to input box.So we need to add some gap between them. " multidots1896 1 55886 Need to check query loop block thumbnail issue in post template Editor 6.0 normal normal Awaiting Review defect (bug) new 2022-06-01T07:13:26Z 2022-06-08T07:35:20Z "In wordpress 6,We need to check query loop block thumbnail issue in post template row and stack arrangement.In both arrangment default post thumbnail width are not full width.So we need align it in full width. Below i have shared video link: https://share.cleanshot.com/kQrdSKDzVfIiK19MeHsh" multidots1896 57889 New Post Creation Page (Group Block CSS Issue) Editor 6.1.1 normal normal Awaiting Review defect (bug) assigned close 2023-03-08T18:24:33Z 2023-03-09T08:42:59Z "Hi I am having this issue, every time a try to create a new post I see this error/warning in the console. I am confused if this is coming from a mistake I've done or is something else. Tested different browsers and still get the same error: {{{ blocks.min.js?ver=69022aed79bfd45b3b1d:10 Block validation: Block validation failed for `core/group` ({name: 'core/group', icon: {…}, keywords: Array(4), attributes: {…}, providesContext: {…}, …}). }}} Content generated by `save` function: {{{ <div class=""wp-block-group alignfull has-contrast-color has-text-color"" style=""margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--50)""></div> }}} Content retrieved from post body: {{{ <div class=""wp-block-group alignfull has-contrast-color has-text-color"" style=""min-height:40vh;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--60);padding-right:var(--wp--preset--spacing--50);padding-bottom:var(--wp--preset--spacing--60);padding-left:var(--wp--preset--spacing--50)""> </div>[[Image([[Image([[Image([[Image([[Image()]])]])]])]])]] }}}" ivomaz 1 56652 New Template Part block content isn't saved when saving a post draft in 6.1 Editor 6.1 normal normal Awaiting Review defect (bug) new close 2022-09-25T18:42:35Z 2022-11-18T05:25:36Z "When adding a new ""Template Part"" block to a post in the block editor, any content that's added to that block isn't saved when the user saves a draft of the post; it only saves if a user clicks Publish. After saving a draft and refreshing the screen, the content is replaced with an empty Template Part block that can't be edited. Steps to reproduce: 1) Create a new post. 2) Add a ""Template Part"" block. 3) Select ""Start blank"", and give the template a name. 4) Within the template block, create a paragraph block and add some text. 5) Save the post draft. 6) Refresh the page. An alert will pop up confirming you want to leave the page with unsaved changes. After the page refreshes, there's an un-editable empty template block as in the attached screenshot. I'm using 6.1 Beta 1 with no active plugins on MacOS in both Chrome and Safari. Tested with Twenty Twenty-Three, Twenty-Two, and Twenty-One. " ashleyleia 1 50216 On the bug of replace_editor Editor 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-21T06:09:02Z 2021-02-09T07:19:43Z "I'll submit a suspected bug, replace_editor seems that editor's hook will load twice when loading the existing articles, which makes me have to deal with the code. In wp5.3, I have to use js to delete the unnecessary DOM, and at the same time, my katex's auto renderer cannot work properly (browser recognition is executed in weird mode). In wp5.4.x, because $post is null in this case, I can directly return through judgment. But this is not normal. I will send the message to the core channel at the same time." jack960330 42028 On-screen elements missing or dead in Mac OS 10.13 and Google Chrome Editor 4.7.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-09-29T03:17:26Z 2020-09-23T05:41:57Z "There are some bizarre bugs that appear when using Chrome (current version, Version 61.0.3163.100 (Official Build) (64-bit) as well as Chrome Canary (Version 63.0.3225.0 (Official Build) canary (64-bit) ) and WordPress 4.7.4, which include a) If I create a link then try to edit it so I can set the ""load in new tab"" check box, the page will ""freeze"" (become totally unresponsive, refusing to acknowledge clicks or scrolling, until I reloaded the Wordpress page) b) My ""edit snippet"" section is missing, requiring me to load this page in Safari to set the snippet. Relatedly, I am pretty sure setting a focus keyword in Chrome will not cause it to be saved, since I set it but then it was blank when the article was loaded in Safari. c) Perhaps most frustratingly, the Visual and Text tabs are nonfunctional in Chrome. I cannot access the page source, which I need for various scripts, as I should be able to. Please fix ASAP! Enclosing screenshots of the nonfunctional elements. [[Image(https://s3-us-west-2.amazonaws.com/megumi.img/ScreenShot2017-09-29at12.08.15PM.jpg)]] [[Image(https://s3-us-west-2.amazonaws.com/megumi.img/ScreenShot2017-09-29at12.10.42PM.jpg)]] [[Image(https://s3-us-west-2.amazonaws.com/megumi.img/ScreenShot2017-09-29at12.12.22PM.jpg)]]" ppayne 1 58815 Opinionated styles (add_theme_support(wp-block-styles)) set margin top to 0 for image and other blocks Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-07-16T23:53:36Z 2023-08-23T07:36:52Z "Is `add_theme_support('wp-block-styles')` being deprecated in WP 6.3? If not, maybe it needs to be updated. The extra block styles include margin settings, for example {{{ .wp-block-image { margin: 0 0 1em; } }}} This is done for image, audio, embed, table or video blocks. The top margin styling is overridden in WP 6.2 by styles with targeting such as {{{ body .is-layout-flow > * + * { margin-block-start: var(–wp–preset–spacing–normal); } }}} so the blocks get the `margin-top` which they require as per the page layout. However, WP 6.3 changes the targeting of these styles to, for example {{{ :where(body .is-layout-flow) > * { margin-block-start: var(–wp–preset–spacing–normal); } }}} This is less specific, with the result that the `wp-block-styles` margin setting overrides it and will set the margin-tops to 0 for the above blocks. This will affect existing content on many sites which use this `add_theme_support` and these blocks. Twenty twenty-two theme is an example. To test, create a page with a paragraph followed by an image, in twenty twenty-two theme." aileenf 1 29643 Ordered List Problem When Switiching between Visual Editor and HTML editor Editor 4.0 normal normal Awaiting Review defect (bug) new 2014-09-12T14:24:40Z 2021-07-05T17:13:00Z "1. I create an ordered list in the Visual Editor. 2. I switch to the HTML editor so I can add a paragraph of text (or an image) within the ordered list, but NOT inside a list tag. 3. I return to the Visual Editor and notice something doesn't look right. 4. I go back to the HTML editor and see that my ordered list is now all messed up. Extra ordered list tags have been added that I don't want. Here's the code from the HTML editor BEFORE I switched back to the Visual Editor: {{{ <ol> <li>Ordered list item 1</li> Block of text inserted into list but not inside an li tag. <li>Ordered list item 2</li> <li>Ordered list item 3</li> <li>Ordered list item 4</li> </ol> }}} Here's the code after switching to the Visual Editor and then back to the HTML editor: {{{ <ol> <ol> <li>Ordered list item 1</li> </ol> </ol> Block of text inserted into list but not inside an li tag. <ol> <li>Ordered list item 2</li> <li>Ordered list item 3</li> <li>Ordered list item 4</li> </ol> }}}" pavankumarp 59170 Overlapping text when posting using iPhone Editor 6.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-08-23T09:27:02Z 2023-09-05T16:30:50Z "I have a website and I always get article submissions from authors, they write using Microsoft Office (maybe they use a bit older version, because the new 365 desktop version has no problem), on my iPhone I open the article using Office 365, and a strange thing happens : 1. If I use a block editor, the text will overlap 2. If I use the classic editor, many spaces are lost so that many words are attached without spaces. here I provide you an example of overlapping text: [https://drive.google.com/file/d/1c167tWdPd6k_n7_tWeRwi-9qOmgZ34nr/view?usp=sharing] the website is freshly installed using twenty twenty three theme." readonecc 54113 Override core/gallery block Editor 5.8.1 normal normal Awaiting Review defect (bug) new 2021-09-12T17:34:11Z 2022-01-31T09:45:08Z "Hello, I did override the core block for the gallery using in my ''functions.php'' file : {{{#!php <?php function my_register_gallery() { unregister_block_type('core/gallery'); register_block_type( 'core/gallery', array( 'render_callback' => 'my_gallery_render', ) ); } add_action( 'init', 'my_register_gallery', 10 , 1 ); }}} It was perfectly working, but since a few days (I did the last update of wordpress 5.8.1), and maybe a little bit before, but I am not totally sure, I have an issue : If I use the ''unregister_block_type'' function I cannot override it with ''register_block_type'' and the block disappear in the editor. And a strange thing occurs, I have this message on the former existing gallery blocks : {{{ Your site doesn’t include support for the THRON block. You can try installing the block, convert it to a Custom HTML block, or remove it entirely. }}} If I don't use ''unregister_block_type('core/gallery');'' before, I have this message : {{{ Notice: WP_Block_Type_Registry::register was called incorrectly. Block type ""core/gallery"" is already registered. Please see Debugging in WordPress for more information. (This message was added in version 5.0.0.) in /Users/the_user/wordpress_folder/wp-includes/functions.php on line 5663 }}} All of that was working before with no alert. I tried with all my plugins deactivated, and with removing all my function.php files actions. " lohic 1 52592 PHP notice when the label property is missing from register_block_style Editor 5.3 normal normal Awaiting Review defect (bug) new 2021-02-22T08:43:03Z 2021-02-22T08:43:03Z "If I register a block style using the PHP function {{{register_block_style}}}, and I leave out the label property, there is a PHP notice: {{{ Notice: Undefined index: label in /var/www/src/wp-includes/script-loader.php on line 2312 }}} The label is required, but the class does not check if a label exists or not, see: https://core.trac.wordpress.org/browser/tags/5.6.1/src/wp-includes/class-wp-block-styles-registry.php#L43 In comparison, if I leave out the {{{name}}} property, a {{{_doing_it_wrong}}} message is shown. I think a {{{_doing_it_wrong}}} should be shown for the label too. Steps to reproduce the issue: Register an incomplete block style in a theme or plugin file using register_block_style. {{{ register_block_style( 'core/quote', array( 'inline_style' => '.wp-block-quote.is-style-blue-quote { color: blue; }', ) ); }}} Confirm that the doing it wrong message for the name is showing. Add the name property: {{{ register_block_style( 'core/quote', array( 'name' => 'test', 'inline_style' => '.wp-block-quote.is-style-blue-quote { color: blue; }', ) ); }}} Open the block editor. Confirm that a PHP notice for the label is showing. " poena 56195 Padding issue in Post Title Block Editor 6.0 normal normal Awaiting Review defect (bug) new close 2022-07-11T12:36:51Z 2022-07-12T00:27:44Z "Hello Team, In Twenty Twenty Two Theme, when we add Post Title block in editor side and after that applied background color for that, we can see there is some padding but in Frontend side the padding is not reflected. For more information, please find video below: Video URL: https://share.cleanshot.com/28JCrp2bbSPC7aT2i2d5 Thank you." varshil151189 3 46264 Page attributes 'ORDER' does not saving data for post-type 'post'. Editor 5.0 normal normal Awaiting Review defect (bug) new has-patch 2019-02-17T11:06:28Z 2024-02-20T10:15:46Z "I used {{{ add_post_type_support()}}} function to support 'page-attributes' for Menu Order at post-type 'post'. {{{#!php <?php function prefix_add_posts_order() { add_post_type_support( 'post', 'page-attributes' ); } add_action( 'admin_init', 'prefix_add_posts_order' ); }}} When I save the post after putting an integer value in the Order field then no value is saving on 'wp_posts' table 'menu_order' column and it does not also update on the editor page. But when I switch to TinyMCE editor it's working fine. " tanvirul 48311 "Page removal in wp clean install ""The response is not a valid JSON response""" Editor 5.2.4 normal normal Awaiting Review defect (bug) new 2019-10-15T15:50:28Z 2019-11-11T22:29:49Z "Question to hosting provider support bug launch conditions: Clean wp install today, basic Theme, no plugins. Created test site can not be removed from editor - ""The response is not a valid JSON response"" response."" The page can only be removed from wp pages overview. Sorry for my talk awkwardness (i have no idea what is it about just forwarding) Vladimir extasica.com bug report cause from hosting provider: we found a bug in WordPress itself, when pressing the ""Remove"" button is sending a POST request to the webserver with JSON data, but they do not have the correct end. The data includes an EOF character (the end of the file - this should end the data), followed by another character - n (new line). Therefore, the JSON parser crashes in our Modsecurity application firewall and the application receives a ""The response is not a valid JSON response"" response. Original Czech hosting provider text ""nalezli jsme chybu v samotné aplikaci WordPress, kdy po stisknutí tlačítka ""Odstranit"" je odeslání POST požadavek do webserveru s JSON daty, která však nemají správný konec. Součástí dat je znak EOF (konec souboru - tímto by měla data končit), za kterým ale následuje ještě další znak - n (nový řádek). Z toho důvodu JSON parser v našem aplikačním firewallu Modsecurity zhavaruje a aplikace obdrží odpověď ""The response is not a valid JSON response""." motmat 1 55039 Page template automatically changed when page is reload Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2022-02-02T06:36:21Z 2022-02-02T08:08:26Z "I am noticing some issues with page and post templates in production site. If I make an update on a page or a post that has a specific template, it reverts back to ""default template"". Example: This page should have ""Card Review"" template, but it has automatically changed to ""default template"". If template is changed, it reverts again to ""default template"" after page reload. This is not normal behavior. I have already updates wordpress version. current version is 5.9. Thanks & Regards, Sapna Vaghela." sapnamonocept 57443 Page template label sticks to default Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2023-01-11T13:32:01Z 2023-01-18T00:51:59Z "After changing the template in the wordpress editor, ""Default Template"" stays as the template label (despite the template has been changed and everything else works fine). https://ibb.co/Vjsx719" permanyer 1 58720 Page-Specific template in Site Editor detaches itself from the page when page slug is updated. Editor normal normal Awaiting Review defect (bug) new 2023-07-05T19:15:26Z 2023-10-31T03:16:11Z "If the page slug is updated, the Page-Specific template that was created within the Appearance > Editor section will detach itself from the page.\\ \\ **Steps to Reproduce**\\ 1. Create a new page.\\ 2. Create a new page-specific template within Appearance > Editor specifically for the page you created.\\ 3. Change the slug (URL) of the newly created page.\\ 4. Upon changing the slug, you will notice that the page-specific template becomes detached from the page, meaning it is no longer associated with it." talhaqureshi 2 49193 Parent Page selector not available in Page Attributes when using Block Editor Editor 5.3.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-01-14T03:35:40Z 2021-01-13T17:58:53Z "We're running a multisite with around 190 child sites on it. When our users are using the block editor, the ""Parent Page"" drop down selector does not appear within the Page Attributes box. I've tried using the default wordpress theme - same result. Our test platform, on the same server with an identical configuration and plugin set but which only has a couple of child sites is not experiencing this problem - however, it does take a couple of seconds for this individual dropdown selector to load. The other diference is that the multisite where the issue exists is showing an error in developer tools that says ""Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 6 " Brandicoot 52876 Parent-Attributes Editor 5.7 normal normal Awaiting Review defect (bug) new 2021-03-21T09:36:09Z 2021-03-25T18:38:23Z "I have 4 websites running on WordPress for at least ten years and have never had cause to complain, I am in the process of rebuilding them all, the site I am doing at the moment had approx. 300 pages containing 3500 vintage photographs and it was no problem at all for about the last six years. I have now reached 210 pages and suddenly I could not assign a parent page in the attributes section, the only items were Home & About us, I also noticed that the parents were very haphazardly sorted before they disappeared. I believe this is due to the Gutenberg Blocks system, I have tested this site with the Classic Editor and there is no problem except I have now built over half the site and cannot proceed with the Classic Editor as i have built a specific page template with blocks and it does not work with Classic. To say I am annoyed is an understatement, I have wasted a lot of time trying to sort this out, if Gutenberg is so wonderful how come it cannot perform simple mathematical calculations, WordPress doesn’t seem to have the problem, I only have to look at Quick Edit and all the parents are available, any suggestions before I go bonkers would be welcome, and yes I know I can work around it with Quick Edit but that is not the point. I was advised by Joy to test while using the Health Check plugin in Troubleshoot mode to disable plugins/theme, which I did and used the default theme but the problem was still there. The parent attributes section was still fine in quick edit mode." mikesimages 2 59310 Parse blocks being applied unnecessarily Editor 5.3.1 normal normal Awaiting Review defect (bug) assigned has-patch 2023-09-07T13:03:47Z 2024-02-05T22:01:16Z The filter `wp_pre_kses_block_attributes` is applied to any field that runs through `wp_kses_hook`. Any fields on any object field that is run through `wp_filter_kses`. This includes fields like comment_author_email, user_email, term_name and user_last_name. It is extremely unlikely that these text fields will contain block data. This filter should be changed. spacedmonkey 53517 Pasting Text Editor normal normal Awaiting Review defect (bug) new 2021-06-25T16:46:08Z 2021-06-25T16:54:54Z "Each week, I update two text blocks on two separate website pages. On the first page, I manually update the text box. After updating the page, I click in the text box, ctrl A, ctrl C and move to the next web page to be updated. I click into the text box on the second page, ctrl A, ctrl V For months, the results have been that the first line has a single space before the first word. The last couple of weeks though, the results have been different. Today when I did the same, the paste was missing whole lines of text. I do not have this happening anywhere else on my work station computer. This problem began in 2020. " pastor.healer 1 51410 Patterns examples Editor 5.5.1 normal normal Awaiting Review defect (bug) new has-patch 2020-09-29T09:29:27Z 2020-09-29T16:17:05Z "Hi, There is no more patterns tab in Gutenberg menu if you doesn't create one pattern. No more pattern examples." eddystile 1 54913 Post / Update Post button does not work Editor 5.9 normal normal Awaiting Review defect (bug) reopened 2022-01-26T05:18:55Z 2022-02-02T12:21:48Z "Hi, After updating the WordPress, I can no longer click on publish a new post or update the existing post button. Kindly fix it, I am downgrading the version for now. Reference SS: https://prnt.sc/26jfhco Regards," couponzania 53037 Post Attributes UI issue in page list Editor 5.7.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-04-15T06:51:35Z 2022-05-25T10:25:02Z "Hi Add new page in UI issue.So how we can fixed this? Also i think we need to update ""Post Attributes"" to ""page Attributes"" . like post type name with Attributes. you can think about last suggestion. Thank you." sumitsingh 57965 Post Featured Image block on a Single template doesn't have explicit width and height Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2023-03-21T18:07:28Z 2023-03-23T02:24:27Z "Post Featured Image block on a Single template doesn't have explicit width and height. (BTW, in an Archive context, the Post Featured Image block does have width and height) See screenshots: [[Image(https://drive.google.com/file/d/1K1HWVCXvvj0zEXxU9QPPPdB6rgwwhvKQ/view?usp=drivesdk)]] [[Image(https://drive.google.com/file/d/1bEC9CjdIvgDMRMzQgUJHTu1LP08EJ3jN/view?usp=drivesdk)]]" asafm7 46389 Post Form Code Editor Issue Editor 5.1 normal normal Awaiting Review defect (bug) new has-patch 2019-03-01T11:29:05Z 2020-11-12T06:02:03Z "I saw this on my mobile. When I switched to code editor then the title box and content box got cut and there was a scroll bar to scroll left-right, but this is fine with the visual editor. Please see: https://uploadfiles.io/jgnls" prashantvatsh 56578 Post date block color setting is not reflecting in editor and front side Editor 6.0.1 normal normal Awaiting Review defect (bug) new close 2022-09-15T10:18:10Z 2022-09-20T20:11:39Z "Twenty Fifteen: Post date block color setting is not reflecting in editor and front side. 1)Install Twenty Fifteen Theme. 2)Add Post Date block 3)Enable link to page setting and changing the color from settings. Here is recording:[https://share.cleanshot.com/T6EEHXMZtsE6QSqnYTQI]" multidots1896 5 29838 Post editing area: keyboard accessibility, tab order and focus joedolson* Editor 4.0 normal normal 6.6 defect (bug) accepted 2014-10-02T16:27:31Z 2024-02-20T12:42:59Z "This ticket aims to focus on a specific area of the UI, let's call it ""Post editing area"", the one that starts with the ""Title"" field and ends with the editor area, both in ""Visual"" and ""Text"" mode. Related: #27553 while researching we noticed: > '''joedolson''': outstanding issues surrounding tab order, but this are long-standing and not relevant to this specific patch and issue; that needs to be raised separately. There's room for accessibility improvements here, especially when it comes to tab order and focus management. To fully understand what's going on you should stop for a while being a ""nervous clicker"" :) and: - apply the patch from #27553 - unplug your mouse and disable your trackpad :) - use just your keyboard - tab around, both forwards and backwards It would be great to test also switching off your display and using a screen reader, I would recommend Firefox and NVDA. Two main issues: Focus. When you're in the ""Title"" field and then you tab forwards, focus is moved directly inside the editor area skipping all what's in between. While this *may* be useful for sighted keyboard users (they save a few key presses, say 1 second?), it's a very critical experience for screen reader users: when they tab forwards, they get that right after the title there's the editor. But when they tab backwards, they get many more elements that ""weren't there before"". [https://core.trac.wordpress.org/ticket/27553#comment:17 more details on 27553 comments]. Tab order. The ""tabbing experience"" in Visual and Text mode should match as much as possible. Ideally, there should be a better [http://www.w3.org/WAI/GL/2014/WD-WCAG20-TECHS-20140902/G59 logical sequence in the markup]. When editing the title, the next logical step is editing the content, all the other controls (Add Media button, additional buttons provided by plugins and themes, etc.) should not be placed between the Title and the editor. The CEUX project proposed something similar at some point. There is ongoing research and development on the editing experience, see for example Editor Focus/DFW in #29806 and the idea to review relevant parts of the UI, see [https://make.wordpress.org/core/2014/10/01/agenda-for-october-1st-dev-chat/#comment-19392 explore moving the Publish | Save | Preview buttons out of the metabox, etc.] so it would be a great opportunity to explore this ticket too." afercia 58095 Post featured image block use full size image => huge impact on performance Editor 6.3 normal normal Awaiting Review defect (bug) new has-patch 2023-04-06T06:55:21Z 2023-04-21T13:55:36Z "I use a standard 23 theme and in that and for example for the latest posts overview I use a standard post template with a Post featured image block. The problem is that this block, unlike for example the gallery, does not have a definition of how big the image should be used and then uses the full size on the frontend, even if it is a view where maybe a medium or even a thumbnail would suffice. This has a pretty significant impact on the loading speed of the images and therefore the whole site. It is possible to see the result, for example, at www.exteriery.cz in the latest posts section I know this ticket should probably belong under gutenberg but because of the impact on performance in the default installation I'm putting it here, it will probably affect a lot of sites" thomask 1 41732 Potential Core Issue Editor 4.8.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-08-26T01:56:27Z 2020-11-16T06:53:16Z "I posted [https://wordpress.org/support/topic/wordpress-core-issue/ this] a couple of weeks ago and I haven't heard anything so I assume its not in the ideal place. I asked one of the developers of the products I initially thought the issue was associated with (and who have also recreated/tested this issue without their products present) for a suggestion and they recommended posting a ticket here. I've been battling to narrow this problem down for a long time now. Over a year ago I discovered an issue which as it turns out impacts the editor view in visual mode. Sorry I don't recall the version this started happening in. I assume it was around 4.0 Initially I thought it was either the GeneratePress theme or Yoast SEO plugin however their support/developers have helped me to recreate the issue without their products installed. I'm not sure why but at this stage the issue occurs using WordPress and twenty-sixteen theme when various types of content are present in visual mode but not when using the twenty seventeen theme to my knowledge. After a load of time and testing the common denominator in all the tests is WordPress itself. I attached an image below which shows the area in the code which fluctuates. It may help cut through some of the info and get to the problem. There are a number of other attachments found within the associated thread above. [https://1drv.ms/f/s!AjEGKOtzUwy1gclEHoZZ9-DCW52S4Q] Thanks" doubledworks 1 51989 Preview does not reflect layout change on published posts Editor normal normal Awaiting Review defect (bug) new 2020-12-09T12:19:58Z 2020-12-09T12:19:58Z "Hello. I've been hoping this bug/oversight would be fixed for some years but it hasn't. When there is a post published in one particular layout format (e.g. three column, two columns or one column) and you decide to change the layout, you cannot preview your work unless you update the live version. So in a nutshell, I have hundreds of articles I published in the three column format with ads down the right column. I needed to redesign each article to get rid of the right column. This requires a complete re-edit. But when I edit one of the three column posts and change the three column layout to the one column layout - I cannot preview my work. The ""Preview Changes"" button continues to display the post in three columns. In order to edit a page in the new one column format I have to ""update"" the page. This means you have to post a live version of a half edited page, which is very undesirable. Andy PS I work in the classic editor so don't know if it's same in block editor" XyZed 58191 "Preview mode button breaks in custom post types in wordpress 6.2 - manually removing ""preview_nonce="" from url fixes it" Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2023-04-25T15:30:58Z 2023-04-30T09:18:03Z "Hi, After updating to wordpress 6.2 from wordpress 6.1.1 the Preview mode for my custom post type stopped working. I have a custom post type which publishes a different type of post. Whenever I click on preview to see the custom post type preview, it adds ""preview_nonce="" to the url. This causes the page to be completely blank other than the header and sidebar. When I remove the ""preview_nonce="" from the url the preview works perfectly. I noticed that if I click preview from the list of custom posts rather than from the preview button in the custom post type, it loads perfectly fine without the preview_nonce in the url. Is this a wordpress bug? " gabez123 1 37829 Problem when adding a link and searching published articles Editor 4.5 low normal Awaiting Review defect (bug) new 2016-08-25T17:47:28Z 2019-04-19T18:03:59Z With WordPress 4.6 (was already in 4.5 actually), there’s a problem when you wanna put a link and search published articles. Here, if you search “iOS 9“, every article with iOS 9 in the title show up. Although, if you search “iOS 9.3.5“, nothing is found. Same thing with an apostrophe and maybe other punctuations. Djibs13 54345 Publish Date Transparent Css Issue Editor 5.8.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-10-30T03:47:10Z 2021-10-30T05:30:20Z "While editing an article i see Publish Date Transparent Css Issue, in simple words, the custom date selection button is not visible." itssamimtahir 53698 Published posts auto scrolls on reload Editor normal normal Awaiting Review defect (bug) new 2021-07-20T13:05:03Z 2021-07-20T13:05:03Z "Theme: Twenty Twenty and Twenty Twenty-One. No Plugins Installed Versions Tested: 5.7.2 and 5.8 RC4 This might be an isolated issue. but I was able to reproduce in stable 5.7.2 and 5.8 RC4. I was only able to reproduce the issue at some places where I end keeping up the scroller. Steps to reproduce: Publish any post with GB editor. Open the published link in new tab. Place the scroller one the line where the header and body divides(use 2021 theme to see max jump). Reload page using keyboard Expected Result: Page reloads normally and without any content scrolled. Also, when the scroller is above the fold initially, it will scroll down only till the first content block. If the scroller is below the fold then it will scroll up to the first content. Attaching gifs to explain it better. " alanjacobmathew 1 60776 Pullquote block having minor difference in spacing between editor and front side Editor 6.4.3 normal normal Awaiting Review defect (bug) new close 2024-03-14T15:34:47Z 2024-03-19T05:00:13Z "Steps to reproduce the issue :- 1. Activate Twenty Twenty Four theme. 2. Choose Pullquote block. 3. Add text and background to check the proper difference in both side. Now check both the side editor and front. You can able to see spacing difference in editor and frontend. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/D39PTHnJ6TrspTC8XYMw" nidhidhandhukiya 9 45882 REST Block Renderer: Fails when using the Advanced > Additional CSS Class functionality Editor normal normal Future Release defect (bug) new 2019-01-09T15:16:52Z 2019-05-31T10:17:17Z "When creating a block with a `ServerSideRender` component and using the ""Additional CSS Class"" block option, the rendering breaks with this HTTP response: `{""code"":""rest_invalid_param"",""message"":""Invalid parameter(s): attributes"",""data"":{""status"":400,""params"":{""attributes"":""className is not a valid property of Object.""}}}` The reason for this is that the Block Renderer just takes the list of default attributes and `className` is not one of them. I came across this when actually introducing another attribute via a `editor.BlockEdit` filter which adds an attribute to all blocks but there is no chance to tell the REST renderer about it. I first submitted this as https://github.com/WordPress/gutenberg/pull/13249" akirk 2 50754 REST updating a post without author support updates the author to the current user Editor 5.0 normal normal Awaiting Review defect (bug) new 2020-07-24T10:53:26Z 2021-12-27T20:56:40Z "When updaing a post using the REST API, if the post belongs to a post type that does not support post author, then the database entry for the post gets updated and the current user is set as author. Steps to reproduce, using the Blocks editor as REST API cover: * Register a post type and make sure you do not declare support for post author. * Create a new post for that type using the blocks editor, and notice that the databse entry for it sets the author to be the current user. * Switch to another user with proper editing capabilities, and edit the post again also using the post editor. * Upong saving, confirm that the database entry for the post states that th author is this second user. This does not happen when updating a post manually using the legacy classic editor: in this case, the author set when first creating the post is respected on following edits. Although this might be considered a minor thing (the post type should not be supporting author logic, right?), the implications reach deeper. Users set as the post author in the database get notifications on new comments, for eample, despite the author support for their post type. Having them modified inconsistently based on the editor used to adjust the content copy introduces a major editorial flow nightmare in sites maintained by multiple users. Probably related: #47041" jadpm 53172 React-dom mistake Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2021-05-08T21:05:40Z 2021-05-13T14:36:24Z "http://prntscr.com/12isc2j react-dom.js?ver=16.13.1:1680 Warning: Failed prop type: You provided a value prop to a form field without an onChange handler. This will render a read-only field. If the field should be mutable use defaultValue. Otherwise, set either onChange or readOnly. Its not whole time, its happening sometimes. I don’t understand why does this mistake appear" andrewpolnikov 4 51419 Reconsider the UX impact of up/down arrows on meta boxes sarahricker Editor 5.5 normal normal Future Release defect (bug) assigned 2020-09-30T10:22:38Z 2022-06-03T19:35:11Z "In #39074 an accessibility problem was fixed whereby it was not possible to reorder meta boxes using only the keyboard. This is an important fix because it allows a keyboard-only user to reorder boxes in order to improve the tab order of these boxes. Unfortunately this created a side-effect where it's now easy to accidentally reorder a meta box by clicking on one of the up/down arrows, whereas previously you had to drag the meta box to another position to reorder it. There are a few UX issues related to this on the post editing screen: * Accidentally clicking the ""up"" arrow on the topmost sidebar meta box will cause it to move below the main post editing panel, which makes it easy to miss as it will commonly move well below the fold. I've just been dealing with reports from two separate users who did this and were unable to find the meta box. * Clicking anywhere on the meta box title expands/collapses it, but now there is also an up/down button that causes it to move position instead, in addition to the dedicated expand/collapse button. Users who are used to clicking the title now have to be careful where they click. * It's not possible to move block editor meta boxes (which are React components). This causes a significant visual discrepancy between ""classic"" meta boxes and block editor meta boxes, and causes especially strange behaviour when a user moves a meta box ""up"" and it doesn't actually move up to within the block editor meta boxes. ""Classic"" meta boxes aren't going away any time soon, so I think the last point is an important one." johnbillion 1 50653 Remove the _doing_it_wrong from WP_Block_Patterns_Registry::unregister() Editor 5.5 normal normal Future Release defect (bug) new dev-feedback 2020-07-13T21:51:41Z 2020-07-26T01:50:07Z "There's a `_doing_it_wrong()` call inside `WP_Block_Patterns_Registry::unregister()` when you try to unregister a block pattern that doesn't exist. IMO this is incorrect usage of `_doing_it_wrong()` because the function hasn't been incorrectly called, it's just been called with invalid data. ---- In addition, the `register()` and `unregister()` functions in this class ought to be returning a `WP_Error` instead of boolean `false`. Should we improve this for 5.5?" johnbillion 58975 Replace image deletes the link! Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2023-08-03T20:18:55Z 2023-08-03T20:18:55Z "For the image block Gutenberg block, in a widget sidebar panel, I noticed that whenever I go to ""replace"" the image for a Gutenberg widget - with one that is higher resolution for example, the link of the image goes away! Noted this on several, both with ""upload"" and going to media library and uploading there." programmin 59551 Respect non-null values from the `pre_render_block` filter Editor 6.0 normal normal Awaiting Review defect (bug) new 2023-10-05T18:09:05Z 2023-11-14T02:13:28Z "Currently WP core hooks into `pre_render_block` in 2 places. In both cases they hook in at `priority` `10`, and in both cases they explicitly return null. This means anybody following the example usage of that filter could end up with their return not respected unless they change priority to higher than 10, which is not documented. Either those filters should be moved to an earlier priority, such as `0`, or they should expect & respect non-nullish values by not returning `null` and instead returning `$pre_render`. Further if these are conditional loads based on block type, they should probably check if `! is_null( $pre_render )` and if so, act accordingly and not enqueue assets or bail early etc. - https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/block-supports/settings.php#L77-L149 - https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/block-supports/elements.php#L135-L222 " danieliser 1 52965 Reusable Blocks for wordpress 5.7 Editor 5.7 normal normal Awaiting Review defect (bug) new 2021-04-03T14:02:36Z 2021-04-03T17:46:31Z When using a reusable block in a post, it automatically changes to a normal block which makes it difficult for us to update it and save the change. techblog14 46376 Right hand column (update page) gets stuck Editor 5.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-02-28T16:43:03Z 2020-11-30T04:50:15Z "Not sure how to explain this: 1) Edit a page 2) If page has a warning notice at top, e.g ""there is a more recent version of this page, restore?"" 3) Right hand menu will scroll down as you go down the page, but not back up. So if you edit something at the bottom of the page, you can't get back to the save button. 4) Dismiss the warning notice before you scroll and the menu works normally." TPDave 2 57007 Row block in Gutenberg broken in 6.1 Editor 6.1 normal normal Awaiting Review defect (bug) new 2022-11-05T18:59:46Z 2022-11-16T13:40:59Z "Since updating to 6.1, the Gutenberg block ""Row"" will no longer show items horizontally, it will only stack vertically no matter the setting. The row block shows correctly in the backend editor, but not the front end. Worked perfectly in 6.0.3" mplayer 1 60080 Row block justification settings ignored in the iframed editor with classic themes Editor 6.4 normal normal Awaiting Review defect (bug) new close 2023-12-15T09:49:03Z 2023-12-22T18:46:03Z "Steps to reproduce the issue :- 1. Activate Twenty Twenty one theme. 2. Choose Row block. 3. Add some text into that. 4. Now choose justify center or right. You can able to see a difference in front side but editor side it remains same. I have attached video for better understanding. Video URL :- https://share.cleanshot.com/hNt5nZsXBztn6Z36XqMy" nidhidhandhukiya 1 55315 SVGs in editor (beta) Editor 5.9.1 normal normal Awaiting Review defect (bug) new 2022-03-04T00:11:38Z 2022-03-04T00:11:38Z When adding an SVG to the header as logo or image, it uploads fine (after installing an SVG plugin) and is displayed when viewing the site, but it disappears in the editor. garnitchique 49443 Safari Browser - Component Color Picker not getting closed on Custom Color Picker button click Editor 5.4 normal normal Awaiting Review defect (bug) new 2020-02-15T13:05:58Z 2020-02-18T16:12:48Z "When I am trying to close color picker on the `**Custom color picker**` button click. It's not getting closed. It's working properly on **Chrome** browser but somehow not working on the **Safari** browser. Here is a screencast : Safari - https://share.getcloudapp.com/8LuJ49lP (Version-13.0.5) Chrome - https://share.getcloudapp.com/Qwu762od (Version 80.0.3987.106)" monikarao 3 39793 Scrolling up in the sticky post text editor does not scroll the page up to top Editor normal normal Future Release defect (bug) new 2017-02-06T13:03:53Z 2019-06-05T06:52:24Z "In the sticky post editor, if I use arrow keys to navigate in the text mode tab (textarea#content), the page does not scroll up to the very top of the page, leaving part of the text hidden. I have to use mouse to again reveal the text. In the TinyMCE mode the scrolling works perfectly. I attached a screenshot where I created lines of text to get the page scroll. At the bottom of the page, cursor can be seen all the time. Then, when I go and use arrow keys to scroll to the first line of the text, it only scrolls almost to the top, leaving about 6.5 lines above the scroll. Additionally, using Ctrl+Home or Ctrl+End (on Windows) to navigate to the top or bottom of the textarea does not scroll the page." elmo5 1 53267 Search Form Doesn't Return Results Found in Reusable Blocks Editor 5.7.2 normal normal Awaiting Review defect (bug) new 2021-05-24T19:07:50Z 2021-08-13T21:39:24Z "Example...This page... https://narrativiumreviews.com/the-colour-of-magic-persons-alphabetic/ ...(and the entire site) uses Reusable Blocks extensively. The first such block on the Page referenced above is for ""Alohura"". A search, using the form in the sidebar, returns nothing for that term (Alohura). All plugins are up-to-date as is the Astra theme. The Search Form is actually Ivory Search (which I just installed to see if it worked as needed), but the results are the same with the default WP form." glsonn 53453 Searching in the Parent Page Attribute and Scrolling make it jump back to the beginning of selections. Editor 5.7.2 normal normal Awaiting Review defect (bug) new close 2021-06-18T20:53:10Z 2021-06-24T23:40:22Z "I've put together a video showing what I mean. Tried it on a few different themes with no plugins turned on. Deduced it must be something coming from Core. " schutzsmith 59540 Selecting Open in New Tab closes the link editing window Editor normal normal Awaiting Review defect (bug) new 2023-10-04T12:34:27Z 2023-10-05T04:40:02Z "== Testing Instructions I found this while testing the ‘Open in New Tab’ feature for 6.4. === Steps to Reproduce 1. Create a post 2. Add a Paragraph block with content 3. Create a Link inside the Paragraph block 4. Click on the link to open the link editing window 5. Click Open in New Tab === Expected Results - ✅ What should happen The link editing window remains open after selecting Open in New Tab. - ❌ What actually happens The link editing window closes after selecting Open in New Tab." sannevndrmeulen 59926 Server Error 500 when trying to type U+1F86A Arrow Editor 6.4 normal normal Future Release defect (bug) new close 2023-11-17T16:00:45Z 2023-12-18T22:05:24Z "I just came across this bug when copy pasting some content into wordpress. When i try to add the U+1F86A Arrow to my page i can not save it. I get a ""Failed to load resource: the server responded with a status of 500 ()"" message on https://URL/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F1132&_locale=user As soon as i remove the arrow everything works fine. This is on a self hosted wordpress instance that i just updated to the newest version. " Ephoras 1 48151 Setting featured image appears to use site URL instead of WordPress URL Editor 5.2.3 normal normal Awaiting Review defect (bug) new 2019-09-26T13:56:15Z 2019-10-09T13:51:31Z "Steps to reproduce: - have a site with a different WordPress URL and site URL (i.e. our site uses WPML and is configured to have the English site on example.com and the Dutch site on example.nl) - go to a page/post/custom post type - try to set a featured image WP does a fetch call to https://www.example.com/wp-json/wp/v2/media/2919?context=edit&_locale=user instead of https://www.example.nl/wp-json/wp/v2/media/2919?context=edit&_locale=user which fails because I am logged in to the .nl site, not the .com site The request fails, no featured image is stored and the spinner keeps spinning." ZanderZ 60464 Shortcode in Patterns -> Template Parts -> General -> An item in it. Editor 6.4.3 normal normal Awaiting Review defect (bug) new 2024-02-07T15:25:09Z 2024-02-07T15:25:09Z "I'm using a reusable block in a general item in template parts and patterns. In that block, I'm using a shortcode in paragraph. It's not working. I tried it everywhere. It's working except there. I think It is a problem of reusable block in FSE and template parts." webchacha 57095 Shortcode's query are executing at backend because of the_content filter Editor 6.1 normal normal Awaiting Review defect (bug) new 2022-11-13T18:55:52Z 2022-11-15T04:37:33Z "Steps to reproduce the issue & main issue description are available on this GitHub issue https://github.com/WordPress/gutenberg/issues/45732 I investigated this issue more and found a couple of new things. So if you'll check the callers-tracks image, you'll see `block_editor_rest_api_preload` is being called, then from REST_API call `apply_filters('the_content')` being used and which I think executes the shortcode. In file `wp-admin/edit-form-blocks.php`, I removed the `add_query_arg( 'context', 'edit', $rest_path )` on line no 65, after this change I don't see the issue. After and before this change, I see changes in XHR requests, I am attaching both screenshots. " vijayhardaha 47816 Shortcodes being run in editor when gutenberg is active Editor 6.1 normal normal Awaiting Review defect (bug) new 2019-08-01T21:35:38Z 2022-11-12T09:25:04Z "Hello, We have a shortcode that makes an API call to a remote site. We noticed that it was making calls when we were editing pages on our website, even if the shortcode was not loaded on that page. This does not happen when gutenberg is disabled. I made up a test shortcode that appends to a file in the uploads directory. I added it to a test page. It ran when I opened the editor view of the page. It ran when I saved the page. It ran when I viewed the page, which is the only time it should run. I can see when it runs because it writes to my file. Even more surprising is that the shortcode ran when I edited a different page, a page without the shortcode. We have good reason to believe that the pages API is running the shortcode when it runs to create the parent page drop down selector. Why do we believe that is the issue? Because in the first incident, the one where we were sending out unexpected API calls to a remote system, the shortcode was just echoing text without doing a proper return. The echoed text interrupted the Parent page drop down selector build and so that drop down did not appear. We saw the shortcode's misplaced response text in our browser console as part of the page API response. Once we properly wrapped the echo statement, that issue went away, but the API calls were still occurring, and so I did the simple test for you. In summary, the shortcode is run when I edit any page. We believe that the page API call that is used to create the parent page dropdown is running the shortcode. Is this on purpose behaviour? Regards, Karla " karlazz 1 55254 Site Editor: Template Part Areas are not exported Editor 5.9 normal normal Awaiting Review defect (bug) new 2022-02-24T20:32:43Z 2022-03-08T13:39:37Z "To reproduce: 1. Open any block theme template in the Site Editor. 2. Add a Header block, with any content. 3. Save the template, and the template part. 4. Go into the database. You'll see the `wp_template` and `wp_template_part` post types, as well as the `wp_template_area` term all working well together. 5. Export the template and template part. Copy these to the theme, and reset any customizations. 6. See that the Header block is now a generic Template Part block. Cause: During the export, the template part area is not added to the template part block. The saved block might me something like `<!-- wp:template-part {""slug"":""header""} /-->`, but it needs to be `<!-- wp:template-part {""slug"":""header"",""area"":""header""} /-->` " Frank Klein 5 58132 Slashes used in block templates slug is a problem on Windows Editor 5.9 normal normal 6.6 defect (bug) new dev-feedback 2023-04-14T11:26:33Z 2024-02-29T21:46:03Z "Generally, they are all stored flat in the theme `templates` or `block-templates` folder; we have no problem here. But when they are stored deep under some folder/s, the slug checks won't pass on Windows. This is because finding the template paths [https://developer.wordpress.org/reference/functions/_get_block_templates_paths] return backslashes `\` and [https://core.trac.wordpress.org/browser/tags/6.2/src/wp-includes/block-template-utils.php#L313] currently only does `substr` extracts to come up with a slug that is passed to [https://developer.wordpress.org/reference/functions/_build_block_template_result_from_file/], which eventually fails line [https://core.trac.wordpress.org/browser/tags/6.2/src/wp-includes/block-template-utils.php#L981] as the slugs in the query are using forward slashes `\`." gaft 1 56240 Social Icons Block bug Editor 6.0 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-07-18T09:50:21Z 2022-07-18T13:42:35Z "When adding the social icon block, the + button is missing. All that shows is ""click plus to add"" Tried using the default twenty themes with same result. Fresh install of latest WordPress stable. " mplayer 59264 Some block parts (navigation) break when top level folder gets renamed Editor 6.3.1 normal normal Awaiting Review defect (bug) new 2023-09-01T14:03:12Z 2023-09-01T14:25:10Z "Steps to reproduce: - clean install of 6.3.1 - set up any block theme as current theme - rename the top folder where the wordpress installation is lying (i needed to do it because of switching URL) -> block navigation is broken This is also the case when put wordpress into troubleshooting mode or using any other block theme with a menu. I tracked it down and it seems that some css is not coming any more to the page. {{{ <link rel='stylesheet' id='wp-block-navigation-css }}} <---- is for example missing Issue can currently only be fixed when renaming the folder back to the old name. " schuettla 1 58085 Some dialogs are blurry on HiDPI devices Editor 6.2 normal normal Awaiting Review defect (bug) new 2023-04-04T17:02:32Z 2023-04-18T19:02:25Z "Some dialogs are scaling text instead of using hiDPI properly. The publish calendar and the link attachment dialog are blurry when they should not be. See attached file and note the difference between the two words marked ""Publish""" stuartsweet 1 25886 Sortable items gets stuck when dragging over TinyMCE Editor normal normal Awaiting Review defect (bug) new 2013-11-08T22:37:45Z 2020-11-24T06:09:01Z "When dragging a metabox over an active TinyMCE instance in a post/page edit screen, the metabox can get ""stuck"" (i.e., it stopping moving with the mouse). This only happens with TinyMCE and not the ""Text"" textarea. '''To reproduce:''' 1. Uninstall plugins 1. Install a default theme (I used Twenty Thirteen) 1. Go to ''Pages > Add New'' 1. If it is not activated already, click the ""Visual"" tab to activate the TinyMCE instance 1. Grab the featured image metabox to activate the sortable (i.e., drag and drop) functionality 1. Move the box over the TinyMCE area 1. Continual movement over the area will cause it to get stuck The following screen grab shows how the cursor separates from the metabox as it gets stuck: [[Image(http://f.cl.ly/items/0j2s0f2f2D3M2e393P3K/Screen%20Shot%202013-11-08%20at%202.33.36%20PM.png)]] It's kinda hard to understand it with that image, so here's a movie that shows the issue: http://f.cl.ly/items/1B151E3N0i3j092Z062m/broken-drag-and-drop.mov I have tested this in Safari, Firefox, and Chrome on OS X. All browsers produce the same issue. The issue persists with MP6 as well." tollmanz 54445 Space bar doesn't work when typing a post. Editor 5.8.2 normal normal Awaiting Review defect (bug) new 2021-11-15T13:48:29Z 2021-11-15T13:48:29Z "When typing a post and the cursor is in the last position of the text all space bar presses are suppressed until you type space again and then it inserts two spaces. When you type between another word and there are letters behind the cursor spaces are entered correctly." markovanderpuil 51080 Spacing in embed when para begins with emoji Editor 5.5 normal normal Awaiting Review defect (bug) new 2020-08-20T13:32:01Z 2020-08-25T13:04:01Z "If a post has multiple paras, the embed removes the newline and adds a spacing. Which seems fine but if a para in the original post begins with an emoji, then the spacing seems to not be there in the embed. " superpoincare 1 55803 Span is removed from title due page saving Editor 5.9.3 normal normal Future Release defect (bug) new 2022-05-24T12:31:54Z 2023-02-24T22:49:50Z "Hello, since the update to wordpress 5.9 we detected some strange behavior, when editing existing posts, that contains HTML-Tags in their post title. The problem is, when editing the post, the HTML-Tags in the post title, are not displayed in the editor. The tags are just cutted out from the title. This problem have only editor group, admin group is ok with saving span in title. Steps to reproduce: 1. Create a new post with HTML-Tags in the title for example: ""<span>This is my title</span>"" 2. Save and publish the post with this title 3. Go back to the ""All posts"" list 4. Post is correctly displayed with ""<span>This is my title</span>"" in the list 5. Edit the post 6. post title lost the <span>-Tags 7. Change the post title to ""This is my title 2"" 8. Save the post 9. <span>-Tags are totally gone, even in the ""All posts"" list." joyster 1 45493 Square brackets in caption shortcode produce improper formatting Editor 4.9.8 normal normal Future Release defect (bug) reopened has-patch 2018-12-05T21:29:24Z 2023-07-27T03:14:55Z "If [square] brackets are placed inside of a {{{ [caption] }}} shortcode, the resulting formatting is broken when the captioned image is surrounded by text content. If you paste the following into the text editor, switch to visual, and then back to text, you'll notice the line break after the caption disappears. {{{ Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. [caption id=""attachment_143591"" align=""aligncenter"" width=""700""]<img class=""size-full wp-image-143591"" src=""https://placehold.it/700x800"" alt="""" width=""700"" height=""800"" /> This is a caption with some [square] braces that make it appear like another shortcode.[/caption] Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. }}} I'm not sure why this is happening, it may be related to some code thinking that the square brace inside the caption indicates it may be another shortcode. Escaping the shortcode using double brackets didn't have any affect." Christian1012 56961 Stack on mobile (media and text block) doesnt work any longer Editor 6.1 normal normal Awaiting Review defect (bug) new 2022-11-02T13:17:27Z 2022-11-02T13:55:56Z "Just testet width WP 6.0 and it still works, but not after update do 6.1. When i edit a media & text block in 6.1. and save the page this setting will be ignored. It happend only when you edit a block and save it. " markus.zeeh 55566 Start value in List block doesn't work Editor 5.9.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-04-12T20:27:36Z 2022-04-13T10:48:31Z "Hi. I just noticed that ""Start value"" option in List block doesn't work - no matter what start value you type, it always starts from 1. The start value changes in Gutenberg editor, but is not visible in front end, not even in post preview. To reproduce this issue just add a List block in Gutenberg editor and try to change ""Start value"" from 1 to any other number. Then preview or publish the post and you'll see that it doesn't work and ""1"" always shows up." kacper3355 46206 Strange behaviour with links inside a table Editor 5.0.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-02-07T20:53:49Z 2020-11-23T16:54:45Z "I'n currently using WP 5.0.3. There is some strange behaviour with links that are inside a table. Check box ""open link in a new window"" did nothing until I switched to HTML and added a space before link text (<td> <a href... instead of <td><a href...). Is this a bug or a ""feature""? :D Sincerely, Jari Honkonen" multiankunta 57682 Strong tag in each new post when I copy and paste bold word from other site as well as from document file. Editor normal normal Awaiting Review defect (bug) new close 2023-02-09T14:24:01Z 2023-08-09T18:03:48Z "When I copy and paste bold words from a google document file or from any other site it shows <strong> tag in the admin backend for Twenty Twenty-Three, Twenty Twenty-One, Twenty Twenty-Two themes. For more understanding I am posting a video: [https://share.cleanshot.com/GTcXSfSJyBdM6rwDRTY4]" himshekhar07 1 45600 Suboptimal pasting from Word in block editor Editor normal normal Awaiting Review defect (bug) new 2018-12-12T15:11:39Z 2018-12-12T15:35:35Z "Hi, working with twenty seventeen. The backend interface has changed, and since then pasting from Word doesn't work well. Some spaces between words disappear. " RonnieK 54705 Table Block: Background color is not getting changed from the Color Settings Editor 5.8.2 normal normal Awaiting Review defect (bug) new 2021-12-29T01:24:32Z 2021-12-30T17:14:30Z "Steps to recreate: 1. Create a new page and add a ""table"" block. 2. Create a table with 2 columns and 2 rows. 3. Change the background colour of the table from the colour settings options and save. 4. Display the page. 5. Edit the page and save it. 6. The background colour of the table will be removed. This happens when you change only the background colour in the colour settings. If you set both the text and background colours, this will not happen." RocketMartue 1 53814 Template Editor has no URL to access it Editor 5.8 normal normal Awaiting Review defect (bug) new 2021-07-28T12:30:51Z 2021-07-28T12:30:51Z "The Template Editor is loaded into the existing Edit Post screen. However the loading happens entirely through a user action in JavaScript. Meaning that when you reload the page, you're looking at the Content Editor again. Obviously this makes it nearly impossible for developers to style the content of the editor. But more importantly this breaks an existing convention in WordPress. You cannot construct a URL that will direct users to the Template Editor. Both the Content Editor as well as the future Site Editor have their own URL. In addition it should be possible to pass additional arguments to the Site Editor to either load an existing template, or create a new one." Frank Klein 53810 Template Editor: Code editor view doesn't show the template Editor 5.8 normal normal Awaiting Review defect (bug) new 2021-07-28T11:01:06Z 2021-07-28T11:01:06Z "When editing a template with the Template Editor, you get a visual preview if the end result. However when switching to the Code editor view, the blocks in the post content are shown. The blocks of the template should be displayed. This behavior breaks both with how the Content Editor added in 5.0 and the Site Editor in Gutenberg work." Frank Klein 2 55417 Text Highlighting Broken Editor 5.9.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-03-17T21:25:47Z 2022-03-19T03:35:13Z Trying to add a custom HEX, RGB, or HSL colors using the UI is just broken. Trying to input values or paste in values doesn't work. I have tried disabling all plugins and have tested it on multiple wordpress.org sites. Editing the value in the code editor still works, but it's just less convenient. Hopefully, this can get fixed next update, thanks! notgeo 59870 Text does not take the Local Fonts(Globally set) Editor 6.4 normal normal Future Release defect (bug) assigned close 2023-11-09T20:27:11Z 2023-12-14T21:21:39Z "== Bug Report === Description Describe the bug. === Environment - WordPress: 6.4.1 - PHP: 8.2.6 - Server: nginx/1.22.0 - Database: mysqli (Server: 10.3.17-MariaDB-1:10.3.17+maria~bionic / Client: mysqlnd 8.2.6) - Browser: Chrome 119.0.0.0 (macOS) - Theme: TT4 Child 1.0.0 - MU-Plugins: None activated - Plugins: * Create Block Theme 1.13.3 * Gosign — Gallery Box Block 2.0.1 * Gutenberg 17.0.0 * Imsanity 2.8.3 * Kadence Blocks - PRO Extension 2.0.16 * Kadence Blocks – Gutenberg Blocks for Page Builder Features 3.1.24 * Meow Gallery 5.0.6 * Meow Lightbox 5.0.7 * WordPress Beta Tester 3.5.5 === Steps to Reproduce 1. add paragraph or heading h2 thru h6 text (should be Optima (h1 is Murberry and works fine) x. 🐞 Bug occurs. === Expected Results 1. ✅ What should happen. Text entered on a page should be Optima, a local font added with the 'Create Block Theme"" plugin>Manage Fonts, and set in global settings as the default body font and the default Headings font. Then h1 is Murberry, and that works fine. === Actual Results 1. ❌ What actually happened. Some other font is used, maybe the System font Have to set each paragraph and heading block text to the global setting.e.g. Optima is default heading font, but text is not in Optima. Have to change it each paragraph." elurie 51982 Textarea to which button 'Add block' attach to don't get the focus and Blocks from Blocks / Patterns area are placing into the previous place of focus Editor normal normal Awaiting Review defect (bug) new 2020-12-09T10:17:03Z 2020-12-09T10:17:03Z "In the main Editor area when an 'Add block' button is pushed the text area to which this button attached to don't get the focus and after inserting Block from Blocks / Patterns area it goes to the place where the focus was previously. This behaviour is the same in WordPress 5.5.3 and 5.6, with 2020 and 2021 themes as well. " oglekler 48196 The Code Editor generates tag soup with empty paragraphs in td elements Editor 5.2.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-10-02T10:57:51Z 2023-12-12T15:02:56Z "When using the Code Editor with WordPress 5.2.3, the opening `<p>` and closing `</p>` tags do not appear in the editor and are automatically handled by the editor. If I try to add them to fix things, they are automatically removed. So, now the problem with this automatic handling: The Code Editor generates tag soup with empty paragraphs in td elements. For instance, the generated HTML code looks like this: {{{ <td>text<br /> text</p> <p>text<br /> text</p> <p>text</td> }}} There are two issues (maybe related). First, this is tag soup. For various reasons (parsing with XML tools, better HTML code understanding and maintenance...), the Code Editor should not omit opening and closing tags. Here, the first `</p>` does not have a matching opening tag and the last `<p>` does not have a matching closing tag. Moreover, in HTML5 parsing, the first `</p>` is parsed as if it were `<p></p>`, i.e. an empty paragraph; and the text before it should really be in a paragraph for consistency. If the Code Editor thought that the `<td>` implied an opening `<p>` just after it, it is wrong! In short, the generated code should be: {{{ <td><p>text<br /> text</p> <p>text<br /> text</p> <p>text</p></td> }}} " vinc17 8 37758 The Link Checker tool does not detect some links Editor 4.6 normal normal Awaiting Review defect (bug) new has-patch 2016-08-21T14:25:45Z 2023-09-16T12:09:45Z "hello, The Link Checker tool in WordPress 4.6 doesn’t detect an error when you put something before ‘http(s)‘. Example: xhttps://www.google.com And the tool does not detect error if a missing letter in ""http"". examples : ttps://core.trac.wordpress.org/newticket htps://core.trac.wordpress.org/newticket htts://core.trac.wordpress.org/newticket" Djibs13 2 56950 The default margin for .wp-block-image disappears after WordPress 6.1 Editor 6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-11-02T05:11:20Z 2023-08-28T16:21:49Z "So, I have a few websites running on WordPress, and one of them has just been updated automatically to the 6.1 update, and I noticed that the images don't have any space with the text below them. After inspecting them, I found out that the margin for .wp-block-image was no longer there. By default, it was: .wp-block-image { margin: 0 0 1em; } But after 6.1, it's gone. Check out the screenshots just to be clear. https://i.imgur.com/L9EjpTY.png https://i.imgur.com/Qq6bbYQ.png" anonymized_14771642 46405 The editor has encountered an unexpected error Editor 5.1 normal normal Awaiting Review defect (bug) new 2019-03-03T11:46:32Z 2019-03-03T16:21:06Z "Hello My website is perkune.com I am using Mac OS 10:14:3 and everything updated OK I have been using the editor since it came out latest version 5.1 I have been tring to edit an existing blog and insert a new image but a message says The Editor has encountered an unexpected error also This block has encounted an unexpected error This is when I want to add an image - I can add text OK - Please canb you help Best regards paul " paulgoodwin 3 58875 The hover effect in theme.json is not working Editor 6.2.2 normal normal Awaiting Review defect (bug) new close 2023-07-22T07:14:21Z 2024-02-16T21:56:10Z "While the color of nav links is working, the hover color of those is not working. {{{ ""core/navigation"": { ""color"": { ""text"": ""var(--wp--preset--color--midred-2)"" }, ""elements"": { ""link"": { "":hover"": { ""color"": { ""text"": ""var(--wp--preset--color--lightred-3)"" } } } } } }}}" titanchan 54606 The selectControl component has margin bottom 0 in label of selectControl. Editor 5.8.2 normal normal Awaiting Review defect (bug) new 2021-12-10T05:02:25Z 2021-12-10T05:02:25Z "I am using latest wp version 5.8.2 I created 1 custom gutenberg block and added the typography setting in inspector control for title and description of my custom gutenberg block. Steps to reproduce: 1. Create a simple custom gutenberg block having 1 richtext. 2. Now create setting for font weight by SelectControl. So you can see that label of selectControl has margin 0. 3. So solution is to add margin-bottom 8 px." smit08 45852 Tick Box Open link in new tab... Editor 5.0.2 normal normal Awaiting Review defect (bug) new 2019-01-07T14:30:58Z 2020-01-22T06:26:44Z "I've found that when I insert a link into a new page and I edit the link, although I can tick in the edit box, open link in new tab, it does not work. The link opens in the same page and when I go back and tick the box again, it still does not work. The check-box isn't sending the command to open the link in a new tab. Many thanks. I can wait. " Motorised 3 43564 TinyMCE bookmark not removed Editor 4.9.4 normal normal Future Release defect (bug) new 2018-03-16T00:57:23Z 2020-02-07T15:40:05Z "If cursor is placed between <iframe> and </iframe> in text mode each time I switch from Text to Visual mode what i guess (from editor.js code) is bookmark is added and not removed, it just keeps stacking with each change. code that appears between tags is: {{{ <span data-mce-type=""bookmark"" style=""display: inline-block; width: 0px; overflow: hidden; line-height: 0;"" class=""mce_SELRES_start""></span> }}} Here is example to replicate bug: {{{ <iframe width=""100%"" height=""450"" style=""border: 0;"" src=""https://www.google.com/maps/embed/v1/place?key=xxxx&q=NewYork"" frameborder=""0""></iframe> }}} Note: If possible, please use valid key and query, i had to remove them for demonstration, but bug happens even with this code. Paste that code in Text mode, click between >< of ""></iframe>"" and switch to Visual mode, then switch back to Text mode (do not click anywhere in Visual mode). Every time this is repeated, it just keeps adding mentioned code. My humble guess is that this is happening because Visual is generating map preview from iframe tag so it can not detect that same place in code when it is switched back to Text mode." waterlord93 57316 Twenty Twenty-Three: Alignment issue in Button block Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2022-12-12T07:31:19Z 2022-12-12T11:33:57Z "In Twenty Twenty-Three Theme, when we add Button block on the editor side and change the alignment of Button then the ""Align right"" is not reflected in the backend as well as frontend side. Steps to replicate: 1: Activate the Twenty Twenty-Three Theme 2: Add Button block 3: Choose ""Align right"" from Align option 4: View the page/post at editor side 5: Save Page/Post 6: View the page/post at front side For better understanding, I provide a video attachment link. Video link: https://share.cleanshot.com/9VyrSCgD5fUNDgxYSJ1u Thanks" kajalgohel 57445 "Twenty Twenty-Three: When adding a sub-menu set to ""open on click"" the parent menu item is not clickable" Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2023-01-11T15:19:22Z 2023-01-18T16:02:00Z "== Summary When adding a sub-menu to Twenty Twenty-Three via the Site Editor, the parent menu item is not clickable. == To Replicate 1. At Appearance > Editor, add a navigation block to the Header template part 2. Add a sub-menu to one of the top-level menu items 3. In the Navigation block's Submenu settings on the right, select ""Open on click"" 4. View the site on the front end and try to click the parent item above the sub-menu == Result The top-level item that has the sub-menu under it is no no longer clickable, so it can never be reached. Clicking the parent item only opens the sub-menu. == Expected You should be able to click the parent item above a sub-menu. ''Note that this works correctly in Twenty Twenty-Two'' which is why I'm reporting this here instead of in the Gutenberg GitHub repo. == Testing Conditions No active plugins WordPress 6.1.1 Local install == User Report https://wordpress.org/support/topic/stop-mouse-over-on-submenu-item/" zoonini 57287 Type error calling Styles > Customize > Blocks from FSE Editor 6.1.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-12-07T03:48:59Z 2022-12-13T16:29:10Z "From FSE, When I open Styles pane, Then click ""Blocks"" I receive an error: {{{ TypeError: Cannot use 'in' operator to search for 'color' in at http://localhost:10043/wp-includes/js/dist/edit-site.min.js?ver=3ab3e2570a5c4c270c72:12:72801 at Array.forEach (<anonymous>) at ll (http://localhost:10043/wp-includes/js/dist/edit-site.min.js?ver=3ab3e2570a5c4c270c72:12:72639) at Tl (http://localhost:10043/wp-includes/js/dist/edit-site.min.js?ver=3ab3e2570a5c4c270c72:12:82514) at Cl (http://localhost:10043/wp-includes/js/dist/edit-site.min.js?ver=3ab3e2570a5c4c270c72:12:82422) at Xl (http://localhost:10043/wp-includes/js/dist/edit-site.min.js?ver=3ab3e2570a5c4c270c72:12:103806) at ct (http://localhost:10043/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:43430) at os (http://localhost:10043/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:111136) at Ur (http://localhost:10043/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:77643) at Ir (http://localhost:10043/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:77571) }}}" ritterml 1 56953 TypeError: Cannot destructure property 'themeSupportsLayout' of '(0 , p.useSelect)(...)' as it is undefined Editor 6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-11-02T10:43:03Z 2022-11-03T16:33:26Z "Hi this morning with update of WP to 6.1 have a lot of problems. I tried to deactive all plugins and I think that is an error of Core. TypeError: Cannot destructure property 'themeSupportsLayout' of '(0 , p.useSelect)(...)' as it is undefined. at https://domain.com/wp-includes/js/dist/block-editor.min.js?ver=d39738cb7c1202964677:26:193469 at ct (https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:43430) at os (https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:111136) at Ur (https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:77643) at Ir (https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:77571) at Dr (https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:77434) at Pr (https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:74429) at https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:30173 at unstable_runWithPriority (https://domain.com/wp-includes/js/dist/vendor/react.min.js?ver=17.0.1:9:7431) at xn (https://domain.com/wp-includes/js/dist/vendor/react-dom.min.js?ver=17.0.1:9:29950) I tried to reinstall WP but the link is on 404: https://downloads.wordpress.org/release/it_IT/wordpress-6.1.zip I've bug on editor of themes, on create new content and on front-end Please fix the problem" pigot4 2 55139 TypeError: k is not iterable Editor 5.9 normal normal Awaiting Review defect (bug) new 2022-02-10T19:19:27Z 2022-02-10T19:19:27Z "When I am in the block editor and try typing something in the box search get the below error, see image 01 and 02. [[Image(https://inqmatic.com/wp-content/uploads/2022/02/image_01.png)]] [[Image(https://inqmatic.com/wp-content/uploads/2022/02/image_02.png)]] The error is: {{{ TypeError: k is not iterable at f (https://c0.wp.com/c/5.9/wp-includes/js/dist/block-editor.min.js:26:86949) at https://c0.wp.com/c/5.9/wp-includes/js/dist/block-editor.min.js:26:86506 at Array.map (<anonymous>) at m (https://c0.wp.com/c/5.9/wp-includes/js/dist/block-editor.min.js:26:86496) at p (https://c0.wp.com/c/5.9/wp-includes/js/dist/block-editor.min.js:26:86043) at https://c0.wp.com/c/5.9/wp-includes/js/dist/block-editor.min.js:12:14633 at Object.useMemo (https://c0.wp.com/c/5.9/wp-includes/js/dist/vendor/react-dom.min.js:220:462) at c.useMemo (https://c0.wp.com/c/5.9/wp-includes/js/dist/vendor/react.min.js:30:236) at Wg7J.t.a (https://c0.wp.com/c/5.9/wp-includes/js/dist/block-editor.min.js:12:14608) at Le (https://c0.wp.com/c/5.9/wp-includes/js/dist/vendor/react-dom.min.js:100:3) }}} further, this error appear then update to wordpress 5.9. Thanks." zirtrex 60765 Typography Presets Editor trunk normal normal 6.6 defect (bug) new has-patch 2024-03-13T04:54:33Z 2024-03-13T05:36:36Z " We should pass theme.json settings to global preset or style value-generating callbacks. Currently `value_func` callable properties in `PRESETS_METADATA` do not have access to the current theme JSON settings. An example: `wp_get_typography_font_size_value()` needs to know other theme.json settings in order to correctly output values. Styles generated by `WP_Theme_JSON::get_stylesheet` outside a WordPress instance, using custom settings will therefore have no effect. See bug issue for further details: https://github.com/WordPress/gutenberg/issues/58135 This ticket is to sync the following Gutenberg PR: https://github.com/WordPress/gutenberg/pull/58362 " ramonopoly 55945 UI Isssue on header list view Editor 6.0 normal normal Awaiting Review defect (bug) new 2022-06-08T05:15:28Z 2022-06-10T09:43:43Z "Hi, I am not able to see or scroll for see remove row on editor. more information you can see SS." sumitsingh 58491 UI problem when search for block while adding a post Editor 6.2.2 normal normal Awaiting Review defect (bug) new close 2023-06-08T12:35:02Z 2023-11-28T16:15:27Z "**Precondition:** - Gutenberg version 15.9.1 - WP 6.2.2 - PHP 8.2.5 - Ubuntu 23.04 **Steps:** 1- Create a new post 2- Click the + icon and search for 'block' 3- The UI expands slowly with no interaction Expected: spaces fit automatically Screencast: https://jmp.sh/KsMTIFiM" mai21 1 59259 URGENT BUG ON NEW UPDATE Editor 6.3.1 normal normal Awaiting Review defect (bug) new 2023-08-31T21:46:05Z 2023-09-01T01:29:30Z "The latest WordPress update has slowed down editing pages/posts as well as creating new posts and pages. Prior to the new update their were no issues. Now productivity has plunged due to this bug. Pages become nonresponsive when editing. " franknez888 46016 Unable to move blocks in editor Editor 5.0.3 normal normal Awaiting Review defect (bug) new 2019-01-16T21:08:39Z 2019-01-17T17:50:01Z "As I understand it: an active block can be moved up or down with arrows at the left of the block, which appear with mouse pointer hover. Arrows do not appear with hover. When I highlight two blocks (click & drag), I can see the arrows and moving works. However, there is no handle for dragging. OS: windows 10 Browser: chrome wp: v. 5.0.3 Theme: Twenty Seventeen (version is up-to-date) - Jon " Sophie_Kath 1 54046 Uncaught SyntaxError: Invalid regular expression Editor 5.8 normal normal Awaiting Review defect (bug) new 2021-08-31T22:34:14Z 2021-09-11T23:50:56Z "Hi I am trying to install a fresh version of WordPress on my server but the problem is, on the add new post page, I am getting this error: {{{ Uncaught SyntaxError: Invalid regular expression: /[!-/:-@[-`{-~б─-б©ц≈ц╥Б──-Б╞©Б╦─-Б╧©]/: Range out of order in character class at new RegExp (<anonymous>) at Module.pC98 (wordcount.min.js?ver=61ab1af9326f4d5fda7ed01990e1be70:2) at t (wordcount.min.js?ver=61ab1af9326f4d5fda7ed01990e1be70:2) at wp.wordcount.YLtl (wordcount.min.js?ver=61ab1af9326f4d5fda7ed01990e1be70:2) at wordcount.min.js?ver=61ab1af9326f4d5fda7ed01990e1be70:2 }}} however everything is fine even with this error until I try to install SEO plugins, like Yoast SEO and Rank Math SEO, but the cause of the problem is WordPress I tried everything to see if this problem will gone away or not Tested with php 7.4 and 8.0 Tested with chrome, firefox and opera Tested with mysql and mariadb, also tested with different charset " mmakenzi 1 55548 "Unchecked ""Uncategorized"" checkbox re-checks itself upon publish or update of a post" Editor 5.9.3 normal normal Awaiting Review defect (bug) new dev-feedback 2022-04-08T21:02:10Z 2022-04-08T21:02:10Z "A WordPress-based news website's editorial team has problems with the ""Uncategorized"" category. 1. They create a post and check the desired category and uncheck the default ""Uncategorized"" category. 2. Then they click ""Publish"". 3. At the last second during the Publish operation, the Block Editor unchecks the user-selected category and re-checks ""Uncategorized"". 4. Then they have to go back into the post and attempt to uncheck ""Uncategorized"" and recheck the desired category. They have to do step 4 three or four times to get the result they want. Or they just use ""Quick Edit"" to change it in the post list. It doesn't happen every time and is sometimes difficult to reproduce. But it happens often enough to be a problem. I cannot find a way to consistently reproduce it. Nor can I find any indication that this is a known issue with WordPress. It will happen with or without plugins enabled. If there's no easy way to investigate or fix this in core, is there a way to add a script somewhere in the theme's functions.php or a jQuery script somewhere to ensure that ""Uncategorized"" *never* gets checked and that the originally-intended category remains checked? All the searches I do on Google for this topic ironically just reveal a bunch of posts on peoples' blogs that are set to ""Uncategorized""." rcwatson 56627 Underscores are not allowed in block names; error message is misleading. Editor normal normal Awaiting Review defect (bug) new 2022-09-22T17:11:45Z 2022-10-12T19:32:42Z " The error when activating a plugin containing a register block whose name contains an underscore is vague and misleading. If you do not have WP_DEBUG set to true in your site's wp-config.php file; there are no errors in the browser's javascript console while in the editor. When you have WP_DEBUG set to true; and activate the plugin that contains the block, the error message displayed is misleading; the message, included verbatim below, states that a namespace prefix must be used and in my test case block, a name space was used; create-block {{{ ""Notice: Function WP_Block_Type_Registry::register was called <strong>incorrectly</strong>. Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type Please see <a href=""https://wordpress.org/support/article/debugging-in-wordpress/"">Debugging in WordPress</a> for more information. (This message was added in version 5.0.0.) in /srv/www/case/public_html/wp-includes/functions.php on line 5831"" }}} A testcase for a block named 'my_test_case' is available at https://gitlab.com/skorasaurus/my_test_case The block does has a namespace, create-block. The full stacktrace for the error is at https://gist.github.com/skorasaurus/6506770a49bedff53876b962c1d29b16 This has happened to me in the past, has been reported in the [gutenberg issue tracker]https://github.com/WordPress/gutenberg/issues/13074 (issue was closed and directed to report here)" skorasaurus 1 43073 Undo leaves a big blank spot where content wp-view was Editor 4.9.1 normal normal Future Release defect (bug) new 2018-01-11T22:11:14Z 2019-06-05T07:09:00Z "1. Add a Wordpress audio playlist (or video playlist, or others) 2. Select and click ""x"" to remove. 3. Undo, ctrl+z. Now there is a big blank spot... where is it?? It's there but transparent. Tested in the Twenty Fifteen theme and another theme, so it's not the theme." programmin 3 48698 "Update fails if there’s a ""Custom Html"" block and an Iframe inside it" Editor 5.3 normal normal Awaiting Review defect (bug) new 2019-11-18T12:10:39Z 2020-04-01T18:33:54Z "When creating a new post or updating an old post, If there's a ""Custom Html"" block with an Iframe inside it, save always fails - regardless of what's in that block. It gives the following error: Updating failed. Error message: The response is not a valid JSON response." ozgurnevres 50226 Updating block attribute meta (type array) fails if it is the only meta attribute Editor 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-22T13:26:08Z 2021-02-09T05:53:04Z "My support thread is [https://wordpress.org/support/topic/updating-block-attribute-meta-type-array/#post-12875806 here]. If I register a meta like this: {{{#!php <?php register_post_meta( $this->object_post_type->options['type'], 'wpm_gallery_attach_ids', [ 'type' => 'array', 'description' => 'Associated Images', 'single' => true, 'show_in_rest' => [ 'schema' => [ 'type' => 'array', 'items' => [ 'type' => 'number', ], ], ], 'auth_callback' => function() { return current_user_can( 'edit_posts' ); }, ] ); }}} And a block like this: {{{#!php <?php register_block_type( 'wp-museum/object-image-attachments-block', [ 'attributes' => [ 'imgAttach' => [ 'type' => 'array', 'source' => 'meta', 'meta' => 'wpm_gallery_attach_ids', 'items' => [ type' => 'number', ], ], ], ] ); }}} Then the array shows up correctly in my block's attributes as an array. If I update it like so: {{{ const moveItem = ( imgId, move ) => { const imgIndex = imgAttach.findIndex( id => id === imgId ); const newIndex = imgIndex + move; if ( newIndex < 0 || newIndex >= imgAttach.length ) { return; } imgAttach[ imgIndex ] = imgAttach[ newIndex ]; imgAttach[ newIndex ] = imgId; const updatedImgAttach = [ ...imgAttach ]; setAttributes( { imgAttach: updatedImgAttach, } ); } }}} When I save the post, the attribute reverts to its original state and is not updated in the database. However, if I add a second string meta to the block, everything works! {{{#!php <?php register_post_meta( $this->object_post_type->options['type'], 'wpm_gallery_attach_ids_string', [ 'type' => 'string', 'description' => 'Associated Images String', 'single' => true, 'show_in_rest' => true, 'auth_callback' => function() { return current_user_can( 'edit_posts' ); }, ] ); }}} {{{#!php <?php register_block_type( 'wp-museum/object-image-attachments-block', [ 'attributes' => [ 'imgAttach' => [ 'type' => 'array', 'source' => 'meta', 'meta' => 'wpm_gallery_attach_ids', 'items' => [ 'type' => 'number', ], ], 'imgAttachStr' => [ 'type' => 'string', 'source' => 'meta', 'meta' => 'wpm_gallery_attach_ids_string', ], ], ] ); }}} {{{ setAttributes( { imgAttach: updatedImgAttach, imgAttachStr: JSON.stringify( updatedImgAttach ) } ); }}} (To be clear, imgAttach is never set from imgAttachStr.) This seems like the inverse of [https://github.com/WordPress/gutenberg/issues/17384 SetAttributes does not work as expected with two or more post meta fields #17384] . It *does* work with two or more meta fields, but not one? If it is an array? I am using WordPress 5.4.1, without the Gutenberg plugin. " mikethicke1 47978 Upload files with Media Library takes much load time to upload image Editor 5.2.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-09-05T13:34:08Z 2020-11-05T04:48:54Z "Theme: Twenty Nineteen Version: 5.2.3 Steps to Reproduce: 1) Go to Gallery 2) Select Media Library 3) Go to Upload image with less than 2 mb size 4) The image will take much more time to upload and it will continue to stay in progress. Note: Please check the screenshot link below for the same. https://www.screencast.com/t/8nP8shWWW2UY" anjalirai 56506 Used default separator style in editor but It's showing Wide Line Separator style in My Patterns Editor 6.0.2 normal normal Awaiting Review defect (bug) new 2022-09-04T06:36:36Z 2023-10-30T16:35:53Z "I have an issue on pattern design submission. While submitting my pattern, I have used default style separator but I'm getting Wide line style Separator in frontend in current WordPress Version. I did not understand what have I missed. Used Separator https://tinyurl.com/2lpyuja4 Frontend Separator https://tinyurl.com/2nd2k8by" rohit900 1 43071 User without the ability to publish are unable to edit post status Editor normal normal Awaiting Review defect (bug) new needs-unit-tests 2018-01-11T21:46:21Z 2021-12-10T05:34:24Z "If a user is able to edit a post but unable to publish a post, they can change the post status from the `wp-admin/edit.php?post_type=post_type` page using the quick edit dropdown feature. However, if the user goes to the `wp-admin/post.php?post=ID&action=edit` page, they are unable to edit the post status. User who are able to edit post_type should be able to do so from the post edit page." NathanAtmoz 6 31751 Using PgDn and PgUp keyboard keys in the editor scrolls both post edit box and the whole viewport Editor 4.1.1 normal normal Awaiting Review defect (bug) new 2015-03-24T16:42:26Z 2020-11-24T06:13:57Z "The editor in WordPress 4.1 is great, and the whole sticky sidebar is a great improvement, but editing using Page Down and Page Up keys as part of the workflow is some of the most frustrating experience one can have because they control both the cursor in the post edit box and the page itself. For example, if I go into a short post, put the cursor at the beginning of the post, and press Page Down, I'm going to end up with this: [[Image(http://i.imgur.com/CZr3FXQ.png)]] At this point, I can only see a tiny sliver of the post because the page has scrolled too. This is similar to #30919, except I'm not talking about the distraction-free mode, which I almost never use. Windows 8.1 on Chrome 42 beta, but this behavior has been the same for as long as I can remember." archon810 8 45387 Valid HTML get mangled on the frontend Editor normal normal Awaiting Review defect (bug) new has-patch 2018-11-20T18:12:49Z 2023-11-22T15:40:07Z "Open the HTML editor, paste this HTML code {{{ <p>To make this thing happen, go to Pages <a href=""http://google.com/"" target=""_blank"" rel=""noreferrer noopener"" aria-label=""This is > an aria label"">http://google.com</a></p> }}} And preview the post in frontend. The HTML is a big mangled in the output, the link don't show up properly. I suspect that it's related to one of `the_content` filters. Reproduced in 4.9.8" youknowriad 1 60005 Video block shows a blank white square with play button instead of video placeholder in mobile view. Editor 6.4 normal normal Awaiting Review defect (bug) new 2023-12-04T09:43:02Z 2023-12-04T09:43:02Z "Hello! I am using Sensei LMS to create fitness courses on my clients website. I am using video block in the editor to add short instructional videos in the course. Everything works great but when i check the course in mobile the video shows as a blank white page with play button. When i click play the video starts and everything works, but we would like to have video shown correctly like in the pc and tablet view. I contacted Sensei support and they troubleshooted it, they said that the issue is not related to their plugin. " rednasp1 1 52741 Video embeds (YouTube and Wistia) do not show on page. Editor 5.6.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-03-09T20:56:33Z 2021-04-08T20:16:52Z "When adding a Wistia video embed using the Gutenberg editor's ""embed"" block the video embed does not show in the page. Upon inspection of the DOM, I noticed that if you toggle the .wp-block-embed__wrapper from position: relative to off the video shows. The offending CSS style is located ""/wp-includes/css/dist/block-library/style.css"" on line: 502. I've simply deleted this style and the embed seems to work again without any issues across browsers and devices. To reproduce the issue, create a new post and add an embed block in between a heading and above a paragraph. Paste in a Wisitia video link and save. " kevinwoodfield 53934 Vimeo embed working in admin and not on post when using private link Editor 5.8 normal normal Awaiting Review defect (bug) new 2021-08-16T16:48:19Z 2021-11-03T13:39:07Z "Hi, Issue : Vimeo Embed link does not appear in the post (not even in the source code of the blog post) when using private link. Current Behavior : When copy/pasting a ""private video link"" from Vimeo into the WordPress Post editor (default one) the embed is done automatically, but does not display / work on the post once published. Expected behavior : Copy/paste the Vimeo link to wordpress, emebed is done autoamtically, when publishing video is visible ont he blog page. How to reproduce : - Get a Vimeo ""private link"" to a video - Paste the Private link to a new blog post - (WP will Auto embed the vimeo videpo player) - publish post - Post does not contain the video. - If you edit the same blog post, the video is in there. How to solve (workaround) > Embed the vimeo player as an ""embed"" link using the ""player.vimeo.com/video/VIDEOID"". What is causing the problem ? From my experience & debugging : This behavior is mostly with Vimeo ""private link"". Wordpress will automatically embed even is you copy the private link and it will work in the admin (and if you are connected on your vimeo account). But this will not show up on the page/blog post once published. Embed expect the following : player.vimeo.com/video/VIDEOID The private link is : vimeo.com/VIDEOID/RANDOMUNIQUEIDHERE The vimeo page via private link is providing the info for oembed (json & xml) in its source. (first time submitting a bug report here. Edit if required.)" Trouffman 54981 WP 5.9 Gallery Block Issues Editor 5.9 normal normal Awaiting Review defect (bug) new 2022-01-28T20:22:13Z 2022-01-31T09:38:46Z "I have an image gallery in all of my posts with images set to not cropped, thumbnail size, 3 or 4 columns. If I look at an old post (anything before the WP 5.9 upgrade this week), the gallery images look fine. If I go into that old post and update it (without changing anything in the gallery), the gallery images change to stretched in safari and full-size, singe column (instead of thumbnail, 3 or 4 columns) in chrome and firefox. Also, newly created posts are having the same issue since WP 5.9 upgrade. Issue is present while using either GeneratePress or Twenty Twenty-Two themes. I have tried deleting gallery and re-adding, same issue." hmnvtn 59773 WP-Admin post editor JS createPreloadingMiddleware has PHP WP_Query deliver Drafts while in editor they are not Editor 6.3.2 normal normal Awaiting Review defect (bug) new 2023-10-31T11:17:33Z 2023-10-31T11:17:33Z "The WP-Admin post editor in its (Gutenberg) content has a (custom Genesis) block whose PHP template uses WP_Query to query other posts. In this content, **WP_Query does not** deliver draft posts. In the head section of the HTML document what the post editor is however, is a WP JS {{{ wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( { ... } ) ) }}} and the argument has a property {{{ ""\/wp\/v2\/pages\/12?context=edit"" }}} (post types post id is 12) which has a sub-property ""rendered"" whose value gets filled by PHP from the same template as the post editor content does and in the context of this head JS PHP, the **WP_Query does** deliver drafts. This inconsistency lead to us discover an error where a WP PHP function return value was not checked for an error which did occur with a draft but not a ""real"" post. However I bring this to your attention. You perhaps might want to 1. use one and only one and the same PHP call and 2. in that call set the context according to your documentation whether drafts are considered or not." vialars 2 45341 WSOD when editing a page with define( 'SAVEQUERIES', true ); set in wp-config.php Editor 5.0 normal normal Awaiting Review defect (bug) new has-patch 2018-11-14T06:43:28Z 2020-11-16T06:43:02Z "WSOD when editing a page (Issue introduced between v5Beta3 and v5Beta4) {{{ [1542177584 ] PHP 7. trigger_error() /var/www/wordpress/wp-includes/functions.php:4112 [1542177584 ] PHP 6. _deprecated_hook() /var/www/wordpress/wp-includes/plugin.php:629 [1542177584 ] PHP 5. do_action_deprecated() /var/www/wordpress/wp-admin/includes/post.php:2210 [1542177584 ] PHP 4. the_block_editor_meta_box_post_form_hidden_fields() /var/www/wordpress/wp-admin/includes/post.php:2066 [1542177584 ] PHP 3. the_block_editor_meta_boxes() /var/www/wordpress/wp-admin/edit-form-blocks.php:394 [1542177584 ] PHP 2. include() /var/www/wordpress/wp-admin/post.php:160 [1542177584 ] PHP 1. {main}() /var/www/wordpress/wp-admin/post.php:0 [1542177584 ] PHP Stack trace: [1542177584 ] PHP Notice: edit_form_advanced is <strong>deprecated</strong> since version 5.0.0! Use block_editor_meta_box_hidden_fields instead. This action is still supported in the classic editor, but is deprecated in the block editor. in /var/www/wordpress/wp-includes/functions.php on line 4112 [1542177584 ] PHP Notice: edit_form_after_title is <strong>deprecated</strong> since version 5.0.0! Use block_editor_meta_box_hidden_fields instead. This action is still supported in the classic editor, but is deprecated in the block editor. in /var/www/wordpress/wp-includes/functions.php on line 4112 }}}" timhibberd 60846 When creating a new template, the Choose a pattern screen doesn't honor the `template_hierarchy` filter Editor 6.1 normal normal Future Release defect (bug) new has-patch 2024-03-26T12:49:19Z 2024-03-26T17:43:46Z "Currently, in blocks themes it's possible to use the {{{${type}_template_hierarchy}}} filter to alter the template hierarchy. However, those filters are not taken into consideration by the `Choose a pattern` popup screen that appears when creating a new template in the Site Editor, causing a mismatch between the editor and the frontend. **Steps to reproduce** 1. Add this code snippet to your site. You can use the [https://wordpress.org/plugins/code-snippets/ Code Snippets plugin]: {{{#!php <?php add_filter( 'page_template_hierarchy', function ( $templates ) { return ['single']; } ); }}} 2. Visit any page in the frontend. You will notice the Single template is used, instead of the Page template. 3. Now, go to Appearance > Editor > Templates > Add New Template > Pages and select any page. 4. Notice in the Choose a pattern screen the suggested content to start with is from the Page template, instead of the Single template. Expected result: the Site Editor should follow the filter in the same way the frontend does. So in step 4 the Single template should appear in the Choose a pattern screen, instead of the Page template. **Actual result screenshot** [[Image(https://github.com/WordPress/gutenberg/assets/3616980/7598c990-1a64-4df3-b509-47d83fc59239)]] **Expected result screenshot** [[Image(https://github.com/WordPress/gutenberg/assets/3616980/fff09fd9-5600-4969-89f6-dab6523f50de)]] **Real life use case** In WooCommerce, there are Product Category and Product Tag templates. Currently, they fall back to the default WordPress taxonomy templates, but we would like them to fall back to a custom WooCommerce template named Product Catalog. While this would work in the frontend, the experience would be confusing in the editor, as creating a Product Category archive template wouldn't suggest the same ""starting point"" from what's seen in the frontend." aljullu 1 58886 When editing a pattern getting console error on chrome browser Editor normal normal Awaiting Review defect (bug) new 2023-07-24T07:49:43Z 2023-07-24T07:49:43Z "Chrome: Version 115.0.5790.102 (Official Build) (64-bit) screenshot: https://prnt.sc/3XQEoNPkzv1A " chiragrathod103 1 55314 When saving edits to the footer in editor (beta), saving fails Editor 5.9.1 normal normal Awaiting Review defect (bug) new 2022-03-04T00:09:24Z 2022-03-04T00:09:24Z "When editing the page template, saving changes made to the footer fails while saving changes to other blocks works. When saving changes to the footer, this request {{{ POST https://apgtest.dreamhosters.com/wp-json/wp/v2/template-parts/twentytwentytwo//footer?_locale=user }}} {{{ <!-- wp:group {""style"":{""spacing"":{""padding"":{""top"":""var(\u002d\u002dwp\u002d\u002dcustom\u002d\u002dspacing\u002d\u002dlarge, 8rem)""}}},""layout"":{""inherit"":true}} --><div class=""wp-block-group"" style=""padding-top:var(--wp--custom--spacing--large, 8rem)""><!-- wp:group {""align"":""full"",""layout"":{""inherit"":true}} --><div class=""wp-block-group alignfull""><!-- wp:group {""align"":""wide"",""style"":{""spacing"":{""padding"":{""top"":""4rem"",""bottom"":""4rem""}}},""layout"":{""type"":""flex"",""justifyContent"":""space-between""}} --><div class=""wp-block-group alignwide"" style=""padding-top:4rem;padding-bottom:4rem""><!-- wp:site-title {""level"":0} /--><!-- wp:image {""id"":8,""sizeSlug"":""large"",""linkDestination"":""none""} --><figure class=""wp-block-image size-large""><img src=""https://apgtest.dreamhosters.com/wp-content/uploads/2022/03/Artboard-1-1024x665.png"" alt="""" /></figure><!-- /wp:image --><!-- wp:paragraph {""align"":""right""} --><p class=""has-text-align-right"">Proudly powered by <a href=""https://wordpress.org"" rel=""nofollow"">WordPress</a></p><!-- /wp:paragraph --></div><!-- /wp:group --></div><!-- /wp:group --></div><!-- /wp:group --> }}} results in this response {{{ 418 I'm a teapot }}} " garnitchique 45742 "When using HTTPS, ""preview post"" fails." Editor 5.0.2 normal normal Awaiting Review defect (bug) new 2018-12-22T17:21:41Z 2018-12-28T15:31:54Z "I am using WordPress 5.0.2 hosted at HostGator, but have been seeing this issue since 5.0 was released. I am using the Classic Editor plugin. If I log into my WordPress site using https://(site), write a post, and then click ""preview"", WordPress will wait and then say the post cannot be displayed. If I log into my WordPress site using http://(site), write a post, and then click ""preview,"" WordPress with show a preview of the draft as expected. I have tried disabling all plug-ins and it did not fix the problem. HostGator forces WordPress users to use ""Endurance Page Cache"" plug-in, so I cannot disable that one. I have multiple WordPress sites hosted on HostGator (RobOHara.com, Review-o-Matic.com, OHaraPress.com) and all of them have been having this issue since upgrading to 5.0. Hopefully I found a legitimate bug and didn't waste anyone's time. Keep on 'Pressin!" robohara 1 44980 When using a mobile browser (iOS 12) and the Visual Editor you won’t be able to properly select/highlight text Editor 4.9.8 normal normal Awaiting Review defect (bug) new has-patch 2018-09-21T23:46:00Z 2019-03-02T06:35:18Z "Hi folks! I was able to reproduce this issue by using the latest version of WordPress.org and also on a WordPress.com site. **Steps to reproduce the problem:** 1. Log in to your WordPress site using a browser (Safari or Chrome) on any device with iOS 12. 2. Edit or create a post/page with text on it using the Visual Editor 3. Select/highlight any word. Then try to highlight the next or previous word. **What happens** It won't let you highlight what you want. Instead, it will highlight all the paragraph or nothing. Here's a video: http://cld.wthms.co/NwMb1X (You will notice this only happens with the Visual Editor and not the Text Editor) **What I expected** To be able to highlight the text as in the Text Editor ---- **Devices where I was able to replicate this:** iPhone 6 Plus and iPad Air 2 (A1567) **OS:** iOS 12.0 **Browser:** Safari & Chrome" Geost 2 40759 Word Count Discrepancies Editor normal normal Awaiting Review defect (bug) new has-patch 2017-05-14T12:36:09Z 2020-11-24T06:27:13Z "I've noticed several discrepancies between how WordPress, Pages, Google Docs, and Word count words. Given the following text, all four count things quite differently. {{{ a 1 foo-bar e.g. jack & jill 5 @ $4.99 . fuzz@baz.blog }}} || ||= WordPress =||= Word =||= Pages =||= Docs =|| || Individual Words (a, jack, jill) || 3 || 3 || 3 || 3 || || Individual Numbers (1, 5) || 0 || 2 || 2 || 2 || || Hyphenated Words (foo-bar) || 1 || 1 || 2 || 1 || || Abbreviations (e.g.) || 1 || 1 || 2 || 2 || || Punctuation that translates to a word (&) || 0 || 1 || 0 || 0 || || Punctuation that translates to a word in this usage (@) || 0 || 1 || 0 || 0 || || Punctuation that doesn't translate to a word (.) || 0 || 1 || 0 || 0 || || Compound number ($4.99) || 0 || 1 || 1 || 2 || || Email address (`fuzz@baz.blog`) || 1 || 1 || 3 || 3 || I tend to fall in the camp of ""what would a reasonable native speaker count as a word"", which is probably closest to Word's definition, minus the punctuation that doesn't translate to a word." pento 50132 Word Counter on Classic Editor is bugged Editor 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-08T19:28:22Z 2020-11-24T16:14:30Z "On the Classic Editor, sometimes words after a new line or new paragraph are not counted properly. If you create 10 lines, each consisting of 10 words each, only 91 words will be accounted for. This seems to be mostly a JavaScript bug, but can potentially affect any other word-counting function on WP too, if their implementation is similar." matpratta 1 40964 WordPress 4.8 Pasting into editor functionality changed Editor 4.8 normal normal Awaiting Review defect (bug) new has-patch 2017-06-09T05:43:45Z 2020-11-16T06:48:14Z "Hi there, With 4.8 the paste functionality seems to have changed in the visual editor. When I paste a list of items into the 4.8 visual editor from a text editor it now strips all ""line breaks"" and I end up with one big paragraph. I can still paste the list in text view and switch back to visual view and it keeps the line breaks. This has changed in this new version. I do this process as a daily activity. " AngusMcKinnon 4 45532 WordPress 5.0 preview does not show updated content Editor 5.0 normal normal Awaiting Review defect (bug) reopened 2018-12-08T03:34:48Z 2018-12-13T03:09:59Z "When making an update to a page using the WordPress 5.0 code editor and then clicking ""Preview,"" the preview page does not display the updated content. Steps to reproduce: - Log in as an admin - Click Pages - Select a page to edit - Click the 3 dots menu on the right - Select ""Code Editor"" - Make changes to code within the editor - Click Preview in the top right Expected result: Updated code will be displayed in the preview page Actual result: The preview page displays the unedited page until the ""Update"" button is clicked" JoshCrawford 51215 WordPress 5.5 no longer respects Headings values when pasting in text Editor 5.5.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-09-02T08:15:33Z 2020-11-26T05:41:41Z "In previous versions of WordPress, if you wrote a post outside of WordPress and then imported it, the import process would respect any Headings you made - so if you set H2, H3, H4, etc, in OneNote or Word, when you imported it, the Headings values you set would transfer to the WordPress post. Now, in 5.5, this no longer happens. If you paste in text, all the Headings come in as Paragraphs. This is incredibly annoying and it is very time-consuming to go back and change them, constantly referring to your written document to see what the Headings values should be. I am submitting this as a bug, as this was not how previous versions worked and is not mentioned in the release notes, so I imagine it is unintended." gizmo2501 52054 WordPress 5.6 broke my ability to create posts. Editor normal normal Awaiting Review defect (bug) new 2020-12-12T21:59:44Z 2020-12-13T00:01:35Z "Immediately after upgrading to version 5.6, when I create/edit a post either the settings tab doesn't work or the settings column is off screen to the right and inaccessible unless I take my browser zoom down to 80% (and then I still can't get to lower items in settings). Also, after an update or a save draft, an attempt to return to the dashboard is met with the leave page warning that usually only happens when a change is made w/o saving or updating. I downgraded back to 5.3.3 as this was reliable for me." vormwmik54 52570 "WordPress 5.6.1 bug/error ""Publishing failed. The response is not a valid JSON response.""" Editor 5.6.1 normal normal Awaiting Review defect (bug) new 2021-02-19T02:59:40Z 2021-02-24T21:33:07Z "In the Latest Version of WordPress Gutenberg Editor, is having the issue of ""Publishing failed. The response is not a valid JSON response."" error. Please make update to the Wordpress, or some patch, from where the error could be originating. I am using PHP8, Apache and MySQL. Not Xampp, own installation[[Image(https://imgur.com/a/Su24bGJ)]]" djacob56 1 52918 WordPress 5.7 block parent focus bug for reusable block Editor 5.7 normal normal Awaiting Review defect (bug) new 2021-03-26T08:59:53Z 2021-04-24T10:17:44Z "Hi, I just made the change to WordPress 5.7 from Wordpress 5.6.2 and I experience a rather strange behavior for reusable blocks. On 5.6.2 when I click on a reusable block I am prompted with an info box showing me the name of the block and an option to edit what's inside the block. That's perfect and make completely sense. In 5.7 this behavior changed, if I click on a reusable block by default it selects the child inside and I don't see the info box anymore. To select the parent I need to hover the block icon to see the parent icon. That's not really easy to understand and I made multiple mistake by adding additional blocks in a reusable block just because I was not aware that the focus was on the children and not the parent. I check the release note and was surprise to see that this was supposed to have changed: https://make.wordpress.org/core/2021/02/23/inner-blocks-api-changes/ Is it a wrong setting I put, something I miss or a bug? " paulbouisset 58032 WordPress 6.2 breaks post edit screens in Safari 13 Editor 6.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-03-31T10:44:51Z 2023-04-01T22:09:12Z "After updating to 6.2, post edit screens are white screen in Safari 13.1.2. Many block editor related JS errors in the Console, see attached screenshot. Version 6.1.1 was working fine, I could work in the code editor without issues. I fully expect this ticket to get cancelled because of older Safari version. But my mac does not go beyond High Sierra, so this is it then for older Macs and Safari. I have a slight hope the errors are fixable. " rembem 60662 "WordPress 6.5-beta3-57738 - Full Site Editor breaks after installing ""Contact Form 7""" Editor trunk normal normal Awaiting Review defect (bug) new reporter-feedback 2024-02-29T22:38:04Z 2024-03-01T07:48:57Z "Hi- I am using WordPress 6.5-beta3-57738 running Twenty Twenty-Four CHILD theme. I ran into an issue after installing Contact Form 7 plugin where the site editor breaks as shown in the attached images. BEFORE-INSTALLING-CONTACT-FORM-7-PLUGIN https://emailmarketing.capstonebpo.com/wp-content/uploads/2024/02/before-installing-contact-form-7.jpg AFTER-INSTALLING-CONTACT-FORM-7-PLUGIN https://emailmarketing.capstonebpo.com/wp-content/uploads/2024/02/after-installing-contact-form-7.jpg Rajesh" capstonebpo 59565 WordPress Block Editor Tag Limit Bug Editor 6.3.2 normal normal Awaiting Review defect (bug) new 2023-10-09T05:43:31Z 2023-10-25T03:43:50Z "Hi, WordPress mentioned there is no tag limit on its platform. But, Block editor wont take any tags above 200. On adding more tags above 200, it will add the tag but then remove the last tag in alphabetical order. On installing classic editor plugin, the issue is resolved. Looks like there is no limit in classic editor. Can this bug be resolved on block editor of wordpress? Thanks " prowp7 1 52305 WordPress Classic & Gutenberg Editor - ENTER key casing Textarea View Position To Jump Editor normal normal Awaiting Review defect (bug) new 2021-01-15T11:10:01Z 2021-02-09T20:12:24Z "Steps to reproduce: (on Windows 10 x64, Chrome latest browser version) 1) Install latest and greatest WordPress* - with ""2021"" theme as active (theme is irrelevant, actually) - absolutely no plugins should be active EXCEPT WordPress Classic Editor: **wordpress.org/plugins/classic-editor/** * NOTE: exact/latest WP version is not actually relevant, either, because this bug is an ongoing issue for at least a 6-12 months now - can't say for sure - it's just that I finally found the time to investigate it on a clean fresh system. - Activate plugin, switch to **Classic Editor** mode for new posts, and switch from **Visual** to **Text** input mode (this is very important!). 2) Create new post in Text mode - Simply copy-paste provided demo html text (demo lorem ipsum text with sufficient length should be used, to provide enough ""page scroll"" or reduce browser's window width to approx 1200 pixels to emulate older laptop computer) + add some h3 tags (for easier orientation, as long as you do not scroll all the way down to the end of the text, but position mouse cursor to the end of a paragraph somewhere in the middle you should be able to reproduce this bug. - save the post - now edit the post (it is best to activate DevTools and disable browser caching just to be sure everything is freshly loaded every time) - when you **position mouse cursor somewhere in the middle** of the article **at the end of a paragraph or html element** and hit **ENTER** key on the keyboard (to create new paragraph line), Editor will jump its position and text will completely shift outside visible area to the top! This is a bug that exists for about a year or so and it is very annoying (to say at least), particularly to us who are used to work directly with html tags in Text mode. Bug seems to originate in TinyMCE editor's scroll function that is triggered when we hit Enter key (according to debugger). It uses math function to calculate position of the top toolbar with commands. (?) See provided video recording to visualize the bug itself. Sometimes it may not occur, but try to repeat it again, and it should reproduce. I would likely to know if there's an easy fix for this. Thanks!" Darko A7 60558 WordPress Core CSS produces error in NU HTML Checker Editor 6.4.3 normal normal Awaiting Review defect (bug) new close 2024-02-16T08:19:09Z 2024-02-16T10:12:52Z "The WordPress Default Block Library file Produces these types of errors in NU HTML Checker. File Path: /wp-includes/css/dist/block-library/style.min.css I am attaching the screenshot for you to look over. Screenshot URL: https://share.cleanshot.com/XTb38NMBGlQPPwCGTqYS" umang7 1 52308 "WordPress Editor does not preserve ""blank"" (empty) lines in Code/Text mode" Editor normal normal Awaiting Review defect (bug) new 2021-01-15T13:51:13Z 2021-01-15T13:51:13Z "This issue exists in WordPress Classic (TinyMCE) Editor for ages, and similar issue exists in new Block editor, when used in Code mode. I will try to explain it as briefly as possible, but there's a video attached for a quick demonstration, as well. **1) WordPress Block Editor** - Switch to Code mode - Type a lot of html text with some tags (e.g. h3, h4, h5 sections and paragraphs) - Whenever you insert an empty line between title tags (h1-h6), on scroll action Editor will remove them! This condenses all the text and makes our brains short circuiting e.g. we can no longer easily visualize different paragraphs and sections when working with huge amount of text / lengthy articles! This behavior should be fixed / js code that is doing this must be optional and left disabled, if we desire so. Or removed completely, as it is counter-intuitive and counter-productive. **2) WordPress Classic Editor** - Situation with Classic editor is little better. As long as we stay in Text mode, editor will keep our line spacings between header titles/tags and other tags and paragraphs. - However, as soon as we switch to Visual Editing mode, and update the article, all the line spaces / ""custom formatting"" will be lost! Now, I need to switch on occasion to Visual, but I like to mostly work in Text mode, because of full control and freedom. The HTML output produced in Code/Text modes does not actually change, so this annoying thing is not even justified by WYSIWYG standard e.g. it does not affect the end result. But it makes our lives miserable with the editor's mind of its own. To be honest, I'd like to have a simple editor, much like this one we have here on Track during posting issues. It presents us with a plain textarea input and commands on top, and that's it! It works. Please see attached video for illustration. Thanks!" Darko A7 59092 WordPress Editor not working after updating to 6.3 - Showing Blank Screen Editor 6.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-08-13T11:44:49Z 2023-11-09T18:49:51Z I’m getting a blank page when I add a new post or edit a post. I cleared all caches and cookies but not worked. Tried deactivating all plugins, changing the theme to Twenty Twenty-Three. But the issue is not fixed yet. jaagofoundation 59100 WordPress Editor showing content in full width for custom post type Editor 6.3 normal normal Awaiting Review defect (bug) new close 2023-08-14T10:35:50Z 2023-08-14T12:24:29Z "Custom post type block editor content showing in full width by default and we can not make it wide width by default setting provided by block. In previous wordpress 6.2, it's working fine. But, from wordpress 6.3 this error occurring. " ravigadhiyawp 58984 WordPress FontSizePicker Default Label issue Editor 6.2.2 normal normal Awaiting Review defect (bug) new 2023-08-04T20:41:49Z 2023-08-05T03:57:39Z "If you have five or fewer font sizes, the WordPress `FontSizePicker` component will default to the labels 'S / M / L / XL / XXL'. There doesn't appear to be a way to change these labels, which can problematic, for example if your names begin XS rather than S, or you use numbers for names e.g. 10 / 30 / 50. To recreate the issue, within `theme.json`, add the following (or another) example of 5 or fewer default typography sizes to `settings.typography.fontSizes`: {{{ ""fontSizes"": [ { ""size"": ""clamp(0.625rem, 0.3438rem + 0.75vw, 1rem)"", ""slug"": ""10"", ""name"": ""10"" }, { ""size"": ""clamp(1rem, 0.7188rem + 0.75vw, 1.375rem)"", ""slug"": ""20"", ""name"": ""20"" }, { ""size"": ""clamp(1.25rem, 0.9688rem + 0.75vw, 1.625rem)"", ""slug"": ""30"", ""name"": ""30"" }, { ""size"": ""clamp(1.5rem, 1.2188rem + 0.75vw, 1.875rem)"", ""slug"": ""40"", ""name"": ""40"" }, { ""size"": ""clamp(1.875rem, 1.5938rem + 0.75vw, 2.25rem)"", ""slug"": ""50"", ""name"": ""50"" } ] }}} Then when editing any page, attempt to amend the paragraph size of text (or any other block that uses your font sizes). You'll see that the labels within the `FontSizePicker` component are 'S / M / L / XL / XXL', which have no relationship to the names that you'd set in `theme.json`. Part of a solution could be to add a 'shortLabel' field to `theme.json` `settings.typography.fontSizes`, which would be used instead of the defaults by the `FontSizePicker` react component, when five or fewer font sizes are used. An alternative solution would be to provide a slider, similar to padding and margin resizing." paulpooka 50703 WordPress classic editor accessibility issues for insert/edit links list joedolson* Editor 5.4.2 normal normal Future Release defect (bug) accepted 2020-07-20T13:02:44Z 2021-06-24T19:16:09Z "We are facing some keyboard accessibility issues with Insert/edit link list from the editor. We are not able to access the items from the list using up arrow, down arrow, enter and space keys. Please find the below image for reference. [[Image(http://meedev.westus.cloudapp.azure.com/dev-old/Wp_editor_issue.png)]]" fornandakishore 55361 WordPress database error Deadlock found when trying to get lock on wp_get_global_styles_svg_filters Editor 5.9.1 normal normal Awaiting Review defect (bug) new close 2022-03-10T07:36:33Z 2023-10-30T16:59:30Z "I don't know where to ask this question but i have these error messages in my log file. The template just calls wp_body_open after the body tag. I can see a filter is added for body open that renders svg filters in the default_filters.php in wordpress. https://share.getcloudapp.com/5zuLpONl https://share.getcloudapp.com/6quZ7Jvz But how do i get rid of these entries in the error log and where are they coming from? It seems that wordpress is triggering these. Can you please advice on how to get rid of these messages in the error log WordPress database error Deadlock found when trying to get lock; try restarting transaction for query DELETE FROM `wp_options` WHERE `option_name` = '_transient_global_styles_svg_filters_champion' made by require('wp-blog-header.php'), require_once('wp-includes/template-loader.php'), include('/themes/champion/template_sections.php'), get_header, locate_template, load_template, require_once('/themes/champion/header.php'), wp_body_open, do_action('wp_body_open'), WP_Hook->do_action, WP_Hook->apply_filters, wp_global_styles_render_svg_filters, wp_get_global_styles_svg_filters, get_transient, delete_option " BackuPs 53208 WordPress editor documentation: a few suggested changes Editor normal normal Awaiting Review defect (bug) new needs-docs 2021-05-14T15:05:09Z 2021-05-14T15:06:52Z "These videos are not working (tested on Firefox and Safari): https://wordpress.org/support/article/wordpress-editor/#how-does-the-block-editor-work https://wordpress.org/support/article/wordpress-editor/#adding-a-block Here it says ""three sections"" and then only mentions ""1)"": https://wordpress.org/support/article/wordpress-editor/#the-anatomy-of-a-block" tomjdevisser 52556 WordPress is adding   always Editor 5.6.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-02-17T14:44:45Z 2021-02-23T10:01:41Z "Hello, This bug is happening only if gutenberg editor is disabled. Ill try to explain in best way how wordpress is adding this  . 1. Create a new page 1.1 Type a title or without both give same result. 1.2 In content there should be nothing 1.3 Publish 2. After publish try to leave the page editing lest say clicking on dashboard from the menu. Wordpress will promp asking to save changes. If you are in visual editor and swap to text editor you will notice that   was added. 3. If you click update everytime wordpress will add a new   In inspector i have notice this script {{{ <script type=""text/javascript""> addLoadEvent = function(func) { if (typeof jQuery !== 'undefined') jQuery(document).ready(func); else if (typeof wpOnload !== 'function') { wpOnload = func; } else { var oldonload = wpOnload; wpOnload = function() { oldonload(); func(); } } } ; var ajaxurl = '/luxdigital/wp-admin/admin-ajax.php' , pagenow = 'page' , typenow = 'page' , adminpage = 'post-php' , thousandsSeparator = ' ' , decimalPoint = ',' , isRtl = 0; </script> }}} If i put a breakpoint and reload the page will return thousandsSeparator undefined I dont know much about this function and the idea behind it but any ideas how to prevent this would be great. " snuffybg 1 53254 YouTube blocks becomes uneditable Editor 5.7.2 normal normal Awaiting Review defect (bug) new 2021-05-21T20:25:55Z 2021-05-22T05:20:42Z "Sometimes embed YouTube blocks become uneditable in Gutenberg. It happens when you try to click them and they try to play, sometimes I don't understand why it happens. Below an example of a post with youtube blocks that I tried on empty installation. Blocks randomly become bugged and uneditable in Gutenberg on Chrome 90.0.4430.212 and 76.0.4017.123. To reproduce the bug 1. Enter the code below on a new post in Gutenberg 2. Make several random clicks on youtube block 3. Look at the description of the blocks, sometimes it becomes uneditable and unclickable I'm not a developer, just a user, so I try to tell you about the bug and I hope it will be resolved sometime. {{{ <!-- wp:embed {""url"":""https://youtu.be/fsFXomXVqrY"",""type"":""video"",""providerNameSlug"":""youtube"",""responsive"":true,""className"":""wp-embed-aspect-16-9 wp-has-aspect-ratio""} --> <figure class=""wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio""><div class=""wp-block-embed__wrapper""> https://youtu.be/fsFXomXVqrY </div><figcaption><em>Запись прямого эфира анонсирующей части мероприятия PDXCON REMIXED</em></figcaption></figure> <!-- /wp:embed --> <!-- wp:paragraph --> <p>Завершилась анонсирующая часть мероприятия PDXCON, которое в этом году получило название PDXCON REMIXED. Если у вас нет времени на просмотр полной записи прямого эфира или вы не понимаете на английском, то эта статья для вас. Читайте о всех анонсах, сделанных на мероприятии, ниже. </p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Victoria 3</h2> <!-- /wp:heading --> <!-- wp:embed {""url"":""https://youtu.be/siZXs4d5Gqg"",""type"":""video"",""providerNameSlug"":""youtube"",""responsive"":true,""className"":""wp-embed-aspect-16-9 wp-has-aspect-ratio""} --> <figure class=""wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio""><div class=""wp-block-embed__wrapper""> https://youtu.be/siZXs4d5Gqg </div></figure> <!-- /wp:embed --> <!-- wp:paragraph --> <p>Самым главным по значимости анонсом, несомненно, стала глобальная стратегия Vicotira 3, которую ждут фанаты предыдущих частей уже длительное время. Её ожидание было настолько долгим, что геймеры начали проводить параллели с Half-Life 3 и начали склоняться к выводу, что третьей части выйти не суждено. Однако Paradox удивили всех и всё же анонсировали долгожданное продолжение.</p> <!-- /wp:paragraph --> <!-- wp:image {""sizeSlug"":""large"",""linkDestination"":""media""} --> <figure class=""wp-block-image size-large""><a href=""https://cdn.akamai.steamstatic.com/steam/apps/529340/ss_1c61cf3516a3b596fbf65ee16db176c4b14d8162.1920x1080.jpg?t=1621622723""><img src=""https://cdn.akamai.steamstatic.com/steam/apps/529340/ss_1c61cf3516a3b596fbf65ee16db176c4b14d8162.1920x1080.jpg?t=1621622723"" alt=""""/></a></figure> <!-- /wp:image --> <!-- wp:paragraph --> <p>Victoria 3 – это глобальная стратегия, в которой игроки смогут взять под своё управление любое государство XIX-XX веков. В третьей части будет расширена знаменитая система менеджмента населения, в которой присутствует несколько классов и различные политические течения, а также улучшена торговля. Строительство заводов, импорт и экспорт, а также другие элементы Paradox обещают сделать не только лучше и проработанное, но и доступнее новичкам. И, конечно же, игра будет выполнена на самой последней версии графического движка и предложит приятную картинку. </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Дата выхода Victoria 3 оглашена не была.</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Prison Architect: Second Chanses</h2> <!-- /wp:heading --> <!-- wp:embed {""url"":""https://youtu.be/OwrHv8eNlr4"",""type"":""video"",""providerNameSlug"":""youtube"",""responsive"":true,""className"":""wp-embed-aspect-16-9 wp-has-aspect-ratio""} --> <figure class=""wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio""><div class=""wp-block-embed__wrapper""> https://youtu.be/OwrHv8eNlr4 </div></figure> <!-- /wp:embed --> <!-- wp:paragraph --> <p>Стратегия о строительстве и управлении тюрьмой <a href=""https://strategycon.ru/prison-architect/"">Prison Architect</a> получит дополнение Second Chanses, посвящённое программам реабилитации заключённых. С помощью занятий по конфликтологии, зоотерапии и психологическим встречам игроки смогут попытаться реабилитировать самых злостных нарушителей и сделать из них адекватных членов общества. Разумеется, это поможет им раньше освободиться из тюрьмы.</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Кроме того, дополнение позволит увеличивать сроки наказания за плохое поведение и уменьшать за хорошее. За рецидивистов игроки получат штрафы, а за досрочно освобождённых – приятные бонусы. Опытные заключённые смогут торговать в булочных, ресторанах и тюремных мастерских.</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Дополнение выйдет <strong>16 июня</strong>.</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Crusader Kings III: Royal Court </h2> <!-- /wp:heading --> <!-- wp:embed {""url"":""https://youtu.be/cvid3edWqcg"",""type"":""video"",""providerNameSlug"":""youtube"",""responsive"":true,""className"":""wp-embed-aspect-16-9 wp-has-aspect-ratio""} --> <figure class=""wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio""><div class=""wp-block-embed__wrapper""> https://youtu.be/cvid3edWqcg </div></figure> <!-- /wp:embed --> <!-- wp:paragraph --> <p><a href=""https://strategycon.ru/crusader-kings-3/"">Crusader Kings III</a> также получила анонс нового дополнение под названием Royal Court. DLC будет посвящено королевскому двору как средству демонстрации власти и могущества правящей династии. Игроки смогут создать величественный королевский двор, который понравится вассалам и привлечёт множество других людей.</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Дополнение добавит в игру тронный зал, возможность проводить суды над вассалами и придворными, судя последних по справедливости (или политическим мотивам). С помощью еды и изысканных украшений можно будет произвести впечатление на влиятельных персон, а ко двору смогут прибыть влиятельные мыслители и талантливые художники, которые смогут создать новые шедевры.</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Дата выхода Royal Court пока что <strong>не уточняется</strong>.</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Hearts of Iron IV: No Step Back</h2> <!-- /wp:heading --> <!-- wp:embed {""url"":""https://youtu.be/pPrxHwovzUs"",""type"":""video"",""providerNameSlug"":""youtube"",""responsive"":true,""className"":""wp-embed-aspect-16-9 wp-has-aspect-ratio""} --> <figure class=""wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio""><div class=""wp-block-embed__wrapper""> https://youtu.be/pPrxHwovzUs </div></figure> <!-- /wp:embed --> <!-- wp:paragraph --> <p>Пока что без особых подробностей был показан тизер-трейлер нового дополнения No Step Back для глобальной стратегии о Второй мировой войне <a href=""https://strategycon.ru/hearts-of-iron-4/"">Hearts of Iron IV.</a> Исходя из тизера, DLC ""Ни шагу назад"" (если перевести название на русский) будет посвящено странам советского блока и расширит контент при игре за них. В тизере демонстрируется знаменитая советская промышленная машина.</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Дата выхода No Step Back пока что <strong>не уточняется</strong>.</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Empire of Sin: Make it Count!</h2> <!-- /wp:heading --> <!-- wp:embed {""url"":""https://youtu.be/RyyjrfFHIBM"",""type"":""video"",""providerNameSlug"":""youtube"",""responsive"":true,""className"":""wp-embed-aspect-16-9 wp-has-aspect-ratio""} --> <figure class=""wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio""><div class=""wp-block-embed__wrapper""> https://youtu.be/RyyjrfFHIBM </div></figure> <!-- /wp:embed --> <!-- wp:paragraph --> <p>Дополнение Make it Count! добавит в гангстерскую стратегию о преступном Чикаго 1920-х годов <a href=""https://strategycon.ru/empire-of-sin/"">Empire of Sin</a> нового босса, Меера Лански по прозвищу ""Бухгалтер"". Он вместе со своими ребятами по прозвищу the Fixers умеет решать проблемы за определённую стоимость. В DLC можно будет пройти новые миссии сюжетной линии Бухгалтера, разблокировать новые игровые возможности и познакомиться с наставником Лански, Арнольдом Ротштейном. Все указанные персонажи являются реальными историческими личностями.</p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Дополнение выйдет <strong>скоро</strong>, и пока что не уточняется конкретная дата выхода.</p> <!-- /wp:paragraph --> <!-- wp:heading --> <h2>Cities: Skylines: Content Creator Pack: Bridges & Piers</h2> <!-- /wp:heading --> <!-- wp:embed {""url"":""https://youtu.be/O1TGm7tGgC8"",""type"":""video"",""providerNameSlug"":""youtube"",""responsive"":true,""className"":""wp-embed-aspect-16-9 wp-has-aspect-ratio""} --> <figure class=""wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio""><div class=""wp-block-embed__wrapper""> https://youtu.be/O1TGm7tGgC8 </div></figure> <!-- /wp:embed --> <!-- wp:paragraph --> <p>И наконец, наиболее незначительный анонс мероприятия: пак моделей для градостроительной стратегии Cities: Skylines. Мини-дополнение Bridges & Piers добавит новые здания, которые позволят разнообразить береговую линию ваших городов, которые были разработаны мододелом Андресом Кортинь, известным под ником Armesto. </p> <!-- /wp:paragraph --> <!-- wp:paragraph --> <p>Дополнение <strong>уже доступно</strong> в Steam за символическую стоимость.</p> <!-- /wp:paragraph --> }}} " arskrigitsioniets 47520 [WP5.2.1] Crop images in IE11 not working Editor 5.2.1 normal normal Awaiting Review defect (bug) new 2019-06-10T17:20:19Z 2023-03-12T21:54:32Z "Hello, I'm using IE11 with WordPress 5.2.1 and if I create a gallery with the Gutenberg editor and turn off the function ""crop images"" on the right bar the last picture is not resized (I created a four column gallery and the last picture is one in the last line). The last picture is 100% width on the complete site. In Firefox and Edge it works, the picture has the right size. " vincenz17 55586 `get_block_wrapper_attributes` generates PHP notices. Editor 5.6 normal normal Awaiting Review defect (bug) new dev-feedback 2022-04-18T16:12:37Z 2022-04-21T20:48:43Z "To replicate this issue: 1. Set both `WP_DEBUG` and `WP_DEBUG_LOG` in wp-config.php to `true` so that errors will be logged to `wp-content/debug.log`. 2. Using WP-CLI, run `wp shell`. 3. Call `get_block_wrapper_attributes();` in the terminal. 4. Note the errors and call stack output in `wp-content/debug.log`. It will look something like this: [18-Apr-2022 16:05:27 UTC] PHP Notice: Trying to access array offset on value of type null in wp-includes/class-wp-block-supports.php on line 94 [18-Apr-2022 16:05:27 UTC] PHP Notice: Trying to access array offset on value of type null in wp-includes/class-wp-block-supports.php on line 96 `get_block_wrapper_attributes()` makes a singleton call to retrieve the `WP_Block_Supports` object, which in turn calls `apply_block_supports` on that object. The `apply_block_supports` method presumes that there is an editor block already assigned to the object, and attempts to retrieve the block type by using the `blockName` set on in the array of the `$block_to_render` property. Since the default value on the `WP_Block_Supports` object is `null`, this generates the error. It seems that the easiest solution here is to return an empty array from `apply_block_supports` if `$block_to_render` is not set. Since `get_block_wrapper_attributes` is a public function that does not accept a block, it can be called outside of a sequence where `WP_Block_Supports` might already have set properties on the object. " jmichaelward 2 57599 `wp_theme_json_data_default` filter is not properly to setting `settings.spacing.padding` value Editor 6.1.1 normal normal Awaiting Review defect (bug) new 2023-02-01T18:21:06Z 2023-02-02T16:25:29Z "There appears to be an issue in how the `theme.json` filters get currently applied. When trying to use the filter on the `default` layer to enable the `settings.spacing.padding` option it doesn't work as expected. Within a plugin I'm trying to call the filter like so: {{{#!php <?php /** * Plugin Name: Test */ add_filter( 'wp_theme_json_data_default', 'test_filter_core_theme_json' ); function test_filter_core_theme_json( $theme_json ) { $new_data = [ 'version' => 2, 'settings' => [ 'spacing' => [ 'margin' => true, 'padding' => true, ], ], ]; return $theme_json->update_with( $new_data ); }; }}} And for Theme I'm using a completely empty theme that has this `theme.json` file: {{{#!json { ""version"": 2, ""$schema"": ""https://schemas.wp.org/trunk/theme.json"" } }}} The expected result is that the padding dimension panel in for example the group block could be added. But that isn't the case. At the same time the `margin` option which I've also added in the example above does work as intended. If you change the `theme.json` file to set the `padding` option to true it does work. And also if you change the filter that gets used to the `theme` layer it works as expected: {{{#!php <?php /** * Plugin Name: Test */ add_filter( 'wp_theme_json_data_theme', 'test_filter_core_theme_json' ); function test_filter_core_theme_json( $theme_json ) { $new_data = [ 'version' => 2, 'settings' => [ 'spacing' => [ 'margin' => true, 'padding' => true, ], ], ]; return $theme_json->update_with( $new_data ); }; }}} or {{{#!json { ""version"": 2, ""$schema"": ""https://schemas.wp.org/trunk/theme.json"", ""settings"": { ""spacing"": { ""padding"": true } } } }}} " fabiankaegy 1 53620 add_meta_box $callback firing after publish or update but not updating dom html Editor 5.7.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-07-07T15:02:56Z 2023-08-11T19:42:17Z "Basically, the callback in add_meta_box is firing after I update my post (got the spinning circle in the meta box header), returning new updated html, but the new html is not applied to the actual page. The following metabox just renders a random number: {{{#!php <?php add_action('admin_init', function () { // Add our meta box for the ""post"" post type (default) if ( current_user_can(""send_notifications"") ) { $post_types = [""post"", ""go_live""]; foreach ($post_types as $post_type) { add_meta_box( 'cabtv_notif_on_post', 'Notifications', function ($post) { echo rand(); }, $post_type, 'side', 'high' ); } } }); }}} After the post is published / updated, the metabox should regenerate and a new random number should display... presumably... otherwise why is it called? I notice the entire wp-admin/post.php page is downloaded in the developer tools network tab after updating the post, and if I inspect the response I can see that the random number is different, however the original page remains the same." hedgehog90 1 55728 baseURL missing for remotely fetched editor styles Editor 5.9.3 normal normal Awaiting Review defect (bug) new 2022-05-13T23:29:40Z 2022-05-13T23:29:40Z "Note: I would have created a ticket rather in the Gutenberg repository, but the affected code is in the WordPress core. When an editor style is added (using `add_editor_style`) as remote URL (not as path to a file), the editor style definition from `get_block_editor_theme_styles()` passed to the Gutenberg Block Editor doesn't contain a `baseURL` field. Relevant code: https://core.trac.wordpress.org/browser/tags/5.9.3/src/wp-includes/block-editor.php#L538 This missing `baseURL` field prevents the Gutenberg CSS post-processing from rewriting the stylesheet-relative URLs inside the CSS, resulting in broken `url(...)` references and preview. When the `baseURL` is added to remotely fetched styles, too, using the known CSS file URL, the URL rewrite issues are fixed and everything looks correctly: {{{#!php <?php // [...] $styles[] = array( 'css' => wp_remote_retrieve_body( $response ), 'baseURL' => $style, // added '__unstableType' => 'theme', ); // [...] }}} " strarsis 2 55484 class-wp-editor.php line 1697 Editor 5.9.2 normal normal Awaiting Review defect (bug) new 2022-03-30T00:46:36Z 2022-03-31T19:32:19Z "Line 1697 of class-wp-editor.php should end with a semicolon. Otherwise, if the page is compressed errors are in the console and the editor isn't functioning correctly." karin2 1 50249 color-picker dashicon not showing Editor 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-25T23:05:26Z 2021-04-20T05:21:34Z "When creating a PanelBody in the InspectorControls for Gutenberg block, and using 'color-picker' from Dashicons, no icon is rendered. Other dashicons are working, but 'color-picker' is not. Sample code: {{{#!javascript createElement(PanelBody, { title: __('Border color','textdomain'), initialOpen: false, icon: 'color-picker' }, createElement(ColorPicker, { color: attributes.PARAGRAPHSTYLES_BORDERCOLOR, disableAlpha: false, onChangeComplete: changeParagraphStyleBorderColor }) ) }}} " Lwangaman 52215 conflict with useBlockProps() Editor normal normal Awaiting Review defect (bug) new 2021-01-04T11:37:55Z 2021-01-04T16:48:57Z "Hi I have a conflict when I use apiVersion: 2. I create a map with leaflet and a geosearch. When I use useBlockProps and activate apiVersion: 2, the component it's rerender when the mouse mouve. And this action close automatically the search box. It's because the component rerender. Somebody have a solution for prevent this rerender ?" picfab 1 59104 duotone is not applied to videos in the cover block in safari Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-08-14T16:01:43Z 2023-08-22T20:49:58Z "Dear Team, duotone (svg filter) is not applied to videos in cover block in safari (screenshot safari). In edge for example it works (screenshot ms edge). I would be very happy about a solution. Many greetings Kiril" kiandept 2 42222 editor removing pre tag Editor 4.9 normal normal Future Release defect (bug) new 2017-10-14T17:08:14Z 2020-12-16T19:57:24Z "When in Text mode, I enter a `<pre>` tag, with text in it all spaced out. Switch to Visual mode, and the `pre` tag is removed, and the text spacing is removed. Switch back to Text mode, there is no `pre` tag or spacing. I'm not sure when this changed. I only noticed it because I wanted to test editor styles and switched to Visual mode (I usually stay in Text mode all the time). I got this in the trunk version, but also on a site that is using WP 4.7.6." joyously 2 55065 galleries not working properly Editor normal normal Awaiting Review defect (bug) new 2022-02-03T18:29:43Z 2022-02-08T04:21:50Z "1. can't drag and drop to reorganize photos within a gallery 2. if there is a ""hanging"" single photo in a gallery, it is not flush with the rest of the gallery 3. when centering a gallery, the photos are aligned single file down the page as opposed to in rows of 2-3, as specified. I.e., it's no longer a WYSIWYG editor as far photos are concerned. " pantsonfire77 1 54931 get_block_template filter not fired when template saved in posts Editor 5.9 normal normal Awaiting Review defect (bug) new has-patch 2022-01-26T15:45:54Z 2023-10-15T14:56:16Z "The `\get_block_template()` function fires a 'get_block_template' filter at the end that allows for plugins to filter the content etc. However, this only works if the template was retrieved from a theme's template file, if the template has been edited it is saved into the `posts` table. When a template (part) is found in the `posts` table the function exits early with the found template but does not wrap the return in a call to the 'get_block_template'. This means plugins and custom code do not get a chance to filter the template's content or properties when re-editing after a template has had an initial edit." ianmjones 54655 gutenberg can run script when use preview Editor 5.8.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2021-12-18T10:43:24Z 2021-12-18T13:48:58Z "1. add new page or post 2. add html code : <img src=1 onerror=console.log(123)> 3. click Preview button 4. script is fired in brower ; chrome console output 123 can you fix this problem?" lizhe1985 33158 inline toolbar: incorrect position if link spans over two lines Editor 4.3 normal normal Future Release defect (bug) new 2015-07-28T20:47:41Z 2019-07-04T12:30:16Z iseulde 1 53026 "register_block_type_from_metadata fails if path points to a JSON file that is not named ""block.json""" Editor 5.5 normal normal Awaiting Review defect (bug) new dev-feedback 2021-04-13T14:43:43Z 2021-04-26T18:06:11Z "If a path to a file is given that does not end with ""block.json"", the function will exit early and the block won't be registered because the path to the json file is not found. The documentation states that either a directory or a path to a JSON file can be given: {{{ Parameters #Parameters $file_or_folder (string) (Required) Path to the JSON file with metadata definition for the block or path to the folder where the block.json file is located. }}} Example: register_block_type_from_metadata() is called with $path = path_join(__DIR__,'block-section.json'): {{{#!php <?php $path = path_join(__DIR__,'block-section.json'); register_block_type_from_metadata($path); }}} in register_block_type_from_metadata this test is performed: {{{#!php <?php function register_block_type_from_metadata( $file_or_folder, $args = array() ) { 195 $filename = 'block.json'; 196 $metadata_file = ( substr( $file_or_folder, -strlen( $filename ) ) !== $filename ) ? 197 trailingslashit( $file_or_folder ) . $filename : 198 $file_or_folder; 199 if ( ! file_exists( $metadata_file ) ) { 200 return false; 201 } }}} wich results in ""ction.json"" ""ction.json"" is not equal to $filename (""block.json""), so the $metadata_file will be assigned to a wrong path, in this case {{{ ""/var/www/html/wp-content/plugins/artifacts-section-block/block-section.json/block.json"" }}} " artifacts 60834 separators do not always show on page Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2024-03-24T18:43:45Z 2024-03-25T08:09:52Z It appears that separators do not show when the page is viewed under some conditions. We suspect it is when a photo is loaded just above the separator after the page has been saved. Deleting the separator and replacing it does not work. Adding a paragraph between the separators and photo does not work. Only adding a second separator will result in a single separator to show on the viewed page. lyleleverich 9 56780 shortcode block in block-based template part in a classic theme does not get expanded costdev Editor 6.1 high normal 6.6 defect (bug) assigned changes-requested 2022-10-10T14:03:01Z 2024-02-23T13:12:44Z "While testing the new feature in 6.1 (w/ 6.1-beta3) for a classic theme to include block-based template parts, I discovered that shortcode blocks in such template parts are not expanded (their render callbacks are not called). The details are in my [https://make.wordpress.org/core/2022/10/04/block-based-template-parts-in-traditional-themes/#comment-43901 comment on the Dev Note] announcing this new feature. Note: creating the ticket here in Trac, rather than the GB GitHub, because that's where @mamaduka asked me to open in" pbiron 41229 the tag read more is not working Editor 4.8 normal normal Awaiting Review defect (bug) new 2017-07-03T12:17:48Z 2017-07-03T22:11:01Z "Hello, I have wordpress on a Hebrew language and when I try to add read more tag on post it's not show up in the frontend" yohanankap 4 59043 the_excerpt() function return excerpt with different length in page load and ajax request on WordPress 6.3 Editor 6.3 normal normal 6.6 defect (bug) reopened has-patch 2023-08-10T07:17:00Z 2024-03-20T01:37:22Z "I'm using `the_excerpt()` function in a post loop that display posts from a custom WP query for ""Post"" post type. Using the same query with pagination parameter and same post loop to display more posts using AJAX. Recently I noticed that the excerpt length was different on page load & AJAX load. I think, it's started after updating to WordPress 6.3. Another user also raised a related support thread in support forum. https://wordpress.org/support/topic/unexpected-behavior-in-post-loop-after-sending-ajax-request/" sarathlal 58236 theme.json customTemplates with child themes work wrong Editor 6.3 normal normal Awaiting Review defect (bug) new 2023-05-02T18:35:21Z 2023-05-02T18:35:21Z "If you use child themes, then customTemplates in theme.json does not work and behaves badly 1. It is not possible to delete or overwrite parent custom template - neither false nor empty array helps 2. It is not possible to create a new custom template - it simply does not appear 3. and what is strange - if you try to create your own custom template, it will throw away the naming and parent template at that position, so then when you select the template for the page, it doesn't show the title but the name. Example - if you make a child theme from twenty-three, and you type {{{ ""customTemplates"": [ { ""name"": ""no-title"", ""postTypes"": [ ""page"" ], ""title"": ""No title"" }], }}} so when the page is selected, it will display 'blank' instead of 'Blank' (blank is the name of the first template in the parent twenty-three theme). If you try {{{ ""customTemplates"": [{}, { ""name"": ""no-title"", ""postTypes"": [ ""page"" ], ""title"": ""No title"" }], }}} so when you select a page, it will display ""blog-alternative"" instead of Blog (Alternative) (blog-alternative is the second template in the parent theme). Child template can't be added like this even in the fourth position Unfortunately, this makes the whole thing completely unusable." thomask 45062 tinyMCE editor breaks captions with HTML Editor 4.9.8 normal normal Awaiting Review defect (bug) new dev-feedback 2018-10-06T23:13:04Z 2019-12-19T14:27:07Z "This looks similar to ticket #18311 If I enter HTML into an image caption (eg. <ul> <span> <div> <table>, and then in tinyMCE I switch from Text to Visual, my caption breaks; sometimes it is reformmatted, sometimes the caption shortcode is removed. Test caption:[[br]] <table>[[br]] <tr><td>Label</td><td>Description</td></tr>[[br]] <tr><td><span>Text</span></td><td>More text</td></tr>[[br]] </table>" iantresman 55737 web site error (in south korea) Editor normal normal Awaiting Review defect (bug) new reporter-feedback 2022-05-15T17:57:52Z 2022-05-15T21:35:01Z "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 hr (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:68782) at hr (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:68855) at hr (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:68855) at dr (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:68293) at Ar (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:80486) at unstable_runWithPriority (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react.min.js?ver=6.1-alpha-53394:1:7430) at xn (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:29947) at Vr (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:78650) at Nr (https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:74769) at https://wordpress.org/gutenberg/wp-content/plugins/gutenberg/build/vendors/react-dom.min.js?ver=6.1-alpha-53394:1:30170" ranode 58135 wordpress font change after update Editor 6.2 normal normal Awaiting Review defect (bug) new close 2023-04-15T10:08:32Z 2023-04-15T22:40:16Z "I was using the default WordPress font in post writing classic editor which is: apple system and now it change to this https://prnt.sc/fS-dKnbyhwry called : Georgia please help me I want the default old back - ""Apple system""" xclusivepop 51721 wp-admin/js/post.(min.)js does not successfully validate post dates within years 0000—0100 Editor 2.9 normal normal Awaiting Review defect (bug) new 2020-11-06T15:29:43Z 2020-11-10T17:42:02Z "When adding or editing a post, `wp-admin/js/post.(min.)js` does not correctly set the year on a JavaScript `Date` object when validating the post date. == To reproduce: 1. Add or edit a post 2. In the ''Publish'' meta box, click ''Edit'' next to the publish date. 3. Enter a validate date, with the year in the range 0—100. 4. See that the date input is highlighted red and marked invalid. == In depth This happens because in JavaScript, when passing a two-digit year to the `Date` constructor, it thinks that it is for the 1900 century. Even passing a string such as `0050` seems to be type-casted to a number. [http://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#Two_digit_years_map_to_1900_%E2%80%93_1999 See more on MDN]." wongjn 1 56218 wp-block-columns no margins or padding in WordPress 6 Editor 6.0 normal normal Awaiting Review defect (bug) new 2022-07-14T11:23:25Z 2022-08-04T15:26:17Z "This issue has been recreated in 4 different themes, Twenty Twenty-Two, Astra, & 2 Genesis themes. Also, with all plugins disabled, and all caches cleared. I've been using the `div class=""wp-block-columns""` markup via the code editor on over 300 articles on my WordPress site. I originally copied all of the markup directly from the WordPress block editor, so it was totally valid markup. Everything worked fine through several WordPress updates, until WordPress 6. Now, when using WordPress 6, this markup no longer styles the block columns, and all columns merge into one block and lose their margins and padding. If I look at the current WordPress 6 block editor columns markup, it has changed, and now has the markup enclosed in several “remarks” – e.g. {{{ <!-- wp:columns --> <div class=""wp-block-columns""><!-- wp:column --> }}} So this shows that WordPress 6 has changed how it deals with `wp-block-columns` markup, but has not ensured backward compatibility with the previous markup. This essentially breaks my website, so I am unable to update to WordPress 6. " XyZed 1 41106 wp_editor() doesn't support attributes besides id and class Editor normal normal Awaiting Review defect (bug) new 2017-06-20T20:31:16Z 2020-09-22T05:37:31Z "I'm replacing a generic textarea with a WYSIWIG field. My textarea has an `aria-describedby` attribute, but wp_editor() -- really `_WP_Editors::editor()` -- can't set any HTML attributes besides ID and class on the WYSIWIG. Would be better if I could do something like this: {{{ wp_editor( 'hi-roy', 'Some text', array( 'attrs' => array( 'aria-describedby' => 'description' ) )); echo '<p id=""description"">Some description</p>'; }}} " Shelob9 59363 wp_tag_cloud and apply_filters Editor 6.3.1 normal normal Awaiting Review defect (bug) new 2023-09-15T09:59:24Z 2023-09-15T10:19:33Z "Line https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/blocks/tag-cloud.php#L28 {{{ $tag_cloud = wp_tag_cloud( $args ); }}} has to be changed to {{{ $tag_cloud = wp_tag_cloud( apply_filters( 'widget_tag_cloud_args', $args ) ); }}} to be in line with documentation: https://developer.wordpress.org/reference/hooks/widget_tag_cloud_args/ I will attach a patch as documented here: https://make.wordpress.org/core/handbook/contribute/git/ " steffenkrueger 55968 xss string to be treated as simple string Editor normal normal Awaiting Review defect (bug) new has-patch 2022-06-12T06:11:57Z 2022-10-31T14:58:38Z "xss string to be treated as simple string while creating a post from the Dashboard or should not be allowed to be saved as draft. Current Behaviour: wordpress allowed to save post as a draft with xss string however, editing of a post is not allowed. Expected Behaviour: Behaviour should consistent from end user perspective. Steps To Reproduce : Step-1: Login in WordPress 6.1 Step-2: Navigate to the Dashboard. Step-3: Enter simple xss text for title in quick draft section {{{ e.g: <svg onload=alert(XSS)> }}} Step-4: Click on Save draft to save post as draft Step-5: Click on newly created xss titled post to edit the same. " vibhanshujain 53970 Add HTML mark tag support on Gutenberg Editor normal normal Awaiting Review enhancement new 2021-08-20T12:33:37Z 2021-08-20T14:57:34Z "Hi, In Gutenberg when we are writing a paragraph or a list item, sometimes it is needed to highlight a certain part of the text without bolding them. In HTML 5 there is a specific tag for this called `mark`. Using the mark tag we can highlight a certain part of the text so it will look like we have highlighted that text without doing anything crazy. Here is an example code: {{{#!php <p>I have a car and that car is <mark>super fast</mark> even on bad roads.</p> }}} You can take a deep drive into the `mark` tag [https://developer.mozilla.org/en-US/docs/Web/HTML/Element/mark here on the MDN Docs]. Currently, the only way to achieve it is by writing the paragraph or list item in the Gutenberg and then edit them as HTML and add the tag at which point Gutenberg doesn't recognize the element as the same element and ask users to convert it to HTML block. It would be really awesome if a new icon can be added in the Gutenberg formatting menu just beside the icons of Bold, Italics etc. This Highlight icon will simply add the `mark` tag to the selected text and the rest will be automatically taken care of by the browser. It can further be custom styles in CSS if someone wants to do it. Honestly, it would be awesome to see it in Gutenberg." isaumya 1 60784 Add __experimentalSkipSerialization support to shadow Editor normal normal Awaiting Review enhancement new has-patch 2024-03-15T16:00:00Z 2024-03-21T07:43:19Z "What? This is a backport of the merged Gutenberg PR https://github.com/WordPress/gutenberg/pull/59887 When a dynamic block defines experimentalSkipSerialization in its block.supports.shadow the styles continue to be printed to the block wrapper element. This PR corrects that behavior so that shadow behaves like border, color, and others. Why? This provides the expected behavior for dynamic blocks that need to opt out of having the shadow styles printed to the block wrapper. How? Added a check at the start of the render function to return an empty array of the block has set experimentalSkipSerialization (This is my first attempt at submitting a Gutenberg PR to be included back into WP Core so welcome any advice if I'm doing this wrong)" ColinD 60063 Add a dynamic hook to filter the pre-rendered content of a single block. Editor normal normal Awaiting Review enhancement new 2023-12-13T18:02:02Z 2023-12-13T18:02:02Z "Introducing a dynamic hook, `pre_render_block_{$block_name}`, as a complement to the already valuable `pre_render_block` hook could increase the developer experience. This new hook aims to filter the pre-rendered content for a specific block, eliminating the need for conditional statements within the `pre_render_block` filter callback. I searched on GitHub, and many folks use the `pre_render_block` and add a check to ensure the logic runs only for a specific block. Some examples: - https://github.com/WordPress/wordcamp.org/blob/7823c7aa3c076f37e99a9ba8f66050ed569b94e4/public_html/wp-content/mu-plugins/blocks/source/variations/sessions-list/controller.php#L19 - https://github.com/buddypress/buddypress/blob/1f5ff3be1880a59a8644b00f03aeb1cd1cdd5b74/src/bp-core/bp-core-filters.php#L108 - https://github.com/woocommerce/woocommerce/blob/22cab4ffc974cfedf1ed3629de04fba20dfd02ba/plugins/woocommerce/src/Blocks/BlockTypes/ProductQuery.php/#L171-L191 For the same reason, the `render_block_{$block_name}` hook has been implemented: https://core.trac.wordpress.org/ticket/46187. I'm happy to work on it!" gigitux 60773 Add a new Post from the editor Editor normal normal Awaiting Review enhancement new 2024-03-14T10:23:55Z 2024-03-14T11:34:51Z " When you are in the editor of an existing Post, there is no way to add a new Post from there. You need to go back to ""View Posts"" -> ""Add New Post"". I would love to have this new usability feature added in the core." klevismiho 56522 Add filter for wp_get_layout_style Editor 5.9 normal normal Awaiting Review enhancement assigned 2022-09-06T15:56:00Z 2023-02-09T21:27:59Z "Currently, there is no filter for the output of this function, which contains the layout styles associated with a given block. Having this be filterable seems conducive to clean overrides versus having a specificity battle with inlined styles (which in many cases would require `!important` to override), while allowing this to be a very intentional, opt-in feature. I will be working on a patch for this which I'll add to the ticket once created. " 10upiansvo 1 60830 Advanced Editor Tools - SIMPLE SORT Editor 5.9.2 normal normal Awaiting Review enhancement new 2024-03-22T22:22:40Z 2024-03-23T05:54:32Z "Under the Edit button, add SORT SELECTED TEXT. Here is an example of what I am trying to sort. I currently copy it to Libre Office, do a sort, then return it to the web page - which is: https://xml3.com/songs/songs-for-smaller-scale-ukuleles/ • Achy Breaky Heart • Banana Boat Song • Billy Boy • Hush Little Baby • It Ain’t Gonna Rain No More • Jambalaya (On the Bayou) • Skip to my Lou • Tom Dooley • Tulsa Time • Waltz Across Texas • You Never Can Tell • Born in the USA • Everyday People • Feelin Alright " robtcyn 54975 Allow filtering global styles Editor 5.9 normal normal Awaiting Review enhancement new 2022-01-28T14:45:57Z 2023-03-02T08:45:32Z "Due to using `!important` and possibly high selector specificity in CSS declarations in global styles code produced by WordPress 5.9, many themes supporting Gutenberg editor (but not block/FSE themes) [https://github.com/WordPress/gutenberg/issues/38252#issuecomment-1023345698 experience issues] with WordPress overriding their custom font sizes and color palettes ([https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-support/ registered via `add_theme_support()`]). It would be great if WordPress allowed at least filtering global styles code (produced by [https://github.com/WordPress/WordPress/blob/5.9/wp-includes/global-styles-and-settings.php#L88 `wp_get_global_stylesheet()`]) with a hook, such as: changing [https://github.com/WordPress/WordPress/blob/5.9/wp-includes/global-styles-and-settings.php#L133 `return $stylesheet;`] in `wp_get_global_stylesheet()` to: {{{#!php /** * Filters the global CSS styles code. * * @since 5.9.1 * * @param string $stylesheet CSS styles code. * @param array $types Types of styles to load. * @param array $origins A list of origins to include. */ return apply_filters( 'global_styles', $stylesheet, $types, $origins ); }}} That way WordPress can keep its global styles intact (even with `!important` if that's really the best way to provide the styles...) for block/FSE themes and Gutenberg editor themes can adapt the global styles by using this filter if needed. (Block/FSE themes and themes that do not add support for Gutenberg editor do not seem to be affected.) ---- More info can be found in https://github.com/WordPress/gutenberg/issues/38252#issuecomment-1023345698 and related comments." webmandesign 5 37577 "Allow users to ""petition"" for a post lock to be released" Editor normal normal Future Release enhancement new dev-feedback 2016-08-04T21:23:34Z 2020-05-25T17:12:05Z "Our post locking prevents two people from editing the same post, but introduces some awkwardness, in that your options are to wait and hope they exit the post (which slows you down), or boot them out (which could be rude or disruptive), or communicate with them through some other medium (which you might not have). It would be nice if there was a third option... to ""raise your hand"" about wanting to edit the post. If the editing user is actually working on the post, they could say ""not now,"" or they could ""save and release"". Or, if there is no response, that could be communicated to the petitioning user, as that could indicate that the editing user has left the post open and abandoned their computer. We could even communicate when the last mouse movement or on-page activity was." markjaquith 2 25471 Allow wp_link_dialogue to open in contexts outside of the editor Editor 3.6.1 normal normal Future Release enhancement new 2013-10-02T22:35:38Z 2019-06-05T07:08:55Z "I use wp_link_dialogue within metaboxes to provide a nicer way for users to enter URL's. Its handy for say slideshows, or profiles that point to external sites. wp_link_dialogue works perfectly on pages where an editor instance exists, but on pages that don't have editor instances it fails due to wplink.js looking for the global wpActiveEditor var, which of course doesn't exist as there is no editor. Aside from the js error, invoking the dialogue on pages with no editor involves calling _WP_Editors::wp_link_dialog(); directly to output the required html which isn't ideal, or calling wp_editor and using css to hide it, which just seems lame. Ideally wp_link_dialogue should function independently of the editor. Approaches 1. Amend wplink.js to allow wpActiveEditor to be undefined and pass in a seperate value for textfield to the open method. Con is that wp_link_dialog() still has to be invoked with a call to _WP_Editors::wp_link_dialog() 2. Move wp_link_dialog into a seperate class, amend _WP_Editors to call this class and allow for a user defined textfield within wplink.js " we_tell 54653 Alphabetically sorted Headers in a Single Blog Post Editor normal normal Awaiting Review enhancement new 2021-12-18T00:18:14Z 2023-10-29T04:38:18Z "I would like to request a new feature enhancement where it would be possible to automatically sort Headers (H2, H3, etc) within a single blog post. This I believe would help blog posts that have long content and need the content to be alphabetically sorted. I originally asked this in a WordPress thread which may be found here: https://wordpress.org/support/topic/alphabetically-sorted-headers/#post-15173407" droyed 57485 Author list on editor only pulls first 50 authors. Editor 6.1.1 normal normal Awaiting Review enhancement new close 2023-01-17T18:50:22Z 2023-01-19T00:27:53Z "Current version: 6.1.1 Bug occurs even when all plugins deactivated, and default theme applied. From the block editor, on the right panel, when I select 'Author' - the dropdown list only shows the first 50 authors. The expected result would be 100+ I can type the authors name, who is not featured on the dropdown, and it will search and find that author. But ideally their name would be on the dropdown. " mwblockengine 1 48279 Avoid block markup in starter content and default pages Editor 5.0 normal normal Awaiting Review enhancement new 2019-10-10T17:28:28Z 2020-11-24T04:11:49Z "In #45151 the Hello World, Sample Page and Privacy Policy content were updated to supply block markup for the editor. The Privacy Policy was the only one that took into account the classic editor and avoided providing the markup in that case as it was also used on the guide which isn't an editor page. In #48130 the starter content is being updated to account for the block editor by adding the necessary markup. It would be nice for users of the classic editor to suppress that markup when they're not using the block editor similar to what was done for the Privacy Policy content." garrett-eclipse 1 60587 Block hooks: Allow filtering of block data on traversal Editor normal normal Awaiting Review enhancement new 2024-02-20T23:32:27Z 2024-02-20T23:32:27Z "When parsing blocks, it would be useful to be able to update block attributes, add metadata, or even potentially update a block name in a template for use in the client. In the WooCommerce product editor, block templates are used ""statically"" in that the product form template is provided to the merchant without the ability to add/remove/reorder blocks. If static templates are a valid use case for blocks, I believe many static template blocks will need to be editable to allow third parties some level of configuration. In this case, we need to allow adding of metadata to blocks to control their visibility, but this can also be useful for updating the titles of blocks or adding block bindings to the templates. {{{#!php <?php $block_to_modify = array( 'blockName' => 'woocommerce/product-tab', 'attrs' => array( 'id' => 'pricing', 'title' => 'Pricing', // Extensions may want to update this property. 'metadata' => array(), // Need the ability to add product type association, block bindings, and block hiding conditions here. ), ); }}} Templates and template parts that are parsed and retrieved via the REST API pass through the [traverse_and_serialize_blocks](https://github.com/WordPress/wordpress-develop/blob/bd78247617da4e23c02876423f400030eb0c75a3/src/wp-includes/blocks.php#L1356) function. Adding a hook to the top of this function would allow flexibility in not only static templates, but also traditional persisted templates where an extension wants to replace block types with newly added blocks. {{{#!php <?php $block = apply_filters( 'pre_traverse_and_serialize_block', $block ); }}} Note that this is already possible by hooking into `get_block_templates` and re-traversing the tree but is less convenient and means poorer performance since all templates will have to be traversed at least twice." joshuaflow 60696 Block hooks: Allow insertion of a hooked block with attributes Editor normal normal Awaiting Review enhancement new has-patch 2024-03-05T21:07:33Z 2024-03-05T21:16:21Z "Previously, the `hooked_block_types` and `hooked_block_{$hooked_block_type}` filters were introduced to allow templates to be extended with blocks by third parties. While those two filters work well with unique blocks, they prove challenging when working with generic blocks that can be customized via attributes. Attempting to hook a block into an area that has already inserted the same block type, but with different attributes won't work with the existing filters. [This PR](https://github.com/woocommerce/woocommerce/pull/44860) demonstrates how attempting to set attributes via the `hooked_block_{$hooked_block_type}` filter will overwrite all of the same block types that have been hooked in. It may be possible that block hooks aren't the appropriate venue for this API, but a way to insert blocks with attributes into templates is quite useful, even in the context of the core editor. **Requirements: ** * [ ] Allow insertion of blocks with block attributes in a single filter * [ ] Allow checking anchor block properties before inserting hooked blocks * [ ] (optional, but preferred) Allow nesting hooked blocks onto previous hooked blocks" joshuaflow 56917 Block menu editor Editor normal normal Awaiting Review enhancement new reporter-feedback 2022-10-27T06:42:41Z 2022-10-27T07:25:03Z "I would suggest an enhancement in the post editor while editing link menus some context help should appear when you hover the mouse on the links. Also, I would like to have a way to revert to the classic menu editor. For the moment it seems a lot more faster and functional to work with it. " capbussat 4 59462 Blocks: Introduce a way to enqueue view scripts only when needed for interactivity Editor 6.4 normal normal 6.6 enhancement assigned 2023-09-26T16:47:58Z 2024-02-12T20:55:48Z "It's based on the discussion started by @felixarntz in https://github.com/WordPress/wordpress-develop/pull/5262#discussion_r1336258326 when reviewing the current handling for interactive blocks back ported from the Gutenberg plugin for WordPress 6.4 Beta 1. As of today, the view scripts get enqueued during block rendering in `WP_Block::render`: https://github.com/WordPress/wordpress-develop/blob/6a61084beca680a78ed581d035d76d592d4ef117/src/wp-includes/class-wp-block.php#L271-L274 The custom code used with all core blocks applies the optimization by ensuring that these view scripts are only listed for enqueuing when the block instance of a given type is going to need them. For example, in the Image block, the view script is only useful when the Lightbox feature is activated for the block. There can be multiple block instances of the same type, so the view script gets removed from the list when the functionality isn't used. However, as soon as any block instance needs it, it must be added and never removed. The reason why we didn't go with `wp_enqueue_script()` and `wp_dequeue_script()` is that the script handle would still need to get removed from `view_script_handles` for the block type as it gets automatically registered through `block.json` and later enqueued in the code path shared in the snippet above. It would still have to be manually enqueued when it is needed. In the long run, I hope we can develop some sort of automatic detection based on Interactivity API directives that would inform whether a view script is necessary for the block. It could even allow us to introduce new strategies that allow loading scripts based on some triggers like: when a user hovers over a UI element or when the UI element is visible on the screen." gziolo 54665 Blog posts page might be confusing for users as the content and layout in the editor does not reflect on the frontend Editor normal normal Awaiting Review enhancement new 2021-12-19T19:53:07Z 2022-01-18T23:56:03Z "-- Steps to recreate -- 1. Go to the blog page (which can be found on the existing pages from clean installation) 2. Edit the page and add some blocks or change the layout of the query loop block and save it 3. Go to the frontend and look for the changes, the blog page doesn't show the layout change or new blocks as expected. -- Details -- By default in 5.9 beta 3, there is a blog page that shows the latest posts. When you edit the page and add some blocks or change the layout of the query loop block it doesn't get updated on the frontend. Either we have to notify the users that, blog page doesn't work this way or disable users from editing it. " lakshmananphp 1 50803 Button link missing from block settings Editor normal normal Awaiting Review enhancement new 2020-07-29T13:22:52Z 2021-03-09T17:37:03Z "When making a new post, adding a link to a button from the right side Block settings doesn't work, but adding it from the quick settings that appear next to block works. Here is a video regarding the problem https://www.loom.com/share/6cf1f260edb7441d8a46f6bab0cfe804" irinelenache 1 59596 Cache file sizes of core block style files. Editor 6.3 normal normal Future Release enhancement new dev-feedback 2023-10-11T12:15:44Z 2023-10-11T15:38:58Z Introduced in #58528 / [56044], there is now cache for file lookups for core block styles. This was to save file lookups and improve server response time. However, when styles are processed in `wp_maybe_inline_styles` a file lookup is done using `wp_filesize` to get the file size and if the file exists. These lookup can be expensive. As there is already an existing transient cache, reuse that to also cache the file size of the files. spacedmonkey 40629 Change default template Editor 4.7.4 normal normal Future Release enhancement new 2017-05-02T06:17:50Z 2020-11-23T05:58:04Z "I recently required to change the default template of theme to another template. The site is already working since 3 months and now client wants to change the default template to the sidebar template while publishing new pages. There is no such action or filter available for it. I am trying to add filter for it but if anyone have other suggestions, please let me know." pratikgandhi 57922 Changing class-wp-editor.php Insert/Edit Link header from H1 to H3 or other Editor 6.1.1 normal normal Awaiting Review enhancement new reporter-feedback 2023-03-14T18:43:46Z 2023-03-14T23:05:22Z "Hey there! I am using the wordpress core feature of having a blog page host all our posts. There is a modal in the class-wp-editor.php file located in the wp-includes directory. On line 1868 (or around there) a modal is shown with the title ""Insert/edit link"". This line is wrapped in an H1 which from an SEO standpoint is really unfortunate as google sees that as a title for the page. Even if you put an additional H1 on the page above the modal, google will still see it as the title of the page. And in our case that's every paginated blog page. I think it would be really beneficial for everyone to change that header to an h3 or lower. H2 is fine as well but I don't think it requires that level. Thank you! All the best, D" donniewalden707 1 55958 Checking if _admin_notice_post_locked should be called can slow down the post editing Editor 4.9 normal normal Awaiting Review enhancement new 2022-06-10T10:18:56Z 2022-06-13T07:51:10Z "On `wp-admin/edit-form-advanced.php:28`, WordPress checks if multiple users exist to call _admin_notice_post_locked. In some cases, plugins add additional filters to all `get_users` calls to ensure that a user role doesn't have access to private data. If these checks use meta value comparisons, it can slow post-editing on sites with large `user_meta` tables. The root cause of this issue is how WordPress stores and validates user capabilities, but the `_admin_notice_post_locked` check could be optimized without fixing the root cause. Some suggestions on how to fix this would be: - caching the `$check_users` value - using a boolean option that is true if a site has multiple users - adding a filter that allows manually setting `$check_users` to skip this check " berislav.grgicak 5 34681 "Consider removing the ""Disable the visual editor when writing"" option" Editor normal normal Future Release enhancement new 2015-11-14T14:41:57Z 2019-01-08T09:51:38Z Is anyone even uses it? considering the lack of love the text editor gets I truly hope that the answer is no. mark-k 58153 Ctrl + SHIFT + D conflicts with browser shortcuts Editor 6.2 normal normal Awaiting Review enhancement new 2023-04-18T16:29:13Z 2023-04-18T18:02:12Z "Ctrl + SHIFT + D, the shortcut for duplicating blocks doesn't work as expected. Let's take Chrome, for example. Case where it works 1. Create a block 2. Execute the shortcut inside the editor 3. Shortcut works Case where it doesn't work 1. Create a block 2. Select the block in the List View, then click it one more time 3. A blue border appear around the block in the block editor 4. Execute the shortcut 5. The ""Bookmark all tabs"" Chrome modal appears At this point, if you click another block, shortcut works. There seem to be an issue when a block is clicked twice from the List View. That's where browser takes over and the shortcut doesn't work. Same thing with Firefox but for this browser, the ""Add bookmark"" modal opens up. That's generally quite annoying and it has been there forever." quantum_leap 1 55913 Custom Fields table can have extra-wide checkboxes and radio buttons Editor 6.0 normal normal Awaiting Review enhancement new 2022-06-03T20:11:08Z 2022-06-04T00:33:37Z "In [https://wordpress.org/support/article/custom-fields/ Custom Fields] feature, there is an unforeseeable problem in a specific CSS rule defined for ''div#postcustomstuff''. More specifically there is this defined in wp-admin/css/edit.css: {{{ #postcustomstuff table input, #postcustomstuff table select, #postcustomstuff table textarea { width: 96%; margin: 8px; } }}} While this works well in the situation the rule was written for, it hides a problem when attempted to reuse the code for other cases, where a checkbox or checkbox or radio button is used, as it stretches them out. [[Image(https://i.ibb.co/hmX30Nx/Screenshot-2022-06-03-230840.jpg)]] You might want to consider excluding those two from the CSS rule... {{{ #postcustomstuff table input:not([type=checkbox]):not([type=radio]), }}} " princeofabyss 1 60001 Deprioritize categories Editor normal normal Awaiting Review enhancement new dev-feedback 2023-12-01T19:26:44Z 2024-02-14T00:08:28Z "In the old days of blogging, we used categories. Nice, hierarchical structures which we all understood how they worked. However, as I was recently discussing the many issues around tags and categories with @matt, he made a strong point: people coming into blogging these days might understand tags a whole lot better than categories. We also agreed that the fact that by default, WordPress ships with two taxonomies, (categories and tags), is less than ideal from a new user UX perspective. So I'm proposing a change (for which @matt should actually get credit as he said it first in our conversation): we should (slowly) deprioritize categories. To start, on the pre-publish checks, we should not suggest people add a category to their post if they've never done so, or if they only have posts in the ""Uncategorized"" category. I'd also suggest removing the Categories panel if that's the case. Would love to hear other opinions, or see implementations :)" joostdevalk 1 59017 Duotone not working in 6.3 Editor 6.3 normal normal Future Release enhancement new 2023-08-09T07:35:24Z 2023-10-03T20:49:01Z "When the WordPress Accessibility Day website updated to 6.3 today the duotone filters we have set on images stopped working. Rolling core back to 6.2.2 solves this problem. #58994 references changes to duotone in 6.3, however, bugs still exist. Here's an example page on a site running 6.3 where duotone is no longer working: https://2023.wpaccessibility.day/about/organizers/. " alh0319 57421 Editor: add new parameter to hook when enqueuing block assets Editor normal normal Awaiting Review enhancement new has-patch 2023-01-05T10:12:09Z 2023-01-10T18:16:16Z "This trac ticket is part 1 of a larger discussion spanning multiple issues, about the **potential issues plugin authors may face when developing blocks that rely on the @wordpress/editor dependency**. - This trac ticket is **part 1**: it suggests an option to make conditional asset enqueuing easier in the different block editors. - In **part 2**, I would like to suggest an option to declare support for specific editors at block registration. Discussion about this is happening in [https://github.com/WordPress/gutenberg/issues/46900 this Gutenberg issue]. ---- When enqueuing assets for a block registered in a plugin, one can rely on `block.json`, or hook into the `enqueue_block_editor_assets` hook to enqueue necessary scripts and styles in the block editor. This works well, but offers some challenges with some specific blocks. For instance, your block may rely on the `@wordpress/editor` dependency to handle some of its functionality. That dependency is available in the post editor, but cannot be used in the widget editor or the site editor. See #53569 and [https://github.com/WordPress/gutenberg/issues/33203 33203-gutenberg] for more information on this topic. In this scenario, one may want to enqueue the block's scripts (and its `wp-editor` dependency) **only in the post editor**. The `enqueue_block_editor_assets` hook doesn't currently offer this flexibility. As a result, folks wanting to do that must add a check before they enqueue. Something like this for someone not wanting to load in the widget editor for example. {{{#!php <?php function enqueue_block_assets() { global $pagenow; // Return early when viewing the customizer or widgets screen. if ( is_customize_preview() || 'widgets.php' === $pagenow ) { return; } wp_enqueue_script( 'here' ); } }}} I was consequently wondering if it were possible to extend the `enqueue_block_editor_assets` hook a bit, so it could be used just like the `admin_enqueue_scripts` hook today, so we could do something like this: {{{#!php <?php function enqueue_block_assets( $hook ) { // We only need our script in the post editor // not in the widget editor or the site editor. if ( ! in_array( $hook, array( 'post.php', 'post-new.php' ), true ) ) { return; } wp_enqueue_script( 'here' ); } }}}" jeherve 57934 Exit Distraction Free Mode Editor normal normal Awaiting Review enhancement new close 2023-03-16T05:35:48Z 2023-03-16T13:20:24Z "When distraction free mode is accessed via the menu, there is no obvious way to switch back. I did some searching and Control + Shift + / is supposed to be the toggle, but it does not work for me. It did activate another application (KeePass), but I closed that (it runs as a service), but that made no difference! I did discover that when you move the mouse close to the top of the editing area a tool bar appears - which helps, but I found the mouse needs to be in an exact location for the drop down to appear. So it is not an obvious action. But still no luck with the shortcut (tried on two different Window 11 PC's) Dave" DavePorter 2 53602 Expand get_post's $filter parameter to allow a blocks as a return shape Editor 5.8 normal normal Awaiting Review enhancement new 2021-07-06T09:56:21Z 2023-03-29T12:49:31Z "Part of ""PHP APIs Overview"" in Gutenberg: https://github.com/WordPress/gutenberg/issues/8352. `get_posts` accepts three arguments at the moment: https://developer.wordpress.org/reference/functions/get_post/#parameters The proposal is to expand the `$filter` parameter to accept also `blocks` as an option: > (string) (Optional) Type of filter to apply. Accepts 'raw', 'edit', 'db', or 'display'. > Default value: 'raw' The implementation details are still to be defined but it would probably require a [https://developer.wordpress.org/reference/functions/parse_blocks/ `parse_block`] function call. " gziolo 1 57595 Filter comments_array not called for Block comments Editor normal normal Awaiting Review enhancement new reporter-feedback 2023-02-01T00:38:55Z 2023-02-01T07:47:01Z "This is the code for `render_block_core_comment_template()`: {{{ // Get an array of comments for the current post. $comments = $comment_query->get_comments(); if ( count( $comments ) === 0 ) { return ''; } $comment_order = get_option( 'comment_order' ); if ( 'desc' === $comment_order ) { $comments = array_reverse( $comments ); } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, block_core_comment_template_render_comments( $comments, $block ) ); }}} But that doesn't allow a plugin author to provide a custom ordering. In my case I am adding comment voting and we want to reorder comments by their up/down votes. I believe that the following line should be inserted prior to the `$wrapper_attributes` assignment: {{{ $comments = apply_filters( 'comments_array', $comments, $block->context[postId] ); }}} " cmautner 3 51258 Fire an action when `replace_editor` is filtered to true Editor 4.9 normal normal Future Release enhancement new has-patch 2020-09-05T23:30:22Z 2021-11-04T23:11:38Z "The `replace_editor` filter was added during the development of Gutenberg to make it possible to implement multiple editor options. See [41829]. Gutenberg [https://github.com/WordPress/gutenberg/blame/08da64b407e95683946b34cf6ebca5d52ac28227/gutenberg.php previously used this filter] to inject necessary hooks and markup before returning `true` to indicate that the editor had been replaced. The `replace_editor` filter is no longer used by the block editor or the Gutenberg plugin—as it has become the editor. Instead, we rely on `use_block_editor_for_post()` to determine whether the block or classic interface should load. In the current state, if `true` is returned via `replace_editor`, the current screen is set and the admin footer markup is loaded. There is no clean opportunity to add markup or other logic. This can be done during the filter, but that does not provide a clean pattern, especially if one or more pieces of code may be making a decision on editor replacement. See #50216 for a description of how it may fire multiple times. The patch attached to this ticket adds a `replaced_editor` action in the `post-new.php` and `post.php` files so that plugins can cleanly inject replacement editor code. " jeremyfelt 1 60716 "Font Library: Replace error message ""A font face matching those settings already exists"" with notice" Editor trunk normal normal 6.5.1 enhancement new 2024-03-07T03:25:56Z 2024-03-20T21:13:07Z If the font already exists, it is not an error, and should not scare the user. oglekler 60593 Font Library: add terms and conditions Editor trunk normal normal Future Release enhancement new has-patch 2024-02-21T18:24:38Z 2024-03-20T20:50:56Z " What problem does this address? - Give users a way to accept or reject loading the data from a registered font collection. - Give font collection creators the ability to add a license text to inform users about the terms and conditions of the font collection. What is your proposed solution? - Add terms and conditions field in the font collection. - Render the terms and conditions from a font collection in the frontend. - Make the Google fonts permission dialog font collection agnostic. " mmaattiiaass 60152 "Footnotes save to public, unprefixed ""footnotes"" field" Editor 6.4.2 normal normal Awaiting Review enhancement new 2023-12-26T12:05:41Z 2023-12-27T01:37:52Z "We use a custom solution for adding footnotes to posts. All of our posts with footnotes became uneditable after WP's own implementation for footnotes was introduced. When trying to edit a post with ""our"" footnotes, the editor throws a JS error ""i.map is not a function"" for this line in core-data.min.js {{{ i = t.footnotes ? JSON.parse(t.footnotes) : []; if (i.map((e => e.id)).join('') === r.join('')) return n; }}} Posts containing footnotes do not save or update anymore. We believe this is because WP footnotes are saved to a public, unprefixed meta field ""footnotes"" (see wp-includes\blocks\footnotes.php, 70), which conflicts with our own custom footnotes implementation, which already uses the exact same field name. " Milber 55780 Global Styles: Introduce filter for toggling stylesheet cache Editor 5.9 normal normal Awaiting Review enhancement new has-patch 2022-05-19T15:03:44Z 2022-11-10T01:04:24Z "Currently, for `wp_get_global_stylesheet()` and `wp_get_global_styles_svg_filters()` we'll cache the merged stylesheet data per theme in a transient for a minute if: * `WP_DEBUG` is not enabled; * `SCRIPT_DEBUG` is not enabled; * This is not a REST API request * We're not in the admin However, for huge multisite instances that leverage object caching, this can result in thousands of `wp_cache_set()` operations per minute, which can be quite intensive. At the same time, retrieving the global stylesheet data and merging it, on a well-optimized server will usually take very little time (up to a few milliseconds). As a consequence, we end up wanting to disable that caching, because it creates more problems than it solves. However, there is no good trigger for disabling just that cache. I'd like to propose a filter that allows us to disable the global stylesheet cache. While it will still be enabled by default, disabling it will be easy when needed." tyxla 3 59595 Improve performance of WP_Theme_JSON::compute_style_properties pereirinha Editor 5.8 normal normal 6.6 enhancement assigned changes-requested 2023-10-11T11:49:37Z 2024-02-12T21:49:13Z When profiling WP 6.4 ( other releases ), it was not that the method `WP_Theme_JSON::compute_style_properties` can result in around 6-11% of server time spent to generate a page. Research should be conducted to see if this method and child function / method calls, could be improved, to improve performance of this method. spacedmonkey 1 60829 Improve shortcode support for link fields Editor normal normal Awaiting Review enhancement new 2024-03-22T16:55:25Z 2024-03-26T16:44:12Z "Using a shortcode in a link field currently prepends {{{http://}}} to the field. They still render on the frontend, but this makes them functionally unusable because the resulting href is always prepended by that {{{http://}}}. This is due to the JS function {{{correctURL}}} (in [https://github.com/WordPress/wordpress-develop/blob/4.4/src/wp-includes/js/wplink.js#L88 wp-includes/js/wplink.js]), which adds it if the URL does not start with {{{http:}}}, {{{https:}}}, {{{?}}} {{{#}}} or {{{/}}}. I suggest adding {{{[}}} to that list of allowed characters, so shortcodes can be used too." Code Muffin 7 29923 Improve the writing experience on mobile Editor normal normal Future Release enhancement new dev-feedback 2014-10-11T01:01:50Z 2019-06-05T07:06:53Z "Maybe something like the screenshot attached. Problems: * In iOS, position fixed doesn't work when the keyboard is open. And that's exactly when we need it. But there are workarounds. We can absolute position everything and make only the iframe scrollable. Oh wait... * `overflow: hidden;` doesn't work on `html` and `body`. Can be worked around by using `#wpwrap` instead. We can also block scrolling completely with JS since the content we want to scroll is in an iframe. But... * For some reason Apple decided to automatically adjust the height of iframes to its content. So for this we'll need to force a specific height on the iframe, `html` and `body` tags, and make the `body` scrollable. Seems to work. * There are no events fired when the keyboard shows or hides. Also no resize event. The keyboard kind of floats over the window. This means that the window height doesn't change and that we can't detect the height of the visible area and keyboard. But it's possible to work around that too. :) The screenshot is from a working prototype. Ideally there should be a left and right arrow on the toolbar so you can browse the tools. The post.php screen stays mostly the same, with a preview of the content. When you click on it, it goes ""fullscreen"". When you hide the keyboard or tab away, it goes back to the original screen. The alternative is to leave things as they are, with the toolbar unpinned on top of the editor, but we could still move all the buttons to one row with arrows to browse them." iseulde 1 46129 Inconsistent logic in allowed_block_types Editor normal normal Awaiting Review enhancement reopened 2019-01-28T18:05:51Z 2021-02-11T21:44:41Z "There are many filters like that in WP (for example `mime_types`, `manage_posts_columns`, and so on) and all of them are getting a full list of items as `$allowed` param. This way developers can easy manipulate the list (add, remove and so on). On the other hand `allowed_block_types` takes a totally different approach. If all blocks are allowed, you get ""true"" as list of allowed blocks. OK, it may look convenient, but... 1. It's inconsistent with any other WP filter... 2. It makes it really hard to blacklist blocks (let's say we want to remove only 2 blocks). 3. It makes getting the list of registered blocks impossible. PS. I know - you can do this in JS. But I don't think that it's very convenient to put some options in PHP, store these options in DB and then in every request pass this value to JS and process it on client-side..." drozdz 1 52659 Insert Link tool should not apply anchor tag before anchor has been applied Editor normal normal Awaiting Review enhancement new 2021-02-25T16:42:37Z 2021-02-25T18:27:21Z With the anchor around the text before any link is applied, the user sees the text as underlined and can mistakenly believe the link is already applied. If the user believes the link is already applied s/he may hit the escape key to hide the insert-link tool and they of course lose their work as the text reverts to its pre-linked state. stevesicherman 1 60654 Install several formats of the same font one by one is not possible Editor trunk normal normal 6.6 enhancement new 2024-02-28T17:12:31Z 2024-03-25T01:54:59Z "== Bug Report === Description It's not possible to install multiple formats of the same font by installing one format at a time, but it works if you select different formats for the same upload. === Environment - WordPress: 6.5-beta3 - PHP: 8.1.15 - Server: Apache/2.4.54 (Win64) OpenSSL/1.1.1q mod_fcgid/2.3.10-dev - Database: mysqli (Server: 8.0.30 / Client: mysqlnd 8.1.15) - Browser: Chrome 122.0.0.0 (Windows 10/11) - Theme: Twenty Twenty-Four 1.0 - MU-Plugins: None activated - Plugins: * WordPress Beta Tester 3.5.5 * Debug Log Manager 2.3.1 === Steps to Reproduce 1. Go to Apparence > Editor > Styles. 2. Click on Edit styles button then Typography (in settings sidebar). 3. Click on Manage fonts button then Upload. 4. Click on Upload font and select the font on your computer. Choose a font for which several formats are available (ttf, woff, woff2) and select only one format, e.g. ttf. 5. The font is uploaded and installed. 6. Then click again on Upload font and select another format for the same font, e.g. woff. 7. 🐞 The following error message is displayed: ""No font faces were installed. Fetch error: A font face matching those settings already exists."" But if you upload several formats (ttf, woff and woff2) of the same font at once, then all 3 files are imported and the font is installed 3 times. === Expected Results 1. ✅ It should be possible to install different formats of the same font, at once or in several times. === Actual Results 1. ❌ When uploading different formats of the same font at once, all files are uploaded and installed, with no error message. But if you've already uploaded a format for a font (e.g. ttf), you can't upload the font in another format (such as woff or woff2), and an error message is displayed." jdy68 2 59131 Introduce filters to modify/inspect the blocks returned by `do_blocks()` luisherranz Editor 6.4 normal normal Future Release enhancement assigned has-patch 2023-08-17T15:40:00Z 2024-02-08T12:33:38Z "The `do_blocks()` function provides a way to process blocks including block parsing and their subsequent rendering. Currently, it is impossible for plugins (including Gutenberg) to inspect those values or customize that logic. A couple of filters should be introduced that allow to modify or inspect the blocks before they are included in the final response: - The first one receives the array of parsed blocks returned by the `parse_blocks` function. This filter provides an easy way to inspect or even modify the blocks as a whole, and also gives the opportunity to know when a call to `do_blocks` has started. - The second one receives the final HTML rendered returned by the recursive call to `render_block`. This filter provides an easy way to inspect or even modify the final rendered output as whole, and also gives the opportunity to know when a call to `do_blocks` is about to finish. With the combination of these two filters, it's also possible to ignore nested calls of `do_blocks` and avoid processing the HTML of blocks more than once, something that is not possible today using `render_block` alone. Target is merging into 6.4. " luisherranz 4 57987 Introduce new `wp_word_count` function Editor normal normal Awaiting Review enhancement new has-patch 2023-03-27T02:06:10Z 2023-08-11T16:46:06Z "In the WordPress core, there is a JavaScript-based `WordCounter`(https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/wp/utils/word-count.js) class to count the number of characters appropriately based on language type. My understanding is that this logic is incorporated into the `@wordpress/wordcount`(https://github.com/WordPress/gutenberg/tree/trunk/packages/wordcount) package in Gutenberg. This utility is used in the document panel of the block editor to calculate the number of characters. Also, in Gutenberg PR(https://github.com/WordPress/gutenberg/pull/43403), a new ""Post Time To Read"" block was added. This block shows minutes required to finish reading the post. This block uses the `wordcount` package to calculate the number of characters in the content from which the time is calculated. However, the exact same PHP-based logic was needed to render this block server-side on the front-end side. Therefore, we added a new `wp_word_count()` PHP function at the same time we added this block. Since this block is experimental, the block and this function will not be bundled into the core. However, given the possibility that this block may become less experimental and be incorporated into the core in the future, and given the recent addition of the `wp_get_word_count_type()` function, we may consider implementing this function in the core. This PHP function is a direct transfer of the logic of the JavaScript-based `WordCounter.count`. Unit tests have also been implemented. https://github.com/WordPress/gutenberg/pull/43403/files#diff-796959a4b78efdd6a2af2ec364be6a4af2566a57041673f2fabbd153bc743cf9" wildworks 1 53287 Make SEO Meta Data Easy Editor 5.7.2 normal normal Awaiting Review enhancement new 2021-05-27T12:48:18Z 2022-08-01T13:36:16Z "**What problem does this address?** Having SEO meta data is an important part of SEO. I am frustrated because in order to just add simple meta data to a page or post, a plugin must be downloaded or code must be inserted. Usually the plugin adds extra features that create additional notifications and bloat on the website. Google sees proper SEO titles and descriptions as important that is why pages without these features show up with errors in Google Lighthouse. **What is your proposed solution?** My solution is to have the Gutenberg editor use the post excerpt for the meta description, the post tile for the meta title, and the post's tags for the meta tags. That way users can have basic SEO features when they use the Gutenberg editor instead of installing an additional plugin. My solution makes it easier for new users who might not understand much about SEO to have an optimized website to compete in search engines better. Many WordPress users don't have the time or the budget to learn how to use SEO so making the editor SEO-friendly from the beginning is a start. This also removes the SEO error a page will get in Google Lighthouse for not having a proper SEO title and description. Originally from [https://github.com/WordPress/gutenberg/issues/32208]" deborah86 52819 Naming of Reusable block: make it required & unique Editor normal normal Awaiting Review enhancement new 2021-03-15T13:11:01Z 2021-03-15T15:39:31Z "The naming of the reusable block is not required, which results in some client sites as 4 to 5 reusable blocks with the same name. As the standard label name. This makes it really confusing to use reusable blocks, by choosing or even by deleting. It creates a mess in the reusable block overview. It would be great to require a unique reusable block name." davelo 6 26988 Need a Button to Cancel/Revert Page/Post Edits in Progress Editor 3.8 normal normal Future Release enhancement new 2014-02-01T22:21:17Z 2021-02-10T14:29:28Z "Currently, if you start editing a page or a post and change your mind, there is no way to easily revert those changes and it leads to a lot of confusion as as if you leave the page and come back, it will tell you that there is an auto save version. Sending to Trash makes no sense because it trashes your whole page. This is VERY confusing and user unfriendly, especially for new users of WP. There should be a ""revert"" or ""cancel"" button when editing that will get rid of current edits and take you back to the last, unedited version of the page/post." tomdryan 54540 Need to Add any Icon or align text at the center of social icon block in inspector style setting of Twenty twenty one theme Editor 5.8.2 normal normal Awaiting Review enhancement new 2021-11-30T13:11:00Z 2021-12-10T08:56:54Z "Need to Add any Icon or align text at the center of social icon block in inspector style setting of Twenty twenty one theme screenshot:[https://prnt.sc/213h9ds] Because while selecting icon style setting box layout not looks proper and shows empty box. We have to adding icon for indication on selecting box. or we have to align box styling text between the box. screenshot: " multidots1896 10 54850 New filter for build_query_vars_from_query_block() Editor 5.8 normal normal Awaiting Review enhancement new has-patch 2022-01-18T10:37:25Z 2022-12-19T14:03:59Z "As raised in [https://github.com/WordPress/gutenberg/issues/36504 Gutenberg #36504] a filter to modify and extend the query for the query block would be helpful. This would allow developers to add new attributes to the query loop block and then pass them to the query." grapplerulrich 1 60020 Padding issue on adding background color Editor normal normal Awaiting Review enhancement new 2023-12-06T10:27:27Z 2024-02-15T16:23:10Z "When we add background colour to the paragraph it takes the padding automatically. Video : https://drive.google.com/file/d/1c2nyyTsPIZEiPG8e30OZ0cfsIvgVK5LX/view?usp=sharing" pitamdey 4 36778 Parent theme editor-style.css cannot be disabled Editor normal normal Future Release enhancement reopened 2016-05-06T16:58:34Z 2020-11-23T04:48:13Z "While it is possible to override the CSS in a parent theme's editor-style.css, it is not currently possible to completely disable or dequeue a parent theme's editor-style.css file. This is a problem for a few reasons: - Theme authors may not keep their editor-style.css files up to date with the HTML the editor produces, leading to formatting oddities. - You may not just want the editor styles customized from the WP defaults at all." matthewmcvickar 3 45435 Port Gutenberg's `removep` Function to Php Editor 4.9.8 normal normal Awaiting Review enhancement new has-patch 2018-11-27T19:15:23Z 2020-11-24T02:44:43Z "Gutenberg has `autop` and `removep` functions, code is here: https://github.com/WordPress/gutenberg/tree/master/packages/autop `autop` in JS is equivalent to `wpautop` in PHP. There is no `removep` or `wpremovep` in PHP. I have often needed it. Please port it into WordPress for PHP developers. Thank you for your consideration." conner_bw 58801 Prefetch Block Editor from Posts page adamsilverstein Editor normal normal Future Release enhancement assigned needs-unit-tests 2023-07-13T15:44:37Z 2023-12-04T22:00:53Z "One of the most common user journeys in wp-admin for creating or editing a Post is navigating to the Posts page (`wp-admin/edit.php`) then to the Block Editor (either by clicking a post to edit or clicking the ""New Post"" button or sidebar menu). We can greatly increase up the speed with which the editor loads by prefetching the edit screen once the user reaches the Posts page. Prefetch will ""prime the html cache"" for all of the resources needed by the editor, resulting in the editor loading much faster for users. Note: since users can also reach the editor from the wp-admin bar, we might want to consider adding prefetch when the user interacts or opens the ""New"" menu. However, to keep this initial proposal small and easier to test I decided to limit the scope to the Posts page." adamsilverstein 2 53076 Press This: Add filters to allow custom Press This plugins kraftbj* Editor 4.9 normal normal Future Release enhancement accepted has-patch 2021-04-22T19:38:03Z 2021-05-24T14:59:02Z "The Press This feature of WordPress was spun out of Core in 4.9 as into a ""canonical plugin"". The Core side code presumes the canonical plugin is the only implementation. If a site owner wants a custom version of Press This, they are required to hack the plugin in some way (set the version super high and edit the files, replace it with something of a high version, etc to ensure the plugin is updated back to stock by WordPress). This also limits what site owners can do—selective versions of Press This based on who is logged in, A/B tests of different Press This's, etc. Request a few filters added to wp-admin/press-this.php to allow for alternative implementations. " kraftbj 50191 Propose https prefix, not http for external links Editor normal normal Future Release enhancement new 2020-05-17T10:28:11Z 2022-09-11T17:52:10Z "In https://build.trac.wordpress.org/browser/trunk/wp-includes/class-wp-editor.php?marks=1269#L1269 The text says: The URL you entered seems to be an external link. Do you want to add the required http:// prefix? Might be better to propose to prefix 'https://' as default." casiepa 1 48789 Provide ability to drag and drop images among and between Gutenberg Blocks Editor 5.3 normal normal Awaiting Review enhancement new reporter-feedback 2019-11-25T17:59:19Z 2020-11-24T23:44:04Z "It is not possible to drag and drop images between the different GB blocks. For Example, if I make an image Block I cannot drag the image out of the block and drop into another block. Therefore, to improve UX WordPress should provide the ability to drag and drop images among and between Gutenberg Blocks" Pcosta88 59620 Remove a query to /wp-json/wp/v2/users from the editor where there isn't a real need Editor normal normal Awaiting Review enhancement new 2023-10-13T17:02:23Z 2023-10-13T19:24:15Z "I've unset `/wp/v2/users` and `/wp/v2/users/(?P<id>[\d]+)` endpoints to remove access to the users list and make it harder for bots that are trying the login form (This one is custom as well, so they are actually not doing it, but this is not the point), and I've got an 404 error in the Editor in admin, but everything is working, and apart from the annoying red circle with number 1 inside in the Dev Tools, I didn't get any side effects. So, if this is not necessary, why do we have this request to the back in the first place? I am proposing to remove it by default and do it only when necessary. I want to emphasize that everything is working, and apart from this annoying error, everything is fine and several months went by without any complaints from editors." oglekler 4 59811 Remove suggestion to add tags and categories Editor normal normal Awaiting Review enhancement new 2023-11-06T10:37:05Z 2023-11-08T14:00:20Z "Right now, in the pre-publish screen, we suggest users to add tags and categories to their post. I'd like to make a few changes to what we do there, and I'll explain why: - If no tags and no categories are selected, we could suggest adding either a tag or a category. But: - If a site doesn't have any tags, we shouldn't suggest adding tags. - If a site doesn't have any categories, we shouldn't suggest adding categories. - If this leads to not suggesting either, then that's fine. Right now, we suggest adding tags ''and'' categories to every page. Every time someone creates a new tag that way, we create a new URL on the internet that needs to be crawled, when really that page might not be very useful at all. In my ideal world, if a theme has no support for tags (many don't show tags on post pages), we shouldn't even have an interface for it. We might consider adding something like an `add_theme_support` feature for tags, where we default to it being on but allow themes to `remove_theme_support` for tag pages and then not show tags in the interface, or something similar to that extent." joostdevalk 4 38061 Rename the text window name on the editor Editor normal normal Future Release enhancement assigned has-patch 2016-09-14T22:10:52Z 2019-06-21T06:36:36Z "The text window on the editor name should be something that makes better sense to new users. Since the reality is it is a way to tab between the visual editor and actual view the code. So if a new user who does not know this if they tab between Visual and Text it does not make total sense." lukecavanagh 3 36475 Responsive images in TinyMCE Editor normal normal Future Release enhancement new 2016-04-11T12:49:07Z 2019-07-02T14:57:57Z Decide if we should be adding the `srcset` and `sizes` attributes to the images in the editor, and if they should be saved to the database or added with the display filter. iseulde 31479 Save custom color palette through refreshes Editor normal normal Future Release enhancement new 2015-02-27T19:47:27Z 2019-07-05T08:48:12Z "When you choose a custom color for your text using the color picker, the custom colors disappear from the palette when the page refreshes, or if the editor is closed and reopened later. This also happens after saving as a draft. Color picker right after changing text color: [[Image(http://cdn2.dropmark.com/74615/a48b9d7e5d6cd1ad5798a7ddfbf2ff20ebbc2086/colorshown.png)]] Color picker after saving draft: [[Image(http://cdn2.dropmark.com/74615/a2c1a5966634e30eb76f2c3c04771f5fbdfa0d2e/colornotshown.png)]] Steps to reproduce: 1. Change text color to a custom color choice. 2. Save post as a draft. 3. Reopen the color palette. Reported in WordPress.com forums: http://en.forums.wordpress.com/topic/custom-color-boxes-in-post-editor" shawnajroberts 3 52288 Separate Color Palette for Text sarahricker Editor normal normal Future Release enhancement assigned 2021-01-13T09:22:54Z 2021-05-21T15:39:45Z "It would be great with a separate Theme Support feature to be able to add a color palette for text colors only. It is often not a good feature to allow the average user to have access to a lot of colors that can be mixed in any way. Readability can be discarded. add_theme_support( 'editor-text-color-palette' , [ ... ] ); add_theme_support( 'editor-color-palette' , [ ... ] ); " jontng 57330 Show number of scheduled posts in calendar popup when scheduling Editor normal normal Awaiting Review enhancement new close 2022-12-14T18:35:48Z 2022-12-14T19:41:49Z "When scheduling a post using default wordpress scheduler, there is a nice feature – I see a blue dots under a day numbers what means, that there I have some posts already scheduled for that day. But there is only a blue dot – it would be nice to see also a number of posts scheduled for that day. That number is already in the html code visible – when I right click on the blue dot and click “Inspect” in HTML code I see an information like this: “December 10, 2022. Selected. There is **1** event”" sokrates4612 2 38850 Sticky positioning for a smoother scrolling experience iseulde* Editor normal normal Future Release enhancement accepted 2016-11-18T11:06:23Z 2019-06-05T07:06:26Z "Let's consider using sticky positioning to do the scrolling effect we currently have on the editor page. At the moment we use JS and listen to scroll events, which is not ideal. It may look slow and buggy under some circumstances. Browser support is looking good. It's already implemented in Firefox and Safari, and by the time we ship 4.8 it will be in Chrome (est. 31 Jan). It's under consideration for Edge and there's no support in IE. This is no big deal though, as we can just fall back to what we currently have. http://caniuse.com/#feat=css-sticky Note: Firefox now also gives a warning in the console about using JS for this: > This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://developer.mozilla.org/docs/Mozilla/Performance/ScrollLinkedEffects for further details and to join the discussion on related tools and features!" iseulde 60847 Style Engine: continue get_classnames loop after adding the default classname Editor trunk normal normal Awaiting Review enhancement new has-patch 2024-03-27T00:23:59Z 2024-03-27T00:24:16Z "The `WP_Style_Engine` class has a method get_classnames that builds classnames. It loops over an array to add each classname. There should be a `continue` in the loop after adding the default classname. Syncs changes from: https://github.com/WordPress/gutenberg/pull/60153 **Why?** Because we've added the first classname by virtue of testing for `true`. The following tests all expect a string: `get_slug_from_preset_value` only works on a string, not a boolean." ramonopoly 5 56852 Support IDs in block wrapper attributes Editor normal normal Future Release enhancement assigned 2022-10-19T13:10:22Z 2023-09-06T21:20:28Z "At the moment dynamic rendered blocks don't support [[https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#anchor|anchors]]. To enable this support, we need to add this feature to the Editor and add the ''id'' in ''get_block_wrapper_attributes()'' to the block. I already created a PR to add this support to the editor: https://github.com/WordPress/gutenberg/pull/44771 This ticket is for adding it to the renderd block HTML." Soean 6 42645 Support passing version number to add_editor_style() dinhtungdu Editor normal normal Future Release enhancement assigned has-patch 2017-11-20T23:11:26Z 2019-09-24T17:53:40Z For automagically flushing browser cache, it would be helpful if `add_editor_style()` supported a version number argument. danielbachhuber 1 60393 Test with Gutenberg active Editor normal normal Awaiting Review enhancement new 2024-01-31T03:53:44Z 2024-01-31T07:21:37Z "On the back of #60315, an issue that keeps occurring on some sites ([https://wordpress.slack.com/archives/C02QB8GMM/p1706630823300079 For example, wordpressfoundation.org earlier today]) is that WordPress trunk ends up being incompatible with the latest stable release of Gutenberg. Usually this happens around PHP back-porting from Gutenberg to Core, but I guess could happen with some of the JS too (I just don't see it). Generally, WordPress trunk has been treated in the past as ""it should be stable"", and as a result, is run on many WordPress.org properties as a way to [https://en.wikipedia.org/wiki/Eating_your_own_dog_food dogfood] and find out about bugs before it hits every other WordPress site in the world. Over the years, this has identified many issues that wouldn't have otherwise been noticed until after release. Often these sites consume the SVN/Git repo's directly, and as such [https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/update-core.php#L1844 the upgrade routines] don't protect those sites. I'd like to propose two changes to the unit tests in Core, as a way to hopefully notice these incompatibilities before it happens. 1. Run a unit test run with Gutenberg stable active (Similar to how we run multisite vs not-multisite, but we can probably slim it down to Gutenberg stable + Trunk + Single PHP version, just to reduce action time) 2. If it's a packages update, run all the tests with Gutenberg active (in addition to without) For PRs such as the one that lead to the most recent issue, it'd have flagged that the commit would make trunk incompatible with the stable release, and either a) the core commit could've been delayed 12 hours, or b) the release of an updated Gutenberg could've been done first. For other PRs/commits, it would highlight when a change in Core has caused Gutenberg to fatal or act oddly - Something that should be highly unlikely, but is plausible, and given how close Gutenberg and Core are, it just makes sense to me. This wouldn't replace the Gutenberg unit tests, but would act as a separate double-check." dd32 5 46224 The additional CSS is not reflected in the editor Editor normal normal Future Release enhancement new has-patch 2019-02-10T06:24:54Z 2021-09-29T20:49:07Z "I think that the additional CSS should be reflected to the editor. What do you think? I did not know which file to write the code, so I made a sample plugin. https://github.com/inc2734/additional-css" inc2734 54305 Transition of block editor width when previewing desktop/tablet/mobile causes multiple resize events (and unnecessary lag) Editor normal normal Awaiting Review enhancement new 2021-10-21T22:08:34Z 2021-11-01T13:54:06Z "When editing a page, if we click ""preview"", and then click one of the viewport icons at the top (desktop, tablet, mobile), it resizes the editor. This is great. What is not so great is that it animates (seemingly via javascript) the change in width, which causes all the blocks to re-render several times, making the process slow and clunky (I am using ACF Blocks). Honestly, it makes me avoid using the viewport switcher except when I really need it. I believe if the transition was removed, it would only have to fire a single resize event. I don’t see any reason why, technically speaking, the animation should be necessary. " askpivot 2 51284 Update style for side meta boxes azhiyadev Editor 5.5.1 normal normal Future Release enhancement assigned has-patch 2020-09-10T02:56:22Z 2021-12-19T07:29:07Z "In the latest version 5.5.1, WordPress adds the arrows to the meta box handles to allows users to move a meta box up or down. That works nicely for meta boxes below the content area. However, for the side boxes, the arrows takes a lot of space and reduce the space for the meta box title. The 2nd problem is that the toggle icon (collapse/expand) is different from the Gutenberg panel icon. I attach a screenshot to see the problems clearer. " rilwis 57016 When searching for a block, there is an unexpected blank space at the bottom of the Editor Editor 6.1 normal normal Awaiting Review enhancement new 2022-11-07T10:21:46Z 2022-11-07T22:07:52Z "With WordPress version 6.1, I observed an unexpected blank space on the editor when searching for any block. Steps to reproduce: - Open Gutenberg editor - Search for a block but do not add/select it. - Now, scroll down on the page, and see a huge white blank space at the bottom. Screencast- https://d.pr/v/1Vl7I8" thebengalboy 58732 WordPress Gallery Block: Column Count Issue Results in Unbalanced Item Widths Editor 5.0 normal normal Awaiting Review enhancement new close 2023-07-06T13:13:40Z 2023-07-06T14:12:58Z "== Enhancement === Description The WordPress gallery block is currently experiencing an issue when users select a specific column count. The problem arises when attempting to achieve a balanced layout, as the items within the gallery block are not receiving a common width. This results in inconsistent and unbalanced item widths. Currently, there is an option to keep all the items in the same width. === Environment - WordPress: 6.3-beta3-56143 - PHP: 7.4.33 - Server: TasteWP-S1 Official/3.0.0 - Database: mysqli (Server: 8.0.32-0ubuntu0.20.04.2 / Client: mysqlnd 7.4.33) - Browser: Chrome 112.0.0.0 (macOS) - Theme: Twenty Twenty-Three 1.1 - MU-Plugins: None activated - Plugins: * WordPress Beta Tester 3.5.0 === Steps to Reproduce 1. Add a gallery block 2. Add a few images to the gallery 3. Change the number of columns option === Expected Results 1. Same column size for all gallery items === Actual Results 1. If there are 6 gallery items and the column count is 4 the last 2 items are showing as 2 columns instead of 4." sarath.ar 58278 [Query Loop][Post Template][Custom dynamic block] Impossible to pass query loop context to a custom dynamic block as the post template context is hard coded. Editor 6.2 normal normal Awaiting Review enhancement new dev-feedback 2023-05-09T13:14:16Z 2023-05-09T13:14:16Z "Hello. **Context** : I'm writing a query loop variation, with post templates, then a custom dynamic block. **Problem** : I was trying to get the query loop id inside the custom dynamic block and could not, even when specifying usesContext and providesContext block.json configuration for my dynamic bloc of the core/post-template one. **Observations** : After some investigation, I found that the post template uses the `render_block_core_post_template` function as render callback inside the `post-template.php` file Line 93 of this file, we can see that the function hard codes the context that is then passed to the block : {{{#!php $block_content = ( new WP_Block( $block_instance, array( 'postType' => get_post_type(), 'postId' => get_the_ID(), ) ) )->render( array( 'dynamic' => false ) ); }}} There's no filter or mechanism allowing us to provide more context here which is quite blocking. **Suggestion** : We could do something like this instead : {{{#!php // Render the inner blocks of the Post Template block with `dynamic` set to `false` to prevent calling // `render_callback` and ensure that no wrapper markup is included. $context = array( 'postType' => get_post_type(), 'postId' => get_the_ID(), ); //Check if additional context is provided by ancestor blocks if (!empty($block->block_type->provides_context)) { foreach ($block->block_type->provides_context as $context_name) { if (array_key_exists($context_name, $block->context)) { $context[$context_name] = $block->context[$context_name]; } } } $block_content = ( new WP_Block( $block_instance, $context ) )->render( array( 'dynamic' => false ) ); }}} With this code, I was able to specify and get the queryId to my custom block. **Steps to reproduce** : - Create a query loop variation - In the variation, set the innerblocks setting to use a custom dynamic block. - In your custom block block.json file, we're trying to use the queryId as the context. - As it's not working, I've also specified that I wanted the core/post-template block to provide the queryId via providesContext. - Realize the core/post-template block does not provide any context besides the hard coded one mentioned above. **Expected output** : If we specify that the core/post-template block should specify a context, it should be taken into account alongside the default values that are `postType` and `postId` Thank you for your work." jdmweb 4 6619 permalink field misleading in page editor: it displays the erroneous values Editor 2.5 normal normal Future Release enhancement new 2008-04-06T14:48:15Z 2021-09-22T13:30:43Z "if you create a sub-page, the permalink field should display the proper permalink. currently, if you have: site.com/page/ and when you create: site.com/page/subpage/ the permalink shows: site.com/subpage/ until it gets saved the expected behavior would be for it to show the correct permalink. the same remark applies when you then change the permalink. if the parent is no longer page, but rather page-2, then the permalink should update accordingly." Denis-de-Bernardy 2 32143 wpLink function getAttrs() missing link-text Editor 4.2 normal normal Awaiting Review enhancement new reporter-feedback 2015-04-27T07:04:06Z 2020-11-24T01:38:12Z "After last update to 4.2 wpLink() was renewed and the title-input was replaced. Instead of title, you can now insert/change the link text. https://core.trac.wordpress.org/browser/trunk/src/wp-includes/js/wplink.js?rev=32017 But in function getAttrs() the val of link-text was forgotten. Therfor I proporse to add this line in getAttrs(): linktext: $.trim( inputs.text.val() ), Also it would be nice to populate the link-text field with the document title of a chosed intern element, like it was made with the old title-field before. " xwolf 57849 About supporting markdown officially Editor 6.2 normal normal Awaiting Review feature request new 2023-03-02T12:53:08Z 2023-03-02T12:53:08Z Hello, as we know, markdown is now widely use in blogs, notes app(for example: evernote), or github issue and so on. Has wordpress ever consider supporting both markdown editing and block editing, is true that there are some markdown plugins, but its not good, I hope wordpress can support markdown editing officially. Thank you! xiebruce 59396 Allow the user to add a poster to YouTube videos Editor 6.4 normal normal Awaiting Review feature request new 2023-09-19T16:07:10Z 2023-09-19T16:07:10Z "YouTube embedded videos get YouTube's branding before they get fired, which is not really clean. Instead, I'd like being able to set a poster." schwipps 54288 Argument for allowed blocks when registering a post type Editor normal normal Future Release feature request new dev-feedback 2021-10-19T08:54:12Z 2021-10-19T23:15:41Z "Add argument for allowed blocks when registering a post type: {{{ function wporg_custom_post_type() { register_post_type('wporg_product', array( 'labels' => array( 'name' => __('Products', 'textdomain'), 'singular_name' => __('Product', 'textdomain'), ), 'public' => true, 'has_archive' => true, 'allowed_blocks' => array( 'core/image', 'core/paragraph', 'core/heading', 'core/list', 'core/embed', 'core/missing', 'core/button', 'core/buttons', ), ) ); } add_action('init', 'wporg_custom_post_type'); }}} " smeedijzeronline 20 50214 "Consider introducing the concept of ""Editors""" Editor normal normal Awaiting Review feature request new 2020-05-20T15:55:55Z 2020-11-23T09:26:09Z "The recent release of the Iceberg Editor plugin [https://github.com/useIceberg/iceberg-editor] (built on Gutenberg) has got me thinking about the concept of ""Editors"" and Publishing flows. The REST API opens up a huge world of possibilities in regards to editing/publishing experiences. WordPress core itself currently has 2 ""Editors"" (until at least 2022, perhaps longer): - The Block Editor (Gutenberg) - The Classic Editor (5+ million installs) There are many other plugins which introduce other Publishing experiences: - Iceberg (https://github.com/useIceberg/iceberg-editor) - Elementor (5+ million installs) - Divi - Beaver Builder - etc If WordPress embraced these Publishing flows with a proper Editor/Publisher Registry, it would allow all of these amazing Publishing experiences to be used together, with the user being empowered to pick the right tool for the right job. This would even open up possibilities for plugins like WooCommerce, where a ""Product Editor"" could be created for ""Products"", allowing a completely streamlined experience for publishing products. Every type of content (and especially for post_types) could benefit from a streamlined publishing experience. For example, for publishing videos, a Video Editor (plugin) could emulate YouTube's step-by-step publishing experience. If WordPress core created a proper registry for Editors/Publishers, it could empower both developers and users to build streamlined and focused publishing experiences right into the WordPress dashboard in a way that a single Editor never could. This seems like a natural next-step in the WordPress journey, especially watching the explosion of creativity and user-response (millions upon millions of installs) happening around publishing experiences and flows for WordPress. A flow for creating a new post might look like this: 1. Click on ""Create new post"" 2. If multiple Editors are installed+registered for this post_type, show an Editor Picker. If only a single Editor exists for this post_type, immediately show it. 3. You now experience the publishing experience provided by that Editor, and publish. 4. Future edits to that post will automatically use the Editor initially chosen. 5. When viewing your existing posts in the posts UI table, a column for ""Editor"" is shown to indicate ""Gutenberg"", ""Elementor"", etc. I think ideally this registry is something that would exist in WordPress core, giving developers an official API to work with, and a consistent flow for users to pick their editor of choice. " johnstonphilip 6 50615 Editor: Create standalone JSON schema for block type definition Editor normal normal Awaiting Review feature request new 2020-07-08T16:34:50Z 2022-04-30T04:59:05Z "There is an existing schema for block type definition embedded in the new REST API endpoint: https://github.com/WordPress/wordpress-develop/blob/c3993eb19dee52dfd6ca9f9ef7cec785538e361d/src/wp-includes/rest-api/endpoints/class-wp-rest-block-types-controller.php#L363-L569 There is also another schema being developed for Block Directory that will take part in `block.json` file validation: https://github.com/tellyworth/plugin-directory/blob/25388b9c12193194a16db5264ed84f2f3965552e/block-json/class-validator.php#L36-L182 It would be great to consolidate efforts and make such schema publicly accessible as it would benefit other projects in the WordPress ecosystem like WP-CLI. There is a related discussion related to translatable strings extraction, see https://github.com/wp-cli/i18n-command/pull/210#issuecomment-634107470 > This kind of schema would need to live somewhere outside of WordPress context, where WP-CLI and other tools can easily assess which fields in `block.json` are translatable and which aren't. All that would make it also possible to easily extend the schema in one place and related tools consuming it could automatically adjust their behavior based on the changes applied." gziolo 53864 Feature Request - Add sizing options for Video Block Editor normal normal Awaiting Review feature request new 2021-08-03T04:20:30Z 2021-08-03T04:20:30Z It would be great to have a sizing option for Video Block, similar to what we have in Image block. If the dragging option is not possible, it would be great if there can be width field within the block settings. nagpai 56069 Footer Template Parts and Reusable Blocks Have Added Spacing By Default Editor 6.0 normal normal Awaiting Review feature request new 2022-06-24T18:46:03Z 2022-08-10T21:14:34Z "I noticed when working with WordPress 6.0 that both Footer Template Parts (I have not tested on Header Template Parts) and Reusable Blocks have spacing around the block by default. This creates unwanted aesthetics such as a thick white line between a block with a color background and the footer (when the footer also has a color background). In most cases when designing a website people will not want this spacing between the blocks. This problem is made worse by a misrepresentation of how the Template Part will look in the Site Editor - it appears there is NO space when viewing the same region in the Site Editor. However, when publishing and viewing the live changes on the site, the white line appears. The workaround to alleviate the problem is to add custom CSS to set the ""margin-block-start"" to 0 for the block elements in question (.wp-site-blocks in the case of the footer template part). However, editing the custom CSS in WordPress 6.0 is a whole different problem in itself as one must get back to the deprecated Customizer through a series of hidden steps to access the ""Additional CSS"" field and customize the CSS. In short, the default setting should be that the ""margin-block-start"" is set to 0 for block elements to remove annoying/unwanted spacing between blocks from footer template parts or reusable blocks." daviesmediadesign 2 54024 Internal links with href=outdated-slug and a data-type data-id as fallback should use that and update href=new-slug instead of resulting in broken link (404) Editor normal normal Awaiting Review feature request new 2021-08-27T13:16:19Z 2021-09-06T19:35:30Z "**1) The main expectation is in the issue title:** - Internal links, that are inline A elements with href=outdated-slug and which have the attributes data-type data-id as fallbacks should indeed use that fallback and update href=new-slug instead of resulting in a broken link (404), as I experienced it on **Wordpress 5.8 on a PHP 8 server with the Astra theme**. Thoughts: - Maintaining and updating internal pretty-URLs, I deem that a core feature of a CMS. - I really hope it's only a bug, but that use case in general is handled by WordPress or if not by a pretty - robust and popular plugin (recommendations appreciated, if that's the case!). **2) An appreciated feature would be: When changing a post's title (for all post types!) offer an option to bulk process the link text of incoming links.** - Definition of ""link text"" a.k.a. ""link label"" a.k.a. ""navigation label"": - That is the text between the opening and closing of the html a tag: {{{ <a href=""/slug-remains-same-or-gets-changed""> Link Label was like Old Title or was a Custom Label <a/>` }}} - Overall expectation: If a link has a custom link text, I'd expect that no automatic mechanism of WordPress ever kicks in, but the link text remains as is, as the link creator surely put some (contextual) consideration into it. - When changing a page's title or slug, it would be cool to have these ""Processing options"" in a ""Title Widget"" of Gutenberg or the Classic Editor: {{{ For internal incoming links update their link text to the new title? (•) Don't change existing link text at all! ( ) Only if the old link text was exactly the old title [√] and in the same case ( ) Regardless of the old title ⚠️ }}} - Note: The options and also the defaults are sorted from no changes at all to most destructive. - Hover/click on ⚠️ gives this tooltip: Warning: Authors probably put special contextual consideration when creating custom link text (aka label). This resets all those link texts to the new title. It is an un-doable batch operation! In doubt, first perform a backup. **Followup** - For both 1+2 see my screenshot series full with annotations, which will be attached below. - Questions: - I'm not sure into which component this falls. - Whether 2) should be a separate ticket. - I used Gutenberg's ""Insert link"" feature and this creates the markup. But I am pretty sure what I observed is not Gutenberg-specific, but that generated markup and its handling the the database for rendering, is core functionality." abitofmind 1 54580 Latest Posts Gutenberg Block not supporting args filter. Editor 5.8.2 normal normal Awaiting Review feature request reopened reporter-feedback 2021-12-05T17:46:09Z 2022-01-31T13:24:43Z "Shouldn't we add the filter for recent posts widget arguments in the Latest Posts Block? {{{#!php <?php $args = apply_filters( 'widget_posts_args', $args ); }}} I didn't find it in the core wp-includes/blocks/latest-posts.php This breaks the functionality in my plugin for hiding posts in the Recent Posts Widget. " martin7ba 58786 Support for adding custom, post-level meta descriptions in WP core. Editor normal normal Awaiting Review feature request new 2023-07-11T21:22:29Z 2023-10-30T13:25:23Z "Hi, the WordPress page/post editor needs a field for a custom written meta description. Meta descriptions are ubiquitous, been around forever, supported by all other (major) CMSs out there, an accessibility feature. Users should not need to install third party software for something this basic. Thanks." xroox 59201 Taxonomy Query Loop Editor normal normal Awaiting Review feature request new 2023-08-25T08:22:58Z 2023-08-25T14:29:42Z "Hello, In the page editor and FSE, we really need a way to query terms like the ""Query Loop"" block does. Am I the only one who needs this? A ""**Taxonomy Query Loop**"" block would list them by tree structure, displaying the title and description. Either inherited from the query, or on a specific taxonomy and a specific parent term. Thank you so much Stephan" StephanR 57984 Template Change Reset Editor normal normal Awaiting Review feature request new close 2023-03-25T13:38:30Z 2023-03-26T01:16:47Z "Hi, if you change some details of an template, than you have the option to reset this template to default. I wish there is a security question. For now all changes are gone, even by accident. " heikostueber 57721 Twenty Twenty-Three > Site Editor > stylizing of captions in the Image block Editor normal normal Awaiting Review feature request new reporter-feedback 2023-02-14T18:59:23Z 2023-02-16T15:49:37Z In the Site Editor -> Styles -> Blocks -> Image Block I was expecting controls to edit the font and alignment of the image captions (the text that goes under the image). ddegner 58173 rotate editor Editor 6.2 normal normal Awaiting Review feature request new has-patch 2023-04-21T19:22:24Z 2023-04-21T19:22:24Z I have found that when images are in the media and text widget, you cannot round off the corners to match the rest of your site style. Could a rotate controller be added to the style area? Thank you mth2020 50544 Move Navigation screen's PHP code from Gutenberg to Core Editor normal normal Future Release task (blessed) new 2020-07-03T01:21:18Z 2020-07-03T01:23:27Z "The Gutenberg plugin currently contains an experimental new Navigation screen. If and when this is merged to Core, there are a few bits of PHP code that must be moved from the Gutenberg repository into Core. This ticket tracks those changes. https://github.com/WordPress/gutenberg/issues/22931" noisysocks 1 58272 Accessibility issues with core embed block's handling of Flickr and TikTok joedolson* Embeds 6.2 normal normal Future Release defect (bug) accepted reporter-feedback 2023-05-08T21:57:00Z 2024-02-05T20:43:59Z "There is an accessibility error with the embed iFrame for Flickr and TikTok. Specifically, that the iFrame is missing a title, with no ""title"" attribute, or the ""title"" attribute being empty. Site Improve is requesting that the frame provide an attribute titie="""", and to add a description of the content in the title. There is also an ""Link without a text alternative"" message for the <a data-rapid=""flickr""... > link, stating that ""links should always have a text alternative"". In order for a link to be readable by screen reader users links must all contain either plain text, or in the case of a linked image, alt text describing where the link goes. If the linked image contains text, a good general rule is to make the alt text the same, or similar to the text in the image. The same issue goes with the inline (iframe) frame, that does not include a text altnerative. All three of these issues will lower page accessibility for those using screen readers. Thanks for your help. " markcmorantt 1 52990 Account for single quoted attributes when lazy loading images and iframes. Embeds 5.5 normal normal Awaiting Review defect (bug) new needs-unit-tests 2021-04-07T00:24:58Z 2021-06-11T00:22:11Z "`wp_iframe_tag_add_loading_attr()` and `wp_img_tag_add_loading_attr()` includes a check to ensure the elements have a `src`, `width` and `height` attribute before adding the lazy loading attribute. In both functions the check only considers attributes using double quotes so the lazy loading tag is not added for elements using single quoted attributes. [https://github.com/WordPress/wordpress-develop/blob/895d6a691d7ccdfe80cdf999bc0c8a78d11ad55a/src/wp-includes/media.php#L1893-L1895 img ref], [https://github.com/WordPress/wordpress-develop/blob/895d6a691d7ccdfe80cdf999bc0c8a78d11ad55a/src/wp-includes/media.php#L2012-L2015 iframe ref]. As WordPress does not normalize attribute tags to use double quotes, single quoted attribute tags ought to be considered. Image version 5.5, iframe version 5.7. Follow up to #50756, #52768." peterwilsoncc 1 44399 Add unique capability for oembed Embeds normal normal Awaiting Review defect (bug) new needs-unit-tests 2018-06-18T20:11:34Z 2019-01-17T00:27:46Z "Ran into a very specific use case today wherein I have a custom user role with a custom WYSIWYG editor on their profile. The user role has unique capabilities for a couple custom post types with unique capabilities. The user needs to be able to paste a YouTube URL in their profile editor, but I found that it doesn't work. After some digging, I found that the oEmbed ajax function `wp_ajax_parse_embed()` checks for `current_user_can('edit_posts')`. Also, the oEmbed REST API does the same thing in the `WP_oEmbed_Controller::wp_ajax_parse_embed()` method. This is a problem for custom post types with custom capabilities. We don't want the user to have the `edit_posts` permission, but they do have the `edit_custom_posts` equivalent. While this isn't a problem for `current_user_can('edit_post', $post_id)` calls, as it uses the post to grab the post object and thereby post object capabilities, the `edit_posts` primitive check has no context. Since we can't rely on being able to gather post object context (as, in my case, there may be no post object as we're on the user profile), I propose creating a single (or group) of oEmbed capabilities. Something like `create_oembeds`. Wanted to gather some feedback and thoughts from the community before putting together a patch. Let me know what you think! :)" jason_the_adams 2 49173 Allow sanitized inline styles on oEmbed iframes Embeds 4.4 normal normal Awaiting Review defect (bug) new has-patch 2020-01-11T21:31:58Z 2020-01-13T17:09:44Z "Embeds from the New York Times are currently broken because the oEmbed `<iframe>` sets its height via an inline `style` attribute which is removed by Kses in `wp_filter_oembed_result()`. The result is an embed that appears broken due to the iframe not having sufficient height. I believe the fix is simply to allow the `style` attribute on the `iframe`, and to allow the `safecss_filter_attr()` function to remove style properties that are deemed unsafe: {{{#!diff --- a/src/wp-includes/embed.php +++ b/src/wp-includes/embed.php @@ -879,6 +879,7 @@ function wp_filter_oembed_result( $result, $data, $url ) { 'marginheight' => true, 'scrolling' => true, 'title' => true, + 'style' => true, ), ); }}} The result of this change for NYTimes embeds is the inclusion of the CSS `border:none;max-width:500px;min-width:300px;min-height:550px;width:100%` on the iframe's `style` attribute. " westonruter 57699 Autoembeds not rendered in front-end post content Embeds normal normal Awaiting Review defect (bug) new has-patch 2023-02-12T13:53:32Z 2023-02-12T14:07:49Z "The regex which identifies whether post content contains a possible oEmbed URL fails silently in front-end post content in some circumstances. As far as I can tell, this happens when PHP is not compiled with PCRE JIT - e.g. on Apple Silicon using MAMP and/or MAMP Pro - and regardless of the `pcre.jit` value in `php.ini`. When post content is rendered via `the_content()` in a template, what happens is that in [https://github.com/WordPress/wordpress-develop/blob/0cb8475c0d07d23893b1d73d755eda5f12024585/src/wp-includes/class-wp-embed.php#L444 the `preg_match` test for possible oEmbed URLs], the `\s` escape sequence does not match `\r\n` in the post content and thus embeds are not rendered via the autoembed callback. The following string based on [https://github.com/WordPress/wordpress-develop/blob/0cb8475c0d07d23893b1d73d755eda5f12024585/tests/phpunit/tests/media.php#L303 the autoembed test strings] ''should'' produce a match: {{{#!php $foo = ""test\r\nhttps://w.org\r\ntest""; echo preg_match( '#(^|\s|>)https?://#i', $content, $matches ) ? print_r( $matches, true ) : 'No matches.'; }}} In my tests, this what happens: === Linux Intel {{{ PCRE (Perl Compatible Regular Expressions) Support enabled PCRE Library Version 10.35 2020-05-09 PCRE Unicode Version 13.0.0 PCRE JIT Support enabled PCRE JIT Target x86 64bit (little endian + unaligned) pcre.jit 1 1 }}} Success: {{{ Array ( [matches] => Array ( [0] => https:// [1] => ) ) }}} === Mac Intel {{{ PCRE (Perl Compatible Regular Expressions) Support enabled PCRE Library Version 10.35 2020-05-09 PCRE Unicode Version 13.0.0 PCRE JIT Support enabled PCRE JIT Target x86 64bit (little endian + unaligned) pcre.jit 0 0 }}} Success: {{{ Array ( [matches] => Array ( [0] => https:// [1] => ) ) }}} === Mac Apple Silicon running MAMP {{{ --with-external-pcre=/Applications/MAMP/Library PCRE (Perl Compatible Regular Expressions) Support enabled PCRE Library Version 10.36 2020-12-04 PCRE Unicode Version 13.0.0 PCRE JIT Support not compiled in }}} Fail: {{{ No matches. }}} Although it could be argued that this is an upstream problem with PHP, it seems that [https://github.com/php/php-src/commit/f8b217a3452e76113b833eec8a49bc2b6e8d1fdd the PHP fix] will only apply to versions of PHP greater than 8.1.11. This means many devs working on Apple Silicon machines are likely to encounter this issue. A simple fix in WordPress is to add the ""vertical whitespace"" `\R` escape sequence (which matches `\n`, `\r` and `\r\n`) to the regex: {{{#!php if ( preg_match( '#(^|\s|\R|>)https?://#i', $content ) ) { // Find URLs on their own line. $content = preg_replace_callback( '|^(\s*)(https?://[^\s<>""]+)(\s*)$|im', array( $this, 'autoembed_callback' ), $content ); // Find URLs in their own paragraph. $content = preg_replace_callback( '|(<p(?: [^>]*)?>\s*)(https?://[^\s<>""]+)(\s*<\/p>)|i', array( $this, 'autoembed_callback' ), $content ); } }}} This does not appear to affect systems where PHP is compiled with PCRE JIT, whether or not `pcre.jit = 0` or `pcre.jit = 1`, though I appreciate that wider testing is needed. " needle 1 51328 Classic Editor adds extra p tags to Instagram Embed Embeds 5.5.1 normal normal Awaiting Review defect (bug) new 2020-09-17T07:27:18Z 2023-07-31T11:04:26Z "Issue: On Classic editor with wpautop enabled, when adding an Instagram url to be embedded, the editor adds extra p tags. Steps to replicate: 1. Use Classic Editor. 2. Place Instagram post url to editor (doesn't matter Visual, Text, with or without p tags) 3. Save Post. 4. Check frontend code. The output: 1. Closing </p> tag after the first link: {{{ <blockquote class=""instagram-media"" data-instgrm-captioned data-instgrm-permalink=""https://www.instagram.com/p/XXX"" data-instgrm-version=""12"" style="" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:640px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);""> <div style=""padding:16px;""> <a href=""https://www.instagram.com/p/XXX style="" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;"" target=""_blank""> </p> }}} 2. Closing </a> is inside p tag: {{{<p></a> </p>}}} 3. Script tag is inside p tag: {{{<p><script async src=""//www.instagram.com/embed.js""></script></p>}}} Expected output: No extra p tags, eg what you get with {{{remove_filter( 'the_content', 'wpautop' );}}}." HannaIris 2 39472 Code tag still parses embeds Embeds 4.7 normal normal Awaiting Review defect (bug) new 2017-01-04T20:55:45Z 2017-02-20T10:57:26Z "WordPress 4.7. The 'code' block in the WordPress editor behaves incorrectly. For example: {{{ <code>Test Test Another www.google.com http://www.google.com https://www.youtube.com/watch?v=JHw6LTuMkNQ Foxtrot Uniform Charlie Kilo </code> }}} Displays as normal code in the wp-admin, but once published it creates an embed on the page. This should not happen and the contents of the code block should be displayed without embeds." rmens 46559 Could not embed some content Embeds normal normal Awaiting Review defect (bug) reopened 2019-03-18T18:41:06Z 2019-07-02T11:14:16Z "When trying to embed `https://www.instagram.com/p/Br3FKiDAqCs/` to freshly installed WordPress it says: `Sorry, we could not embed that content`. Embedding other Instagram posts usually work. In wp_postmeta table, appropriate meta_key `_oembed_...` has meta_value `{{unknown}}` Using utf8mb4_unicode_ci collation for both meta_key and meta_value fields. Maybe this has something to do with emojis, like #36456. " Krstarica 44705 Edit embed contents without saving post breaks previews Embeds 4.9.7 normal normal Awaiting Review defect (bug) new 2018-08-02T14:50:19Z 2018-08-02T14:50:19Z "It seems that when we insert embed content and edit it just after without saving the post, the embed preview isn't displayed. **To Reproduce** Steps to reproduce the behaviour: 1. Create a new post. 2. Click on ""Add Media"" button. 3. Choose ""Insert from URL"" interface. 4. Paste a valid YouTube URL: https://www.youtube.com/watch?v=KA_CLal14u4 5. See the YouTube `<iframe>` with a `600px` width. 6. Click on ""Insert into post"" button. 7. Edit the YouTube video. 8. See nothing. **Expected behaviour** The embed content should be displayed. **Reason found** None. The problem is present in all browsers. The Google Chrome console logs `Cross-Origin Read Blocking (CORB) blocked cross-origin response https://www.youtube.com/watch?v=KA_CLal14u4 with MIME type text/html. See https://www.chromestatus.com/feature/5629709824032768 for more details.`." 7studio 45653 Embed a youtube video block in gutenberg editor shows black screen area does not display video Embeds 5.0.1 normal normal Awaiting Review defect (bug) new 2018-12-15T01:19:05Z 2018-12-16T13:34:32Z "Wordpress version 5.0.1. Dreamhost Linux/apache host. When i add a post to wordpress using the embed youtube block, it requests for a link and I have tried using both the share youtube link as well as the browser link and the video appears to play in the editor. however, once you preview draft or publish and view the post, the video is just black and you cannot click on it. I tried to used the youtube embed iframe and was successful if I put it in a custom html block. The video displays fine. It must the way the code embeds and not the system because the embed iframe really uses the same link src but the parameters are different than when you use the embed block." merylh 56440 Embed blocks in widget areas caching in many posts Embeds 6.0.1 normal normal Awaiting Review defect (bug) new dev-feedback 2022-08-25T16:01:32Z 2022-09-06T17:04:13Z "When I am using blocks for my widget areas I can include an oEmbed easily enough. For example, I might include a video in a sidebar or footer widget area using the embed Gutenberg block. This is great! Then I notice that ''every single post'' that a user visits which displays that widget area as part of its templates will get duplicated post_meta entries caching the embed. This quickly pollutes the post_meta table with hundreds of duplicate entries for the same embed on different posts. These ""_oembed_xxx"" and ""_oembed_time_xxx"" entries all have the same identifier for the ""xxx"" since they all come from the same embed in the widget area. Shouldn't these entries be associated with the widget area instead of the post? In fact, why are these oembed cache values stored in post_meta at all? Isn't this the kind of thing that deserves more universal storage in case the same embed is used on more than one page in any circumstance? " eceleste 2 40464 Embed video in Wordpress gives W3c Markup Validation issue Embeds 4.4 normal normal Awaiting Review defect (bug) new 2017-04-16T10:47:25Z 2017-04-16T15:51:37Z "When embed video in wordpress, the below validation issue occurs: Error: The frameborder attribute on the iframe element is obsolete. Use CSS instead." pmbaldha 50172 Flickr embed not embedding content Embeds 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-14T15:56:03Z 2020-05-15T12:44:58Z "Flickr albums or collections from a ""sharing url"" do not embed. **Steps to reproduce** 1. Visit a Flickr album 2. Use the sharing features on Flickr to provide their ''tiny-url'' such as https://flic.kr/s/aHsmLCQa2e 3. try embedding this url into a Flickr block. **Possible fix** Update block to recognize alternate flickr domain. https://flic.kr/s/aHsmLCQa2e Watch this brief video for a workflow example in Twenty Twenty. [https://www.linuxbookpro.com/flickr-wordpress-block-not-working/] **Special Notes** Full URLs work but users may not be aware to test both https://www.flickr.com/photos/nasa2explore/albums/72157713265937611 Problem exists using Gutenberg Beta plugin a well." joseph.dickson 54694 Gist embed doesn't work for file with space in name Embeds normal normal Awaiting Review defect (bug) new 2021-12-26T02:26:10Z 2021-12-26T09:07:43Z "1. Create a public Gist in Github with multiple files in it. 2. Make sure that the name you specify for one of the files has a space in it (the specific file name I had problems with was ""tasker datadescr.txt""0. 3. Save the gist, then click on the file name with the space in it and copy the reuslting URL form your URL bar. 4. Compose a new post in WordPress and past that URL into it. At this point WordPress says it can't embed the URL. When I ran into this, I was able to embed the URL after replacing the space in the file name with a hyphen and saving the modified Gist." jikamens 7 58773 Improve oEmbed lazy loading adamsilverstein Embeds normal normal Future Release defect (bug) assigned 2023-07-10T20:09:21Z 2023-12-20T16:47:44Z "== Why lazy load oEmbed iframes? * Lazy loading prevents wasted resources from loading if the user never scrolls down to view the oEmbed * Iframe lazy loading is handled directly by the browser, making the change simple (add a single attriute) and ensuring users get a great experience == Lazy loaded oEmbeds history WordPress has [https://make.wordpress.org/core/2021/02/19/lazy-loading-iframes-in-5-7/ lazy loaded iframes] since version 5.7 and the original proposal included lazy loading for oEmbed iframes (as long as the provider also included width and height attributes). Ultimately, dynamic addition of lazy loading of oEmbeds was removed from core because it was found to create issues, especially with embeds of other WordPress posts. == Proposed Solution This ticket proposes slightly different approach that relies on altering the iframe instance on the fly for each oEmbed. In particular: * When the oEmbed iframe HTML is displayed, if it doesn't already contain a `loading` attribute, it is run through `wp_iframe_tag_add_loading_attr` to add the lazy loading iframe under the correct conditions * Will not add lazy loading to WordPress iframes because of the `data-secret` check * Only adds lazy loading to iframes with the height and width present. * Runs before the `oembed_result` filter, so developers can remove the attribute if desired. " adamsilverstein 54924 Issues embedding Vimeo URLs with signatures Embeds 5.9 normal normal Future Release defect (bug) new 2022-01-26T13:59:31Z 2022-06-11T08:38:26Z "Hi, The [video] shortcode is not working with the new vimeo url format (containing signature as paramter). Example : [video data-width=""500"" data-height=""281"" controls="""" src=""https://player.vimeo.com/progressive_redirect/playback/667848247/rendition/1080p/1080p.mp4?loc=external&signature=f059d7229d1c838389dc3cc145b2072e2b8c18439b26aeaba0c55658a2837d7e"" eq-attached=""true""]L’option pour l’IS des entrepreneurs individuels[/video] WP remove all the parameters, so the video code integration is not the good one." elpix 54058 Kickstarter videos do not play in Google Chrome Embeds normal normal Awaiting Review defect (bug) new 2021-09-02T07:14:23Z 2021-09-07T15:58:35Z "Tested my page in Firefox without any issues. Video plays: https://gutt.it/pikvm-jetzt-bei-kickstarter/ But with the recent Google Chrome it doesn't (tested Inkognito Tab as well). This is also valid for the official announcement page of this feature: https://wordpress.com/support/videos/kickstarter/ Clicking on the playing button does nothing. Javascript error logs: {{{ jquery-migrate.min.js?ver=3.3.2:2 JQMIGRATE: Migrate is installed, version 3.3.2 vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:196 [Honeybadger] Ignoring cross-domain script error: enable CORS to track these types of errors Arguments(5) [""Script error."", """", 0, 0, null, callee: (...), Symbol(Symbol.iterator): ƒ]0: ""Script error.""1: """"2: 03: 04: nullcallee: (...)length: 5Symbol(Symbol.iterator): ƒ values()get callee: ƒ ()set callee: ƒ ()[[Prototype]]: Object core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:26 Uncaught DOMException: Failed to read the 'localStorage' property from 'Window': Access is denied for this document. at https://a.kickstarter.com/assets/modules/core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:26:26036 at Object.ZCIj (https://a.kickstarter.com/assets/modules/core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:26:26262) at c (https://a.kickstarter.com/assets/modules/runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1:561) at Object.2UXI (https://a.kickstarter.com/assets/modules/core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:20:24154) at c (https://a.kickstarter.com/assets/modules/runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1:561) at Module.8y1c (https://a.kickstarter.com/assets/modules/core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:20:40255) at c (https://a.kickstarter.com/assets/modules/runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1:561) at Object.0 (https://a.kickstarter.com/assets/modules/core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:20:17293) at c (https://a.kickstarter.com/assets/modules/runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1:561) at t (https://a.kickstarter.com/assets/modules/runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1:430) (anonymous) @ core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:26 ZCIj @ core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:26 c @ runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1 2UXI @ core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:20 c @ runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1 8y1c @ core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:20 c @ runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1 0 @ core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:20 c @ runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1 t @ runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1 r @ runtime.17b741e2ab6166c9b55724db4a9e1d08d96f8d257e94554eefe8b7dd91521597.js:1 (anonymous) @ core.1c5a74cb6e9c29bd8586e3f8e7e39dd331ae42843950f9939c831206b31b7a20.js:1 vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:196 [Honeybadger] Ignoring cross-domain script error: enable CORS to track these types of errors Arguments(5) [""Script error."", """", 0, 0, null, callee: (...), Symbol(Symbol.iterator): ƒ] videoplayer.225cc837c23cbef217eb174198c34d722120c9d62d72377bad6c35cacb8c8cc5.js:7 Uncaught TypeError: Cannot read property 'getItem' of undefined at HTMLDocument.<anonymous> (videoplayer.225cc837c23cbef217eb174198c34d722120c9d62d72377bad6c35cacb8c8cc5.js:7) at u (vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120) at Object.fireWith [as resolveWith] (vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120) at Function.ready (vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120) at HTMLDocument.M (vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120) (anonymous) @ videoplayer.225cc837c23cbef217eb174198c34d722120c9d62d72377bad6c35cacb8c8cc5.js:7 u @ vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120 fireWith @ vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120 ready @ vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120 M @ vendor.6d98fce841e9b7784b1d951f4a130ad08f8a6fd5d65516db8123b7eaf6668f09.js:120 }}} " mgutt 49683 Multisite oEmbeds of URLs ignore query parameters Embeds normal normal Awaiting Review defect (bug) new 2020-03-23T02:47:04Z 2020-03-23T03:14:24Z "When running as a Multisite, [https://core.trac.wordpress.org/browser/tags/5.3/src/wp-includes/embed.php?marks=576,579-613#L567 WordPress oEmbed will embed links to other network sites without making a HTTP request], it does this by switching to the blog looking up by domain/path. Unfortunately, it seems that it only operates on the `path` component and ignores the `query` component, and as a result, will embed `https://other.network.site/?s=test` as `https://other.network.site/` changing the meaning of the embed. A real example is that https://developer.wordpress.org/?s=get_cat will not embed anywhere, except on the WordPress.org network (For example, in a support request) where it ends up as an embed for `https://developer.wordpress.org/`. This was originally reported as #meta3916" dd32 53573 Non-WP Blog Embeds are being cropped. Embeds 5.7.2 normal normal Awaiting Review defect (bug) new has-patch 2021-07-01T12:21:38Z 2021-07-01T15:03:31Z "When adding an embed for a non-WP blog post, for example, a NY Times story, the enclosing iFrame is not getting a default height set to it, which is causing the embed to crop off most of the information. Issue seems to be the iframe generated is not expanding to include all of the content from the embed. If I manually set height: 400px; on the iframe, for example, it shows the content. However, the bottom is still cut off (seems the height of the embed in this case is 457px). The ma.tt embed in the screenshot has a height as an attribute of the iframe, the NYTimes does not. @mamaduka tested this issue in both the Block Editor and Classic Editor with similar results. See comment here: [https://github.com/WordPress/gutenberg/issues/28490]" mdwolinski 3 49185 Option to use text link instead of auto embed. Embeds normal normal Awaiting Review defect (bug) new 2020-01-13T13:18:47Z 2020-03-28T18:06:43Z "Adding links. If an link goes to another WordPress site we will see an auto embed. It would be great with an option to either auto embed or show a regular text link. I made the Gutenberg issue here: https://github.com/WordPress/gutenberg/issues/15102 Another similar issue: https://github.com/WordPress/gutenberg/issues/13000" paaljoachim 60147 Possible bug when YouTube embeds having both loading=lazy attribute and the enablejsapi parameter Embeds normal normal Awaiting Review defect (bug) new 2023-12-24T00:01:04Z 2024-02-15T16:26:55Z "When YouTube embeds have loading=lazy attribute and the enablejsapi parameter, a console error is showing: Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://www.youtube.com') does not match the recipient window's origin ('https://hobbies4.life'). I tried setting the origin and widget_referrer and it didn't help. It means embeds can't be both lazy loaded and tracked for analytics. I've opened a bug 3 times on the YouTube Issue Tracker and every time it was closed as ""not reproducible"", although it can be reproduced. Maybe it relates to the way WordPress implements the API? All details can be found here: https://issuetracker.google.com/issues/306734400#comment1 Please let me know if more information is required." asafm7 1 37336 Pre-existing page with slug /embed/ does not work as described Embeds 4.5 normal normal Awaiting Review defect (bug) new needs-unit-tests 2016-07-12T02:22:56Z 2020-09-28T09:56:19Z "In #34971, embeds were added to static frontpages, and there was a discussion of how this would affect an existing page with a slug of /embed/. The solution was: - an existing page with slug /embed/ will work as is and disable the pretty embed URL - new pages can't be created with a slug of /embed/. However, this did not work properly. On a site of mine, there is a page with URL /embed/ that was working fine prior to this upgrade. Now: - if you visit /embed/, you are redirected to the homepage. - if you attempt to edit the page, the slug previews as /embed-2/, meaning editing the page content and saving has the unwanted side effect of forcing the URL to change and all links to the page to break without warning. Suggested changes: - fix whatever is incorrectly redirecting the URL - allow a slug of /embed/ to continue to save as-is if it already exists." smerriman 1 59552 Rest api not returns embedded data,if i use at least one field. Embeds normal normal Awaiting Review defect (bug) new 2023-10-05T19:41:32Z 2023-10-06T19:58:56Z "Hello. after updating of wordpress,rest api not returns embedded data,if we use at least one field,so we downgraded wordpress,but created test subdomain,which contains latest wordpress. Please compare requests: https://опиши-мне.рф/wp-json/wp/v2/posts/5926/?_fields=content&_embed=author,wp:term and https://2019.опиши-мне.рф/wp-json/wp/v2/posts/5926/?_fields=content&_embed=author,wp:term in second case it returns only content field,but in first - content field and embedded data. Please help to us fix this issue. Thank you very much." sashakozlovskiy 58706 SoundCloud block error Embeds 6.2.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-07-03T17:12:27Z 2023-07-03T23:31:01Z "Hello, I am running 6.2.2. Whenever I paste any SoundCloud story into the Block Editor, I always get an error that reads ""Sorry, this content could not be embedded"". I'm able to use the HTML block and embed that way. It appears others are seeing this problem too: https://wordpress.org/support/topic/soundcloud-embeds-stopped-working-2/ Thanks for your help! -Tyler" paywall 41403 "Support ""class"" and ""id"" attributes on wp_oembed_get()" Embeds normal normal Future Release defect (bug) new close 2017-07-21T19:58:48Z 2020-09-22T13:52:43Z "The oembed function `wp_oembed_get( $url, $args )` allows us to set additional arguments for retrieving embed HTML. The problem is that currently the function supports two arguments, only `width` and `height`. In some cases developers need more flexibility, to set other HTML attributes like `id`, `class` and maybe even `title` (for better accessibility). ---- I was trying to thinking of an example and I think that the simplest example would be [https://v4-alpha.getbootstrap.com/utilities/responsive-helpers/ bootstrap responsive embeds]. {{{ <div class=""embed-responsive embed-responsive-21by9""> <iframe class=""embed-responsive-item"" src=""https://...""></iframe> </div> }}} Currently you can't set custom classes in iframe with the attributes: {{{ wp_oembed_get( 'https://...', array( 'class' => 'embed-responsive-item' ) ); }}} " ramiy 1 55671 TikTok embeds with </3 in the song field break html Embeds normal normal Awaiting Review defect (bug) new close 2022-05-04T08:35:54Z 2023-08-24T14:50:19Z "When embedding a TikTok which ends with </3 somehow the immediately following </a> is escaped along with it. This results in a broken page. Tested with other tiktoks that also end with </3 (also break) and tiktoks that don't end with this (don't break). [[Image(https://i.imgur.com/bjABMjp.png)]] This happens in the classic editor and the block editor in all themes. Confirmed with three different themes including Twenty Twenty. This is the content of the post. {{{ We zien de kleine rubberen haarelastiekjes steeds terug komen in de nieuwste <a href=""https://www.beautify.nl/de-barbie-paardenstaart/"">haartrends</a>. Denk aan de trend waarbij mensen losse vlechtjes in hun haar hebben hangen of los haar met één of twee knotjes. Deze kleine rubberen elastiekjes zijn vaak doorzichtig waardoor ze niet opvallen in het haar. Als je deze zelf al een keer hebt gebruikt weet je dat het best pijnlijk kan zijn om deze uit je haar te halen.. TikTok to the rescue.. want we hebben weer een tip gevonden. <h2>Rubberen haarelastiekjes</h2> Je kunt natuurlijk ook gewoon een schaar gebruiken, maar de kans is groot dat je toch een aantal extra haren knipt waarvan het niet de bedoeling was. Gelukkig zagen wij op een TikTok dé manier om dit te vermijden! TikTokker<a href=""https://www.tiktok.com/@thepamperedskin_"" rel=""noopener"" target=""_blank""> @thepamperedskin</a> laat ons zien hoe de hack werkt: https://www.tiktok.com/@thepamperedskin_/video/7079373120741707035 <h3>Hitte</h3> Het enige wat je nodig hebt is.. een haarstylingtool die heet kan worden! Denk aan een krul-of stijltang. Hoe werkt dit dan? Zorg dat je tool op temperatuur is en houdt deze even tegen het elastiekje aan. Door de hitte zal het rubber 'knappen' en zo haal je ze dus heel gemakkelijk uit je haar! <h3>Haarelastiekjestrend</h3> Zoals we je al eerder vertelden is het gebruik van rubberen elastiekjes helemaal hot. Je hebt het vast al voorbij zien komen óf al zelf geprobeerd! Heb jij dit weekend een feestje en wil je wel zo'n haarstijl proberen? Wij geven je nu wat inspiratie zodat jij zelf aan de slag kan gaan: <h3>1. Hailey Bieber </h3> https://www.instagram.com/p/COWIM88p5G4/?utm_source=ig_web_copy_link <h3>2. Gigi Hadid</h3> https://www.instagram.com/p/COIWYi-HzgD/ <h3>3. Kendall Jenner</h3> https://www.instagram.com/p/Cb6kkT3Of80/ <h3>4. Queen of Jetlags</h3> https://www.instagram.com/p/CcOFDv4Mkx4/ https://www.beautify.nl/tape-hack-tiktok/ }}} " rmens 42258 Twitter embed link in posts generates an empty paragraph Embeds 4.9 normal normal Awaiting Review defect (bug) new 2017-10-18T14:32:39Z 2017-10-18T14:32:39Z "When I look into the post, below the embed tweet I see an empty paragraph, when I look inside it, in the source I see a twitter script link: <script async src=""//platform.twitter.com/widgets.js"" charset=""utf-8""> So why it is like that? I think it should not add an empty paragraph after a tweet. How to replicate: 1. add a tweet link in the post: eg: https://twitter.com/BitsAndChipsEng/status/919845271831531520 2. preview the post. You will get an empty line, but if you will look into the source, you will see something like this: {{{#!php <p><script async="""" src=""//platform.twitter.com/widgets.js"" charset=""utf-8""></script></p> }}} " alexvorn2 1 34335 URL shorteners ( redirects) should to be supported by the embed handling for couple of hops Embeds 2.9 normal normal Future Release defect (bug) reviewing 2015-10-16T22:35:15Z 2023-05-29T10:40:57Z "It should be possible to use URL shorteners ( redirects) to load embeds. I have been testing the new embeds feature and have found that a Bit.ly link doesn't work, but the resolved link does I believe we should support at least one hop if not two " pbearne 1 49271 Video Player not responsive when inserting YouTube or Vimeo URL Embeds 4.9.8 normal normal Awaiting Review defect (bug) new 2020-01-22T16:17:47Z 2020-02-03T09:58:25Z "When inserting YouTube and Vimeo Videos by URL into Editor, the automatically embedded player is not responsive. Seen with WP 4.9.13, but ticket form Version dropdown menu does not offer this version, so I selected 4.9.8 instead." TRILOS 50329 Video not playing Embeds 5.4.1 normal normal Awaiting Review defect (bug) new 2020-06-06T03:14:39Z 2020-06-26T18:38:05Z "Hi, i used wp for more years. i use to paste direct video link on my post visual editor. like http://mysite.com/file.mp4 then its make the link into video player. since last core update i updated, its not working anymore. i check updates log but found nothing related to embed or video direct link into player. so this might be a bug. i googled for few hours with this topic" bdspice 45052 WP Oembed in multisite fail when the permalink structure is not default SergeyBiryukov Embeds normal normal Future Release defect (bug) reviewing dev-feedback 2018-10-05T05:36:34Z 2019-04-11T17:37:07Z "This is a follow up of #40673 In case blogs are using pretty urls (which should be the most common case), when you try to embed a post from the main site into a sub site, the embedded URL is not interpreted and we keep that simple URL. Thats because the main site is using a reserved blog prefix {{{/blog}}} we need to remove before using {{{get_sites()}}}. I've added a unit test to illustrate the bug." imath 1 42733 WordPress Embed URLs don't work for draft and scheduled posts with pretty permalinks Embeds normal normal Future Release defect (bug) assigned needs-unit-tests 2017-11-28T16:46:36Z 2023-05-29T10:41:09Z "This came up during work on #41451. Two tests fail with ''is_embed is false but is expected to be true'': - `Tests_Embed_Template::test_oembed_output_draft_post` - `Tests_Embed_Template::test_oembed_output_scheduled_post` Without pretty permalinks, the return of `get_post_embed_url()` is `http://example.org/?p=8&embed=true`. This URL is recognised as an embed URL when the request is parsed. But with pretty permalinks enabled, the return is `http://example.org/?p=8/embed/`. This is not recognised as an embed URL. The reason for the mixed URL structure seems to be `get_permalink()`. This function does not return pretty permalinks for draft or future posts, see https://core.trac.wordpress.org/browser/tags/4.9/src/wp-includes/link-template.php#L165" Frank Klein 1 44231 XML oembed discovery is not implemented correctly Embeds normal normal Awaiting Review defect (bug) new 2018-05-25T16:38:50Z 2023-05-30T09:51:54Z "When using XML in oembed discovery, WordPress still tries to encode it as JSON and fails. It doesn't retry to check if XML would work. How to reproduce this: - Add a link tag for an XML oembed: this is clearly tagged as `text/xml+oembed` and also has the file extension `.xml`: `<link rel=""alternate"" type=""text/xml+oembed"" href=""http://example.com/oembed.xml?url=http://example.com/blah""> - WordPress will now correctly resolve the provider as `http://example.com/oembed.xml?url=http://example.com/blah` - Wordpress will send a request to: `http://example.com/oembed.xml?url=http://example.com/blah&maxwidth=525&maxheight=788&dnt=1&format=json`. Note how it adds `format=json` but still uses the `.xml` file extension - The provider correctly returns an XML response, with HTTP status code 200 - Wordpress tries to parse it as JSON and fails - Wordpress doesn't retry with `format=xml` since it only tries XML if the JSON endpoint failed with HTTP status code 501 Background info from the spec: - If the format of the request is given in the file extension (e.g. `/oembed.xml`), the provider should ignore the `format` parameter. (See https://oembed.com/#section2.2). - For discovery the provider should specify the full oembed endpoint, including the `format` paramter. It's therefore wrong to override it in Wordpress. (See https://oembed.com/#section4)" rivalitaet 42074 YouTube Auto-Embed Does Not Work with Video+Playlist Links Embeds normal normal Awaiting Review defect (bug) new 2017-10-03T14:01:22Z 2018-06-14T12:08:30Z "Hi, When we past a video URL into the editor, it works fine: `https://www.youtube.com/watch?v=0yGrCbYDUvQ` But when embedding the ''playlist''-based URL, '''WordPress always shows the first video in the playlist''', despite the `v=0yGrCbYDUvQ` being set (see below what I am pasting). This is even if I ''don't'' have their `index` parameter set (indexes can move around): `https://www.youtube.com/watch?v=0yGrCbYDUvQ&list=PLpxGtvV4Cq_IacCuIMunwiFx3c4G5h0mE` To make it work, I always have to use YouTube's physical embed code, but then I don't get the benefits of WordPress auto-sizing it. Any chance to get this parsed out a bit better? Thanks!" MicroBerto 56346 Youtube oembed with double quotes in title breaks html Embeds normal normal Awaiting Review defect (bug) new 2022-08-07T17:51:48Z 2022-08-08T07:13:26Z "Steps to reproduce: 1. Navigate to `Post > Add New`. 2. Paste the following link: `https://www.youtube.com/watch?v=DLQg3Tw4bDc` 3. Click Preview. 4. 🐞 Notice that the iframe produced by the oembed breaks on double quotes in the title, because the title is not escaped. See screenshots. The bug was already present in previous versions, at least down to 5.8.x. Normally it's not a 'showstopper' because the browser handles the broken html well, but it's not clean and correct. I noticed because I'm using the REST API to build a static js site, and the build breaks on the error ""invalid html detected"". Searched the break and found it was caused by this youtube video embed." matiyin 1 42825 [embed] shortcode - oembed_cache not being updated when $cached_recently is false Embeds normal normal Awaiting Review defect (bug) new 2017-12-07T12:32:01Z 2019-01-17T01:31:35Z "For my plugin ( oik ) I developed a Shortcode help facility that shows examples of my shortcodes, syntax etc. It also shows examples of the WordPress core shortcodes. For [embed] it uses a YouTube URL [embed width=""480"" src=https://www.youtube.com/watch?v=nH228-XQ-A8] During PHPUnit testing in multiple environments I found I was getting different results. In one environment the content of oembed_cache was {{{ <iframe width=""480"" height=""360"" src=""https://www.youtube.com/embed/nH228-XQ-A8?feature=oembed"" frameborder=""0"" gesture=""media"" allowfullscreen> </iframe> }}} In other environments I was getting a different result. {{{ <iframe width=""480"" height=""360"" src=""https://www.youtube.com/embed/nH228-XQ-A8?feature=oembed"" frameborder=""0"" gesture=""media"" allow=""encrypted-media"" allowfullscreen> </iframe> }}} Note: The shortcode expansion is being performed in wp-admin with no global post. Trace analysis of the `shortcode` method in shortcodes/class-wp-embed.php indicates that the `$cached_post_id` is being set by `find_oembed_post_id`, which means that `$cache` is set to the content. But the post_modified_gmt of the first example is 25th November; so `$cached_recently` is false. Since `$this->usecache` is initially set to true then the `$cached_recently` logic is ignored and the route taken is to apply the first 'embed_oembed_html' filter then return. The subsequent updating doesn't kick in. == Partial fix == It doesn't look at all logical but setting `$this->usecache=false` before the return of `$oembed_post_id` in `find_oembed_post_id` partially resolves the problem. However, since there's no further checking of `$cached_recently`, this happens every single time. Obviously, more work is needed to update out of date cached items. This is a follow on to #34115" bobbingwide 44704 `wp.media.view.EmbedLink` and `oembed/1.0/proxy` don't work as expected Embeds 4.9.7 normal normal Awaiting Review defect (bug) new 2018-08-02T14:43:51Z 2018-08-07T08:43:17Z "It seems that `wp.media.view.EmbedLink` and the REST route `oembed/1.0/proxy` don't respect the `maxwidth` oEmbed parameter in all cases. **To Reproduce** Steps to reproduce the behaviour: 1. Create a new post. 2. Click on ""Add Media"" button. 3. Choose ""Insert from URL"" interface. 4. Paste a valid YouTube URL: https://www.youtube.com/watch?v=KA_CLal14u4 5. See the YouTube `<iframe>` with a `600px` width. 6. Click on ""Insert into post"" button. 7. Publish post. 8. Edit the YouTube video. 9. See the YouTube `<iframe>` with a tiny `200px` width. **Expected behaviour** The embed contents from Facebook or other services should have the same width when you add or edit them. **Reason found** After some researches, it seems that the problem comes from `media-view.js` and this part of code: {{{#!js this.dfd = wp.apiRequest({ url: wp.media.view.settings.oEmbedProxyUrl, data: { url: url, maxwidth: this.model.get( 'width' ), maxheight: this.model.get( 'height' ) }, type: 'GET', dataType: 'json', context: this }) }}} I don't know why the embed content `this.model.get( 'width' )` is egal to `0` when we edit it :/ As a result, the default value for the `maxwidth` argument of the REST route `oembed/1.0/proxy` can't be used like the first time. Here is the requested URL: 1. when we try to embed YouTube video: `http://v10.helloprojets.test/wp-json/oembed/1.0/proxy?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DscAxBpppwcQ%26list%3DPLoSIOFPSXQoOXzR8tpGC484wjgKFwIbWL%26index%3D78`. 2. when we edit the YouTube video: `http://v10.helloprojets.test/wp-json/oembed/1.0/proxy?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DscAxBpppwcQ%26list%3DPLoSIOFPSXQoOXzR8tpGC484wjgKFwIbWL%26index%3D78&maxwidth=&maxheight=`. This problem is a bit weird and complex. I hope I was clear in my explanations ;)" 7studio 58644 embed height fix Embeds 4.4 normal normal Awaiting Review defect (bug) new 2023-06-27T15:59:11Z 2023-06-27T16:48:10Z "It seems that this fixes the issue of embeds cutting off at the bottom. It would be great if it could be implemented into the core. I have tested it and it works and fixes the issue: [https://medium.com/@wlarch/overwrite-and-bypass-wordpress-iframe-height-dimension-limit-using-javascript-9d5035c89e37 Overwrite and bypass WordPress iframe height dimension limit using JavaScript]" iamhugo76 2 51085 oEmbed JSON returning 404/401 when embedding anything from Spotify Embeds 5.5 normal normal Awaiting Review defect (bug) new 2020-08-20T16:49:49Z 2020-08-20T23:40:00Z "Hi there, Trying to embed a Spotify track/podcast episode via oEmbed. It worked great in the past. Right now I'm testing with WP 5.4.2 and 5.5, no plugins, default theme. PHP 7.3/7.4. This happens both in the block editor and classic editor. Getting a 404 in the browser console - Failed to load resource: the server responded with a status of 404 () - https://domain.com/wp-json/oembed/1.0/proxy?url=https%3A%2F%2Fopen.spotify.com%2Falbum%2F7xYnLZK3hR60bzd6sRNOvm%3Fhighlight%3Dspotify%3Atrack%3A3MUeRkKpLxxyRFzqMTj1HY&_locale=user Then also 401 when trying to access directly but I guess that makes sense - {""code"":""rest_forbidden"",""message"":""Sorry, you are not allowed to make proxied oEmbed requests."",""data"":{""status"":401}} Trying to embed: https://open.spotify.com/embed/track/1G1aohIsSGFUDnkJLGMJr2 Or https://open.spotify.com/track/1G1aohIsSGFUDnkJLGMJr2" secondlinethemes 1 52935 oEmbed cache is no longer refreshed upon post update Embeds 5.0 normal normal Awaiting Review defect (bug) new 2021-03-29T10:36:17Z 2021-03-29T10:36:17Z "Before the Block editor was introduced, an AJAX request was used for refreshing oEmbed cache of a given post upon it's update. See related code: https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-wp-embed.php?rev=48586#L81 and https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/ajax-actions.php?rev=48586#L253 However, this code is no longer being triggered by the block editor for multiple reasons ( post update is happening via REST API, thus there is no redirect and the `edit_form_advanced` action prints only hidden fields in the block editor ), and even if it were, the `WP_Embed::cache_oembed` does not seem to properly parse the Block's editor notation. So, even switching to classic editor and updating the post won't make the oEmbeds to refresh. The only way to refresh oEmbeds is a WP CLI command ( see https://developer.wordpress.org/cli/commands/embed-2/cache/ ). Due to the way the Block editor handles display during the editing part and it's discrepancy in the front-end displaying part, an embed which, for whaterver reason failed to cache ( there is this `{{unknown}}` post meta for the URL stored in the database ), the embed may appear working in the edit post screen, but would appear broken when rendered on frontend. Steps to reproduce / debug the issue would be: 1. adding a mu-plugin blocking any oEmbeds ( eg.: `add_filter( 'pre_oembed_result', function() { return false; }, 11 );` ), 1. create a new post with YouTube oembed 1. view the post, see it's broken 1. remove the mu-plugin 1. open the post in editor, see YouTube working, eventually try to re-save the post 1. view the post on front-end, see it's still broken The above steps do not produce broken oEmbed in the last step, when all are performed in the classic editor. While there is a WP CLI command for refreshing the oEmbed cache, there is no longer an easy way for a user w/o access to the server to refresh the oEmbed cache (which used to be as easy as re-saving the post). Perhaps a cache refreshing logic could be introduced server-side, during the post update action?" david.binda 2 41746 oEmbed does not respect canonical provider url parameter Embeds 2.9 normal normal Awaiting Review defect (bug) new needs-unit-tests 2017-08-28T20:30:45Z 2017-09-20T20:39:38Z "I came across a Twitter URL format that would not embed correctly. Providing that URL to their provider endpoint returned an error. But the original page had a `<link>` element which already had a working, canonical `url` parameter in its querystring. An example URL is: {{{https://twitter.com/i/web/status/898599373956722688}}} If you try to fetch oEmbed data for that URL by just adding it as a `url` querystring parameter on the standard Twitter oEmbed provider URL, it will return an error. But view source on that page, and you'll see: {{{<link rel=""alternate"" type=""application/json+oembed"" href=""https://publish.twitter.com/oembed?url=https://twitter.com/dimensionmedia/status/898599373956722688"" title=""David Bisset on Twitter: "Agorakit is a web based open source "groupware for citizens initiatives” (which i’ve seen @buddypress used for too) https://t.co/bFPw9ZZWi2 https://t.co/H1REt0QfcO""">}}} Note that the path of this URL is `.../{username}/status/{id}`, whereas the original URL was `.../i/web/status/{id}`. I've worked out a small patch and method for getting WordPress to use oEmbed discovery to extract and use the canonical URL. When using `wp_oembed_add_provider()`, if you leave the provider URL falsey, then `WP_oEmbed::get_provider()` will use discovery to find it (assuming that you haven't forced `discovery = false` in `$args`). Then my patch will pull the `url` arg from there and use that, instead of the original URL that was passed in to the embed handling. Later, when the JSON response is being handled, the code will still be able to see whether this is a whitelisted URL pattern, and bypass/perform security filtering such as `kses()` (see `wp_filter_oembed_result()`). " dougal 2 49682 oEmbed should not trigger for urls with fragments Embeds normal normal Awaiting Review defect (bug) new 2020-03-23T02:30:19Z 2022-09-23T00:02:52Z "As reported in #meta4346 WordPress's link autoembeding embeds links with fragment anchors attached and ultimately causes the links meaning to change. For example, the embed for https://wordpress.org/support/article/writing-posts/#visual-versus-text-editor will just be the Writing Posts page with no link to the specific section." dd32 2 49627 oEmbedding - Privacy by design - Inconsistencies & Legal concerns Embeds normal normal Awaiting Review defect (bug) new 2020-03-12T11:41:19Z 2020-03-23T01:14:09Z "oEmbedding is now driven by two files : * {{{wp-includes/class-wp-oembed.php}}} and its list of ""popular"" oEmbed providers : array ( pattern => array( oembed_url, regex [boolean] ) ) This list is loaded in {{{wp-settings.php}}} with this instruction : {{{$GLOBALS['wp_embed'] = new WP_Embed();}}} This list of providers is filterable with hook {{{'oembed_providers'}}}, but the hook appears to be fired before {{{'plugins_loaded'}}} and {{{'init'}}} hooks. The modus operandi to alter the ""popular"" providers list is described here : [https://wordpress.org/support/article/embeds/] . * {{{wp-includes/js/dist/block-library.js}}} The data structure is here different due to some visual aspects (Gutenberg) Several variables with name like {{{'embedXxxxxIcon'}}} are objects containing svg icons and another list of oEmbed providers with a specific variable called 'common' which is a set of -- name => settings ( title, name svg icon, keywords, description ) => patterns 1) the lists of oEmbed providers are not identical in php and javascript. 2) in each list, the patterns for each oEmbed provider can be different. 3) the once driven oEmbedding process by the php array that could be filtered or altered (""popular"" oEmbed providers) is not possible anymore. If you are using the Classic editor or Gutenberg, the process to retrieve the data and the structure of the data are different as shown in screenshot1 (Classic trunk) and screenshot2 (Gutenberg 5.3). 'Classic editor' is using {{{admin-ajax.php}}} and retrieves a specific json format. 'Gutenberg' is using the rest-api and calls a url such as {{{'index.php?rest_route=/oembed/1.0/proxy&url....&_locale=user'}}} and retrieves the full oembed json from the provider. In the class-wp-oembed-controller, the code executed seems similar to Classic editor (data2html) but the result is obviously different. Both are caching the html code in post_meta table, 'Gutenberg' is caching the json result of oembed in options table. This means that the filter 'oembed_result' is by-passed when oembed content is displayed in 'Gutenberg'. 4) if a site decides to remove one or all references to ""popular"" or ""trusted"" (vocabulary differs in code comments) oEmbed providers or add its own, this is not possible anymore when using Gutenberg, because the javascript providers list is hard-coded and cannot be altered. For obvious local regulations, it is important to be consistent and coherent in the oembedding policy choices of each site for each site. This is a regression and an infringement to the ""Privacy by design"" policy adopted by wordpress open source project. 5) i am not going to discuss how the ""popular"" providers got elected by a ""popular"" vote or an electoral college and if they had a superpac to get elected (or more accurately ""be referenced""). On some websites, these arbitrary choices that cannot be altered may contervene to website policy e.g. educational blogs for kids, or local laws. In some countries, this can be considered as political [ethymology definition : ""life in the city""] choice and can put at risk wordpress users : loading in their browsers references to forbidden sites. Surveillance is everywhere and not all countries are democracies. 6) it is important, that in WordPress, all ""popular"" oEmbed providers removed or added by filter, be removed or added in any form of code (Gutenbeg specific blocks included) (privacy by design). This implies a unique reference list of providers (filterable/alterable in php) with some extra information for visual aspects under Gutenberg. The javascript variables must be generated (or not if providers is an empty array) from the php list (with some default values if extra information is not provided). To simply and easily : a) add a new provider on both sides and specific svg icons. b) remove a ""popular"" provider with an easy {{{wp_oembed_remove_provider( 'tactic' ); }}} rather than {{{wp_oembed_remove_provider( '#https?://(www\.)?tactic\.com/.*/video/.*#i' );}}} c) {{{wp_oembed_remove_all_providers()}}} is also welcome. 7) it could be interesting to offer optional and intermediate solutions to oEmbedding as it is processed today (privacy by design) : a) insert specific html ( usually iframe : fully intrusive) b) insert link to url with thumbnail when available {{{<a href=...><img src=thumbnail_url ... /></a>}}} (less intrusive) c) insert link as text {{{<a href=url ...>(some title or text if available or url)</a>}}} (no oEmbedding : not intrusive) Requires to cache the complete json answer indifferently ('Classic' or 'Gutenberg'). 8) it could be interesting to encapsulate the oembedding result in a custom html5 element (privacy by design) such as {{{<wp-oembed> ... </wp-oembed>}}} to allow theme developpers to add specific js on embedded content. 9) The oEmbed providers listed in wordpress are referenced by wordpress. Definitely change the vocabulary used in the code comments. Do not use ""popular"" or ""trusted"" providers but 'referenced providers', because this is the most accurate definition. Regards related #43713, related https://wordpress.org/support/article/embeds/ ps : as a remainder, GDPR chapter IV title is Controller and Processor." arena 57234 oembed_cache created in post affects the post_author on export Embeds normal normal Awaiting Review defect (bug) assigned 2022-11-30T12:14:04Z 2024-02-08T08:19:25Z To fix ticket #34115 we've introduced a custom type `oembed_cache` in the post table. However, once an `oembed_cache` is created the `post_author` will be the user who triggers it instead of the site owner. Because of the reason above, when you try to export the blog, it'll show up as a <wp:author> in the file which is pretty confusing. It probably makes more sense to set the `post_author` as 0 or set it to the site owner. wecanwang 51471 pre_oembed_result filter missing from oembed proxy controller Embeds normal normal Future Release defect (bug) assigned needs-unit-tests 2020-10-07T18:14:51Z 2021-02-17T02:57:22Z "[https://github.com/WordPress/WordPress/blob/5cee7eced0b691089a875d7e918d4380bac408af/wp-includes/class-wp-oembed.php#L363-L415 WP_oEmbed::get_html()] [https://github.com/WordPress/WordPress/blob/5cee7eced0b691089a875d7e918d4380bac408af/wp-includes/class-wp-oembed.php#L393 applies] the `pre_oembed_result` filter, allowing it to short-circuit the actual request to the oEmbed provider's REST API. That same filter is however missing from [https://github.com/WordPress/WordPress/blob/5cee7eced0b691089a875d7e918d4380bac408af/wp-includes/class-wp-oembed-controller.php#L154-L220 WP_oEmbed_Controller::get_proxy_item()]. (Note that both `WP_oEmbed::get_html()` and `WP_oEmbed_Controller::get_proxy_item()` are otherwise quite similar, sharing the `get_data()` and `data2html()` calls, and `oembed_result` filter.) It's arguable that the oembed REST API endpoint should allow for the same kind of filtering as the `oEmbed` class. This issue seems somewhat similar to #45142, which was about the `oembed_result` filter. cc @swisspidy @danielbachhuber" Bernhard Reiter 1 37597 served oEmbed from cache even when expired Embeds 4.0 normal normal Awaiting Review defect (bug) reopened 2016-08-08T11:37:17Z 2018-03-05T15:26:53Z "There is wrong condition in wp-includes/class-wp-embed.php Embeds are pulled from cache even if $cached_recently is false = expired. This condition: {{{#!php <?php if ( $this->usecache || $cached_recently ) { }}} should be changed to: {{{#!php <?php if ( $this->usecache && $cached_recently ) { }}}" zabatonni 2 36239 wp-embed image size is using the smallest image or it sometimes uses the one for featured images Embeds 4.4.2 normal normal Awaiting Review defect (bug) new dev-feedback 2016-03-14T19:48:48Z 2020-09-25T19:44:53Z When using the wp-embed in my custom post types the image size is correct, a bit big, but it's not blurry. In regular posts, the image size is the thumbnail size created for the media library thumbnail (not the one in the media settings) because that happens to be the smallest one. I noticed that for posts, whatever is the smallest image is being used, whether set in the functions file or by WordPress. carasmo 58840 Add Canva as an oEmbed provider Embeds normal normal Future Release enhancement new 2023-07-18T15:06:41Z 2023-08-24T14:38:34Z "**Is the service is popular enough for core developers to have heard of it before? Is it “mainstream?”** It is quite popular with over 100 million users according to Wikipedia. **If similar services are already supported, how does this service compare in terms of size, features, and backing? ** Not sure. **Does this service have an established social media presence?** Almost 300k followers on Twitter: https://twitter.com/canva **Is its oEmbed endpoint clearly established and properly documented? (Sometimes, they are just a developer’s pet project that may not be supported.)** Only found https://www.canva.com/embeds/ and https://www.canva.dev/blog/engineering/how-canva-makes-content-embeddable-and-why-you-should-too/ about this **Does the oEmbed endpoint work with WordPress’ oEmbed auto-discovery? If not, could it be made to work with additional HTML tags or attributes being added to the allow-list? ** oEmbed discovery does not work for Canva because the meta tag is very far down in the page source and WP only parses the first few KB of the response. **Does the service make an effort to build relationships with developers, such as through robust APIs?** Not sure. They do seem to have good dev docs and an engineering blog. **How old is the service?** Over 10 years old. **Does it have a well-established Wikipedia article? (Seriously.)** Yes. https://en.wikipedia.org/wiki/Canva **Has anyone written a WordPress plugin that leverages the service in some way, whether adding it as an oEmbed provider, creating a shortcode, or leveraging other APIs of the service? Do these plugins have any noticeable adoption or traction that would indicate usage and demand?** Years ago they had their own official WordPress plugin but it has been abandoned: https://wordpress.org/plugins/canva/ **Is the provider frequently proposed?** First time AFAIK." swissspidy 1 59299 Add Felt.com to the list of oEmbed providers Embeds normal normal Awaiting Review enhancement new 2023-09-06T15:45:40Z 2023-10-08T23:10:54Z "I'd like to request whitelisting the Felt.com's oEmbeds. Their mapping platform is both robust and user-friendly, and would be a great addition to WordPress users interested in sharing maps online. Here's an example URL: https://felt.com/map/Learn-to-Use-Felt-Tutorial-0xljGYVlRzGfxNgRV9A6akC?loc=40.7849,-73.97533,13.94z&share=1 **Is the service is popular enough for core developers to have heard of it before? Is it “mainstream?”** It's probably not mainstream yet, but it's a very well-known service in the GIS community. **If similar services are already supported, how does this service compare in terms of size, features, and backing?** As far as I know, core doesn't whitelist embeds for other mapping platforms. To embed maps from other providers (OpenStreetMaps, Google, Mapbox, etc.), a map block is required. **Does this service have an established social media presence?** Yes. https://twitter.com/felt http://threads.net/@feltmaps http://mas.to/@felt https://www.youtube.com/@feltmaps **Is its oEmbed endpoint clearly established and properly documented? (Sometimes, they are just a developer’s pet project that may not be supported.) ** It's supported, but as far as I know, it's not documented in their dev documents https://feltmaps.notion.site/Getting-Started-With-The-Felt-API-69c8b02b7d8e436daa657a04a2dbaffa **Does the oEmbed endpoint work with WordPress’ oEmbed auto-discovery? If not, could it be made to work with additional HTML tags or attributes being added to the allow-list?** Yes, the embed is discoverable. **Does the service make an effort to build relationships with developers, such as through robust APIs?** **How old is the service?** The company was founded in 2021, the platform was launched at the beginning of 2022. **Does it have a well-established Wikipedia article? (Seriously.)** No, but they are contributors to several big open-source projects. More information https://felt.com/open-source, https://felt.com/blog/felt-flagship-member-of-qgis, and https://blog.qgis.org/2023/03/21/felt-is-our-first-sustaining-member **Has anyone written a WordPress plugin that leverages the service in some way, whether adding it as an oEmbed provider, creating a shortcode, or leveraging other APIs of the service? Do these plugins have any noticeable adoption or traction that would indicate usage and demand?** No, as far as I know. **Is the provider frequently proposed?** No, this would be the first time." javiarce 1 60182 Add Gumlet.com to oEmbed allowlist akbansa Embeds normal normal Future Release enhancement assigned dev-feedback 2024-01-03T08:14:32Z 2024-02-20T07:50:51Z "I use Gumlet for my videos, a video hosting platform similar to YouTube. While WordPress's core Editor render Youtube URLs but not Gumlet. Gumlet supports oEmbed and so does WordPress. But on checking further, I found that you have a whitelisted domain list for videos. Please add Gumlet oEmbed support to the whitelisted domains. Gumlet supports Embedding on two URLs, attached below - https://api.gumlet.com/v1/oembed?url=https://www.gumlet.com/watch/6566f0c80701dac63772c357/ https://api.gumlet.com/v1/oembed?url=https://play.gumlet.io/embed/6566f0c80701dac63772c357/" akbansa 60321 Add Viostream.com to oEmbed allowlist Embeds normal normal Awaiting Review enhancement new has-patch 2024-01-22T23:55:28Z 2024-01-23T00:06:10Z "Viostream.com has implemented oEmbed support. Adding Viostream.com to the WordPress whitelist will enable Viostream users to seamlessly embed their videos in WordPress. Questionnaire responses below: == Is the service is popular enough for core developers to have heard of it before? Is it “mainstream?” Viostream is widely used by Government and enterprise businesses in Australia - many of their developers have requested easier WordPress integration. == If similar services are already supported, how does this service compare in terms of size, features, and backing? Viostream does have a smaller market share than competitors such as Vidyard, however the feature set is particularly geared towards enterprise and Government, particularly around security aspects of the platform. == Does this service have an established social media presence? Yes - see https://www.facebook.com/viostreamhq/ and https://www.linkedin.com/company/viostream == Is its oEmbed endpoint clearly established and properly documented? (Sometimes, they are just a developer’s pet project that may not be supported.) Yes - see https://help.viostream.com/sharing-your-media/embedding-with-oembed-tags/ == Does the oEmbed endpoint work with WordPress’ oEmbed auto-discovery? If not, could it be made to work with additional HTML tags or attributes being added to the allow-list? Yes, discovery has been implemented. == Does the service make an effort to build relationships with developers, such as through robust APIs? Yes, Viostream provides a RESTful API for video management as well as a player API for presentation integrations. == How old is the service? Viostream as a business has been operating for over 20 years. The current Viostream service has been operating for over 10 years. == Does it have a well-established Wikipedia article? (Seriously.) No. == Has anyone written a WordPress plugin that leverages the service in some way, whether adding it as an oEmbed provider, creating a shortcode, or leveraging other APIs of the service? Do these plugins have any noticeable adoption or traction that would indicate usage and demand? No == Is the provider frequently proposed? Yes - both existing and prospective customers have requested this functionality." sjauldviostream 54434 Add Zoomable as an oEmbed provider Embeds normal normal Awaiting Review enhancement new 2021-11-13T03:11:21Z 2021-11-18T14:21:39Z "We would like to apply to become an embed provider on WordPress.com. As requested, here are the answers based on the questions from the WordPress Documentation site. https://developer.wordpress.com/docs/embedding-on-wordpress-com/ **1. How many active monthly users does your service have?** It fluctuates between 3.1K to 17K, depending on the contents and how the creators promote their work. Case in point: Twitch Atlas Vol. 2. Work like this typically draws a lot of traffic with the help of social media. https://www.reddit.com/r/LivestreamFail/comments/m3r9o6/twitch_atlas_vol_2/ **2. Do you have a WordPress.org plugin?** We do have a plugin for WordPress but not on WordPress.org. https://zoomable.ca/zoomable_for_wordpress.html **3. How many self-hosted WordPress sites currently embed your service?** Regrettably, we don't have this information at hand. However, we do have a non-exhaustive list of public sites that embed to our service available on our website. https://zoomable.ca/sites_using_zoomable.html **4. Does your service already support oEmbed?** Yes as we are one of the providers on embed.ly https://embed.ly/provider/zoomable Our service can be embedded on the following sites: - Medium (oEmbed) - Matterport (oEmbed) - Squarespace (oEmbed) - Wix (oEmbed) - Shopify (iframe) - Weebly (iframe) **5. What are the URL scheme and oEmbed API endpoint for your service?** URL 1 (Free Account): !https://srv2.zoomable.ca/* oembed_url: !https://srv2.zoomable.ca/oembed oembed_scheme: !https://srv2.zoomable.ca/viewer.php* example_url_1: https://srv2.zoomable.ca/viewer.php?i=imgecf402ea70b2e191_Spain_and_Portugal_rail_WM_6000px example_url_2: https://srv2.zoomable.ca/viewer.php?i=img3f3680be627ab64b_Dulle_griet_resto example_url_3: https://srv2.zoomable.ca/viewer.php?i=imgca0e93b71726ba80_BaffinBay URL 2 (Paid Account): !https://community.zoomable.ca/* oembed_url: !https://community.zoomable.ca/oembed oembed_scheme: !https://community.zoomable.ca/image/* example_url_1: https://community.zoomable.ca/image/iiCh example_url_2: https://community.zoomable.ca/image/iBx0 example_url_3: https://community.zoomable.ca/image/iV26 **6. What is an example valid URL that we can use to test embedding your service?** See 5. **[What We Do]** Zoomable is an image conversion service that turns high-resolution image (3000 x 3000 px and beyond) into a zoomable image. The zoomable experience invites users to examine the image in greater details. Our service is mentioned in a few wiki entries such as Deep Zoom (the technology that our service is based on), Seadragon Sofware, and Image Composite Editor. Although we don't have a designated page on Wiki, we have an entry on Crunchbase. https://www.crunchbase.com/organization/zoomable **[Our User Base]** Our service caters to a variety of sectors, with strong user base in the creative and cultural sector. We have showcased some of our users on our website. https://zoomable.ca/sites_using_zoomable.html Here are some highlights: **1. 200 Panel Orion Mosaic by Matt Harbison** http://spaceforeverybody.com/Orion/ The above work was featured on Petapixel https://petapixel.com/2020/10/23/this-insane-2-5-gigapixel-image-of-the-orion-constellation-took-five-years-to-complete/ **2. An article on Stuff.co.nz, New Zealand’s leading news website (the zoomable image is at the end of the article).** https://www.stuff.co.nz/environment/300283917/taniwha-in-the-valley-hutt-river-is-both-threatened-and-threatening--but-is-it-just-misunderstood **3. British Library: Hebrew Manuscripts exhibition (Virtual Tour on Matterport platform)** https://t.co/H0mo8Q7hbf?amp=1 **4. National Lottery Heritage Fund: Shared purpose and a clear direction — building our first roadmap (Medium article)** https://medium.com/doing-service-design-at-the-national-lottery/shared-purpose-and-a-clear-direction-building-our-first-roadmap-4795e605a3dd **5. A Dystopian City in a Box (Squarespace site, the zoomable image is at the end of the article)** https://www.ruchikanambiar.com/the-lilliput-proletariat **6. Mike Hall (Shopify store)** https://shop.thisismikehall.com/products/a-panorama-of-london-original-version-giclee-print **7. Ohio County Public Library: Map of the City of Wheeling and Suburbs Ohio Co. Virginia, 1853** https://www.ohiocountylibrary.org/archives/map-of-the-city-of-wheeling-and-suburbs-ohio-co.-virginia-1853/7408 We believe our service will provide an additional tool for the creators to showcase their work easily on WordPress.com. We look forward to hearing from you. Please let us know if there are areas that we need to work on to make this request feasible. Thank you for your time. Zoomable Team" zoomable 1 51738 Adding Adventr as an oEmbed provider Embeds normal normal Future Release enhancement new 2020-11-09T22:13:12Z 2023-05-30T17:12:26Z "This ticket is a request to have *.adventr.io added to the list of whitelisted oEmbed providers. Adventr.io is a popular smart video creation tool that allows any creator to make and publish branching videos with personalized choose-your-own-adventure outcomes. It also allows creators to make parts of their videos into clickable links, so that viewers can learn more about things they see in the video. **Is the service is popular enough for core developers to have heard of it before? Is it “mainstream?”** Adventr is being used by major brands and has been covered in mainstream press such as TechCrunch, Rolling Stone, and more. https://techcrunch.com/2014/05/13/adventr-launch/ https://www.rollingstone.com/music/music-country/texas-gentlemen-floor-it-movie-1076359/ **If similar services are already supported, how does this service compare in terms of size, features, and backing?** Adventr would be the **only** white-listed provider of interactive video experiences. Adventr is the most feature-rich and robust platform for creating and publishing smart videos. **Does this service have a large following on Twitter, Facebook, or other social media? Is its Twitter account verified?** Adventr is not very active on social media (handle is adventrhq), but its founder & CEO has a verified Twitter account: https://twitter.com/springsteezy **Is its oEmbed endpoint clearly established and properly documented? (Sometimes, they are just a developer’s pet project that may not be supported.)** We have oembed API documentation: https://help.adventr.io/en/articles/4613290-adventr-oembed-api Adventr is also supported by Embedly: https://embed.ly/provider/adventr **Does the oEmbed endpoint work with WordPress’ oEmbed auto-discovery? If not, could it be made to work with additional HTML tags or attributes being whitelisted?** It only partially works. WordPress's sandbox settings disable links and sharing within the embed, resulting in making some interaction elements and all share options non-responsive. Wordpress also prevents full-screen playback. In the Rolling Stone article (which is powered by Wordpress) where they embedded an Adventr, clicking any share option fails, fullscreen fails, and links outside of the video also fail: https://www.rollingstone.com/music/music-country/texas-gentlemen-floor-it-movie-1076359/ **Does the service make an effort to build relationships with developers, such as through robust APIs?** Adventr currently offers a realtime javascript API that our creators can use to make in-video interactions affect other parts their page. Details on this API are available here: https://help.adventr.io/en/articles/4467154-using-the-adventr-realtime-player-api This API will be developed over time and allow creators to do more and more interesting things in the future. **How old is the service?** Adventr was originally founded in 2014 and rebranded with a new look and a brand-new HTML5 player in 2020. **Does it have a well-established Wikipedia article? (Seriously.)** Adventr's founder has a well-established Wikipedia article: https://en.wikipedia.org/wiki/Devo_Springsteen **Has anyone written a WordPress plugin that leverages the service in some way, whether adding it as an oEmbed provider, creating a shortcode, or leveraging other APIs of the service? Do these plugins have any noticeable adoption or traction that would indicate usage and demand?** Not yet, but there is plugin potential if someone wants to take advantage of the realtime player API and integrate it with other Wordpress plugins like WooCommerce etc. **Is the provider frequently proposed?** I believe this is the first time it is being proposed here. Our own users have written multiple support requests due to issues with Wordpress embeds, leading us to write a support article explaining how to use Custom HTML instead of Wordpress Embeds. However, this adds complexity to the use of Wordpress and makes it harder to take advantage of Wordpress's responsive sizing. For Wordpress users who are posting content created by other Adventr users (as in the Rolling Stone example above), we believe they expect the content to work correctly when embedded on their Wordpress site." adventrpeter 20 44610 Allow Youtube-Player to use youtube-nocookie.com URLS to avoid setting cookies. Embeds 4.9.7 normal normal Future Release enhancement assigned has-patch 2018-07-19T07:59:59Z 2023-05-26T12:40:39Z "The file ""wp-includes/class-wp-customize-manager.php"" includes a function ""_validate_external_header_video( $validity, $value )"". The regex used in this function is incomplete, as some urls are invalidated in the customizer. What is interesting is that the regex used in ""wp-includes/js/wp-custom-header.js"" (which actually sets the youtube video), is different and validates e.g the youtube-nocookie.com URLs, that I think more people will need due to GDPR. In the javascript file, it actually quotes a stackoverflow regex found at: http://stackoverflow.com/a/27728417 **Proposal:** Update the regex in ""wp-includes/class-wp-customize-manager.php"" (line 5664) to match the one used in ""wp-includes/js/wp-custom-header.js"" (line 379)." jepperask 60727 Allow fine-grained control of when to use oEmbed for providers outside the explicit list Embeds normal normal Awaiting Review enhancement new 2024-03-07T18:30:45Z 2024-03-07T18:30:45Z "WordPress maintains a list of appvoed oEmbed providers. Developers are able to add or remove providers from this list. WordPress also attempts to see if URLs, outside the provider list, support oEmbed - and if they do, it uses oEmbed for them. Unfortunately, this is currently an ""all or nothing"" appraoch. You can either agree to use all these random sites oEmbed, or none. I'd love to see a filter added to control whether or not a specific URL, outside the provider list, should use oEmbed. For reference, our specific use case is we want to continue supporting oEmbed for the vast majority of sites that support it - but we've identified some specific domains that do a poor job of oEmbed, and we'd like to only turn it off for those domains." MadtownLems 57076 Allow fullscreen in oembed videos Embeds normal normal Awaiting Review enhancement new 2022-11-11T15:27:50Z 2022-11-15T11:32:51Z "Hi! We're trying to enable fullscreen from a video loaded through oembed (and not by copying directly the iframe) from PeerTube. Here is the link to the video: https://video.davduf.net/w/4V6DMLcQDGQHnZ9wf6h4KH And to the oembed: https://video.davduf.net/services/oembed/?url=https://video.davduf.net/w/4V6DMLcQDGQHnZ9wf6h4KH I tried to understand why it was not working and found this piece of code: https://github.com/WordPress/WordPress/blob/82f3535083c0d8859bd3b8333fe006394978c09e/wp-includes/embed.php#L926 I guess it's because allowed attributes do not include `allowfullscreen` but I am not confident enough with WP code to be sure it's bound to this part. Anyway, would it be possible to allow the allowfullscreen attribute in `iframe` loaded through oembed? Thanks." booteille 49352 Allow get_proxy_item to be filtered/altered before a response is sent to the editor. Embeds normal normal Awaiting Review enhancement new 2020-02-03T16:13:40Z 2020-02-03T16:13:40Z "**tl;dr:** Add a filter in {{{\WP_oEmbed_Controller::get_proxy_item}}} so certain non-oembed sites can still be embeded using a custom handler from a plugin. **Scenario:** I would like to create a generic oEmbed provider on my own site similar to iframely.com. So when a user posts a link in the editor that isn't a oembed provider, I would like to be able to filter the response from {{{\WP_oEmbed_Controller::get_proxy_item}}} and not having it reply with {{{return new WP_Error( 'oembed_invalid_url', get_status_header_desc( 404 ), array( 'status' => 404 ) );}}}. In my ideal case I could catch this and pipe the URL in question through my own proxy endpoint and create a custom oEmbed result from meta and open graph tags generated from the original HTML of the link to be embeded. Currently it seems, that I can only replace the all embeds through a custom handler, similar to what iframely does: https://github.com/itteco/iframely-wordpress/blob/master/iframely/iframely.php#L19-L23 " neverything 1 55079 Allowed post tags and allowed tags iframe Embeds 5.9 normal normal Awaiting Review enhancement new has-patch 2022-02-04T13:16:44Z 2022-02-04T16:33:10Z I have already checked wp-includes/kses.php file but now allowed iframe tags. iframe is very important for displaying youtube, vimeo videos and other platforms. csesumonpro 1 56489 An extra post lookup in WP_Embed::shortcode for known post Embeds normal normal Awaiting Review enhancement new 2022-09-01T16:34:26Z 2022-09-01T16:37:10Z "`WP_Embed::shortcode` caches embeds into post_meta for known posts (ie.: embed in a post_content) or into a post of the `oembed_cache` post type in case the global post is not set (ie.: outside the loop). However, [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-wp-embed.php?rev=53269#L251 the code] always tries to lookup the `oembed_cache` post, even in case the global post is set, which results in an extra SQL query, since the `oembed_cache` post is never created, if there is a known global post. The `$cached_post_id` variable populated by the `WP_Embed::find_oembed_post_id` function call is really only used in case there is no global post set, and thus, IMHO, should be only populated in such case." david.binda 54468 Apply aspect ratio classes to wp_oembed_get when theme_supports('responsive-embeds') is added Embeds 5.9 normal normal Awaiting Review enhancement new 2021-11-18T19:37:38Z 2021-11-18T19:37:38Z "The Gutenberg embed block supports [adding responsive wrappers around embeds that are cognizant of the embed's aspect ratio](https://github.com/WordPress/gutenberg/blob/v11.9.1/packages/block-library/src/embed/util.js#L185). Without creating fixed-width columns, the embed will fill its container at the interpreted aspect ratio. If you're still writing PHP templates, you're using wp_oembed_get, which does not support this. [This ticket](https://core.trac.wordpress.org/ticket/34928) suggests that some JS fires to adjust the height on iframes on window resize, but that's a somewhat different issue, becoming important after the embed has been rendered. That ticket also suggests that an embed expanding to fill its container is undesirable and not in-line with oEmbed's specification, but whoever designed the Gutenberg block must have had a different interpretation of that spec. Would be great if WordPress oEmbeds behaved the same however you create them." eclev91 37868 Avoid default width styles in the markup of the audio player wonderboymusic Embeds 4.6 normal normal Future Release enhancement assigned has-patch 2016-08-29T18:51:47Z 2019-04-19T16:03:03Z "The markup for every audio player contains inline styles for setting its width to 100%, like below (simplified): {{{ <div class=""wp-audio-shortcode"" style=""width: 100%;""> <audio class=""wp-audio-shortcode"" style=""width: 100%;""> }}} Why not move that style to a stylesheet? It is the default style for ''every'' audio player, so let’s not repeat ourselves each time. Moreover, style attributes in the HTML make it hard to override styles. If you don’t want your audio player to be 100% wide you’re left with two ugly options: a) Use `!important` declarations in your own stylesheet to override it. b) Filter out the default width like this: {{{ add_filter( 'shortcode_atts_audio', 'my_shortcode_atts_audio', 10, 4 ); function my_shortcode_atts_audio( $out, $pairs, $atts, $shortcode ) { $out['style'] = preg_replace( '~(?:^|\s)width\s*+:\s*+100%;?~i', '', $out['style'] ); return $out; } }}} " GeertDD 49910 Embed: resizable iframes Embeds normal normal Awaiting Review enhancement new 2020-04-15T16:24:05Z 2020-04-15T16:24:05Z "Hi, I am a developer at Weezevent (https://www.weezevent.com/en-gb), a ticketing solution. I am currently developing an oEmbed provider to embed our registration widget in WordPress, that returns a ""rich"" embed containing an iframe with a fixed height. It technically works but our content height changes as the user progresses through the registration steps, so when our content is small it leaves a big gap between the end and the next paragraph in Wordpress; and when our content is big the iframe becomes scrollable. In both cases it's not looking good and not mobile friendly. Our default integration uses a js script to monitor the content size and dynamically resize the iframe. You can check an integration using our js script here https://cabaretvert.com/billets/ Scroll down to the ""Déjà commandé"" part and fold the categories or select a quantity and click ""Suite"" to trigger the resizing. \\ \\ I was wondering if you'd be willing to integrate such a script in Wordpress and enable it for iframe embeds ? I'm sure it would also be useful for other oEmbed providers. \\ \\ I know we could write a plugin to allow unfiltered embeds, but the vast majority of ours users are not technical and asking them to install a plugin will scare them off. (I'd also take being added to the official embed whitelist, but we don't fit the ""globally well-known"" requirement.) Cheers Florent" fthevenetweez 40776 "Feature request : Need class parameter for ""Twitter"" embed share" Embeds normal normal Awaiting Review enhancement new 2017-05-16T06:47:48Z 2019-04-25T13:08:46Z "'''Note:''' Twitter embedded share already working nicely. This is an only feature request. I want to update twitter embed share, but I can't edit or modify that default twitter embed share because it's an iframe. ''For example'', I want to make twitter share as a 'center aligned' within my content area when writing blog posts. (There are number of possibilities as well.) Yes, I found the solution for twitter share center alignment. We need to add one class with iframe - '''''tw-align-center''''' but there is no input box/area available in popup where I can write down my custom classes. Please check this screenshot for more detail - https://d.pr/f32E0" sanjaydabhoya 7 30720 In editor, add a button to refresh/invalidate (oEmbed) embeds cache Embeds 4.0 normal normal Future Release enhancement new 2014-12-15T15:53:31Z 2017-10-20T13:29:18Z "The inline embeds previews in WP4.0 are great, however have one major flaw: One user enters the URL, and preview is generated via oEmbed, the embed code is cached for a day for that URL. There is no way for the author to invalidate it. It generally works well, but not when user wants to experiment with different oEmbed-related plugins or settings. To keep great function, yet make it more straightforward for the user to control the flow, I'd suggest the following. '''Shall we add a button ""reload"" to the inline previews of the embeds? And/or ""reload"" button in the Edit Embed dialog?''' I trust it is a great answer to the problem and fits the user experience well. We are the authors of [https://wordpress.org/plugins/iframely Iframely] plugin. The supports issues we get since WP4.0 mostly relate to oEmbed cache. But such approach will also answer the needs of other devs and users, for example #30282." ivanp 1 49989 Invision embed code supported by WordPress Embeds normal normal Awaiting Review enhancement new reporter-feedback 2020-04-23T20:34:05Z 2020-11-12T13:19:57Z "Hi all, Is there any possibility that WordPress consider **Invision embed codes** to be accepted in their security list? [https://wordpress.org/support/article/embeds/#okay-so-what-sites-can-i-embed-from] Using the IFrame tag that Invision provides, results in a very weird experience. The prototype is half-hidden and it is not responsive. [https://support.invisionapp.com/hc/en-us/articles/360027579812-Embedding-Screens-Prototypes#embedding-a-full-mobile-prototype] Thank you very much!" ArtGoddess 10 35567 New argument `is_embeddable` for `register_post_type()` Embeds 4.4 normal normal Awaiting Review enhancement assigned has-patch 2016-01-21T20:47:31Z 2024-01-26T07:38:05Z "I really love the new oembed functions! But as much as I love the feature, it would be awesome to have an argument in the register_post_type function to choose, if the posttype should be embedable or not. I have no problem with it to be true by default, but I just would love to deactivate it for certain post types which are not that publicly used. There are already arguments like ""publicly_queryable"" or ""has_archive', so this doesn't seem off." pampfelimetten 59006 No title attribute on oEmbed and REST API <link>s audrasjb Embeds 6.2.2 normal normal 6.6 enhancement reviewing changes-requested 2023-08-08T19:24:56Z 2024-02-20T09:28:35Z "By default, WordPress adds three `<link rel=""alternate"" ...` to the `<head>` of every post. These are missing the `title=""...""` attribute. This means that some browsers will announce the links as ""alternate"" with no explanation of their destination - see screenshot attached. The three links are: {{{ <link rel=""alternate"" type=""application/json"" href=""https://example.com/wp-json/wp/v2/posts/123"" /> <link rel=""alternate"" type=""application/json+oembed"" href=""https://sexample.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fexample.com%2Fpost%2F"" /> <link rel=""alternate"" type=""text/xml+oembed"" href=""https://example.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fexample.com%2Fpost%2F&format=xml"" /> }}} Ideally, these would have `title=""JSON""`, `title=""oEmbed (JSON)""`, `title=""oEmbed (XML)""` or similar." edent 5 43713 Privacy: Add a UI to allow administrators to disable individual embeds / oembeds Embeds 5.1 normal normal Future Release enhancement new 2018-04-06T16:28:33Z 2019-09-27T16:20:25Z "Builds on protecting our users from tracking that was introduced in https://core.trac.wordpress.org/ticket/41784 Embedded iframes allow 3rd parties to collect user's IP addresses and User Agents, to store and retrieve cookies on their browsers, to embed additional third party tracking, and monitor their interaction with that embedded content, including correlating your interaction with the content with their account with that service, if they are logged in to that service. That means, especially when EU residents are visitors, that all that needs to be disclosed in the site's privacy policy. To further improve site's users privacy, and give site owners more control over how their user's privacy is impacted (and how many 3rd party services they would need to disclose in their site's privacy policy) we should allow administrators to disable any/all embeds on their site. This UI could live alongside the privacy page setting controls recently added to core." allendav 1 54414 Support embedding Mobile Twitter URLs Embeds 5.0 normal normal Awaiting Review enhancement new 2021-11-10T16:04:55Z 2021-11-10T16:47:18Z "When embedding a mobile variant of a Tweet URL, the Gutenberg Embed block considers the URL to be an invalid embed. == Steps to Reproduce 1. Add an Embed block via the web or native mobile Gutenberg block editor. 2. Set the Embed block URL to a mobile Twitter URL: https://mobile.twitter.com/rauchg/status/807626710350839808 3. Save the Embed block settings, persisting the URL. == Expected Result The Embed block displays a preview of the Tweet as an embed. == Actual Result The Embed block marks the URL as invalid, resulting in a error message or a plain text URL. == Related * [https://github.com/WordPress/gutenberg/issues/35357 Gutenberg Issue] * [https://github.com/WordPress/wordpress-develop/blob/f2d146d3f1ebd5661af2efd3099b0c988df538c8/src/wp-includes/class-wp-oembed.php#L67-L72 Relevant oembed code] * oEmbed API response message: {{{ { ""code"": ""oembed_invalid_url"", ""message"": ""Not Found"", ""data"": { ""status"": 404 } } }}} == Environment * **WordPress:** 5.8.1 * **Theme:** Twenty Twenty-One * **Plugins:** none * **Browser:** macOS Safari 15.1" dpcalhoun 38128 Twitter Embed - Enhancement change theme Embeds lowest normal Future Release enhancement new 2016-09-22T13:34:18Z 2023-05-30T08:59:36Z "I would like to suggest to add a option to set the twitter embed theme. Currently you only can use the standard White Theme, some possibility to customize it to dark as example for dark sites would be great." Deexgnome 2 39918 Whitelist audioBoom oEmbeds Embeds 4.8 normal normal Awaiting Review enhancement new 2017-02-20T11:00:33Z 2023-05-30T09:50:56Z "{{{ sandbox=""allow-scripts"" }}} is disabling links within our iframe player on some wp sites, try the social icons on the audioBoom player in this article http://www.niemanlab.org/2017/02/in-a-chaotic-presidency-civics-101-is-giving-listeners-a-reintroduction-to-how-the-u-s-government-works/. What are the steps to getting audioBoom whitelisted so that no changes are made to the oEmbed codes? " arunaudioboom 4 40288 Whitelist oEmbed for Apple Keynote Embeds normal normal Future Release enhancement new has-patch 2017-03-28T19:40:23Z 2023-05-30T09:12:08Z "Apple's iCloud Keynote web app added oEmbed support. This ticket is for consideration on whitelisting them as an oembed provider. To test, visit iCloud.com, choose Keynote, and open a presentation. In the presentation, click the person icon along the top, next to the wrench icon. Choose Share Options and set ""Who can access"" to ""Anyone with the link"" (Permissions can be set either way, but ""View Only"" is quite enough). Pasting the URL (icloud.com/keynote/[hash]#[title]) will oembed with the incoming patch." kraftbj 1 39850 WordPress embedded links drop query vars from URL Embeds normal normal Awaiting Review enhancement new 2017-02-11T23:02:51Z 2017-02-11T23:29:04Z "When embedding a WordPress page within another post, any query strings that are passed in the URL get dropped. For example, if embedding http://example.com/page-name/?foo=bar, the actual URL that gets passed to the oEmbed function (and later on to the template files) is http://example.com/page-name/embed/ (foo=bar gets dropped). The link inside the blockquote also drops the url query variable and links to http://example.com/page-name/ instead of http://example.com/page-name/?foo=bar As I see, this occurs because the `wp_filter_pre_oembed_result` function in `embed.php` uses `url_to_postid` to get the embeded post's ID, and later `get_post_embed_url` uses that ID to create the embed permalink. So naturally any url query vars are not preserved in the final URL construction. Similarly in `get_post_embed_html`, the function uses `esc_url( get_permalink( $post ) )`, thus reconstructing the permalink without knowledge of the initial url. I encountered this when embedded a specific photo gallery (from nextcellent plugin), but I assume some other plugins such as language/translation ones may also be affected. I don't think the URL's should be dropping any of the query variables. However, if that is a requirement, it would be good to also pass on the original url in the `post_embed_url` hook to allow plugin developers to make sure to add any parameters from the original url that got dropped off in the embedded url." charleslf 2 59142 X/Twitter posts cannot be embedded Embeds normal normal 6.6 enhancement reopened has-patch 2023-08-18T15:42:05Z 2024-02-12T09:14:58Z When a link to a Tweet/X post is copied in the Twitter/X app (iPhone), it is the x.com address that is copied, not the twitter.com address. When this is inserted in a WordPress post, the post is not embedded, like a Twitter.com post. aphandersen 43962 Ziggeo oEmbed Whitelisting Embeds normal normal Awaiting Review enhancement new reporter-feedback 2018-05-04T15:30:02Z 2023-05-30T09:29:32Z "Disclaimer: Not sure this is the right place, but we were forwarded from Developer Support <developers@wordpress.com> to post this here. As per: https://make.wordpress.org/core/handbook/contribute/design-decisions/#whitelisting-oembed-providers We would like to apply to be considered from oEmbed whitelisting on Wikipedia. As per the different criteria you list there: - be well-established, popular, and mainstream services We have been around since 2012 and won a variety of awards for being the best API for video recording and playback. - properly and fully implement the oEmbed specification, We do and are being recognized as oEmbed provider by Tumblr, Embedly, Facebook, LinkedIn and Twitter. - Is the service is popular enough for core developers to have heard of it before? Is it “mainstream?” We have participated as sponsors in all major hackathons (including TC Disrupt) and have established our own yearly hackathon videohackday.com for the past four years now; we are the go to place for engineers and companies alike for all video recording and playback needs. - Does this service have a large following on Twitter, Facebook, or other social media? Is its Twitter account verified? We have around 4.5k followers on Twitter, much more than most other SaaS companies. The account is not verified because Twitter vertification has been stopped. - Is its oEmbed endpoint clearly established and properly documented? (Sometimes, they are just a developer’s pet project that may not be supported.) Yes. See https://ziggeo.com/docs - Does the oEmbed endpoint work with WordPress’ oEmbed auto-discovery? If not, could it be made to work with additional HTML tags or attributes being whitelisted? It should work with auto-discovery. - Does the service make an effort to build relationships with developers, such as through robust APIs? Our main business is an API. - How old is the service? 6 years - Does it have a well-established Wikipedia article? (Seriously.) Yes. - Has anyone written a WordPress plugin that leverages the service in some way, whether adding it as an oEmbed provider, creating a shortcode, or leveraging other APIs of the service? Do these plugins have any noticeable adoption or traction that would indicate usage and demand? Yes. Ziggeo has an official plugin on WP. Thank you for your consideration." oliverfriedmann 1 23431 [embed] shortcode doesn't work with do_shortcode() Embeds 3.5 normal normal Future Release feature request new needs-unit-tests 2013-02-09T15:05:02Z 2022-07-15T15:43:20Z It would be preferable to use the [embed] shortcode through do_shortcode rather than apply_filters( 'the_content',... in order to avoid sharing plugins, related posts plugins etc appending content to something that could simple be post meta, i.e. looking to convert a youtube url to a video. jtsternberg 3 58120 oEmbed Mastodon Embeds normal normal Awaiting Review feature request new 2023-04-12T14:31:06Z 2023-04-22T23:53:00Z "Porting [https://github.com/WordPress/gutenberg/issues/49687 this issue] here for discussion. > If I put a link to a Mastodon toot in the embed block, it embeds, but it has no style applied and looks bad: >[[Image(https://user-images.githubusercontent.com/1994311/230915699-45480012-7db9-4eff-93cd-f64dd4e46a09.png)]] As I mentioned there Since [https://joinmastodon.org/servers Mastodon is not 1 single website], but software that can be deployed to any url, we might need a different approach than the provider whitelist." mediaformat 1 46537 Can't use Emoji in the Custom HTML widget SergeyBiryukov Emoji 4.8.1 normal normal Future Release defect (bug) reopened 2019-03-16T07:21:54Z 2019-10-09T17:15:11Z Type emoji. Then the cursor does not move. hirofumi2012 3 46404 Emoji detection not working on Android 8.1/Chrome 72 Emoji 5.1 normal normal Future Release defect (bug) assigned 2019-03-03T08:49:30Z 2021-01-14T20:24:22Z "On my phone with Android 8.1, emoji detection script doesn't seem to work. I have created this site based on wp-themes.com for demo: https://output.jsbin.com/teyocehaci Here's how it displays. [[Image(https://i.imgur.com/K8n0WU3.png)]] The two emoji are: Man Facepalming: Light Skin Tone and Woman: Medium-Light Skin Tone, Red Hair The first emoji displayed is native, implying that the test thinks that the browser supports Unicode 11. " superpoincare 57277 Emojis after translate update Emoji 6.1.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-12-05T20:40:37Z 2022-12-06T19:38:28Z "Dears, Every time my WordPress update translations I lost all my emojis in my posts. 🏃‍♂️​🏃‍♀️ The emojis changes to ? or ?? I hope can found one solution because I change all the emojis one by one, and sometimes I no remember the emoji I write. language spanish theme Generatepress Best regards" Guillermo77 56784 Optimization in wp_staticize_emoji function Emoji 6.0.2 normal normal Awaiting Review defect (bug) new 2022-10-10T17:26:32Z 2022-12-05T19:16:19Z "In the `wp_staticize_emoji` function there is a piece of code which seems to be there to optimize the process, but in fact does the opposite. The piece i'm writing about: {{{ // Quickly narrow down the list of emoji that might be in the text and need replacing. $possible_emoji = array(); foreach ( $emoji as $emojum ) { if ( false !== strpos( $text, $emojum ) ) { $possible_emoji[ $emojum ] = html_entity_decode( $emojum ); } } }}} Feeding all of 3575 emoji enitities into `strpos` function generates much more overhead than passing all existing emojis for further processing. This can be easily observed by entirely skipping the `false !== strpos( $text, $emojum )` check and adding all entities to `$possible_emoji` array – the whole execution of the `wp_staticize_emoji` function becomes nearly 10x faster. This effect happened to me every time I tested it no matter the content or length of the passed text." kac1per 5 49730 WordPress-generated RSS feeds replace unicode symbols with images. Emoji normal normal Awaiting Review defect (bug) new 2020-03-30T20:46:03Z 2021-02-04T14:22:14Z Which rather misses the point of having them as part of Unicode. This causes trouble for feed readers because the images have to be handled specially in order for them to format with the text, e.g. https://github.com/Ranchero-Software/NetNewsWire/issues/1958 jralls 42428 wp-emoji pops up privacy hanger in Firefox with privacy.resistFingerprinting turned on Emoji 4.1.2 normal normal Future Release defect (bug) new 2017-11-03T09:56:10Z 2018-06-14T18:31:33Z "This isn’t really a bug, but worth reporting anyway. wp-emoji uses a technique that’s often used by trackers for fingerprinting clients: reading canvas pixel data. For them, differences in OS and graphics drivers can lead to subtle differences when text is rendered to a canvas. This means that when they hash data read out of the canvas with text on they have another datapoint to identify a client. To work around this, Firefox has recently uplifted a technique from TOR Browser. If you visit a site that tries to do this it’ll pop open a hanger asking for the user’s permission. You can test this by downloading a copy of Firefox Nightly, going to about:config and setting privacy.resistFingerprinting to true. Which brings us on to WordPress… Unfortunately the default wp-emoji package also uses this technnique, which triggers a browser warning on a large number of sites I visit on a daily basis. While I doubt that WordPress is using this for user tracking, it means that sites that are being nefarious get lost in the WordPress noise. This is a shame, but also I would imagine that it would be hard for Firefox to turn this on by default given the number of sites out there using Wordpress. What I’d like to suggest is that: 1) wp-emoji is reviewed to see whether this technique is necessary for its functionlity. Can it be updated to use some other technique? 2) wp-emoji is considered for removal by default. According to the docs wp-emoji ‘will convert the often greyscale Emoji characters to colored image files.‘ Is this really a problem with the current set of browsers? " robinwhittleton 3 46190 Firefox Emoji Detection Slow Emoji 5.0.3 normal normal Awaiting Review enhancement new has-patch 2019-02-05T18:52:24Z 2022-07-06T19:25:57Z "The emoji detection script loaded by default on WordPress is parser blocking but it still progressive enhancement as it a) it runs fast, b) finishes before the style requests are being downloaded. However Firefox seems to have an issue in recent versions. I tested the times it takes on Browserstack and sometimes it goes as high as more than 1s on both Windows and Mac. The way I tested is by adding this code to functions.php {{{#!php <?php add_action( 'wp_head', function() { ?> <script>var e=new Date()</script> <?php }, 6 ); add_action( 'wp_head', function() { ?> <script>var n=new Date()-e;console.log(n)</script> <?php }, 7 ); }}} so the the wp-emoji-loader.min.js inlined in the html head is sandwiched between getting the timestamps. On other browsers it is like 8ms, 20ms but Firefox is really slow. Likely a Firefox bug, but should be a workaround for it in WP." superpoincare 8 37788 dns-prefetch s.w.org conditionally via javascript Emoji 4.6 normal normal Awaiting Review enhancement new 2016-08-23T10:31:12Z 2023-06-07T05:54:00Z "For many users, dns-prefetch to s.w.org is not needed if they aren't using Jetpack or any plugin which connects to it. It's because: 1. A page may not have an emoji 2. Even if the page has it, the browser may support emojis. Going forward the support will increase. Hence I propose the dns-prefetch to s.w.org be made only if the feature detection detects wp-emoji-release needs to be loaded or if possible page needs an emoji svg. " superpoincare 4 37486 Make emojis accessible Emoji 4.2 normal normal Future Release task (blessed) new has-patch 2016-07-27T15:01:59Z 2021-01-05T08:08:42Z "Splitting this out from #37432. Currently, the WordPress Emojis are not accessible. The alt text contains the emoji character (vs a HTML encoded entity, or the emoji description) and that's a deliberate implementation choice, see [ticket:37433#comment:3] intended to allow copy and pasting the emojis. We've discussed a bit this issue in the accessibility weekly meeting and agreed there's room for improvements. At least, starting a discussion about emojis accessibility would be very welcome. Quickly checking how screen readers announce the WordPress emojis, there's no accessible name or description they can use: [[Image(https://cldup.com/oioYLgdQ86.png)]] Note: VoiceOver reads out ""group"" because the image is a `svg` file. Just adding an `aria-label` attribute (I've quickly edited in the browser console) gives screen readers an accessible name to announce: [[Image(https://cldup.com/xP0gzKlsnK.png)]] Comparing with what others do, for example Twitter because they usually have great solutions for accessibility, they use `png` images and both an `aria-label` and a `title` attribute, so VoiceOVer in this example reads out both. I guess the title attribute is used just to show the browser's ""tooltip"" with the emoji name: [[Image(https://cldup.com/MwMY0nHtoQ.png)]] {{{ <img class=""Emoji Emoji--forText"" src=""https://abs.twimg.com/emoji/v2/72x72/1f60e.png"" draggable=""false"" alt="""" title=""Smiling face with sunglasses"" aria-label=""Emoji: Smiling face with sunglasses""> }}} The aria-label solution is mentioned also on a related issue on the twemoji GitHub: https://github.com/twitter/twemoji/issues/41" afercia 3 32433 Add registered image sizes in WXR export file Export normal normal Awaiting Review defect (bug) new has-patch 2015-05-18T21:26:41Z 2018-07-17T08:15:01Z "When a WordPress site is exported, attachments are also exported (though only the original image url). If a user then imports that into a new WordPress install, images will be generated for all registered image sizes on the new blog. If however, the exported site was running different image sizes, it will potentially have references to those images in post content (e.g. `image-322x422.png`); however, `322x422` is not a registered image size on the new site. This will produce 404 images in the new post content. This was acknowledged (though I don't think addressed) in #16984: > A problem that might arise is if there are different image size settings on the export and import sites. So an exported post might contain an image img-200x200.jpg but the import site hasn't generated the appropriate size. For the first patch I'm ignoring this and saying that it's up to the user to ensure the settings are consistent. Potential future fixes include importing options or generating the extra sizes on the fly The user will typically not have control over image sizes either way (as they have to be registered in code) - also the recipient of a WXR file does not know the image sizes on the exported site. It therefore seems logical to include image sizes somewhere in the WXR file, so importers (the WordPress importer or otherwise) know what image sizes to generate for all existing attachments." joehoyle 4 43978 Avoid flickering on the Tools / Export page birgire Export normal normal Future Release defect (bug) assigned has-patch 2018-05-05T20:15:13Z 2020-02-20T16:03:49Z "The export filters are hidden by default on the Tools / Export page. But it's only hidden with Javascript in {{{wp-admin/export.php}}}: {{{ jQuery(document).ready(function($){ var form = $('#export-filters'), filters = form.find('.export-filters'); filters.hide(); }}} The filters can therefore be visible for a short time, before they are hidden. Here the {{{filters.hide()}}} will add a {{{display:none;}}} inline styling to the corresponding filters. We can avoid this flickering with CSS, something like: {{{ #export-filters .export-filters { display: none; } }}} " birgire 1 59716 Deprecated messages exporting post meta with meta_value null from PHP 8.1 Export normal normal Awaiting Review defect (bug) new 2023-10-24T13:55:00Z 2023-10-30T18:20:11Z "Today I attempted to export some products from one database to import into another. I encountered several Deprecated messages emanating from code within `wxr_cdata()` It appears that the export code doesn't specifically cater for meta data with null values. Prior to PHP 8.1 the null values were treated as empty strings. There are several plugins that are ''guilty'' of producing post meta data containing nulls. Two of them are in the top 12 plugins by total downloads: All-In-One-SEO-Pack and WooCommerce. === Actual output Here's the exported post meta for WooCommerce's `_stock` field. {{{ <wp:postmeta> <wp:meta_key><![CDATA[_stock]]></wp:meta_key> <wp:meta_value><br /> <b>Deprecated</b>: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in <b>C:\apache\htdocs\gardenvista\wp-includes\formatting.php</b> on line <b>885</b><br /> <br /> <b>Deprecated</b>: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in <b>C:\apache\htdocs\gardenvista\wp-admin\includes\export.php</b> on line <b>207</b><br /> <![CDATA[]]></wp:meta_value> </wp:postmeta> }}} Both of these Deprecated messages can be avoided by a simple change as the first line of `wxr_cdata()` {{{ if ( null === $str ) { $str = ''; } }}} === Expected output: - The export should complete without producing the Deprecated message output in the post meta value. - Null values should continue to be treated as empty strings === Environment: - PHP 8.1.23 or PHP 8.2.10 - WordPress 6.4-RC1 - Plugins: WooCommerce and/or All-In-One-SEO " bobbingwide 1 34798 Export Bug Export normal normal Awaiting Review defect (bug) new dev-feedback 2015-11-27T05:00:43Z 2017-10-03T07:52:59Z " We found a bug in export process that prevents post data changes going to actual export. In wp\wp-admin\includes\export.php L416 you select all matching posts from DB, having $posts array of stdClass objects as result. Then you call setup_postdata for every post, that goes to wp\wo-includes\query.php setup_postdata which calls $wp_query->setup_postdata after passing the $post. In function setup_postdata L4754 you check instance of the $post which will always be stdClass and create a new $post object. It breaks the reference link original $post from export.php so all changes in function setup_postdata will not be reflected to original object. A possible fix would be converting $post object to WP_Post before calling setup_postdata in expost.php Please see patch attached " eugenekireev 2 56907 Export Child theme produces corrupt zip file Export 6.0.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2022-10-25T22:42:50Z 2022-10-27T02:59:48Z "Export of a theme from the Site Editor with any year theme from WordPress including twentytwentytwo, produces a working zip file. However if you have a child theme of any year theme from WordPress including twentytwentytwo, produces a corrupt zip file. The error reported by ZipRepair.net is: Your .zip file had the following issue: End of Central Directory record could not be found. All files were recovered from the corrupt zip by ZipRepair.net This corrupt zip file occurs without any changes to the child theme from the parent theme and without any plugins active. Only the child functions.php and style.css exist." meushar 2 57166 Export theme Export 6.0.1 normal normal Awaiting Review defect (bug) new 2022-11-21T13:17:02Z 2022-11-21T13:17:02Z "When I export Twenty Twenty Two from the FSE there is an error in the link to font files. The path to the files ought to point to a relative file path, but this is what I get: {{{ { ""fontDisplay"": ""fallback"", ""fontFamily"": ""Source Serif Pro"", ""fontStretch"": ""normal"", ""fontStyle"": ""italic"", ""fontWeight"": ""200 900"", ""origin"": ""gutenberg_wp_webfonts_api"", ""provider"": ""local"", ""src"": [ ""**http://localhost:8888/wpux/wp-content/themes/twentytwentytwo/**assets/fonts/source-serif-pro/SourceSerif4Variable-Italic.ttf.woff2"" ] } ], }}} " perthykjaerjensen 1 52470 Exported WXR contains terms twice Export normal normal Awaiting Review defect (bug) new has-patch 2021-02-08T16:31:25Z 2023-08-04T12:32:58Z "How to reproduce: after a fresh WordPress install (no active plugins) go make a WXR export file. If you open the WRX file you'll notice the Uncategorized appears twice: the first time as `wp:category` element, the second as a `wp:term`. The `wp:category` comes from https://github.com/WordPress/WordPress/blob/5.6.1/wp-admin/includes/export.php#L158, the `wp:term` from https://github.com/WordPress/WordPress/blob/5.6.1/wp-admin/includes/export.php#L162-L167. With the setup described (no plugins) the only registered taxonomies are the builtin ones, therefore `$custom_taxonomies` contains an empty array. When `get_terms()` receives an empty array as the `taxonomies` param it will return all terms, of every taxonomy. This also means that if there are other taxonomies registered the issue doesn't show up. This is a regression: on WordPress 4.4 it doesn't happen. A `git bisect` pointed to https://github.com/WordPress/WordPress/commit/3f7441d674d304a8ad0912831aa9685cdc8bff93 as the culprit. The commit states that it maintains backwards compatibility, but it does not in case an empty array is passed as `taxonomy` param." karl94 3 55135 Media URLs break when migrating WordPress content to different domains Export 5.9 normal normal Awaiting Review defect (bug) new 2022-02-10T08:28:16Z 2022-02-10T10:58:10Z "All media assets use absolute URLs when exporting WordPress content, including the domain name and port if present. When importing the content on a new WordPress installation located at a different domain or port, page/post media fail to render since they point to the previous domain/port. https://github.com/creativecommons/project_creativecommons.org/issues/225 The hard-coded links require post-processing the XML file for the content to be portable across domains and environments (e.g., development, staging, and production). Ideally, media URLs in the export file would be relative to the WordPress root, such as described in the following issue from 11 years ago: #17048." brylie 2 33563 Multiple Calls to export_wp() Causes Error Export 4.3 normal normal Future Release defect (bug) new has-patch 2015-08-26T20:06:18Z 2020-11-19T12:02:26Z "The ""export_wp"" function in ""wp-admin/includes/export.php"" makes use of inner functions that cause a ""previously declared"" error when this function is called more than once. These inner functions should be declared outside of the ""export_wp"" function or guarded by, for example, if(!function_exists('wxr_cdata')){} I am trying to make use of this function to perform multiple exports per script execution as part of a MU user management system. <feature request> It would also be help to have the option of saving the export to a function parameter by reference rather than the screen. </feature request>" drzaphod 2 36339 Possible issue with export_wp() and undefined custom post types Export normal normal Future Release defect (bug) new needs-unit-tests 2016-03-25T22:03:59Z 2020-07-06T14:20:09Z "While writing the improved docblock for `export_wp()`, I noticed something that may be an issue if an invalid custom post type is supplied. Here is the code: {{{#!php <?php if ( 'all' != $args['content'] && post_type_exists( $args['content'] ) ) { $ptype = get_post_type_object( $args['content'] ); if ( ! $ptype->can_export ) $args['content'] = 'post'; $where = $wpdb->prepare( ""{$wpdb->posts}.post_type = %s"", $args['content'] ); } else { $post_types = get_post_types( array( 'can_export' => true ) ); $esses = array_fill( 0, count($post_types), '%s' ); $where = $wpdb->prepare( ""{$wpdb->posts}.post_type IN ("" . implode( ',', $esses ) . ')', $post_types ); } }}} The two things that occurred me are 1. If a valid custom post type is supplied but its `can_export` property is `false`, `posts` will be used instead. This is unexpected behaviour. I think it should stop and not export anything. 1. if an invalid custom post type is supplied, every post type that has `can_export` set to `true` is used. This is also unexpected behaviour. I think it should stop and not export anything. Am I reading this wrong? Is there a reason why it works this way?" theMikeD 58195 WordPress Exporter includes trashed posts when the author filter is enabled Export normal normal Awaiting Review defect (bug) new 2023-04-26T07:31:27Z 2023-04-26T15:14:53Z "The wordpress exporter has a bug where it will export all posts except trashed posts when using the default options but will export all posts including trashed posts when the author filter is enabled (to export posts by a specific author). Exporting by a specific user is the only way to export a specific portion of the posts and avoid exporting all of files. This is a problem because 99% of people do not want trashed items to be in included in an export file as these are already designated as unwanted/ unnecessary. The exporter function does not make it obvious to users that it will include trashed items in the created export file. This problem is only obvious if someone tries to incorporate the exported posts into another site which already has posts of a similar name. You might ask how is it possible to have duplicate posts (1 post published, 1 post trashed with exactly the same name) You couuld get this by accidentally creating two posts with exactly the same slug or by deleting a post and creating a new one with exactly the same name. After importing the xml file into another site WordPress gives a warning that the imported post already exists but does not make it clear that the new duplicate is actually located in the trash section of the new site and is not published like a normal post. With this unexpected behaviour and confusing warning message users will not necessarily understand how to solve the issue and this warning message witll continue to pop up EVERYTIME they export/import posts because the site of origin will continue to include all trash files in the exported xml until the user empties their trash or the trash files expire. Some users like myself use the export function multiple times a day and export 100s of posts a week. Correcting this ""bug"" would avoid confusion, save time and would ensure the behaviour of the exporter matches the expectations of the user." shtv 1 52815 Wrap long Category name drop down when export post on export.php screen Export 5.7 normal normal Awaiting Review defect (bug) new 2021-03-15T06:24:12Z 2021-03-15T15:55:18Z "Hi When our category name long then getting UI issue. You can see mentioned screenshot. Thank you." sumitsingh 2 30170 """Start Date""/""End Date"" are confusing in the exporter" Export normal normal Awaiting Review enhancement new has-patch 2014-10-29T11:40:47Z 2017-07-22T04:03:42Z "I've been running a lot of post exports lately, and for some reason I'm constantly screwing up ""Start Date"" vs ""End Date"" when selecting an export range. The ''right'' way is Start Date == Older Date, and End Date == Newer Date. But, because my memory is pathetic (at best), I constantly forget this and end up downloading empty exports. I think there are a few potential fixes: 1) Change the wording, to something like ""Start Date (Older)"" and ""End Date (Newer)"", or different text entirely 2) Use some JS to alert the user/prevent the download if they chose a more recent month as the Start Date 3) Try to guess the user's intentions and download the export even if they screw up the order (Or perhaps some combination of the three.)" chrisvanpatten 1 39298 Add filters for the exporter Export normal normal Awaiting Review enhancement new 2016-12-15T15:25:36Z 2019-03-15T01:06:47Z "I think being able to enhance the exporter with plugins would be very helpful. If there was a filter for the export options where custom export queries could be made to possibly return the $post_ids to be exported I think that would be a great addition because I recently had to edit the core export file to build a custom export query. I noticed one plugin attempted this but resorted to completely replacing the export.php file. " stormrockwell 1 55762 All export xml files have same name Export normal normal Future Release enhancement new dev-feedback 2022-05-18T09:09:58Z 2022-06-07T14:38:53Z ​All download export files​, whether posts or pages ​give the same file name.​ Its difficult to manage if you have several of them because unlike a picture or a word file that you can open and see the contents, a user cannot see the content of the xml file until they upload into a WordPress panel. Loading the wrong file means one needs to clean up and then go back to look for the right file. I suggest each xml download from the Export panel bear the unique name of the file. ​ martiniwebb 30 22435 Export API Export normal normal Future Release enhancement new dev-feedback 2012-11-13T16:41:55Z 2017-12-13T21:26:06Z "From experience and from tickets (#19864, #19307, #17379) it's evident that we need to update the export API. High level goals: * To be usable from different parts of the code. From the web backend, from a CLI script, from an async job. * To allow more control of the output format – serve over HTTP, write a single XML file to disk, split it and write many smaller XML files, write a big zip with many XML files, etc. * To allow exporting the data without querying all the posts at once, so that we can fit the exports to memory. * Keep {{{export_wp()}}} for backwards compatibility without the need to keep all (even any) of its code. Here's my idea for the part of the API 99% of the developers touching export would use and be happy: {{{ #!php <?php // WP_WXR_Export is an aimmutable representing all the data needed for the export and allows us to have it in multiple formats $export = new WP_WXR_Export( array( 'start_date' => '2011-10-10', 'post_type' => 'event', … ) ); backup( $export->get_xml() ); // string $export->export_to_xml_file( 'mom.xml' ); send_to_mom_to_import( 'mom.xml'); $export->serve_xml(); // with all the headers and stuff $export->export_to_xml_files( '/files/exports-for-my-awesome-website/', 'export-%02d.wxr.xml', 5 * MB_IN_BYTES ); }}} Before I dive into implementation details (in the comments, not to pollute the ticket), I'd like to hear what use cases for extending this code you have in mind and where should we draw the line. Adding more output writers? Adding custom export data? Adding formats different from WXR? " nbachiyski 1 48366 Export valid paragraphs HTML with wpautop applied Export normal normal Awaiting Review enhancement new 2019-10-18T12:26:13Z 2021-05-25T18:23:11Z "WordPress exports post content mostly as is from database. It runs through `the_content_export` filter, which does not by default have any of the typical `the_content` filters added. The most visible impact is that `wpautop()` is not applied and paragraphs have no `<p>` tags around them. Effectively this makes exported content corrupted for systems other than WordPress itself. In spirit of ""own your data"" I suggest this is reconsidered, in favor of exporting valid platform-agnostic HTML markup. From a quick look on implementation levels it seems just adding `wpautop()` might not be sufficient due to a special blocks-related logic in WP 5+ ? Or can that be ignored for export purposes?" Rarst 4 37848 Form fields misaligned on export.php Export 5.2.1 normal normal Awaiting Review enhancement new has-patch 2016-08-27T10:57:16Z 2019-06-17T13:54:31Z "On the export page, all the form fields are misaligned. Refer attached screenshots for a better view." adhun 3 39021 Import Export Attachments Export 4.6.1 normal normal Awaiting Review enhancement new 2016-12-02T02:52:10Z 2019-03-19T02:01:50Z "Currently when we export a post type, it seems that the post thumbnails are exported as id's. It would be fantastic if these could be exported as url's to the images as otherwise there is no way for a separate install to import the post data. currently, for posts with a thumbnail the below or similar is added to the `<item>` {{{ <wp:postmeta> <wp:meta_key><![CDATA[_thumbnail_id]]></wp:meta_key> <wp:meta_value><![CDATA[9]]></wp:meta_value> </wp:postmeta> }}} I propose this is moved to `<wp:attachment>` or `<wp:post_thumbnail>` and the specific postmeta for `_thumbnail_id` removed from postmeta and re-created on each import. Problems with my suggestion that I've considered * Re-importing (w|c)ould create duplicate media. As the post has to exist for post-meta to be added. Maybe using the basename function we could check for existing media, maybe it's an edge case... I think this is unlikely to be a large problem and it potentially empowers less technical users. * Some plugins would see no benefit as they use either custom metadata keys or multiple attached images (like WooCommerce). I'd suggest this could be mitigated by adding a filter of an array of strings that on import / export treats a list of fields as keys to treat as thumbnails) " LewisCowles 36340 Other options ignored when using a custom post type with export_wp() Export normal normal Future Release enhancement new 2016-03-25T22:17:35Z 2020-07-06T14:09:01Z "While writing the improved docblock for `export_wp()`, I noticed something that may be an issue when a custom post type is supplied. For the built-in post types you can filter the exported content by start date, end date and/or author. But not with a custom post type: with them it's everything. Is this by design? The fix could be to modify line 113 to include the custom post type option because by that point we know that it's both valid and `can_export` is true thanks to the stuff starting on line 88. I don't use this code myself but it did jump out at me. Thoughts?" theMikeD 47446 Tools > Export does not include term meta data for a custom post type Export 5.2.1 normal normal Awaiting Review enhancement assigned 2019-05-31T15:38:54Z 2019-05-31T15:38:54Z "Steps: # Register a public custom post type # Register a custom taxonomy with a custom term_meta # populate with dummy posts, terms and term meta values # go to tools > export and select your custom post type # The resulting XML is perfectly valid and includes all posts along with the terms of the taxonomy. Observe that none of the terms have their corresponding term_meta Expected: When exporting content of one custom post type, the term_meta should be included. Solution: I have not found one. Looking at wp-admin/includes/export.php:148 I can see that $terms is only populated when $args['content'] is set to all (""All Content""). Here the source I am referring to: https://github.com/WordPress/WordPress/blob/5.2.1/wp-admin/includes/export.php#L148 Environment: WP 5.2.1, WAMP, PHP7.2 " mclaurent 58982 Tools > Export does not include termmeta data for post categories Export 6.3 normal normal Awaiting Review enhancement new 2023-08-04T12:44:38Z 2023-08-04T18:07:11Z "Steps to reproduce * Populate some posts and categories on a clean WordPress installation. * Add some term meta fields to those categories. * Go to Tools > Export and export Posts, then All categories. * The export file contains no `wp:category` entry for any categories, hence categories term meta fields are not included. * Go back to Tools > Export and export Posts, then a single category. * The new export file contains no `wp:category` entry for the selected category, hence its term meta fields are not included either. " jadpm 1 26311 Updated (responsive) Tools -> Export admin screen Export 3.8 normal normal Awaiting Review enhancement new needs-refresh 2013-11-29T05:02:40Z 2019-02-26T02:25:27Z "Updated Tools -> Export admin screen Switched from un-ordered lists based html to tables based HTML based on Permalinks admin screen. ''No javascript was harmed in this patch...'' " netweb 48180 extend export with filter for join and where clause Export 5.2.3 normal normal Awaiting Review enhancement new 2019-09-30T10:29:31Z 2019-09-30T11:37:29Z "In attachment I send a patch to add two lines for filters to change external the join and where clause to make it possible to export only the right posts. **I hope your can take it into the core.** Background: I have an user defined post type ""bp-blog"", which extends the default blog with buddypress group functionality. Therefor I save the buddy press group id in postmeta. Now I want export only the ""bp-blog"" posts for a specific group. Without the filter I cannot modify the request query and all ""bp-blog"" posts are exported. Here my usage of the the new filter: {{{#!php <?php add_filter('export_filter_join', 'export_filter_join', 0, 2); public function export_filter_join($join, $args = array()) { if ($args['content'] != 'bp-blog' && !isset($args['group'])) { return $join; } global $wpdb; $join .= "" INNER JOIN {$wpdb->postmeta} ON ({$wpdb->posts}.ID = {$wpdb->postmeta}.post_id)""; return $join; } }}} and {{{#!php <?php add_filter('export_filter_where', 'export_filter_where', 0, 2); public function export_filter_where($where, $args = array()) { if ($args['content'] != 'bp-blog' && !isset($args['group'])) { return $where; } global $wpdb; $where .= "" AND wp_postmeta.meta_key = '_bp_group' AND wp_postmeta.meta_value = {$args['group']}""; return $where; } }}} " mgleich 2 14757 users with no posts are not exported Export 3.1 normal normal Future Release enhancement reopened dev-feedback 2010-09-01T18:14:31Z 2020-07-06T14:48:39Z I just exported a large standalone site and imported into a multisite setup, and I discovered that a number of users who hadn't yet posted anything didn't get moved to the new site. sillybean 3 34414 Add extra item fields to exported WXR file Export 4.4 normal normal Future Release feature request new close 2015-10-23T12:01:43Z 2022-07-15T16:24:54Z "Hello I am one of WPML developers. WPML is plugin which allows user to make multilingual sites, set language information to posts etc. Straight to the point: we want to make it available to add to exported posts/pages an information about their language. Language information is stored in our own tables, so we cannot use existing WXR <item> elements like those for taxonomies or custom fields. It would be perfect if before closing </item> tag would be executed hookable action which will echo those additional elements, coming from plugins such our. I am attaching proposed patch. Example of usage: {{{ add_action('wxr_export_item_extra_fields', 'here_wxr_export_item_extra_fields'); function here_wxr_export_item_extra_fields($post) { echo ""<testitempost id='"" . $post->ID . ""' />""; } }}} " kkarpieszuk 55764 Export of menus Export normal normal Awaiting Review feature request new reporter-feedback 2022-05-18T09:12:39Z 2022-05-19T08:22:54Z "​It will be time saving a lot if WordPress allows export ​of ​menus​. ​ " martiniwebb 1 50013 [Feature Request] Tools: Export: Post, Categories: All - but exclude these Export normal normal Awaiting Review feature request new 2020-04-26T09:22:54Z 2020-04-26T09:22:54Z "When exporting Posts, you can select which post categories you want to export. My FR is about a inverse selection - export all but the selected categories. Means having category A, B, C, D, I want to export all but A. This could be made with an additional checkmark defining it is a inverse selection." mmattel01 59423 Datepicker in wordpress do not follow the Date format set in the settings External Libraries normal normal Awaiting Review defect (bug) new reporter-feedback 2023-09-21T12:21:16Z 2023-09-24T03:43:08Z "Go to wordpress > Settings > General over there select ""Date Format"" > ""Custom date"" and set it to ""jS F Y"" Once you do this it will show you date to be like this 21st September 2023 Now Add the below code in your theme function.php file this code will create a shortcode [datepicker] {{{#!php <?php function enqueue_datepicker_20230921() { wp_enqueue_script('jquery-ui-datepicker'); wp_enqueue_style('jquery-ui-datepicker-style', 'https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css'); } add_action('wp_enqueue_scripts', 'enqueue_datepicker_20230921'); function datepicker_shortcode_20230921() { ob_start(); ?> <input type=""text"" id=""datepicker""> <script> jQuery(document).ready(function($) { $(""#datepicker"").datepicker(); }); </script> <?php return ob_get_clean(); } add_shortcode('datepicker', 'datepicker_shortcode_20230921'); }}} Once you have done this Create a page and add short code [datepicker] go to the front end and select date in the Datepicker if you select 22nd it will show the date as 22S September 2023 rather then 22nd September 2023 it does not convert S in to nd, st, or th on the front end " rajeshsingh520 59991 Included imagesLoaded libary broken External Libraries 6.4 normal normal 6.6 defect (bug) new dev-feedback 2023-11-30T10:48:57Z 2024-02-17T14:24:15Z On the current WordPress release version, the included imagesLoaded javascript file is broken. The minified file appears to include two minified versions of the actual script and breaks functionality. To reproduce, see wp-includes/js/imagesloaded.min.js. physalis 52695 Incorrect way to updateLocale in moment.js add_inline_script External Libraries 5.6.2 normal normal Future Release defect (bug) new 2021-03-02T16:38:06Z 2022-10-11T06:38:45Z "In [wp-includes/script-loader.php L146](https://build.trac.wordpress.org/browser/branches/5.7/wp-includes/script-loader.php#L146) {{{ moment.updateLocale( '%s', %s ); }}} WP updates the locale **1. with incomplete data** **2. regardless of the existing data** The plugins / themes calling for the removed data expect a String, and they will get an undefined, triggering an Uncaught TypeError for any further process. This is not too visible yet because of the bug #51142. But when it will be fixed, a lot of scripts will be affected. ---- **1. Incomplete data** **1.1** WP currently updates 'longDateFormat' with null parameters. Parameters values should not be null. I suggest to use the 'en_US' values as default. **The parameters should not be null: 'LTS', 'L', 'LLLL'** {{{ 'longDateFormat' => array( 'LT' => get_option( 'time_format', __( 'g:i a', 'default' ) ), 'LTS' => null, 'L' => null, 'LL' => get_option( 'date_format', __( 'F j, Y', 'default' ) ), 'LLL' => __( 'F j, Y g:i a', 'default' ), 'LLLL' => null, ) }}} **1.2** WP currently updates 'week' with 1 parameter instead of 2 (https://momentjs.com/docs/#/customization/dow-doy/). **Missing parameter: 'doy'** {{{ 'week' => array( 'dow' => (int) get_option( 'start_of_week', 0 ), ), }}} ---- **2. Existing data** Before calling updateLocale, WP should check if the locale data exists (with moment.localeData( 'en' ) - [docs](https://momentjs.com/docs/#/i18n/locale-data/)). I suggest to replace only the missing data, and keep the existing one as is." yoancutillas 1 51142 Invalid Moment.js locale from get_user_locale() External Libraries 5.0 normal normal Future Release defect (bug) new needs-unit-tests 2020-08-25T22:28:16Z 2023-06-30T08:37:12Z "`get_user_locale()` returns a locale in the format `en_US`, which is passed directly to Moment.js, e.g. `moment.updateLocale( 'en_US', {...} )`. Since Moment.js doesn't actually support two-part locales, this causes some issues. For example, `moment().format( 'Do' )` returns `25` where it should return `25th`. This is because the local *ordinal* is lost as a result of setting an undefined locale. The locale should either be passed in a format that Moment.js understands, such as `en`, or `moment.defineLocale( 'en_US', { parentLocale: 'en' } )` should be called before `moment.updateLocale( 'en_US', {...} )`. AFAIK these are equivalent. You can see the issue reproduced here: https://codepen.io/slightlyfaulty/pen/WNwpMmG Of course, swapping out old dusty Moment.js for its super modern and popular drop-in replacement [https://day.js.org/ Day.js] is also an option " slightlyfaulty 3 40158 Plupload bug with Firefox and Mac OS where the user can't select .jpeg files azaozz External Libraries normal normal Future Release defect (bug) reviewing 2017-03-15T10:32:54Z 2017-09-01T12:13:28Z "NOTE: Core currently uses Plupload version 2.1.8, this bug is solved in version 2.2.1 + (latest stable is 2.3.1). '''The bug''' If plupload is limited to jpg/jpeg images and a user using FireFox and Mac OS tries to select images, all the .jpeg images are grayed out and not selectable, a user can select .jpg files but not .jpeg ones. '''Bug Example''' (You need to be running FireFox on Mac OS to recreate) http://jsfiddle.net/sr8jarsc/1/ '''Solution''' Update the Plupload version to 2.2.1 or greater Example: http://jsfiddle.net/mr31zw6L/1/" stiofansisland 2 48457 Requests library depends on PHP zlib External Libraries 4.6 normal normal Awaiting Review defect (bug) new close 2019-10-29T10:56:23Z 2022-10-05T13:36:34Z "Currently the Requests library checks for zlib in some locations, but not others, before using it. This means it's possible to get a fatal error because `gzinflate()` is undefined, for example when trying to fetch content from the WordPress.org API. Specifically noticed in `compatible_gzinflate()`, at line 947." Clorith 2 53300 Select and Crop for header images, crop area is entire image External Libraries normal normal Future Release defect (bug) new has-patch 2021-05-30T15:31:24Z 2021-07-29T12:49:16Z "Using latest Firefox on Windows 10, Twenty Sixteen theme and no plugins. Test site [https://z1.torknado.com] displays the result of selecting a header of the wrong aspect ratio and ""cropping"" it in Customize. I uploaded a photo 2560 by 1920 and am trying to use this as the header image. So from Customize I go to **Header Image**, **Add new image**, select my image already in the library, and click **Select and crop**. The cropping screen opens but there is not a cropping rectangle of the suggested dimensions (1200x280) or of any dimensions. The **Crop image** button is active, and if I click it, produces a ""cropped"" copy the same dimensions as the original image. Oddly, if I repeat the same steps but this time select the ""cropped"" copy instead of the original (actually ""scaled"") image, I do get the correct cropping rectangle on the cropped image. It's notable that while the original and so-called cropped version have the same dimensions, the cropped one is a much smaller file size. Original image: https://z1.torknado.com/wp-content/uploads/2021/05/IMG_0373.jpg doesn't appear in the media library screen. Image as ""scaled"" by the uploader: https://z1.torknado.com/wp-content/uploads/2021/05/IMG_0373-scaled.jpg ""Cropped"" image: https://z1.torknado.com/wp-content/uploads/2021/05/cropped-IMG_0373-scaled-2.jpg I observed a similar problem with a different theme (Graphene). In that case the image was scaled to their required dimensions, so it was distorted to show the whole picture. Oddly, this occurred with the cropping step, not just with display. The thumbnail in the media library was wrong, not just the display on the page." TylerTork 56320 Update mediaelement.js to the latest version External Libraries normal normal Future Release defect (bug) new has-patch 2022-08-01T18:20:19Z 2022-08-26T08:44:23Z "Follow up to #56319 (updating to the latest 4.x release). The latest version of `mediaelement`, as of today, is [https://github.com/mediaelement/mediaelement/releases/tag/5.0.5 5.0.5]. Version 5.0 made the player WCAG 2.1 compliant, but some of the changes required are breaking. It's possible this update can be merged into WordPress without issue, but this update needs to be fully tested, and there may be a developer note required to communicate action that needs to be taken by plugin and theme developers." desrosj 1 54739 Upgrade PHPMailer to 5.2.27 for WordPress < 5.3 (and to 6.5.3 for above 5.4) External Libraries normal normal Awaiting Review defect (bug) new dev-feedback 2022-01-04T16:59:56Z 2022-01-19T13:18:43Z "In WordPress 5.3 the PHP Mailer library was updated to the latest version from the 5.2-branch. See #40472 In WordPress 5.5 the PHP Mailer library was updated to the new version 6. See #41750 As background updates are available from 3.7 on we could update the PHP mailer library down to version 3.7 to protect those installations from being abused for spamming. I checked https://wordpress.org/about/stats/ and WordPress installations with version smaller than 5.3. These sum up to 24.15 %. We only can background update from 3.7, so we need to look at WordPress 3.7 to 5.2 which shows us 18,52 % of all installation which are unprotected. This would at least close two from those three known security problems with this version: https://www.cybersecurity-help.cz/vdb/phpmailer_sourceforge_net/phpmailer/5.2.22/ Quoted from https://github.com/PHPMailer/PHPMailer/releases/tag/v5.2.27: > Note that the 5.2 branch is deprecated and will not receive security updates after 31st December 2018. The same goes for WP 5.5 to 5.8 -> WordPress 5.5 (PHP Mailer 6.1.6) -> WordPress 5.6 (PHP Mailer 6.2) -> WordPress 5.7 (PHP Mailer 6.3) -> WordPress 5.7.2 (PHP Mailer 6.4) -> WordPress 5.7.3 (PHP Mailer 6.5.0) WordPress 5.9 will contain PHP Mailer 6.5.3 as the latest version. As version 6.4.1 and 6.5 are security releases this could be relevant too: https://github.com/PHPMailer/PHPMailer/releases?q=security&expanded=true Although this is related to security it seems that the other tickets about updating this library are handled in public so I created this one here too." zodiac1978 1 32597 mediaelement.js high CPU usage triggered by the buffering CSS animation External Libraries normal normal Awaiting Review defect (bug) new 2015-06-09T15:37:08Z 2020-09-17T14:14:30Z "Noticed by @iseulde, see discussion here: https://wordpress.slack.com/archives/core-editor/p1433862939000659 Also reproduced on my (very old) machine that makes things very evident. Looks like mediaelement.js audio uses a linear gradient animation on the `mejs-time-buffering` element which triggers a Firefox bug. I remember similiar issues in Firefox reported years ago and probably never fully fixed. Should probably be reported upstream. See screenshot: [[Image(https://cldup.com/tAifYTyqQw.png)]] Removing that element from the DOM makes the CPU usage go down to 0." afercia 52926 mobile compatibility library sortable list input field ignores touch event External Libraries 5.7 normal normal Awaiting Review defect (bug) new 2021-03-27T03:54:44Z 2021-05-26T02:22:35Z "The ability to edit a WP backend menu item custom url input field has not worked on my iPad iOS 14.4.1 using Safari and Chrome. Any text input field simply doesn't respond. Select choice list controls recognize touch. I am using Admin Menu Editor Version 1.9.9 plugin. On Mar 26, 2021, at 08:56, Janis Elsts <daerils@gmail.com> wrote: Unfortunately, it looks like it's currently not feasible to fix this issue. It appears that problem is in one of the JS libraries that is part of WordPress itself. It's a mobile compatibility library that's supposed to translate touch events into simulated mouse events. It doesn't seem to work correctly when you tap an input field that's inside a sortable list, like the menu item list in Admin Menu Editor. I don't have enough mobile development experience to replace the existing JS library with something better, so this bug may remain unfixed until/unless WordPress core developers fix the underlying issue." edtorrey 60207 regarding WP 6.4.2 - masonry 4.2.2 and imagesloaded 5.0.0 js not compatible External Libraries 6.4.2 normal normal Awaiting Review defect (bug) new 2024-01-07T14:06:52Z 2024-01-15T22:06:48Z "Hi, The following combination is running on WP 6.4.2: imagesloaded 5.0.0 masonry 4.2.2 When running imagesloaded function on a masonry object, imagesloaded throws following error: ""obj is not iterable"" see: https://github.com/desandro/imagesloaded/issues/308 It seems version 5.0.0 is the most recent verion of imagesloaded. Right now we have to fix that problem manually after every WP Upgrade, which is a real problem for us. Is it possible a patch your version of imagesloaded for WP 6.4.3? Kind Regards, Reza Anwar " ranwar 49 18909 Bundled jQuery UI should have CSS External Libraries 3.3 normal normal Future Release enhancement assigned close 2011-10-11T18:53:57Z 2022-10-04T06:37:42Z "Now that all of jQuery UI is in core, matching CSS should also be included for use in the admin in both color schemes. Related: #17952" helen 42780 Code Editor: Linter (HTMLHint) should show error if checkbox doesn't have associated <label> External Libraries 4.9 normal normal Future Release enhancement new 2017-12-03T17:32:45Z 2020-12-04T16:34:45Z "The Custom HTML Linter should show an error if an checkbox field does not have an associated label element. This would be a good improvement for accessibility. To reproduce: 1. Create a custom HTML widget 2. Enter the following code: {{{ <input type=""checkbox""> Checkbox Label }}} 3. No warning/error appears. " shooper 49837 JSDoc correction for wp-includes\js\colorpicker.js External Libraries normal normal Awaiting Review enhancement new has-patch 2020-04-07T06:30:09Z 2020-05-06T17:01:46Z In this function, Comment section is not proper with parameter and return type. jitendrabanjara1991 4 39714 Proposal: Use Full PHPMailer library External Libraries normal normal Awaiting Review enhancement new has-patch 2017-01-26T22:20:40Z 2023-02-02T15:34:11Z "Currently we're using a customized version of phpMailer that strips out some features. This is most evident when you compare class.smtp.php: Ours: https://core.trac.wordpress.org/browser/trunk/src/wp-includes/class-smtp.php#L465 Official: https://github.com/PHPMailer/PHPMailer/blob/v5.2.21/class.smtp.php#L465-L527 We're missing sections which plugin developers are using to support extended features (oauth, ntlm, etc). By leaving this out, we introduce a reason for them to include versions of PHPMailer which they then have to update in the case of security issues (such as the sort that predicated the 4.7.1 core release). If we were to include the full library, it would be easier (and faster) for core to update in case of security issues, and it would provide more flexibility and security for plugins and (by extension) users of WordPress." Ipstenu 18 10955 Replace ThickBox External Libraries 2.9 normal normal Future Release enhancement reopened dev-feedback 2009-10-14T14:37:42Z 2023-11-10T16:01:17Z "Have you thought about replacing ThickBox? It is no longer under development (as their site says) and it doesn't conform to standard jQuery plugin practices. For example, I'm trying to use it for a plugin of mine and I'm wanting to tie into the ""onClose"" event for ThickBox which isn't too easily done. I know I could just include one of the other plugins, like colorbox, with my plugin but I think it'd be a great service to other developers if you included a more flexible library. (I would have assigned this to 3.0+ but the option isn't available.)" aaron_guitar 59580 Test_Diff: sync with upstream External Libraries normal normal 6.6 enhancement new 2023-10-10T11:11:54Z 2024-02-17T14:23:27Z "Follow up on ticket #58298. The `Text_Diff` library, as included in WP, is an external dependency, which hasn't been kept up to date with the original source - i.e. with ""upstream"". The WP local version has also received some WP-only patches, typically for issues related to compatibility with new PHP versions. It should be investigated if there are changes upstream which need to be included in the WP version of the library and if the WP version of the library contains any fixes which aren't included yet upstream and should be (and don't have an open pull request upstream). Relevant parts from the conversation in #58298: @SergeyBiryukov in https://core.trac.wordpress.org/ticket/58298#comment:3: > > The `Text_Diff` library is an external dependency, however, AFAIK it is no longer externally maintained. > > The [https://github.com/pear/Text_Diff pear/Text_Diff] project on GitHub had a release in 2019 and appears to have [https://github.com/pear/Text_Diff/commit/14a70077f643739639845cebaea36a58d647b8c7 recent commits], though is indeed no longer actively maintained, as it has been deprecated and superseded by [https://github.com/horde/Text_Diff Horde_Text_Diff]. > > We could probably consider switching to the newer package. On at least one occasion though, we encountered a bug in the upstream version, see comment:5:ticket:41526, that was patched using a different approach in [42028] / #41526. As far as I can tell, there were [https://github.com/horde/Text_Diff/commits/master/lib/Horde/Text/Diff/Engine/Native.php no further changes] upstream after the [comment:12:ticket:41526 commits in question], so the issue still exists there. > > I have not yet checked whether a [https://github.com/pear/Text_Diff/pull/7 similar fix for pear/Text_Diff] has the same issue. > > > I wonder if it may be prudent to create a repo to maintain this code as a package within the WP organisation ? > > Would it be worth comparing the current code in core with the [https://github.com/pear/Text_Diff pear/Text_Diff] version and checking if a switch would be possible? Otherwise, it looks like we may indeed have to continue maintaining this package for the time being, either in core or separately, to ensure compatibility with newer PHP versions. @jrf in https://core.trac.wordpress.org/ticket/58298#comment:6: > Yes, I think it would be very good if we could take the following actions (probably in a separate ticket though): > * Compare the current version of the package in WP Core with the upstream version of `pear/Text_Diff`. > * Compare the current version of the package in WP Core with the upstream `horde/Text_Diff` package. > > Based on the findings, discuss follow-up steps. > > If we'd decide to upgrade to either the newer version of `pear/Text_Diff` or to `horde/Text_Diff`, I do still think adding at least _some_ tests to safeguard the integration would be a good thing. That way we can also safeguard that the upgrade does not cause any avoidable problems (at least for those situations which we are testing for). @oglekler in https://core.trac.wordpress.org/ticket/58298#comment:10: > This open PR is addressing the issue we had fixed from our side: https://github.com/pear/Text_Diff/pull/8/files" jrf 2 48456 Update CodeMirror to latest version External Libraries normal normal Future Release enhancement new early 2019-10-29T07:55:36Z 2022-10-05T19:48:17Z "From what I can see in the [https://core.trac.wordpress.org/browser/trunk/src/js/_enqueues/vendor/codemirror/codemirror.min.js JS file], we are using CodeMirror version 5.29.1 which is over 2 years old, according to https://codemirror.net/doc/releases.html A lot has happened since then, with the current release being 5.49.2. We should update and set a good example. Getting this in early for 5.4 will allow for testing." TobiasBg 1 60515 Update `regenerator-runtime` polyfill External Libraries normal normal Awaiting Review enhancement new has-patch 2024-02-12T19:51:19Z 2024-02-19T10:00:47Z "A new version of the `regenerator-runtime` polyfill (0.14.1) is available. The [https://github.com/facebook/regenerator/compare/v0.14.0...v0.14.1 full of changes] are on [https://github.com/facebook/regenerator/ GitHub]." desrosj 60512 Update backbone.js to the latest version (1.6.0) External Libraries normal normal Awaiting Review enhancement new has-patch 2024-02-12T17:27:37Z 2024-02-19T09:11:23Z Version 1.6.0 of Backbone.js is available (see [https://backbonejs.org/#changelog changelog]). desrosj 1 54034 Update jQuery UI Touch Punch to the latest version Hareesh Pillai External Libraries normal normal Future Release enhancement assigned dev-feedback 2021-08-28T19:39:10Z 2023-03-23T17:20:07Z A new version of jQuery UI Touch Punch is available ([https://github.com/furf/jquery-ui-touch-punch/blob/master/jquery.ui.touch-punch.min.js v 0.2.3]). However, this version was released 7 years ago and might have issues while updating. Hareesh Pillai 1 60514 Update whatwg-fetch library External Libraries normal normal Awaiting Review enhancement new has-patch 2024-02-12T19:49:10Z 2024-02-19T09:23:11Z "A new version of the `whatwg-fetch` polyfill (3.6.20) is available. The [https://github.com/JakeChampion/fetch/blob/main/CHANGELOG.md changelog] and [https://github.com/JakeChampion/fetch/compare/v3.6.17...v3.6.20 full of changes] are on [https://github.com/JakeChampion/fetch/ GitHub]." desrosj 4 43749 Update zxcvbn to 4.4.2 External Libraries normal normal Future Release enhancement assigned needs-refresh 2018-04-12T16:32:33Z 2021-11-18T20:42:43Z "4.4.2 contains several bug fixes. For a full list of changes, see https://github.com/dropbox/zxcvbn/compare/v4.4.1...v4.4.2." desrosj 1 60516 Upgrade Moment.js to the latest version External Libraries normal normal Awaiting Review enhancement new has-patch 2024-02-12T20:02:55Z 2024-02-19T08:46:30Z "A new version of the `moment` (2.30.1) is now available. The [https://github.com/moment/moment/blob/develop/CHANGELOG.md changelog] and [https://github.com/moment/moment/compare/2.29.4...2.30.1 full of changes] are on [https://github.com/moment/moment GitHub]." desrosj 3 60478 Upgrade to JQuery 4 External Libraries normal normal Future Release enhancement new has-patch 2024-02-08T20:52:50Z 2024-03-22T21:22:32Z "JQuery just released a beta version of jQuery v4. Is this something that wp core will be looking to implement? https://blog.jquery.com/2024/02/06/jquery-4-0-0-beta/" nickchomey 48499 request: bundle unminified jQuery External Libraries 5.2.4 normal normal Awaiting Review enhancement new 2019-11-05T10:24:47Z 2019-11-05T15:53:15Z "This is a follow-up to #47020. WordPress is including a patched jQuery 1.12.4 now as we require this version but need to patch in security related fixes; whereas jQuery is supporting only newer versions. However we do not include an unminified jQuery. As a result this makes this makes it very hard to verify certain which patches are included, as the source code is not available, and the minification process differs from jQuery's therefore an online diff contains a lot of false positives. To have verifiable patches I'd like to request that we please keep a list of fixes somewhere (whether it's ticket numbers or full documentation), start including an unmodified jQuery, and verify the bundled jQuery contains all patches post 1.12.4. " pacifika 9 52012 Bundle jQuery plugin temporarily to encourage adoption of auto-updates External Libraries 5.5 normal normal Awaiting Review feature request new 2020-12-10T10:48:30Z 2020-12-19T17:53:52Z "**Some background: ** I wanted to include some comments here that I see as representative of the user experiences I have read about across the interwebs when they upgraded to to WordPress 5.6: {{{ Hello Wordfence team, Thank you for this very interesting post. Every update of WP makes me worried, especially lately because of all the plugin and themes update needed after... and the risk of big bug... For the security, Wordfence is installed in all my websites for many years now and it really help me to sleep well ;) Merry christmas time for all Cécile }}} {{{ Thank you for this useful rundown of the newest WordPress update. While it does sound exciting, I'm going to hold off for the time being and make sure all my plugins have caught up. }}} {{{ Do you think I should postpone the WordPress update to the latest? And I have to test the latest WordPress first on my local site? And is there no problem if I delay updating WordPress to the latest version? Are there no security holes or other bugs if I delay updating WordPress to the latest version? }}} {{{ i had upgraded my website to latest version of wordpress from 5.5 to 5.6. after few hours from upgrade my site started showing blank popup on screen which was not removeable even this have a cancel icon at top. my whole structure of [readacted] was disturbed. so I've downgraded back to 5.5 now it's working fine. so if you want to upgrade your version. do it at your own risk. }}} The above comments are from the WordFence blog: https://www.wordfence.com/blog/2020/12/wordpress-5-6-introduces-a-new-risk-to-your-site-what-to-do/ **The Problem: ** There were a large number of questions on the Forums during 5.5. and 5.6. where sites experienced fatal errors or other unexpected behaviour. While plugins that have not updated to the latest version of jQuery libraries are certainly not the only reason for fatal errors or unexpected behaviour - and while the number of active installations of the jQuery Helper plugin are probably inflated at this point - the number of downloads for the plugin and trends regarding questions on the Forums and other WordPress-related Help sites, in combination with other indicators like the number of plugins in the repository that make reference to outdated jQuery libraries suggest that the problem is not trivial. When sites break, non-technical users tend to want to roll back. This breaks trust in auto-updates and is highly likely to lead to users staying on older Core versions for longer and not trying to update again for years. **The Proposed Solution:** Please note that this solution on its own won't magically solve all update problems. However, it is one part that seems like it can be mitigated to reduce the ""noise"" (not suggesting that the concerns are not valid - suggesting that word of mouth is highly effective) / friction in the ecosystem. Bundle the jQuery Helper into Core (like Hello Dolly). Strongly consider running a cron job to disable (and possibly delete) the plugin after a certain number of admin logins (say 20). Have a prominent message (possibly redirect to a ""landing page"") to show the admin user how many logins they have left before the plugin is automatically disabled / deleted. Consider allowing the admin to extend the number of admin logins (perhaps to 200), or to enable the plugin until disabled (for sites that use plugins reliant on the outdated jQuery libraries). If possible, consider making use of Site Health to give an indication to the admin user as to whether or not the plugin is needed on their current setup or not. A bundled plugin approach could potentially be used for other breaking changes in the future - as one of the main constraints .org has always had to contend with was that there hasn't really been a good way to communicate these to a large number of site owners / admins. The goal here is **not** to let people use insecure libraries indefinitely - the goal is to get them **off** those libraries as soon as possible by facilitating communication and by not leaving them with a broken site (potentially during the middle of the night without them even being aware that the auto-update is happening) and scaring them off updating at all." carike 60689 Concerning use of external libraries External Libraries normal normal Awaiting Review feature request new dev-feedback 2024-03-05T08:20:16Z 2024-03-27T15:27:01Z "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 <link> and <script> for proper placement in the page layout Thanks" warui1738 10 43733 Replace Underscores.js with Lodash.js adamsilverstein External Libraries normal normal Awaiting Review task (blessed) assigned dev-feedback 2018-04-10T14:30:08Z 2023-07-17T23:20:28Z "Should we replace Underscores.js with Lodash.js? [https://wordpress.slack.com/archives/C5UNMSU4R/p1523367735000195 Discussed in Slack today (April 10th, 2018)]. It was suggested for converting WP Core to lodash, [https://github.com/facebook/jscodeshift jscodeshift] could be leveraged. Here is a list of [https://github.com/lodash/lodash/wiki/Migrating API pairings between lodash and underscores]. Concerns: Lodash 5.0 is set to have some [https://github.com/lodash/lodash/wiki/Roadmap backwards incompatible changes] that could make the migration awkward. General backwards compatibility concerns as well. How do we want to handle Backwards Compat? Most likely only core will be changed, and a migration path/tool will be offered out to theme/plugin authors." ChopinBach 4 55604 Update SimplePie to version 1.7.0 External Libraries 6.0 normal normal Future Release task (blessed) new needs-unit-tests 2022-04-21T20:05:26Z 2024-02-05T20:11:34Z "A new version of SimplePie has just been released. This version contains a few enhancements and some bug fixes. The most notable change, however, is that this release contains a ''forward-compatibility'' layer for the change to PSR-4 namespaced classes which is targetted for SimplePie 2.0.0. With some similarity to Requests - the namespaced versions of the classes are in a different base directory (`src`) from the original versions (`library`). As WP currently only includes the files in the `library` directory, I would like to suggest to continue doing so for now. This still makes the ''forward-compatibility'' layer available as all files in the `library` directory now create a ''class alias'' to their namespaced version. Once 2.0.0 has been released, the files included in WP, should be switched to the files from the `src` directory (which is currently in place mostly to allow for Composer autoloading) and should start using the namespaced names for the SimplePie classes. I'd recommend for this update to be mentioned in a dev-note, so plugins/themes directly using SimplePie can decide for themselves when they want to change to using the namespaced names for SimplePie classes. Refs: * https://github.com/simplepie/simplepie/releases/tag/1.6.0 * https://github.com/simplepie/simplepie/blob/1.6.0/CHANGELOG.md#160---2022-04-21 * https://github.com/simplepie/simplepie/compare/1.5.8...1.6.0 I've done a cursory check of the changes and they look sane to me, but would very much like to invite a second opinion and I'd recommend testing this change (more thoroughly than usually done for upgrades like these). I'd also like to recommend for a few cursory tests to be added to the WP test suite to ensure that both the PSR-0 as well as the PSR-4 class names load correctly when only including the `library` directory in WP. I'd recommend for this update to be applied in WP 6.1 **early**. Previous: #36669, #51521, #54659" jrf 21 51812 Update jQuery step three SergeyBiryukov External Libraries normal normal Future Release task (blessed) reviewing has-patch 2020-11-18T09:34:57Z 2024-01-27T08:55:38Z "Follow up from #37110 and #50564. Remove jQuery Migrate 3.3.x. This ticket represents step 3 in the following roadmap for updating jQuery to 3.x in Core: https://make.wordpress.org/core/2020/06/29/updating-jquery-version-shipped-with-wordpress/. " azaozz 59945 About the feed name specified in the add_feed() Feeds 1.5 normal normal 6.6 defect (bug) new 2023-11-22T02:51:18Z 2024-02-17T13:49:13Z "There is no restriction on the first parameter of the add_feed function, but if it starts with ""_"" it will not function properly. {{{ function feed2_callback( $is_comment_feed, $feed ) { header( 'Content-Type: application/xml; charset=UTF-8', true ); echo '<?xml version=""1.0"" encoding=""UTF-8"" ?>'; ?> <rss version=""2.0"" xmlns:content=""http://purl.org/rss/1.0/modules/content/"" xmlns:dc=""http://purl.org/dc/elements/1.1/"" xmlns:atom=""http://www.w3.org/2005/Atom"" > <title>Test wp_die <![CDATA[WordPress &rsaquo; Error]]> 404 }}} This is not a problem with the code I tried, but because the ""_"" at the beginning of the feed name is removed in the do_feed function. {{{ function do_feed() { global $wp_query; $feed = get_query_var( 'feed' ); // Remove the pad, if present. $feed = preg_replace( '/^_+/', '', $feed ); }}} This process results in an action name of 'do_feed_' . **'feed2'** when $feed is '_feed2'. Since this is not done in the add_feed function and the action name specified in the add_action function is 'do_feed_' . **'_feed2'**, it appears that the two action names do not match, resulting in the error indicated in the response. Should I remove the leading '_' in the feed name in the add_feed function or not remove the '_' in the do_feed function? In any case, I would like to see consistency in the handling of feed names. " tmatsuur 51306 Add inline documentation for atomlib.php Feeds 5.5 normal normal Awaiting Review defect (bug) new 2020-09-14T08:09:30Z 2021-06-29T17:34:38Z Doc: Add $msg parameter entry for _p($msg) function anonymized_18274256 54802 Allow post_comments_feed_link to disable feed output Feeds normal normal Awaiting Review defect (bug) new has-patch 2022-01-12T16:47:31Z 2022-01-12T16:47:39Z "Using `add_filter( 'post_comments_feed_link', '__return_false');` one would expect to disable ""Comment feeds"". It's not the case, because `$x = false; isset($x) === true;` https://github.com/WordPress/wordpress-develop/pull/2150" drzraf 50498 "Change ""html"" to ""HTML"" in atomlib.php" Feeds normal normal Awaiting Review defect (bug) new has-patch 2020-06-28T16:47:35Z 2021-01-22T11:18:44Z "Follow #50473, there is a string in {{{wp-includes\atomlib.php}}} https://core.trac.wordpress.org/browser/tags/5.4/src/wp-includes/atomlib.php#L217 {{{ Invalid content in element found. Content must not be of type text or html if it contains markup. }}} " man4toman 2 36334 Custom RSS feed has wrong MIME type and forces download in browser Feeds 2.1 normal normal Future Release defect (bug) reopened needs-docs 2016-03-25T18:37:42Z 2020-03-25T15:58:17Z "When adding a custom RSS feed using add_feed(), the resulting feed is transferred to the document with the wrong MIME type and forces a download. Built in feeds behave properly. {{{ }}} Navigating to http://wordpress.dev/feed/feedname/ results in forced download and console message: {{{ Resource interpreted as Document but transferred with MIME type application/octet-stream: ""http://wordpress.dev/feed/feedname/"". }}} This occurs on a fresh install of WordPress 4.4.2 with no added plugins. The above code is the only contents of functions.php in a child theme of Twenty Sixteen. Browser/OS is Google Chrome 48.0.2564.116 (64-bit) on Mac OSX 10.11.3. Test website is running on a local Vagrant/VirtualBox server." Missilesilo 1 44283 Enclosure can't deal with CDN media files - WPCore redirects the URL Feeds 4.9.6 normal normal Awaiting Review defect (bug) new dev-feedback 2018-05-31T15:36:55Z 2021-06-07T09:58:21Z "When using WP as audio collection, RSS2 is needed to get podcasts spread around f.i. to iTunes ect.\\ \\ To validate the feed right from WP 4.9.6 at http://www.feedvalidator.org from source https://ferrie.audio/cat/podcasts/feed/ we recieve several errors where the most important one is the **redirection** of CDN URL's to WP URL\\ \\ **example:** **cdn.**ferrie.audio/blablabla/Can-You-hear-Me.m4a - the CDN.(= AWS3) location of the file\\ **becomes:** ferrie.audio/blablabla/Can-You-hear-Me.m4a\\ \\ **without** the CDN. urlprefix there is no audio stream - all streams are at CDN.\\ adding the CDN. urlprefix enclosure by hand and then save the blogpost results is 2 enclosures - 1 with CDN. - 1 without\\ adding the enclosure but NOT save the blogpost shows the correct enclosure - but - the RSS output shows the URL **without** the CDN. urlprefix\\ \\ have been looking into the /wp-includes/feed.php - but there is for me no place to find where this redirection takes place - an feed expert might be able to correct this problem - sorry that i can't - i'm no coder i make music." researcher 1 19885 Feed wfw Namespace no longer valid Feeds 3.3.1 normal normal Awaiting Review defect (bug) reopened close 2012-01-24T16:00:06Z 2021-12-06T15:46:39Z "Related to this post [http://wordpress.org/support/topic/rss-feed-wellformedweborg-offline?replies=2] A broken link scan of our website revealed that the link in the feeds to http://wellformedweb.org/CommentAPI/ (for the wfw namespace) is invalid. Going to that website reveals that the site has been taken down by the hosting company. I found 2 references to that namespace in /wp-includes/feed-rss2.php and /wp-admin/includes/export.php and removed them, and the instances to the wfw namespace within the feed content. This fixed my issue. This begs the larger question: should this be removed/replaced in the core if the site that references the namespace is no longer available? Verified here: [http://ww2.aaronwagner.net/feed/]" ajwagner777 5 19998 Feeds can contain characters that are not valid XML Feeds 3.3.1 normal normal Awaiting Review defect (bug) new needs-unit-tests 2012-02-09T16:28:47Z 2020-06-19T00:25:59Z "It is possible for any of the feeds to contain control characters which are not valid in XML e.g. http://www.fileformat.info/info/unicode/char/1c/index.htm When outputting user supplied content in an XML context we should strip these control characters - they are unprintable and just break feed parsers. http://en.wikipedia.org/wiki/Valid_characters_in_XML has a good list of what is and isn't valid. I guess we need a {{{strip_for_xml()}}} function or something." westi 1 56883 Feeds of non-existent tags and categories displays an empty feed instead of 404 Feeds 6.0.3 normal normal Awaiting Review defect (bug) new 2022-10-21T19:27:09Z 2022-10-21T19:27:09Z "I noticed in Google Search Console that Google often visits feeds of tags that no longer exist. It turns out that the RSS feeds still work instead of returning a 404. Recreating the issue is simple: Go to the page of the non-existent tag, e.g. `/tag/asdsdsad/` and append `feed/` to the end of the address, eg. `/tag/asdsdsad/feed/`. An empty feed will be displayed instead of a 404. This should return a 404 so that search engine bots can forget about it instead of fetching it every so often. I have thousands of such deleted tags on my site. It would be better for the environment if the bots didn't waste resources on this." rafaucau 3 58798 Fix possible PHP warning in /wp-includes/feed.php Feeds 6.2.2 normal normal Awaiting Review defect (bug) new 2023-07-13T10:12:27Z 2023-11-27T12:36:13Z "If some plugins or themes use ""enclosure"" meta field as a one-line string, it results in PHP warnings: PHP Warning: Undefined array key 2 in /wp-includes/feed.php on line 484 PHP Warning: Undefined array key 1 in /wp-includes/feed.php on line 494 It happens because there is no check of string content there: {{{ foreach ( (array) get_post_custom() as $key => $val ) { if ( 'enclosure' === $key && is_array( $val ) ) { foreach ( (array) $val as $enc ) { $enclosure = explode( ""\n"", $enc ); / Only get the first element, e.g. 'audio/mpeg' from 'audio/mpeg mpga mp2 mp3'. $t = preg_split( '/[ \t]/', trim( $enclosure[2] ) ); $type = $t[0]; /** * Filters the RSS enclosure HTML link tag for the current post. * * @since 2.2.0 * * @param string $html_link_tag The HTML link tag with a URI and other attributes. */ echo apply_filters( 'rss_enclosure', '' . ""\n"" ); } } } }}} **Proposal:** Add checks if the enclosure is an array, and each item can be exploded into exactly 3 items: {{{ if ( 'enclosure' === $key && is_array( $val ) ) {} }}} And this: {{{ $enclosure = explode( ""\n"", $enc ); if ( 3 !== count( $enclosure ) ) { continue; } }}} " zahardoc 58337 Indentation and Spacing Issue in rss.php File Feeds low normal Awaiting Review defect (bug) new close 2023-05-17T05:35:00Z 2023-05-30T16:33:29Z "I have noticed indentation and spacing issue within the rss.php file in WordPress. The problem lies in inconsistent indentation and spacing throughout the code, which hinders readability and comprehension. Indentation and spacing issue found in the following lines of code within a wp-includes/rss.php https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/rss.php#L77 https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/rss.php#L109 https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/rss.php#L125 https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/rss.php#L146 https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/rss.php#L176 " madhusudandev 2 13066 Last-Modified headers for individual comment feeds are incorrect jgci* Feeds 3.0 low normal Future Release defect (bug) accepted dev-feedback 2010-04-21T07:32:34Z 2022-06-28T05:18:27Z "The WP::send_headers function currently uses get_lastcommentmodified() to set the Last-Modified header for all comment feeds. This is a problem when used for individual post comment feeds. The function gets the last modified comment across all blog posts. That means that every time a comment is posted anywhere, the Last-Modified header for ALL comment feeds is refreshed. Issues: 1. This is technically incorrect, since only the global comment feed and one specific post's comment feed have changed with the last comment (not all possible comment feeds); and 2. It means that If-Modified-Since requests for other post comment feeds will not receive a 304 response when they should do (since their content hasn't changed). On blogs with many posts and many comment feeds, this will have a large impact on bandwidth because lots of requests will receive 200 responses where 304's would have done, just because a comment was posted on some other post. If I've understood the flow correctly, $wp_query hasn't been fully set up at the time this function is called, so changing this behaviour would require some change in the flow of things (e.g., the handling of last modified headers for feeds moves into the do_feed() function). But doing so would mean that Last-Modified headers are correct/meaningful and that many more 304 responses can be served. Any thoughts?" solarissmoke 55846 RSS VALIDATION ERROR Feeds normal normal Awaiting Review defect (bug) new 2022-05-26T13:41:38Z 2022-05-26T15:04:33Z "Need help with my feed validation error https://dimokratiki.gr/feed/ I am getting this for no obvious reason: {{{ Sorry This feed does not validate. line 8, column 44: XML parsing error: :8:44: not well-formed (invalid token) [help] xmlns:media=""http://search.yahoo.com/mrss/""xmlns:media=""http://search.yahoo ... ^ Source: https://dimokratiki.gr/feed/ do_action() /Users/me/root/wp-includes/plugin.php:478 6. WP_Hook->apply_filters() /Users/me/root/wp-includes/class-wp-hook.php:312 7. redirect_canonical() /Users/me/root/wp-includes/class-wp-hook.php:288 8. is_front_page() /Users/me/root/wp-includes/canonical.php:498 9. WP_Query->is_front_page() /Users/me/root/wp-includes/query.php:456 10. WP_Query->is_page() /Users/me/root/wp-includes/class-wp-query.php:3879 PHP Notice: Trying to get property 'post_type' of non-object in /Users/me/root/wp-includes/link-template.php on line 682 A variant (same sort of problem) throws an error in class-wp-query.php with the following: https://your.site.com/news2020/feed/ " ronald2020 1 55215 Unknown file in WordPress core: wp-includes/SimplePie/Cache/adf416701234bb74c7b67e4f1dc6eede.spc Type: File Feeds normal normal Awaiting Review defect (bug) new 2022-02-21T14:18:11Z 2022-02-21T16:03:28Z "Hi, Just got three notices as above. Is it an issue or a leftover file causing a problem? Thanks" marian57 3 30210 WordPress generates unnecessary RSS feeds Feeds 4.0 normal normal Future Release defect (bug) assigned has-patch 2014-10-31T10:01:30Z 2020-09-20T17:02:32Z "Examples: http://ma.tt/blog-content/feed/ http://ma.tt/blog-content/plugins/feed/ http://ma.tt/blog-content/themes/feed/ Bug? Feature?" sergej.mueller 1 3260 XML output (rss, atom, rdf ...) should always use UTF-8 or CDATA for user input stevenkword Feeds 2.8.2 normal normal Future Release defect (bug) assigned has-patch 2006-10-18T02:33:58Z 2024-02-11T12:23:24Z "If none UTF-8 is used, user generated text like titles or categories may contain unallowed entities. The elements , <tagline>, <dc:subject>, <category> (there may be more) are not protected width <![[CDATA ]]>. The conversion can be done width the PHP MulitByte function. If MB is not available, the <![[CDATA should be used instead. Please contact me for development help." deremder 1 47470 XML parsing error: undefined entity (revisited) Feeds 5.2.1 normal normal Awaiting Review defect (bug) new 2019-06-03T18:55:49Z 2019-06-03T23:45:13Z "After 10 years, bug #8464 seems to be back in 5.2.1 On a completely fresh install (no plugins, default theme) I added a tag with a ' (single quote) in the title. This converts to ’ in the feed title. This in turn, generates {{{ This feed does not validate. line 11, column 9: XML parsing error: <unknown>:11:9: undefined entity }}} for the tag's feed on https://validator.w3.org/feed/ See https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2F2607.fr%2Ftag%2Flapostrophe%2Ffeed%2F for example" RavanH 1 42261 Add Support for No Limit Queries to 'posts_per_rss' . Feeds 4.8.2 normal normal Future Release enhancement new has-patch 2017-10-18T18:12:32Z 2018-11-14T21:12:57Z Setting `posts_per_rss = -1` will result in a query with `LIMIT 0, -1`. ohryan 43604 Add option to completely disable syndication feeds Feeds normal normal Awaiting Review enhancement reopened 2018-03-21T21:04:46Z 2019-01-16T06:50:09Z "Some site owners do not want to provide RSS/Atom/whatever feeds, for various reasons. Right now, there is no way to globally disable feeds. The current way to disable feeds involves: - hiding feed URLs from the end user (by removing the ""Meta"" widget from the sidebar and removing the feed links from the header) - filtering the functions that write the feed URLs - disabling feed endpoints by deleting the array containing the feed types in WordPress core - hooking in to the `do_feed_x` actions to redirect the user to a 404 See for example the instructions for disabling feeds one user provides [https://wordpress.stackexchange.com/questions/33072/how-to-remove-feeds-from-wordpress-totally here]. It would be nice if there was a setting in `options-reading.php` to disable syndication feeds altogether, which disables display and generation of the feeds across the whole site." seanleavey 2 50441 Allow CORS for RSS feed Feeds normal normal Awaiting Review enhancement new 2020-06-20T18:22:19Z 2021-10-08T06:59:23Z "I'm developing an in-browser RSS reader and want to get an RSS feed from my blog on WP.com but browser (both Chrome and FF) shows me the error: {{{ Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://wordpress.com/blog/feed/. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing). }}} Here is a small example to reproduce: {{{ <html> <head> <script src=""https://unpkg.com/rss-parser/dist/rss-parser.min.js""></script> <script> let parser = new RSSParser(); parser.parseURL('https://wordpress.com/blog/feed/', function(err, feed) { if (err) throw err; console.log(feed.title); feed.items.forEach(function(entry) { console.log(entry); }) }) </script> </head> </html> }}} This is quite popular thing that a lot of peoples tries to do: https://www.google.com/search?q=wordpress+feed+cors That's one of the main reasons why most browser JS RSS readers requires to use a dedicated proxy server that will make a server to sever call to retrieve the RSS: * https://github.com/sdepold/jquery-rss proxies RSS fetch via Feedr. * https://github.com/enginkizil/FeedEk proxies RSS fetch via Feed API * https://github.com/rbren/rss-parser uses https://cors-anywhere.herokuapp.com The fix is easy: {{{ add_action( 'pre_get_posts', 'add_header_origin' ); function add_header_origin() { if (is_feed()){ header( 'Access-Control-Allow-Origin: *' ); } } }}} But I wan't the fix to be added into WP trunk because my reader will mostly consume RSS from wordpress.com or many other WP blogs. It should be fine to allow CORS requests to feed. The only one problem is a security concern. Hacker can make a DDoS by pasting on some popular site an <img> tag with src to WP feed and this will produce a big load to WP instance. But here we can add a simple check: when browser requests an image it sends the header `Accept: image/webp,image/apng,image/*,*/*;q=0.8` while JS RSS headers can set the `Accept` header manually to `application/rss+xml`. Actually the rss-parser already sends the `Accept: application/rss+xml`. So on the server side we can just check that client requested exactly the feed and only then try to generate it. As far I see this is something really important (because already used workarounds) and it should be easy to implement and safe to enable by default. So I'll set Major severity. " stokito 1 43860 Dead code in feed_links_extra() Feeds 3.7 normal normal Future Release enhancement new has-patch 2018-04-25T17:34:26Z 2019-01-09T06:03:08Z "Probably a detail, but in {{{general-template.php}}}, function [https://core.trac.wordpress.org/browser/trunk/src/wp-includes/general-template.php#L2799 feed_links_extra()] contains two {{{elseif}}} statements with the same condition {{{if ( is_post_type_archive() )}}}. The second one can't be reached and can be considered as dead code." dmenard 2 55909 Do WordPress feeds need pagination query SQL_CALC_FOUND_ROWS? Feeds 6.0 normal normal Awaiting Review enhancement new 2022-06-03T07:40:59Z 2022-06-03T15:20:46Z "It seems that by default, WordPress feeds endpoints generate an extra SQL_CALC_FOUND_ROWS query, because the `no_found_rows` query parameter [https://github.com/WordPress/wordpress-develop/blob/2c06c9afd5ba32a0f55a9f8313e636fbcb698cab/src/wp-includes/class-wp-query.php#L1943 defaults] to false. On large sites with ten of thousands of posts, this can create slow queries which overall can affect the database performance. While checking the docs and expected functionality of feeds https://wordpress.org/support/article/wordpress-feeds/ , I don't see any mention for pagination, so my question is: Are feeds supposed to have pagination enabled and if NOT, does it make sense to set the `no_found_rows => true` for the default WP_Query when feeds are triggered? So far, I've managed to fix it with {{{#!php <?php function feed_filter($query) { if( $query->is_feed && $query->is_main_query() ) { $query->set('no_found_rows', true); } } add_action( 'pre_get_posts', 'feed_filter' ); }}} but curious if there might be other implications to this?" ovidiul 1 48414 Enhancement: feed_links_extra needs filter to remove a feed from pages Feeds normal normal Awaiting Review enhancement new 2019-10-23T19:40:25Z 2019-10-23T19:40:25Z "Use case: If your site doesn't have comments, or uses a service like disqus, the singletitle feed is useless and always empty (since comments are open, just not using wordpress native commenting). I'd like to be able to remove it from the header. Other use cases are if people do not want to provide an RSS feed for a tags or authors. Suggestion: allow a filter on feed_links_extra to eliminate the echoing of that feed into the header. This ticket proposes filtering the default values: https://core.trac.wordpress.org/ticket/43225 Perhaps modify that to accept null or false values for things like 'singletitle' and if false, skip the creation of that item. " sgatz 3 34083 Feed for post type should link to post type archive if available stevenkword Feeds normal normal Future Release enhancement assigned dev-feedback 2015-09-29T20:50:33Z 2017-03-17T19:16:03Z "This post type feed: https://yoast.com/dev-blog/feed/ has {{{ <link>https://yoast.com</link> }}} Even though that particular post type has a post type archive. IMHO, it should link to the post type archive `https://yoast.com/dev-blog/`. " joostdevalk 1 40587 Feed link markup should contain rel and type attributes Feeds normal normal Future Release enhancement new has-patch 2017-04-27T18:31:44Z 2017-05-19T15:01:56Z "The markup of feed links should really contain a {{{rel}}} and a {{{type}}} attribute. For example: {{{<a rel=""alternate"" type=""application/rss+xml"" href=""https://example.com/feed"">#</a>}}} The {{{post_comments_feed_link()}}} is an example of where this doesn't happen." henry.wright 4 13867 New filter for comment RSS feed's title killua99 Feeds 3.0 normal normal Future Release enhancement assigned has-patch 2010-06-12T21:53:07Z 2021-11-10T03:51:19Z "I'd like to be able to customize comments titles in RSS feed. Currently it's hardcoded and has no way to be changed, so I added 2 new filters so that plugins can edit them. I've tested and patch is working for me." shidouhikari 4 57107 No-op `MagpieRSS` Feeds normal normal Awaiting Review enhancement new dev-feedback 2022-11-14T15:44:34Z 2023-05-30T16:34:08Z "MagpieRSS is an XML-based RSS parser built in the days of PHP 4.x. MagpieRSS has been deprecated in WordPress since version 3.0 was released in 2010. The library itself has not been updated since 2004 and is abandoned. Since then the library has continued to be included with WordPress to avoid breaking any sites that may have been using it. It has been deemed an ""adopted"" external library, but only the following very minor updates have been made: - inline documentation. - changes to avoid fatal PHP errors in modern versions of PHP. - changes to avoid deprecated notices/other warnings in modern versions of PHP. Looking at the plugin directory, there is [https://wpdirectory.net/search/01GHVBFXQJA6M0VH9FVT4HHF1S almost no meaningful usage of the class]. 90-95% of the matches are false positives related to identifying when a crawler is accessing pages/feeds. Enough time has passed since deprecating this class where no-opping can be considered to avoid continuing to ship code that no one is using." desrosj 1 41905 Only loop over enclosure meta keys in rss_enclosure() and atom_enclosure() Feeds 2.2 normal normal Awaiting Review enhancement new has-patch 2017-09-18T10:26:38Z 2018-08-23T10:55:28Z "Instead of getting all post meta keys for the current post and then filter out the {{{enclosure}}} keys: {{{ foreach ( (array) get_post_custom() as $key => $val ) { if ($key == 'enclosure') { }}} we could only get the ones we need with: {{{ $meta_enclosures = get_post_meta( get_the_ID(), 'enclosure', false ); foreach ( (array) $meta_enclosures as $key => $val ){ }}} where {{{get_post_custom()}}} is a wrapper for {{{get_post_meta( get_the_ID() )}}}. See {{{atom_enclosure()}}} [https://github.com/WordPress/WordPress/blob/bbb8d48086b7d10908f4fda673585ee122f2851d/wp-includes/feed.php#L463 here] and {{{rss_enclosure()}}} [https://github.com/WordPress/WordPress/blob/bbb8d48086b7d10908f4fda673585ee122f2851d/wp-includes/feed.php#L463 here]. " birgire 6 6425 Support for RTL in feeds Feeds normal normal Awaiting Review enhancement assigned close 2008-03-27T20:56:51Z 2023-02-02T13:42:09Z "In the current state of most Feed readers, the only surefire way to make RTL content display properly is to have directionality enforced inside the content - that is, either with {{<div dir=""rtl"">}}} tags inside CDATA or with Unicode directionality characters (for e.g., RLE and PDF, or ‫ and ‬, or U+202B and U+202C.) for excerpts or titles. While we currently have pretty good support for RTL languages, there is no support for RTL in feeds - all is left up up to the feed reader. I suggest adding a mechanism to automatically insert these tags/characters for blogs that have text_direction set to RTL - much in the same way RTL css style sheets are loaded for these blogs. I have attached a patch that modifies the feed templates to insert these tags/characters. Note that there is no checking of blog directionality here - this is just an example of how to enforce RTL in feeds, not how to enforce it conditionally. This relate to a previous ticket I submitted (#5517), regarding adding an option to set the feed language - which currently just defaults to EN. Certain feed readers know to display RTL text in proper directionality according to feed language (for e.g., feeds that have their feed language set to HE (Hebrew), will get displayed from Right to Left). While setting feed language is not a comprehensive solution, it is a step in the right direction." RanYanivHartstein 2 43225 feed_links and feed_links_extra should have filters Feeds normal normal Awaiting Review enhancement new needs-docs 2018-02-04T20:34:25Z 2019-01-16T06:50:09Z There ought to be a way to modify the way feed links are displayed by the `feed_links` function. Currently there is, for instance, no way to change the separator from `»` to something else. topdownjimmy 1 49321 provide standard pagination links in RSS/Atom feeds Feeds 5.4 normal normal Awaiting Review enhancement new 2020-01-29T17:09:52Z 2022-06-03T15:21:16Z "Since feeds use the same query parameters as the rest of WordPress, it's already possible to get RSS/Atom-format lists of older posts in addition to the newest 10 (or whatever `posts_per_rss` is set to). However, a client has to know it's looking at a WordPress-generated feed, and manually construct the right paginated feed URLs. I'd like WordPress to implement the Atom pagination links standardized in 2007 by [https://tools.ietf.org/html/rfc5005 RFC 5005], which also has an appendix on using them in RSS. I've written a plugin demonstrating how to do this in a spec-conformant way (https://github.com/jameysharp/wp-fullhistory). The spec requirements that enable aggressive caching in feed readers make the ""obvious"" ways to do this not work, but the plugin is still quite simple. I've included extensive comments if you're interested in the details, and the plugin passes WordPress coding standards 2.2.0. But PHP isn't one of the languages I normally use, so I'd certainly appreciate code review. I brought this up in the forums a while back ([https://wordpress.org/support/topic/add-rfc5005-support-to-wordpress-generated-rss-feeds/ post]) and got very helpful starting points from Samuel Wood, but my current implementation is much simpler than I had thought it would be. I've considered just encouraging people to use the plugin, rather than trying to get this standard supported in core. But there already aren't very many WordPress users who know what RSS is, let alone understand extensions. (I surveyed several dozen webcomic creators, in particular.) So for the same reasons that it's good for the open web that WordPress just automatically provides feeds, I hope you'll automatically provide standard pagination in those feeds too." jameysharp 7 8994 Incorporate MediaRSS Plugin into core technosailor Feeds normal normal Future Release feature request new dev-feedback 2009-01-29T18:00:20Z 2021-02-07T22:38:35Z Per conversation on the hackers list, this ticket is a working area for incorporation of the MediaRSS plugin (http://wordpress.org/extend/plugins/mrss) into core for WP 2.8. technosailor 49565 RSS Feature Feeds 5.3.2 normal normal Awaiting Review feature request new reporter-feedback 2020-03-02T20:16:18Z 2020-10-02T04:44:51Z "Hello, I was wondering if we could develop a feature in WordPress that has its own RSS to read feeds from any websites without the use of a plugin. Currently I own a website https://drudge-report.net which is using a third party RSS reader but it makes the website so slow for visitors. I believe a feature like this embedded in wordpress will not affect web speed. Thanks for your support. Denz " clickmarina 5 55387 $wp_filesystem->dirlist() can return false and that should be checked for before iterating over the return value pbiron Filesystem API 2.8 normal normal Future Release defect (bug) assigned has-patch 2022-03-13T19:22:47Z 2022-04-30T16:17:06Z There are a number of cases in core (e.g., https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/class-wp-upgrader.php#L500) where the return value of `$wp_filesystem->dirlist()` is assumed to be an array. But since that method can return `false`, we should always check for that before iterating (or calling `array_keys()` or `array_values()` on it) over the return value. pbiron 40195 No provision to set paths for sftp (ssh2) Filesystem API 4.7.2 normal normal Awaiting Review defect (bug) new 2017-03-18T13:36:00Z 2017-03-18T13:36:00Z "I have a server which has different paths for the web server verses when accessed via sftp and consequently updates fail with ""Unable to locate WordPress content directory (wp-content)."" According to this page [https://codex.wordpress.org/Editing%20wp-config.php#Enabling_SSH_Upgrade_Access] there are 3 options for this exact purpose: FTP_BASE, FTP_CONTENT_DIR, FTP_PLUGIN_DIR. Setting these has no affect. This is confirmed by turning on debug and the following error is generated: ""Installation failed: Looking for /usr/local/www/+++++/www/wp-content/plugins in /"" The ""wp-admin/includes/class-wp-filesystem-base.php"" file reveals the find_folder function only processes the overrides for ftp services. {{{ public function find_folder( $folder ) { if ( isset( $this->cache[ $folder ] ) ) return $this->cache[ $folder ]; if ( stripos($this->method, 'ftp') !== false ) { $constant_overrides = array( 'FTP_BASE' => ABSPATH, 'FTP_CONTENT_DIR' => WP_CONTENT_DIR, 'FTP_PLUGIN_DIR' => WP_PLUGIN_DIR, 'FTP_LANG_DIR' => WP_LANG_DIR ); }}} Seems to be a strange requirement on the ssh2 method that the paths must align exactly with the web server so I consider this a bug. Others may consider it an enhancement in which case it would be a good idea if the codex entry made it clear only ftp access methods support configurable paths (ssh must align with the webserver)." fsrs 1 59917 "On windows host using ftp, Undefined array key ""islink""" Filesystem API normal normal 6.6 defect (bug) new 2023-11-16T18:02:27Z 2024-02-17T13:48:42Z "Fresh install of wordpress 6.4.1 On windows host using ftp steps to recreate: 1. Going to ""sitehealth"" page gives critical warning ftp credentials are missing for updates. 2. Google search suggested adding the following to the user added section of `wp-config.php` {{{ define('FTP_USER', 'USERNAME'); define('FTP_PASS', 'PASSWORD'); define('FTP_HOST', 'FTP.EXAMPLE.COM'); }}} 3. After this, go back to site health page. It is giving the following warnings repeatedly: {{{ Warning: Undefined array key 3 in C:\...\wp-admin\includes\class-ftp.php on line 457 Warning: Undefined array key ""islink"" in C:\...\wp-admin\includes\class-wp-filesystem-ftpsockets.php on line 695 Warning: Undefined array key ""perms"" in C:\...\wp-admin\includes\class-wp-filesystem-ftpsockets.php on line 700 Warning: Undefined array key ""islink"" in C:\...\wp-admin\includes\class-wp-filesystem-ftpsockets.php on line 695 }}}" antonmo 4 55328 PHP warning on rename() inside download_url() in /wp-admin/includes/file.php Filesystem API 5.9 normal normal Awaiting Review defect (bug) new dev-feedback 2022-03-07T12:34:54Z 2023-03-17T19:11:01Z "Hi, I struggle with the following warning on my WordPress site (version 5.9.0 and currently 5.9.1) whenever I update the plugins: {{{ PHP Warning: rename(/tmp/plugin-name.tmp,plugin-name.plugin-version.zip): Permission denied in /wp-admin/includes/file.php on line 1201, referer: siteURL/wp-admin/plugins.php }}} The warning is triggered by rename() function inside download_url()in /wp-admin/includes/file.php on line 1201. It's been logged on the site since support for Content-Disposition filename was added in WP 5.9: developer.wordpress.org/reference/functions/download_url/ The warning is also getting logged in WP 5.9.1. My site uses ftpext filesystem and I believe this is why 'permission denied' warning is triggered. The plugins update successfully, with no other issues, however, the above warning is logged every single time. Would it be possible to exclude Content-Disposition filename support if website uses ftpext filesystem method? " devbd 1 51368 Remove windows path check from validate_file Filesystem API normal normal Awaiting Review defect (bug) new 2020-09-21T12:38:21Z 2020-09-22T21:51:05Z "Let's talk about `validate_file` function, and specifically about this fragment here: https://github.com/WordPress/wordpress-develop/blob/b984a64c987ae259109bcb08776b1ed22f1dc98f/src/wp-includes/functions.php#L5373-L5376 It checks whether or not the path is a Windows drive path. Why is this logic needed? It doesn't seem to play any role or even make sense - why allow arbitrary unix paths, but not windows paths? It was introduced 16 years ago when the function was first created, and even then there was no clear explanation why is it even being checked: [2019]." zieladam 55688 Update size function in WP_Filesystem_Direct Filesystem API 2.5 normal normal Awaiting Review defect (bug) new close 2022-05-06T04:48:11Z 2022-05-06T19:21:54Z "Related: #55678 Replying to [comment:8 costdev]: > > [https://github.com/WordPress/wordpress-develop/pull/2677 PR2677] was discussed in the scrub. The PR patches a different function and this should be handled in a different ticket. " mukesh27 2 24780 Use error handlers rather than the error suppression operator Filesystem API normal normal Future Release defect (bug) new 2013-07-17T01:14:56Z 2023-09-07T09:39:17Z "In various places in core (and included libraries, such as pclzip, FTP and phpass), the error suppression operator is used to suppress warnings and notices. However, this also suppresses fatal errors, which makes it a huge pain for debugging. The big one here is `fopen`, where it is used to suppress warnings when opening a handle fails. For normal files, this is fine since the only errors generated are warnings. When using streams and custom stream handlers, these can generate errors which are really hard to find with this. (I ran into this with the App Engine plugin, where the SDK method generates a fatal error if the mode is `a`, which is used with error suppression in `win_is_writable()`.)" rmccue 47817 Using file editor ignores schema and always uses http Filesystem API 5.2.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-08-01T22:52:15Z 2023-03-11T03:26:19Z "When editing a template/theme or plugin file with the WordPress file editor, the internal loopback which I assume uses wp-json does not honor the schema of the siteurl. For example: Siteurl: https://kinsta.com The request will come through as http://kinsta.com If SSL is forced at the server level, this will force the https:// schema. This was recently discovered and was failing because a user's SSL intermediate chain was missing, so the site would edit fine without HTTPS forced, but with SSL forced it would fail. We were able to identify the chain issue due to this error occuring when force HTTPS was enabled in Nginx: ```Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP.```" jeffpaulkinsta 6 28013 WP_Filesystem_FTPext::exists($filename) returns false when file exists on FTP Service ( IIS/6.0 Microsoft & Linux/vsftp ) dd32 Filesystem API 3.9.2 normal normal Future Release defect (bug) reopened close 2014-04-24T15:33:56Z 2024-01-04T21:18:58Z "I'm having trouble using the update/upgrade functions of WordPress on a Windows IIS/6.0 server. The .maintenance file is never deleted. I have to use the FTPext method of updating and I've found that `WP_Filesystem_FTPext::exists('.maintenance')` returns false even though the file exists. Since the fix for #10060 that function uses `ftp_nlist()` which returns invalid results on the IIS/6.0 Microsoft FTP Service. I did some more testing and it turns out that the current function has issues with ""dotfiles"" '''Work correctly''' `WP_Filesystem_FTPext::exists('index.php')` `WP_Filesystem_FTPext::exists('wp-content/debug.log')` '''Fail''' `WP_Filesystem_FTPext::exists('.maintenance')` `WP_Filesystem_FTPext::exists('wp-content/.maintenance')` (yes, I made sure those files actually existed ;-) For this particular purpose, couldend `WP_Upgrader::maintenance_mode()` be modified to test for the existence of .maintenance using `is_file( ABSPATH . $file )` and if so execute `$wp_filesystem->delete($file, false, 'f');` (setting the f bypases all the tests)?" joostdekeijzer 8 35517 Work around PHP7 php-ssh2 breakage Filesystem API normal normal Awaiting Review defect (bug) new dev-feedback 2016-01-18T20:46:22Z 2023-06-27T06:41:29Z "There is an updated php-ssh2 package available for PHP7, but it currently breaks the WordPress updater functionality for `class-wp-filesystem-ssh2.php`. The root cause seems to be that it has not correctly implemented the PHP stream wrappers for the `stat()` call, and any dependent functions such as `is_file()`, `is_dir()`, `file_exists()`, etc. However, the `ssh2_sftp_stat()` function does work, and we can deduce the other information from it. I've filed a bug against the php-ssh2 extension (https://bugs.php.net/bug.php?id=71376), but I wondered if using `ssh2_sftp_stat()` might be better, in general, than depending on the PHP stream wrapper functionality. " dougal 1 49865 _unzip_file_pclzip attempting to create directories all the way up to / Filesystem API 5.4 normal normal Awaiting Review defect (bug) new close 2020-04-09T20:33:07Z 2023-05-06T08:02:38Z "In wp-admin/includes/file.php _unzip_file_pclzip looks to be attempting to create directories all the way up to / (the root directory of the server). Line 1411: {{{ $to = trailingslashit( $to ); }}} Adds a trailing slash to the destination path. Line 1636: {{{ $needed_dirs[] = $to . untrailingslashit( $file['folder'] ? $file['filename'] : dirname( $file['filename'] ) ); }}} Adds the $to directory to $needed_dirs if there are files at the root level of the archive. Line 1655: {{{ if ( untrailingslashit( $to ) == $dir ) { }}} attempts to skip the $to directory, but since the top-level path in $needed_dirs includes a trailing slash this check fails. So then lines 1663-1666: {{{ while ( ! empty( $parent_folder ) && untrailingslashit( $to ) != $parent_folder && ! in_array( $parent_folder, $needed_dirs ) ) { $needed_dirs[] = $parent_folder; $parent_folder = dirname( $parent_folder ); } }}} add every directory all the way up to /, the root of the server to $needed_dirs Finally line 1673: {{{ if ( ! $wp_filesystem->mkdir( $_dir, FS_CHMOD_DIR ) && ! $wp_filesystem->is_dir( $_dir ) ) { }}} throws an error when checking if / is a directory and the entire unzip fails. If I remove untrailingslashit from line 1655 (or wrap $dir in untrailingslashit as well) that check works as designed and the problem is avoided." mwheelermindbox 2 48289 wp_normalize_path() breaks path_is_absolute() in Windows. SergeyBiryukov Filesystem API 5.2.3 normal normal Future Release defect (bug) reviewing needs-unit-tests 2019-10-11T08:49:20Z 2021-04-08T07:28:58Z "Apologies in advance if this is considered correct behaviour, but it's strange that this is the case. On **Windows**, when you take an absolute file system path and use `wp_normalize_path()` and then pass this result to `path_is_absolute()`, you get `false` instead of `true`. Super simple demo: {{{#!php <?php var_dump( path_is_absolute( __FILE__ ) ); var_dump( path_is_absolute( wp_normalize_path( __FILE__ ) ) ); }}} *nix Result: {{{ bool(true) bool(true) }}} Windows Result: {{{ bool(true) bool(false) }}} " paultgoodchild 9 44083 Add action to wp_mkdir_p() when directory is created successfully SergeyBiryukov Filesystem API 2.0.1 normal normal Future Release enhancement reviewing has-patch 2018-05-15T00:11:46Z 2024-02-12T22:26:12Z "It would be nice if the `wp_mkdir_p()` function contained a hook for plugins to interact with when a directory gets created. The use-case I have currently is that Easy Digital Downloads (for example) creates `.htaccess` files and empty `index.php` files in its own `uploads/edd` directory, and each directory inside it, as one way of protecting those empty directories from being publicly browsable. Because there is no action hook here, EDD uses a daily transient, which leaves new directories potentially open until the transient expires. An action hook on directory creation would allow for EDD to create those files immediately." johnjamesjacoby 1 57725 Use of rand() function instead of wp_rand() Filesystem API normal normal Awaiting Review enhancement new dev-feedback 2023-02-15T11:14:13Z 2023-06-21T11:00:43Z "Filesystem API function {{{wp_edit_theme_plugin_file}}} using PHP {{{rand()}}} function rather than WP's {{{wp_rand()}}}. Can we enhance this as {{{rand()}}} is discouraged? File path: wp-admin/includes/file.php Line: 524 and 526 " haritpanchal 3 43990 Use wp_delete_file instead of unlink Filesystem API low normal Future Release enhancement assigned has-patch 2018-05-07T14:35:43Z 2018-05-14T19:44:35Z Use `wp_delete` instead of `unlink` as much as possible throughout the codebase. macbookandrew 55469 WP_Filesystem_SSH2::chmod() should use ssh2_sftp_chmod() Filesystem API normal normal Awaiting Review enhancement new has-patch 2022-03-27T17:10:57Z 2022-03-27T17:13:32Z "`WP_Filesystem_SSH2::chmod()` currently uses `::run_command( sprintf( 'chmod %o %s', $mode, escapeshellarg( $file ) ), true )` (which calls [https://www.php.net/manual/en/function.ssh2-exec.php ssh2_exec()]). It has essentially been this way since `WP_Filesystem_SS2` was introduced in [8812]. However, some sftp servers do not allow `ssh2_exec()` to be run, generating PHP warnings such as: > PHP Warning: ssh2_exec(): Unable to request command execution on remote host and on those severs all calls to `WP_Filesystem_SSH2::chmod()` basically become noops. Luckily, starting with version [https://pecl.php.net/package/ssh2/0.12 0.12], the ssh2 extension introduced [https://www.php.net/manual/en/function.ssh2-sftp-chmod.php ssh2_sftp_chmod()], and `WP_Filesystem_SSH2::chmod()` should be changed to use it." pbiron 56301 Add File Backup Feature in wp_edit_theme_plugin_file() sajjad67 Filesystem API normal normal Awaiting Review feature request assigned dev-feedback 2022-07-28T22:23:00Z 2023-07-17T15:07:22Z "I thought about the security before creating this ticket, but still let's discuss about the possibility of it for once! The way it works now is if you edit a file using the plugin/theme-editor.php, there's no way of going back! It only checks for any Fatal Error! Now what i think, would it be good/bad if we add a feature to create a (temp) backup of each file edited, like we do for posts/pages as revisions! There's lots to take into consideration before we discuss about it, i know! But is there anyone else thinking like me this could be a feature!! Let me know if it's open for any further discussion!" sajjad67 1 48261 """noopener noreferrer"" mis-parses links with ""rel="" parameters" Formatting 5.2.3 normal normal Awaiting Review defect (bug) new has-patch 2019-10-08T21:39:20Z 2019-10-09T22:55:14Z "If a link contains a url parameter named ""rel"" and the rel=""noopener noreferrer"" attribute is triggered (ie. the link has the target=""_blank"" attribute as well) then it botches the parsing, and you wind up with a link that looks like: {{{ <a href=""https://www.somesite.com/index.php?v=yes&rel=0" noopener noreferrer"" target=""_blank"">Anchor Text</a> }}} " mvandemar 57235 'excerpt_remove_blocks' removes list blocks Formatting normal normal Awaiting Review defect (bug) new has-patch 2022-11-30T12:59:08Z 2022-11-30T13:50:19Z "As reported here: https://github.com/WordPress/gutenberg/issues/46167 When an excerpt of a block containing a listing is output, the listing is removed. This seems to be caused by the fact that list items became blocks in WordPress 6.1." wildworks 59158 Altering Details block styles doubling .wp-block-details class in the output Formatting 6.3 normal normal Awaiting Review defect (bug) new 2023-08-21T12:32:34Z 2023-08-21T13:47:23Z "By defaut Details block styles outputs styles for inner paragraph like: {{{ .wp-block-details>:not(summary) { margin-block-end: 0; margin-block-start: var(--wp--style--block-gap); }}} ---- If I want to change margin-block-start on the block level styles I use: {{{ .wp-block-details>:not(summary) { margin-block-start: 0;} }}} BUT it outputs: {{{ .wp-block-details.wp-block-details>:not(summary) { margin-block-start: 0;} }}} ---- HOWEVER, If I use the same in the Additional CSS section of Styles Editor it produce expected: {{{ .wp-block-details>:not(summary) { margin-block-start: 0;} }}} " randewoo 60191 Ampersand in non-entities such as &a; is not escaped Formatting normal normal Awaiting Review defect (bug) new 2024-01-04T10:55:42Z 2024-02-27T11:53:02Z "Wordpress escapes ampersand as {{{&}}} in many places. It checks if the ampersand is part of any entity before conversion, as the ampersand in an entity shouldn't be escaped. However the regex also passes things such as {{{&a;}}} which is not an entity, and wrongly doesn't convert the ampersand there. To correct that it has to be checked if the pattern matched is really an entity. Which can be done by using something like html_entity_decode and the decode for an entity would be different from the original string. The block editor somehow right checks and prevents strings such as {{{&a;}}} to pass but older posts and something inserted by plugins will have this bug. " superpoincare 43810 Apostrophe issue Formatting 4.9.5 normal normal Awaiting Review defect (bug) new 2018-04-19T13:31:05Z 2022-02-18T21:17:15Z "Take a look. Instead of to have normal apostrophe, we have open and close if is between tags [[Image(https://i.imgur.com/c6QDmR5.png)]] [[Image(https://i.imgur.com/1F1zfWj.png)]]" colomet 1 41304 Bad protocol sanitization in KSES for URLs NOT RFC 3986 compliant Formatting 4.8 normal normal Awaiting Review defect (bug) new 2017-07-13T10:41:29Z 2017-07-13T14:10:32Z "For URL's that are passed through the kses sanitizer. As specified in RFC 3986, Section 3.3 The path component contains data, usually organized in hierarchical form, that, along with data in the non-hierarchical query component (Section 3.4), serves to identify a resource within the scope of the URI's scheme and naming authority (if any). The path is terminated by the first question mark (""?"") or number sign (""#"") character, or by the end of the URI. If a URI contains an authority component, then the path component must either be empty or begin with a slash (""/"") character. If a URI does not contain an authority component, then the path cannot begin with two slash characters (""//""). In addition, a URI reference (Section 4.1) may be a relative-path reference, in which case the first path segment cannot contain a colon ("":"") character. The ABNF requires five separate rules to disambiguate these cases, only one of which will match the path substring within a given URI reference. We use the generic term ""path component"" to describe the URI substring matched by the parser to one of these rules. So colon(':') is allowed inside URL's. When trying to split the URL like this: {{{#!php <?php function wp_kses_bad_protocol_once($string, $allowed_protocols, $count = 1 ) { $string2 = preg_split( '/:|�*58;|�*3a;/i', $string, 2 ); ... }}} for URL's that do not contain a specified scheme and use colon (':') inside the URL this breaks and returns only the second part of the URL after the colon. Eg: //t0.gstatic.com/images?q=tbn:ANd9GcSxT2q6fV-59s5hq5a03fpgsFYzVtL014iARzGRG7S_3CUjYpIGNlQx0ruGtVl5KCAEOxAtb_ZQ will return: ANd9GcSxT2q6fV-59s5hq5a03fpgsFYzVtL014iARzGRG7S_3CUjYpIGNlQx0ruGtVl5KCAEOxAtb_ZQ Also a “network-path reference” should be implied, in the current format you assume a scheme exists beforehand. Changing the split to: {{{#!php <?php ... $string2 = preg_split( '/(:\/\/)|�*58;|�*3a;/i', $string, 2 ); if ( isset($string2[1]) && ! preg_match('%/\?%', $string2[0]) ) { ... $string = $protocol . '//' . $string; } ... }}} fixes this issue and is more compliant without breaking sensitization. " bogdanpreda 1 39153 Bug in wp_html_split with unclosed PHP tag (or HTML tag <) Formatting 4.6.1 normal normal Awaiting Review defect (bug) new needs-unit-tests 2016-12-07T17:48:32Z 2018-03-02T08:27:32Z "The problem is in the ''shortcodes.php'' file, but exact problem is function ''wp_html_spli''t in ''formatting.php'' This bug is completely described in this question forum thread. https://wordpress.org/support/topic/bug-in-wp_html_split-with-unclosed-php-tag/ Consider following post code. {{{ Some amount of useless text <!--more--> [code-highlight line-numbers=""table"" linenostart=""53"" highlight-lines=""1,3,8"" style=""native"" lang=""html+php"" pyg-id=""1"" ] <?php //This callback registers our plug-in function wpse72394_register_tinymce_plugin($plugin_array) { $plugin_array['wpse72394_button'] = 'path/to/shortcode.js'; return $plugin_array; } //This callback adds our button to the toolbar function wpse72394_add_tinymce_button($buttons) { //Add the button ID to the $button array $buttons[] = ""wpse72394_button""; return $buttons; } ? [/code-highlight] Some amount of useless text <strong>checkstyle</strong> [code-highlight style=""native"" lang=""perl"" pyg-id=""2"" ] (?:s+)(?:(/*([^*]|[rn]|(*+([^*/]|[rn])))**+/)|(//(?!.*(CHECKSTYLE)).*)) [/code-highlight] }}} Here dump after this line {{{ $textarr = wp_html_split( $content ); var_dump($textarr); exit; }}} {{{ array(25) { [0]=> string(0) """" [1]=> string(3) ""<p>"" [2]=> string(28) ""Some amount of useless text "" [3]=> string(11) ""<!--more-->"" [4]=> string(0) """" [5]=> string(4) ""</p>"" [6]=> string(1) "" "" [7]=> string(3) ""<p>"" [8]=> string(121) ""[code-highlight line-numbers=""table"" linenostart=""53"" highlight-lines=""1,3,8"" style=""native"" lang=""html+php"" pyg-id=""1"" ]"" [9]=> string(6) ""<br />"" [10]=> string(1) "" "" [11]=> string(464) ""<?php //This callback registers our plug-in function wpse72394_register_tinymce_plugin($plugin_array) { $plugin_array['wpse72394_button'] = 'path/to/shortcode.js'; return $plugin_array; } //This callback adds our button to the toolbar function wpse72394_add_tinymce_button($buttons) { //Add the button ID to the $button array $buttons[] = ""wpse72394_button""; return $buttons; } ? [/code-highlight] Some amount of useless text <strong>"" [12]=> string(10) ""checkstyle"" [13]=> string(9) ""</strong>"" [14]=> string(0) """" [15]=> string(4) ""</p>"" [16]=> string(56) "" [code-highlight style=""native"" lang=""perl"" pyg-id=""2"" ]"" [17]=> string(6) ""<br />"" [18]=> string(72) "" (?:s+)(?:(/*([^*]|[rn]|(*+([^*/]|[rn])))**+/)|(//(?!.*(CHECKSTYLE)).*))"" [19]=> string(6) ""<br />"" [20]=> string(19) "" [/code-highlight] "" [21]=> string(3) ""<p>"" [22]=> string(15) ""Some Text Again"" [23]=> string(4) ""</p>"" [24]=> string(1) "" "" } }}} As you can see one shortcode was not splitted, and here the problem. If php closing tag is present (?>) than everything works fine. Problematic regex provider {{{#!php <?php function get_html_split_regex() { static $regex; if ( ! isset( $regex ) ) { $comments = '!' // Start of comment, after the <. . '(?:' // Unroll the loop: Consume everything until --> is found. . '-(?!->)' // Dash not followed by end of comment. . '[^\-]*+' // Consume non-dashes. . ')*+' // Loop possessively. . '(?:-->)?'; // End of comment. If not found, match all input. $cdata = '!\[CDATA\[' // Start of comment, after the <. . '[^\]]*+' // Consume non-]. . '(?:' // Unroll the loop: Consume everything until ]]> is found. . '](?!]>)' // One ] not followed by end of comment. . '[^\]]*+' // Consume non-]. . ')*+' // Loop possessively. . '(?:]]>)?'; // End of comment. If not found, match all input. $escaped = '(?=' // Is the element escaped? . '!--' . '|' . '!\[CDATA\[' . ')' . '(?(?=!-)' // If yes, which type? . $comments . '|' . $cdata . ')'; $regex = '/(' // Capture the entire match. . '<' // Find start of element. . '(?' // Conditional expression follows. . $escaped // Find end of escaped element. . '|' // ... else ... . '[^>]*>?' // Find end of normal element. . ')' . ')/'; } return $regex; } }}} Without any doubts this case should be included in regex. " crosp 2 48873 CSS Selectors in style tags containing greater than signs are escaped Formatting 5.3 normal normal Awaiting Review defect (bug) new 2019-12-04T09:25:20Z 2019-12-04T09:45:03Z "If you have unfiltered html disallowed, and you have in your content a style tag with a `>` selector, the selector will be escaped into `>` preventing the CSS from working. I've used the `wp_kses_allowed_html` filter to allow `style` tags in wp_kses. I also have this defined to disallow unfiltered html: {{{ define( 'DISALLOW_UNFILTERED_HTML', true ); }}} Sample content: {{{ <style> body > header { background: red; } </style> }}} Saving this with unfiltered html disallowed would result in: {{{ <style> body > header { background: red; } </style> }}} Since it's escaped, the CSS stops working. I don't think there's a way to allow allow `>` signs in `<style>` tags." bfintal 2 40552 Calling wp_parse_args() early, with $args as empty string, may cause fatal error Formatting normal normal Awaiting Review defect (bug) new dev-feedback 2017-04-24T15:41:28Z 2021-06-19T23:00:51Z "When running the unit test suite while working on #31245, I ran into an edge-case fatal error: {{{ Fatal error: Uncaught Error: Call to undefined function wp_parse_str() in /srv/www/wordpress-develop/public_html/src/wp-includes/functions.php on line 3487 Error: Call to undefined function wp_parse_str() in /srv/www/wordpress-develop/public_html/src/wp-includes/functions.php on line 3487 }}} Anytime between `functions.php` being loaded and `formatting.php` being loaded, calling `wp_parse_args()` with an empty string as the first parameter will trigger it, and I was doing this in the `wp_load_alloptions()` stack with my test code. It happens because `wp_parse_args()` calls `wp_parse_str()` when `$args` is an empty string, and because `formatting.php` is loaded well after `functions.php`, the above fatal happens. ---- It's not a bug in core today, but it could be a problem later. In my research, one place of relatively high risk is `register_setting()`. You'd need to pass an empty string as the third parameter, and it would need to be early in the stack, but it calls `wp_parse_args()` and is in `functions.php`. ---- One potential solution is to move `wp_parse_str()` out of `formatting.php` and into `functions.php`, alongside it's other `wp_parse_` siblings. Another would be to load `formatting.php` sooner." johnjamesjacoby 14 26842 Contenteditable, multiple spaces,  , and U+00A0 Formatting 4.7 normal normal Future Release defect (bug) new needs-unit-tests 2014-01-15T17:03:31Z 2020-09-04T18:52:17Z "In contenteditable mode when the user types multiple spaces (ASCII char 32, U+0020) they are preserved. The browsers insert ` ` as every other character, the string is `      ` etc. In WordPress TinyMCE is set to {{{ 'entities' => '38,amp,60,lt,62,gt', 'entity_encoding' => 'raw', }}} Anything other than the three basic ""htmlspecialchars"" `&`, `<` and `>` is outputted as UTF-8 when serializing the DOM. This outputs the (multiple) ` ` as U+00A0 which in PHP shows as `0xC2 0xA0`([http://en.wikipedia.org/wiki/Non-breaking_space reference]). A problem with `0xC2 0xA0` is that in PHP the regex `\s` matches `0xA0` in certain cases, fails to match the ""white space"", breaks the UTF char, and sometimes leaves an `Â` behind. One example is wptexturize(), see #22692. Another problem is that the user is not aware there are multiple ` ` when looking in the Text editor or the html source, as U+00A0 are ""invisible""." azaozz 1 56709 Encountered a problem that no one has ever met Please help me Formatting normal normal Awaiting Review defect (bug) new dev-feedback 2022-10-01T11:21:46Z 2023-08-08T16:11:55Z "As usual, I used the element to update the page. After clicking the update button, I clicked the update button for a few more times, and this problem occurred. The contents of my page were all gone, leaving only one line of errors, (`Warning: count(): Parameter must be an array or an object that implements Countable in/www/wwwroot/www.xxxx.com/wp-includes/formatting.php on line 3415`)And the same is true for publishing new pages. Please help me, thank you! I used to update the page several times every month. It used to be normal, but the problem didn't appear until today " qq2094629698 1 57381 Filter wptexturize brokes tailwindcss brackets Formatting normal normal Awaiting Review defect (bug) new reporter-feedback 2022-12-23T12:36:11Z 2023-11-22T15:40:08Z "Hi there. I am developing WordPress Theme with TailwindCss frontend and gutenberg blocks. My gutenberg block HTML was partially broken by `wptexturize` filter of `the_content` function. Affected code: {{{ <div class=""swiper [&>.swiper-pagination]:static"">...</div> }}} Result: {{{ <div class=""swiper [&>.swiper-pagination]:static»>...</div> }}} TailwindCss docs: https://tailwindcss.com/docs/hover-focus-and-other-states#using-arbitrary-variants My current solution is remove this filter before calling the_content for my gutenberg page template: {{{ <?php $content = get_post_field( 'post_content', get_the_ID() ); remove_filter('the_content', 'wptexturize'); the_content(); ?> }}}" ArtZ91 43155 Formatting bug with ampasands - WooCommerce Layered Nav Formatting 4.7.5 normal normal Awaiting Review defect (bug) new 2018-01-24T14:39:12Z 2018-01-24T14:39:12Z "I found a problem with the WooCommerce layered nav plugin caused by WordPress itself. When you have products shown filtered by an attribute (for example - red) and then click the number of products to show (such as 45) upon page load the ampasand (&) changes to the HTML entity instead. I commented out a few lines on wp-includes/formatting (example - line 238 - $curl = preg_replace( '/&(?!#(?:\d+|x[a-f0-9]+);|[a-z1-4]{1,8};)/i', '&', $curl );) which now stops this happening. Please have a look as I know this will be overwritten when WordPress is next updated. Best Regards, Jim." jimleeder 2 40045 "HTML code entered using ""Text"" mode gets garbled" Formatting 4.7.2 normal normal Awaiting Review defect (bug) new 2017-03-06T14:44:10Z 2017-03-06T14:44:10Z "Entered this: {{{ <area shape=""poly"" coords=""77,57,276"" data-content=""<a href=//google.com>link</a> some other content. Be careful with using the right quotes here!"" title=""Some title""> }}} converted to this: {{{ <area shape=""poly"" coords=""77,57,276"" data-content=""<a href=//google.com>link</a> some other content. Be careful with using the right quotes here!” title=”Some title”></p> }}} Is it really so difficult to leave the content of the ""Text"" mode as it is? Just to remind you, that W3C says ""attributes on HTML elements may have any string value"". " s0what 11 2691 HTML comments in posts aren't handled properly. adamsilverstein* Formatting 2.8.5 normal normal Future Release defect (bug) accepted needs-unit-tests 2006-04-25T03:16:37Z 2024-03-20T15:39:49Z "When an HTML comment is added in a post, autop adds paragraph ( <p> ) tags around the comment and for multi-line comments line breaks ( <br /> ) are added after every line. This should not happen in HTML comments. This ticket is similar to #712 which was closed with wontfix. I would like to know why this isn't seen as an issue? It prevents the addition of RDF and other metadata, not to mention just plain old HTML comments in posts." gord 49217 HTML error with the multi-level list in Classic Editor Formatting 5.3.2 normal normal Awaiting Review defect (bug) new 2020-01-17T12:25:49Z 2020-01-17T13:11:12Z "I have recently created a multi-level list which is throwing HTML validation error: No p element in scope but a p end tag seen. This error appears when there is some text between the multi-level list as shown here: Please create a blog post and past these lines there and validate html. {{{ <h3>DEMO 1:</h3> <ol> <li>Item 1</li> <li>item 2 This text is the cause of generating the HTML error in ol. <ul> <li>test of list 1</li> </ul> </li> </ol> }}}" yasglobal 52463 Inline SVG - foreignObject support Formatting 5.6.1 normal normal Awaiting Review defect (bug) new dev-feedback 2021-02-07T11:06:11Z 2021-02-09T21:20:15Z "WordPress 5.6.1 mangles SVGs which use the [Foreign Object element](https://developer.mozilla.org/en-US/docs/Web/SVG/Element/foreignObject). Consider this minimum viable example: {{{ <svg xmlns=""http://www.w3.org/2000/svg"" xmlns:xlink=""http://www.w3.org/1999/xlink""> <foreignObject> <blockquote xmlns=""http://www.w3.org/1999/xhtml""> Hello </blockquote> </foreignObject> </svg> }}} WordPress adds in some `</p>` which malforms the image: {{{ <p> <svg xmlns=""http://www.w3.org/2000/svg"" xmlns:xlink=""http://www.w3.org/1999/xlink""> <foreignObject></p> <blockquote xmlns=""http://www.w3.org/1999/xhtml""><p> Hello </p></blockquote> <p></foreignObject> </svg></p> }}} This occurs when pasting the raw SVG into the classic editor." edent 5 27350 Invalid HTML Output Formatting 3.8 normal normal Future Release defect (bug) assigned has-patch 2014-03-11T08:19:48Z 2021-03-17T17:15:29Z "Paste into editor's Text tab: {{{ <div>hello <pre>test</pre> world</div> }}} Preview output: {{{ <div>hello</p> <pre>test</pre> <p>world</p></div> }}} Seen in 3.8 and in trunk. Doesn't seem to be an editor bug because switching tabs will improve the output. Something wrong with wpautop()? " miqrogroove 1 47973 Invalid HTML output from image_caption + wpautop combination Formatting normal normal Awaiting Review defect (bug) new 2019-09-04T16:24:04Z 2020-07-11T17:55:50Z "Hello, We are using WordPress on our site https://www.bonus.ca, and the HTML output on the page contains extra </p> tags. I have traced the problem into wpautop() function, which leaves these extra </p> tags on. An example: Caption shortcode like this: {{{ [caption id=""attachment_4413"" align=""alignnone"" width=""800""]<img class=""size-full wp-image-4413"" src=""/images/online-gambling-bonuses.jpg"" alt=""top Online Gambling Bonuses"" width=""800"" height=""394"" /> Internet has changed the way we gamble. Live dealer casinos are a new way to enjoy the thrills of Roulette and Blackjack from the comfort of your own home, even on your phone. Visit <a href=""/leovegas"">LeoVegas</a> for the best <a href=""/casino/live"">live casino experience</a>. You can also get a rare live casino bonus at LeoVegas.[/caption] }}} After shortcode filter has run on the block, the result is: {{{ <div id=""attachment_4413"" style=""width: 810px"" class=""wp-caption alignnone""><img aria-describedby=""caption-attachment-4413"" class=""size-full wp-image-4413"" src=""/images/online-gambling-bonuses.jpg"" alt=""top Online Gambling Bonuses"" width=""800"" height=""394"" /><p id=""caption-attachment-4413"" class=""wp-caption-text"">Internet has changed the way we gamble. Live dealer casinos are a new way to enjoy the thrills of Roulette and Blackjack from the comfort of your own home, even on your phone. Visit <a href=""/leovegas"">LeoVegas</a> for the best <a href=""/casino/live"">live casino experience</a>. You can also get a rare live casino bonus at LeoVegas.</p></div> }}} After running wpautop filter, the output is: {{{ <div id=""attachment_4413"" style=""width: 810px"" class=""wp-caption alignnone""><img aria-describedby=""caption-attachment-4413"" class=""size-full wp-image-4413"" src=""/images/online-gambling-bonuses.jpg"" alt=""top Online Gambling Bonuses"" width=""800"" height=""394"" /></p> <p id=""caption-attachment-4413"" class=""wp-caption-text"">Internet has changed the way we gamble. Live dealer casinos are a new way to enjoy the thrills of Roulette and Blackjack from the comfort of your own home, even on your phone. Visit <a href=""/leovegas"">LeoVegas</a> for the best <a href=""/casino/live"">live casino experience</a>. You can also get a rare live casino bonus at LeoVegas.</p> }}} Here, there is an extra </p> tag after the <img> tag. The following part of wpautop() function is supposed to remove the closing tag, but it fails: {{{#!php <?php // If an opening or closing block element tag is followed by a closing <p> tag, remove it. $pee = preg_replace( '!(</?' . $allblocks . '[^>]*>)\s*</p>!', '$1', $pee ); }}} The code doesn't remove the extra </p> because the regex only matches to defined block level tags, and in this case, the previous tag is an <img /> tag. In general, I think the approach to use regex to modify a HTML document is an invalid one. One could generate proper regular expressions to properly match everything in HTML language, but the regular expressions will be huge. The proper way to do this would be to somehow generate a DOM from the source code, and do the adjustments on that. Or then it might be that the way WP is mixing HTML and plain text is simply impossible to implement correctly..." terokilkanen 60243 KSES: Allow encoded images Formatting normal normal Awaiting Review defect (bug) new 2024-01-12T15:05:18Z 2024-01-12T15:05:18Z "According to [https://www.rfc-editor.org/rfc/rfc2397 RFC 2397], it is possible to include directly some small media instead of using an external source. For example: {{{ <img src=""data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAMAAABBPP0LAAAAh1BMVEXpTFTwNj7rHiTz8/Pv7u7XAgLuKTP4o6f0l5n9/f327e36+vv39/fnaGvtbnPIAAD1jpPwgIPoe4H19fXhPUDwdXfy0NHtY2XoXmLowcLsvr/fREu+AADwiIzy8vLeLzT1mp/qWFjcJSrgUVeyAADs4+PYGx7kBgjprazr6+umAADPz8/ExMQoJmQzAAAAiElEQVR4ASWJRULDUBCGv5l4gm9wVtj9jwNt37LuEveM/Cq0K/TTs7hDMBT9u4EkqNunq2u1AZtrpJ35/Wtpq9M6jev4XGevUQqiH/uyfLDj4JjGH6UtyoyA9Wpmbp+wAf3ybZEg/v1V84WVoFyngbd7KcvWGxtXwVoBxvDPyzlFHAjfAAEqoAEThSiV/9sl/gAAAABJRU5ErkJggg=="" alt="""" width=""16"" height=""11"" style=""width: 16px;height: 11px""> }}} When passing this small piece of html through `wp_kses_post()`, the `data:` part is stripped out like this: {{{ <img src=""image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAALCAMAAABBPP0LAAAAh1BMVEXpTFTwNj7rHiTz8/Pv7u7XAgLuKTP4o6f0l5n9/f327e36+vv39/fnaGvtbnPIAAD1jpPwgIPoe4H19fXhPUDwdXfy0NHtY2XoXmLowcLsvr/fREu+AADwiIzy8vLeLzT1mp/qWFjcJSrgUVeyAADs4+PYGx7kBgjprazr6+umAADPz8/ExMQoJmQzAAAAiElEQVR4ASWJRULDUBCGv5l4gm9wVtj9jwNt37LuEveM/Cq0K/TTs7hDMBT9u4EkqNunq2u1AZtrpJ35/Wtpq9M6jev4XGevUQqiH/uyfLDj4JjGH6UtyoyA9Wpmbp+wAf3ybZEg/v1V84WVoFyngbd7KcvWGxtXwVoBxvDPyzlFHAjfAAEqoAEThSiV/9sl/gAAAABJRU5ErkJggg=="" alt="""" width=""16"" height=""11"" style=""width: 16px;height: 11px""> }}} This is resulting in a 404 error for the image source. NB: #25851 also refers to encoded images but the reported issue is more about large contents and not this specific issue." Chouby 1 59056 LOST Formatting/Settings when Live Site is copied to Staging or Cloned Formatting 6.3 normal normal Awaiting Review defect (bug) new 2023-08-10T17:06:13Z 2023-08-21T18:38:46Z "== Bug Report === Description **LOST Formatting/Settings when copied to Staging**. PDF with images attached. I originally saw this at the end of RC3, but now see that it is in 6.3 Production also. WordPress 6.2.2 works normally. Details Below: -------------------------- Everything looks fine in the LIVE site, but as soon as it is copied to STAGING (SiteGround) and then accessed, you can see that the Menu has lost it's formatting. Also the Cover Block has lost it's formatting/settings. I saw it orignally on a site I am developing, but then tested issue with bare bone site (WP 6.3, Theme 2023, No Plugins, just install & copy to staging). It is same results in Firefox & Google Chrome. Also, I just experienced the same results using WPEngine's LOCAL (Latest Version 7.1.2+6410). I create a Vanilla Site (WP 6.3, Theme 2023), then I Clone the site ... and formatting has been LOST! === Environment - WordPress: 6.3 - PHP: 7.4.33 - Server: Apache - Database: mysqli (Server: 5.7.39-42-log / Client: mysqlnd 7.4.33) - Browser: Firefox 116.0 (Windows 10/11) - Theme: Twenty Twenty-Three 1.2 - MU-Plugins: None activated - Plugins: * SiteGround Optimizer 7.3.4 * SiteGround Security 1.4.5 * WordPress Beta Tester 3.5.2 === Steps to Reproduce 1. Create bare minimum 6.3 site 2. Install NO Plugins 3. View Site (Everything is Good So Far) 4. Copy Site to Staging -or- Clone Site in LOCAL Environment 5. View Site (Formatting/Settings have been LOST) x. 🐞 Bug occurs. === Expected Results 1. ✅ Both LIVE & STAGING Sites should be the SAME. === Actual Results 1. ❌ Staged or Cloned Site has LOST Formatting/Settings." lhe2012 1 38044 Make seems_utf8() RFC 3629 compliant. Formatting 1.2.1 normal normal Future Release defect (bug) new 2016-09-13T21:07:56Z 2019-04-09T21:41:24Z `seems_utf8()` should be made [https://www.ietf.org/rfc/rfc3629.txt RFC 3629] compliant. Currently it accepts overlong sequences and surrogates, which will cause PHP functions expecting valid UTF-8 strings to fail. gitlost 3 40191 Multiline post content with `<` as first character becomes malformed Formatting normal normal Awaiting Review defect (bug) new 2017-03-17T18:44:07Z 2018-03-02T07:58:24Z "Create a page/post with the following content: {{{ < Hello < Hello < Hello }}} View the post, and `post_content` becomes: {{{ < Hello < Hello < Hello }}}" johnjamesjacoby 7 34722 Open P Tag in shortcode related to h tag Formatting 4.4 normal normal Awaiting Review defect (bug) new dev-feedback 2015-11-18T07:32:04Z 2017-07-20T07:25:55Z "Hi Wordpress core Team There is a bug in wordpress. When you add a simple text in the editor like this {{{ <h3>Integer in ex vel urna tempor ultrices.</h3> Morbi vehicula a orci nec dignissim. }}} In the front of the website and in the page source code this text is changed by wordpress to this and there are no issues or open or extra p-tags. {{{ <h3><p>Integer in ex vel urna tempor ultrices.</h3> <p>Morbi vehicula a orci nec dignissim.</p> }}} [[Image(http://i.imgur.com/9TCF7gi.png)]] However this does not happen in a shortcode F.e. if you create a simple shortcode to add a div with a class around your text. The result is open and or extra p-tags and break tags, {{{#!php <?php function theme_shortcode_div($atts, $content = null, $code) { $content = $content; return '<div class=""theme-div"">' . $content .'</div>'; } add_shortcode('theme_div', 'theme_shortcode_div'); }}} And add the text within a sshortcode {{{ [theme_div]<h3>Integer in ex vel urna tempor ultrices.</h3> Morbi vehicula a orci nec dignissim. [/theme_div] }}} The same text is rendered like this. {{{ <div class=""theme-div""><br /> <h3>Integer in ex vel urna tempor ultrices.</h3> <p> Morbi vehicula a orci nec dignissim. </div> }}} The p tag is never closed and before the h-tag there is suddenly a break tag. I tested this in any of the default themes and i dont know how many commercial themes and all with same results. The p tag is left open and there is a extra break tag. [[Image(http://i.imgur.com/52p291S.png)]] It can even gets worse if you add it like this and embed your text in a p-tag. {{{ [theme_div]<h3><p>Integer in ex vel urna tempor ultrices.</h3> Morbi vehicula a orci nec dignissim.</p> [/theme_div] }}} Now the end result is this {{{ <div class=""theme-div""><br /> <h3> <p>Integer in ex vel urna tempor ultrices.</h3> <p> Morbi vehicula a orci nec dignissim.</p> <p> </div> }}} There is suddenly a extra br tag before the h-tag a extra p tag suddenly in the h-tag and a extra p tag at the end of the div. [[Image(http://i.imgur.com/J3597aM.png)]] Note: All code has been added in text mode of the editor. The text was added as shown. H-tag and normal text without any break tag all on one line Note: used theme in my images twenty sixteen. Note: Shortcode added to the functions.php exactly as shown above. Note: You can only see the p-tags missing in the source of the page. If you inspect the page in firebug or chrome it shows the closing p-tags as that is what browsers do. They try to close the p-tags by default even if it is missing. [[Image(http://i.imgur.com/aTwn2Wg.png)]] Please resolve as this is a really annoying bug. " BackuPs 2 58357 Optimize function wp_replace_in_html_tags() - Blank foreach loop, count in loop Formatting 6.2.1 normal normal Awaiting Review defect (bug) new has-patch 2023-05-19T14:10:13Z 2023-06-13T07:03:48Z "Blank foreach loop found in formatting.php file https://github.com/WordPress/wordpress-develop/blob/trunk/src/wp-includes/formatting.php#L761 " mayur8991 50197 PHP 7.4 Compatibility with WP 5.4.1 – problem with seems_utf8() Formatting 5.4.1 normal normal Awaiting Review defect (bug) new close 2020-05-17T18:42:09Z 2022-07-29T13:13:06Z "Since I updated to PHP 7.4 I with the newest WordPress version 5.4.1 I am getting error notices when seems_utf8() from formatting.php is called with an integer as parameter. (This seems to happen when something around Buddypress (v 5.2) leads to calling this function and passes some integer id. I have not found the origin of this yet). PHP 7.3 still seems to accept that and will still interpret $str[ $i ] in line 904. From 7.4 this will lead to an error notice “Trying to access array offset on value of type int …”. In addition, after the error notice all special characters on the page rendered are not displayed correctly anymore. Can you please prevent this from happening? A line in the beginning of the function like $str = (string) $str; can fix this error notice. Maybe there is a more elegant way to prevent this, but I right now I don’t find it … Best regards Florian" fohly 2 53160 PHP 7.4 map_deep compatibility issue Formatting normal normal Awaiting Review defect (bug) new 2021-05-05T12:34:50Z 2021-05-05T19:24:58Z "[https://www.php.net/manual/en/migration74.incompatible.php#migration74.incompatible.spl PHP 7.4 Backward Incompatible Changes] mention the following change of behavior. > Calling get_object_vars() on an ArrayObject instance will now always return the properties of the ArrayObject itself (or a subclass). Previously it returned the values of the wrapped array/object unless the ArrayObject::STD_PROP_LIST flag was specified. Code that depend on `map_deep` and pass instances of ArrayObject to this function doesn't work the same way when running it with PHP 7.4. We detected this while migrating code from PHP 7.3 to 7.4: See the following simple example: https://3v4l.org/g3Xkj" xknown 2 59275 PHP 8.1 Deprecated function: rtrim(): Passing null to parameter Formatting 6.2.2 normal normal Awaiting Review defect (bug) assigned 2023-09-04T06:09:51Z 2023-09-04T06:11:47Z "Deprecated - rtrim(): Passing null to parameter #1 ($string) of type string is deprecated used in wp-includes/formatting.php:2809 rtrim() wp-includes/formatting.php:2809 untrailingslashit() wp-includes/formatting.php:2794 trailingslashit() wp-content/mu-plugins/http-concat/concat-utils.php:27 WPCOM_Concat_Utils::realpath() wp-content/mu-plugins/http-concat/cssconcat.php:84 WPcom_CSS_Concat->do_items() wp-includes/functions.wp-styles.php:68 wp_print_styles() wp-includes/class-wp-hook.php:308 do_action('wp_head') wp-includes/general-template.php:3049 wp_head() wp-includes/template-canvas.php:17 MU Plugin: http-concat" srishtis 2 58406 Post/Page Content Renders Empty Formatting 6.2.2 normal normal Awaiting Review defect (bug) new 2023-05-25T12:29:50Z 2023-09-26T13:12:04Z "- using php version 7.3.19, wp version 6.2.2 - function convert_smilies in formatting.php file - when adding texts longer than 1,001,318 preg_split fails and content renders empty - warning shown: Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/html/wp-includes/formatting.php on line 3444 Notice: Trying to access array offset on value of type bool in /var/www/html/wp-includes/formatting.php on line 3451 " svgator 1 55949 Prevent trailingslashit from removing backslash for valid filenames on linux systems Formatting 6.0 normal normal Awaiting Review defect (bug) assigned has-patch 2022-06-08T12:09:44Z 2022-06-08T12:10:14Z "On *nix systems, a file or folder name can contain a backslash like document.pdf\ or folder-name\. trailingslashit() as it is currently removes the backslash and breaks the original name of such a file. **This PR fixes this issue and keeps the backslash character on *nix systems.** **On Windows systems this PR will not change anything!** Yes, this is an edge case and will not happen often but we experienced this issue on a real case on one of our clients who had a folder name with a backlash at the end. trailingslashit() broke this folder name and we had to create our own version of trailingslashit() to get around this problem. I don't like much the extra complexity that my solution adds to a function that exists for more than 8 years in its current form. So if you have a better idea or opinin, let's discuss this. GitHub https://github.com/WordPress/wordpress-develop/pull/2796 " ReneHermi 39190 RSS feed not valid: U+001A or 0x1a Formatting normal normal Awaiting Review defect (bug) new 2016-12-08T21:23:40Z 2019-01-04T09:45:50Z "I am not sure how is it possible, but one of our users copy/paste text from another website into TinyMCE and content is now filled with strange non-visible Unicode characters `U+001A` / `0x1a` (`001a` in JSON response). It is not visible in TinyMCE or frontend, but it is saved in database and also RSS feed is considered as invalid (displayed without problem in browser, but characters are there). RSS feed is processed by other custom scripts and we are receiving following messages (different validators): `PCDATA invalid Char value 26` `Input is not proper UTF-8, indicate encoding! Bytes: 0x1A` I can replace those characters and add a check before saving content into database, but it should not be possible for users to break their feeds by copying content into TinyMCE?" pavelevap 6 41711 Remove hAtom from core Formatting normal normal Awaiting Review defect (bug) new dev-feedback 2017-08-23T08:11:50Z 2017-08-29T17:22:23Z "We output hAtom in core and well, it's just not really needed anymore, so I'd like to get rid of it. Here, amongst other places: https://core.trac.wordpress.org/browser/tags/4.8.1/src/wp-includes/post-template.php?marks=505,506#L496" joostdevalk 50461 Sanitation breaking scripts in custom HTML block Formatting 5.4.2 normal normal Awaiting Review defect (bug) new 2020-06-23T23:32:48Z 2021-04-20T06:07:56Z "In certain scenarios, some sort of (most likely regex-based) sanitization in core WordPress converts `&&` elements into `&&` even when placed within a custom HTML block and using a user with unfiltered_html capabilities. Here is a sample page content you can use to see the issue: {{{ <!-- wp:html --> <script> This should work: && This doesn't: <= && > && After the ""tag"" is closed it works again </script> <!-- /wp:html --> <!-- wp:html --> <script> // Sample script that could be mangled. var foo = 1 <= 2; if ( foo && true ) { alert('worked'); } </script> <!-- /wp:html --> }}} On the frontend, this will be output as: {{{ <script> This should work: && This doesn't: <= && > && After the ""tag"" is closed it works again </script> <script> // Sample script that could be mangled. var foo = 1 <= 2; if ( foo && true ) { alert('worked'); } </script> }}} The reason I believe this is a regex issue is because only `&&` characters after `<=` characters get converted to entities, and after a `>` character the conversion stops and `&&` are output as normal. My theory is it's some sort of regex-based sanitization for html attributes, but I haven't been able to track down which one specifically." claudiulodro 2 52517 Shortcodes inside AMP tags do not work Formatting 4.7 normal normal Awaiting Review defect (bug) new has-patch 2021-02-13T14:39:20Z 2023-06-02T12:10:51Z "Example code to demonstrate shortcode not working inside AMP tag: {{{ add_shortcode ( 'test', '__return_false' ); echo do_shortcode('<amp-ad width=320 height=100 [test]>'); }}} displays {{{ <amp-ad width=320 height=100 [test]> }}} Example code to demonstrate shortcode working inside regular tag: {{{ add_shortcode ( 'test', '__return_false' ); echo do_shortcode('<img width=320 height=100 [test]>');exit; }}} displays {{{ <img width=320 height=100 > }}} The reason is wp_kses_attr_parse function not supporting tags with hyphens. All AMP tags contain hyphen, e.g. ""amp-ad"": https://amp.dev/documentation/guides-and-tutorials/learn/spec/amphtml/?format=websites#html-tags {{{ var_dump(wp_kses_attr_parse( '<amp-ad width=320 height=100>' )) }}} displays {{{ bool(false) }}} instead of {{{ array(4) { [0]=> string(7) ""<amp-ad "" [1]=> string(10) ""width=320 "" [2]=> string(10) ""height=100"" [3]=> string(1) "">"" } }}} The fix is to change function wp_kses_attr_parse( $element ) in wp-includes/kses.php from: {{{ $valid = preg_match( '%^(<\s*)(/\s*)?([a-zA-Z0-9]+\s*)([^>]*)(>?)$%', $element, $matches ); }}} to {{{ $valid = preg_match( '%^(<\s*)(/\s*)?([a-zA-Z0-9\-]+\s*)([^>]*)(>?)$%', $element, $matches ); }}} " Krstarica 51353 Smart Quote Bug Formatting 5.5.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-09-18T22:20:57Z 2020-09-18T23:21:36Z "Hi there, There is a bug when you type a word between quotes """" at the end of a line, when nothing is followed after the last quote, it will be only be one directional way like that : « « It seems to work correctly only if the quotes are followed by a space and a character. eg: ""Hello"" world will return « Hello » world ""Hello world"" will return « Hello world« Thanks to take time to look at it." xanathos 1 55563 The function get_allowed_mime_types should check wp_get_current_user Formatting 5.9.3 normal normal Awaiting Review defect (bug) new dev-feedback 2022-04-12T10:19:16Z 2022-04-12T18:53:52Z "The function get_allowed_mime_types checks if the function current_user_can before using it, as you can see at https://developer.wordpress.org/reference/functions/get_allowed_mime_types/. The function current_user_can calls wp_get_current_user, as you can see at https://developer.wordpress.org/reference/functions/current_user_can/ If the function get_allowed_mime_types is called when wp_get_current_user doesn't exist yet, it triggers a fatal error. I think get_allowed_mime_types should check also if wp_get_current_user exist. I would write something like this: {{{#!php <?php function get_allowed_mime_types( $user = null ) { $t = wp_get_mime_types(); unset( $t['swf'], $t['exe'] ); if ( function_exists( 'current_user_can' ) && function_exists( 'wp_get_current_user' ) ) { $unfiltered = $user ? user_can( $user, 'unfiltered_html' ) : current_user_can( 'unfiltered_html' ); } if ( empty( $unfiltered ) ) { unset( $t['htm|html'], $t['js'] ); } /** * Filters list of allowed mime types and file extensions. * * @since 2.0.0 * * @param array $t Mime types keyed by the file extension regex corresponding to those types. * @param int|WP_User|null $user User ID, User object or null if not provided (indicates current user). */ return apply_filters( 'upload_mimes', $t, $user ); } }}} The function wp_get_current_user is defined in wp-includes/plugguble.php, so after all, plugins are loaded. This means that if you call sanitize_file_name inside a nu-plugin, or before the action 'plugin_loaded', you have the fatal error." giuse 46846 Tight comparisons and use of Yoda conditions are not consistent Formatting normal normal Awaiting Review defect (bug) new dev-feedback 2019-04-09T11:30:29Z 2019-04-09T11:30:29Z In `wp-includes/formatting.php`, as I have seen comparisons and use of Yoda conditions are not consistent through out the file. I have made some changes and uploading a proposed patch here. Let me know if this helps! subrataemfluence 1 6297 Unbalanced tags across more and nextpage tags Formatting 2.5 normal normal Future Release defect (bug) reopened 2008-03-19T09:55:50Z 2019-03-15T00:40:50Z "It's easy to produce broken front page markup by including a --nextpage-- tag that breaks an enclosing bold or italic tag. There's some code in get_the_content that fixes this for --more-- tags, but it doesn't handle --nextpage--, and it'd be more efficient to do it at post save time. The enclosed patch fixes this by splitting the content into slices at those boundaries and separately balancing each slice. Balancing happens in the content_save_pre action. No filtering is needed on the output side for posts saved after this filter. It was a bit of a struggle figuring out where to fit this but I think the solution is fairly clean. It includes a new split_nextpage() function that can be used instead of ad-hoc regexps for splitting a post into pages. " tellyworth 30495 Unicode character U+000B is not removed by sanitize_file_name Formatting 4.0.1 normal normal Awaiting Review defect (bug) new has-patch 2014-11-25T11:37:08Z 2018-08-27T15:59:22Z "It seems that the following expression is true: {{{ json_encode(sanitize_file_name(json_decode('""\u000B""'))) == ""\u000b"" }}} On Google App Engine, for example, a file name with a U+000B character cannot be saved. Since the description of the function states: Removes special characters that are illegal in filenames on certain operating systems and special characters requiring special escaping to manipulate at the command line. ... then I think this is a bug. Thanks!" Craxic 1 42058 Unit test for _autop_newline_preservation_helper() Formatting 4.9 normal normal Awaiting Review defect (bug) new dev-feedback 2017-10-01T18:49:35Z 2017-12-11T17:29:20Z just a unit test pbearne 2 59691 WordPress doesn't sanitize character ʼ (unicode U+02BC) when converting post title to slug Formatting 1.0 normal normal Awaiting Review defect (bug) new has-patch 2023-10-20T07:13:47Z 2023-10-20T13:44:46Z "WordPress doesn't sanitize character `ʼ` (unicode U+02BC) when converting post title to slug **How to reproduce:** 1. Create a post with title ""Phʼnglui mglwʼnafh Cthulhu Rʼlyeh wgahʼnagl fhtagn"" 2. Publish the post 3. The post gets slug ""phʼnglui-mglwʼnafh-cthulhu-rʼlyeh-wgahʼnagl-fhtagn"" instead of ""phnglui-mglwnafh-cthulhu-rlyeh-wgahnagl-fhtagn""" ivanzhuck 39188 Wrapping paragraph tags around 'Read More' link stripped out of custom post type Formatting 4.7 normal normal Awaiting Review defect (bug) new 2016-12-08T19:42:53Z 2019-03-15T02:08:28Z "My Genesis child-theme modifies the 'Read More' link in posts and custom post types by stripping out the 3 dots (hellipsis) after the link text, changing the text string, and adding styling attributes. The anchor link is wrapped in a set of p-tags. When I updated WordPress Core in my local development environment from version 4.6.1 to 4.7, the wrapping p-tags were stripped out, and the anchor tag wrapping the 'Read More' link slid up into the preceding paragraph of text. The padding added to the paragraph tags wrapping the link disappeared, and the link styling became in-line to the preceding paragraph text (not what I wanted). I was able to install a fresh copy of my local dev site and then reran the WP Core update, reproducing the problem. I'm not sure why the wrapping paragraph tags are getting stripped out. For now, I can work around the problem by running WP v4.6.1, which is not an optimal, long-term solution. To see an example of how the 'Read More' links are supposed to appear, visit [http://alb.spiralwebdb.com] and view the custom posts on the front page under 'Practice Areas'. A screenshot of the displaced 'Read More' links is attached as a PNG file." yogaman5020 50863 [playlist] + text = </p> error Formatting 5.4.2 normal normal Awaiting Review defect (bug) new needs-unit-tests 2020-08-06T02:49:55Z 2020-08-06T13:41:14Z "There is a bug that is very simple to reproduce - if you create a [playlist] and then add some text, such as [playlist ids=""1,2,3""] Hey everyone, check out my new songs! it will produce an html parsing error where </p> element is closed, but never opened. Thank you" hvar 53023 _wp_json_convert_string type mismatch: returns string on success; false on failure Formatting 4.1.4 normal normal Awaiting Review defect (bug) new 2021-04-12T21:07:07Z 2021-04-12T21:07:07Z "The private function `_wp_json_convert_string` (which converts a string to UTF-8) also returns `false`, though its `@return` specifies only `string`. How? [https://www.php.net/manual/en/function.mb-convert-encoding.php `mb_convert_encoding`] returns a `string` on success and a `false` on failure. Is this a bug or docs fix? It's both. Reviewing its context, it's used by `_wp_json_sanity_check` to convert IDs and data value. The IDs are the problem. How so? Each ID is used as either a key or project for referencing the data value. What happens if the conversion to UTF-8 fails? The key or property would either be an empty string or `false`. That's problematic as it can cause unexpected JSON encoding results. For example, this [https://3v4l.org/n4qT6 3v4l snippet] simulates the convert encoding failure to view the results through the JSON encoding process. Notice how the returned JSON is invalid when it fails. (Note: This snippet is forcing a failure.)" hellofromTonya 1 55821 `is_email()` does not follow PHP FILTER_VALIDATE_EMAIL rules, when an email has double period (..) Formatting 5.9.3 normal normal Awaiting Review defect (bug) new has-patch 2022-05-25T10:44:30Z 2023-06-17T09:00:31Z "If there has a typo in an email address like there has double period .. in an email address ( abc..def@xyz.com ). `is_email()` function return valid email when we have use like - {{{ is_email( 'abc..def@xyz.com' ) }}} Where it should not return as valid email address. Which is working with PHP `FILTER_VALIDATE_EMAIL` checking. When we are checking the same kind of email with below code it return `boolean false`. {{{ filter_var( 'abc..def@xyz.com', FILTER_VALIDATE_EMAIL ) }}} Expected behaviour should be like this. When use `is_email()` function it should respect like what PHP does. " khokansardar 1 55452 `safecss_filter_attr` removes background-images with URL parameters Formatting normal normal Future Release defect (bug) new 2022-03-23T21:41:18Z 2022-04-20T20:22:16Z "If you try to add a background-image using an inline style, and the URL has query parameters (specifically, an `&`), the background-image will be stripped from the content. What seems to be happening: the `&` is encoded, and becomes `&`, and when `safecss_filter_attr` splits the `$css` into separate declarations, it does so just by [https://github.com/WordPress/wordpress-develop/blob/ee96cedcb891c6a6e5b7b30a6f1c247345161b88/src/wp-includes/kses.php#L2242 breaking on a semicolon], which breaks the URL value. For example, `background-image:url(https://fake.test/image.png?a=1&b=2);` becomes `background-image:url(https://fake.test/image.png?a=1&` and `b=2)`, and neither are valid CSS. **To reproduce:** Try adding this Media & Text block, which uses this image: [https://img.rawpixel.com/s3fs-private/rawpixel_images/website_content/a005-scottw-465.jpg?w=1200&h=1200&fit=clip&crop=default&dpr=1&q=75&vib=3&con=3&usm=15&cs=srgb&bg=F4F4F3&ixlib=js-2.2.1&s=06d4e5a9962096a6010029591ae36198 https://img.rawpixel.com/s3fs-private/rawpixel_images/website_content/a005-scottw-465.jpg?w=1200&h=1200…] {{{ <!-- wp:media-text {""mediaId"":null,""mediaType"":""image"",""imageFill"":true,""focalPoint"":{""x"":""0.75"",""y"":""0.72""}} --> <div class=""wp-block-media-text alignwide is-stacked-on-mobile is-image-fill""><figure class=""wp-block-media-text__media"" style=""background-image:url(https://img.rawpixel.com/s3fs-private/rawpixel_images/website_content/a005-scottw-465.jpg?w=1200&h=1200&fit=clip&crop=default&dpr=1&q=75&vib=3&con=3&usm=15&cs=srgb&bg=F4F4F3&ixlib=js-2.2.1&s=06d4e5a9962096a6010029591ae36198);background-position:75% 72%""><img src=""https://img.rawpixel.com/s3fs-private/rawpixel_images/website_content/a005-scottw-465.jpg?w=1200&h=1200&fit=clip&crop=default&dpr=1&q=75&vib=3&con=3&usm=15&cs=srgb&bg=F4F4F3&ixlib=js-2.2.1&s=06d4e5a9962096a6010029591ae36198"" alt="""" /></figure><div class=""wp-block-media-text__content""><!-- wp:paragraph {""placeholder"":""Content…"",""fontSize"":""medium""} --> <p class=""has-medium-font-size"">""<a rel=""noreferrer noopener"" href=""https://www.rawpixel.com/image/430579/free-photo-image-palm-tree-palm-africa"" target=""_blank"">Palm trees at Cape Town, South Africa</a>"" by Scott Webb is marked with <a rel=""noreferrer noopener"" href=""https://creativecommons.org/publicdomain/zero/1.0/?ref=openverse"" target=""_blank"">CC0 1.0</a>.</p> <!-- /wp:paragraph --></div></div> <!-- /wp:media-text --> }}} When you save and view the post, the background-image is gone." ryelle 56119 `wp_unslash()` and `wp_slash()` do not (un)slash the same data. Formatting normal normal Awaiting Review defect (bug) new dev-feedback 2022-07-01T03:00:33Z 2022-07-11T00:50:23Z "The `wp_unslash()` and `wp_slash()` functions do not do exactly the opposite thing, ie running `$data = wp_unslash( wp_slash( $data ) )` may modify the data. The issue occurs with the treatment of objects, `wp_unslash()` uses `map_deep()` and therefore accounts for objects; whereas `wp_slash()` does not traverse objects. {{{#!php <?php /** * @ticket 56119 */ public function test_slash_unslash_reversable() { $expected = (object) array( 'data' => 'sl\sh' ); $actual = wp_unslash( wp_slash( clone( $expected ) ) ); $this->assertSame( $expected->data, $actual->data ); } /** * @ticket 56119 */ public function test_unslash_slash_reversable() { $expected = (object) array( 'data' => 'sl\sh' ); $actual = wp_slash( wp_unslash( clone( $expected ) ) ); $this->assertSame( $expected->data, $actual->data ); } }}}" peterwilsoncc 20 29807 add support for picture element and srcset attribute on img in wp_kses Formatting normal normal Future Release defect (bug) new has-patch 2014-09-30T12:39:10Z 2024-03-11T21:03:26Z "Related to #28993 - (<img> srcset attribute is stripped when switching from text to visual tab in the editor) If support for srcset attribute and picture element (and source element) is to be added to tinyMCE, they should also be allowed in wp_kses. " mattheu 2 58902 add_query_arg() should esc_url_raw() REQUEST_URI Formatting normal normal 6.6 defect (bug) new changes-requested 2023-07-25T17:43:33Z 2024-02-22T11:22:14Z "add_query_arg assumes that the query argument is an acceptable query argument. In order to help developers from accidently making a URL an unacceptable URL. Some related tickets: #16859, #22951, and #22300. The security team has reviewed this and ok'd it being worked on in public. " jorbin 1 51019 convert_smilies() fails on large tags Formatting 5.5 normal normal 6.6 defect (bug) new needs-unit-tests 2020-08-15T12:51:26Z 2024-02-29T12:08:49Z "I have an image with huge data-url src (1.6M) in the post content. The post content is not displayed, but (with `WP_DEBUG` on) there is a php error instead. PHP Error output: {{{ Warning: count(): Parameter must be an array or an object that implements Countable in /Users/joern/www/vhosts/wordpress.local/httpdocs/stable/wp-includes/formatting.php on line 3357 }}} Som digging revealed, that `preg_split()` in `function convert_smilies()` fails with a `PREG_RECURSION_LIMIT_ERROR`. IMHO there should a check for `preg_last_error()` whether `preg_split()` was successfull, and if not the function should just return its input. Any thoughts on this? I'd be happy to craft a patch." podpirate 42182 esc_js must escape U+2028 and U+2029 Formatting 4.8 normal normal Awaiting Review defect (bug) new has-patch 2017-10-11T12:56:23Z 2017-10-11T13:02:09Z "JS considers U+2028 (line separator) and U+2029 (paragraph separator) as line terminators, so they must be escaped to not break inline JS. See: https://www.ecma-international.org/ecma-262/5.1/#sec-7.3" johanee 2 46791 esc_url() adding http:// to a relative URL to parent directory '../pathname/' Formatting 5.1 normal normal Awaiting Review defect (bug) reopened has-patch 2019-04-04T09:50:03Z 2019-05-23T10:37:12Z "{{{esc_url()}}} adds '!http://' when it shouldn't. Line 4191 wp-includes/formatting.php states If the URL doesn't appear to contain a scheme, we presume it needs !http:// prepended (unless a relative link starting with /, # or ? or a php file). This is prepending !http:// to a relative url to a parent directory i.e. '''../path-to-page/''' Funtion needs ../ adding to the array or some regex code." OrangePixelNath 1 39847 force_balance_tags not properly balancing < with <strong> and </strong> Formatting 4.7.2 normal normal Awaiting Review defect (bug) new 2017-02-11T19:12:04Z 2017-02-11T21:11:08Z "Given following HMTL code which includes the ''\['' and ''\]'' Latex delimiters: {{{ \[<\] <strong>We</strong> }}} the output of '''force_balance_tags''' is {{{ \[<\] <strong>We }}} which is not correct as the bold tags are unbalanced. Expected output should be the input string. " jpmerx 1 56433 invalid regex used in preg_replace Formatting normal normal Awaiting Review defect (bug) new reporter-feedback 2022-08-24T20:34:43Z 2022-08-24T20:53:40Z "Found in /wp-includes/formatting.php line 5385 {{{ $string = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $string ); }}} I tried this exactly as it is and it does nothing" chocofc1 60391 links_add_base_url will encode all attribut in null passed in Formatting normal normal Awaiting Review defect (bug) new has-patch 2024-01-30T23:23:31Z 2024-01-30T23:41:44Z pbearne 5 17433 localhost is not accepted as email domain Formatting 3.2 normal normal Future Release defect (bug) new has-patch 2011-05-14T16:55:52Z 2018-03-20T09:10:25Z "Hi. Tried to install WordPress on a Debian machine not connected to Internet, only for testing purposes, so when the setup procedure asked me for an email address, I used mylogin@localhost. The setup procedure, however, rejected this as ""invalid"". I think the bug is exactly in wp-includes/formatting.php, where it says: {{{ // Assume the domain will have at least two subs if ( 2 > count( $subs ) ) { return apply_filters( 'is_email', false, $email, 'domain_no_periods' ); } }}} So: Could you please special-case ""localhost"" in is_email() so that it's allowed as email domain? I guess the probability of someone using @localhost for email ""by mistake"" is extremely low, so this change will unlikely harm the average user. Thanks." sanvila 2 40324 make_clickable doesn't work if url stands after an even number off spaces Formatting 4.7 normal normal Awaiting Review defect (bug) new 2017-03-31T11:49:56Z 2017-03-31T16:22:07Z "The function '''make_clickable''' doesn't work, if an even number of spaces is written before an url Examples: {{{ Test post http://de.wordpress.org -> 1 space = works Test post http://de.wordpress.org -> 2 spaces = doesn't work Test post http://de.wordpress.org -> 3 spaces = works Test post http://de.wordpress.org -> 4 spaces = doesn't work }}} I tested it in WP 4.7 and 4.7.3 " wordpressrene 3 50514 make_clickable nested links bug Formatting 5.5 normal normal Awaiting Review defect (bug) new needs-unit-tests 2020-06-30T09:29:29Z 2020-10-12T17:15:58Z "If you look at the source of [`make_clickable`](https://core.trac.wordpress.org/browser/tags/5.4/src/wp-includes/formatting.php#L2985) there's one last regex call to replace potentially nested links: {{{#!php // Cleanup of accidental links within links. return preg_replace( '#(<a([ \r\n\t]+[^>]+?>|>))<a [^>]+?>([^>]+?)</a></a>#i', '$1$3</a>', $r ); }}} From the looks of the expression, this is meant to remove accidental nested links only if the parent link wrapping them does not have any non-link text at the edges. Let me provide a few examples: 1. This works as intended: {{{#!php <?php $text = '<a href=""https://w.org"">https://w.org</a>'; $click = make_clickable($text); # <a href=""https://w.org"">https://w.org</a> }}} 2. Let's introduce more content inside the link, either prepend or append it to the hyperlink's inner URL: {{{#!php <?php $text = '<a href=""https://w.org""> https://w.org</a>'; $click = make_clickable($text); # <a href=""https://w.org"">https://w.org</a> # <a href=""https://w.org""> <a href=""https://w.org"" rel=""nofollow"">https://w.org</a></a> $text = '<a href=""https://w.org"">https://w.org </a>'; $click = make_clickable($text); # <a href=""https://w.org"">https://w.org</a> # <a href=""https://w.org""><a href=""https://w.org"" rel=""nofollow"">https://w.org</a> </a> }}} There, I used a simple whitespace for the sake of an example. **Suggested Patch** I am suggesting a simple fix with the cleanup regex expression, although however if you managed to understand the root problem you'd be able to come up with something much better. {{{#!php <?php // Cleanup of accidental links within links. return preg_replace( '#(<a([ \r\n\t]+[^>]+?>|>))(.+)?<a [^>]+?>([^>]+?)</a>(.+)?</a>#is', '$1$3$4$5</a>', $r ); }}} In my patch you'll see the following changes: 1. Added `(.+)?` for capturing any leading characters before any nested links 2. Added `(.+)?` for capturing any trailing characters before any nested links 3. Added `s` modifier so as to have the previous capturers work with newlines 4. `'$1$3$4$5</a>'` restoring the captured leading or trailing characters back into the cleaned up HTML. Also worth noting I am running WordPress 5.4.2, PHP 7.4.4, nginx/1.17.10 on an Alpine Linux docker container (Linux 4.19.76-linuxkit x86_64)." elhardoum 5 44793 "remove_accents() doesnt escape all versions of ""i""" SergeyBiryukov Formatting normal normal Future Release defect (bug) reviewing dev-feedback 2018-08-14T17:42:24Z 2019-09-22T20:30:02Z "The version with both dieresis and accent is missing. Suggested addition is the following {{{ plus '΅Ι' => 'I', 'ΐ' => 'i', }}} " bagosm 4 24157 safecss_filter_attr doesn't allow rgb() in inline styles Formatting 2.8.1 normal normal Future Release defect (bug) assigned has-patch 2013-04-22T16:30:45Z 2022-09-11T18:47:17Z "I thought there should be a ticket somewhere, but I couldn't find it! So, `safecss_filter_attr` (which is used in `wp_kses` etc, does not allow inline styles that include rgba() etc, like his: {{{<span style=""background: rgb(0,0,0)""></span>}}} I am not sure if this is intended, though not sure why it would be, there is a comment in `safecss_filter_attr` {{{if ( preg_match( '%[\\(&=}]|/\*%', $css ) ) // remove any inline css containing \ ( & } = or comments}}} " joehoyle 53815 safecss_filter_attr removes styles with min() max() and minmax() Formatting normal normal Awaiting Review defect (bug) new 2021-07-28T12:44:09Z 2021-07-28T12:44:09Z "safecss_filter_attr function eliminates the CSS with min(), max() and minmax(). I was trying to use min() with the recently released theme.json layout settings to adjust max-width dynamically based on device width. {{{ ""contentSize"": ""min( calc(100vw - 30px), 620px)"", ""wideSize"": ""min( calc(100vw - 30px), 1200px)"", }}} WordPress 5.8 release adds support for calc() and var() in #46197 and dropping support for IE11, now adding min(), max(), and minmax() would be helpfull for theme developers." sagarnasit 2 50855 sanitize_file_name function not working as expected if there is '%20' in filename audrasjb* Formatting 5.4.2 normal normal Future Release defect (bug) accepted dev-feedback 2020-08-05T08:00:11Z 2022-10-07T21:04:13Z "We have added '%' as a special character in `$special_char` variable We are also replacing '%20' with '-' Here the sequence of str_replace was not appropriate We need to replace '%20' with '-' before all the special character are replaced Current behavior: - Filename Before: `this%20is%20example.png` - Filename after sanitization: `this20is20example.png` Expected behavior: - Filename Before: `this%20is%20example.png` - Filename after sanitization: `this-is-example.png` File reference: https://github.com/WordPress/WordPress/blob/master/wp-includes/formatting.php Function name: sanitize_file_name" dishitpala 5 33924 sanitize_html_class valid characters Formatting 4.4 normal normal Future Release defect (bug) new dev-feedback 2015-09-18T16:39:10Z 2022-09-20T23:57:53Z "`sanitize_html_class` excludes some increasingly common valid html characters. In particular the `@` character. The use of `@` may not be extremely common for class names but it is being encouraged by some pretty renowned folks in the area of class naming conventions. http://csswizardry.com/2015/08/bemit-taking-the-bem-naming-convention-a-step-further/#responsive-suffixes Actually pretty much anything is now valid for html classes except for spaces or tabs. I also use the `/` quite a bit in my classes but I thought I'd start with the `@` ." m-e-h 7 55996 the get_the_block_template_html call all the same functions as the the_conent filter so they are run twice flixos90 Formatting normal normal Future Release defect (bug) assigned dev-feedback 2022-06-16T22:23:50Z 2024-03-13T15:42:08Z "In get_the_block_template_html we have this code {{{#!php <?php $content = $wp_embed->run_shortcode( $_wp_current_template_content ); $content = $wp_embed->autoembed( $content ); $content = do_blocks( $content ); $content = wptexturize( $content ); $content = convert_smilies( $content ); $content = shortcode_unautop( $content ); $content = wp_filter_content_tags( $content ); $content = do_shortcode( $content ); $content = str_replace( ']]>', ']]>', $content ); }}} These are direct calls to the same functions as used by the filter the_content {{{#!php <?php add_filter( 'the_content', 'do_blocks', 9 ); add_filter( 'the_content', 'wptexturize' ); add_filter( 'the_content', 'convert_smilies', 20 ); add_filter( 'the_content', 'wpautop' ); add_filter( 'the_content', 'shortcode_unautop' ); add_filter( 'the_content', 'prepend_attachment' ); add_filter( 'the_content', 'wp_filter_content_tags' ); add_filter( 'the_content', 'wp_replace_insecure_home_url' ); }}} So they are been run twice for site content " pbearne 8 54488 wp_filter_nohtml_kses does not remove HTML comments audrasjb Formatting 2.1 normal normal Future Release defect (bug) assigned dev-feedback 2021-11-22T09:42:10Z 2023-10-12T06:51:06Z "The documentation states that `wp_filter_nohtml_kses()` ""Strips all HTML from a text string."" However, in reality, HTML comments are preserved. This seems to be an explicit choice (wp_kses_split2() - L1083 of wp-includes/kses.php but seems at odds with the documentation, and also with the expectations of a function named ""nohtml"". Expected behaviour {{{ wp> wp_filter_nohtml_kses('<!-- comment -->This is not a comment'); => string(21) ""This is not a comment"" }}} Actual behaviour {{{ wp> wp_filter_nohtml_kses('<!-- comment -->This is not a comment'); => string(37) ""<!-- comment -->This is not a comment"" }}} " leewillis77 58377 wp_kses filters custom block name with consecutive hyphens Formatting 6.1.1 normal normal Awaiting Review defect (bug) new 2023-05-23T08:08:59Z 2023-05-23T08:08:59Z "== Description I worked on a WordPress multisite and administrators cannot edit custom blocks containing consecutive hyphens, but only super administrators. This problem occurs after an administrator registers a page containing custom blocks. I found that the reason was that WordPress filters HTML content (wp_kses) created by an administrator for security reasons. It prevents the use of multiple dashes in custom block name. Ex: ""custom-blocks/contact-form---input"" is renamed ""custom-blocks/contact-form-input"". In my company, we use dashes (""---"") in block name to specify the relation between parent and children blocks. This is really helpful for us. Hence my question, **would it be possible to allow multiple dashes in the name of blocks?** == Alternative solution For the moment, we gave the administrators the capability ""unfiltered_html"". So they can edit the different blocks. == Expected behavior Allow multiple dashes in block names. Ex: ""custom-blocks/contact-form---input"" == Step-by-step reproduction instructions - Create a custom block with a block name that includes consecutive hyphens. (e.g. custom-blocks/contact-form---input) - Insert this block and save the post. - Reload the edit screen. - The block is no longer editable. ""Your site doesn't include support for the xxx"" - In this case, the block name displayed in the core/missing block is abbreviated to a single hyphen. (e.g. custom-blocks/contact-form---input) The bug is reproducible on any site not necessarily multisite. In this case, you need to compare between an administrator and an author. [[Image(https://user-images.githubusercontent.com/48805054/225573533-f8889624-a7a7-4e1d-a7d2-0f1ae28abc5c.jpg)]] == Related GitHub issues - [https://github.com/WordPress/gutenberg/issues/49127] - [https://github.com/WordPress/gutenberg/issues/36339]" munezero999 2 58921 wp_kses_allowed_html doesn't allow to add esi:include Formatting 3.5 normal normal Awaiting Review defect (bug) new has-patch 2023-07-27T10:19:28Z 2023-10-12T05:21:52Z "In my plugin I want to implement an [ESI exclusion](https://www.w3.org/TR/esi-lang/) for Litespeed using their filter like this: {{{#!php <?php echo apply_filters( 'litespeed_esi_url', 'pmw_data_layer', 'Inject data layer through ESI block'); }}} The filter returns a script that contains an HTML comment and an ESI exclusion tag (which is not a standard HTML tag): {{{ <!-- lscwp Inject data layer through ESI block --> <esi:include src='/?lsesi=pmw_data_layer&_control=private%2Cno-vary&_hash=6b8400dc86345e005f6cbea3e58da1e2' cache-control='private,no-vary' /> <!-- lscwp Inject data layer through ESI block esi end --> }}} However, using the unescaped echo is bad practice and is not allowed by WooCommerce (my plugin is published on woocomerce.com, so I can't upload a version that's using `echo`). So I tried using `wp_kses`. Using the `wp_kses_allowed_html` filter, one could add custom tags to `wp_kses`. But it doesn’t work in this particular case because the ESI tag contains a colon `esi:include`. I’m stuck here. I can’t change the [ESI specification](https://www.w3.org/TR/esi-lang/) which specifies the tag `esi:include`. Litespeed (or any other technology that uses ESI) must consume the `esi:include` tag to work. That means we need to output the script somehow. I think there should be a way to add custom tags like `esi:include`." alekv 37698 wp_kses_split global variable pollution Formatting normal normal Future Release defect (bug) new has-patch 2016-08-17T20:20:15Z 2021-02-09T16:12:22Z "In r10339, `wp_kses_split` was modified so it doesn't longer require the `preg_replace` with the `e` (eval) modifier. This implementation uses globals to pass the values of `$allowed_html` and `$allowed_protocols` to the `_wp_kses_split_callback` function. While in most cases this isn't really a problem, we noticed that a call to `wp_kses_split` (via a filter) from within `_wp_kses_split_callback` may have undesirable effects on the next replacements. The snippet below illustrates this problem, you can see in action in https://3v4l.org/YmYTZ {{{ <?php function wp_kses_split( $string, $allowed_html, $allowed_protocols ) { global $pass_allowed_html, $pass_allowed_protocols; $pass_allowed_html = $allowed_html; $pass_allowed_protocols = $allowed_protocols; return preg_replace_callback( '%((<!--.*?(-->|$))|(<[^>]*(>|$)|>))%', '_wp_kses_split_callback', $string ); } function _wp_kses_split_callback( $match ) { global $pass_allowed_html, $pass_allowed_protocols; return wp_kses_split2( $match[1], $pass_allowed_html, $pass_allowed_protocols ); } function wp_kses_split2($string, $allowed_html, $allowed_protocols) { wp_kses_split('', array(), array()); // this overrides the globals. print_r( array( $allowed_html, $allowed_protocols ) ); } wp_kses_split(""<a style='color: red;'>I link this</a>"", array('a'=>array( 'style' => array() )), array('http') ); }}} One way to fix this would be to use an anonymous function, but I guess that's only available on PHP >= 5.3. Another way is to encapsulate the callback in a class and tie the arguments to an instance of this class." xknown 1 54138 wp_strip_all_tags should remove scripts/styles content recursively Formatting normal normal Awaiting Review defect (bug) new has-patch 2021-09-16T20:19:53Z 2021-09-16T20:31:18Z "If we try to run the next code `<scri<script></script>pt>alert(""krya"");</script>` via the `wp_strip_all_tags` function it remove the script content only once. So, the next hack allows passing the script content throw the function. ## In details. First iteration: - input: `<scri<script></script>pt>alert(""krya"");</script> - output: `<script>alert(""krya"");</script>` Thankfully the `strip_tags` removes scripts tags later, but the content is still present. " wppunk 46886 "wp_targeted_link_rel adds the rel attribute when the link has data-target=""""" Formatting 5.1 normal normal Awaiting Review defect (bug) new 2019-04-11T20:07:45Z 2019-04-13T13:58:32Z "To reproduce: Create a link element (easiest to see bug in classic editor): {{{ <a href=""https://example.com"" data-target=""thisandthat"">click here</a> }}} Save the post, and the link will have the rel=""noopener noreferrer"" attribute. " jakeparis 1 60793 wp_trigger error has a wrong wp_kses $allowed_html arguement. 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 3 37672 wpautop adds a closing p-tag without an opening p-tag Formatting 4.5.3 normal normal Awaiting Review defect (bug) new has-patch 2016-08-15T19:06:03Z 2019-04-18T21:39:39Z "Following code result in ill-formed HTML. {{{#!php <?php $pee = <<<EOT <div> This is a paragraph. This is another paragraph. </div> EOT; echo wpautop($pee); }}} This is the output: {{{ <div> This is a paragraph.</p> <p>This is another paragraph. </p></div> }}} As you can see, the first paragraph lacks an opening <p>. " TBarregren 5 40676 wpautop adds opening & closing p tags around the opening a tag and around the closing a tag when the link contains certain flow content elements like div, h1, h2... Formatting 4.8 normal normal Awaiting Review defect (bug) new needs-unit-tests 2017-05-05T10:55:47Z 2017-07-21T11:02:23Z "Hi, == Description == wpautop leaves {{{<a href="""">}}} (opening tag of the link) in between {{{<p></p>}}} tags and {{{</a>}}} (closing tag of the link) in between {{{<p></p>}}} tags when the link contains certain flow content elements like div, h1, h2... == Example 1 == If I add this to the HTML editor: {{{ <a href=""https://example.com/""><div>DIV inside link</div></a> }}} The output source code is: {{{ <p><a href=""https://example.com/""></p> <div>DIV inside link</div> <p></a></p> }}} ---- == Example 2 == If I add this to the HTML editor: {{{ <a href=""https://example.com/""><h1>H1 inside link</h1></a> }}} The output source code is: {{{ <p><a href=""https://example.com/""></p> <h1>H1 inside link</h1> <p></a></p> }}} ---- == Note 1 == I would like to point out that html '''''flow content'' elements such as {{{<div>}}} or headings ({{{<h1>, <h2>, <h3>}}} ,...) belong to the category of permitted content for the {{{<a>}}} element'''. References: [https://html.spec.whatwg.org/multipage/semantics.html#the-a-element WHATWG HTML Living Standard |The definition of a] [http://www.w3.org/TR/html5/text-level-semantics.html#the-a-element HTML5 | The definition of a] [https://developer.mozilla.org/en/docs/Web/HTML/Element/a MDN | The definition of a.] ---- == Note 2 == This issue might be related to ticket #34722" diegocanal 40202 wpautop bad code Formatting 4.7.3 normal normal Future Release defect (bug) new 2017-03-19T09:02:06Z 2020-05-21T05:41:09Z "post content {{{ <a href=""document.htm""><div>Text</div></a> }}} generated markup - note wrong HTML {{{ <p><a href=""document.htm""></p> <div>Text</div> <p></a></p> }}} related: #40135 " jim5471 5 2833 wpautop breaks style and script tags Formatting 2.0.3 low normal Future Release defect (bug) reopened dev-feedback 2006-06-17T20:36:00Z 2024-03-21T16:25:11Z "When I create a post in which I want to include Javascript or some styles, WordPress 'breaks'when showing those posts, because all newlines in the SCRIPT and STYLE tag are converted into BR tags. Example: {{{ <style type=""text/css> .matt { color: #FFFFFF; } </style> }}} Becomes: {{{ <style type=""text/css><br /> .matt { color: #FFFFFF; }<br /> </style><br /> }}} And: {{{ <script type=""text/javascript""><!-- google_ad_client = ""xxxxxxxx""; google_ad_width = 120; google_ad_height = 60; google_ad_format = ""120x60_as_rimg""; google_cpa_choice = ""CAAQ2eOZzgEaCD4zuVkdzt_CKI-293M""; //--></script> }}} Becomes {{{ <script type=""text/javascript""><!--<br /> google_ad_client = ""xxxxxxxx"";<br /> google_ad_width = 120;<br /> google_ad_height = 60;<br /> google_ad_format = ""120x60_as_rimg"";<br /> google_cpa_choice = ""CAAQ2eOZzgEaCD4zuVkdzt_CKI-293M"";<br /> //--></script><br /> }}} This happens because wpautop adds those BR tags to the post. (As it should, just not within STYLE or SCRIPT tags.) I've made a (temporary?) workaround for this by creating a pre and post event for wpautop, which substitute the necessary newlines by a temporary value in the pre event and placing them back in the post event. Although I think this should be incorporated in wpautop itself. See also: http://wordpress.org/support/topic/76433 and http://wordpress.org/support/topic/76297 While searching trac I also found ticket #2346, which is about the same problem, but which was for 2.0 and self-closed by the submitter? P.S. I have TinyMCE turned of." Nazgul 1 38656 wpautop incorrectly handling paragraphs within block elements Formatting 5.0 normal normal Future Release defect (bug) new needs-unit-tests 2016-11-04T06:10:39Z 2019-03-26T15:02:11Z "When there are two line breaks within a block element, `wpautop()` will replace it with `</p><p>`, but the corresponding opening and closing tags won't exist. For example, `<div>a\n\nb</div>` will produce `<div>a</p><p>b</div>`, when it really should produce `<div>\n<p>a</p>\n<p>b</p>\n</div>`." pento 1 49492 wpautop inserted p tags inconsistently alter visual space Formatting 5.3.2 normal normal Awaiting Review defect (bug) new 2020-02-22T17:09:49Z 2020-02-22T17:12:21Z "I wrote a custom shortcode to insert a <figure></figure> in my posts. wpautop inserts an empty <p></p> before the <figure>. If I place the shortcode before the first paragraph after a subheading, the inserted <p> increases the visual space between the subheading and the paragraph. But if I place the shortcode before the second paragraph, the extra <p> doesn't affect the visual spacing between paragraphs. I can work around the inconsistency by changing wpautop's priority. But that scrambles other things on the web site. {{{ remove_filter( 'the_content', 'wpautop' ); add_filter('the_content', 'wpautop', 12); add_shortcode('hd_product', 'display_product'); function display_product($args){ extract(shortcode_atts(array( 'id' => null, 'cat' => null, 'tag' => null, 'orderby' => 'rand', 'limit' => 1, ), $args)); $product = wc_get_product( $id ); $image = $product->get_image($size = 'product-slider', [""class"" => ""product-callout-image"",""alt""=>""mp3 for sale""] ); $term = get_term_by( 'id', $product->category_ids[0], 'product_cat' ); $output = '<figure class=""product-callout"">'; $output .= '<a href=""' . get_permalink($id) . '"">' . $image ; $output .= '<figcaption class=""product-callout-caption""><b>' . $term->name . '</b><br>' . '$' . $product->price . '</figcaption>'; $output .= '</a></figure>'; return $output; } }}} " mesmer7 43394 wpautop inserts extraneous line breaks if hard return around commented content Formatting 4.9.4 normal normal Awaiting Review defect (bug) new 2018-02-23T20:02:19Z 2020-06-15T00:19:38Z "Problem: If one has code comments before content in a WordPress post/page and there are hard returns before and after the code comment, WordPress will insert an extraneous line break. Further, if there are hard returns between multiple comments an extraneous line break will be added. This problem can be reproduced by doing the following: 1. Edit a WordPress post or page. 2. Add a code comment with hard returns before and after it such as: {{{ <!-- My Code Comment--> }}} 3. Publish/preview the page. 4. Use Inspect to examine the area where you placed the above comment and you'll notice an extra line break. This may seem like a very edge case and a minor annoyance, but we ran into this issue recently when we had multiple code comments following each other like so: {{{ <p>Some regular content here.</p> <!-- This is Important --> <!-- Don't Forget This --> <!-- Why are you Forgetting? --> <!-- Adding individual comments for each line is --> <!-- fun! --> <p>Some regular content here.</p> }}} An extraneous line break now becomes four line breaks. This becomes quite confusing for editors as when they look at the post the extra returns are not apparent yet inserted when the page is actually posted. I'm thinking that resolving this issue might also resolve many other cases of wpautop gone rogue. My suggestion would be that wpautop be changed so that: 1. If there is a code comment with a hard return before and after the comment, it does not automatically add wpautop. (one can argue that this is behaving as expected, but I doubt many are thinking when they add a code comment that it will add a nice line break for them...and in any case, this can be much more obviously/easily remedied by inserting a <br> in the editor if one truly did want a line break caused in this manner, whereas it can be quite time consuming to discover why extra line breaks are mysteriously appearing) 2. Similarly, with shortcodes, if the shortcode is tested valid then don't add line breaks with wpautop around the shortcode. " davidshq 4 5250 wpautop() issue with lists Formatting 2.3 normal normal Future Release defect (bug) reopened needs-unit-tests 2007-10-24T00:32:38Z 2023-02-02T13:34:08Z "First of all, my sincere apologies if this is a duplicate. The problem, in short: WordPress inserted a number of unclosed `<p>` tags into my post. It should either insert correctly closed tags, or none at all. I honestly would prefer the former. In detail: I had HTML code very similar to this: {{{ <ul> <li>text<ul> <li>subtext</li> </ul>more text</li> </ul> }}} This was automatically converted to: {{{ <ul> <li>text<ul> <li>subtext</li> </ul><p>more text</li> </ul> }}} Note the extra `<p>` tag in the above, which is unclosed (making the W3C validator choke on my website). Also note, I was not using the WYSIWYG editor (turning it off was the first thing I did), so it's unlikely to be due to that. As a workaround, manually inserting properly closed `<p>` tags works just fine: {{{ <ul> <li>text<ul> <li>subtext</li> </ul><p>more text</p></li> </ul> }}} Since this workaround exists, the bug is not very prioritary, but it should also (hopefully) be easy to fix." Narc0tiq 43313 wptexturise uses the wrong curly quote after a closing link tag Formatting normal normal Awaiting Review defect (bug) new 2018-02-14T10:29:02Z 2018-04-15T18:05:13Z "When an English possessive 's comes immediately after a closing link tag, wptexturise changes it to the wrong kind of curly quote mark. '''To reproduce:''' * Enter some text with a link followed by an 's in your post content, for example {{{ <a href=""http://bbc.co.uk/news"">BBC</a>'s approach }}} * View the post in the front end. '''What I expect''' The filter replaces the straight single quote mark with a right curly apostrophe ’ '''What I see instead''' The filter replaces the quote mark with a left curly apostrophe ‘ " andfinally 54721 wptexturize caches the result of run_wptexturize preventing themes from using this if a plugin has already called get_plugin_data Formatting 5.8.2 normal normal Awaiting Review defect (bug) new 2022-01-03T11:45:01Z 2022-01-03T11:45:01Z "One of the plugins I use is simple_sitemap. This plugin (quite reasonably) uses get_plugin_data during its initialization. get_plugin_data makes calls to wptexturize as part of its operation. The plugin's initialization runs before the theme's functions.php is executed. Since wptexturize caches the result of the run_wptexturize filter, the theme is no longer able to disable wptexturize's function and hence gets unwanted smart quotes. There is a workaround for the theme whereby it makes a dummy call to wptexturize with reset set to true. This makes the wptexturize implementation reinitialize and hence re-execute the call to the run_wptexturize filter. However the documentation states that this flag is designed for unit testing and hence this seems to be less than ideal. (In passing I'll note that this caching of the result also prevents plugins from using it to temporarily disable the function by adding and then removing the filter should it be required.) I've left the ticket type as 'defect' but it would be reasonable to argue that this is actually a request for a minor enhancement - if so please change the type field. " tremlas 2 43785 wptexturize fails to skip JavaScript if code contains < Formatting normal normal Awaiting Review defect (bug) new 2018-04-17T07:51:58Z 2018-04-17T07:51:58Z "As the [https://codex.wordpress.org/Function_Reference/wptexturize documentation] states: Text enclosed in the tags <pre>, <code>, <kbd>, <style>, <script>, and <tt> will be skipped If the script tag contains < character inside, then the wptexturize functions fails and starts to encode the codes. {{{#!php <?php echo wptexturize('<script type=""text/javascript"">window&&document</script>'); //Result: <script type=""text/javascript"">if(a>b)window&&document</script> // OK }}} wptexturize -> preg_split -> $textarr value: {{{ Array ( [0] => <script type=""text/javascript""> [1] => if(a>b)window&&document [2] => </script> ) }}} ---- {{{#!php <?php echo wptexturize('<script type=""text/javascript"">if(a>b)window&&document</script>'); //Result: <script type=""text/javascript"">window&&document</script> // OK }}} wptexturize -> preg_split -> $textarr value: {{{ Array ( [0] => <script type=""text/javascript""> [1] => window&&document [2] => </script> ) }}} ---- {{{#!php <?php echo wptexturize('<script type=""text/javascript"">if(a<b)window&&document</script>'); //Result: <script type=""text/javascript"">if(a<b)window&&document</script> // ERROR }}} wptexturize -> preg_split -> $textarr value: {{{ Array ( [0] => <script type=""text/javascript""> [1] => if(a [2] => <b)window&&document</script> ) }}} && characters encoded into && which breaks the JavaScript code. This issue can happen if shortcode inserted into the editor and the editor value rendered with the wptexturize function and the shortcode contains JavaScript code. ---- More tests which works as expected: {{{#!php <?php echo wptexturize('<script type=""text/javascript"">$(""<div/>"").length&&document</script>'); echo wptexturize('<script type=""text/javascript"">$(""<div></div>"").length&&document</script>'); }}} " nextendweb 4 49965 wptexturize should also work when using before hook after_theme_setup Formatting 5.4 normal normal Awaiting Review defect (bug) new 2020-04-21T06:41:39Z 2020-04-21T06:41:39Z "Hi! **Context**: When using [https://developer.wordpress.org/reference/functions/get_plugin_data/ get_plugin_data] before the hook `after_theme_setup` got fired, [https://developer.wordpress.org/reference/functions/wptexturize/ wptexturize] does no longer work (`de_DE`). We are using a boilerplate [https://github.com/devowlio/wp-react-starter/ WP React Starter] and in the following line it uses the above function at plugin construction: - https://github.com/devowlio/wp-react-starter/blob/e25ca4aa7b743bed3aa09fda180429142b87204f/plugins/wp-reactjs-starter/src/inc/base/Core.php#L25 - https://github.com/devowlio/wp-react-starter/blob/e25ca4aa7b743bed3aa09fda180429142b87204f/packages/utils/src/Core.php#L129 I could fix the issue with the following workaround, but I think this is not ideal: {{{#!php <?php /** * `get_plugin_data` uses `wptexturize` a bit too early and due to the fact, * that it saves `static` state in the function itself, it never get's reset * correctly. Fix it, by resetting manually in the earliest possible hook (`setup_theme` does not work). */ add_action('after_setup_theme', function() { if (function_exists('wptexturize')) { wptexturize(' ', true); } }, 0); }}} Now, I think about to fix the issue by using [https://developer.wordpress.org/reference/functions/did_action/ did_action]: https://github.com/WordPress/WordPress/blob/589666abc3b21242c28dcea9f5e94b57032692e7/wp-includes/formatting.php#L80 {{{#!php <?php // [...] - if ( $reset || ! isset( $static_characters ) ) { + if ( $reset || ! isset( $static_characters ) || ! did_action( 'after_setup_theme' ) ) { }}} What do you think?" mguenter 54322 Add Logical Properties to safecss_filter_attr Formatting 5.8.1 normal normal Awaiting Review enhancement new dev-feedback 2021-10-26T07:59:07Z 2021-11-19T18:16:32Z "== Background CSS Logical Properties and Values give easier control over automating different writing mode formats by using logical, rather than physical directions. In other words, it means that the intended spacing, sizing, etc for each appropriate side of a box element translate seamlessly. Mozilla Reference: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties With the increase in inline styling from blocks, it's important to add more flexibility to how a theme or plugin developer might want to style their spacing components or future proof them as accessibility and internationalization become increasingly important and stop of mind. Global usage is at a decent enough support level where it makes sense: https://caniuse.com/?search=logical%20properties. == Proposed Enhancement The proposed addition would just be to add to the properties to the default array in safecss_filter_attr(). File: wp-includes/kses.php: https://github.com/WordPress/wordpress-develop/blob/98bf67e02b0a4b4aa3848f4e8266c4fd66cdaad0/src/wp-includes/kses.php#L2170 The complete list of Logical Properties: {{{ // Properties for sizing 'block-size', 'inline-size', 'max-block-size', 'max-inline-size', 'min-block-size', 'min-inline-size', // Properties for borders 'border-block', 'border-block-color', 'border-block-end', 'border-block-end-color', 'border-block-end-style', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-style', 'border-block-start-width', 'border-block-style', 'border-block-width', 'border-inline', 'border-inline-color', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-style', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-style', 'border-inline-start-width', 'border-inline-style', 'border-inline-width', 'border-start-start-radius', 'border-start-end-radius', // Properties for margin & padding 'margin-block', 'margin-block-end', 'margin-block-start', 'margin-inline', 'margin-inline-end', 'margin-inline-start', 'padding-block', 'padding-block-end', 'padding-block-start', 'padding-inline-end', 'padding-inline-start', // Properties for float & positioning 'inset', 'inset-block', 'inset-block-end', 'inset-block-start', 'inset-inline', 'inset-inline-end', 'inset-inline-start', // Other Misc Props 'caption-side', 'overflow-block', 'overflow-inline', 'overscroll-behavior-block', 'overscroll-behavior-inline', 'resize', 'text-align' }}} " wazeter 52444 Add support for Telegram Messenger Protocol Formatting 3.3 normal normal Awaiting Review enhancement new close 2021-02-04T10:56:32Z 2021-02-05T06:39:35Z "I found an issue with a link to Telegram messenger. The simple link works correct {{{<a href=""tg://resolve?domain=man_o2"">}}} If I add “target”, it works correct on pages. {{{<a href=""tg://resolve?domain=man_o2"" target=""_blank"">}}} But if I use it in «Custom HTML» widget, I see a wrong result code: {{{<a href=""//resolve?domain=man_o2"" target=""_blank"">}}} I asked The7 theme support and they have said “it works the same with the standard WP theme”. Screenshot from support:[https://www.evernote.com/l/AnTcHk6kxa5Ltb_UT4cgDp7V-ofL4md-1fQ]" customer8765 1 51707 Add white-space as an allowed kses CSS attribute. Formatting 5.3.1 normal normal Future Release enhancement new has-patch 2020-11-04T23:35:29Z 2020-11-15T06:58:31Z "`white-space` has wide [https://developer.mozilla.org/en-US/docs/Web/CSS/white-space browser support], and users would benefit from not having it stripped while adding to posts. /wp-includes/kses.php:2177" whyisjake 60544 Allow individual blocks to be excluded from `excerpt_remove_blocks()` 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 4 43010 Attribute Name Escape Formatting normal normal Awaiting Review enhancement new needs-unit-tests 2018-01-02T17:03:09Z 2022-01-18T14:34:00Z "The HTML5 spec allows us to arbitrarily named attributes for tags, e.g. '''''data-my-arb-attr-name'''=""attr value""''. This allows for generated attribute names and thus, a need to escape to avoid potential security implications. I have seen several occasions of developers using `esc_attr` to resolve this case, however this is far from correct - the requirements of the name of an attribute are very different to that of the value, the best example of this simply being whitespace. The requirements of an attribute name can be found here: https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 There is a need for an `esc_attr_name` function to avoid compromises in html. I have provided a simple addition patch to wp-includes/formatting.php which should resolve this issue." joe_bopper 41458 Class gets stripped out when inserting a link in author biography box Formatting 3.5 normal normal Awaiting Review enhancement new 2017-07-27T16:44:55Z 2017-07-30T16:11:39Z "Class gets stripped out when inserting a link in author biography box For example <a href=""#"" class=""test"">My link</a> becomes <a href=""#"" >My link</a>" neodjandre 1 39724 Defining custom validation callbacks for tag/attribute values in wp_kses() Formatting 4.8 normal normal Awaiting Review enhancement new 2017-01-27T17:54:04Z 2017-06-17T11:00:12Z "This patch allows to define a custom validation callbacks to check tag/attributres values in `wp_kes()` etc. The callbacks are defined through `wp_kses_allowed_html` filter. If a tag and/or tag attribute is a callable function/method, then it will be used to check/validate/process the value, for example: {{{#!php <?php add_filter( 'wp_kses_allowed_html', 'my_wp_kses_allowed_html_flter' ), 10, 2 ); function my_wp_kses_allowed_html_flter ( $tags, $context ) { $tags['span']['style'] = function ( $name, $value, $element ) { // return sanitized $value or empty to remove it return $value; }; // iframe callback $tags['iframe'] = function ( $element, $attr ) { // does something with complete attribute string or return empty to remove it return $attr; }; return $tags; } }}} While waiting for the core updates the list of allowed tags/attribitutes/values (for example for `style` attribute, see #24157, #37134, #37248 and probaly many others), this enhancement could offer the possibility of having the fine control over every tag attributes value. Regards" enrico.sorcinelli 57517 Expose MutationObserver instance in wpEmoji Formatting normal normal Awaiting Review enhancement new has-patch 2023-01-20T19:30:38Z 2023-01-20T20:05:34Z "The current implementation of MutationObserver in wpEmoji keeps the instance private, making it impossible to disconnect/reconnect the observer if necessary. This has performance implications whenever a page performs large/complex DOM updates frequently. A typical workaround is to disable wpEmoji altogether, but I believe there's a better way. If we expose the observer instance, we can call connect/disconnect as needed. {{{#!javascript // Before doing something expensive wp.emoji.getObserver().disconnect(); // render 10k nodes in your favorite frontend framework // Re-enable later wp.emoji.getObserver().observe( document.body, { childList: true, subtree: true } ) }}} " rinatkhaziev 1 43224 Extract `$utf8_pcre` from `wp_check_invalid_utf8()` into a separate function Formatting normal normal Awaiting Review enhancement new 2018-02-03T23:59:24Z 2019-01-16T06:50:09Z "The `wp_check_invalid_utf8()` function checks to confirm support for the `/u` flag in regular expressions. The result of that check is cached in a static variable within that function. However, other areas of the codebase might want to run the same check, or maybe plugins would like to check also. I'm considering a change in Gutenberg's PEG parser and that might serve as an example use case for the new `wp_can_utf8_pcre()` function I'm proposing in this ticket. Instead of running the same check all over again, having this check run once by a utility function would be nice. See: https://github.com/WordPress/gutenberg/blob/daad3f21319ec9ec73fa1b907119a7464442bfac/lib/parser.php#L1818" jaswrks 1 40933 Improvements for get_file_data() function Formatting 4.7.5 normal normal Awaiting Review enhancement new has-patch 2017-06-06T20:28:37Z 2017-07-18T09:20:04Z "It seams as a bug or as imperfection at least. I try to explain in example. Assume we have such comments in file: {{{#!php <?php /* Plugin Name: My plug Version: 1.0 */ // and trying to get file data like: $data = get_file_data( __FILE__, ['ver'=>'Version'] ); echo $data['ver']; //> 1.0 }}} This is works as we need. BUT if we change comments a little, the get_file_data() becomes broken: {{{#!php <?php /* Plugin Name : My plug Version : 1.0 */ // and trying to get file data like^ $data = get_file_data( __FILE__, ['ver'=>'Version'] ); echo $data['ver']; //> '' }}} All we do just add spaces before `:` to make comments more readable... - Solution I think it's better to improve regular expression of the get_file_data() and add `[\t ]*` before `:` {{{#!php <?php if ( preg_match( '/^[ \t\/*#@]*' . preg_quote( $regex, '/' ) . ':(.*)$/mi', $file_data, $match ) && $match[1] ) to if ( preg_match( '/^[ \t\/*#@]*' . preg_quote( $regex, '/' ) . '[\t ]*:(.*)$/mi', $file_data, $match ) && $match[1] ) }}} " Tkama 3 43147 Introduce `esc_html_comment` and translation related functions Formatting normal normal Awaiting Review enhancement new dev-feedback 2018-01-23T15:27:17Z 2019-01-16T06:50:09Z "Triggered by the following PR on Yoast SEO [https://github.com/Yoast/wordpress-seo/pull/8687 #8687] I saw the need for `esc_html_comment` functionality in WordPress. This patch is based on the current API for formatting and escaping functions. The implementation is based on the specifications found on the [https://www.w3.org/TR/html51/syntax.html#sec-comments HTML specifications page]. I've added unit tests to cover the situations that I could come up with." jipmoors 3 19100 Introduce esc_color() Formatting normal normal Future Release enhancement new dev-feedback 2011-11-01T12:16:14Z 2020-03-04T06:27:35Z Currently there is no way to escape a color in hexadecimal notation before printing it to a block of css or saving to the database. Many themes like to introduce functionality, whether it be core-supported or completely custom, to change the color of various parts of the templates. I believe that a function such as `esc_color()` would promote best practices while ensuring that unintended values do not get stored as colors and thus echoed in css blocks potentially breaking display. mfields 4 28607 Make wpautop()'s $allblocks variable filterable Formatting normal normal Awaiting Review enhancement new has-patch 2014-06-21T04:51:59Z 2017-01-18T22:58:34Z "'''The problem''': I'd like <img> tags to ''not'' be wrapped by <p> in the_content(). I used to use a regex filter on the_content to achieve this, but looking at the source for wpautop(), I think it would be much cleaner to ''prevent'' <img>s from being wrapped in the first place by making $allblocks filterable. The <p><img /></p> issue commonly causes formatting issues, and making the block list filterable would let theme/plugin authors change this without and other blocks without breaking stylesheets configured for images in paragraphs. Additionally, I think it's semantically cleaner for a standalone image, since ""The HTML <p> element (or HTML Paragraph Element) represents a paragraph of text."" https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p" walkinonwat3r 1 35201 Mobile email validation Formatting 4.4 normal normal Awaiting Review enhancement new 2015-12-22T17:08:27Z 2017-02-06T09:14:45Z "While testing form submission through Samsung Android devices (Galaxy S6 Edge and Galaxy Note 5), we noticed that when user selects their email from the field history dropdown, it appends a space at the end of the email address. This invalidates the email when using the is_email validation function in wp-includes/formatting.php. A fix I am currently using is simply adding a trim function to the email address in the first line of the function... $email = trim($email); This resolves the Samsung bug and passes the email validation. I hope this helps. " njbebop 56774 Need more options on pre-existing blocks. Formatting 6.0.2 normal normal Awaiting Review enhancement new 2022-10-09T20:46:32Z 2022-10-09T20:46:32Z "I have the following queries regarding css customisation through pre-existing blocks. I want to add an option to: Add borderRadius to featured/post-image/cover/image Add breakpoints (let's say Bootstrap 5 responsive grid) More control over navigation/header padding/margin Set a default image when the post featured image is missing More control on the drop-down, especially translucent background-color and border-radius" adsingh14 41422 Need replace_filter() function for improved Just In Time filter adjusment Formatting 4.9 normal normal Awaiting Review enhancement new 2017-07-24T09:42:10Z 2017-08-03T15:59:07Z "In the new solution for text widgets there is some Just In Time code that adjusts the attached filter functions. The logic finds the priority before removing the filter function then re-instates the filter with the same priority. This logic assumes that the sequence in which the filter functions have been attached with the same priority are performed doesn't matter. If this is not the case then the order change could affect processing where the filter is shared but invoked for different purposes. e.g. the 'widget_text' filter for Text widget and Custom HTML widget The logic could be improved by implementing a new suite of filter functions including replace_filter(), restore_filter(), disable_filter() and a dummy filter function disabled_filter(). Instead of calling remove_filter() and add_filter() we'd use disable_filter() and restore_filter() disable_filter() is simply replace_filter() using the disabled_filter() function. Example: Filters attached at priority 10 have been set to do_shortcode and balanceTags. With the current logic after JIT replacement the attached filters would have become balanceTags then do_shortcode. Using disable_filter() and restore_filter() the attached filters at priority 10 would be unchanged. " bobbingwide 57021 Sanitize should accept broader types Formatting 6.2 normal normal Awaiting Review enhancement new close 2022-11-07T14:39:00Z 2024-02-07T20:21:43Z "by default $_GET/$_POST can be string|array type. All sanitize functions accept only string, which makes it necessary to validate $_GET/$_POST for `is_string` all the time before calling sanitize function to avoid PHP notices. Instead sanitize function should accept mixed param and validate string internally." kkmuffme 1 39636 Smilies not converted when directly followed by punctuation marks Formatting 4.7.1 normal normal Future Release enhancement new dev-feedback 2017-01-19T10:29:30Z 2022-04-11T03:02:17Z "Steps to recreate: - Create a new post or comment - Insert a smilie directly followed by a period or other punctuation mark such as :). - View the post or comment Expected: Ideally the smilie would show followed by the punctuation mark. I've attached a screenshot showing how a post with the following text appears. Smiles with a space between them and the punctuation mark show, but the others do not. {{{ This is a test :). It uses smilies :) If a smilie has punctuation directly after, it is not converted :(! :( The expected behavior would be to look like this: :) ! :) , However instead they appear as this :)! :), }}} " ourvalley 53709 Spaces as <br> in RSS Excerpts Formatting 5.8 normal normal Awaiting Review enhancement new 2021-07-21T06:39:54Z 2021-07-25T02:32:39Z "**Problem:** if I use RSS block and want to show text excerpts, all <br> elements missing. It looks not very good, like missing spaces after some sentences. Look at the image, I highlighted places where is <br> in original RSS feed. [[Image(https://i.imgur.com/P6MsiL6.jpg)]] Feed: [https://store.steampowered.com/feeds/news/app/1306770/?cc=RU&l=russian&snr=1_2108_4__2107] **Suggestion:** RSS block should display all <br> as spaces in excerpts." arskrigitsioniets 39674 Special characters are encoded in the database, for site settings options Formatting 4.7.1 normal normal Awaiting Review enhancement new 2017-01-24T09:50:40Z 2017-01-24T09:53:18Z "If you change the name of the blog in the settings page, for example to ""Donald's blog"", we can see in the mysql database, the result is ""Donald's blog"" for the '''blogname''' option name, so I can not understand why this happening, I think in the database the result should be the same of what we type. All sensitization actions I think must be used on the front (page view) side not on the database side (before submitting to the database). I use Windows 64b, PHP: 7.0.4, WordPress: 4.7.1 " alexvorn2 3 52886 Update esc_url to allow for specifying an https:// as default protocol Formatting normal normal Future Release enhancement new has-patch 2021-03-22T18:00:37Z 2022-07-05T14:51:36Z " If no protocol is specified for esc_url the function will automatically prepend the http:// protocol. This is likely now the wrong assumption, but potentially can break backwards compatibility if changed, since developers may rely on this. So this change proposes an additional parameter to the function to specify a default protocol, keeping the old default but now allowing for one to ask for https:// This came up in this ticket: https://github.com/WordPress/gutenberg/pull/30100 The usage could then be: {{{ esc_url( $url, null, 'display', 'https://' ); }}}" mkaz 55962 Upgrade `sanitize_hex_color()` to CSS Color Level 4 pbearne Formatting normal normal Future Release enhancement assigned dev-feedback 2022-06-11T04:57:08Z 2024-01-17T00:09:09Z "I’ve noticed that the `sanitize_hex_color()` function unsupports the CSS Color Level 4 with the alpha channel and can therefore not be used. As users are given the ability to provide settings by configuration filters in a mini-plugin or in their theme’s `functions.php`, they may wish to configure opacity alongside. The fix is to extend the validation condition of `sanitize_hex_color()` from: `if ( preg_match( '|^#([A-Fa-f0-9]{3}){1,2}$|', $color ) )` to `if ( preg_match( '|^#([A-Fa-f0-9]{3,4}){1,2}$|', $color ) )`" anrghg 56120 "WordPress should add a space character on every possible ""wrap point"" in a post title when building ""html title"", ""og:title"" and so on" Formatting normal normal Awaiting Review enhancement new dev-feedback 2022-07-01T05:13:27Z 2022-07-05T05:23:50Z "In WordPress it is possible to use html tags inside posts title. This is very nice: for example, it allows to use italics, and to make posts titles wrap where one wants. When the latter is the case, though, the titles get displayed good in the post, but not in the browser's window title (that usually the browser builds after the `<title>Foobar` html entity), and not in the link previews that one can get by linking a post into a social network post (that usually have their title based on the `` entity). For example, a post title like `First line
    second line
    third line` will result in a `First linesecond linethird line` entity and in a `` entity, that will result in ugly and difficult to read browser window and link previews titles. This could be avoided by changing WordPress code so that it added a space character on every possible ""wrap point"" (`
    `, `

    `, `` and so on) in a post title when building ""html titles"", ""og:title""s and the likes." pezcurrel 43156 _walk_bookmarks(): please add the link id as HTML id attribute. Formatting 4.9.2 normal normal Awaiting Review enhancement new 2018-01-24T17:28:33Z 2018-01-24T17:28:33Z "Hi, would it be possible to add an HTML attribute that contains the WP link ID when outputting the a blogroll link with _walk_bookmarks() ? It would be nice to be able to customize links with CSS. I know it is possible to do it by hooking a function on 'wp_list_bookmarks', but... what a waste of time for nothing :) Thanks" grosbouff 1 56663 `tag_escape()` does not follow naming convention. Formatting normal normal Awaiting Review enhancement new 2022-09-27T03:08:33Z 2022-09-27T14:06:24Z "In WordPress, escaping functions generally use the naming convention `esc_thing()`. The `tag_escape()` function and it's associated hook do not. Is it worth renaming each to either `esc_tag` or the more precise `esc_html_tag`? There is some [https://wpdirectory.net/search/01GDYE8DKXN527KR6GDA24HCE2 use within the plugin repository] but not a huge amount. " peterwilsoncc 3 29910 esc_attr does not properly deal with json_encode Formatting normal normal Awaiting Review enhancement new needs-refresh 2014-10-09T17:54:32Z 2017-05-07T03:11:39Z "Current doing something like esc_attr( json_encode( $data ) ); doesn't work properly. Since the input to json_encode() above can contain '"'. And for calls to json_encode() lacking the JSON_HEX_AMP option, that '"' is left unaltered. Running '"' through esc_attr() also leaves it unaltered since esc_attr() does not double-encode. This means we end up with an attribute like {{{ data-gallery=""{"foo":"""} }}} which is interpreted by the browser as {{{ {""foo"":""""""} }}} which results in a JSON decoded error. The preferred workaround is to include the JSON_HEX_AMP (and friends) options, but these are not available until 5.3.0. Alternatively, we can use _wp_specialchars( , , , true ) instead of esc_attr(), which will double-encode. Since we can't rely on JSON_HEX_AMP, we do both. I would like to see a function like {{{ esc_json_encode( $data ) }}} That you can use to encode json data and pass it to the html. I have included a file that includes a functions that does just that. " enej 2 46188 esc_html does not have support for multiline output. esc_br_html or line-breaking parameter for esc_html is missing Formatting 5.0.3 normal normal Awaiting Review enhancement new 2019-02-05T12:40:02Z 2019-03-02T12:24:33Z "Let's say that we want to save not a title, but a block of text in the database. So we have to support multiline escaping. Now I have to do this: {{{#!php itemDescription = $printItemDescription; }}} But then the reviewers at Envato and other coding standards fans are not happy that at the template file I use: {{{
    }}} While following the concept of of 'escaping at the template' would could be instead 'esc_br_html': {{{
    }}} or with `fuction esc_html($text, $escapeLineBreaks = FALSE) {...}` {{{
    }}} I just see a lot of confusion and misinterpreation of escaping of text that has multiple lines, and there is NO function. And we should not do explode, implode, array_map things inside the template code, as the template is for designers, and ever CSS developer has to be able easily understand the template, so there so be no explodings, implodings. " KestutisIT 33204 kses $allowedposttags should support microdata Formatting normal normal Awaiting Review enhancement new 2015-07-30T10:30:26Z 2018-11-15T13:27:39Z "It should support more attributes: itemscope, itemprop, itemref, itemtype and itemid check out https://en.wikipedia.org/wiki/Microdata_(HTML)#Global_attributes" wordpressplugindeveloper 6 32787 make_clickable filter johnjamesjacoby Formatting 0.71 normal normal Future Release enhancement assigned needs-unit-tests 2015-06-25T09:38:02Z 2022-08-02T13:01:09Z "Hi, it could be very usefull to add filters to regex callback functions in make_clickable : _make_url_clickable _make_web_ftp_clickable_cb _make_email_clickable_cb Example : {{{ function _make_email_clickable_cb($matches) { $email = $matches[2] . '@' . $matches[3]; $href = apply_filters( 'make_email_clickable_href', 'mailto:'.$email ); $text = apply_filters( 'make_email_clickable_text', $email ); $html = apply_filters( 'make_email_clickable_html', '
    '.$text.'' ); return $matches[1] . $html; } }}} Thank you." tlexcellent 40569 next_post_link parameters $format and $link, have default values that produce awkward to use output Formatting 4.7.4 normal normal Awaiting Review enhancement new 2017-04-26T02:45:16Z 2017-04-26T02:49:11Z "The default output when using the default next_post_link() is: {{{ Post Title Linked here » }}} Note how the » is left outside of the linked text by default. I believe for most users this will cause a styling issue to fix as soon as you use this function, and otherwise, seems improper for a default output. I used next_post_link() with the following values to get what I think should be default output behavior {{{ next_post_link( ""%link"", ""%title »"" ); }}} Which outputs: {{{ Post Title Linked here » }}} Note that the » is now inside of the linked text, and any css applied to the next post link will also affect the » by default, and no changes to function parameters would be required by users. To implement this enhancement, I believe you would simply move the » into the default value for the $link parameter, and out of the $format parameter default value." bhartlenn 46329 sanitize_text_field after 5.1 update should account for __toString() methods Formatting 5.1 normal normal Awaiting Review enhancement new 2019-02-23T15:34:50Z 2019-02-24T22:54:46Z "Since 5.1 the `sanitize_text_field` changed to check if the parameter is an object or array. That broken one of my codes and possibly for other people too because I was passing a `SimpleXMLElement Object`. It has a magic `__toString()` method that gets called when you do that type conversion. As @iCaleb suggested in #41450, we may want to add another check. {{{#!php ""\xf0\x90\x8c\xbc"", // 'Valid 4 Octet Sequence' => ""\xf8\xa1\xa1\xa1\xa1"", //'Valid 5 Octet Sequence (but not Unicode!)' => ""\xfc\xa1\xa1\xa1\xa1\xa1"", //'Valid 6 Octet Sequence (but not Unicode!)' => ""Iñtërnâtiônàlizætiøn\xf0\x90\x8c\xbcIñtërnâtiônàlizætiøn"", // valid four octet id 'Iñtërnâtiônàlizætiøn', // valid UTF-8 string ""\xc3\xb1"", // valid two octet id ""Iñtërnâtiônàlizætiøn\xe2\x82\xa1Iñtërnâtiônàlizætiøn"", // valid three octet id ); $invalid_utf = array( ""\xc3\x28"", //'Invalid 2 Octet Sequence' => ""\xa0\xa1"", //'Invalid Sequence Identifier' => ""\xe2\x28\xa1"", //'Invalid 3 Octet Sequence (in 2nd Octet)' => ""\xe2\x82\x28"", //'Invalid 3 Octet Sequence (in 3rd Octet)' => ""\xf0\x28\x8c\xbc"", //'Invalid 4 Octet Sequence (in 2nd Octet)' => ""\xf0\x90\x28\xbc"", // 'Invalid 4 Octet Sequence (in 3rd Octet)' => ""\xf0\x28\x8c\x28"", //'Invalid 4 Octet Sequence (in 4th Octet)' => chr(0xE3) . chr(0x80) . chr(0x22), // Invalid malformed because 0x22 is not a valid second trailing byte following the leading byte 0xE3. http://www.unicode.org/reports/tr36/ chr(0xF8) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80), // Invalid UTF-8, overlong 5 byte encoding. chr(0xD0) . chr(0x01), // High code-point without trailing characters. chr(0xC0) . chr(0x80), // Overlong encoding of code point 0 chr(0xF8) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80), // Overlong encoding of 5 byte encoding chr(0xFC) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80) . chr(0x80), // Overlong encoding of 6 byte encoding chr(0xD0) . chr(0x01), // High code-point without trailing characters ""Iñtërnâtiôn\xe9àlizætiøn"", // invalid UTF-8 string ""Iñtërnâtiônàlizætiøn\xfc\xa1\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn"", // invalid six octet sequence ""Iñtërnâtiônàlizætiøn\xf0\x28\x8c\xbcIñtërnâtiônàlizætiøn"", // invalid four octet sequence ""Iñtërnâtiônàlizætiøn \xc3\x28 Iñtërnâtiônàlizætiøn"", // invalid two octet sequence ""this is an invalid char '\xe9' here"", // invalid ASCII string ""Iñtërnâtiônàlizætiøn\xa0\xa1Iñtërnâtiônàlizætiøn"", // invalid id between two and three ""Iñtërnâtiônàlizætiøn\xf8\xa1\xa1\xa1\xa1Iñtërnâtiônàlizætiøn"", // invalid five octet sequence ""Iñtërnâtiônàlizætiøn\xe2\x82\x28Iñtërnâtiônàlizætiøn"", // invalid three octet sequence third ""Iñtërnâtiônàlizætiøn\xe2\x28\xa1Iñtërnâtiônàlizætiøn"", // invalid three octet sequence second ); }}} ---- Notes and more info: {{{ In order process UTF-8 strings, you must build PCRE to include UTF-8 support in the code, and, in addition, you must call pcre_compile() with the PCRE_UTF8 option flag, or the pattern must start with the sequence (*UTF8). When either of these is the case, both the pattern and any subject strings that are matched against it are treated as UTF-8 strings instead of strings of 1-byte characters. UTF-8 was devised in September 1992 by Ken Thompson, guided by design criteria specified by Rob Pike, with the objective of defining a UCS transformation format usable in the Plan9 operating system in a non- disruptive manner. Char. number range | UTF-8 octet sequence (hexadecimal) | (binary) --------------------+--------------------------------------------- 0000 0000-0000 007F | 0xxxxxxx 0000 0080-0000 07FF | 110xxxxx 10xxxxxx 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx A UTF-8 string is a sequence of octets representing a sequence of UCS characters. An octet sequence is valid UTF-8 only if it matches the following syntax, which is derived from the rules for encoding UTF-8 and is expressed in the ABNF of [RFC2234]. UTF8-octets = *( UTF8-char ) UTF8-char = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4 UTF8-1 = %x00-7F UTF8-2 = %xC2-DF UTF8-tail UTF8-3 = %xE0 %xA0-BF UTF8-tail / %xE1-EC 2( UTF8-tail ) / %xED %x80-9F UTF8-tail / %xEE-EF 2( UTF8-tail ) UTF8-4 = %xF0 %x90-BF 2( UTF8-tail ) / %xF1-F3 3( UTF8-tail ) / %xF4 %x80-8F 2( UTF8-tail ) UTF8-tail = %x80-BF }}} * http://www.pcre.org/pcre.txt * http://us1.php.net/manual/en/pcre.constants.php * http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 * http://en.wikipedia.org/wiki/Unicode * http://unicode.org/faq/utf_bom.html * http://www.unicode.org/versions/Unicode6.1.0/ch03.pdf * http://www.pcre.org/pcre.txt * http://tools.ietf.org/rfc/rfc3629.txt * http://www.unicode.org/faq/utf_bom.html * http://www.unicode.org/versions/Unicode5.2.0/ch03.pdf * http://www.unicode.org/reports/tr36/ * http://tools.ietf.org/rfc/rfc3629.txt Related Tickets: * https://core.trac.wordpress.org/ticket/11175 * https://core.trac.wordpress.org/ticket/28786 " askapache 2 49484 Add option 'OR' to wp_sprintf_l() SergeyBiryukov Formatting normal normal Future Release feature request reviewing has-patch 2020-02-20T16:59:16Z 2020-10-20T15:55:09Z "The result of a this function is filtered by wp_sprintf_l() with ' and ' type delimiters. Would it be awesome to include a third optional argument, a delimiter type ' or ', keeping the default ' and ' for backward compatibility. Current use: {{{wp_sprintf( '%s: %l', __( 'Some cool numbers' ), array( 1, 5, 10, 15 ) );}}} Output: ''Some cool numbers: 1, 5, 10, and 15'' Example of use: {{{wp_sprintf( '%s: %l', __( 'Some cool numbers' ), array( 1, 5, 10, 15 ), 'OR' );}}} Optional output: ''Some cool numbers: 1, 5, 10, **or** 15''" pedromendonca 43205 Allow filtering the list of characters to be replaced by wptexturize Formatting normal normal Awaiting Review feature request new 2018-02-01T18:41:46Z 2019-01-16T06:43:09Z "I'd like to selectively disable the replacement of a subset of the characters replaced by wptexturize. There are already filters to control which html tags & shortcodes are exempt from being texturized: `no_texturize_shortcodes` & `no_texturize_tags`. I think a similar filter should exist to control which characters are texturized. This filter would take at least two parameters: `$dynamic_characters` & `$dynamic_replacements`. I am interested in writing a patch if you'll consider it. Would this enhancement be acceptable?" cyclic 54604 Allow for nestable superscript tags Formatting normal normal Awaiting Review feature request new has-patch 2021-12-09T10:22:30Z 2021-12-14T00:27:10Z "Allow for nestable tags required for proper mathematical notation, s. https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-sub-and-sup-elements" tobiaseichert 53096 Color Settings include alpha channel for transparency Formatting normal normal Awaiting Review feature request new 2021-04-27T08:31:13Z 2021-04-27T08:31:13Z "a good feature for Gutenberg could be to add the alpha channel for transparency wherever (if it's possible) where the user can select a background or a foreground color since it is used a lot from designers. The best way is to add it as rgba first or/and as hexadecimal with the 2 digits in the end like #00000020 (black with 20 as hex for opacity)" fotisps 55326 Conditional classes directives in formatting Formatting 5.9.1 normal normal Awaiting Review feature request new 2022-03-06T18:01:43Z 2022-03-07T02:02:55Z "Hey people, I am here with a suggestion and core feature request for conditional classes directive for HTML class attribute. Similar to [Laraval conditional-classes](https://laravel.com/docs/9.x/blade#conditional-classes) If this function is already available in WP then please let me know about it, I wasn't able to find a similar function. There are many cases in development where we're creating a `$clasess` array variable and then with if-else or using conditional statements adding classes into it. While working with PHP code the code/file format in files look good and it's easy to manage but sometimes with HTML and PHP combination writing inline if-else make the code/file format ugly. and we also have to repeat the escape and echo things again n again if we have a couple of conditional CSS to write. I have created this custom code to use in my custom development, which allows passing set or array or single sting or strings with comma/space and then it conditional validate and output the string. {{{#!php $class_name ) { // Check if array has integer key, which means no conditions // are set for this class, if class is not empty then keep it. if ( is_int( $key ) && is_string( $class_name ) && ! empty( $class_name ) ) { $class_set[] = trim( $class_name ); } elseif ( ! empty( $class_name ) && ! empty( $key ) ) { $class_set[] = trim( $key ); } } /** * Filter array with empty values. * Make array unique. * Sanitize class name. * Implode by space. */ $output = implode( ' ', array_map( 'sanitize_html_class', array_unique( array_filter( $class_set ) ) ) ); } } if ( $echo ) { echo esc_attr( $output ); } else { return esc_attr( $output ); } } }}} so using this function we could save time to not write a few lines of if-else and keep the code look clean and simple as well, e.g. {{{#!php '; }}} this will convert into this. {{{#!php has_post_thumbnail(), 'is-featured' => has_term( 'featured', 'category' ), ), ); echo '
    ; // false is for returning the values. }}} however, it does not save too many lines but we are repeating things less and I feel it looks clean in code reading. :) But this function can be very useful while writing mixed HTML and php. {{{#!php "">
    }}} {{{#!php is_sidebar_active( 'right-sidebar' ) && is_sidebar_active( 'righleft-sidebar' ), 'col-md-8' => ! is_sidebar_active( 'right-sidebar' ) && is_sidebar_active( 'righleft-sidebar' ), 'col-md-8 md-offset-4' => is_sidebar_active( 'right-sidebar' ) && ! is_sidebar_active( 'righleft-sidebar' ), 'col-md-8 md-offset-2' => ! ( is_sidebar_active( 'right-sidebar' ) && is_sidebar_active( 'righleft-sidebar' ) ), ); ?>
    "">
    }}} Please let me know what you people think about having a directive function for classes. Thanks," vijayhardaha 57434 Extending the list of supported inline CSS properties allowed by safe_style_css Formatting normal normal Awaiting Review feature request new 2023-01-09T15:18:16Z 2023-01-09T15:18:16Z "I propose extending the list of safe CSS properties allowed in KSES to provide a better UX. My current employer has a steady drip of requests to add new properties, `box-shadow`, `word-wrap` etc., that look like they could be easily supported. We also get requests for positioning properties like `top`, `left` etc., which can be used for clickjacking and the like. I think it would be good to widen support and also put it on record why specific properties are not supported. I am happy to do most of the work preparing the lists of properties, but first, I would like to gauge the general appetite for such a change. Please chime in with your thoughts.  " mk9287 51040 How about having a native BR to Newline method, i.e. br2nl Formatting normal normal Awaiting Review feature request new dev-feedback 2020-08-17T09:54:59Z 2023-12-14T20:35:11Z "Is there a specific reason that WordPress does not have yet (?) a function to convert Line break (`
    `) to Newline (`\n`)? This is useful for `textarea` fields. One of the use cases could be a multiline address used as metadata in the user profile. In the `textarea` user enters like: {{{ Building name Street address Postal code. Country name }}} When saved we usually convert all line breaks into HTML line breaks for easier rendering in the front-end. We do this using `nl2br` method. So in the database, the above becomes: {{{ Building name
    Street address
    Postal code. Country name }}} However, when the above information is populated in edit mode, it comes up like {{{ Building name
    Street address
    Postal code. Country name. }}} A `br2nl` method will make life much easier. {{{#!php ) into newline character (\n) * * @return null|string|string[] * Since 5.5 */ function br2nl( $input_string ) { return preg_replace('//ius', ""\n"", str_replace( ""\n"", """", str_replace( ""\r"", """", htmlspecialchars_decode( $input_string ) ) ) ); } }}} " subrataemfluence 1 57909 "It's not logical that the ""Read more""-button disappears when you create a manual excerpt" Formatting 1.5 normal normal Awaiting Review feature request new close 2023-03-12T14:05:20Z 2023-03-14T10:35:34Z "When you create a manual excerpt on a Post, the ""Read more""-button disappears on the Blog-page. That is NOT logical, if you ask me! I was told by the Astra Pro Theme support that this is a default behaviour of WordPress. To me, this is a bug, but formally I guess it's a feature request, to let the user decide whether to have a ""Read more""-button or not, and how it should look! And NOT let it depend on whether you have created a manual excerpt for that post! I will try to add a screen shot which shows that the ""Read more""-button is only visible on Post-thumbnails where I have not manually created the excerpt." hero2 53229 """Alt Text"" label misaligned in French" audrasjb* Gallery normal normal Future Release defect (bug) accepted has-patch 2021-05-19T07:50:05Z 2021-06-08T17:11:12Z "Hello, In French, in a post edit when adding an image or a gallery block, the ""Alt Text"" label is misaligned with the input field. We can see this behaviour on Ubuntu20.04/Firefox88.0.1 and Chrome 90.0.4430.212. **Step to reproduce** - be sure to have French as language in your profile - in a post add an ""Image block"" - click on ""mediathèque"" to add an existing image - Check an image and see the sidebar " sebastienserre 46538 Aligning gallery results in conflicting classes added Gallery 5.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-03-16T07:55:15Z 2019-08-08T12:44:26Z "When a gallery is created in the Visual editor it's class is set to alignundefined. After it is saved and I view the result it's class has no alignment set. So far so good. When I close the editing and go back to manage posts list and I reopen the same post to be edited the gallery class is still set to alignundefined. Still good. When I set the alignment to 'Align left' and save the post, the result is that the gallery class is set to 'alignleft'. Still good. But here it comes: When I close the editing again and go back to manage posts list and I reopen the same post to be edited the gallery class is now set to 'alignleft alignleft', so twice the same class. And from there on, one 'alignleft' class will be staying in the class attribute. So if I change the alignment to 'Align center' and save the post, the result will be that the class attribute of the
      gallery tag holds the value 'aligncenter alignleft'. This can cause some layout issues, plugin issues etc, etc." janpaulkleijn 3 44394 Error when trying to get the columns of a three-columns gallery. Gallery 4.9.6 normal normal Awaiting Review defect (bug) new has-patch 2018-06-18T12:19:40Z 2018-06-19T08:08:11Z "It seems the `get_post_gallery` function fails to retrieve the column count if it's 3. First, create a gallery. Then, insert 2 or 3 or any number of images and set its column to 3. Then, run this code in the context of a post (content.php / single.php will do): {{{#!php ID, False ); $gallery_images = explode( ',', $gallery['ids'] ); var_dump( $gallery['columns'] ); }}} It will come out as: {{{ Notice: Undefined index: columns in C:\file.php on line 45 }}} " virginthumb 52171 Featured image error in media library, detached. Gallery 5.6 normal normal Awaiting Review defect (bug) new has-patch 2020-12-24T18:52:40Z 2020-12-24T18:52:40Z "Again, I found a nasty software bug in the media library, not the first one. A given image is nicely attached as a featured image, to be seen in the editor, and to be seen nicely when viewed. In the media library, however, it writes to the image that it is detached and has no article title above it. There is no more of this image named file above, so it cannot be said that there is another image attached that looks the same. I tried to save this article several times to see if it was just a temporary error, but it didn't change, the image is still detached. What I have found bugs in the media library so far is I signaled to WP at the bug report address, they also replied the next day that they were happy to receive the reports, but when I asked us to switch to an email contact, they have not appreciated a response ever since. All of this chat was on a public forum where not even a picture can be uploaded. At least you can upload a picture here. https://1drv.ms/u/s!AkY7Ee0Yb2VfhYczhGJepwyLK8JsaQ?e=zwz8tr [[Image(""https://1drv.ms/u/s!AkY7Ee0Yb2VfhYczhGJepwyLK8JsaQ?e=zwz8tr"")]]" hobbiasztalos 7 40692 Filter default image size in gallery Gallery 4.8 normal normal Awaiting Review defect (bug) new 2017-05-08T13:39:43Z 2020-09-21T11:10:24Z "Using the `media_view_settings` filter, I can specify default `link` and `column` settings for new galleries but the `size` parameter is not filterable. For example: {{{ function me_filter_gallery_settings( $settings ) { // This will successfully set the default number of columns to 5 $settings['galleryDefaults']['columns'] = 5; // This does nothing $settings['galleryDefaults']['size'] = 'large'; return $settings; } add_filter( 'media_view_settings', 'me_filter_gallery_settings' ); }}} I know that it’s possible to override these defaults when outputting the gallery via the `gallery_shortcode`. However, this may be confusing to the user who would expect to see the same value for the image size appear when the gallery is generated on the front end as they have seen in the admin. To clarify: at the moment, I can set a default size for gallery images to ‘medium’, for example, although in the Gallery Settings panel in the page editor, the size will still display as ‘Thumbnail’. Indeed, the user could change the value of the size field without actually affecting the image size on the front end. [[Image(https://catapultthemes.com/wp-content/uploads/2017/05/gallery-admin-default-size.jpeg)]] In wp-includes/media-template.php replace lines 775 - 779 with: {{{ foreach ( $size_names as $size => $label ) : ?> }}} This will allow: {{{ function me_filter_gallery_settings( $settings ) { $settings['galleryDefaults']['size'] = 'large'; return $settings; } add_filter( 'media_view_settings', 'me_filter_gallery_settings' ); }}} Thereby allowing plugin and theme developers to set a default value for the image size in galleries." Catapult_Themes 2 60492 Gallery crashes if images have caption. 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 2 39824 Gallery doesn't show images being uploaded adamsilverstein Gallery 4.0 normal normal Future Release defect (bug) assigned dev-feedback 2017-02-09T16:18:43Z 2021-02-17T07:21:08Z "When you insert a gallery with images being uploaded in Edit Post page, the gallery doesn't show the images. '''How to Reproduce''' 1. Open Edit Post page. 2. Insert a gallery with one uploaded image. 3. Select the gallery in tinyMCE then click on Edit. 4. Upload a big image file and/or slow down the internet to buy time for the following actions. 5. Choose Edit Gallery tab then click on Update Gallery button while the big image is uploading. 6. The gallery shows an empty element instead of the image. 7. If you edit the gallery and open Edit Gallery tab after the image uploaded, you'll see it has gone." gonom9 40811 Gallery drag and drop breaks layout Gallery 3.5 normal normal Future Release defect (bug) assigned 2017-05-18T23:40:24Z 2019-12-26T20:50:12Z "Starting with an example gallery: [[Image(https://cldup.com/hcwGa3LYIW-3000x3000.png)]] 1) If I start dragging the nth item in a row, n blank spaces are created in the next row, eg: [[Image(https://cldup.com/_Fbgdjcs1w-3000x3000.png)]] 2) The exception is when I start dragging the last item in a row - as soon as I start to drag, a blank space appears where the current item / the mouse is, and the actual item I am dragging appears a long way from the mouse (in the first position in the next row). [[Image(https://cldup.com/8j0d3aCFrk-3000x3000.png)]] This occurs in Firefox in Windows on a clean WordPress installation with no plugins installed. Testing in Chrome, I get the same results with the exception of dragging the 2nd or 4th item in a row, which work perfectly (1st and 3rd cause gaps; last breaks). I expect this is due to rounding in some way, and it appears to differ based on the width of your browser. If I go into Firefox responsive view and set a width of 1366px, everything works perfectly. 1367px works for all but the last image in a row, while 1369px has everything broken." smerriman 53263 Media galery new libraries Gallery 5.7.2 normal normal Awaiting Review defect (bug) new 2021-05-23T22:31:06Z 2021-05-23T22:31:06Z "Hello! I found a weirdness in wp 5.7.2 I don't know if it's intentional or something went crazy for me. So far, the media gallery has stored images by year / month, but since the transition to 5.7.2 it has been stored in year / month / day libraries. I find this very unnecessary because sometimes I write the article 2-3 days in advance and but it also creates the directory for the day I don’t upload an image. This will waste about 4 kb of storage space on the server for every unnecessarily created empty directory and if I don't pay attention it will be a lot in a couple of years. I tried to look at what they had improved, but found nothing about it. Who can turn off this daily directory somewhere? Have you met this yet? [[Image(https://1drv.ms/u/s!AkY7Ee0Yb2Vfhc0FhdZuP0lQQNjnUg?e=t6lBiE)]]" hobbiasztalos 59799 Post editor Galley size preview images select size default Gallery 6.3.3 normal normal Awaiting Review defect (bug) new 2023-11-03T02:27:50Z 2023-11-03T02:27:50Z "Dears I don't no if this is one bug, but this is what hapend to me: I create one new post I add one gallery I add the images and close Save the post In the resolution say miniature, maybe is thumbnail I am in spanish But in reality use the full size But in the gallery, If I press in resolution and change to medium or miniature The gallery now respect the resolution miniature or medium, etc You can change the default resolution to miniature and left the input select in miniature. Or you change the select input to bigger, because that is the resolution if you no touch nothing in gallery One of the two are wrong, you no can have the select in miniature and show the image bigger. I have jetpack active without cdn Generatepress theme And all my galleries are in bigger size preview! I dont no if make the request here, but I like have one button in media setting for choice the default preview of the galleries, maybe you can add the id post where you no want to change the size preview But will be one good idea for no make one by one Also you can choice mobile and PC different size preview gallery That is my report and idea If have one function for change the preview to medium, great" Guillermo77 56568 Some Cases Image Metadata is not editable. Gallery normal normal Awaiting Review defect (bug) new 2022-09-14T16:23:34Z 2022-09-14T16:23:34Z "[] [[Image()]] Click on the image [] [[Image()]] close the image gallery pop up and click again on the feature image. now i am able to edi the Metadata of the image [
      upload pics
      ] [[Image(
      upload pics
      )]] please look into it." janareddy 17 13429 Updating Link URL on image within Admin with Gallery Gallery 2.9.2 normal normal Future Release defect (bug) new dev-feedback 2010-05-18T01:43:42Z 2023-08-24T19:53:27Z "Image insertion no longer allows url to off site resource within Gallery. When inserting a gallery you are unable to specify the Link URL. It keep reverting back to the default." vshoward 58725 What is the cancellation rate for Frontier Airlines? Gallery 5.8.2 normal normal Awaiting Review defect (bug) new 2023-07-06T09:16:11Z 2023-07-06T09:16:11Z "Frontier Airlines has a cancellation rate that varies depending on several factors. It's crucial to note that the cancellation rate can change over time due to various factors, including external events and industry trends. Frontier Cancellation Policy However, Frontier Airlines strives to maintain a reliable and punctual service for its passengers. The specific cancellation rate for Frontier Airlines cannot be provided with absolute certainty as it is subject to change. Nonetheless, the airline aims to keep cancellations to a minimum and provides its customers with flexibility through its cancellation policy. " skycoair 47922 src attribute in Image Gallery Block is inconsistent with image inserted outside of gallery. Gallery 5.2.2 normal normal Awaiting Review defect (bug) new 2019-08-22T17:20:40Z 2019-08-22T17:20:40Z "Steps: 1. Create an Image Gallery Block. 2. Upload an Image 3. Select ""Link To"" ""Media File"" 4. Preview / Publish post. == What I expect to happen: A thumbnail of my uploaded image shown in the gallery that links to the original uploaded image. i.e. The behaviour should be consistent with images inserted outside of galleries. I expect the resulting source to look like this: (The same as it would be if the image was outside of a gallery) {{{
      }}} == What actually happens: The gallery uses the 1024x sized images that link to the same 1024px sized images, seemingly ignoring the ""Link to"" ""Media File"" specification. The 1024px down-scaled image seems to be selected arbitrarily and the visitor cannot access the full-sized image by clicking on the image in the gallery. This is the corresponding source I actually get: {{{
      }}} Seems the offending issues are that: a. the href points to the down-scaled image, not the media file. b. {{{sizes=""(max-width: 811px) 100vw, 811px""}}} when it should be {{{sizes=""(max-width: 420px) 100vw, 420px""}}} where 420px is my default thumbnail size." bbogart 29379 Add a hook to filter gallery classes Gallery 3.9.2 low normal Future Release enhancement new has-patch 2014-08-26T15:35:45Z 2022-07-12T19:01:32Z "Hi, it would be really great to be allowed to filter the gallery classes. Here's what I suggest : instead of : {{{ $size_class = sanitize_html_class( $atts['size'] ); $gallery_div = ""
    }}} Featured image markup: {{{ }}}" westonruter 43152 Image remains in page after deleting from Media Library Media 4.9.2 normal normal Future Release defect (bug) new 2018-01-24T00:31:39Z 2019-04-15T15:21:13Z "Whilst editing your page, if you open the Media Library (using the Add Media button), and then delete an image that is currently added to the page, the image remains on the page after closing the pop-up window. To Reproduce: - Insert Image on Page - Click Add Media button to display the Media Library popup Window - Select the image that you previously inserted on the page and delete the image - Close the media pop-up window - Image that was deleted remains on page Here's a gif to show an example - https://cl.ly/1I2r3q3H301J I originally raised this as an [https://github.com/WordPress/gutenberg/issues/4610 issue with Gutenberg], but it was suggested to raise it here since it's also an issue with the classic editor." ahortin 59740 Image scaling being applied inconsistently Media normal normal Awaiting Review defect (bug) new 2023-10-26T00:31:09Z 2023-10-26T16:33:56Z "My understanding was that images over 2560px would be scaled and a ""-scaled"" named version created. This doesn't happen every time, though. What exactly are the criteria? It doesn't happen for me on some larger images over 8000px wide. But does then happen on smaller 5000px images. I have created many test images of different sizes, and I cannot figure out what is causing this discrepancy. Some get scaled, and some do not. And it doesn't appear to be related to pixel dimension. If there is something more than the pixel dimension being used to determine whether a scaled version is created, where is the documentation to explain this?" whistlerdan 46470 Image srcset and sizes not output in classic block. Image attachment removed Media 5.1 normal normal Awaiting Review defect (bug) new 2019-03-12T03:16:28Z 2019-04-04T13:56:29Z "I installed the Gutenberg plugin on one of my sites, which was eventually updated to WP 5.0.3 and then WP 5.1. In all that time, most of the content remained unchanged. Looking at it now, most of the images in the library are unattached and embedded images produce the old/simple ""IMG"" tag, with no ""srcset"" or ""sizes"" attributes. I've tried attaching images in the media library. No change. I've tried setting $content_width. No change. Than only thing that makes any difference is editing the post/page, removing the embedded image and simply embedding it again. In the editor's HTML view, the respective ""IMG"" tag looks almost identical, except possibly the order of attributes. When converting tinyMCE content to blocks, WordPress should convert all of the required metadata, but seems like it doesn't." galbaras 6 54839 Image upload after dirty filter requires filter change before it can be inserted to page Media normal normal Future Release defect (bug) new 2022-01-17T08:15:54Z 2024-02-05T20:14:53Z "Steps: 1. Open media library popup. 2. Change date filter. 3. Upload new image. 4. See uploaded image is not visible in list nor selectable. (Select button is disabled) 5. Change filter to match the new image uploaded, See image is visible. Expected behavior: 1. Uploaded image should be selectable if it matches filter (or should reset filter on tab change). Current behavior: 1. Uploaded image after dirty filter is not selectable." utkarshpatel 50210 Image upload stuck - Upload files Media 5.4.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-05-19T16:14:31Z 2022-03-16T16:20:19Z When I try to upload an image in the admin media, it gets stuck when processing... the browser freezes completely, I tried it with firefox and chrome. The problem remains the same. The browser freezes and I can do nothing more than close the browser. I can't upload files anymore. bustel 51133 Image uploaded through third party plugin showing in media but not showing up in post Media 5.5 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-08-25T07:46:26Z 2023-01-31T13:13:54Z I created a plugin which uploads Image to upload folder. It sends blob through ajax and uses wp_insert_attachment insert as attachment, wp_generate_attachment_metadata to generate meta data and uses wp_update_attachment_metadata to update meta data of attachment. And it shows up in media without file name and when I pragmatically insert attachment to the post using wp_get_attachment_image , it only display's attachment's name not image file. ujw0l 57637 ImageEdit component can be exited with unsaved state Media 6.1.1 normal normal Awaiting Review defect (bug) new has-patch 2023-02-06T02:30:24Z 2023-02-06T02:42:35Z "The image-edit component https://github.com/WordPress/WordPress/blob/master/wp-admin/js/image-edit.js used to crop and perform other edit interactions on images has a `notsaved` method, which is ''sometimes'' called to prevent closing the dialog if the user has made edits to the image without saving the image. This is not consistently checked, which means that users can exit the dialog without being asked if they want to save unsaved changes. Steps to reproduce on a post with Gutenberg: 1. Create a new post, or edit an existing post. 2. Add a new image block, or click on an existing one. 3. Click on the ""Replace"" button on the block control bar. 4. Click on ""Open Media Library"" 5. Click on ""Edit Image"" 6. Make a crop to the image by click-and-dragging on the image, then click ""Crop"". 7. The modal is now in an unsaved state. 8. Clicking ""Cancel"" below the image triggers the `notsaved()` check, where if the user clicks ""Cancel"", the closure fails. 9. Clicking here does not trigger the check, and closes the dialog: the greyed-out modal background, the modal's ""X"", the modal's ""Back"" button in the bottom right, the browser close-tab button The above workflow reproduces in the Media Library, if you click ""Edit Image"" in the per-image view. The simple fix would be to remove the `if ( warn )` conditional here, and only check if `notsaved()` before closing: https://github.com/WordPress/WordPress/blob/0ed99784d829eec393a9b2fa3b2c71824295c95c/wp-admin/js/image-edit.js#L848-L853 This affects WP 6.1.1 and, 6.1.0, 6.0, and probably previous versions." benlk 2 59577 Images in block templates or patterns do not have loading optimization attributes flixos90 Media normal normal 6.6 defect (bug) assigned 2023-10-09T19:12:23Z 2024-03-13T15:41:15Z "This ticket is created as a break out from #59464: While that ticket was also initially pointing out the lack of loading optimization attributes in TT4, it has been primarily focused on the lack of the dimension attributes `width` and `height` from images that are hard-coded in the theme (e.g. in a `core/image` block within the theme's block templates, template parts, or patterns). As noted in https://core.trac.wordpress.org/ticket/59464#comment:16 however, there is another arguably more severe problem: Even if that bug was fixed for TT4, most of those images ''still'' wouldn't receive the loading optimization attributes. That is because TT4 includes most of its images directly in block templates, or in patterns, outside of template parts, post content, or widget content. Currently, any images that aren't covered by more specific contexts than `template` (which is for the overall block template) are not handled at all by `wp_filter_content_tags()`, impacting TT4 and likely several other block themes. This ticket is focused on that problem, trying to identify a solution to also consider images in the overall block template, while avoiding duplicate processing of images that were already processed with a more specific context." flixos90 3 48919 Images wont upload with new Big Images fiunctionality Media 5.3 normal normal Awaiting Review defect (bug) new dev-feedback 2019-12-09T15:20:52Z 2020-05-22T04:14:34Z "With version 5.3 came a new ability to create a big optimized image if the client uploads a very large image. This sort of replaces the full image, although it seems to retain the original image on the server. (not sure why but thats another issue...?) Seen here: https://make.wordpress.org/core/2019/10/09/introducing-handling-of-big-images-in-wordpress-5-3/ Unfortunately there seems to be some bugs. Clients can no longer upload files. They get an error: ""Post-processing of the image failed. If this is a photo or a large image, please scale it down to 2500 pixels and upload it again."" The images uploaded are over 2500, but under 2MB. I tried setting this new functionality to false using the hook I keep finding online: {{{ add_filter( 'big_image_size_threshold', '__return_false' ); }}} This did not work. I tried returning a new size over 2500 and it still wont work. Is this a bug or am I and everyone on the internet using this hook wrong? Thank you. " shamai 59638 Images: repeating a single image causes `fetchpriority` to be repeated Media normal normal 6.6 defect (bug) new dev-feedback 2023-10-16T20:02:35Z 2024-02-17T13:41:06Z "I noticed a small bug in how core auto-applies the `fetchpriority=""high""` attribute. This feature aims to add this attribute only to the LCP image, which is frequently the first large image in a layout. The bug is this: if a user inserts a single image several times, every instance of the image will have the `fetchpriority=""high""` attribute. === Steps to reproduce 1. create a new post 2. insert a large image at the top of the post 3. Insert the image several more times, so the post now contains several copies of the image. 4. save and view the post source code **Expected result:** The first large image contains the `fetchpriority=""high""` attribute. **Actual results:** Each copy of the image contains the `fetchpriority=""high""` attribute. === Notes I am posting this here because it feels like a bug, even though I'm not sure we should fix it: - The image URL for each item is the same so there may be zero impact to repeating the attribute (the same URL is prioritized). Unless there is a case where the actually fetched image from the srcset could be different for two copies of the same image? - There could be a slight negative performance impact when fixing this since the repetition is the result of an optimization where we only consider each unique image once." adamsilverstein 59764 Imagick squashes image for cropped size Media 6.3.3 normal normal Awaiting Review defect (bug) new 2023-10-29T12:02:00Z 2023-10-29T12:02:00Z "I have an image sub-size that uses crop instead of scale, and when the resulting image should upscale, GD does it OK-ish, Imagick is squashing the content. In both cases, the resulting image has the expected width and height, but the content in the image generated with Imagick is not squashed. This happens for a portrait ratio of the original image. How I replicate this: - sub-size: 1440x760 px + crop - original file: 1152x2048 px - using the `image_resize_dimensions` filter that returns the upscaled computation - upload file using GD - upload the same file using Imagick GD result - OK https://imgur.com/EQTesQT Imagick result - not OK https://imgur.com/G0hjmo0 " Iulia Cazan 1 55302 Improve media library upload progress indicator Media normal normal Awaiting Review defect (bug) new 2022-03-03T04:56:51Z 2022-07-06T16:47:18Z "When uploading in the media library, the progress bar shows the ''upload progress'' of the image. Once the image is fully uploaded WordPress creates the sub-sized images used to serve images on the front end. Depending on your configuration (theme, plugins, server), and the upload size this can take quite a while to complete. During sub-sized image creation, the progress bar for the image shows as ""full"". Finally, when the image sub size generation completes, the image changes from a gray box to the thumbnail of the uploaded image and if multiple images have been uploaded, the uploader moves on to the next image. Screencast attached. The problem here is that no progress is shown for the image regeneration phase. Uploading in the block editor works a bit differently: as soon as the image is dropped onto the editor to upload, a grayed out version of the image is shown with a spinner. The spinner spins during the upload and continues spinning during sub-size creation. Finally, when all sub sizes are created, the image becomes fully saturated and the spinner goes away. **Looks like this is changing to a progress bar though**, see https://github.com/WordPress/gutenberg/issues/13984 & https://github.com/WordPress/gutenberg/tree/trunk/packages/block-editor/src/components/media-upload-progress Two potential improvements we could make in the media library: 1. immediately show the thumbnail of the dropped image instead of the gray box 2. switch to a spinner entirely, or for the image regeneration phase or try to show actual progress. The challenge with showing progress is we don't know how long the request will take on the server." adamsilverstein 8 47456 Improve the user interface to ensure correct usage of the image alt text joedolson* Media high normal Future Release defect (bug) accepted 2019-06-01T11:15:23Z 2024-03-23T20:36:09Z "Splitting this out from the [https://github.com/WordPress/gutenberg/issues/created_by/karlgroves WPCampus accessibility report issues on the Gutenberg GitHub], see https://github.com/WordPress/gutenberg/issues/15309 as part of the reported issue applies to the Media Views in core. Related: #41467 == Problem A common misconception is that the image alt text should always be a ""description of the image"". In most of the cases, this is misleading. Actually, the image alt text needs to describe the purpose of the image in its specific context. For more details, see the W3C Alt Text Decision Tree tutorial (https://www.w3.org/WAI/tutorials/images/decision-tree/). WordPress stores a ""default"" alt text in the media object. While storing a default value may help users when they build their content, it also promotes a misunderstanding of the purpose of the alt text. In the accessibility team, we think this is more an user interface problem rather than a data model problem. The user interface should ensure users clearly understand that alt attributes are context sensitive and that the ""default"" alt value needs to be changed (or even removed) based on the specific usage. == Data model problem: The alt text is not constant: it needs to describe the image purpose on a case by case basis. == User interface problem: The alt text from the media library is automatically assigned as the alt text within the post: this is not always correct. Actually, in most of the cases it produces wrong alt text. == Improvements to evaluate Credits: Some of the following points come from @carlseibert and @joedolson comments on #41467, and from the Gutenberg GitHub issue. 1. allow saving multiple alt attributes for a given media object: a default attribute and a set of alternates users can select from 2. have something in the editor UI that would let users know whether the alt text was filled, and what it says 3. modifications on the Media views side to differentiate between the alt text describing the image and the alt text for a specific usage, which might override the normal alt text without changing it 4. all linked images must have alternative text if the image is the sole content of the link, and the action should be blocked if this is not true 5. any guidance given should inform users that the text provided needs to inform the user of the link action 6. include a warning about linking directly to the image file: linking directly to images is inadvisable, because the resulting image view in the browser does not include alternate text 7. when the image is linked to the image file itself, the alt text can remain the normal alternative text for that image, with an appended indicator that the link is to view the image 8. worth considering plugins that add ""lightbox"" modals, sliders and the like often use the alt text value to add contextual text within their UI 9. images used to link to other resources should offer a field to add dedicated link text separate from the image's own description; in this case the alt text should be empty. Example markup (simplified):" afercia 40638 In attachments taxonomy displays slug instead of name Media 4.7.4 normal normal Awaiting Review defect (bug) new has-patch 2017-05-02T16:53:50Z 2020-02-04T18:47:50Z "Hello! Custom taxonomy registered for attachment displays as '''slug''' instead of '''name'''. It looks like this: [[Image(http://caseforyou.pro/two.png)]] It would be much better if it will looks like this: [[Image(http://caseforyou.pro/one.png)]] It is a only one thing to do. Replace string {{{#!php $values[] = $term->slug; }}} to {{{#!php $values[] = $term->name; }}} in file /wp-admin/includes/media.php at line number 1652. The code fragment: [[Image(http://caseforyou.pro/three.png)]] Could you do this change and inlclude in one of the followings releases? Thank you!" snookerist 1 43930 Inaccurate width and height returned when using wp_get_attachment_image_src on the backend. Media 4.9.5 normal normal Awaiting Review defect (bug) new 2018-05-02T14:56:44Z 2018-05-08T18:30:23Z "I'm using wp_get_attachment_image_src on the backend to do image validation for a custom image selector meta box. When the image is large enough for the requested image size the source of the original image is returned but the dimensions are smaller. This is my call: {{{#!php string(70) ""http://localhost:8888/wp-content/uploads/2018/05/image.jpg"" [1]=> int(400) [2]=> int(400) [3]=> bool(false) } }}} The actual image dimensions are 1200x1200. The image_constrain_size_for_editor call in the image_downsize function seems to be where the problem lies. I can comment out that line and it works as expected." jwoolsch 36285 Inconsistency between the filters that can be used to override the default shortcode output for images/videos/audio Media normal normal Future Release defect (bug) new 2016-03-21T18:15:59Z 2017-07-27T16:13:03Z "Currently, in order to override the default output of the {{{caption}}}, {{{video}}} and {{{audio}}} shortcodes, you have to use the following respectively: {{{ apply_filters( 'img_caption_shortcode', '', $attr, $content ); apply_filters( 'wp_audio_shortcode_override', '', $attr, $content, $instance ); apply_filters( 'wp_video_shortcode_override', '', $attr, $content, $instance ); }}} Imho, there should be some consistency between these regarding the following: * hook name. * arguments passed to the filtering function. Also, it would be very useful if the attachment ID was also passed to the filtering function. Right now, the attachment ID of images can be obtained from {{{$attr['id']}}}, which gives {{{attachment_IDNUMBER}}}, while the ID of video and audio attachments can only be obtained by using the media file URL found in the {{{$attr}}} array and directly querying the database in order to get the post ID based on the {{{guid}}} field. " gnotaras 3 37632 Incorrect Image Previews for SVG Media normal normal Awaiting Review defect (bug) new 2016-08-11T01:52:35Z 2021-06-03T15:02:06Z "Hi guys, When using the `upload_mimes` filter to add new mime types for the media uploader, it handles SVG uploads strangely. Here is my code to add SVG support {{{#!php = 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 59521 Issue with update_post_thumbnail_cache if using get_posts Media 6.3.1 normal normal Awaiting Review defect (bug) new 2023-10-03T09:25:40Z 2023-10-03T09:25:40Z "Hello, I got this: ''Warning: Attempt to read property ""ID"" on int in /wp-includes/post-thumbnail-template.php on line 116'' I'm using: {{{#!php 'ids' ) ); foreach ( $posts as $post_id ) : $thumb = get_the_post_thumbnail( $post_id ); endforeach; }}} The **update_post_thumbnail_cache()** used in **get_the_post_thumbnail()** assumes **$wp_query->posts** always contains an array of **$posts objects**, while it can be an array of $posts IDs. To prevent the warning it would be appropriate to check that $post is actually a post object. The patched code: {{{#!php posts as $post ) { $post = get_post( $post ); // Add this or check if is_integer( $post ) $id = get_post_thumbnail_id( $post->ID ); }}} Thanks Kind Regards" Xendo 1 55289 Large image fails to create a `scaled` version and subsizes Media 5.9.1 normal normal Awaiting Review defect (bug) new 2022-03-01T21:41:41Z 2022-03-03T02:27:17Z "When uploading a large image into WordPress it fails to create the `scaled` version, due to the usage of too many resources, because the `-scaled` resized version can't be created, no additional subsize is created. The resize fails with the following error message: > cache resources exhausted Even with the resized failure, only the full-size image is uploaded and no additional image sizes are generated. Steps to recreate the problem: 1. Upload the provided image. 2. Inspect the metadata of the image and observe no `-scaled` version was created and no subsizes was created either. Observe how only the full image size is uploaded, no `-scaled` version can't be found. == Problems 1. As described before the full size image is uploaded and no `scaled` version is created. 2. When loading the media library the full image size is loaded due no subsizes were created. 3. No subsizes are created for this image due to the resized image failing to be created. == Setup Sharing the details of my current setup: {{{ ### wp-core ### version: 5.9.1 site_language: en_US user_language: en_US timezone: +00:00 permalink: /%year%/%monthnum%/%day%/%postname%/ https_status: true multisite: false user_registration: 0 blog_public: 1 default_comment_status: open environment_type: production user_count: 1 dotorg_communication: true ### wp-paths-sizes ### wordpress_path: /app wordpress_size: 152.90 MB (160327567 bytes) uploads_path: /app/wp-content/uploads uploads_size: 22.75 MB (23851112 bytes) themes_path: /app/wp-content/themes themes_size: 6.47 MB (6780262 bytes) plugins_path: /app/wp-content/plugins plugins_size: 208.42 MB (218539593 bytes) database_size: 3.96 MB (4149380 bytes) total_size: 394.49 MB (413647914 bytes) ### wp-active-theme ### name: Twenty Twenty-Two (twentytwentytwo) version: 1.0 (latest version: 1.1) author: the WordPress team author_website: https://wordpress.org/ parent_theme: none theme_features: core-block-patterns, post-thumbnails, responsive-embeds, editor-styles, html5, automatic-feed-links, block-templates, widgets-block-editor, wp-block-styles, editor-style theme_path: /app/wp-content/themes/twentytwentytwo auto_update: Disabled ### wp-themes-inactive (3) ### Twenty Nineteen: version: 2.2, author: the WordPress team, Auto-updates disabled Twenty Twenty: version: 1.9, author: the WordPress team, Auto-updates disabled Twenty Twenty-One: version: 1.5, author: the WordPress team, Auto-updates disabled ### wp-plugins-inactive (1) ### Performance Lab: version: 1.0.0-beta.1, author: WordPress Performance Group, Auto-updates disabled ### wp-media ### image_editor: WP_Image_Editor_Imagick imagick_module_version: 1691 imagemagick_version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org imagick_version: 3.7.0 file_uploads: File uploads is turned off post_max_size: 100M upload_max_filesize: 100M max_effective_size: 100 MB max_file_uploads: 20 imagick_limits: imagick::RESOURCETYPE_AREA: 122 MB imagick::RESOURCETYPE_DISK: 1073741824 imagick::RESOURCETYPE_FILE: 786432 imagick::RESOURCETYPE_MAP: 512 MB imagick::RESOURCETYPE_MEMORY: 256 MB imagick::RESOURCETYPE_THREAD: 1 imagemagick_file_formats: 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV gd_version: bundled (2.1.0 compatible) gd_formats: GIF, JPEG, PNG, WebP, BMP ghostscript_version: 9.53.3 ### wp-server ### server_architecture: Linux 5.15.12-1-MANJARO x86_64 httpd_software: nginx/1.17.10 php_version: 7.4.28 64bit php_sapi: fpm-fcgi max_input_variables: 10000 time_limit: 3 memory_limit: 1G max_input_time: 900 upload_max_filesize: 100M php_post_max_size: 100M curl_version: 7.74.0 OpenSSL/1.1.1k suhosin: false imagick_availability: true pretty_permalinks: true ### wp-database ### extension: mysqli server_version: 10.3.27-MariaDB client_version: mysqlnd 7.4.28 max_allowed_packet: 33554432 max_connections: 151 ### wp-constants ### WP_HOME: undefined WP_SITEURL: undefined WP_CONTENT_DIR: /app/wp-content WP_PLUGIN_DIR: /app/wp-content/plugins WP_MEMORY_LIMIT: 40M WP_MAX_MEMORY_LIMIT: 1G WP_DEBUG: true WP_DEBUG_DISPLAY: true WP_DEBUG_LOG: true SCRIPT_DEBUG: false WP_CACHE: false CONCATENATE_SCRIPTS: undefined COMPRESS_SCRIPTS: undefined COMPRESS_CSS: undefined WP_ENVIRONMENT_TYPE: Undefined DB_CHARSET: utf8mb4 DB_COLLATE: undefined ### wp-filesystem ### wordpress: writable wp-content: writable uploads: writable plugins: writable themes: writable mu-plugins: writable }}} " mitogh 4 58979 "Layout breaking while editing an Image from ""Image Details Edit"" screen." Media 6.3 normal normal Awaiting Review defect (bug) new 2023-08-04T04:57:06Z 2023-08-07T16:13:03Z "== Bug Report === Description The layout is breaking while editing an Image from ""Image Details Edit"" screen. === Environment - WordPress: 6.3-RC3 - PHP: 7.4.12 - Server: Apache/2.4.46 (Unix) OpenSSL/1.0.2u PHP/7.4.12 mod_wsgi/3.5 Python/2.7.13 mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_perl/2.0.11 Perl/v5.30.1 - Database: mysqli (Server: 5.7.32 / Client: mysqlnd 7.4.12) - Browser: Chrome 114.0.0.0 (macOS) - Theme: Twenty Twenty-Three 1.2 - MU-Plugins: None activated - Plugins: * WordPress Beta Tester 3.5.2 === Steps to Reproduce 1. Open Media -> Library 2. Select an Image 3. Click the ""Edit Image"" button below the Image 4. Click ""Crop Image"". Crop settings are visible to the right of the Image 5. Now Click ""Scale Image"". Layout breaks. x. 🐞 Bug occurs. === Expected Results 1. ✅ Layout Should not break. At the very least, it should be consistent for scale and crop. === Actual Results 1. ❌ Layout breaks and lack of consistency. I am attaching Screenshots for reference." deepakvijayan 2 50932 Lazy load conflict Media 5.5 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-08-12T08:38:46Z 2020-08-12T10:55:04Z "Hi, i have installed a cache plugin. This plugin has lazy load option. I turned it off to check how WordPress 5.5 lazy load work. I noticed it doesn't work properly. I checked the source code of the website and search ""lazy"", i saw there was no lazy option. However when i turned lazy load option from third party plugin, I faced a problem. It's i cannot visit website without logged in. If i logged in i can visit." azad241 3 49966 Load smaller images when in a gallery Media normal normal Awaiting Review defect (bug) new 2020-04-21T06:42:48Z 2021-02-18T15:24:16Z "Originally reported in https://github.com/WordPress/gutenberg/issues/9620. Since `sizes` is set by `wp_calculate_image_sizes`, this issue belongs in Core Trac. ---- I noticed that when creating a gallery block, with the 3 default columns, the images used as thumbnails on the front end are the original, full size version. Not the thumbnail, not medium, not even large size version. There is the srcset attribute but that does not help much because 100vw is set so it will generally only affect screen sizes smaller than the Large or Medium sizes set on WordPress Settings > Media. Let's take for a theme that uses a maximum content width of 700px. On Settings > Media the sizes Thumbnail 150px - Medium 300px - Large 1024px are set. Images in the Media Library are all 1600px wide. Now take a gallery with three columns, which will have a source code like this for each image: `` Now visit that page on a browser with a screen width of around 1390px. The content width will be 700px which means a max width for each thumbnail of around 220px (due to margins between the images). A source size of 300px would suffice for normal 1x screen resolutions but instead the full 1600px size sources are fetched for each image by the browser. When instead of `sizes=""(max-width: 1600px) 100vw, 1600px` something more in correspondance with the gallery column size could be set to address this. Like `sizes=""(max-width: 1600px) 30vw, 1600px""` so that a 30% image slot is assumed. This leaves 50vw for two column galleries, and 100vw for 1 column galleries... Thoughts ?" noisysocks 1 58364 Lottie Files not centered properly Media normal normal Awaiting Review defect (bug) new reporter-feedback 2023-05-20T10:29:12Z 2023-10-25T04:48:40Z Hi, I want to tell you, that Lottie Files are not working properly in WordPress. I use them on several pages, align is set to center, but they actually are not centered. Some of them are aligned to lef, some of them are moved little bit to left. Samuel222 48992 MP3 artwork issue in WordPress 5.3.1 Media 5.3.1 normal normal Awaiting Review defect (bug) new 2019-12-15T21:01:49Z 2020-04-12T21:13:27Z "Hello! I've had an issue with WordPress ever since I installed it where MP3 files would lose their artwork, which split into a separate file. This might sound familiar to some, as it was the core of the following closed issues: #40085 / #40075 The problem: This has never stopped happening for me. I've disabled add-ons related to the uploader and media library to no avail once I found out that this was apparently a solved issue. I have a test-site which I am going to try disabling all add-ons. Any other" mattgcn 12 39647 "Make media upload ""HTTP error."" more user-helpful" Media 3.4 normal normal Future Release defect (bug) new has-patch 2017-01-20T06:58:59Z 2019-09-25T16:18:14Z "Since the introduction of the Media Gallery in WordPress 3.4, the error messages when users attempt to upload media have been reduced to a detail-less “HTTP error.”, without any suggestion as to how users can move forward, and limited information for users to be able to contact their hosts to get help. This is user hostile, and not in line with many of the assertions in [https://wordpress.org/about/philosophy/ WordPress Philosophy]. There’s no doubt that error messages must exist, but they should be useful, providing next steps for users. A few possible parts/steps of this: - Retry - Auto Retry - Better error messages where possible (Timeout, Out of Memory, in user terms) - Expand for Exact Details to give to host (or WP_DEBUG enables this?) - Troubleshooting Steps, or link to troubleshooting steps This should be possible to accomplish in stages, which will likely each need their own tickets. One of the first steps for ""Retry"" is to make image upload/thumbnail creation able to be resumed, rather than only adding the meta after all sizes are created." kirasong 42838 Manipulating uploads and images can break when using stream wrappers Media normal normal Awaiting Review defect (bug) new has-patch 2017-12-08T12:30:05Z 2020-11-12T15:28:49Z "When using PHP stream wrappers for storing uploads into object storages (like S3 or Google Cloud Storage) some things break because in this context a directory merely a path which ends in a '/'. PHP's builtin `dirname` always returns the path without the trailing slash. On regular filesystems this is not a problem since `a` and `a/` are equivalent, but in the context of object storages this pose some issues. I'm attaching a patch which always add a trailing slash when the code expects to work with directories." calin 48513 Maximum execution time of 600 seconds exceeded in /var/www/html/releases/20191106150212/wp-includes/class-wp-image-editor-imagick.php on line 155 Media normal normal Awaiting Review defect (bug) new 2019-11-06T15:52:03Z 2020-01-16T15:14:49Z "When running wp media regenerate --only-missing --image_size=lazy it fails after 6490 entries. It fails with the following error: {{{ 6490/15784 No ""lazy"" thumbnail regeneration needed for ""model13-32"" (ID 35894). PHP Fatal error: Maximum execution time of 600 seconds exceeded in /var/www/html/releases/20191106150212/wp-includes/class-wp-image-editor-imagick.php on line 155 Fatal error: Maximum execution time of 600 seconds exceeded in /var/www/html/releases/20191106150212/wp-includes/class-wp-image-editor-imagick.php on line 155 }}} If I go to the specific image (that I THINK is failing, model13-32) and then click ""rebuild thumbnail"" inside WordPress it works just fine. Hmmm.." mattiasf 1 23436 Media Gallery - Cropping Image and then Cropping a thumbnail from that crop doesn't work. joedolson* Media 3.5 normal normal Awaiting Review defect (bug) accepted close 2013-02-10T17:20:00Z 2022-12-07T16:05:48Z "'''A recipe for repeating the bug behavior:''' Navigate to Library in the admin sidebar. Click ""Add new"". Drag the 800x480 copy of this or any image to the drag and drop area: http://en.wikipedia.org/wiki/File:Cheese_platter.jpg (I suggest this image for ease of recipe duplication and best explanation.) After the blue status bar has completed, ""Edit"" to bring the media edit window up in a new tab. Click ""Edit Image"" below the actual image. Drag anywhere inside the image to create a cropping box. In the ""Image crop"" pane, set the crop area to 500px width, 100px height. Drag the cropping box so that the fancy toothpick is as far left as possible along the horizontal axis of the cropping box, but centered vertically. Click the ""Crop"" icon. Click ""Save"". Click ""Update"". Click ""Edit Image"" once again. Drag inside the newly-cropped image again to create a new cropping box. In the ""Image Crop"" pane, change the cropping dimensions to 150 x 100. Drag the box so the fancy toothpick is somewhere in the left third within the crop boundary. '''Important:''' In the thumbnail settings pane, set ""Apply Settings to:"" '''Thumbnail'''. Click the ""Crop"" icon. Click ""Save"". Click ""Update"". Click ""Library"" in the admin sidebar. The newly preferred thumbnail for our previously-cropped image does not save. Thumbnail remains default, based on center of previously-cropped image. Instead, you will see a small wheel of cheese sliced into six wedges with garnishes for the thumbnail, even though we chose the part with the fancy toothpick." gr33nman 60098 Media Library Image Upload Issue Media 6.1 normal normal Awaiting Review defect (bug) new 2023-12-18T20:16:07Z 2024-02-15T16:26:31Z "I hope this message finds you well. I am writing to report an issue encountered on my website, https://sanaalnaseemcs.com/. When attempting to upload images to the WordPress Media Library, the upload is successful, but the thumbnail is not generated. This makes it challenging to select and use the uploaded images appropriately. Steps to Reproduce: Log in to the WordPress admin panel. Navigate to ""Media"" and then ""Add New."" Choose an image file for upload. Observe that the image uploads successfully, but the thumbnail is not generated. Expected Result: The image should upload successfully, and a thumbnail should be generated for easy identification in the Media Library. Actual Result: The image uploads, but the thumbnail is not generated, causing difficulty in identifying and utilizing the uploaded image. Additional Information: The issue seems to be inconsistent. It is not limited to specific file types or sizes. Various browsers and operating systems are affected. I appreciate your prompt attention to this matter and look forward to a resolution. If you need any additional information." gesabeja 58741 Media Library Popup Showing Blank Popup on Window Resize Below Mobile Viewport Media 6.2.2 normal normal Awaiting Review defect (bug) new 2023-07-06T18:18:08Z 2023-07-06T18:18:08Z "== Bug Report === Description The media library popup in WordPress is encountering a problem where it displays a blank popup when the window is resized below the mobile viewport. This issue prevents users from accessing the media library and selecting files on smaller screens, negatively impacting the overall user experience. === Environment - WordPress: 6.2.2 - PHP: 7.4.33 - Server: Apache - Database: mysqli (Server: 5.7.42 / Client: mysqlnd 7.4.33) - Browser: Chrome 114.0.0.0 (macOS) - Theme: Upshift 1.0 - MU-Plugins: None activated - Plugins: * WordPress Beta Tester 3.5.1 === Steps to Reproduce 1. Access the WordPress admin dashboard. 2. Navigate to add new post. 3. Click on set featured image button. 4. Resize the window below mobile viewport, you will get a blank screen. === Expected Results 1. Users should see media window even after window resize. 2. This scenarios is not there in media library popup of image block on block editor. === Actual Results 1. Users gets blank popup when window is resized. Video Link : https://www.loom.com/share/efad2f97064f441596d69cc9a354a658 " adhun 52857 Media Library defaults to Medium 300x Media 5.7 normal normal Awaiting Review defect (bug) new 2021-03-18T20:44:58Z 2021-11-29T15:17:19Z "With WordPress 5.7 the default when Add media insert image always defaults to Medium 300px wide. Why does WordPress 5.7 not remember the preferred default or last used? Every time I upload an image I have to remember to check & change this setting. It was never a problem before 5.7" subbasshead 41349 Media Library insert from URL doesn't give a message when a URL fails check Media normal normal Awaiting Review defect (bug) new 2017-07-17T20:32:53Z 2020-12-03T18:39:48Z "There is a check to see if something is a valid URL. This is awesome, but it doesn't give a message when fails. This is a weird user experience as you are left wondering what happened. There is some strange behaviour, it sometimes has 'link text' vanishing, other times doesn't. It also can appear to flash as a block and then vanish. The logic of when the link text input shows or doesn't, seems a little confusing to work out. What would be better would be to have a message when it's not a correct URL and check for inconsistencies in the link text input showing. [[Image(https://cldup.com/bnlQYzjP04.gif)]]" karmatosed 4 39968 Media Library: deleting all items on the last page loses the pagination/navigation buttons and shows message antpb Media 4.7.2 normal normal Future Release defect (bug) reopened has-patch 2017-02-26T14:10:59Z 2021-02-25T15:14:07Z "While deleting all items on the last page of Media Library, the page loses the pagination/navigation buttons and shows the message ""No Media Files found"" with no way to access the earlier pages other than by going back to the ""Media"" link" donsony 5 23127 Media Upload hangs on Crunching on too big image sizes. Media 2.7 normal normal Future Release defect (bug) new 2013-01-05T22:56:14Z 2023-12-26T12:46:32Z "If the uploaded file is too big for the Max Memory Limit Setting, then the upload is executed, but the image isn't resized to the set image sizes and the frontend gets stuck on ""Crunching"". I tracked the error down into the core and found out, that the main problem is in the GD library class ( wp-includes/class-wp-image-editor-gd.php ) in the load() function. Everything works fine before line 91: {{{ $this->image = @imagecreatefromstring( file_get_contents( $this->file ) ); }}} So imagecreatefromstring fails because of a lack of memory. But as a chain reaction everything else fails afterwards. The library is not loaded and sent back, and so on. As a result no id is sent back to the frontend and the Loader hangs. Maybe there should be any error catching and sending back before this GD function, that the frontend receives any error messages and that the upload is deleted in case of error. Just my thoughts: As this error is a Fatal one, you can`t use any Exception stuff, cause there will not be any memory left to execute it. Maybe some checking if the id is present before sending the image back to crunching?" clubdesign 1 48236 Media attachment browser no longer provides id of attachment Media 5.2.3 normal normal Future Release defect (bug) new has-patch 2019-10-07T06:49:48Z 2020-02-21T01:39:38Z "This is a follow-up to #47458. Issue #47458 removed the data-id attribute from the media attachment browser. This was a useful attribute, used by an (internal) plugin on our site to access the details of the currently displayed attachment. We used code similar to this to hook into the dialog: {{{ wp.media.view.Attachment.Details.prototype.on('ready', function() { var postid = $('.attachment-details').data('id'), details = wp.media.attachment(postid); // do stuff with details }); }}} This functionality is now broken, and I can’t see another way to access the id of the attachment details being shown. (The item id in the query string is not reliable, as it’s not always updated in time, or at all.) Could this useful attribute be restored? It doesn’t seem to affect the problem addressed in #47458 in any way." slebog 6 43658 Media attachment filter drop-down mime types in grid mode is not properly filtered by available mime types Media 4.9.4 normal normal Future Release defect (bug) assigned 2018-03-29T07:07:42Z 2023-10-18T16:51:19Z "In '''Gird''' mode media attachment filter is not properly filtered by available mime types, it shows all mime types by default via - {{{ get_post_mime_types() }}} But in '''List mode''' its already filtered by checking {{{ if ( ! wp_match_mime_types( $mime_type, $avail_post_mime_types ) ) { continue; } }}} " itzmekhokan 43641 Media controls in the media grid are too wide Media 4.9 normal normal Awaiting Review defect (bug) new 2018-03-27T11:14:37Z 2018-10-02T16:56:31Z "The audio and video player that's shown when viewing an individual media item in the media grid displays a control bar which is too wide for its container. Tested in latest Chrome, Firefox, and Safari on macOS." johnbillion 2 40129 Media deleting selected on mobile does not work Media normal normal Awaiting Review defect (bug) new 2017-03-12T12:47:13Z 2017-03-16T19:42:35Z "Steps to reproduce: - Select a month in bulk select. - Click image. - Click delete selected. - It doesn't delete. [[Image(https://cldup.com/IHq3IPurbV.PNG, 50%)]] Discovered on iPhone 7 Plus." karmatosed 4 40121 Media edit screen on mobile has visual issues Media normal normal Awaiting Review defect (bug) new 2017-03-12T12:23:38Z 2017-05-03T21:10:17Z "This screen unfortunately on an iPhone 7 Plus is pretty unusable. [[Image(https://cldup.com/ANkhsYmH_F.PNG, 50%)]] I would at the least suggest we don't have 2 panes and move the right below the left. Then we can iterate." karmatosed 58594 Media file changes no longer trigger updated/modified statuses. Media 6.2.2 normal normal Awaiting Review defect (bug) new 2023-06-21T19:54:38Z 2023-06-21T19:54:38Z "In older versions of WP, when media files like PDFs were updated it would trigger an event that could be listened to and acted upon by plugins. In the current version of WP (6.2.2) if a user changes the uploaded date or otherwise modifies a media file's properties, the change is no longer picked up by audit trail plugins like WP Activity Log, nor is it seen as an update to a ""post"". Plugins that have ""Clear cache whenever a post or page is updated"" functionality are now broken when it comes to media file changes. For instance, if a site is using Sucuri's WAF and caching plugin as well as the Enable Media Replace plugin, when a user replaces a media file with a new one it doesn't trigger Sucuri's cache clearing functionality anymore. I have reviewed both Enable Media Replace and Sucuri's plugins to make sure neither of them are at fault for breaking this functionality. Additionally, neither Sucuri nor WP Activity Log pick up the changes to display in their activity logs. I do not know if media file post types were explicitly excluded from using the process pages and posts use to broadcast changes, but this new behavior is only present in the most recent version(s) of WP and is a bug if this wasn't a planned change." sbeaney 2 41352 Media library - applying image and date filter redirects to homepage Media 4.8 normal normal Awaiting Review defect (bug) new 2017-07-18T00:12:31Z 2017-09-17T06:43:48Z "When in the media library, select LIST view > select IMAGES in the 'All media items' dropdown, select a month from the dropdown and click FILTER. I am being redirected to the websites homepage rather than the filter results. 3 people have replicated this bug, I personally have replicated it across 3 of our Wordpress websites. I tried disabling media related plugins and it had no affect. " mikedtv 1 57821 Media library badly autopopulates image caption if Windows image metadata exists Media 6.1.1 normal normal Awaiting Review defect (bug) new 2023-02-28T13:01:38Z 2023-03-11T08:05:36Z "If you upload an image which has specific metadata (Properties → Comments filled out on a Windows computer, with the Properties → Title field blank), the caption on the image in WP Admin autopopulates with a string of question marks. ------------------ === Steps to reproduce 1. On Windows, edit an image's properties in the file explorer so that the Comments field is populated, but the Title field is not. 2. Upload the image to any site === What you expected to happen The caption field in the Media library should either stay blank, or contain the actual ""Comments"" field contents. === What actually happened The caption field for that file contains a string of question marks as long as your original comment text. " properlypurple 40593 Media library replace image popup not displaying completely below 641px width Media 4.7.4 normal normal Awaiting Review defect (bug) new 2017-04-28T10:04:38Z 2018-10-02T14:31:15Z "When trying to Replace Media with screen width below 641px the right panel of the popup gets hidden and there is no way to update image information like description and title. Tested in Chrome (Version 58.0.3029.81 64-bit) and Firefox (53.0 - 64 bit). Screenshots attached." subrataemfluence 5 59742 Media library should display the number of pages/posts/urls a particular media file is being used in. Media normal normal Awaiting Review defect (bug) new 2023-10-26T08:19:37Z 2024-03-10T12:50:48Z "For managing media files, WordPress requires you to navigate from the Media Library. However, selecting a file doesn't offer any information on the published pages/posts that are actively using the file. This information is necessary to effectively manage storage and replacing media without losing essential files or causing dependency issues. Selecting a file from the media library should ideally, at minimum show the number of published pages/posts it's in use. Best case would be to make the number a clickable item, that shows a list of all URLs using the file." rsiddiqe 50200 Media library thumbnails broken for certain aspect ratio images in Firefox Media 5.4.1 normal normal Awaiting Review defect (bug) new 2020-05-18T08:11:50Z 2020-05-21T14:50:47Z "Recently a client reached out to me about broken images in WordPress dashboard. Turns out media library can't load thumbnails for certain aspect ratio images. The images are generated though and exist on the server (I looked up the image source with dev tools and checked if the image actually was generated and yes there it was). So I made a few tests on live and test environments. These are the image sizes that cause the thumbnails to break: 236x591 237x591 238x591 239x591 Both 235x591 and 240x591 work fine as expected. My client was uploading images using the size 236x591. Now the issue is not only with those pixel sizes as I tried doubling the image size as well. Doubling 237x591 to 474x1182 also breaks the thumbnail so it's more like aspect ratio bug than just the image size. The images load fine on frontend but there is a problem in the admin panel when editing posts and adding these media files to a post (only shows white box and doesn't load image). I have tried this on fresh install of WordPress with Twenty Twenty and no plugins installed. Bug happens on stable 5.4.1 as well as alpha version of 5.4.2 and 5.5 All of my tests were done through HTTPS protocol. Happens on PHP version 7.2 and 7.3 Bug appears on Firefox version 76 but it does not appear on Chrome version 81 or Microsoft Edge version 44 I have not tested any other aspect ratios." jussitrival 3 45886 Media modal .edit-attachment link opens in new tab rather than in modal antpb Media 5.0.2 normal normal Future Release defect (bug) assigned 2019-01-09T19:52:31Z 2020-09-05T12:12:37Z "Using the `wp.media` JavaScript API creates a link ""Edit Image"" (`.edit-attachment`) in the right sidebar of the Media modal. Expected behavior would be to open the ""Edit Image"" modal, as does the Featured Image media modal. However, the custom Media modal does not behave consistently with the Featured Image modal - the `.edit-attachment` link opens in a new tab instead of the modal - which is both unintuitive and frustrating to end-users. The console does not display any warnings or errors. Custom media modal as documented: [https://codex.wordpress.org/Javascript_Reference/wp.media] As a side note, I have noticed similar behavior in the WordPress Media page: Media (Admin Sidebar) -> Click a picture -> Edit more Details This also fails to open the modal - and opens in the current page instead. " statelessstudio 2 50273 Media modal uses incorrect 'checkbox' role for list items joedolson Media normal normal Future Release defect (bug) assigned 2020-05-28T04:40:11Z 2021-01-26T16:37:37Z "The media modal uses the role of 'checkbox' on list items (`
  • `) when selecting media (e.g. to add to a gallery.) The specification of a role here is overriding the list item element's implicit `listitem` role. The list item elements in this case should ideally have no `role` specified. The element with a checkbox role should be a child element of the list item and other associated attributes like `aria-checked` should also be moved to that element. For context, this issue was caught by the automated Axe tests when writing an end-to-end test for the block editor: https://github.com/WordPress/gutenberg/pull/22659#discussion_r431036627 To reproduce: 1. Ensure some images are uploaded to the media library 2. Add a gallery block to a post 3. Click the 'Media Library' button 4. Open the browser dev tools and inspect the HTML of an image 5. Observe that the list item element for the image has the role of 'checkbox': {{{
  • }}} " talldanwp 2 58730 "Media not getting removed from the media library popup after clicking ""Delete permanently"" button" Media 6.3 normal normal Future Release defect (bug) new changes-requested 2023-07-06T11:39:17Z 2024-02-05T20:19:12Z "I encountered an issue while attempting to remove media from the Media Library popup in WordPress. Despite deleting the media file, it remains visible in the popup window, ideally the media should get removed automatically from the window once its deleted permanently. 1. Log in to the WordPress admin panel. 2. Navigate to the ""Posts"" section and select an existing post or create a new one. 3. Click on the ""Set featured image"" button within the post editor. 4. Try to delete a media from the window. 5. Even after deleting the media file, it remains visible in the popup window. Video Link : https://www.loom.com/share/89321a9eb87d4627ab7a67bbfb54c9a8" adhun 31689 Media player not working with 302 redirects Media 4.1.1 normal normal Awaiting Review defect (bug) new has-patch 2015-03-19T07:28:04Z 2020-09-15T20:22:12Z "When calling the audio player using `wp_audio_shortcode( array( 'src' => '/path/to/file' ) );` and the path in question is a 302 redirect to an actual audio file, the audio player cannot find or play the file. A prime example of this is with Microsoft's OneDrive - a public link to a file stored with them looks like this: `https://onedrive.live.com/download?resid=###`. Going to that URL ends up in a 302 redirect to the actual file. While OneDrive may not be the best way to store and share media files, it is still a valid use case. Plus, this will affect any file storage where the file is accessed via a 302 redirect. There are alternative audio players that can handle 302 redirected files, so it's not impossible to work around the issue. For reference, this came up in a support ticket for one of my plugins - details here: https://wordpress.org/support/topic/direct-link-to-onedrive." hlashbrooke 15 39358 Media search speed has been dramatically reduced joemcgill Media 4.7 normal normal Future Release defect (bug) reopened 2016-12-21T08:07:18Z 2023-10-18T16:48:40Z "In the ajax-actions.php file there is function called wp_ajax_query_attachments. This function is responsible for searching images in the media library. We see that in Wordpress 4.7, someone added a new filter to this function: {{{ // Filter query clauses to include filenames. if ( isset( $query['s'] ) ) { add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); } }}} This filter is a performance killer and takes forever to output a result in large databases. We have tested this with db that has over 500000 posts." merts 1 54069 "Media title change in ""Attachment Details"" dialog opened via Media Library Grid View is not informing API/plugins properly" Media normal normal Awaiting Review defect (bug) new 2021-09-03T10:52:50Z 2023-02-03T23:08:50Z "**Problem**: If WordPress offers different UIs to edit media titles, then all those should properly inform the respective plugin/event APIs about that change. It seems there is a discrepancy, in one place it works, in the other not. See the reproductions. **Environment / How I discovered the bug** I noticed this bug when using the plugin [https://wordpress.org/plugins/media-file-renamer/ Media File Renamer] 5.2.4 on WordPress 5.8. What I observed is very likely a bug in WordPress and not from the plugin according to the [https://wordpress.org/support/topic/no-file-renaming-if-title-changed-via-media-library-thumbview-edit-popup/#post-14834202 support reply of the plugin developer @TigrouMeow]: > Unfortunately, I think the problem is on the Media Library ThumbView Edit Popup side [remark: The documentation calls this ""Media grid view"" and ""Attachment details dialog"" respectively]. Media File Renamer renames files based on a title change depending on specific actions in WordPress, and those actions can be also fired by other plugins. Since this plugin is mimicking the Edit Media Page of WP, it should also includes the actions. Otherwise, that will break not only the process of my plugin, but also many more. **✅ Reproduction I** 1) Media Library in [https://wordpress.org/support/article/media-library-screen/#media-library-list-view List View] 2) Hover over a media post > Click “Edit” 3) You get to “Edit Media” 4) Change the “title” 4) Be sure that the “Renamer” widget has the file name not locked 5) In the “Save” widget click “Update” * Outcome as expected: The filename is changed accordingly. * The slug is also changed from the filename change, due to the [https://wordpress.org/plugins/media-file-renamer/ Media File Renamer] plugin config: * Advanced > Fields Syncing > Slug/Permalink: `[√] Sync with filename` **❌ Reproduction II** 1) Media Library in [https://wordpress.org/support/article/media-library-screen/#media-library-grid-view Grid View] 2) Click on a media thumbnail 3) A dialog/popup opens, entitled [https://wordpress.org/support/article/media-library-screen/#attachment-details Attachment details] 4) Change the “title” 5) Optional step for observation purposes: Click into the next field, or TAB into the next field. You see a saving indicator. 6) Close the popup. (If you skipped 5, you very briefly see the saving indicator while the popup closes) * **Actual**: The title is changed, the filename not! * **Expected**: Whichever of [https://wordpress.org/plugins/media-file-renamer/ Media File Renamer]'s sync settings are active (title, filename, slug) kick in here in this editing method as well." abitofmind 2 57948 Media toolbar elements height /size is inconsistent across views Media normal normal Awaiting Review defect (bug) new has-patch 2023-03-19T11:01:28Z 2023-05-12T12:29:57Z "When window.innerWidth is between 782px and 900px we have bigger height for selects the for all other toolbar elements, when window width is less than 782px button is becoming bigger but toggle view buttons are staying the same. I assume all element need to be resized accordingly and margins between adjusted as well. Related ticket: #43904" oglekler 49431 Media uploader window leaves behind orphan button element in Block Editor Media 5.0 normal normal Awaiting Review defect (bug) new 2020-02-14T07:13:52Z 2022-05-06T02:59:54Z "This issue was originally reported in the Gutenberg Github repo - https://github.com/WordPress/gutenberg/issues/9184. Reporting this here as well—currently it looks like a fix might need to be applied in core, but also possibly in both Gutenberg and core. ---- **Describe the bug** Whenever you focus an Image Block or Gallery Block, a button element is created just before the closing body tag. Then, after blurring, the button is still there. This can be performed indefinitely times, leading to a massive amount of orphan button elements ---- **Steps to reproduce** 1. Open up the block editor 2. Open up dev tools and inspect the closing body tag 3. In the editor sidebar, switch between the document and the block tab and back again 4. Check the dev tools, observe that button(s) are appended to the dom every time the document tab is opened Expected: No buttons are appended " talldanwp 2 59939 "Media: ""Copy URL"" tooltip text may wrap" Media 5.5 normal normal Future Release defect (bug) new has-patch 2023-11-21T03:19:50Z 2024-02-25T12:27:58Z "In the media list view, clicking the ""hoge"" action link displays the tooltip text ""Copied!"". In certain languages, perhaps non-Latin languages, this text may wrap. Text wrapping looks unnatural. To use an English analogy, imagine that the text wraps like this: {{{ Co pied! }}} This text will be very short in any language, so you might want to apply `white-space: nowrap`." wildworks 1 45021 Media: Gallery modal has wrong focus and image detail joedolson* Media 6.1.1 normal normal Future Release defect (bug) accepted 2018-10-02T01:06:04Z 2024-02-05T20:21:21Z "When you first click on Add Media from the post editor, the existing images are shown, and nothing has specific ""focus"" (blue outline). Clicking on Create Gallery first, the Search box is focused. Clicking on images first, and then Create Gallery, the last image selected is focused. Once images are selected, clicking on the Create New Gallery button, the Cancel Gallery link is focused. On the Edit Gallery page, before clicking on an image, the sidebar shows Gallery Settings for link, columns, size. Once an image is selected, there is no way to unselect it, and although the Gallery settings remain the same, it is unclear whether this applies to the image selected or the entire gallery. Regardless, the image details are shown in the sidebar. However, if you Cancel Gallery and choose different images, when you get back to the Edit Gallery page, it will still be showing the image details for the old image, not any of the newly chosen ones (but none of the images are focused when you get there). So the Cancel didn't actually cancel. If you close the modal without inserting the gallery into the post, and then click on Add Media again, it will show the values from the last attempt. This is unexpected, and unwanted if you had selected a lot of images and wanted to start over. There ''is'' a Clear link, but it is small and at the bottom. The last selected image is focused, but not after you click Create Gallery (the Cancel Gallery link is), so the image detail is the wrong one. If you go ahead and insert the gallery, and click Add Media again, then nothing is remembered from the previous gallery. While in Edit Gallery, if you had selected two images and click on Add to Gallery, you can select more and click Add, they will all be shown, with one image focused and showing the correct image detail. Clicking Cancel Gallery at this point returns to the media list, but with the original two selected and perhaps a different image focused than the previous list. The added ones are forgotten." joyously 4 53663 Media: fix and improve WebP features detection Media normal normal Future Release defect (bug) new 2021-07-14T23:17:35Z 2022-12-01T00:25:44Z "Follow up from #53653. Looking at https://developers.google.com/speed/webp/docs/riff_container, the ""extended"" WebP file format `VP8X` may include a lossy or lossless ""bitstream"" chunk (`VP8 ` or `VP8L`) and few optional chunks: `ALPH`, `EXIF`, `ICCP`, `ANIM`, etc. Ideally the `wp_get_webp_info()` function should be extended to detect these features. " azaozz 1 48436 Media: fix the layout of Gallery settings in the media modal dialog Media 3.9 normal normal Awaiting Review defect (bug) assigned 2019-10-26T12:53:10Z 2020-11-01T11:47:20Z "In WordPress 3.8, the gallery settings in the media modal right sidebar were well aligned: [[Image(http://cldup.com/eEOQrDgtO6.png)]] The alignment broke pretty soon in WordPress 3.9, see [27487] / #26631. The CSS was changed to adjust the styling for the audio / video playlists settings but it broke the gallery details settings: Screenshot from WordPress 3.9: [[Image(http://cldup.com/EP_dN25J_v.png)]] That's because the playlist settings are not intended to be aligned in two ""columns"": [[Image(http://cldup.com/9djN13Naos.png)]] The gallery settings are fully operable, so this is just a minor visual glitch. Regardless, the layout is broken since March 2014 and still needs a fix on current trunk, even after the many changes to the media modal form controls markup and CSS, see [45499] / #47122. [[Image(http://cldup.com/XfzKug_020.png)]] " afercia 6 24688 Memory exhaustion caused by very many unattached media Media 2.5 normal normal Future Release defect (bug) new has-patch 2013-07-04T18:20:09Z 2018-10-08T09:35:20Z "A blog with over 30,000 unattached images was exhausting available memory on unattached attachment pages. The exhaustion occurred in `previous_image_link() -> adjacent_image_link() -> get_children()` due to the large number of rows selected with `post_parent=0`. This is not the only place where `get_posts()` might be called with `post_parent=0`. A similar query appears in `twentythirteen_the_attached_image()` but the effect is wisely mitigated by `fields=ids`. Earlier, `twentyten/loop-attachment.php` called `get_children()` with `post_parent=0` on unattached image pages which is horribly inefficient when there are many unattached images. Attached patch depends on #24687. The change to `adjacent_image_link()` creates a MySQL query which selects only the desired row. This fixes the memory exhaustion error on the blog with 30,000 unattached images. The once-only filters would be unnecessary if WP_Query accepted arbitrary extra WHERE strings." andy 35593 Metadata from wrong file in media_handle_upload Media normal normal Awaiting Review defect (bug) reviewing has-patch 2016-01-24T15:14:20Z 2023-02-06T15:07:08Z "In media_handle_upload and media_handle_sideload the attachment metadata is generated after inserting the attachment. For that the same file name is used. However, if a plugin changes the filename in an `add_attachment` hook the wrong file name will be used. Thus the wrong metadata is written or it is cleared. See wp-admin/includes/media.php: {{{ 368 // Save the data 369 $id = wp_insert_attachment($attachment, $file, $post_id); 370 if ( !is_wp_error($id) ) { 371 wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); 372 } }}} In my patch I query the filename again before updating the metadata. " normanrz 56439 Missing Title Attribute at HTML TAG FIGURE Media 6.0.1 normal normal Awaiting Review defect (bug) new 2022-08-25T14:30:58Z 2022-08-25T21:46:31Z "Hi, i like to parse my website https://draeger-it.blog an grap all videos from pages. I'm missing the pissible attribute title at TAG FIGURE like below: {{{
    }}} At my backend i can fill this fields but this don't would be rendered: {{{
    Hier steht eine Beschriftung.
    }}} Here is my Website Report: ` ### wp-core ### version: 6.0.1 site_language: de_DE user_language: de_DE timezone: Europe/Berlin permalink: /%postname%/ https_status: true multisite: false user_registration: 0 blog_public: 1 default_comment_status: open environment_type: production user_count: 1 dotorg_communication: true ### wp-paths-sizes ### wordpress_path: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog wordpress_size: 515,57 MB (540609358 bytes) uploads_path: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog/wp-content/uploads uploads_size: 1,92 GB (2060998403 bytes) themes_path: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog/wp-content/themes themes_size: 17,81 MB (18674742 bytes) plugins_path: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog/wp-content/plugins plugins_size: 108,27 MB (113525365 bytes) database_size: 255,52 MB (267927552 bytes) total_size: 2,80 GB (3001735420 bytes) ### wp-dropins (2) ### advanced-cache.php: true maintenance.php: true ### wp-active-theme ### name: Draeger-IT.blog (draegeritblog_admiral) version: 1.0 author: Stefan Draeger author_website: http://www.draeger-it.blog parent_theme: Admiral (admiral) theme_features: core-block-patterns, widgets-block-editor, automatic-feed-links, title-tag, post-thumbnails, menus, html5, custom-background, custom-logo, woocommerce, editor-style, customize-selective-refresh-widgets, editor-color-palette, responsive-embeds, admiral-pro, themezee-breadcrumbs, themezee-mega-menu, themezee-widget-bundle, themezee-related-posts, infinite-scroll, widgets theme_path: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog/wp-content/themes/draegeritblog_admiral ### wp-parent-theme ### name: Admiral (admiral) version: 1.6.9 (latest version: 1.7) author: ThemeZee author_website: https://themezee.com/de/ theme_path: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog/wp-content/themes/admiral ### wp-plugins-active (20) ### Antispam Bee: version: 2.11.1, author: pluginkollektiv Blog2Social: Social Media Auto Post & Scheduler: version: 6.9.9, author: Blog2Social, Adenion Broken Link Checker: version: 1.11.18, author: WPMU DEV Complianz | GDPR/CCPA Cookie Consent: version: 6.3.1, author: Really Simple Plugins Disable & Remove Google Fonts: version: 1.4.1, author: Fonts Plugin Download Manager: version: 3.2.54, author: W3 Eden, Inc. Easy Video Player: version: 1.2.2.1, author: naa986 Enlighter - Customizable Syntax Highlighter: version: 4.5.0, author: Andi Dittrich OneSignal Push Notifications: version: 2.2.7, author: OneSignal Redirection: version: 5.3.2, author: John Godley Schema App Structured Data: version: 1.17.15, author: Hunch Manifest Simple Lightbox: version: 2.8.1, author: Archetyped Site Kit by Google: version: 1.81.0, author: Google Table of Contents Plus: version: 2106, author: Michael Tran ThemeZee Toolkit: version: 1.3, author: ThemeZee WordPress Editorial Calendar: version: 3.7.12, author: Colin Vernon, Justin Evans, Joachim Kudish, Mary Vogt, and Zack Grossbart WPDM - Extended Short-codes: version: 3.0.4, author: W3 Eden, Inc. WP Super Cache: version: 1.8, author: Automattic WP YouTube Lyte: version: 1.7.19, author: Frank Goossens (futtta) Yoast SEO: version: 19.6, author: Team Yoast ### wp-media ### image_editor: WP_Image_Editor_GD imagick_module_version: Nicht verfügbar imagemagick_version: Nicht verfügbar imagick_version: Nicht verfügbar file_uploads: File uploads is turned off post_max_size: 64M upload_max_filesize: 64M max_effective_size: 64 MB max_file_uploads: 20 gd_version: 2.2.5 gd_formats: GIF, JPEG, PNG, WebP, BMP, XPM ghostscript_version: 9.27 ### wp-server ### server_architecture: Linux 4.4.302-icpu-088 x86_64 httpd_software: Apache php_version: 8.1.9 64bit php_sapi: cgi-fcgi max_input_variables: 5000 time_limit: 50000 memory_limit: -1 max_input_time: -1 upload_max_filesize: 64M php_post_max_size: 64M curl_version: 7.64.0 OpenSSL/1.1.1n suhosin: false imagick_availability: false pretty_permalinks: true htaccess_extra_rules: true ### wp-database ### extension: mysqli server_version: 5.7.38-log client_version: mysqlnd 8.1.9 max_allowed_packet: 67108864 max_connections: 3000 ### wp-constants ### WP_HOME: undefined WP_SITEURL: undefined WP_CONTENT_DIR: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog/wp-content WP_PLUGIN_DIR: /homepages/10/d872679325/htdocs/draegerit/draeger-it.blog/wp-content/plugins WP_MEMORY_LIMIT: 40M WP_MAX_MEMORY_LIMIT: -1 WP_DEBUG: false WP_DEBUG_DISPLAY: true WP_DEBUG_LOG: false SCRIPT_DEBUG: false WP_CACHE: true CONCATENATE_SCRIPTS: undefined COMPRESS_SCRIPTS: undefined COMPRESS_CSS: undefined WP_ENVIRONMENT_TYPE: Nicht definiert DB_CHARSET: utf8 DB_COLLATE: undefined ### wp-filesystem ### wordpress: writable wp-content: writable uploads: writable plugins: writable themes: writable mu-plugins: writable ### google-site-kit ### version: 1.81.0 php_version: 8.1.9 wp_version: 6.0.1 reference_url: https://draeger-it.blog amp_mode: no site_status: connected-site user_status: authenticated verification_status: verified-non-site-kit connected_user_count: 1 active_modules: site-verification, search-console, adsense, analytics, analytics-4, pagespeed-insights, tagmanager recoverable_modules: none required_scopes: openid: ✅ https://www.googleapis.com/auth/userinfo.profile: ✅ https://www.googleapis.com/auth/userinfo.email: ✅ https://www.googleapis.com/auth/siteverification: ✅ https://www.googleapis.com/auth/webmasters: ✅ https://www.googleapis.com/auth/adsense.readonly: ✅ https://www.googleapis.com/auth/analytics.readonly: ✅ https://www.googleapis.com/auth/tagmanager.readonly: ✅ capabilities: googlesitekit_authenticate: ✅ googlesitekit_setup: ✅ googlesitekit_view_posts_insights: ✅ googlesitekit_view_dashboard: ✅ googlesitekit_manage_options: ✅ googlesitekit_view_splash: ✅ googlesitekit_view_authenticated_dashboard: ✅ googlesitekit_view_wp_dashboard_widget: ✅ googlesitekit_view_admin_bar_menu: ✅ enabled_features: adsenseSetupV2: ✅ dashboardSharing: ⭕ ga4ActivationBanner: ⭕ ideaHubModule: ⭕ twgModule: ⭕ userInput: ⭕ zeroDataStates: ✅ search_console_property: https://draeger-it.blog/ adsense_account_id: pub-877••••••••••••• adsense_client_id: ca-pub-877••••••••••••• adsense_account_status: approved adsense_site_status: added adsense_use_snippet: yes adsense_web_stories_adunit_id: none analytics_account_id: 1883••••• analytics_property_id: UA-1883••••••• analytics_profile_id: 2364••••• analytics_use_snippet: yes analytics_4_property_id: none analytics_4_web_data_stream_id: none analytics_4_measurement_id: none analytics_4_use_snippet: yes tagmanager_account_id: 6002•••••• tagmanager_container_id: GTM-PMS•••• tagmanager_amp_container_id: none tagmanager_use_snippet: yes ` " stdr1980 1 40126 Mobile has two media editing experiences Media normal normal Awaiting Review defect (bug) new 2017-03-12T12:38:39Z 2023-10-25T05:04:49Z "Seems like two editing experiences on mobile One: Upload an image, click edit once uploaded. See this in new tab: [[Image(https://cldup.com/TblPv9TBJT.PNG, 50%)]] Two: Click ending on existing image, don't get new tab and get double pane weirdness. See this: [[Image(https://cldup.com/eK7TcVfqi4.PNG, 50%)]] We should have one experience as it feels not sensible having two. " karmatosed 19 17255 More statuses (like draft and/or private) for media files Media 3.1 normal normal Future Release defect (bug) new 2011-04-27T11:48:11Z 2023-10-25T15:39:32Z "It's weird that media files don't carry any concept of pub status. If someone wants to upload files (either attached to a post or directly into the library), they should be able to keep them hidden via 'draft' status just like any other content. The fact that people can link to things that haven't been explicitly published is bizarre. Media files should have a pub status. If uploaded as post attachment, should inherit publish on post publish. Would then need a workflow for if a post becomes unpublished containing media, as it then lives in library for use by other content, so would need to ask if user wants to unpub media files as well. This would be a big shift, so would make most sense as part of a media redux with a long notice period for plugin and theme authors. " jane 38479 Need to check utf8_encode() is available before use. Media 4.4 normal normal Future Release defect (bug) new 2016-10-25T04:38:14Z 2017-08-10T18:05:17Z "The DOM/XML extension isn't necessarily installed on some distros so use of `utf8_encode()` should be checked for availability first. It's not checked in `wp_read_image_metadata()` in ""wp-admin/includes/image.php"" (where I encountered its lack on a Ubuntu 16.04 PHP 7 server), introduced in [36429] and [36430], nor in `wxr_cdata()` in ""wp-admin/includes/export.php"", introduced in the distant past. (Also it does ISO-8859-1 not Windows-1252 so more than likely not that good in the image situation anyway.)" gitlost 50667 New attachment size is created even the source is smaller Media 5.4.2 normal normal Awaiting Review defect (bug) new 2020-07-15T09:42:55Z 2022-10-19T20:37:30Z "When you upload a very optimized image sometimes the created attachment size's file size is larger than the source image. When a new size is created its filesize should be checked whether it's really smaller or not. Now it just allocates extra space and uses extra bandwidth. Sample image: [https://ibb.co/x8LhGC0]" adam.radocz 59192 New image crop interface don't work in windows 10. Scale works. Media 6.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-08-24T18:33:19Z 2023-08-29T21:44:29Z "Win 10, 64GB RAM, Plenty SSD Shared hosting, Dreamhost Browsers tried: Chrome, Brave, Firefox, even Opera... Loving the new image-edit interface concept, but: Media -> Select Image -> Edit Image -> Crop -> AR: 1:1 -> Apply Crop -> ... Nothing Save Edits remains gray. No changes made. Media -> Select Image -> Edit Image -> Scale -> New Dim: 500w -> Scale ... ""Image Saved"" notice. ""Save Edits"" remains gray. Changes saved. I'm trying to scale and crop an image. It looks like a better workflow than before, but this crop is still a no-go. I am pretty familiar with the old method, so the new method will certainly be an improvement. I use WordPress's crop function regularly. I'd love to see the fixed asap. Hope this helps. Chris" Laughter On Water 2 58289 No support for AVIF with HDR gain maps Media normal normal Awaiting Review defect (bug) new 2023-05-10T17:37:39Z 2023-05-10T20:47:52Z "HDR (""high dynamic range"") images offer vastly improved image quality on supporting hardware (see here for more details: ). When displaying an HDR image on an SDR (standard dynamic range) screen, the image needs to be ""tone mapped"" to fit the reduced dynamic range of the screen. That can provide mediocre results, and a separate SDR version of the image will usually look better on an SDR monitor. Supplying two versions of the same image is complicated, and that is the reason for the new ""gain map"" proposal. Adobe has published the gain map specification (and test images) at https://helpx.adobe.com/camera-raw/using/gain-map.html#resources and Chrome Canary already supports proper rendering of the JPG gain map (be sure to view on a true HDR display, such as the M1 / M2 MacBook Pro). AVIF gain maps offer an ideal way to share HDR content in a format which is much smaller than a JPG gain map. This issue depends on getting support for HDR AVIF (ie an HDR image without a gain map): https://core.trac.wordpress.org/ticket/51228 It is also related to concepts involved with JPG gain maps: https://core.trac.wordpress.org/ticket/58288#ticket" gregbenz 58288 No support for JPG with HDR gain maps Media normal normal Awaiting Review defect (bug) new 2023-05-10T17:36:45Z 2023-09-29T19:43:09Z "HDR (""high dynamic range"") images offer vastly improved image quality on supporting hardware (see here for more details: ). When displaying an HDR image on an SDR (standard dynamic range) screen, the image needs to be ""tone mapped"" to fit the reduced dynamic range of the screen. That can provide mediocre results, and a separate SDR version of the image will usually look better on an SDR monitor. Supplying two versions of the same image is complicated, and that is the reason for the new ""gain map"" proposal. Adobe has published the gain map specification (and test images) at https://helpx.adobe.com/camera-raw/using/gain-map.html#resources and Chrome Canary v115 already supports proper rendering of the JPG gain map (be sure to view on a true HDR display, such as the M1 / M2 MacBook Pro). JPG gain maps (with an SDR base image) offer an ideal way to support HDR as we all transition to HDR over time. They will display in an ideal way on both an SDR or an HDR display. And they will safely display as SDR in browsers which do not understand gain maps. When a JPG with a gain map is uploaded to the WordPress media library, it is converted to an SDR JPG. The gain map is lost and therefore the image will no longer properly display as HDR when viewed on HDR hardware using a browser which supports HDR gain maps (such as Chrome)." gregbenz 2 55290 Not all image edits are applied to all subsizes joedolson* Media normal normal Future Release defect (bug) accepted needs-unit-tests 2022-03-01T22:05:28Z 2024-02-05T20:24:32Z "When editing an image using the admin editor, not all edits are applied correctly to all image subsizes. Specifically, the problem occurs when an edit results in a smaller size than the defined image size. Given the following image subsizes, and the attached image. {{{ => array(6) { [""thumbnail""]=> array(3) { [""width""]=> int(150) [""height""]=> int(150) [""crop""]=> bool(true) } [""medium""]=> array(3) { [""width""]=> int(300) [""height""]=> int(300) [""crop""]=> bool(false) } [""medium_large""]=> array(3) { [""width""]=> int(768) [""height""]=> int(0) [""crop""]=> bool(false) } [""large""]=> array(3) { [""width""]=> int(1024) [""height""]=> int(1024) [""crop""]=> bool(false) } [""1536x1536""]=> array(3) { [""width""]=> int(1536) [""height""]=> int(1536) [""crop""]=> bool(false) } [""2048x2048""]=> array(3) { [""width""]=> int(2048) [""height""]=> int(2048) [""crop""]=> bool(false) } } }}} ''The defined sizes above are the ones coming by default with the setting provided below. '' == Steps to replicate the problem: 1. Upload the image into your installation. 2. After the image is uploaded, click on edit to open the image editor or go to the image editor from within the media library. 3. Click on Edit image 4. Click on rotate image (either right or left) only once. 5. Make sure the changes are applied to all images by checking that the setting Apply changes to: All image sizes is set 6. Click on save After the image is saved observe the changes were applied only to the following image sizes: - `thumbnail` - `medium` - `large` - `full` The only size that was not updated as expected was: - `medium_large` == Setup {{{ ### wp-core ### version: 5.9.1 site_language: en_US user_language: en_US timezone: +00:00 permalink: /%year%/%monthnum%/%day%/%postname%/ https_status: true multisite: false user_registration: 0 blog_public: 1 default_comment_status: open environment_type: production user_count: 1 dotorg_communication: true ### wp-paths-sizes ### wordpress_path: /app wordpress_size: 152.90 MB (160327567 bytes) uploads_path: /app/wp-content/uploads uploads_size: 22.75 MB (23851112 bytes) themes_path: /app/wp-content/themes themes_size: 6.47 MB (6780262 bytes) plugins_path: /app/wp-content/plugins plugins_size: 208.42 MB (218539593 bytes) database_size: 3.96 MB (4149380 bytes) total_size: 394.49 MB (413647914 bytes) ### wp-active-theme ### name: Twenty Twenty-Two (twentytwentytwo) version: 1.0 (latest version: 1.1) author: the WordPress team author_website: https://wordpress.org/ parent_theme: none theme_features: core-block-patterns, post-thumbnails, responsive-embeds, editor-styles, html5, automatic-feed-links, block-templates, widgets-block-editor, wp-block-styles, editor-style theme_path: /app/wp-content/themes/twentytwentytwo auto_update: Disabled ### wp-themes-inactive (3) ### Twenty Nineteen: version: 2.2, author: the WordPress team, Auto-updates disabled Twenty Twenty: version: 1.9, author: the WordPress team, Auto-updates disabled Twenty Twenty-One: version: 1.5, author: the WordPress team, Auto-updates disabled ### wp-plugins-inactive (1) ### Performance Lab: version: 1.0.0-beta.1, author: WordPress Performance Group, Auto-updates disabled ### wp-media ### image_editor: WP_Image_Editor_Imagick imagick_module_version: 1691 imagemagick_version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org imagick_version: 3.7.0 file_uploads: File uploads is turned off post_max_size: 100M upload_max_filesize: 100M max_effective_size: 100 MB max_file_uploads: 20 imagick_limits: imagick::RESOURCETYPE_AREA: 122 MB imagick::RESOURCETYPE_DISK: 1073741824 imagick::RESOURCETYPE_FILE: 786432 imagick::RESOURCETYPE_MAP: 512 MB imagick::RESOURCETYPE_MEMORY: 256 MB imagick::RESOURCETYPE_THREAD: 1 imagemagick_file_formats: 3FR, 3G2, 3GP, AAI, AI, APNG, ART, ARW, AVI, AVIF, AVS, BGR, BGRA, BGRO, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CR3, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FILE, FITS, FRACTAL, FTP, FTS, G3, G4, GIF, GIF87, GRADIENT, GRAY, GRAYA, GROUP4, GV, H, HALD, HDR, HEIC, HISTOGRAM, HRZ, HTM, HTML, HTTP, HTTPS, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, J2C, J2K, JBG, JBIG, JNG, JNX, JP2, JPC, JPE, JPEG, JPG, JPM, JPS, JPT, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, POCKETMOD, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIDEO, VIFF, VIPS, VST, WBMP, WEBM, WEBP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV gd_version: bundled (2.1.0 compatible) gd_formats: GIF, JPEG, PNG, WebP, BMP ghostscript_version: 9.53.3 ### wp-server ### server_architecture: Linux 5.15.12-1-MANJARO x86_64 httpd_software: nginx/1.17.10 php_version: 7.4.28 64bit php_sapi: fpm-fcgi max_input_variables: 10000 time_limit: 3 memory_limit: 1G max_input_time: 900 upload_max_filesize: 100M php_post_max_size: 100M curl_version: 7.74.0 OpenSSL/1.1.1k suhosin: false imagick_availability: true pretty_permalinks: true ### wp-database ### extension: mysqli server_version: 10.3.27-MariaDB client_version: mysqlnd 7.4.28 max_allowed_packet: 33554432 max_connections: 151 ### wp-constants ### WP_HOME: undefined WP_SITEURL: undefined WP_CONTENT_DIR: /app/wp-content WP_PLUGIN_DIR: /app/wp-content/plugins WP_MEMORY_LIMIT: 40M WP_MAX_MEMORY_LIMIT: 1G WP_DEBUG: true WP_DEBUG_DISPLAY: true WP_DEBUG_LOG: true SCRIPT_DEBUG: false WP_CACHE: false CONCATENATE_SCRIPTS: undefined COMPRESS_SCRIPTS: undefined COMPRESS_CSS: undefined WP_ENVIRONMENT_TYPE: Undefined DB_CHARSET: utf8mb4 DB_COLLATE: undefined ### wp-filesystem ### wordpress: writable wp-content: writable uploads: writable plugins: writable themes: writable mu-plugins: writable }}} " mitogh 57239 Notice undefined array keys width and height when using full svg image Media 6.1.1 normal normal Awaiting Review defect (bug) new has-patch 2022-12-01T07:22:49Z 2023-08-24T13:47:19Z "If you add media like an svg and use it with the ""full size"" option the width and height are not fetched. Currently the function (wp-includes/media.php line 1185) expects those array keys." joeyjanson 40127 On mobile media deleting message formatting issues Media normal normal Future Release defect (bug) new 2017-03-12T12:42:20Z 2023-09-05T15:21:34Z "Formatting leads to widow in delete media image on mobile. Seen tested on iPhone 7 plus. [[Image(https://cldup.com/91KH54-k3y.PNG, 50%)]]" karmatosed 3 39630 PDF Thumbnails in Media Library Don't Fall Back to Full Size antpb Media 4.7 normal normal 6.6 defect (bug) assigned has-patch 2017-01-18T17:49:37Z 2024-02-29T12:11:12Z "When previewing uploaded files in the Media Library, image thumbnails fall back to displaying the full size image when the option `medium_size_h` is set to `0` (the `0` setting is used to stop WordPress generating thumbs at that size). The same functionality does not work for uploaded PDFs, instead displaying `wp-includes/images/media/document.png` in their place. The full-size thumbnail is generated, but not used. The '''Attachment Details''' modal window successfully falls back to the full size image when previewing a PDF under the same circumstances." daleharrison 9 45813 PDF preview images are not generated Media normal normal Future Release defect (bug) new 2019-01-02T20:33:24Z 2023-07-02T13:39:07Z "I discovered this when the test suite started failing in my local environment using VVV. Recently, ImageMagick updated it's `policy.xml` file to [https://git.launchpad.net/ubuntu/+source/imagemagick/tree/debian/patches/300-disable-ghostscript-formats.patch?id=be94d865776b391a60323603b1cc002213c37c39 remove rights for PDF files from Ghostscript]. After this change, a `WP_Error` is [https://core.trac.wordpress.org/browser/trunk/src/wp-admin/includes/image.php#L264 returned by `wp_get_image_editor()` when a PDF file is passed]. This prevents preview images from being generated and causes the test failures due to lack of metadata. The PDF tests check that the selected image editor supports PDF images using `wp_image_editor_supports()` before running, but this does not seem to be catching this change (`Imagick::queryFormats()` indicates support for PDFs even when rights are removed). This can be fixed bychanging the `rights` attribute for PDFs to `read|write`, or commenting out that line in the `/etc/ImageMagick/policy.xml` file. More info: https://alexvanderbist.com/posts/2018/fixing-imagick-error-unauthorized " desrosj 13 45982 PDF thumbnails have a default black background Media 5.0.3 normal normal Awaiting Review defect (bug) new 2019-01-14T13:45:47Z 2023-06-13T21:47:43Z "I wouldn't necessarily call this a bug, but when a PDF is uploaded where the page has no solid background colour its thumbnail image background is rendered black. As most paper used is white ( I would hazard a guess... :) ), it feels like the default background colour of thumbnails should be set to white. I have created a fix within'' /wp-includes/class-wp-image-editor-imagick.php'' {{{#!php image = new Imagick(); $file_extension = strtolower( pathinfo( $this->file, PATHINFO_EXTENSION ) ); $filename = $this->file; if ( 'pdf' == $file_extension ) { $filename = $this->pdf_setup(); } // Reading image after Imagick instantiation because `setResolution` // only applies correctly before the image is read. $this->image->readImage( $filename ); if ( ! $this->image->valid() ) return new WP_Error( 'invalid_image', __('File is not an image.'), $this->file); // Select the first frame to handle animated images properly if ( is_callable( array( $this->image, 'setIteratorIndex' ) ) ) $this->image->setIteratorIndex(0); $this->mime_type = $this->get_mime_type( $this->image->getImageFormat() ); // !bb modification to default to white backgrounds if ( 'pdf' == $file_extension ) { if ($this->image->getImageAlphaChannel()) { // Remove alpha channel (use 11 if constant does not work... see https://stackoverflow.com/questions/10805122/imagemagick-setimagealphachannel-not-working-php) $this->image->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE); // set image background color to white $this->image->setImageBackgroundColor('#ffffff'); } }// !bb end modification to default to white backgrounds } }}} " nebrekab 2 48710 PDF uploads are treated like images: empty alt attribute and PHP notices joedolson* Media normal normal 6.6 defect (bug) accepted dev-feedback 2019-11-18T20:42:21Z 2024-03-27T15:26:07Z "uploading a .pdf image in posts reads the following; ""this image has an empty alt attribute: its file name is.... .pdf"" I am a regular user since 1.5 versions of WP and this is my first bug, or error report. I tried downgrading, but it kept coming back error." worddean 2 59782 PHP deprecation error in WP_Image_Editor_Imagick Media 3.5 normal normal Awaiting Review defect (bug) new has-patch 2023-11-01T07:21:05Z 2024-02-04T07:41:25Z "When cropping and saving an image it throws an deprecation error when `WP_Image_Editor_Imagick` is [https://php.watch/versions/8.1/deprecate-implicit-conversion-incompatible-float-string converting floats to ints]. `Implicit conversion from float 1112.7466666666667 to int loses precision` Backtrace originally in JSON format from our central logging, hence funny formatting: {{{#!json { ""file"": ""/srv/www/site/public_html/wp-admin/admin-ajax.php"", ""line"": 188, ""function"": ""do_action"", ""args"": [ ""wp_ajax_image-editor"" ] }, { ""file"": ""/srv/www/site/public_html/wp-includes/plugin.php"", ""line"": 517, ""function"": ""do_action"", ""class"": ""WP_Hook"", ""object"": { ""callbacks"": { ""1"": { ""wp_ajax_image_editor"": { ""function"": ""wp_ajax_image_editor"", ""accepted_args"": 1 } } } }, ""type"": ""->"", ""args"": [ [ """" ] ] }, { ""file"": ""/srv/www/site/public_html/wp-includes/class-wp-hook.php"", ""line"": 334, ""function"": ""apply_filters"", ""class"": ""WP_Hook"", ""object"": { ""callbacks"": { ""1"": { ""wp_ajax_image_editor"": { ""function"": ""wp_ajax_image_editor"", ""accepted_args"": 1 } } } }, ""type"": ""->"", ""args"": [ """", [ """" ] ] }, { ""file"": ""/srv/www/site/public_html/wp-includes/class-wp-hook.php"", ""line"": 310, ""function"": ""wp_ajax_image_editor"", ""args"": [ """" ] }, { ""file"": ""/srv/www/site/public_html/wp-admin/includes/ajax-actions.php"", ""line"": 2683, ""function"": ""wp_save_image"", ""args"": [ 4281 ] }, { ""file"": ""/srv/www/site/public_html/wp-admin/includes/image-edit.php"", ""line"": 930, ""function"": ""image_edit_apply_changes"", ""args"": [ {}, [ { ""type"": ""crop"", ""sel"": { ""x"": 0, ""y"": 45, ""w"": 475, ""h"": 326 } } ] ] }, { ""file"": ""/srv/www/site/public_html/wp-admin/includes/image-edit.php"", ""line"": 722, ""function"": ""crop"", ""class"": ""WP_Image_Editor_Imagick"", ""object"": {}, ""type"": ""->"", ""args"": [ 0, 153.60000000000002, 1621.3333333333335, 1112.7466666666667 ] }, { ""file"": ""/srv/www/site/public_html/wp-includes/class-wp-image-editor-imagick.php"", ""line"": 606, ""function"": ""setImagePage"", ""class"": ""Imagick"", ""object"": {}, ""type"": ""->"", ""args"": [ 1621.3333333333335, 1112.7466666666667, 0, 0 ] } }}} " skithund 54193 PHP fileinfo extention identifies JSON as text/plain; wp_check_filetype_and_ext then prevents upload Media normal normal Awaiting Review defect (bug) new has-patch 2021-09-27T16:54:56Z 2021-09-28T09:48:02Z "For hosts that make available the PHP fileinfo extension, uploaded files of mime type `application/json` are identified by that extension as `text/plain`. Within the `wp_check_filetype_and_ext` function, it's noted that ""a few common file types are occasionally detected as `text/plain`"", but `application/json` is not listed as one of those common types. For reference, the following types are listed: csv, rtf, tsv, and vtt. I propose adding `application/json` to this list. Otherwise, I believe it may be impossible to upload a JSON file on a host that uses this extension." dashifen 41516 PNG Image Saturation Loss on Resize Media 4.8 normal normal Awaiting Review defect (bug) new 2017-08-01T16:08:23Z 2017-08-04T04:16:39Z "I work with PNG images made with grey colors. And the colors change because of wordpres, not the original image, but all the new sizes. By default make the colors much darker but sometimes, also is weird: [[Image(http://i.imgur.com/L3Sk1Rg.png)]] Left and right are the same image. Some times handle even different for the same K=70 color. ( I export with Adobe illustrator to sRGB )" colomet 2 42128 PNGs lose color space information when resized Media normal normal Awaiting Review defect (bug) new 2017-10-06T21:11:46Z 2017-10-06T22:17:56Z "In cases where a PNG image is RGB but contains no color pixels, ImageMagick is converting the image to a gray color model during resizing, which makes the image look dark and blocky. I'm uploading a few of original example images, saved as both PNG8 and PNG24 and one without an alpha channel. Based on these examples, this seems to only affect PNG images and transparency doesn't seem to matter." joemcgill 1 42851 Problem with video height since 4.9 Media 4.9.1 normal normal Awaiting Review defect (bug) new 2017-12-09T12:02:55Z 2018-01-02T23:19:13Z "I have a video on a page and after updating to WP 4.9.1 the following element gets a height of 0px:
    The result is that the video area shows just the controls and nothing more (see attached screenshot on the left) . I can fix this with workarounds via CSS like styling mejs-container and mejs-mediaelement (see attached screenshot on the rigth) but that's a hassle for the responsive versions. Anyone elese facing these problems? (P.S.: I'm not an expert AND a German, so forgive me for dumb questions and bad writing …) " vhcrossmedia 41468 "Provide contextual info about what ""attached"" and ""detached"" means regarding media objects" Media normal normal Awaiting Review defect (bug) new 2017-07-27T22:10:56Z 2017-07-30T14:25:03Z "From user testing: ""I have no idea what it means when it says an image is 'Attached' to a post. Does it mean the image is in the post? Does it mean if I 'Detach' the image from the post it will go away from the post? I'm worried a client might 'Detach' an image from a post to remove it, or 'Attach' an image to add it. What is this for? How can an image be 'Unattached' to the post it is displayed in anyway?""" mor10 60141 Proximity of controls: Upload New Media multi-file uploader rcreators Media 5.8 normal normal 6.6 defect (bug) assigned 2023-12-22T13:50:57Z 2024-03-19T15:14:07Z "See #40822 See #51754 When uploading media files in the Upload New Media > multi-file uploader page, newly added files are listed within rows after the uploader. The rows contain: - The attachment details, on the left. - Additional tools, on the right. There's a couple problems with that. == Proximity of controls The tools are displayed too far to the right, way far from the details. This is a problem, for example, for low vision users and users who use screen magnifiers, as the tools may be out of their vision field. Controls should be displayed visually grouped so that they can be easily discovered by all users. I'm not sure there's a good reason to have all that spacing between details and tools in the first place. == The Copy button shifts to the left when copying There's a few Copy buttons in use in the admin pages. Most of them are aligned to the left and there's a good reason for that: The UI must provide space for the 'Copied!' confirmation text. However, on this page the Copy button is aligned to the right. After a copy operation, the 'Copied!' text appears on the right of the button thus making the button itself shift to the left. I'm not sure having moving interactive controls on the screen is a good user experience. Instead, the Copy button should be placed in a way to reserve some space for the 'Copied!' text to appear without triggering a shift of other content. See screenshots and animated GIF below." afercia 1 51584 Publishing a large image post while the image is still uploading allows you to leave and return to a broken image Media normal normal Awaiting Review defect (bug) new 2020-10-21T05:24:32Z 2020-11-10T18:49:23Z "This issue was originally reported by @antpb in #core-media here; https://wordpress.slack.com/archives/C02SX62S6/p1603135350316800 If you go to the post editor and upload a large image to the image block, then publish/save and leave the screen before it's uploaded you'll return to the post with a broken image. I'm thinking we should provide a dirty flag while that upload/resize process is underway for large images to flag to users and stop them from leaving the editor before the process completes." garrett-eclipse 2 39679 Redirect loop on attachment pages Media 4.7.1 normal normal Awaiting Review defect (bug) new 2017-01-24T17:12:11Z 2018-09-03T15:48:54Z "Summary: a URL to an attachment page will redirect to itself in an infinite loop in certain cases. Speculation: this may be due to my permalink structure, which would be why others are not complaining about it. This issue depends on the letter case of the URL. The attachment pages exist, and there is a method that allows them to be accessed, however they cannot be reached if the link is all lowercase letters. Because that is the link generated by the Media Library, users can encounter this. It took me a while to convince myself that this is a WP core issue because it does not happen on all servers. After adding logging code to some of the action hooks, I could see that a URL comes in and then generates a redirect, using `wp_redirect`, to the exact same URL that was requested. My permalink structure is `/%postname%.html`, and the WP portion of the site is in a subdirectory, so WP pages are accessed as: http://yourfriendpaul.com/wp/shredding-on-my-guitar.html Trying to reach the attachment page using this URL will result in an infinite loop: http://yourfriendpaul.com/wp/shredding-on-my-guitar.html/good-at-shredding-dscn4850-1200x900 Trying to reach it with this one will succeed, note the uppercase C. Making ANY letter in path uppercase will make it succeed: http://yourfriendpaul.com/wp/shredding-on-my-guitar.html/good-at-shredding-dsCn4850-1200x900 To complicate matters further, this does not happen on my Ubuntu server, but does happen on GoDaddy with the exact same database (other than site name). This is my first bug report, so I'm not sure how much info to put in the initial report. The following is an excerpt from my error log, with some notes added. Sorry for the formatting, it is just pasted. Thanks in advance for looking into this. Paul The data is captured using the error log. The first entry is made in wp-config. The next 3 lines are when yfp_functions is loaded. It creates the function that prepends `**yfplog` to an error message. The final three lines are from the action hooks indicated. {{{ ` # A call in all lowercase has multiple tries, in bursts, which loop and cause 301 redirects to the original URI, ` # but one uppercase letter avoids any redirects and finds the content. Only two of the redirects are shown. ` ` [24-Jan-2017 06:19:04 UTC] *** in wp-config.php, REQUEST_URI is /wp/shredding-on-my-guitar.html/good-at-shredding-dscn4850-1200x900 ` [24-Jan-2017 06:19:04 UTC] **fyplog - *** Log writing is enabled in yfp_functions, making funcion yfp_write_log() ` [24-Jan-2017 06:19:04 UTC] **fyplog - script: /wp/index.php ` [24-Jan-2017 06:19:04 UTC] **fyplog - uri: /wp/shredding-on-my-guitar.html/good-at-shredding-dscn4850-1200x900 ` [24-Jan-2017 06:19:04 UTC] **fyplog - wp_loaded() action was called. ` [24-Jan-2017 06:19:04 UTC] **fyplog - wp_redirect() action was called, location: http://YourFriendPaul.com/wp/shredding-on-my-guitar.html/good-at-shredding-dscn4850-1200x900, status: """" ` [24-Jan-2017 06:19:04 UTC] **fyplog - wp_redirect_status() action was called, location: , status: ""301"" ` ` [24-Jan-2017 06:19:04 UTC] *** in wp-config.php, REQUEST_URI is /wp/shredding-on-my-guitar.html/good-at-shredding-dscn4850-1200x900 ` [24-Jan-2017 06:19:04 UTC] **fyplog - *** Log writing is enabled in yfp_functions, making funcion yfp_write_log() ` [24-Jan-2017 06:19:04 UTC] **fyplog - script: /wp/index.php ` [24-Jan-2017 06:19:04 UTC] **fyplog - uri: /wp/shredding-on-my-guitar.html/good-at-shredding-dscn4850-1200x900 ` [24-Jan-2017 06:19:04 UTC] **fyplog - wp_loaded() action was called. ` [24-Jan-2017 06:19:04 UTC] **fyplog - wp_redirect() action was called, location: http://YourFriendPaul.com/wp/shredding-on-my-guitar.html/good-at-shredding-dscn4850-1200x900, status: """" ` [24-Jan-2017 06:19:04 UTC] **fyplog - wp_redirect_status() action was called, location: , status: ""301"" ` ` [24-Jan-2017 06:19:49 UTC] *** in wp-config.php, REQUEST_URI is /wp/shredding-on-my-guitar.html/good-at-shredding-dsCn4850-1200x900 ` [24-Jan-2017 06:19:49 UTC] **fyplog - *** Log writing is enabled in yfp_functions, making funcion yfp_write_log() ` [24-Jan-2017 06:19:49 UTC] **fyplog - script: /wp/index.php ` [24-Jan-2017 06:19:49 UTC] **fyplog - uri: /wp/shredding-on-my-guitar.html/good-at-shredding-dsCn4850-1200x900 ` [24-Jan-2017 06:19:49 UTC] **fyplog - wp_loaded() action was called. ` [24-Jan-2017 06:19:49 UTC] **fyplog - ******* in function get_attachment_link() ` [24-Jan-2017 06:19:49 UTC] **fyplog - ******* in function get_attachment_link() ` [24-Jan-2017 06:19:49 UTC] **fyplog - ******* in function get_attachment_link() ` [24-Jan-2017 06:19:49 UTC] **fyplog - ******* in function get_attachment_link() ` [24-Jan-2017 06:19:49 UTC] **fyplog - ******* in function get_attachment_link() ` [24-Jan-2017 06:19:49 UTC] **fyplog - ******* in function get_attachment_link() }}}" OPunWide 46970 Remove white Space - iPhone 6/7/8 Media 5.2 normal normal Future Release defect (bug) new 2019-04-18T08:42:03Z 2023-05-20T07:27:13Z "Hello, While we edit image from admin dashboard (Dashboard > Media > Library - edit), there is much white space displayed in iPhone-6/7/8 landscape and portrait mode. So for that, we can make that element in full width. Thanks, Shashank." shashank3105 40299 Removing width attribute on an image with a caption removes entire caption Media 4.7.3 normal normal Future Release defect (bug) new 2017-03-29T13:59:21Z 2018-12-27T21:56:20Z "If you insert an image with a caption into the visual editor, it will create code like: {{{ [caption id=""attachment_12345"" align=""alignnone"" width=""150""] My caption[/caption] }}} If you switch from the visual editor to the text editor and remove the `width` attribute '''of the image''' to get: {{{ [caption id=""attachment_12345"" align=""alignnone"" width=""150""] My caption[/caption] }}} And then either update the post, or switch back to the visual editor, the caption is stripped and only the image remains: {{{ }}} Removing the `height` attribute doesn't appear to cause the same behavior. I don't believe that removing the width attribute on the image should result in both the caption being stripped and the `[caption]` shortcode being removed. I'm not sure but this might be related to [27426] and #23103." catchmyfame 3 53669 Respect the quality settings in `wp_editor_set_quality` for lossless WebP adamsilverstein Media 5.8 normal normal Future Release defect (bug) assigned 2021-07-15T14:56:26Z 2022-12-01T00:23:58Z "In Imagick, WordPress now supports saving lossless WebP images when the source is a lossless WebP image. 🎉 This happens [https://github.com/WordPress/wordpress-develop/blob/f17f4f5f7e474e2c0bb77ace02aaf44fccd8362c/src/wp-includes/class-wp-image-editor-imagick.php#L208 inside the Imagick editor in `set_quality`]. The filter, `wp_editor_set_quality`, applies before this is run, in [https://github.com/WordPress/wordpress-develop/blob/f17f4f5f7e474e2c0bb77ace02aaf44fccd8362c/src/wp-includes/class-wp-image-editor.php#L241 the parent class]. This means that if a WebP is detected as Lossless, it isn't possible to override lossless thumbnailing with `wp_editor_set_quality`. WordPress should respect the `wp_editor_set_quality` filter's override, [https://developer.wordpress.org/reference/hooks/wp_editor_set_quality/ unless `set_quality()` is run manually]." kirasong 39387 Responsive Images Broken When Full Size <= 300 px joemcgill Media 4.4 normal normal Future Release defect (bug) reviewing has-patch 2016-12-24T19:02:49Z 2017-05-18T14:27:41Z "A quick test of the srcset feature today showed me that WordPress never includes the ""full"" size image in the srcset when the ""thumbnail"" size is inserted in a post. As a result, if the full size was 300 px, the responsive image feature effectively does nothing. Tested 4.7. Suspect this might go back to 4.4." miqrogroove 15 36477 Responsive images (srcset) can include images larger than the full size Media 4.4.2 normal normal Future Release defect (bug) assigned needs-unit-tests 2016-04-11T13:27:58Z 2023-09-01T15:35:00Z "In many cases, I saw the resized and smaller images are much larger than the origin image, especially for the optimized images, it will make no sense to do that resize in this case, the worst case I've seen is about 13x larger than the origin and bigger image. If an example can help to explain the problem, please take this picture: https://cdn2.peterdavehello.org/wp-content/uploads/2016/04/status.png Many thanks!" peterdavehello 48788 Run time crop image not working using wp_get_image_editor Media 5.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-11-25T14:16:27Z 2020-01-16T15:35:00Z "it's not working run time crop image {{{#!php set_quality($quality); $editor->crop($srcX, $srcY, $srcW, $srcH, $destWidth, $destHeight); $saved = $editor->save($destFileName); }}} ============================= Problem for ""$editor->crop()"" while source image size is smaller than destination image size. {{{#!php crop($srcX, $srcY, $srcW, $srcH, $destWidth, $destHeight); }}} " ahmed17 40631 Safari issues with wp-includes/ms-files.php Media 4.7.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-05-02T07:33:43Z 2020-07-28T10:19:56Z "We have a multi-site network with over 200 sites on it. Whilst the network is running WP 4.7.4–en_AU the network was originally built on a version prior to 3.5 and has been continually updated as versions become available. That being said, our network still uses the old file structure wp-content/blogs.dir/[site#]/files to store media. I've tried converting this over with no success and haven't really been able to find any good resources to help me do this beyond the things I've tried. So, our network continues to use the above path with the compatibility option of using wp-includes/ms-files.php which is called in the .htaccess file. However, there seems to be a bug in the ms-files.php that are causing some resources not to load properly when the sites are loaded into Safari or an iOS device. 1. PDF documents fail to load 2. CSS files that have been cached by our theme (it has it's own caching function) also fail to load. I've narrowed down the culprit to the lines of code in ms-file.php that output the headers. If I comment out the code on line 43: {{{#!php header( 'Content-Length: ' . filesize( $file ) ); }}} ...then the problem goes away. Not sure what impact commenting the above has but it doesn't seem to break the site so I've left it commented out. My best guess is that Safari doesn't like this header being sent out separately from the earlier one on line 41. It may even be a bug with Safari - not sure on this one. Anyway, thought I'd report it here to begin with. Cheers Chris " Brandicoot 51115 Scaled Images have larger file size than the original Media 5.5 normal normal Awaiting Review defect (bug) new 2020-08-23T22:29:29Z 2020-08-24T20:02:43Z "I saw a bug about this for png files but I have the same issues with jpg. This occurs with WP 5.5 on different sites. As a result, I turn scaling off to work around the issue. " koolkatwebdesigns 48784 Search box in Select / Upload image pop-up not working with cropped images Media 5.3 normal normal Awaiting Review defect (bug) reopened 2019-11-24T20:52:28Z 2020-03-28T20:10:45Z "Hi, it seems that the search field in the pop-up of selecting or uploading images can not find the images which have been cropped before. For example, if I go to Appearance / Customize and want to change the Logo image, and I am asked to cropped the image, that image won't show in the search field. It will show the non cropped image, but not the cropped one. Thank you! In the attached image you can see how the search field can do find the filename ""Foto-de-Javier-1.jpg"" using just the letters ""jav"". But there is another image in the Media which name is ""cropped-Foto-de-Javier-1.jpg"" and this one does not appear." javierr 1 48361 Select Files on iOS doesn't trigger on modal if start on Upload Files tab and switch to Media Library tab adamsilverstein Media normal normal Awaiting Review defect (bug) assigned 2019-10-17T23:27:06Z 2019-11-03T19:46:59Z "Hello, I came across an odd issues on a client site recently using ACF and the Gallery field so I did a fresh install and found the issue resides in core as well. In short the 'Select Files' button doesn't trigger the uploader if you trigger the media modal starting on 'Upload Files' and then switching to 'Media Library' when there's no files present. To reproduce use an iOS device (iPad/iPhone); 1. Install a clean WordPress 2. Create a new post. 3. Add a Gallery block 4. Click the 'Media Library' button. 5. If your Media Modal opens with 'Media Library' tab selected then switch to 'Upload Files' and reload the screen. 6. Your Media Modal should open on 'Upload Files' now. 7. Switch to the Media Library tab now. 8. Click the 'Select Files' button that appears below the 'No items found' text. 9. Note the uploader isn't triggered. This seems to only occur when there's no items in your media library and you are using the Media Modal but your settings have it open on 'Upload Files' first and then you switch to 'Media Library'. I initially came across this with an ACF Gallery field, but in my clean install it was the Gallery block that I was able to reproduce the issue with. All the best, Cheers " garrett-eclipse 46971 Selected Image gets overflow in Edit Image in Media upload - iPhone - 6/7/8 Media normal normal Awaiting Review defect (bug) new dev-feedback 2019-04-18T09:01:10Z 2019-04-30T17:27:52Z "Hello, While we edit image from admin dashboard (Dashboard > Media > Library - edit), the selected image gets overflow in iPhone-6/7/8 portrait mode. So for that, we can apply max-width: 100%. Thanks, Shashank." shashank3105 1 48469 Selecting Media File as image block link creates blob URL if large image still being processed Media 5.3 normal normal Future Release defect (bug) new 2019-10-30T17:05:54Z 2019-11-05T21:46:36Z "Steps to reproduce... 1. In post editor, select image block. 1. Use ""Upload"" button. 1. Select a large file, e.g. 5120x2880 image. 1. While the image is still being processed (has spinner overlay), select link button on the block and pick ""Media File"". When the post is then saved and viewed, the wrapping link will have an `href` with a value like ""blob:http://example.com/cee61eeb-3bf1-984a-9930-5660bba8a2f8"". If you then go back and edit the post, remove the link from the block, and then re-select Media File as the link type and save the post, expected URL used in post, e.g. ""http://example.com/wp-content/uploads/2019/10/image-scaled-2560.png"" Tested with WP 5.3-RC3." ianmjones 1 35771 Setting Size for Native Video Player Doesn't Work Media normal normal Awaiting Review defect (bug) new 2016-02-07T21:28:00Z 2017-06-27T16:50:20Z "Width and height rules do not affix the size of the embedded native media player. Width is ultimately honored, but height setting is overruled and set proportionally based on video's proportions. Consequently, if width of the player is set to fill in the theme's available content space, but the embedded video is vertical (filmed vertically, whereby height of the video is greater than width), then the player will be stretched way too tall, regardless of height settings (which is ultimately ignored). To reproduce: Embed any locally hosted, vertical video using native video player, using the Embed Media Player option from the Insert Media attachment window. Set width to the width of your theme's content area, and height to less than width. Height will not be honored. Desired solution: Set player size to the width and height chosen by the user. Fit the video within the set space of the player." Tranny 1 27919 Similar strings for media modal joedolson* Media 3.9 normal normal 6.6 defect (bug) accepted has-patch 2014-04-19T18:10:24Z 2024-02-29T12:09:45Z "There are some strings which we use for the same action from different modal windows: - ""Attachment Display Settings"" x ""Display Settings"" - same settings from different windows - ""Edit Image"" x ""Edit Original"" - same link from different windows - ""There are no associated subtitles."" - should be ""items"", I guess (can be inserted also other things then subtitles)." pavelevap 3 37311 Site icon thumbnails are lost if wp_generate_attachment_metadata called again later Media 4.5 normal normal Awaiting Review defect (bug) reopened 2016-07-07T22:36:48Z 2021-04-14T16:36:05Z "If image sizes are regenerated with the Regenerate Thumbnails plugin, the custom Site Icon sizes (and possibly other images in the customiser?) are lost. The question is whether this is something that needs changing in the plugin, or whether the logic for how these sizes work should change in core. (Virtually all core documentation tells people to use this plugin when changing image sizes, so it should be fixed in one of the other). I'm of the opinion it should be changed in core, where custom sizes like the ones created by Site Icons should be somehow marked as special sizes, with wp_generate_attachment_metadata checking for any existing custom sizes and including them in the output." smerriman 1 54555 Slow media query on big sites Media 5.8.2 normal normal Awaiting Review defect (bug) new 2021-12-02T07:50:02Z 2021-12-03T20:12:28Z "On wordpress version 5.8.2 the wp_enqueue_media() slow query is still there. I found several old discussions about being fixed for many years ago but in my case is still there. SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM wp_posts WHERE post_type = 'attachment' ORDER BY post_date DESC 4.6238s I have 73903 media items" lebada 2 54818 Some file names are no longer sanitized Media normal normal Awaiting Review defect (bug) new 2022-01-14T11:16:03Z 2022-01-14T13:03:24Z "When uploading a file which filename contain accents, those accents are no longer replaced by non-accent letter. It's specific to JPEG file. Tested with PDF and PNG: accent are well removed. See attached screenshot with JPEG, PNG and PDF example. I can reproduce this with WP 5.9 RC2 and WP 5.8.3." Chaton666 2 55274 Special chars in attachment filename breaks srcset audrasjb Media 4.4 normal normal Future Release defect (bug) reviewing 2022-02-28T09:18:25Z 2022-04-27T05:03:17Z "There is currently fix that handles spaces in filenames, but it doesn't handle other special characters e.g. $! or any other special char Spaces issue was reported there: https://core.trac.wordpress.org/ticket/36549 And fixed here: https://core.trac.wordpress.org/changeset/38052" dravnic 3 25103 Submit buttons on form fields in the Add Media panel joedolson* Media 3.5 normal normal Future Release defect (bug) accepted 2013-08-20T21:23:11Z 2021-05-21T15:57:23Z "Splitting this out from #23561 There is no Go or Search button available to trigger the action for the search and filter input fields in the Add Media screen - both of which change the content of the panel below. For accessibility reasons the user should be in control of triggering the filtering." johnbillion 40806 Subtitles show no media files in browser when there are some Media normal normal Awaiting Review defect (bug) new has-patch 2017-05-18T17:42:45Z 2021-07-09T05:02:00Z "This may be a case of it looking for a very particular file, the trouble is that isn't clear if the case. I discovered this whilst testing the video widget, but assume its media library. I see the following: [[Image(https://cldup.com/jLgqBIQbvi.png, 60%)]] Somewhat of a surprise when my media library shows... [[Image(https://cldup.com/pCAJry0o1a.png, 60%)]]" karmatosed 60291 Support Lossless WebP in WP_Image_Editor_GD 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 2 41148 Test for ticket 39875 can throw PHP error Media 4.8 normal normal Awaiting Review defect (bug) new has-patch 2017-06-24T07:53:42Z 2017-08-28T11:29:35Z "The test that was written for #39875 can throw a PHP error under certain circumstances: `Undefined index: sizes`. The problem arises when then `wp_generate_attachment_metadata()` call does not return the proper array data. As the preview path generation directly access a specific array index, this throws a PHP error." schlessera 47144 Text inadvertently rendered by assistive technologies joedolson* Media normal normal Future Release defect (bug) accepted 2019-05-06T14:58:01Z 2022-10-28T15:49:23Z "Moved from the WPCampus accessibility report issues on GitHub, see https://github.com/WordPress/gutenberg/issues/15296 * **Severity**: * Medium * **Affected Populations**: * Blind * Low-Vision * Cognitively Impaired * **Platform(s):** * Windows - Screen Reader * Mac - VoiceOver * Android - TalkBack * iOS - VoiceOver * **Components affected**: * Block Panel * Document Panel * Media Dialog **Issue description** Users of assistive technologies such as screen readers who navigate to the bottom of the Settings panels will find a button which they cannot activate (nor see if sighted) called ""Select files"". Additionally, if users change the color modes in the popup custom color picker, the current mode is announced in a live region. However, long after users are done with choosing a color, even after choosing to edit another block on the page, when they reach the bottom of the Block panel they'll still hear ""hex color mode active"". At this point, users may not remember what this was for and have no idea what this is referencing, as it no longer has any context. **Issue Code** {{{
    Hex color mode active
    }}} **Remediation Guidance** When users have performed an action, such as clicking another block (or whatever action causes ""No block selected"" to appear in the Block panel), clear the live region so that users who encounter it while manually reading do not hear it. Refill the live region when users change color modes. The hidden file selection button should be hidden from all users with display: none whenever it is not visible nor meant to be used. **Recommended Code** {{{
    }}} **Note**: This issue may be a duplicate with other existing accessibility-related bugs in this project. This issue comes from the Gutenberg accessibility audit, performed by Tenon and funded by WP Campus. This issue is GUT-41 in Tenon's report ''**Note**: The a11y-speak live regions are used in core as well. In several places. Thus, clearing the live regions shouldn't depend on a specific user action or scenario. It would require a more generic solution, preferably avoiding setTimeout() which seems to me a very fragile solution by its own nature.''" anevins 2 57488 "The ""Showing X of Y media items"" area in Media Upload screen gives wrong information." Media 6.1.1 normal normal Awaiting Review defect (bug) new has-patch 2023-01-18T05:24:38Z 2023-01-25T03:52:45Z "I followed the following steps and got this error: 1) Freshly created a new WordPress site. [[Image(https://i.paste.pics/L1SUI.png)]] 2) Created a new page and opened it in the block editor [[Image(https://i.paste.pics/L1SW2.png)]] 3) Added a new gallery block [[Image(https://i.paste.pics/L1SY2.png)]] 4) Clicked ""Media Library"" [[Image(https://i.paste.pics/L1SYB.png)]] 5) Uploaded new images [[Image(https://i.paste.pics/L1SYG.png)]] 6) Uploaded 20 images, but the counter showed, ""Showing 20 of 19 media items"" [[Image(https://i.paste.pics/L1SYQ.png)]] It showed the correct number when I closed it and opened it back up. I know it's a minor issue but thought about informing the experts. Here are my setup details: i) OS: Ubuntu 20.04.5 LTS ii) Using Local by Flywheel iii) Web server: Nginx iv) PHP Version: 8.1.9 v) MySQL: 8.0.16 vi) WordPress: 6.1.1 vii) Browser: Opera " shamayel007 1 49086 "The ""site_icon"" option isn't always removed when the site icon is deleted" Media normal normal Awaiting Review defect (bug) new dev-feedback 2019-12-27T17:38:05Z 2022-01-06T02:32:21Z "If you delete the site icon image by going to Media > Library, the ""site_icon"" option isn't deleted from the database. Note the option is deleted if you go Appearance > Customize and remove the icon through the Site Identity tab." henry.wright 1 53981 The 'media_buttons' hook does not work for contributors. Media 2.7 normal normal Awaiting Review defect (bug) new has-patch 2021-08-23T19:10:13Z 2021-08-26T14:40:16Z "##Problem Details## Plugins are given the `media_buttons` hook to be able to add additional buttons to the editor interface. The way this is implemented in _WP_Editors::editor(), the user role must include the `upload_files` capability. While this makes sense when it comes the default `Add Media` button, it doesn't make sense for some other buttons such as Post And Page Builder's Add Block button, or WeForms' Contact Form buttons. The plugin developers should be able to decide what capabilites the user needs to have for their custom buttons before hooking into that action. ##Suggested Resolution## My suggestion is that the existing `media_buttons` hook remain as it is, but that we add another hook just afterwards called `after_media_buttons` . This will allow those custom buttons to be rendered whenever the developer wishes them to be. " jamesros161 60158 The description field for media doesn't automatically make paragraphs in the generated code joedolson* Media normal normal 6.6 defect (bug) accepted needs-unit-tests 2023-12-27T11:47:53Z 2024-03-19T15:20:16Z "There are two ways to edit a media: - via a modal window where all the contribution fields are only simple textareas; - via a dedicated web page where ""alternative text"" and ""caption"" fields are simple textareas and the ""description"" field is a WYSIWYG editor in text mode where TinyMCE is deactivated. For some media, you can need to add a long description just like a transcript (for videos, audios, complex images like infographic, etc.). So, in these cases, the description field can be used because it's totally appropriate. But, there is a problem: usually, in editor fields, the paragraphs (

    elements) are automatically added when you display the web page (in the front view). In this field, they are not. For accessibility reason, paragraphs need to be HTML paragraphs ([https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html WCAG Success Criterion 1.3.1: Info and Relationships (level A)]). I've tried to modify the code in the core to add TinyMCE that is explicitly deactivated and this is fixing the problem. It's in wp-admin/includes/media.php, on line 3261 where you can just change ""false"" to ""true"" for ""tinymce"": {{{#!php 'strong,em,link,block,del,ins,img,ul,ol,li,code,close' ); $editor_args = array( 'textarea_name' => 'content', 'textarea_rows' => 5, 'media_buttons' => false, 'tinymce' => false, 'quicktags' => $quicktags_settings, ); }}} So, is it possible to activate TinyMCE for this field? Why is it deactivated? Or, if it's not possible, is it possible to make this option hookable? Thank you " juliemoynat 60632 "The focus outline of the ""Upload files"" button is cut off" 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 58733 The load more button appears even when there is only one image in the feature image selection window. joedolson* Media 6.3 normal normal Awaiting Review defect (bug) accepted 2023-07-06T13:22:35Z 2023-07-21T15:20:00Z "Load more button appears in the popup window for replacing the feature image, even when there is only one image available. Steps to reproduce the issue: 1. Go to the post editor in WordPress. 2. Locate the section where you can edit the feature image for the post. 3. Click on the ""Replace"" button to select a new image. 4. The popup window will open, showing the available images. Despite there being only one image in the selection, the ""Load More"" button is present in the popup window. Video Link: https://www.loom.com/share/c0e9faa4cc86455eb30bdaf2149b5a60 === Environment - WordPress: 6.3-beta3-56143 - PHP: 7.4.21 - Server: Apache/2.4.46 (Unix) OpenSSL/1.0.2u PHP/7.4.21 mod_wsgi/3.5 Python/2.7.13 mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_perl/2.0.11 Perl/v5.30.1 - Database: mysqli (Server: 5.7.34 / Client: mysqlnd 7.4.21) - Browser: Chrome 114.0.0.0 (macOS) - Theme: Twenty Twenty-Three 1.1 - MU-Plugins: None activated - Plugins: * WordPress Beta Tester 3.5.0" aparnajl 1 54320 There are no more thumbnails for uploaded PDFs Media 5.8.1 normal normal Awaiting Review defect (bug) new 2021-10-25T19:05:09Z 2022-08-24T14:45:09Z "My current WP configuration • PHP / MySQL version: 7.4 • Theme used: Camp Maine of TAM’S TRADING POST (no longer maintained) • Extensions in place: activated: Akismet - BackWPup - contact Form 7 - Cookie Notice - Honeypot for Contact Form 7 - Ithemes Security - Post Type Switcher - SF Move Login - TablePress - WP Image Zoom - WP Maintenance Mode. Name of the host: OVH Site address: https://amapdlacrau.fr Problems encountered: The latest .PDF files uploaded to the media library have a generic file icon and no longer display the small thumbnail unlike older files. Clicking on the icon no longer opens the image of the 1st page of the file. Everything I did that didn't work to fix the problem: * Create PDFs with different tools; Microsoft, Do PDF, ApowerPDF ... * Install WordPress version 5.8.1 * Downgrading the PHP version from PHP 8 to PHP 7.4 This fixed the problem with the imagik module, declared absent by the site health check in version 8, but not the thumbnail problem. * Use an upload plugin: File Manager * Use thumbnail regeneration plugins: Regenerate Thumbnails and Force Regenerate Thumbnails. I have not tested: use a media management plugin instead of the media library I note that the function for generating the thumbnails of the PDF files has stopped working when the theme is no longer maintained and the PHP version is the same. Only the version of WordPress has changed " 10rjulienk21 58483 UI issue in uploasd multiple media in mobile Media 6.2.2 normal normal Awaiting Review defect (bug) new 2023-06-08T07:40:16Z 2023-06-08T07:40:16Z "Hi, We need to add padding on the right side for maintaining alignment on the right side in uploading multiple media on mobile. The more informed nation you can see mentioned screenshot. " sumitsingh 52373 URL returned by get_attachment_link() can 404. Media 4.4 normal normal Awaiting Review defect (bug) new has-patch 2021-01-25T23:51:23Z 2021-02-02T00:52:54Z "The permalink returned by `get_attachment_link()` and `get_permalink( /* attachment */ )` can result in a file not found page in the following circumstances: * The attachment's post parent has been deleted but `post_parent` is set (ie, post parent is pointing to an invalid ID). * The attachment's post parent is an unregistered post type. In both cases `get_permalink()` will return a URL in the format `w.org/attachment-name` that will 404 when visited on the front end of the website. If pretty URLs are enabled, the URL should return `w.org/attachment/attachment-name` as the permalink. Adding the following unit test will demonstrate the bug: {{{#!php set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' ); flush_rewrite_rules(); // Create temporay post type. register_post_type( 'not_a_post_type', array( 'public' => true ) ); $post_id = self::factory()->post->create( array( 'post_type' => 'not_a_post_type' ) ); // Attach media to post of post type. $attachment_id = self::factory()->attachment->create_object( 'image.jpg', $post_id, array( 'post_mime_type' => 'image/jpeg', 'post_type' => 'attachment', 'post_title' => 'An Attachment!', 'post_status' => 'inherit', ) ); // Unregister post type. foreach ( $wp_post_types as $id => $pt ) { if ( 'not_a_post_type' === $pt->name ) { unset( $wp_post_types[ $id ] ); break; } } // Visit permalink. $this->go_to( get_permalink( $attachment_id ) ); $this->assertQueryTrue( 'is_attachment' ); } }}} This looks to have been introduced in #1914 " peterwilsoncc 45694 Undefined Index: caption_id SergeyBiryukov Media 5.0.1 normal normal Future Release defect (bug) reviewing reporter-feedback 2018-12-18T21:41:16Z 2019-01-16T05:56:42Z "Discovered this randomly on a local project. {{{ Notice: Undefined index: caption_id in /var/www/html/wp-includes/media.php on line 1572 }}} Discovered with PHP 7.2.10 and WordPress 5.0.1 It's just a warning but one nonetheless. Attached will be the patch." Soben 3 48194 "Unregistered image sizes used for IMG tag ""srcset""" Media normal normal Awaiting Review defect (bug) new 2019-10-02T02:16:24Z 2020-07-21T06:25:14Z "Following design changes, previously-generated thumbnails remain on the site, along with matching post meta entries linked to the respective attachment. WordPress then uses those to produce IMG tags. In fact, these thumbnails are referenced even when the files don't exist on the site anymore, following a cleanup. I think WordPress should only use thumbnail URLs for registered image sizes. For bonus points, there can be a way to remove unregistered size references from attachment meta, perhaps in a Media > Audit admin page, which lets the user decide what to remove and what to keep. For context, I've just cleaned images on a site and found a lot of legacy references to thumbnails of previously registered sizes in IMG tags. Media management and cleanup plugins I used could only detect the redundant meta data when I re-registered the old sizes temporarily." galbaras 1 60666 Unwanted section appears as a sidebar in 'Create gallery' section joedolson* 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 3 48111 Update usage of `multi_resize` to utilize new `wp_create_image_subsizes()` function kirasong Media 5.3 normal normal Future Release defect (bug) assigned 2019-09-23T17:48:40Z 2020-02-21T09:41:15Z "As mentioned in https://core.trac.wordpress.org/ticket/40439#comment:61 There are two uses of `multi_resize()` that will need to be updated to use the new `wp_create_image_subsizes()` function introduced in #40439. - In the [https://github.com/WordPress/WordPress-develop/blob/master/src/wp-admin/includes/image-edit.php#L947 image editor] (`src/wp-admin/includes/image-edit.php`). - In [https://github.com/WordPress/WordPress-develop/blob/master/src/wp-admin/includes/image.php#L583 PDF Thumbnails/Fallback Thumbnail Support] (`src/wp-admin/includes/image.php`). " antpb 2 49900 Updates to Image Processing in WordPress 5.3 - Broken Intrinsic Sizing? Media 5.3 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-04-13T23:24:20Z 2020-05-14T22:46:41Z "Hello WordPress Wizards, I am a bit late to learning about this Update - I am currently on the Latest Version of WordPress however: [https://make.wordpress.org/core/2019/10/11/updates-to-image-processing-in-wordpress-5-3/] For months I have been talking to support teams and Developers before finding this article above. - Unfortunately I have had no luck with any ideas or information from them until finding this Post. Since November 2019 (The first content I have added since the 5.3 Update) I have had an issue with Uploading Images. For example I will upload an image at 250x250 pixels. However when it is displayed on the page the ""Intrinsic Sizing"" will be 624x468. Inside of the Media Library it still says the dimensions are ""250x250"" however Right Clicking the Image > Open Image In New Tab - Displays the image at 624 x 468. - Its creating different sizings and now choosing the wrong one (e.g - not picking Original Dimensions) I want to note. T**his is only for images uploaded SINCE this 5.3 Update**. I can still insert previously uploaded images that are stored in the Media Library and they are the correct Dimensions on the page. Attached Image Below showing: [[Image(https://gmm-downloads.s3.amazonaws.com/WordPress+5.3+Intrinsic+Sizing.JPG)]] I have disabled Themes and Plugins and the Issue still occurs. **Note:** ''I am having this issue only on my LIVE site. My Development site with the same themes and Plugins does not get this error - so it was potentially a problem on Installing the update?'' From the timing and what the 5.3 Update included, I feel as though it is related to this 5.3 update. Thanks! Alex **P.S** This is my first WordPress.org post - So I apologize if I am in the wrong area for posting this kind of question. Have a great day :)" techgmm 2 58944 Upload to Media Library not replicating to all pod's 6.2.2 Media 6.2.2 normal normal Awaiting Review defect (bug) new reporter-feedback 2023-07-31T10:18:52Z 2023-10-04T15:34:54Z "Hello, after updating from WP 6.1.1 to 6.2.2 the new uploaded images start to apear ""broken"" on Media Library. If we refresh the page several time's we will see the image ok, but if we refresh it again it will be broken. We are running the WP in kubernetes, so we have several pod's. This behaviour means the uploaded image is no longer been replicated to all pod's. So it only exist's in one pod. After reverting to 6.1.1 all is ok." vitorgandra 1 44765 Uploaded image corrupted after resizing Media 4.9.8 normal normal Awaiting Review defect (bug) new reporter-feedback 2018-08-09T13:49:17Z 2021-04-28T18:00:00Z "When I upload .jpg larger image and turn on resizing, image is corrupted after upload is done. I tried it on two websites on latest version. In v. 4.9.6 its working normally. When i Set in SETTINGS - MEDIA zeroes everywhere, its not resizing and picture is fine. Screenshots are below: [[Image(https://ctrlv.cz/shots/2018/08/09/lnGX.png)]] [[Image(https://ctrlv.cz/shots/2018/08/09/t6CU.png)]] [[Image(https://ctrlv.cz/shots/2018/08/09/bb0t.png)]]" lurbanek 5 34465 Uploader in Media Modal Not Working When Certain Library Arguments Present Media 4.0 normal normal Awaiting Review defect (bug) new 2015-10-27T13:32:55Z 2017-09-18T00:16:15Z "I noticed this bug while working on a plugin that deals with the media modal. I'm using the following code to create a media modal on a button view: {{{ function frame(){ // Destroy the previous collection frame. if ( this._frame ) { this.stopListening( this._frame ); this._frame.dispose(); } this._frame = wp.media( { className: 'media-frame rwmb-media-frame', multiple : true, title : 'Select Media', library : { type : 'image', }, frame: 'select', } ); //Event stuff goes here this._frame.open(); }, }}} The issue is when uploading a file using the upload tab in the media modal. The file uploads but it never appears in the Media Library tab like it does in the core media modal used by the editor. The side Attachment Details panel shows the file information but the file itself doesn't appear on the grid. Attached is a screen cap from a user of the plugin. " Funkatronic 2 40289 Uploading 2 files with the same name but different casing, overwrites existing files Media 4.7.3 normal normal Awaiting Review defect (bug) reopened 2017-03-28T22:23:44Z 2017-06-08T09:36:11Z "Problem: Under normal circumstances, if I upload a file to the media library but a file with a similar name was previously uploaded, wordpress would change the name of the new file (by adding a dash and a number). However, If I upload 2 files with the same name, BUT WITH DIFFERENT CAPITALIZATION, wordpress won't rename the second file and will just reference the older one. So if for example, I already had the file cover.jpg in my library and I've created a new post and uploaded the file COVER.JPG, it will show in the post the older image of (cover.jpg)." quickim 5 34981 Usage of `image_size_names_choose` breaks JS attachment model attributes Media 4.3.1 normal normal Future Release defect (bug) assigned has-patch 2015-12-10T16:31:31Z 2022-08-03T21:11:43Z "Here's a small use case that shows how the issue arise. I want to limit the options of image sizes in the default media modal to so I use the filter `image_size_names_choose` provided in `wp-admin/includes/media.php` and remove the sizes `thumbnail` and as well as `medium`. This brings me the expected result: [[Image(https://naber.pegasus.uberspace.de/fs/public/images/2015/limit-attachment-sizes.png)]] With this I have now the problem, that for every thumbnail image in the media library (mode: grid) the large image source is used which is a performance issue if there are more than a couple of images in the library. The reason is, that the same filter `image_size_names_choose` is also applied to each image in `wp_prepare_attachment_for_js()` and therefore the attachment model does not reflect all available image sizes (`console.log( attachment.sizes )`: [[Image(https://naber.pegasus.uberspace.de/fs/public/images/2015/attachment-model-sizes.png)]] Here's a plugin that reproduces the issue in a clean WordPress (4.4) install: `wp-content/plugins/image_sizes_issue/image_sizes_issue.php`: {{{#!php }}} This is it now: {{{ }}} These are the new attributes being added: {{{ loading=""lazy"" width=""1000"" height=""448"" }}} " jeslen 48988 WordPress Does Not Generate JPG Sizes After 5.3.1 Media 5.3.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2019-12-15T12:23:16Z 2020-03-12T15:32:41Z "I have a strange problem on all my wordpress sites after upgrading to 5.3.1 When uploading an image to the site, it does not create any additional size nor the thumb 375x175 it should create ... I've tried using plugins that generate image sizes and they didn't work either ... The strange thing is that if the image is PNG it does create the other sizes, the error happens only with JPG images. Even if I rename a JPG image to PNG the process doesn't work ... Remembering that wordpress uploads the image normally, it just doesn't generate the extra JPG sizes, absolutely no additional sizes. " kevinbkt10 2 49995 WordPress creates unnecessary thumbnails Media 5.4 normal normal Awaiting Review defect (bug) new 2020-04-24T11:44:23Z 2020-04-26T12:09:32Z "Hello, I think I found a bug in WordPress 5.3 onwards, when **imagick is installed and activated** on the server (PHP 7.3, phpinfo attached). To reproduce the problem: 1 - in /wp-admin/options-media.php check what sizes are set (defaults are: 1024x1024, 300x300x 150x150) 2 - upload an image with the same size as one of the three, let's say I upload this image https://via.placeholder.com/1024x1024 3 - WordPress uploads the image and generates the following files 1024x1024.png -> original image 1024x1024-1024x1024.png -> SHOULD NOT BE CREATED 1024x1024-768x768.png -> medium_large 1024x1024-300x300.png -> medium 1024x1024-150x150.png -> thumbnail 1024x1024-1024x1024.png should not be generated, it's also bigger than the original (3.5kB vs 6.3kB). The same thing happens with the other sizes as long as the image size is the same as one of the sizes set in the options. It doesn't happen on Wordpress 5.2.x and downwards. To solve the problem imagick must be deactivated, using GD the problem doesn't happen." XXVII 31 28474 WordPress destroys animation in animated GIF when it resizes Media 3.9.1 normal normal Future Release defect (bug) assigned has-patch 2014-06-06T20:12:39Z 2023-12-07T16:43:11Z When uploading animated GIFs to WordPress and then resizing them, the end result is the resized versions lose all frames and become static. This is a bug and should be fixed to allow animated GIFs to be resized properly. archon810 7 30402 WordPress does not respect the bit-depth of the original image when resizing Media 3.9.2 normal normal Awaiting Review defect (bug) new 2014-11-19T08:15:02Z 2021-03-04T15:09:12Z "i have uploaded 8 bit depth indexed color png, near 1400x1800 size image in wordpress and inserted it into post , and original image was near 500 kB and the smaller width-height version made by wp is near 1400 kB, because it is 24 or 32 bits per pixel png. (this is useless. i have edited html code to use full version because it is smaller by weight and it is scaled by size so it is ok)." qdinar 6 32282 WordPress image cropping is buggy joedolson* Media 4.2.2 normal normal 6.6 defect (bug) accepted has-patch 2015-05-07T11:10:30Z 2024-02-26T16:51:19Z "see here http://wordpress.stackexchange.com/questions/187577/cropping-image-results-in-image-being-too-small?noredirect=1#comment273421_187577 text copied from there: This is the wordpress version 4.2.2 powell I crop 1500 x 1000 and then press on crop, then save. Resulting image size: 1497 x 1000 I don't know, I somehow hoped that wordpress is able to crop correctly. The original image can be found here: http://img.youtube.com/vi/zXgyoDAuaH0/maxresdefault.jpg What I did is downsize to .... x 1000 then try to crop with selection manually entering 1500 x 1000 You can actually see the bug earlier, when you enter 1500 x 1000 and then click on the selection to drag it around (right, drag the selection, not change size) it results in the number 1500 falling down to 1498." Jossnaz 50692 WordPress v5.4.2 Escaping Problem in the Edit Media Screen Media 5.4.2 normal normal Future Release defect (bug) new has-patch 2020-07-18T02:04:24Z 2023-01-31T13:35:59Z "**Summary**: WordPress v5.4.2 escapes the content of the Description field in the Edit Media screen if the filter {{{'user_can_richedit'}}} returns {{{false}}}. **How to Replicate** 1) Upload an attachment and open the Edit Media screen 2) Add a simple HTML markup to the Description field. Example: {{{

    Hello World!

    }}} 3) Save changes and check that the content of the field is not HTML escaped 4) Add the following line to the current theme {{{add_filter('user_can_richedit', '__return_false', 999, 0);}}} 5) Go back to the Edit Media screen and save changes again 6) Problem: The content of the field Description is HTML escaped **Context** I administer a WordPress website since many years ago and I disabled the WYSIWIG editor setting the value of the filter {{{'user_can_richedit'}}} to {{{false}}}. I like to enter HTML code directly. Now I am unable to use HTML code in the Description field as I did previously. Probably other users are also facing this problem. " rafaelcardero 51243 [JS] Exception when setting or trying to upload a featured image in a post Media 5.5.1 normal normal Awaiting Review defect (bug) new has-patch 2020-09-04T09:43:43Z 2020-10-30T07:15:30Z "I'm getting the following JS exception when trying to set or upload a featured image in a post. The editor then exits with an error message. {{{ TypeError: this.obj._listeners is undefined Backbone 5 t https://ig-klettern.org/wp-includes/js/media-views.min.js?ver=5.5:2 dispose https://ig-klettern.org/wp-includes/js/media-views.min.js?ver=5.5:2 dispose https://ig-klettern.org/wp-includes/js/media-views.min.js?ver=5.5:2 remove https://ig-klettern.org/wp-includes/js/media-views.min.js?ver=5.5:2 Underscore 3 Backbone 2 remove https://ig-klettern.org/wp-includes/js/media-views.min.js?ver=5.5:2 Underscore 3 Backbone 2 remove https://ig-klettern.org/wp-includes/js/media-views.min.js?ver=5.5:2 value https://ig-klettern.org/wp-includes/js/dist/media-utils.min.js?ver=9ad24b42cc69f241229ded4dc61409fb:2 Ii https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:104 $g https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:105 bh https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:105 ah https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:109 Ti https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:145 unstable_runWithPriority https://ig-klettern.org/wp-includes/js/dist/vendor/react.min.js?ver=16.9.0:26 Ma https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 Ia https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:140 ze https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:118 mg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:53 unstable_runWithPriority https://ig-klettern.org/wp-includes/js/dist/vendor/react.min.js?ver=16.9.0:26 Ma https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 mg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 V https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 Sb https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:213 Mg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:85 e https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 t https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 o https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 o https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 b https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 p https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 s Redux I https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 N https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 default https://ig-klettern.org/wp-includes/js/dist/block-editor.min.js?ver=6d92bbc61845b6652c64f83c59aee1f0:12 t https://ig-klettern.org/wp-includes/js/dist/block-editor.min.js?ver=6d92bbc61845b6652c64f83c59aee1f0:7 s https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 he https://ig-klettern.org/wp-includes/js/dist/rich-text.min.js?ver=a4056cfcb2aec8ceb3c8e8935dfd0bc4:7 react-dom.min.js:103:487 ve https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:103 callback https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:114 yg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:62 xg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:61 Ti https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:148 unstable_runWithPriority https://ig-klettern.org/wp-includes/js/dist/vendor/react.min.js?ver=16.9.0:26 Ma https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 Ia https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:140 ze https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:118 mg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:53 unstable_runWithPriority https://ig-klettern.org/wp-includes/js/dist/vendor/react.min.js?ver=16.9.0:26 Ma https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 mg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 V https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:52 Sb https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:213 Mg https://ig-klettern.org/wp-includes/js/dist/vendor/react-dom.min.js?ver=16.9.0:85 e https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 t https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 o https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 o https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 b https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 p https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 s Redux I https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 N https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 default https://ig-klettern.org/wp-includes/js/dist/block-editor.min.js?ver=6d92bbc61845b6652c64f83c59aee1f0:12 t https://ig-klettern.org/wp-includes/js/dist/block-editor.min.js?ver=6d92bbc61845b6652c64f83c59aee1f0:7 s https://ig-klettern.org/wp-includes/js/dist/data.min.js?ver=75f90354ddff4acd5b0b4026454037ca:2 he https://ig-klettern.org/wp-includes/js/dist/rich-text.min.js?ver=a4056cfcb2aec8ceb3c8e8935dfd0bc4:7 Uncaught TypeError: r is null Ce https://ig-klettern.org/wp-includes/js/dist/rich-text.min.js?ver=a4056cfcb2aec8ceb3c8e8935dfd0bc4:7 fe https://ig-klettern.org/wp-includes/js/dist/rich-text.min.js?ver=a4056cfcb2aec8ceb3c8e8935dfd0bc4:7 he https://ig-klettern.org/wp-includes/js/dist/rich-text.min.js?ver=a4056cfcb2aec8ceb3c8e8935dfd0bc4:7 rich-text.min.js:7:29619 }}} The following patch fixes the issue for me: {{{ diff -u wp-includes/js/backbone.js.orig wp-includes/js/backbone.js --- wp-includes/js/backbone.js.orig 2020-09-04 11:34:27.333611546 +0200 +++ wp-includes/js/backbone.js 2020-09-04 11:35:31.813714069 +0200 @@ -374,7 +374,7 @@ // Cleans up memory bindings between the listener and the listenee. Listening.prototype.cleanup = function() { delete this.listener._listeningTo[this.obj._listenId]; - if (!this.interop) delete this.obj._listeners[this.id]; + if (!this.interop && this.obj._listeners) delete this.obj._listeners[this.id]; }; // Aliases for backwards compatibility. }}} " cryptomilk 55492 `Dismiss Errors` button alignment is not centered in Media Library. Media 5.9.2 normal normal Awaiting Review defect (bug) reopened has-patch 2022-03-31T04:20:58Z 2022-05-11T07:15:04Z "When I drag/upload an SVG image in the Media library then it shows a mime types error and the ""Dismiss Errors"" button is not aligned properly." iamjaydip 1 44801 `image_constrain_size_for_editor()` forcing the `$content_width` messes up dimensions Media normal normal Future Release defect (bug) new needs-unit-tests 2018-08-15T09:27:19Z 2019-04-15T21:58:52Z "The `image_constrain_size_for_editor()` currently looks at the `$content_width` global that themes may define. For `medium_large`, `large` and any custom image sizes, the actual image size's width will be evaluated against the `$content_width`, and the minimum will be used. This results in the following (example): * Let's say `$content_width` is 640. * Let's say your `large` image size constraints are 1280x1280. * Let's say your image in `large` size is 1280x960. * Instead of using the image size width (1280), it will use the `$content_width` since it's smaller (640), resulting in 640x480 being used for the dimension of the image in `large` size. This makes sense for the default behavior, but that computed size is used in many different areas, including `wp_prepare_attachment_for_js()`, where the `sizes` property then would show something like this for the `large` size (continuing the above example): ```js { width: 640, height: 480, url: '.../my-image-1280x960.jpg', orientation: 'landscape' } ``` Regarding what I want to accomplish with the custom image sizes, this results in unexpected behavior. For example in my case, I was looking into dynamically generating media queries for a background image, using the sizes. I was expecting for my code to generate `@media (max-width: 1280px) ...` for the image, but it would generate `@media (max-width: 640px) ...` due to the changed size. As I already said, the `$content_width` global makes sense to take into account by default. However, it is currently hardcoded into the function. I think it should be moved into a filter (we already have `editor_max_image_size` which is perfect for that), so that someone could temporarily unhook that behavior for custom use-cases." flixos90 1 51908 add_image_size not working with custom plugin code Media normal normal Awaiting Review defect (bug) new reporter-feedback 2020-12-01T17:55:45Z 2020-12-02T12:30:10Z "Hey, add_image_size() not working within the custom plugin code that we can change the the_post_thumbnail() with any custom size. Thanks, Arpit G Shah" arpitgshah 4 51058 attachment_url_to_postid does not retrieve post ID of really large images Media 5.3 normal normal Awaiting Review defect (bug) new has-patch 2020-08-19T02:12:58Z 2021-11-14T13:59:45Z "Since WordPress now sets the `_wp_attached_file` meta value for very large images to use the scaled image: {{{ amazing-road-in-pure-nature-picjumbo-com.jpg }}} becomes {{{ amazing-road-in-pure-nature-picjumbo-com-scaled.jpg }}} any function which uses `attachment_url_to_postid` on a large image URL will not properly retrieve the image's post ID. Use case: I use this function after removing intermediate image size strings to get the post ID of the uploaded image. I'm currently getting around this issue by inserting `-scaled` into the image URL and running the function again if a post ID is not returned, but I would prefer if WP could account for this, please. Alternatively, if the WordPress function could manage the intermediate size conversion on its own, that would also resolve the issue by removing the need to remove it in the first place." littler.chicken 4 41816 attachment_url_to_postid() should find post_id for URLs of intermediate size images Media 4.9 normal normal Awaiting Review defect (bug) new dev-feedback 2017-09-06T15:40:45Z 2021-09-28T21:06:56Z "[[https://developer.wordpress.org/reference/functions/attachment_url_to_postid/|attachment_url_to_postid()]] fails to find the post ID when given a URL of an intermediate sized image. For example, {{{ $url_of_full_sized_image = 'http://example.com/wp-content/uploads/test.jpg'; $attachment_id = attachment_url_to_postid( $url_of_full_sized_image ); // $attachment_id now equals 3 $url_of_intermediate_sized_image = 'http://example.com/wp-content/uploads/test-150x150.jpg'; $attachment_id = attachment_url_to_postid( $url_of_intermediate_sized_image ); // $attachment_id now equals 0 but should equal 3, the same as for the full-sized image }}} This should be fixed." pbiron 1 57158 bug for image 2/3 ratio size when max height is 480px Media normal normal Awaiting Review defect (bug) new 2022-11-21T00:13:46Z 2022-11-21T00:13:46Z "When I upload a 2/3 size image (example: 700/1050px, 1000/1500px, etc.) and in the media settings (/options-media.php) I set the maximum height and maximum width to 480px, the medium size image (which measures 320px x 480px) is never displayed on wordpress. this problem exists only for images resized in medium size. everything seems OK for small and large size. I think this bug exists since several versions. * screenshot settings : https://drive.google.com/file/d/1LAKzw2RHVDb3MskmQ4V86FX_eGw_XBEC/view?usp=sharing * screenshot 320x480px medium size not displayed : https://drive.google.com/file/d/1EDcCVpwW4Cd21qn9JQldL2Q9EpwvF701/view?usp=sharing" tshak93 53193 chmod(): Operation not permitted in class-wp-image-editor-imagick.php Media 5.7.1 normal normal Awaiting Review defect (bug) new 2021-05-12T05:49:17Z 2021-05-12T13:15:24Z "Hi **Current install:** Using the LATEST version of WordPress, the line numbers in this bug report relate to that version number. The system is running on CENTOS with APACHE as the server. **Problem Discription:** PHP Warning: chmod(): Operation not permitted in ""wp-includes/class-wp-image-editor-imagick.php"" on line 710 **Explanation why this is a problem** Every security conscious system administrator will have the following settings: On directories e.g. drwxr-x---. 10 editor apache 4096 Feb 19 2019 wp-content drwxr-x---. 25 editor apache 12288 Mar 29 13:26 wp-includes drwxr-x---. 4 editor apache 4096 Dec 11 17:10 themes drwsrws---. 2 editor apache 4096 May 12 15:09 upgrade drwsrws---. 20 editor apache 4096 Jan 1 00:00 uploads On files e.g. -rw-r-----. 1 editor apache 31328 Mar 29 13:25 wp-signup.php -rw-r-----. 1 editor apache 4747 Dec 11 15:27 wp-trackback.php While the apache server can READ every file, it cannot WRITE every file abd that is good! I have NEVER had a problem with these settings, ever. Where the apache server NEEDS to write, it can (e.g. uploads/upgrade/cache) I can happily update core/plugins/themes using FS_METHOD ssh2 with ssh keys set for the editor. Also it is nearly IMPOSSIBLE to have the system being taken over as the apache server cannot write core files. **Does the problem occur even when you deactivate plugins, use default theme?** N/A File system permission issue **In case it's relevant to the ticket, what is the expected output or result?** There needs to be an additional check whether the line SHOULD/CAN be executed. On my system the editor is NOT the same as the user running the http server. The server user is MOSTLY (and should) restricted to reading (other that the upload/upgrade/cache/etc directories). This will lead to errors on Linux based systems. " jobst 50681 default-filters.php contains non-tweakable parameters Media 5.3 normal normal Awaiting Review defect (bug) new has-patch 2020-07-16T13:43:50Z 2020-09-26T01:02:19Z "'default-filters.php' should NEVER use the ""plugins-loaded"" hook. The reason being that this removes EVERY THEME DEVELOPER any kind of power around that setting. Those ""default filters"" becomes ""definitive and non editable filter"" for theme developers. For me this breaks my custom image size workflow The best hook to replace ""plugins-loaded"" (according to wordpress's own documentation) would be ""init"" ------ The Faulty line is in default-filters.php (l-526)----------------- add_action( 'plugins_loaded', '_wp_add_additional_image_sizes', 0 ); --------------------------------------------------------------------- Also I don't understand why image sizes can't be more simple and centralized. ""thumbnail, medium, large"" are treated as wordpress option and are user editable ""medium_large"" is treated as an non-user-editable invisible wordpress option NEW ""big_image_size_threshold"" which is a filter and basically a new image size (messes up the different image sizes names by the way) NEW ""1536x1536 and 2048x2048"" that are hooked before any theme developers can access it which makes them non-editable for users and theme developpers. The latest two (1536 and 2048) are indeed ""plugin developpers"" editable IF those plugin developers are willing to use bad practice and go for the ""plugins-loaded"" hook instead of the ""init"" hook. This is breaking change for EVERY THEME DEVELOPPER and encourages bad practice for plugins developpers to interract with it. This is very bad because EVERY DEVELOPPER should manages and have full control over his image sizes pipeline and avoid the default one at all costs. It's getting clunkier, less functionnal and more bloated with each update. It is really simple to fix but wordpress is really going the other way around and now preventing developers from working with it." rsepierre 1 59195 deprecation notice triggered in post.php by passing null to parameter #2 in preg_match() Media 6.3 normal normal Awaiting Review defect (bug) new changes-requested 2023-08-24T20:01:52Z 2024-02-15T17:32:16Z "I've trying to force myself to use PHP 8.2 to get our plugins into shape, but am still running into a deprecation notice in post.php when viewing the Media Library in list mode: {{{ PHP Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /sites/test.example.com/files/wp-includes/post.php on line 3298 }}} Checking if $real is true before preg_match() is run seems to fix this particular one, but maybe to be safe an is_string( $real ) should be run also?" nosilver4u 45562 drag and drop file upload fails with empty files when dragging from macOS Preview into WP on Safari 12 Media 5.0 normal normal Awaiting Review defect (bug) new 2018-12-10T00:27:48Z 2020-11-19T15:39:30Z "Part of my workflow involves opening multiple files in Preview (on macOS), and then adding them to WordPress by dragging and dropping them to the Add Media page in WordPress (running in Safari). That used to work fine, but when I upgraded to Safari 12.0, I get the error: ""File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini."" I'm using self-hosted WordPress (on both Ubuntu 11.04 or 11.10, with Apache 2.4 as the web server); I don't think I made any server-side configuration changes when this started happening, though it's possible I upgraded Apache versions at about the same time? This occurs in WordPress 5.0, and also occurred in WP 4.x versions; again, I don't think it was caused by a WP change, though I can't rule out a WP upgrade at about the same time. This works fine when dragging and dropping from Finder, it's only when dragging and dropping from Preview. To reproduce: * Select multiple images and open them up in Preview. * Go to Add Media in WordPress in Safari 12. * Drag one of the images from the Preview sidebar to Wordpress. I get the above file upload error when I do this." dbcarlton 1 44127 editing an image can result in intermediate sized images left over after the image is deleted Media 4.9.5 normal normal Awaiting Review defect (bug) new 2018-05-17T19:51:02Z 2023-08-09T17:19:13Z "Steps to reproduce: 1. set thumbnail_size to `150x150` 1. upload a `300x300` image, e.g., `foo.jpg` * will result in `/wp-content/uploads/foo-150x150.jpg` being generated 1. edit the image and scale to `200x200` * will result in something like `/wp-content/uploads/foo-e1526583456941.jpg` being generated * `/wp-content/uploads/foo-150x150.jpg` will still be present, since it is still a valid thumbnail for the scaled image 1. regenerate intermediate sized images (e.g., by calling [[https://developer.wordpress.org/reference/functions/wp_get_attachment_metadata/|wp_get_attachment_metadata()]] followed by [[https://developer.wordpress.org/reference/functions/wp_update_attachment_metadata/|wp_update_attachment_metadata()]], which the [[https://wordpress.org/plugins/regenerate-thumbnails/|Regenerate Thumbnails]] plugin does) * will result in something like `/wp-content/uploads/foo-e1526583456941-150x150.jpg` being generated 1. ""Delete Permanently"" the image Check `/wp-content/uploads` and you will see that `foo-150x150.jpg` is still there. " pbiron 56295 filter wp_content_img_tag runs multiple times Media 6.0 normal normal Awaiting Review defect (bug) new has-patch 2022-07-27T23:25:04Z 2022-08-09T17:44:08Z "Filter wp_content_img_tag seem (in a block theme) seem to run 3 times on content images and 2 times on custom logo image. Simple code to expose the problem: add_filter( $hook_name='wp_content_img_tag', function( $filtered_image, $context, $attachment_id ){ return 'a:'.$filtered_image; },$priority=21, $accepted_args=3 );" gigito78 4 36308 get_attached_file() destroys file paths on Windows Media 4.4.2 normal normal Future Release defect (bug) assigned 2016-03-23T15:45:03Z 2023-05-31T15:30:19Z "While working on ticket #36273 I noticed that ''get_attached_file()'' from ''wp-includes/post.php'' will destroy paths normalized by ''wp_normalize_path()'' on Windows: For example the function starts with {{{#!php $file = get_post_meta( $attachment_id, '_wp_attached_file', true ); // $file = 'C:/WWW/Sites/demo/htdocs/wordpress/wp-content/uploads/2016/03/example.jpg' }}} However this will become {{{#!php $file = 'C:\WWW\Sites\demo\htdocs\wordpress/wp-content/uploads/C:/WWW/Sites/demo/htdocs/wordpress/wp-content/uploads/2016/03/example.jpg' }}} due to {{{#!php if ( $file && 0 !== strpos($file, '/') && !preg_match('|^.:\\\|', $file) && ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) ) $file = $uploads['basedir'] . ""/$file""; }}} This is similar to ticket #24824 however we are dealing will full qualified paths here, not URLs (well, both are URIs...). PS: Yes, `$uploads['basedir']` contains mixed directory separators. That's another thing." Whissi 1 47619 i got error in /wp-includes/media.php Media normal normal Awaiting Review defect (bug) new 2019-06-28T06:17:58Z 2019-06-28T12:38:30Z in media php at line 3633 in $strings array you use objects without to check if this objects is exist... thanks! Asaf Azoulay 1 53200 image quality reduction in smaller images Media 5.7.2 normal normal Awaiting Review defect (bug) new 2021-05-13T13:01:43Z 2021-05-13T13:01:43Z "So what happens is you upload a full size image to wordpress in my case project53.co.uk and I am using a goodlayers theme but I have repeated the same process on a stoc install on a different site and have the same issue. On this site for example the easiest one to see it on is the woman and look at the cheeks as full size looks ok and has colour and smaller images looks toned down and grey and it is wordpress changing the image quality with the smaller images. this is the details send from our dev guy For now - I have removed the thumbnails that the site was trying to use (I had set it to 'full', which should have been used, but the theme didn't want to co-operate) and then regenerated the thumbnails - pretty much forcing the site to use the full-size image. It may occur elsewhere in the site - hard to say until I've seen every possible variation of an image on the theme - but as long as we repeat the same steps to remove the thumbnail size and regenerate, it will be fine. You could just remove all regenerated sizes and ensure that sizes are set by the container the image is in; that would definitely stop it. So if you see another image (or multiple images) having the same problem: Inspect that image and see what thumbnail size it is using. (You can generally tell by the suffix on the end of the image name, e.g. blahblah-800x600.jpg) Go into Goodlayers Options > Miscellaneous > Thumbnail sizing Remove the thumbnail size that it's using Go into Tools > Regenerate Thumbnails Ensure that the thumbnail size that you remove is not there Click Advanced Options, and check the box which says ""Delete unselected thumbnails"" - this will remove that size from the server and tell WordPress it doesn't exist If it was me - I'd unregister all of the thumbnails and just limit the size of images which are being uploaded - and use that size globally throughout the theme (if the size doesn't exist it should fallback to the full size image as default). That doesn't necessarily have to be the case - but you just don't want 5MB images on a page - because then you'll have all the page speed problems to deal with! " digitalmountain 5 35390 image_constrain_size_for_editor() should not affect images generated on the front end when `large` size is used. joemcgill* Media 4.4 normal normal Future Release defect (bug) accepted needs-unit-tests 2016-01-10T04:01:24Z 2017-05-31T21:17:47Z "{{{ }}} I am using Twenty Fifteen theme, WordPress version 4.4. `post-thumbnail` size is `825x510`. Original image size is `1600x1200`. But I am not getting expected image. After some testing I found that this problem arises if post thumbnail `large` is used. I could not understand how width and height is set to 680 and 510 respectively. I am not sure this is related to https://core.trac.wordpress.org/ticket/35108" rabmalin 2 46390 image_default_link_type is not seen by Gutenberg Media 5.1.1 normal normal Awaiting Review defect (bug) reopened 2019-03-01T12:34:42Z 2022-04-05T02:26:53Z "I have in option.php the image_default_link_type set to file so that by default the ""link to "" for all media files is by default set to media. Since upgrading to Gutenberg 5.1, this feature appears to be deactive." brianjcameron 49640 image_get_intermediate_size returns wrong Media normal normal Awaiting Review defect (bug) new 2020-03-13T10:25:35Z 2020-03-13T17:20:32Z "The function `image_get_intermediate_size` isn't working as expected. If I upload a `1200px x 900px` image as the original. In WordPress theme I use `wp_get_attachment_image( $post_id, array( '1x1-large', '1x1-medium' ) );` `1x1-large` is setup using `add_image_size( '1x1-large', 1024, 1024, true );` It will fail as, it cannot create this image size as the the original is smaller. However, the function in question is clever enough to look for other aspect ratios that match. This is good. So if I had another name images called `1x1-medium` (setup using `add_image_size( '1x1-medium', 768, 768, true );` ) This will exist as the original image is large enough to be sized down to this. The function however uses this this code-block to short-circuit it: https://github.com/WordPress/WordPress/blob/46674e2367b8ca0c15b859bd578bc2119bfa0150/wp-includes/media.php#L780 {{{ // If there's an exact match to an existing image size, short circuit. if ( intval( $data['width'] ) === intval( $size[0] ) && intval( $data['height'] ) === intval( $size[1] ) ) { $candidates[ $data['width'] * $data['height'] ] = $data; break; } }}} So `$data['width'] =` each image sizes width and `$size[0] = '1x1-large'` This will never match!!! $size should in theory be a string, not an integer." CHEWX 5 54943 image_get_intermediate_size(): size data is a bool, not an array throws notice / warning Media 5.9 normal normal Awaiting Review defect (bug) new needs-unit-tests 2022-01-27T08:03:50Z 2023-08-07T19:20:26Z "While testing my website on PHP 8.0 (in my example opening the blog page), I noticed the following two warnings in the error log: {{{ [27-Jan-2022 08:56:34] WARNING: [pool xxx] child 1031078 said into stderr: ""PHP message: PHP Warning: Trying to access array offset on value of type bool in /var/www/xxx/wp-includes/media.php on line 779"" [27-Jan-2022 08:56:34] WARNING: [pool xxx] child 1031078 said into stderr: ""PHP message: PHP Warning: Trying to access array offset on value of type bool in /var/www/xxx/wp-includes/media.php on line 785"" }}} PHP 7.4 throws a Notice. I also noticed with a fresh install of wordpress. " fhwebdesign 54714 images deleted from media library still exist in upload directory Media normal normal Awaiting Review defect (bug) new 2021-12-31T01:20:28Z 2021-12-31T13:39:45Z "Currently its so easy to make storage full of all wp site which allow user to upload image. Just upload big image all the time. Eventhough the admin of the website delete it permanently from media gallery. This files still exist in 'uploads' directory. When media is deleted permanently from media library, all files for this images should also be deleted including the size variations." erikdemarco 3 59641 manually setting fetchpriority on image should prevent core from adding fetchpriority attribute Media 6.3 normal normal 6.6 defect (bug) new 2023-10-16T20:44:56Z 2024-02-17T13:44:33Z "When working on testing the automated fetchpriorty attribute core now adds for images, I discovered this bug: If users manually set fetchpriority=""high"" on an image either programmatically or using a plugin, core will not change that setting, however it unexpectedly sets fetchpriority=""high"" on another image. === Steps to reproduce 1. install this plugin to add a manual fetchpriority dropdown: https://github.com/adamsilverstein/wp-fetchpriority-control 2. create a post with several large images 3. select the first image and apply fetchpriority=""high"" (under advanced) 3. publish the post and view its source **Expected results:** Only the first image should have the `fetchpriority=""high""` attribute, setting high fetchpriority on more than one image reduces the effect of adding the attribute. **Actual result:** Core applies `fetchpriority=""high""` to the second image so the first two images contain the attribute. " adamsilverstein 39521 media_handle_sideload does not initialize the caption/excerpt value Media 2.6 normal normal Awaiting Review defect (bug) new 2017-01-09T02:58:05Z 2019-05-16T02:37:04Z "In /wp-admin/includes/media.php changes have been made in the media_handle_upload() function to initialize the caption/excerpt value after an upload. Here's the code: {{{#!php $type, 'guid' => $url, 'post_parent' => $post_id, 'post_title' => $title, 'post_content' => $content, 'post_excerpt' => $excerpt, ), $post_data ); }}} Corresponding changes should be made in the media_handle_sideload() function, which still has: {{{#!php $type, 'guid' => $url, 'post_parent' => $post_id, 'post_title' => $title, 'post_content' => $content, ), $post_data ) }}} " dglingren 45802 media_upload_tabs not supported in 5.0? Media normal normal WordPress.org defect (bug) reopened 2019-01-01T04:37:22Z 2019-06-04T19:16:22Z "I noticed the instructions here are incorrect at least for the latest WordPress 5.0 https://codex.wordpress.org/Inserting_Media_into_Posts_and_Pages At least, I can't seem to find the add media and it appears to be replaced by Gallery and Image, which shows upload/media-library/insert-from-url. Unfortunately it looks like there is no longer a way to get to this dialog and use extra upload-tabs to the left on the dialog shown in the tutorial linked above. In other words [https://developer.wordpress.org/reference/hooks/media_upload_tabs/ media_upload_tabs] doesn't do anything? If so, it should probably note this on that filter page and on the codex page. " programmin 2 46209 mediaelement CSS loading at bottom of body Media 4.9 normal normal Future Release defect (bug) new 2019-02-07T21:55:20Z 2023-01-31T13:55:35Z "The question was asked in #42751 why we are loading mediaelement css in the body. It was agreed in the recent Media meeting that this is better fit for it's own ticket for discussion. ---- Mentioned by @themezly : While we are at it, why are we loading mediaelement CSS files at the bottom of body http://prntscr.com/hh0808 ? CSS files should always be in head. " antpb 45212 mediaelement.js WordPress .mp4 videos not playing/working on certain browsers/devices Media normal normal Awaiting Review defect (bug) reopened 2018-10-28T04:46:14Z 2020-04-10T18:11:46Z "Instead of the normal embedded Media Element video player working properly, on Safari Desktop and Safari/Chrome/Firefox on iPhone, the video player does not work. It's black and provides the actual video download beginning with mejs.download-file: https://cdn.elitesportsny.com etc. ... Please help. Thanks. " robsabo10 3 42560 mp4 files do not play in Safari Media 3.0 normal normal Awaiting Review defect (bug) reopened has-patch 2017-11-15T18:54:34Z 2021-03-17T00:26:36Z "When a user uploads an mp4 file, it will not play in Safari. We have determined that this is not an issue with our Apache server (seems to happen to some folks that they have disabled range request headers) as the same file uploaded elsewhere on our server but externally from the wordpress site loads fine. It seems that perhaps the video is attempting to load in byte ranges but that WordPress is returning a 200 response instead of a 206, but that is just a hunch." cg923 4 53408 png images bit depth is modified in resized images Media 5.7.2 normal normal Awaiting Review defect (bug) new 2021-06-15T11:27:39Z 2023-08-02T16:10:42Z "Hi, When I upload a 8 bit png image graphic, WordPress resizes as usual but modifies the bit depth to 24 or 32 bit, depending if their is a alpha channel. Without Alpha channel it is 24bit, with it's 32bit. The problem with that is that the file sizes end up being multiple times bigger than the original image. I opened a ticket with ImageMagick https://github.com/ImageMagick/ImageMagick/discussions/3825 Some of the replies included these solutions: **Setting bit-depth to 8 in the way done in the script may not be adequate for PNG. I think the only way to ensure that is to preface the output name with PNG8:filename.png. But I am not sure if it will preserve you transparency if the input has transparency. But the best thing to resolve that would be simply to try it.** **Scaling the image, depending upon the scaling method, most likely will add more colors than the 256 limit for 8-bit color. So the image has to be forced to quantize colors to the 256 limit in order to save as 8-bits. Otherwise, it is saved as 24 or 32-bits. So specifying PNG8:filename.png will save as 8-bits.** PNG00: Inherit PNG color and bit depth from input image(https://legacy.imagemagick.org/Usage/formats/#png_formats) Also here are related tickets I was able to find: https://core.trac.wordpress.org/ticket/36477 https://core.trac.wordpress.org/ticket/30402 https://core.trac.wordpress.org/ticket/48736 Thanks!" wpfed 28 41445 post_parent can prevent media from embedding correctly adamsilverstein Media 4.9.4 normal normal Future Release defect (bug) reopened needs-unit-tests 2017-07-26T06:29:28Z 2024-01-26T07:46:47Z "If media is uploaded for a post, then used as a featured image on another post, and the original parent is not accessible via the REST API (e.g. because it's in the trash, not published etc), then it cannot be embedded on the post that ''is'' accessible. To reproduce * make a new post with a featured image * trash the post * make a new post, using the first image as the featured image * request the second post over the rest API with media embedding enabled The media will not be embedded, instead a forbidden result will be embedded error {{{#!json { ""wp:featuredmedia"":[ { ""code"":""rest_forbidden"", ""message"":""You don't have permission to do this."", ""data"":{ ""status"":403 } } ] } }}} See https://github.com/WP-API/WP-API/issues/2596 for the original issue. Also related is https://core.trac.wordpress.org/ticket/30691. " loboyle 45589 resized images does not delete after delete main image in media library Media 5.0 normal normal Awaiting Review defect (bug) new 2018-12-11T20:18:31Z 2018-12-23T21:25:00Z "1) upload image 2) check the uploading folder - image-100x100.jpg image-540x750.jpeg and etc 3) delete image.jpg in media library 4) image-100x100.jpg image-540x750.jpeg and all other are still exist Looks like 10 years old bug #8309 " alexufo 1 54190 sanitize_file_name disallows acute accents and left smart apostrophe Media 5.5 normal normal Awaiting Review defect (bug) new dev-feedback 2021-09-27T14:23:29Z 2023-10-04T19:21:40Z "The following change to line 1991 of wp-includes/formatting.php will disallow acute accents and left smart apostrophe in file names {{{ $special_chars = array( '?', '[', ']', '/', '\\', '=', '<', '>', ':', ';', ',', ""'"", '""', '&', '$', '#', '*', '(', ')', '|', '~', '`', '´', '!', '{', '}', '%', '+', 'ʻ','’', '«', '»', '”', '“', chr( 0 ) ); }}}" jdorner 1 58261 "set_post_thumbnail_size interferes with ""Cover Image Block""" Media 6.2 normal normal Awaiting Review defect (bug) new close 2023-05-05T15:42:51Z 2023-06-28T19:23:01Z "adding a post thumbnail size on the theme level interferes with the Cover Image Block which will use the ""new thumbnail"" as its image, resulting in blurry image displays: add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( xxx, 9999 );" RichWP - Felix 43070 srcset attribute can be overridden but not prevented Media 4.4 normal normal Awaiting Review defect (bug) new 2018-01-11T19:07:48Z 2019-04-11T13:48:00Z In `wp_get_attachment_image()`, a `srcset` attribute can be passed to the fourth parameter to override the attribute's contents. There is no way to prevent this attribute from showing, though. An empty `srcset` attribute throws a validation error. desrosj 44456 srcset max-width set to image width Media 4.9.6 normal normal Awaiting Review defect (bug) new 2018-06-25T14:53:48Z 2020-04-07T03:05:48Z "My understanding is the max-width value in the image srcset should be limited to 1600px, however it is actually always set to the width of the original image. Also, max_srcset_image_width does not appear to be properly setting the max-width value either. Thanks, Mike" mikedunn 43540 srcset not added when the original image size doesn't exist in the database after regeneration Media normal normal Awaiting Review defect (bug) new 2018-03-14T02:54:09Z 2024-02-27T18:54:22Z "Suppose you have a post where you've inserted a 'large' image size. Any other image sizes of the same proportion are added to the srcset on the front end. Now, change the 'large' image size to something else, and regenerate thumbnails (using the plugin, CLI, etc). The image in the post continues to work (since plugins / CLI tend not to delete non-existing sizes from the file system precisely because they may be embedded in posts). However, it no longer receives any srcset - because the src_matched variable never gets set to true in `wp_calculate_image_srcset`. Can the src_matched logic be adjusted to cover this case?" smerriman 37581 text overflows, if it has no hyphens on media upload error notices Media 4.5.3 normal normal Awaiting Review defect (bug) new has-patch 2016-08-05T09:34:58Z 2020-08-18T07:28:31Z "Long text overflows and adding horizontal scroll in message box . if text has no hyphens, it extending beyond the parent div and look bad or worse, cause layout problems. " gk.loveweb 40688 there is a bug in deleting a photo and replacing it by the new photo with the same name Media 4.7.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2017-05-07T21:04:41Z 2023-06-06T09:45:05Z there is a bug when you want to permanently delete some photo from library and replace some other one with the same name in library. when you do this the first photo in web page wont be changed i mean the first photo still appears on the web page so you should change the name of the new photo for uploading it and showing it instead of the older one. Navid.abazari 59009 units missing in media details Media normal normal Awaiting Review defect (bug) new has-patch 2023-08-08T22:15:29Z 2023-08-09T21:47:37Z "Some units are missing which have been there before, see #39667 Length and Dimensions have no units anymore. I don't know since when, just found out using v6.3 This is the view you get after clicking a video in media gallery (Attachment Details) and then click on ""Edit more details""" Presskopp 1 39331 unsharpMaskImage in Imagick's thumbnail_image is not compatible with CMYK jpegs. Media 4.5 normal normal Awaiting Review defect (bug) new 2016-12-19T15:31:11Z 2017-05-11T14:40:11Z "This has been split off from #39216. The use of `Imagick::unsharpMaskImage()` in `WP_Image_Editor_Imagick::thumbnail_image()` on jpegs with CMYK color spaces results in mangled images, eg black text becomes fuzzy and over-black, and colors change. The attached patch just doesn't call it if the image has a CMYK color space. The unit test requires the attached ""test_cmyk.jpg"" to be uploaded to the test data images directory (which is actually the ""full"" jpeg produced by `WP_Image_Editor_Imagick` when processing the ""test_cmyk.pdf"" PDF uploaded to #39216). " gitlost 36273 update_attached_file() on Windows will result in invalid image path when using native Windows directory separators Media 4.4.2 normal normal Awaiting Review defect (bug) new needs-unit-tests 2016-03-18T10:48:16Z 2018-04-30T23:34:09Z "Calling ''update_attached_file( $image->ID, $file );'' on platforms like Windows can be really bad if ''$file'' was normalized/validated using PHP's ''realpath()'' function: {{{#!php ID ); // Well, in real world you could have created the path manually... // The only important thing to know is, that we call ""realpath()"" which will // convert any directory separator into the native directory separator: // Linux will end with /dir/subdir/basename.jpg // Windows will end with C:\Dir\Subdir\basename.jpg $file = realpath( $file ); // Again, this is just a demo, for real world cases see plugins like ""Force Regenerate Thumbnails"" // But this is a valid API call: update_attached_file( $image->ID, $file ); // On Windows this will result in an update statement like // UPDATE `postmeta` SET `meta_value` = 'C:WWWSitesdemohtdocswordpresswp-contentuploads201603example.jpg' WHERE `post_id` = 123 AND `meta_key` = '_wp_attached_file' // when $file was set to ""C:\WWW\Sites\demo\htdocs\wordpress\wp-content\uploads\2016\03\example.jpg"" // Now imagine a plugin which is re-generating thumbnails :] // The problem is // $meta_value = wp_unslash($meta_value); // in wp-includes/meta.php update_metadata(). }}} When using ''update_attached_file()'' we should make sure that ''update_metadata()'' don't update the path value to an invalid value... PS: After you updated all image paths to an invalid value, the media library won't work anymore: {{{ [18-Mar-2016 07:31:10 UTC] PHP Warning: file_exists() expects parameter 1 to be a valid path, string given in C:\WWW\Sites\demo\htdocs\wordpress\wp-includes\media.php on line 3063 }}} " Whissi 3 39492 upload_post_params and plupload_init filters are not being executed on wp_print_media_templates() Media 4.7 normal normal Awaiting Review defect (bug) new 2017-01-05T20:17:11Z 2018-01-04T18:38:02Z upload_post_params and plupload_init filters are not being executed on the new media upload form located in wp-includes/media-template.php => wp_print_media_templates(). llvasconcellos 2 47889 uploading image contains special characters will return a wrong image url Media 5.2.2 normal normal Awaiting Review defect (bug) new has-patch 2019-08-17T10:57:02Z 2019-08-18T03:46:56Z "How to reproduce this bug? 1> ready an image, make sure it contains a special character, such as `^`. In my case, this image file is `test^image.jpg` 2> goto page 'Upload New Media', that is './wp-admin/media-new.php' 3> select your image file and upload it. 4> in the completion list, you will see a thumbnail and the image that you uploaded. (see attachment ) 5> the thumbnail is broken, and the URL of the thumbnail is `'.../testimage.jpg'`. actually, it's should be `'.../test^image.jpg'` " sockscap64 59573 warning: trying to access array offset on value of type bool in wp-includes/media.php Media 6.3.1 normal normal Awaiting Review defect (bug) new 2023-10-09T16:14:04Z 2023-10-26T17:04:39Z "{{{ function image_get_intermediate_size($post_id, $size = 'thumbnail') { $imagedata = wp_get_attachment_metadata($post_id); // Checking whether $imagedata and $imagedata['sizes'] are real arrays. if (!is_array($imagedata) || empty($imagedata['sizes']) || !is_array($imagedata['sizes'])) { return false; } // Checking whether $size has a valid structure. if (!is_array($size) || count($size) < 2) { return false; } $data = []; }}} ....." androidforlife 1 56071 wordpress images too large Media 6.0 normal normal Awaiting Review defect (bug) new 2022-06-25T13:51:58Z 2022-10-26T15:45:15Z "How is it that an optimzed .png of 1081x753 with file size 61.5KB is converted to 1024x713.png and occupies 527.31KB. Overall WP increased the environmental impact of that one image ten fold, and as I publish about 100 or so of such images weekly server space is also occupied unnecessary. The WP generated file of 527.31K optimises to 106K. Also if I upload the optimised 1024x713.png of 106K, then WP generates a duplicate of 527.31K instead of just copying it. I read it is no longer permissible, as was in the earlier releases of WP, to disable the auto generation of of 'large', 'medium-large' etc. files. Also google degrades sites that serve unoptimized content. I consider this as defect and thus report it as a bug, if yo do not think so, please reassign to enhancements. " antonv 50944 wp_calculate_image_srcset can unintentionally include unscaled original image Media 4.4 normal normal Awaiting Review defect (bug) new dev-feedback 2020-08-12T14:08:33Z 2020-08-24T21:33:22Z "In `wp-includes/media.php`, `wp_calculate_image_srcset` seems to add the original image to the srcset string if the width is smaller than `$max_srcset_image_width` and if the image isn't a GIF. This isn't desirable since the original image is uncompressed and I don't even think it's intentional. This behavior seems to have been introduced in this patch: https://core.trac.wordpress.org/changeset/35561. From what I can tell, the if statement should read like this: {{{#!php if ( ! isset( $image_sizes['thumbnail']['mime-type'] ) || 'image/gif' === $image_sizes['thumbnail']['mime-type'] ) { }}} The current code will include the original image whenever the thumbnail IS NOT a GIF. This seems to be opposite to the desired behavior? " fredrikll 1 36437 wp_delete_attachment causes warning Media 2.0 normal normal Awaiting Review defect (bug) new needs-unit-tests 2016-04-07T06:24:34Z 2017-07-27T16:26:17Z wp_delete_attachment assumes that attachments uses category and post_tag taxonomies. This causes a warning in wp_delete_object_term_relationships when post type attachment is not using category or post_tag taxonomies. thorbrink 2 47868 wp_delete_attachment returning successfully, deleting all DB data, but NOT deleting files, and NOT returning false Media normal normal Awaiting Review defect (bug) new dev-feedback 2019-08-13T12:03:06Z 2019-08-20T04:16:29Z "from https://wordpress.stackexchange.com/questions/344976/wp-delete-attachment-returning-successfully-deleting-all-db-data-but-not-delet?noredirect=1#comment505976_344976 I digged into wp_delete_attachment here https://core.trac.wordpress.org/browser/tags/5.2.1/src/wp-includes/post.php#L5450 , it calls wp_delete_attachment_files wp_delete_attachment_files returns false on failure, but this is ignored! in wp_delete_attachment. Now I'm not gonna go on a rant how bad that 'design' is. My question is, how can I make sure that the files DO get deleted? I'm calling {{{ $attachments = get_attached_media('', $post->ID); foreach ($attachments as $attachment) { wp_delete_attachment($attachment->ID, true); wp_delete_attachment never returns falsy. }}} How can I figure out and fix wp_delete_attachment ? in my case it seems that some post_meta might be damaged, as the file location sometimes can be lost for some reason. This should return false or better throw and error" Jossnaz 1 45075 wp_delete_attachment() has unreliable return and wrong process order Media normal normal Future Release defect (bug) new 2018-10-11T04:48:13Z 2019-04-15T22:36:10Z "When doing permanent deletion, this function should also remove the files of the target attachment. However successful return of this function does **not** guarantee this even though it still can delete the attachment object and its relations. Problems when permanent deletion is in process: 1. {{{wp_delete_attachment()}}} must check for {{{wp_delete_attachment_files()}}}'s return and should fail too when {{{wp_delete_attachment_files()}}} fails 2. {{{wp_delete_attachment_files()}}} should be called first - what is the point of deleting object and it's relations when physical data could not be removed... " jave.web 4 45913 wp_enqueue_media() - slow query Media 5.0.3 normal normal Awaiting Review defect (bug) new 2019-01-10T17:11:32Z 2020-04-01T09:25:14Z "I have sites with very large databases and I've noticed some slow queries since 5.0.3 on new/edit post screens: {{{ SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM wp_posts WHERE post_type = 'attachment' ORDER BY post_date DESC }}} This query is coming from wp_enqueue_media() I am using php 7.2.1, MySQL 5.7.24" lubimow 1 53187 wp_filter_content_tags added too early Media 5.5 normal normal Awaiting Review defect (bug) new 2021-05-11T19:15:40Z 2021-07-26T16:31:46Z "Currently wp_filter_content_tags filter is added to the_content filters with default priority, this means that if the iframe is outputted by shortcode it will not get the lazy loading attribute. I think that it should be added after do_shortcode has run with priority of 12." maciejmackowiak 1 38906 wp_get_attachment_image_src() sometimes gives incorrect width and height values Media normal normal Future Release defect (bug) reopened dev-feedback 2016-11-22T18:57:34Z 2022-12-21T20:11:42Z "The following is an example of a problem that happens to me regularly across multiple sites. I have an image size registered as follows: {{{#!php add_image_size( 'featured-home', 1600, 600, true ); // width, height, crop }}} When I run wp_get_attachment_image_src() as follows: {{{#!php $image = wp_get_attachment_image_src( $post_id, 'featured-home' ); }}} ...and then print_r() the result, I get this: {{{#!php Array ( [0] => http://localhost:8080/lacoastalservices/wp-content/uploads/2016/09/wetlands-1600x600.jpg [1] => 1080 [2] => 405 [3] => 1 ) }}} The image itself is actually 1600 by 600 pixels wide, but for some reason the width and height values given in the array are ""scaled down"" to the width of the next largest image size on the site (1080px), and the corresponding image height if it were actually that wide (405px). Note that WordPress's ""large"" default image size is still at its default of 1024px, so I don't think that's the problem. You can hopefully reproduce this by running the ""Display All Image Sizes"" plugin on a few sites and looking for images whose larger image sizes have a mismatch between their identified dimensions and their actual urls. ""Display All Image Sizes"" is using wp_get_attachment_image_src() to generate the text strings that describe image sizes, which is how I became aware of this bug." pressupinc 1 32117 wp_get_attachment_metadata sizes array file misses path if using year/month organizing Media 4.2 normal normal Awaiting Review defect (bug) new 2015-04-24T15:58:51Z 2017-08-14T13:15:29Z "wp_get_attachment_metadata returns array like this: {{{ [""metadata""]=> array(5) { [""width""]=> int(3072) [""height""]=> int(2304) [""file""]=> string(25) ""2015/03/GC702D01_high.jpg"" [""sizes""]=> array(4) { [""thumbnail""]=> array(4) { [""file""]=> string(25) ""GC702D01_high-200x150.jpg"" [""width""]=> int(200) [""height""]=> int(150) [""mime-type""]=> string(10) ""image/jpeg"" } }}} as you can see, ""file"" in the first level of the array contains year and month (as i do have turned on organizing in year/month structure for uploads), but ""file"" in the second level for (e.g. in this case) the thumbnail size is only the file name, without the path. This is at least confusing, make it difficult to get the URL of the file - each size need to be then requested separately by wp_get_attachment_image_src function. IMO optimal solution would be to use full path in both `$metadata['file']` and `$metadata['sizes'][$size]['file']` so the same name would have the same structure. But i do not know if it wouldn't have some compatibility issues. Less optimal imo would be to add there also the path - it can be there only once in the top level, as all sizes are currently always in the same folder, but i think this could lock us from possible changes / plugin modifications etc. E.g. I think that it would be great, if it would be possible (and even default) to have size name, as a folder, so that we would have thumbnails in uploads/thumbnail, medium size in uploads/medium ... - this would highly reduce the number of images in one folder in default settings and would reduce the problems with displaying them on most systems. And also if we would want to delete some defined size, we could simply delete one folder and save space. So the second optimal would be to show the path in `sizes[$size]` subarray, e.g. {{{ [""metadata""]=> array(5) { [""sizes""]=> array(4) { [""thumbnail""]=> array(4) { [""file""]=> string(25) ""GC702D01_high-200x150.jpg"" [""path""]=> string(25) ""2015/03/"" } }}}" thomask 49841 wp_get_attachment_url does not return a url Media 5.4 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-04-07T17:29:44Z 2020-06-02T16:49:34Z "wp_get_attachment_url returns the base url to the uploads directory suffix with the file path. The file path is not always a valid url. 'fun image.png' is a valid file name. It's url path is 'fun%20image.png' I suggest adding the below straight after line 5859 in wp-includes/post.php {{{ // Convert the file path into a valid URL path $file = implode('/', array_map('rawurlencode', explode(DIRECTORY_SEPARATOR, $file))); }}} " hughie.molloy 50264 wp_get_image_editor()->multi_resize() occasionally fails Media 5.4.1 normal normal Awaiting Review defect (bug) new reporter-feedback 2020-05-27T12:26:21Z 2022-03-16T18:56:30Z "I'm using wp_get_image_editor to create different sizes of same image, in 99.9% it works fine, but sometimes happens this: [[Image(http://files.dangerd.org/pub/!PUBLIC//wpbug2.png)]] All images are generated with smallest size in array, any ideas? {{{#!php resize( 1920, 1282, false ); $image->set_quality(65); $image->save( $path ); $sizes = array( array('width'=>640,'height'=>480,'crop'=>false), array('width'=>640,'height'=>480,'crop'=>true), array('width'=>150,'height'=>150,'crop'=>true), ); $mult = $image->multi_resize( $sizes ); }}} " dangerd512 1 58611 wp_get_missing_image_subsizes can return incorrect subsizes for a rotated image antpb Media 6.2.2 normal normal Future Release defect (bug) assigned 2023-06-23T12:33:44Z 2024-02-05T20:27:49Z "During the upload of a rotated image to the Media Library, the `wp_get_missing_image_subsizes()` function often returns missing subsizes for the non-rotated original image that will never be generated for the rotated image. This means for example, if a plugin is filtering `wp_update_attachment_metadata` and waiting for all thumbnails to have been generated before performing some action, it may be told that there are missing thumbnails for a rotated image, that will not be generated. Therefore it will not be able to perform that action as not all the thumbnails are deemed to be available." ianmjones 3 51421 wp_get_missing_image_subsizes returns thumbnail sizes for animated GIFs Media 5.5.1 normal normal Awaiting Review defect (bug) new 2020-09-30T14:27:32Z 2020-10-01T14:36:20Z "While thumbnails are not created for animated GIFs to avoid the problem of users picking a thumbnail size to insert into their content and unexpectedly getting a static image instead of an animated GIF, they are generated for static GIFs. The `wp_get_missing_image_subsizes` function however recognizes animated GIFs as an image format that can have subsizes generated, and so returns a list of missing thumbnail sizes that will never be created. This causes problems for various plugins when checking whether all required thumbnails exist before commencing processing the GIF etc." ianmjones 1 57813 wp_get_missing_image_subsizes() can give error if image_meta exists, but not height/width Media 6.1.1 normal normal Awaiting Review defect (bug) new has-patch 2023-02-26T21:47:16Z 2023-10-28T15:24:29Z "I have an SVG file attached as image. The function throws an error: {{{ if ( ! empty( $imagesize ) ) { $full_width = $imagesize[0]; $full_height = $imagesize[1]; } else { $full_width = (int) $image_meta['width']; $full_height = (int) $image_meta['height']; } }}} on the else case. The below patch will resolve. This is with 6.1.1 {{{ --- /app/wp-admin/includes/image.php.orig 2023-02-26 21:42:57.687046116 +0000 +++ /app/wp-admin/includes/image.php 2023-02-26 21:40:41.349180739 +0000 @@ -89,11 +89,11 @@ $registered_sizes = wp_get_registered_image_subsizes(); $image_meta = wp_get_attachment_metadata( $attachment_id ); // Meta error? - if ( empty( $image_meta ) ) { + if ( empty( $image_meta ) || !array_key_exists('width', $image_meta) || !array_key_exists('height', $image_meta) ) { return $registered_sizes; } // Use the originally uploaded image dimensions as full_width and full_height. if ( ! empty( $image_meta['original_image'] ) ) { }}} " donbowman 3 55872 wp_image_add_srcset_and_sizes trys to parse images from external pages, fails with error Media 6.0 normal normal Awaiting Review defect (bug) reopened 2022-05-30T08:08:17Z 2023-02-16T19:31:44Z "If a user embeds image content from another domain by copy pasting and includes a tag like {{{ }}} it seems like wordpress trys to parse the file as it were hosted in its own instance. This won't work of course, because it cannot access the file in the filesystem. It then fails with the following warning: {{{ PHP Warning: Undefined array key ""file"" in /wp-includes/media.php on line 1676"" }}} " pampfelimetten 43413 wp_prepare_attachment_for_js missing image size medium_large Media 4.9.4 normal normal Future Release defect (bug) new 2018-02-25T18:54:29Z 2019-04-15T18:12:50Z "I have a function that creates a media size in case the size is called but is missing in meta. https://gist.github.com/danyj/2edb3d83bae4c363bf839f0dd5f1343f usage {{{ thz_create_missing_attachment_size(13031,'medium_large'); }}} every missing file size is recreated and exists in by wp_prepare_attachment_for_js size key except the media_large because it is missing here. https://github.com/WordPress/WordPress/blob/dfa68397063daf90a8758896693f137f9b981856/wp-includes/media.php#L3297-L3304 Basically if meta has been updated the wp_prepare_attachment_for_js is not checking for sizes but manually goes by that array . Not sure if the missing size key is left out on purpose but when you compare the wp_prepare_attachment_for_js to wp_get_attachment_metadata the data is not same " Themezly 1 58240 wp_read_image_metadata() doesn't handle Exif array values joedolson* Media normal normal Future Release defect (bug) accepted 2023-05-03T06:02:01Z 2024-02-05T20:25:50Z "Some images appear to have multiple values for some headers, which causes `wp_read_image_metadata()` to return `'Array'` for some fields. A real-life example are these images: - https://wordpress.org/photos/photo/3056444e62/ - https://wordpress.org/photos/photo/7716444e53/ - https://wordpress.org/photos/photo/5376444e57/ Looking at the return value from `exif_read_data()` for one of these, you'll see arrays below. However `wp_read_image_metadata()` includes lines like `(string) $exif['FocalLength'];`. It looks like `iPhone 13 mini` might be common between the above examples {{{ [...] 'SectionsFound' => string(19) ""ANY_TAG, IFD0, EXIF"" 'COMPUTED' => array(6) { [...] 'ApertureFNumber' => string(5) ""f/1.6"" } [...] 'Make' => string(5) ""Apple"" 'Model' => string(48) ""iPhone 13 mini back dual wide camera 5.1mm f/1.6"" 'Exif_IFD_Pointer' => int(106) 'ApertureValue' => array(2) { [0] => string(9) ""1356/1000"" [1] => string(9) ""8803/1000"" } [...] 'FocalLength' => array(2) { [0] => string(9) ""5100/1000"" [1] => string(10) ""10884/1000"" } 'ShutterSpeedValue' => array(2) { [0] => string(10) ""10884/1000"" [1] => string(19) ""1124129791/84149760"" } }}} As a result on the above Photo pages you'll see something like this: {{{ Focal Length: Arraymm Shutter Speed: 1/0 }}} This could be related to the image processing application being used, or the sections found in the image. I'd be tempted to just select the first array key in those cases." dd32 3 40590 "wp_video_shortcode always adds controls=""controls""" Media 4.7.4 normal normal Future Release defect (bug) new has-patch 2017-04-27T22:05:01Z 2019-01-17T21:21:54Z "wp_video_shortcode always adds `controls=""controls""` to the `