Skip to content

Commit 60d317d

Browse files
committed
Grouped backports for the 6.5 branch.
- Interactivity API: Skip binding event handler attributes. The corresponding `data-wp-on--` attribute should be used instead. - Customize: Introduce a fix for themes that pass a stringable object through the `template_include` filter despite it being documented as only accepting a string. git-svn-id: https://develop.svn.wordpress.org/branches/6.5@61920 602fd350-edb4-49c9-b593-d223f7449a82
1 parent 0e85260 commit 60d317d

3 files changed

Lines changed: 20 additions & 3 deletions

File tree

src/wp-includes/class-wp-block-patterns-registry.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,9 @@ private function get_content( $pattern_name, $outside_init_only = false ) {
199199
$patterns = &$this->registered_patterns;
200200
}
201201

202-
$pattern_path = realpath( $patterns[ $pattern_name ]['filePath'] ?? '' );
202+
$file_path = $patterns[ $pattern_name ]['filePath'] ?? '';
203+
$is_stringy = is_string( $file_path ) || ( is_object( $file_path ) && method_exists( $file_path, '__toString' ) );
204+
$pattern_path = $is_stringy ? realpath( (string) $file_path ) : null;
203205
if (
204206
! isset( $patterns[ $pattern_name ]['content'] ) &&
205207
is_string( $pattern_path ) &&

src/wp-includes/interactivity-api/class-wp-interactivity-api.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,20 @@ private function data_wp_class_processor( WP_Interactivity_API_Directives_Proces
672672
return;
673673
}
674674

675+
// Skip if the bound attribute is an event handler.
676+
if ( str_starts_with( $bound_attribute, 'on' ) ) {
677+
_doing_it_wrong(
678+
__METHOD__,
679+
sprintf(
680+
/* translators: %s: The directive, e.g. data-wp-on--click. */
681+
__( 'Binding event handler attributes is not supported. Please use "%s" instead.' ),
682+
esc_attr( 'data-wp-on--' . substr( $bound_attribute, 2 ) )
683+
),
684+
'6.8.5'
685+
);
686+
continue;
687+
}
688+
675689
$attribute_value = $p->get_attribute( $attribute_name );
676690
$result = $this->evaluate( $attribute_value, end( $namespace_stack ), end( $context_stack ) );
677691

src/wp-includes/template-loader.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,9 @@
101101
*
102102
* @param string $template The path of the template to include.
103103
*/
104-
$template = apply_filters( 'template_include', $template );
105-
$template = is_string( $template ) ? realpath( $template ) : null;
104+
$template = apply_filters( 'template_include', $template );
105+
$is_stringy = is_string( $template ) || ( is_object( $template ) && method_exists( $template, '__toString' ) );
106+
$template = $is_stringy ? realpath( (string) $template ) : null;
106107
if (
107108
is_string( $template ) &&
108109
( str_ends_with( $template, '.php' ) || str_ends_with( $template, '.html' ) ) &&

0 commit comments

Comments
 (0)