2014-09-22 3 views
0

В настоящее время у меня есть следующий код:WooCommerce - показать продукты в результатах поиска до всего остального

<?php while (have_posts()) : the_post(); ?> 

     <?php 
      if (get_post_type() !== 'post') { 
       if (get_post_type() == 'landing-pages') { 
        get_template_part('templates/content/archive', 'landingpages'); 
       } elseif (get_post_type() == 'product') { 
        get_template_part('templates/content/archive', 'product'); 
       } else { 
        get_template_part('templates/content/archive', 'cpt'); 
       } 
      } else { 
       get_template_part('templates/content/archive', 'posts'); 
      }; 
     ?>   

    <?php endwhile; ?> 

    <?php get_template_part('templates/modules/nav', 'pagination'); ?> 

Однако, это только показывает самым последние к старому. С пользовательскими сообщениями, woocommerce продукты, сообщения, страницы, все смешанные togather.

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

Любые предложения о том, как достичь этого?

Спасибо.

ответ

0

Скопируйте и вставьте следующий код в файл functions.php вашей темы.

add_filter('posts_orderby','search_sort_custom',10,2); 
function search_sort_custom($orderby, $query) 
{ 
    global $wpdb; 

    if(!is_admin() && is_search()) 
     $orderby = $wpdb->prefix."posts.post_type DESC, {$wpdb->prefix}posts.post_date DESC"; 

    return $orderby; 
} 
+0

Спасибо, к сожалению, пользовательские сообщения «отзывы» отображаются в результатах поиска до того, как это будет сделано. Нам нужны продукты, которые будут отображаться первыми, а затем все остальное. похоже, что он находится на правильном пути от быстрого теста, который я сделал. – Martin

+0

На самом деле это не SEEM для работы: в качестве продукта отображаются (пользовательский тип сообщения) (тип пользовательской почты woocommerce) – Martin

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