如何查询最新的5条帖子并按标题排序?

时间:2011-06-22 作者:Scott B

我想画一个最新“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();
}

2 个回复
最合适的回答,由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);
}
?>

SO网友:Scott

使用以下代码并根据您的喜好进行修改:

// grab latest five posts
$latestposts = get_posts(); // by default latest 5 is grabbed
// just grab post ids
$keys = array_keys($latestposts);
// grab those 5 posts but ordered by title
$fivepostsorderedbytitle = get_posts(array(\'orderby\' => \'post_title\', \'post__in\' => $keys));

结束

相关推荐