do_shortcode

函数
do_shortcode ( $content, $ignore_html = false )
参数
  • (string) $content Content to search for shortcodes.
    Required:
  • (bool) $ignore_html When true, shortcodes inside HTML elements will be skipped. Default false.
    Required:
    Default: false
返回值
  • (string) Content with shortcodes filtered out.
定义位置
相关方法
add_shortcodedo_shortcode_taghas_shortcodewp_video_shortcodewp_audio_shortcode
引入
2.5.0
弃用
-

do_shortcode: 这是一个WordPress函数,用于处理一个短码字符串并返回结果。短码是一些小的代码,可以在WordPress的文章和页面中用来添加动态内容,如按钮或画廊。

为短代码搜索内容,并通过其钩子过滤短代码。

如果没有定义短码标签,那么内容将被返回,而不进行任何过滤: 当插件被禁用时,这可能会导致问题,但短码仍将显示在文章或内容中。

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;
}

常见问题

FAQs
查看更多 >