将类别属性添加到自定义最近发布的帖子快捷代码

时间:2014-09-02 作者:Alex Vidal

我有一个最近发布的快捷码来显示自定义帖子。目前一切正常。但是,我想添加一个类别属性,以便指定要显示的类别。

我的工作代码如下:

function my_recent_posts_shortcode2( $atts ) {
    extract( shortcode_atts( array( \'limit\' => 7, \'type\' => \'g1_event\'), $atts ) );

    global $paged;
    $q = new WP_Query(  array ( 
        \'posts_per_page\' => $limit, 
        \'post_type\' => $type, 
        "orderby" => \'meta_value\',
        "meta_key" => \'evt_start_date\',
        "order" => \'ASC\',
        \'paged\' => $paged 
    ) );

    $list = \'<ul class="recent-events">\';

    while ( $q->have_posts() ) {
        $q->the_post();

        //for this post, get custom field "event_date" which should be in yyyy-mm-dd format and display as to month, day
        //2011-02-22 will display as February 22
        $evt_start_date = get_post_meta($post->ID, \'evt_start_date\', true);
        $evt_start_date = get_post_meta($post->ID, \'evt_start_date\', true);
        if ($evt_start_date) {
            echo \'The event date is \'. date(\'F j\', strtotime($evt_start_date));
        }

        $list .= \'<li>\' . \'<a href="\' . get_permalink() . \'">\' . get_the_title() . \'</a>\' . \'<br>\'. get_post_meta( get_the_ID(), \'evt_start_date\', true ) . \' @ \' . get_post_meta( get_the_ID(), \'evt_location\', true ) . \'</li>\';
    }

    wp_reset_query();

    return $list . \'</ul>\';
}
add_shortcode( \'recent-events\', \'my_recent_posts_shortcode2\' );
现在,我使用以下方法放置快捷码:[recent-events][/recent-events]

我希望能够指定类别ID:[recent-events cat="62"][/recent-events]

希望这是清楚的,谢谢。

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

添加类别参数:

shortcode_atts( array(
    \'limit\' => 7,
    \'type\'  => \'g1_event\',
    \'category\' => \'\',
), $atts);
在WP\\U查询中添加:

\'category_name\' = $category
对于您的快捷码使用:

[recent-events category="slugName"]

结束

相关推荐

Show all sub categories?

是否可以显示所有父猫的所有子/子类别?我有以下层次结构:父类别/税--子1--子2父类别/税2--子1--子2我想能够在一个模板上显示所有子类别,而不显示父类别。这可能吗?