shortcode_unautop
Don't auto-p wrap shortcodes that stand alone.
Description
(string) shortcode_unautop( (string) $pee );
Ensures that shortcodes are not wrapped in
...
..Returns (string)
The filtered content.
Parameters (1)
- 0. $pee (string)
- The content.
Usage
if ( !function_exists( 'shortcode_unautop' ) ) { require_once ABSPATH . WPINC . '/formatting.php'; } // The content. $pee = ''; // NOTICE! Understand what this does before running. $result = shortcode_unautop($pee);
Defined (1)
The function is defined in the following location(s).
- /wp-includes/formatting.php
- function shortcode_unautop( $pee ) {
- global $shortcode_tags;
- if ( empty( $shortcode_tags ) || !is_array( $shortcode_tags ) ) {
- return $pee;
- }
- $tagregexp = join( '|', array_map( 'preg_quote', array_keys( $shortcode_tags ) ) );
- $spaces = wp_spaces_regexp();
- $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
- . '/';
- return preg_replace( $pattern, '$1', $pee );
- }