我有一个最近发布的快捷码来显示自定义帖子。目前一切正常。但是,我想添加一个类别属性,以便指定要显示的类别。
我的工作代码如下:
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]
希望这是清楚的,谢谢。
最合适的回答,由SO网友:Greg McMullen 整理而成
添加类别参数:
shortcode_atts( array(
\'limit\' => 7,
\'type\' => \'g1_event\',
\'category\' => \'\',
), $atts);
在WP\\U查询中添加:
\'category_name\' = $category
对于您的快捷码使用:
[recent-events category="slugName"]