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

How to display recent posts by category name in WordPress using 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');

您的简码属性示例:

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