我想画一个最新“n”号帖子的菜单列表,其中“n”号是一个用户定义的设置,存储为选项。
n=5//从数据库中提取最新的5篇文章。
我当前使用的脚本(下面)从数据库中提取所有帖子,然后只显示该集合中最新的5篇。
在我决定按标题对列表进行排序之前,这一切都很好。当我这样做时,不是按标题对最近的5篇帖子进行排序,而是对整个帖子集合进行排序,而不管它们是何时发布的
关于如何将此查询更改为只拉取最新的“n”个帖子,然后仅按这5个帖子的标题排序的任何提示。
(Note: 我对UL元素中的get_posts()查询非常感兴趣。第一个查询($myquery)就是为了确保我们在继续之前可以显示帖子。)
function recent_posts(){
$catHidden=get_cat_ID(\'hidden\');
$myquery = new WP_Query();
$myquery->query(array(\'cat\' => "-$catHidden",\'post__not_in\' => get_option(\'sticky_posts\')));
$myrecentpostscount = $myquery->found_posts;
if ($myrecentpostscount > 0){ ?>
<ul>
<?php
global $post;
if(get_option(\'mySort\') == \'asc\'){
$sortOrder=\'title\';$sortDirection=\'asc\';
}
$myrecentposts = get_posts
(
array
(
\'post__not_in\' => get_option(\'sticky_posts\'),
\'cat\' => "-$catHidden",
\'numberposts\' => get_option(\'cb2_latest_count\'),
\'orderby\' => $sortOrder,
\'order\' => $sortDirection
)
);
foreach($myrecentposts as $idxrecent=>$post) {
//DRAW THE POST MENU
}
wp_reset_postdata();
}
最合适的回答,由SO网友:Mild Fuzz 整理而成
$yourquery = new WP_Query(\'posts_per_page=5&orderby=title\');
会那样做的。
<小时>Edit 添加的答案
<?php
$posts = new WP_Query(\'posts_per_page=5\');
foreach($posts->posts as $post){
$sorted[$post->ID] = $post->post_title;
}
asort($sorted, SORT_STRING);
foreach($sorted as $k=>$v){
//your loop -- use ID\'s for each item call
the_title($k);
the_content($k);
}
?>