shortcode_unautop

函式
shortcode_unautop ( $text )
引數
  • (string) $text The content.
    Required:
返回值
  • (string) The filtered content.
定義位置
相關方法
shortcode_attsdo_shortcode_tagshortcode_existsdo_shortcodestrip_shortcode_tag
引入
2.9.0
棄用
-

shortcode_unautop: 這個函式用於刪除自動新增到短碼內容的段落標籤。它需要一個引數 – $content – 這是短碼的內容: 這個函式將返回已刪除自動段落標籤的內容。

不要自動包裝獨立的短程式碼。

確保短程式碼不被包裹在`…`中。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 =
'/'
. '<p>' // 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.
. '<\/p>' // Closing paragraph.
. '/';
// phpcs:enable
return preg_replace( $pattern, '$1', $text );
}
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 = '/' . '<p>' // 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. . '<\/p>' // Closing paragraph. . '/'; // phpcs:enable return preg_replace( $pattern, '$1', $text ); }
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 =
		'/'
		. '<p>'                              // 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.
		. '<\/p>'                           // Closing paragraph.
		. '/';
	// phpcs:enable

	return preg_replace( $pattern, '$1', $text );
}

常見問題

FAQs
檢視更多 >