shortcode_parse_atts() – Retrieve all attributes from the shortcodes tag.

You appear to be a bot. Output may be restricted

Description

Retrieve all attributes from the shortcodes tag.

The attributes list has the attribute name as the key and the value of the attribute as the value in the key/value pair. This allows for easier retrieval of the attributes, since all attributes have to be known.

Usage

$array|string = shortcode_parse_atts( $text );

Parameters

$text
( string ) required

Returns

array|string List of attribute values. Returns empty array if '""' === trim( $text ). Returns empty string if '' === trim( $text ). All other matches are checked for not empty().

Source

File name: wordpress/wp-includes/shortcodes.php
Lines:

1 to 35 of 35
function shortcode_parse_atts( $text ) {
  $atts    = array();
  $pattern = get_shortcode_atts_regex();
  $text    = preg_replace( "/[\x{00a0}\x{200b}]+/u", ' ', $text );
  if ( preg_match_all( $pattern, $text, $match, PREG_SET_ORDER ) ) {
    foreach ( $match as $m ) {
      if ( ! empty( $m[1] ) ) {
        $atts[ strtolower( $m[1] ) ] = stripcslashes( $m[2] );
      } elseif ( ! empty( $m[3] ) ) {
        $atts[ strtolower( $m[3] ) ] = stripcslashes( $m[4] );
      } elseif ( ! empty( $m[5] ) ) {
        $atts[ strtolower( $m[5] ) ] = stripcslashes( $m[6] );
      } elseif ( isset( $m[7] ) && strlen( $m[7] ) ) {
        $atts[] = stripcslashes( $m[7] );
      } elseif ( isset( $m[8] ) && strlen( $m[8] ) ) {
        $atts[] = stripcslashes( $m[8] );
      } elseif ( isset( $m[9] ) ) {
        $atts[] = stripcslashes( $m[9] );
      }
    }

    // Reject any unclosed HTML elements.
    foreach ( $atts as &$value ) {
      if ( false !== strpos( $value, '<' ) ) {
        if ( 1 !== preg_match( '/^[^<]*+(?:<[^>]*+>[^<]*+)*+$/', $value ) ) {
          $value = '';
        }
      }
    }
  } else {
    $atts = ltrim( $text );
  }

  return $atts;
}
 

 View on GitHub View on Trac