do_shortcode_tag()
Regular Expression callable for do_shortcode() for calling shortcode hook.
Internal function — this function is designed to be used by the kernel itself. It is not recommended to use this function in your code.
Hooks from the function
Return
String
. Shortcode output.
Usage
do_shortcode_tag( $m );
- $m(array) (required)
Regular expression match array.
-
0(string)
Entire matched shortcode text. -
1(string)
Optional second opening bracket for escaping shortcodes. -
2(string)
Shortcode name. -
3(string)
Shortcode arguments list. -
4(string)
Optional self closing slash. -
5(string)
Content of a shortcode when it wraps some content. - 6(string)
Optional second closing bracket for escaping shortcodes.
-
Notes
- See: get_shortcode_regex() for details of the match array contents.
- Global. Array. $shortcode_tags
Changelog
Since 2.5.0 | Introduced. |
do_shortcode_tag() do shortcode tag code WP 6.5.2
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 ); }