shortcode_unautop
函数
shortcode_unautop ( $text )
- 参数
-
-
(string)
$text
The content.- Required: 是
-
(string)
- 返回值
-
- (string) The filtered content.
- 定义位置
-
-
wp-includes/formatting.php
, line 820
-
wp-includes/formatting.php
- 引入
- 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 );
}


