按DESC查询循环排序

时间:2014-05-19 13:14:10

标签: php mysql wordpress

我已经花了好几个小时来通过DESC而不是ASC订购这个Wordpress循环,我做错了什么?

function list_articles($query_arg){

    $articles_list = new WP_Query( $query_arg );

    if ( $articles_list->have_posts() ) :
        echo '<ul class="articles">';
        while ( $articles_list->have_posts() ) :
            $articles_list->the_post(array('order' => 'DESC'));
            get_template_part("template-parts/article-for-widget");
        endwhile;
        echo '</ul>';
    else :
        ?>
        <p><?php _e('No Articles Found!', 'framework'); ?></p>
        <?php
    endif;
}

2 个答案:

答案 0 :(得分:3)

尝试这样的事情:

$query = new WP_Query( array ( 'orderby' => 'title', 'order' => 'DESC' ) );

详细信息: - http://codex.wordpress.org/Class_Reference/WP_Query

答案 1 :(得分:1)

DESC当然是SQL查询字。在您的代码中,您尝试(失败)传递DESC.时已经发出了相关查询。因此,即使the_post()接受参数,它也无法工作。

http://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

在WordPress向MySQL发出查询之前,您需要说DESC

我相信这是怎么做的。但是你需要调试它,因为$ query_arg的格式有点不可预测。

$query_arg['order'] = 'DESC';
$articles_list = new WP_Query( $query_arg );
if ( $articles_list->have_posts() ) :
   etc etc etc