Wordpress通过标准循环更改帖子的顺序

时间:2013-10-27 12:51:01

标签: php wordpress

是否可以在保持标准Wordpress循环完整的同时订购帖子(即无需创建全新的WP_Query?

通过标准循环我的意思是:

<?php if ( have_posts() ) : ?>


            <?php /* The loop */ ?>
            <?php while ( have_posts() ) : the_post(); ?>

我可以在此代码中指定订单吗?

2 个答案:

答案 0 :(得分:6)

query_posts功能页面上的documented

  

强烈 建议您使用pre_get_posts过滤器   相反,通过选中is_main_query来改变主要查询。

您可以在主题pre_get_posts文件中的functions.php上添加新操作,例如:

function homepage_posts($query)
{
    if ($query->is_home() && $query->is_main_query())
    {
        $query->set( 'orderby', 'title' );
    }
}
add_action('pre_get_posts', 'homepage_posts');

答案 1 :(得分:0)

wp_reset_query()是要走的路

示例代码段

<?php query_posts(array('orderby'=>'title','order'=>'DESC'));

if ( have_posts() ) :
    while ( have_posts() ) : the_post(); ?>
        <a href="<?php the_permalink() ?>"><?php the_title() ?></a><br /><?php
    endwhile;
endif;
wp_reset_query();

但请记住:query_posts()将更改您的主查询,不建议使用。仅在绝对必要时使用(请参阅query_posts:注意事项)。对于辅助循环,首选创建WP_Query或get_posts()的新实例。