
学习如何使用Sublime Text:快速概述
shortcode_unautop ( $text )
shortcode_unautop: 这个函数用于删除自动添加到短码内容的段落标签。它需要一个参数 – $content – 这是短码的内容: 这个函数将返回已删除自动段落标签的内容。
不要自动包装独立的短代码。
确保短代码不被包裹在`…`中。
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 ); }