2015-08-02 6 views
-1

Я использую плагин WP-PostRatings для рейтинга сообщений на сайте Wordpress, и он отлично работает. Мне нужно только сортировать сообщения по рейтингу. Для этого я добавил следующие строкисортировать сообщения по скорости в wordpress

query_posts(array('meta_key' => 'ratings_average', 'orderby' => 'meta_value_num', 'order' => 'DESC')); 

, но он начинает отображать сообщения от всех категорий вместо отображения сообщения только из выбранной категории. Не могли бы вы мне помочь.

<?php if (have_posts()) : 

//sort by rate    
query_posts(array('meta_key' => 'ratings_average', 'orderby' => 'meta_value_num', 'order' => 'DESC')); 

     while (have_posts()) : the_post(); ?><div class="post"> 
         <h3><?php the_title(); ?></h3> 
         <?php 
     if(function_exists('the_ratings')) { the_ratings(); } 
     ?>    
         <p><?php the_content(); ?></p>      
         </div> 
         <?php 
         endwhile; 
         else : 
          echo '<p>No content found.</p>'; 
         endif; 
         ?> 
+0

вы получаете текущий слизняк категории в URL? или любой переменной? пожалуйста, добавьте код с категорией, чтобы мы могли вам помочь. – Noman

+1

** Никогда не используйте ** query_posts, он разбивает основной объект запроса и все функциональные возможности страницы (*, как вы видели; -) *), и он также медленный. Используйте 'pre_get_posts', чтобы правильно изменить основной запрос ** ** для сортировки по пользовательскому полю –

+0

Noman, я получаю следующее по адресу/категории/ночлеги/гостиницы /. У меня нет кода для категории. Я просто имею название категории в меню, и когда я нажимаю на нее, wordpress отображает все сообщения из выбранной категории. – EducateYourself

ответ

-1

Вы показываете Используйте Wordpress удивительного pre_get_posts действия

add_action('pre_get_posts', funtion ($q) 
    { 
      $q->set('meta_key', 'ratings_average'); 
      $q->set('orderby' => 'meta_value_num'); 
      $q->set('order' => 'DESC'); 
    }); 
+0

. Это влияет на все запросы на всех страницах, переднем и заднем концах и вызывает 404 ошибки на настоящих страницах ;-) –