Wordpress按日期在自定义帖子类型存档页面上排序

时间:2016-02-10 19:21:41

标签: php wordpress sql-order-by archive

我有一个名为city guide的自定义帖子类型,我在wordpress中使用以下代码创建了一个存档页面。帖子显示但不在订单中。我需要日期和desc排序。当我从下面的代码更改 $ args orderby 订单时,它显示的内容相同。

<?php 

$args = array( 'hide_empty' => false, 'orderby' => 'id', 'order' => 'ASC' );
$taxonomy = 'city-guide-category';
$tax_terms = get_terms( $taxonomy, $args );
foreach($tax_terms as $tt): 
$cat_arr[] = $tt->term_id;      
  endforeach;

 ?>
 <?php

    global $wp_query, $paged;

    if( get_query_var('paged') ){
        $paged = get_query_var('paged' );
    } else if ( get_query_var('page') ){
        $paged = get_query_var('page' );
    } else{
        $paged = 1;
    }
    ?>
     <?php $i=1; while( $wp_query->have_posts() ): $wp_query->the_post(); ?>

      <?php get_template_part( 'templates/content-city-guide', get_post_format() ); ?>

        <?php if( $i%2 == 0 && $i != $wp_query->post_count): ?>
            <div class="clearfix visible-xs hidden-sm hidden-md hidden-lg"></div>
        <?php endif; ?>

        <?php if( $i%3 == 0 && $i != $wp_query->post_count): ?>
          <div class="clearfix hidden-xs hidden-md hidden-lg"></div>
        <?php endif; ?>

        <?php if( $i%4 == 0 && $i != $wp_query->post_count): ?>
            <div class="clearfix hidden-xs hidden-sm"></div>
        <?php endif; ?>
     <?php $i++; endwhile; ?>
</div>

我也试过

<?php 
$wp_query->set('orderby','date');
$wp_query->set('order','desc');
?>

之前和之后

<?php $i=1; while( $wp_query->have_posts() ): $wp_query->the_post(); ?>

这也没用。我错了。请帮帮我。

我试过这个

 <?php

    global $wp_query, $paged;

    if( get_query_var('paged') ){
        $paged = get_query_var('paged' );
    } else if ( get_query_var('page') ){
        $paged = get_query_var('page' );
    } else{
        $paged = 1;
    }

    //ddbug( $wp_query->request );

$args = array(
'orderby' => 'date',
'order'   => 'DESC',
);
$query = new WP_Query( $args );  ?>
    <?php $i=1; while( $query->have_posts() ): $query->the_post(); ?>

      <?php get_template_part( 'templates/content-city-guide', get_post_format() ); ?>

        <?php if( $i%2 == 0 && $i != $query->post_count): ?>
            <div class="clearfix visible-xs hidden-sm hidden-md hidden-lg">        </div>
        <?php endif; ?>

        <?php if( $i%3 == 0 && $i != $query->post_count): ?>
          <div class="clearfix hidden-xs hidden-md hidden-lg"></div>
        <?php endif; ?>

        <?php if( $i%4 == 0 && $i != $query->post_count): ?>
            <div class="clearfix hidden-xs hidden-sm"></div>
        <?php endif; ?>

        <?php $i++; endwhile; ?>
 </div>

 <?php if( $query->max_num_pages > 1) : ?>
  <div class="more-posts-link-wrapper">
    <?php next_posts_link(__('<span class="more-posts-text">More <i class="bits-arrow-down"></i></span><img src="' . get_stylesheet_directory_uri() . '/assets/img/ajax-loader.gif" alt="Loading..." class="ajax-loader" height="15px;" width="auto" style="display:none;">','roots') ); ?>
  </div>
<?php endif; ?>
</div>
</div>

它现在按日期显示,但是当我点击更多链接矿石下一页以查看第二组帖子时它显示相同的帖子。即使我转到第12页的分页,他们也会重复。 请帮忙。

1 个答案:

答案 0 :(得分:2)

有关详细信息,请参阅https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters。与您已尝试的内容略有不同,请尝试创建新的WP查询对象。

编辑以在args中包含分页参数,尝试类似

$paged = ( get_query_var('page') ) ? get_query_var('page') : 1;
args = array(
    'orderby' => 'date',
    'order'   => 'DESC',
    'post_type' => 'post',
    'posts_per_page' => 5,
    'paged' => $paged
);

$query = new WP_Query( $args );

while ($query->have_posts()){
    // do stuff
}