shortcode_unautop

函数


shortcode_unautop ( $text )
参数
  • (string)
    $text
    The content.
    Required:
返回值
  • (string) The filtered content.
定义位置
  • wp-includes/formatting.php
    , line 820
引入
2.9.0
弃用

Don’t auto-p wrap shortcodes that stand alone.

Ensures that shortcodes are not wrapped in `

`.

function shortcode_unautop( $text ) {
	global $shortcode_tags;

	if ( empty( $shortcode_tags ) || ! is_array( $shortcode_tags ) ) {
		return $text;
	}

	$tagregexp = implode( '|', array_map( 'preg_quote', array_keys( $shortcode_tags ) ) );
	$spaces    = wp_spaces_regexp();

	// phpcs:disable Squiz.Strings.ConcatenationSpacing.PaddingFound,WordPress.WhiteSpace.PrecisionAlignment.Found -- don't remove regex indentation
	$pattern =
		'/'
		. '

' // Opening paragraph. . '(?:' . $spaces . ')*+' // Optional leading whitespace. . '(' // 1: The shortcode. . '[' // Opening bracket. . "($tagregexp)" // 2: Shortcode name. . '(?![w-])' // Not followed by word character or hyphen. // Unroll the loop: Inside the opening shortcode tag. . '[^]/]*' // Not a closing bracket or forward slash. . '(?:' . '/(?!])' // A forward slash not followed by a closing bracket. . '[^]/]*' // Not a closing bracket or forward slash. . ')*?' . '(?:' . '/]' // Self closing tag and closing bracket. . '|' . ']' // Closing bracket. . '(?:' // Unroll the loop: Optionally, anything between the opening and closing shortcode tags. . '[^[]*+' // Not an opening bracket. . '(?:' . '[(?!/2])' // An opening bracket not followed by the closing shortcode tag. . '[^[]*+' // Not an opening bracket. . ')*+' . '[/2]' // Closing shortcode tag. . ')?' . ')' . ')' . '(?:' . $spaces . ')*+' // Optional trailing whitespace. . '' // Closing paragraph. . '/'; // phpcs:enable return preg_replace( $pattern, '$1', $text ); }