返回介绍

add_shortcode()

发布于 2017-09-10 21:21:31 字数 4389 浏览 1351 评论 0 收藏 0

add_shortcode( string $tag,  callable $func )

Add hook for shortcode tag.


description

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' );

参数

$tag

(string) (Required) Shortcode tag to be searched in post content.

$func

(callable) (Required) Hook to run when shortcode is found.


源代码

File: wp-includes/shortcodes.php

function add_shortcode($tag, $func) {
	global $shortcode_tags;

	if ( '' == trim( $tag ) ) {
		$message = __( 'Invalid shortcode name: Empty name given.' );
		_doing_it_wrong( __FUNCTION__, $message, '4.4.0' );
		return;
	}

	if ( 0 !== preg_match( '@[<>&/\[\]\x00-\x20=]@', $tag ) ) {
		/* translators: 1: shortcode name, 2: space separated list of reserved characters */
		$message = sprintf( __( 'Invalid shortcode name: %1$s. Do not use spaces or reserved characters: %2$s' ), $tag, '& / < > [ ] =' );
		_doing_it_wrong( __FUNCTION__, $message, '4.4.0' );
		return;
	}

	$shortcode_tags[ $tag ] = $func;
}

更新日志

Versiondescription
2.5.0Introduced.

相关函数

Uses

  • wp-includes/l10n.php: __()
  • wp-includes/functions.php: _doing_it_wrong()

Used By

  • wp-includes/class-wp-embed.php: WP_Embed::__construct()
  • wp-includes/class-wp-embed.php: WP_Embed::run_shortcode()

User Contributed Notes

  1. Skip to note content You must log in to vote on the helpfulness of this noteVote results for this note: 1You must log in to vote on the helpfulness of this note Contributed by Codex

    Examples

    Simplest example of a shortcode tag using the API: [footag foo="bar"]

    
    add_shortcode( 'footag', 'wpdocs_footag_func' );
    function wpdocs_footag_func( $atts ) {
    	return "foo = {$atts['foo']}";
    }
    

    Example with nice attribute defaults: [bartag foo="bar"]

    
    add_shortcode( 'bartag', 'wpdocs_bartag_func' );
    function wpdocs_bartag_func( $atts ) {
    	$atts = shortcode_atts( array(
    		'foo' => 'no foo',
    		'baz' => 'default baz'
    	), $atts, 'bartag' );
    
    	return "foo = {$atts['foo']}";
    }
    

    Example with enclosed content: [baztag]content[/baztag]

    
    add_shortcode( 'baztag', 'wpdocs_baztag_func' );
    function wpdocs_baztag_func( $atts, $content = "" ) {
    	return "content = $content";
    }
    

    If your plugin is designed as a class write as follows:

    
    add_shortcode( 'baztag', array( 'MyPlugin', 'wpdocs_baztag_func' ) );
    class MyPlugin {
    	public static function wpdocs_baztag_func( $atts, $content = "" ) {
    		return "content = $content";
    	}
    }
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文