Делаем сортировку постов по произвольному полю

07.05.2017

Делаем сортировку постов по произвольному полю «Рейтинг» — выводим вначале посты с наибольшим рейтингом.

Произвольное поле rank.

<div class="top10-cat-wrap">
  <?php 
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $args = array(
    'paged' => $paged ,
    'meta_query' => array(
      'product_rank' => array(
        'key' => 'rank'
        ),
      ),
    'orderby' => 'product_rank',
    'order' => 'DESC'
    );
  $wp_query = new WP_Query( $args );
  while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>

  <?php get_template_part( 'include/top10-cat-item' ); ?>

  <?php 
  endwhile; ?>
  <?php get_template_part('include/navigation'); ?>
  <?php wp_reset_postdata(); ?>
</div>

Если нужно отсортировать вывод результатов поиска так же по кастомному полю, то в файле search.php в аргументы нудно добавить такую строку:

's' => $s

Для тегов и категорий нужно будет добавить над циклом такой код:

<?php
$queried_object = get_queried_object();
$taxonomy = $queried_object->taxonomy;
$term_id = $queried_object->term_id; 
?>

А в самом цикле добавить в аргументы для категорий в файл category.php такой код:

'cat' => $term_id

а для тегов в файле tag.php нужно будет добавить в аргументы такую строку:

'tag_id' => $term_id

И как всегда, больше информации найдете у Камы.

Полезная инфа:

Оставить комментарий