Make WordPress Core

Opened 11 months ago

#64216 new defect (bug)

Undefined array key 0 in wp-includes/block-editor.php on line 468

Reported by: d4z_c0nf Owned by:
Priority: normal Milestone: Awaiting Review
Component: Editor Version: 6.8.3
Severity: normal Keywords:
Cc: Focuses:

Description

Hi there,
I'm using register_block_template (with WordPress version 6.8.3) to register a custom template from within a plugin for a specific custom post type (the template slug I chose isn't in the single-{cpt_name} form, not sure it matters...).

The new template shows up in the template picker (select) on the cpt block editor screen, but as soon as I choose it, I get the following PHP warning logged:

[07-Nov-2025 13:55:18 UTC] PHP Warning:  Undefined array key 0 in /shared/httpd/wptest/wordpress/wp-includes/block-editor.php on line 468

​https://github.com/WordPress/WordPress/blob/ba9e7f97f08a7fbb88fbfa35641bcc230500b37a/wp-includes/block-editor.php#L468

I've found the issue being here:
​https://github.com/WordPress/WordPress/blob/bc7f6b462ddd8cfb4a095da8a9af9311e4bca3ab/wp-includes/block-template-utils.php#L1243

where $query_result, a standard array (of WP_Template), is merged with $matching_registered_templates, which is basically the associative array in the form
$template_name => $template pairs
resulting from ​https://github.com/WordPress/WordPress/blob/bc7f6b462ddd8cfb4a095da8a9af9311e4bca3ab/wp-includes/block-template-utils.php#L1218

see:
​https://developer.wordpress.org/reference/classes/wp_block_templates_registry/get_by_query/#return

The issue (warning) could be easily fixed by turning
​https://github.com/WordPress/WordPress/blob/bc7f6b462ddd8cfb4a095da8a9af9311e4bca3ab/wp-includes/block-template-utils.php#L1243

Into:

$query_result = array_merge( $query_result, array_values( $matching_registered_templates ) );

This only happens in the block editor but I'm not sure I should open the issue on ​https://github.com/WordPress/gutenberg/issues/new/choose as suggested, because the code generating the issue is in wp core, right?

Change History (0)

Note: See TracTickets for help on using tickets.