Alert: This function’s access is marked private. This means it is not intended for use by plugin or theme developers, only in other core functions. It is listed here for completeness. Use get_shortcode_regex() instead.
do_shortcode_tag( array $m ): string
Regular Expression callable for do_shortcode() for calling shortcode hook.
Contents
Description
See also
- get_shortcode_regex() : for details of the match array contents.
Parameters
-
$m
array Required -
Regular expression match array.
- stringEntire matched shortcode text.
1
stringOptional second opening bracket for escaping shortcodes.2
stringShortcode name.3
stringShortcode arguments list.4
stringOptional self closing slash.5
stringContent of a shortcode when it wraps some content.6
stringOptional second closing brocket for escaping shortcodes.
- string
Return
string Shortcode output.
Source
File: wp-includes/shortcodes.php
.
View all references
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(
__FUNCTION__,
/* 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 $output 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 the original arguments string if it cannot be parsed.
* @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 the original arguments string if it cannot be parsed.
* @param array $m Regular expression match array.
*/
return apply_filters( 'do_shortcode_tag', $output, $tag, $attr, $m );
}
Hooks
-
apply_filters( 'do_shortcode_tag',
string $output ,string $tag ,array|string $attr ,array $m ) -
Filters the output created by a shortcode callback.
-
apply_filters( 'pre_do_shortcode_tag',
false|string $output ,string $tag ,array|string $attr ,array $m ) -
Filters whether to call a shortcode callback.
Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |