Make has_shortcode()
recursive/work for nested shortcodes.
Adds unit test. Props katzwebdesign. Fixes #26343. git-svn-id: https://develop.svn.wordpress.org/trunk@29197 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
722930611c
commit
17d67d93e7
@ -165,8 +165,11 @@ function has_shortcode( $content, $tag ) {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
foreach ( $matches as $shortcode ) {
|
foreach ( $matches as $shortcode ) {
|
||||||
if ( $tag === $shortcode[2] )
|
if ( $tag === $shortcode[2] ) {
|
||||||
return true;
|
return true;
|
||||||
|
} elseif ( isset( $shortcode[5] ) && has_shortcode( $shortcode[5], $tag ) ) {
|
||||||
|
return has_shortcode( $shortcode[5], $tag );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -394,4 +394,17 @@ EOF;
|
|||||||
$this->assertEquals( $output, shortcode_unautop( $in ) );
|
$this->assertEquals( $output, shortcode_unautop( $in ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 26343
|
||||||
|
*/
|
||||||
|
function test_has_shortcode() {
|
||||||
|
$content = 'This is a blob with [gallery] in it';
|
||||||
|
$this->assertTrue( has_shortcode( $content, 'gallery' ) );
|
||||||
|
|
||||||
|
add_shortcode( 'foo', '__return_false' );
|
||||||
|
$content_nested = 'This is a blob with [foo] [gallery] [/foo] in it';
|
||||||
|
$this->assertTrue( has_shortcode( $content_nested, 'gallery' ) );
|
||||||
|
remove_shortcode( 'foo' );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user