函数原型
do_shortcode( string $content, bool $ignore_html = false ): string
函数描述
Searches content for shortcodes and filter shortcodes through their hooks.
是否弃用
未弃用
函数参数
-
$content
string
Required - Content to search for shortcodes.
-
$ignore_html
bool
Optional - When true, shortcodes inside HTML elements will be skipped.
Default:
false
函数返回值
string Content with shortcodes filtered out.
函数位置
File: wp-includes/shortcodes.php.
函数源码
function do_shortcode( $content, $ignore_html = false ) {
global $shortcode_tags;
if ( false === strpos( $content, '[' ) ) {
return $content;
}
if ( empty( $shortcode_tags ) || ! is_array( $shortcode_tags ) ) {
return $content;
}
// Find all registered tag names in $content.
preg_match_all( '@\[([^<>&/\[\]\x00-\x20=]++)@', $content, $matches );
$tagnames = array_intersect( array_keys( $shortcode_tags ), $matches[1] );
if ( empty( $tagnames ) ) {
return $content;
}
$content = do_shortcodes_in_html_tags( $content, $ignore_html, $tagnames );
$pattern = get_shortcode_regex( $tagnames );
$content = preg_replace_callback( "/$pattern/", 'do_shortcode_tag', $content );
// Always restore square braces so we don't break things like <!--[if IE ]>.
$content = unescape_invalid_shortcodes( $content );
return $content;
}
源码链接
变更日志
| Version | Description |
|---|---|
| 2.5.0 | Introduced. |

