Opened 10 years ago
Last modified 7 years ago
#33213 new defect (bug)
has_shortcode spec in 4.3
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Milestone: | Priority: | normal | |
| Severity: | normal | Version: | |
| Component: | Shortcodes | Keywords: | |
| Focuses: | Cc: |
Description
There is a question about the specification of the has_shortcode function.
The specification of the do_shortcode function was changed in version 4.2.3, but it doesn't seem that the has_shortcode function is changed.
The next contents were tested.
source:
function shortcode_abc( $atts, $content='' ) {
return 'abc';
}
add_shortcode( 'abc', 'shortcode_abc' );
var_dump( has_shortcode( "<!-- [abc] -->", 'abc' ) );
var_dump( do_shortcode( "<!-- [abc] -->" ) );
var_dump( has_shortcode( "<![CDATA[ [abc] ]]>", 'abc' ) );
var_dump( do_shortcode( "<![CDATA[ [abc] ]]>" ) );
var_dump( has_shortcode( "<input value=\"[abc]\" />", 'abc' ) );
var_dump( do_shortcode( "<input value=\"[abc]\" />" ) );
var_dump( has_shortcode( "<div class=\"[abc]\">Hello.</div>", 'abc' ) );
var_dump( do_shortcode( "<div class=\"[abc]\">Hello.</div>" ) );
var_dump( has_shortcode( "[abc]", 'abc' ) );
var_dump( do_shortcode( "[abc]" ) );
result(4.3 RC1):
bool(true) string(14) "<!-- [abc] -->" bool(true) string(19) "<![CDATA[ [abc] ]]>" bool(true) string(23) "<input value="[abc]" />" bool(true) string(29) "<div class="abc">Hello.</div>" bool(true) string(3) "abc"
(1).I think $ignore_html parameter is also necessary to the has_shortcode function.
function has_shortcode( $content, $tag, $ignore_html = false )
(2).Shouldn't a result of the has_shortcode function make the specification of the do_shortcode function identical?
Change History (3)
Note: See
TracTickets for help on using
tickets.
has_shortcode does a lot of things that don't match do_shortcode... It matches escaped shortcodes and runs recursively too.