add_shortcode( string $tag, callable $callback )
添加新的快捷方式。
Adds a new shortcode.
说明(Description)
应注意通过前缀或其他方式确保要添加的快捷方式标记是唯一的,并且不会与其他已添加的快捷方式标记冲突。如果标记重复,则以最后加载的标记为准。
参数(Parameters)
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
$tag | (string) | 必需 | 要在文章内容中搜索的快捷方式标记。 |
$callback | (callable) | 必需 | 找到快捷方式时要运行的回调函数。默认情况下,每个shortcode回调都会传递三个参数,包括属性数组($atts)、shortcode content或null(如果未设置($content))以及shortcode标记本身($shortcode_tag)。 |
返回(Return)
无返回值
源码(Source)
/** * Add hook for shortcode tag. * * There can only be one hook for each shortcode. Which means that if another * plugin has a similar shortcode, it will override yours or yours will override * theirs depending on which order the plugins are included and/or ran. * * Simplest example of a shortcode tag using the API: * * // [footag foo="bar"] * function footag_func( $atts ) { * return "foo = { * $atts[foo] * }"; * } * add_shortcode( 'footag', 'footag_func' ); * * Example with nice attribute defaults: * * // [bartag foo="bar"] * function bartag_func( $atts ) { * $args = shortcode_atts( array( * 'foo' => 'no foo', * 'baz' => 'default baz', * ), $atts ); * * return "foo = {$args['foo']}"; * } * add_shortcode( 'bartag', 'bartag_func' ); * * Example with enclosed content: * * // [baztag]content[/baztag] * function baztag_func( $atts, $content = '' ) { * return "content = $content"; * } * add_shortcode( 'baztag', 'baztag_func' ); * * @since 2.5.0 * * @global array $shortcode_tags * * @param string $tag Shortcode tag to be searched in post content. * @param callable $func Hook to run when shortcode is found. */ function add_shortcode($tag, $func) { global $shortcode_tags; $shortcode_tags[ $tag ] = $func; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
2.5.0 | wp-includes/shortcodes.php:63 | 2 | 2 |
笔记(Notes)
// [footag foo="bar"] function wpdocs_footag_func( $atts ) { return "foo = {$atts['foo']}"; } add_shortcode( 'footag', 'wpdocs_footag_func' ); class MyPlugin { public static function wpdocs_baztag_func( $atts, $content = "" ) { return "content = $content"; } } add_shortcode( 'baztag', array( 'MyPlugin', 'wpdocs_baztag_func' ) ); function wpdocs_the_shortcode_func( $atts ) { $attributes = shortcode_atts( array( 'title' => false, 'limit' => 4, ), $atts ); ob_start(); // include template with the arguments (The $args parameter was added in v5.5.0) get_template_part( 'template-parts/wpdocs-the-shortcode-template', null, $attributes ); return ob_get_clean(); } add_shortcode( 'wpdocs_the_shortcode', 'wpdocs_the_shortcode_func' );