创建一个短代码以在我的帖子中显示“the_content()”

时间:2016-02-28 作者:Giacu

我应该创建一个快捷码来显示模板中帖子的内容。

有人能帮帮我吗?我做了一个短代码来显示评论的形式,这只是不能遗憾。

再次感谢

1 个回复
最合适的回答,由SO网友:jgraup 整理而成

下面是一个示例shortcode 根据idtype 属性

[post type="content" id="2"]

[post type="title" id="2"]
如果要从模板渲染,请使用:

echo do_shortcode ( \'[post type="content" id="294"]\' );

echo do_shortcode ( \'[post type="title" id="294"]\' );
这是实际的shortcode 注册:

// [post type="content" id="2"]
// [post type="title" id="2"]

function post__shortcode( $atts ) {
    $a = shortcode_atts(
        array (
            \'id\'   => false,
            \'type\' => "content",
        ), $atts );

    $id   = $a [ \'id\' ];
    $type = $a [ \'type\' ];

    // bad id
    if ( ! is_numeric( $id ) ) {
        return \'\';
    }

    // find the post
    $post = get_post( $id );

    // bad post
    if ( ! $post ) {
        return \'\';
    }

    // allow for other post attributes
    switch ( $type ) {

        case "content":
            return $id === get_the_ID() || $id === get_queried_object_id()
                ? \'\' // no recursive loops!
                : apply_filters( \'the_content\', $post->post_content );

        case "title":
            return $post->post_title;
    }

    // nothing to see here
    return \'\';
}

add_shortcode( \'post\', \'post__shortcode\' );
显然,您可以修改switch 包括该帖子所需的任何类型的内容。

相关推荐

我可以将参数传递给Add_ShortCode()函数吗?

正如标题所述,我需要向add_shortcode() 作用换句话说,我传递的那些参数将在的回调函数中使用add_shortcode(). 我该怎么做?请注意,这些与以下结构无关[shortcode 1 2 3] 哪里1, 2, 和3 是用户传递的参数。在我的情况下,参数仅用于编程目的,不应由用户负责。谢谢