Shortcodes: Revert [46369] for now to allow more time to investigate and prepare for backward compatibility changes.

Also reverts follow-up changes in [46370] and [46465].

See #47863.

git-svn-id: https://develop.svn.wordpress.org/trunk@46554 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Sergey Biryukov 2019-10-15 19:34:31 +00:00
parent d5f11a9bbb
commit 943fa44db0
2 changed files with 3 additions and 142 deletions

View File

@ -488,9 +488,8 @@ function get_shortcode_atts_regex() {
* retrieval of the attributes, since all attributes have to be known.
*
* @since 2.5.0
* @since 5.3.0 Added support of a full shortcode input.
*
* @param string $text Any single shortcode of any format or key/value pair string.
* @param string $text
* @return array|string List of attribute values.
* Returns empty array if trim( $text ) == '""'.
* Returns empty string if trim( $text ) == ''.
@ -499,13 +498,7 @@ function get_shortcode_atts_regex() {
function shortcode_parse_atts( $text ) {
$atts = array();
$pattern = get_shortcode_atts_regex();
$text = trim( preg_replace( "/[\x{00a0}\x{200b}]+/u", ' ', $text ) );
// Remove everything but attributes from shortcode.
if ( preg_match( '#^\[[\w-]+([^\]]*?)\/?\]#', $text, $matches ) ) {
$text = $matches[1];
}
$text = preg_replace( "/[\x{00a0}\x{200b}]+/u", ' ', $text );
if ( preg_match_all( $pattern, $text, $match, PREG_SET_ORDER ) ) {
foreach ( $match as $m ) {
if ( ! empty( $m[1] ) ) {

View File

@ -740,7 +740,7 @@ EOF;
}
function data_whole_posts() {
require_once DIR_TESTDATA . '/formatting/whole-posts.php';
require_once( DIR_TESTDATA . '/formatting/whole-posts.php' );
return data_whole_posts();
}
@ -972,136 +972,4 @@ EOF;
);
$this->assertEquals( 'test-shortcode-tag', $this->tagname );
}
/**
* Testing the `shortcode_parse_atts()` function.
*
* @ticket 47863
*
* @covers ::shortcode_parse_atts
* @dataProvider data_shortcode_parse_atts
*
* @param string $text A single shortcode format or key/value pair string.
* @param string|array $expected Expected results.
*/
public function test_shortcode_parse_atts( $text, $expected ) {
$actual = shortcode_parse_atts( $text );
$this->assertSame( $expected, $actual );
}
/**
* Data provider for `test_shortcode_parse_atts()`.
*
* @return array {
* @type array {
* @type string $text A single shortcode format or key/value pair string.
* @type string|array $expected The expected result.
* }
* }
*/
public function data_shortcode_parse_atts() {
return array(
array(
'',
'',
),
array(
' ',
'',
),
array(
'""',
array(),
),
array(
'\'\'',
array(),
),
array(
'[unittest]',
'',
),
array(
'[unitest]Unit Test[/unittest]',
'',
),
array(
'[unittest title="unittest" link="https://unit.test/"]',
array(
'title' => 'unittest',
'link' => 'https://unit.test/',
),
),
array(
'[unittest title="unittest" link="https://unit.test/"/]',
array(
'title' => 'unittest',
'link' => 'https://unit.test/',
),
),
array(
'[unit_test title="unittest" link="https://unit.test/"/]',
array(
'title' => 'unittest',
'link' => 'https://unit.test/',
),
),
array(
'[unit-test title="unittest" link="https://unit.test/"/]',
array(
'title' => 'unittest',
'link' => 'https://unit.test/',
),
),
array(
'[unittest link=https://unit.test/ /]',
array(
'link' => 'https://unit.test/',
),
),
array(
'[unittest link=https://unit.test/ ]',
array(
'link' => 'https://unit.test/',
),
),
array(
'[unittest link=https://unit.test/]',
array(
'link' => 'https://unit.test',
),
),
array(
'[unittest link https://unit.test/ /]',
array(
'link',
'https://unit.test/',
),
),
array(
'[unittest title="unittest" link="https://unit.test/"]Unit Test[/unittest]',
array(
'title' => 'unittest',
'link' => 'https://unit.test/',
),
),
array(
'[unittest title="unittest" link="https://unit.test/"][unit_test foo="bar" bar="foo"][/unittest]',
array(
'title' => 'unittest',
'link' => 'https://unit.test/',
),
),
array(
'title="unittest" link="https://unit.test/"',
array(
'title' => 'unittest',
'link' => 'https://unit.test/',
),
),
);
}
}