Order posts by condition

时间:2014-11-15 作者:Draex_

我需要得到15个帖子。如果有带标签的featured, 我希望他们是第一个。如果没有,我希望其余的是随机帖子。

我的想法是根据条件对帖子进行排序tag=featured 描述和随机。我可以用query_posts()?

我的失败尝试:

query_posts(\'posts_per_page=15&orderby=((tag=featured),rand)&order=desc\';
谢谢你。

1 个回复
SO网友:jacobwarduk

正如汤姆所说,你不应该使用query_posts 并且应该总是将任何参数作为数组传递。

我认为这将实现您的目标:

<?php

    // Arguments
    $args = array(\'
        \'nopaging\'          => true,
        \'terms\'             => \'featured\',
        \'posts_per_page\'    => 15,
        \'orderby\'           => \'rand\',
        \'order\'             => \'DESC\',
    \');

    // The query
    $the_query = new WP_Query( $args );

    // The loop
    if ( $the_query->have_posts() ) {
        while ( $the_query->have_posts() ) {
            $the_query->the_post();

            /*
                Output here, e.g.
                echo \'<h2>\' . get_the_title() . \'</h2>\';
                echo \'<div>\' . get_the_content() . \'</div>\';
            */

        }
    }

?>

结束

相关推荐

Orderby参数在自定义查询中不起作用

我有一个非常奇怪的问题,我正在更新的网站。。。我想做的就是让帖子按降序排列,而不是随机排列。我有下面的代码,但当您将其从“rand”更改为“desc”时,它只是默认按“asc”顺序拉入帖子。我不知道为什么。此外,如果将“orderby”更改为“order”,则默认为升序。。。我在主题中做了一个搜索,看看发生了什么,但根本没有列出的地方。。。有人能把我引向正确的方向吗? <?php $args= array( \'post_type\' => \'waiting-f