2016-02-10 2 views
0

У меня есть пользовательский тип сообщения, называемый городским гидом, и я создал страницу архива со следующим кодом в wordpress. Сообщения отображаются, но не в порядке. Мне нужно это с датой и порядком desc. Когда я изменил $ argsorderby и заказ из нижеследующего кода, но он отображается одинаково.Wordpress Сортировать по дате на персонализированном архиве типа сообщения

<?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(); ?> 

который также не work.Where Я wrong.Please помочь мне.

Я попытался это

<?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> 

Он отображает в настоящее время по дате, но когда я нажимаю больше ссылок руды на следующую страницу, чтобы увидеть второй набор сообщений он отображающие тот же набор posts.Imean Theyre повторяющегося даже если я перейду на 12-ю страницу разбивки на страницы. прошу помочь.

+1

К тому времени, вы получите этот код, это довольно много слишком поздно, чтобы делать какие-либо изменения здесь, если вы идете с помощью пользовательского цикла. '$ wp_query' уже установлен и уже запущен. –

+0

Я пробовал настраиваемый цикл, но разбиение на страницы, похоже, не работает. проверьте отредактированный код, пожалуйста, – Melvin

ответ

2

см. https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters для получения дополнительной информации. Немного отличается от того, что вы уже пробовали, попробуйте создать новый объект запроса WP.

EDIT включить параметры нумерации страниц в аргументах, попробовать что-то вроде

$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 
} 
+0

привет, я добавил отредактированный код.it работает, но разбиение на страницы, похоже, имеет некоторые проблемы. – Melvin

+1

Я обновил сообщение, взглянул и посмотрел, работает ли он на вас. В исходных запросах args был только порядок, но также требовалось разбиение на страницы. –

+0

работал, когда пытался с paged вместо страницы в (get_query_var ('page'))? get_query_var ('page') – Melvin

 Смежные вопросы

  • Нет связанных вопросов^_^