do_shortcode_tag() – Regular Expression callable for do_shortcode() for calling shortcode hook.

You appear to be a bot. Output may be restricted

Description

Regular Expression callable for do_shortcode() for calling shortcode hook.

Usage

$string|false = do_shortcode_tag( $m );

Parameters

$m
( array ) required – Regular expression match array.

Returns

string|false Shortcode output on success, false on failure.

Source

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


Lines:

1 to 58 of 58
function do_shortcode_tag( $m ) {
  global $shortcode_tags;

  // Allow [[foo]] syntax for escaping a tag.
  if ( '[' === $m[1] && ']' === $m[6] ) {
    return substr( $m[0], 1, -1 );
  }

  $tag  = $m[2];
  $attr = shortcode_parse_atts( $m[3] );

  if ( ! is_callable( $shortcode_tags[ $tag ] ) ) {
    _doing_it_wrong(
      do_shortcode_tag,
      /* translators: %s: Shortcode tag. */
      sprintf( __( 'Attempting to parse a shortcode without a valid callback: %s' ), $tag ),
      '4.3.0'
    );
    return $m[0];
  }

  
/**
 * Filters whether to call a shortcode callback.
 *
 * Returning a non-false value from filter will short-circuit the
 * shortcode generation process, returning that value instead.
 *
 * @since 4.7.0
 *
 * @param false|string $return      Short-circuit return value. Either false or the value to replace the shortcode with.
 * @param string       $tag         Shortcode name.
 * @param array|string $attr        Shortcode attributes array or empty string.
 * @param array        $m           Regular expression match array.
 */
  $return = apply_filters( 'pre_do_shortcode_tag', false, $tag, $attr, $m );
  if ( false !== $return ) {
    return $return;
  }

  $content = isset( $m[5] ) ? $m[5] : null;

  $output = $m[1] . call_user_func( $shortcode_tags[ $tag ], $attr, $content, $tag ) . $m[6];

  
/**
 * Filters the output created by a shortcode callback.
 *
 * @since 4.7.0
 *
 * @param string       $output Shortcode output.
 * @param string       $tag    Shortcode name.
 * @param array|string $attr   Shortcode attributes array or empty string.
 * @param array        $m      Regular expression match array.
 */
  return apply_filters( 'do_shortcode_tag', $output, $tag, $attr, $m );
}
 

 View on GitHub View on Trac