mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Themes: Make sure get_file_data() recognizes headers prefixed by <?php tag.
This allows for using headers in the format of `<?php // Template Name: Something ?>`, which previously could not be recognized correctly. Props dd32, m_uysl, thomas-vitale, boblinthorst. Fixes #33387. git-svn-id: https://develop.svn.wordpress.org/trunk@51182 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
1f0cdc6f3b
commit
2816e8b876
@ -6287,7 +6287,7 @@ function get_file_data( $file, $default_headers, $context = '' ) {
|
||||
}
|
||||
|
||||
foreach ( $all_headers as $field => $regex ) {
|
||||
if ( preg_match( '/^[ \t\/*#@]*' . preg_quote( $regex, '/' ) . ':(.*)$/mi', $file_data, $match ) && $match[1] ) {
|
||||
if ( preg_match( '/^(?:[ \t]*<\?php)?[ \t\/*#@]*' . preg_quote( $regex, '/' ) . ':(.*)$/mi', $file_data, $match ) && $match[1] ) {
|
||||
$all_headers[ $field ] = _cleanup_header_comment( $match[1] );
|
||||
} else {
|
||||
$all_headers[ $field ] = '';
|
||||
|
||||
@ -0,0 +1 @@
|
||||
<?php // Template Name: Something ?>
|
||||
@ -44,16 +44,18 @@ class Tests_File extends WP_UnitTestCase {
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 19854
|
||||
* @group plugins
|
||||
* @group themes
|
||||
*/
|
||||
function test_get_file_data_cr_line_endings() {
|
||||
$headers = array(
|
||||
function test_get_file_data_with_cr_line_endings() {
|
||||
$headers = array(
|
||||
'SomeHeader' => 'Some Header',
|
||||
'Description' => 'Description',
|
||||
'Author' => 'Author',
|
||||
);
|
||||
$actual = get_file_data( DIR_TESTDATA . '/formatting/cr-line-endings-file-header.php', $headers );
|
||||
|
||||
$actual = get_file_data( DIR_TESTDATA . '/formatting/file-header-cr-line-endings.php', $headers );
|
||||
$expected = array(
|
||||
'SomeHeader' => 'Some header value!',
|
||||
'Description' => 'This file is using CR line endings for a testcase.',
|
||||
@ -65,6 +67,26 @@ class Tests_File extends WP_UnitTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 47186
|
||||
* @group plugins
|
||||
* @group themes
|
||||
*/
|
||||
function test_get_file_data_with_php_open_tag_prefix() {
|
||||
$headers = array(
|
||||
'TemplateName' => 'Template Name',
|
||||
);
|
||||
|
||||
$actual = get_file_data( DIR_TESTDATA . '/formatting/file-header-php-open-tag-prefix.php', $headers );
|
||||
$expected = array(
|
||||
'TemplateName' => 'Something',
|
||||
);
|
||||
|
||||
foreach ( $actual as $header => $value ) {
|
||||
$this->assertSame( $expected[ $header ], $value, $header );
|
||||
}
|
||||
}
|
||||
|
||||
function is_unique_writable_file( $path, $filename ) {
|
||||
$fullpath = $path . DIRECTORY_SEPARATOR . $filename;
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user