如何使用短代码在WordPress中按类别名称显示最近的帖子

时间:2015-08-18 14:28:28

标签: wordpress shortcode

我想使用类似的短代码按类别名称显示最近的帖子:

[recent-posts posts="10" category="thecategoryname"]

我的代码显示最近的帖子,但我不知道如何按照以上格式的短代码按类别显示。

function recent_posts_function($atts){
    extract(shortcode_atts(array(
        'posts' => 1,
    ), $atts));

    $return_string = '<ul>';
    query_posts(array('orderby' => 'date', 'order' => 'DESC' , 'showposts' => $posts));
    if ( have_posts() ) :
        while ( have_posts() ) : the_post();
            $return_string .= '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
        endwhile;
    endif;
    $return_string .= '</ul>';

    wp_reset_query();
    return $return_string;
}

function register_shortcodes(){
    add_shortcode('recent-posts', 'recent_posts_function');
}

add_action( 'init', 'register_shortcodes');

1 个答案:

答案 0 :(得分:0)

短代码属性示例:

// Attributes
extract( shortcode_atts(
    array(
        'category' => 'thecategoryname',
        'posts' => '10',
    ), $atts )
);

此外,您需要在查询中添加category_name以及每页有多少帖子。

示例(来自上面的代码 - 修改过):

   query_posts(
     array(
     'orderby' => 'date', 
     'order' => 'DESC' , 
     'posts_per_page' => $posts,
     'category_name' => $category
     )
    );