如何使用短代码在 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
)
);
我想使用短代码按类别名称显示最近的帖子:
[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
)
);