2015-05-01 4 views
0

С момента обновления до Wordpress 4.2 мои пользовательские wp_query, которые имеют сортировку по настраиваемому полю, больше не работают. Я прочитал этот пост: https://make.wordpress.org/core/2015/03/30/query-improvements-in-wp-4-2-orderby-and-meta_query/, но он недостаточно подробен, чтобы показать, как сортировать по настраиваемому полю, которое не является частью мета-запроса.Wordpress 4.2 как сортировать по настраиваемому полю

Кто-нибудь знает, как я хотел бы изменить этот запрос, чтобы работать с Wordpress 4.2:

 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
     $args = array(
     'post_type' => 'custom', 
     'post_status' => 'publish', 
     'posts_per_page' => '12', 
     'paged'    => $paged, 
     'orderby'   => array('meta_value_num' => 'ASC', 
             'date' => 'DESC'), 
     'meta_key'   => 'wpcf-status' 
    ); 

     $items = null; 
     $items = new WP_Query($args); 

Это то, что результаты запроса теперь показывает в 4.2:

SELECT SQL_CALC_FOUND_ROWS xxx_posts.ID 
FROM xxx_posts 
INNER JOIN xxx_postmeta ON (xxx_posts.ID = xxx_postmeta.post_id) 
WHERE 1=1 AND xxx_posts.post_type = 'custom' 
AND ((xxx_posts.post_status = 'publish')) 
AND (xxx_postmeta.meta_key = 'wpcf-status') 
GROUP BY xxx_posts.ID 
ORDER BY xxx_postmeta.meta_value+0 ASC, 
xx_posts.post_date DESC LIMIT 0, 12 

Спасибо за любую помощь на это.

ответ

0

Попробуйте

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
query_posts(array(
'paged' => get_query_var('paged'), 
'posts_per_page'=>50, 
'post_type'=>'CUSTOM-POST-TYPE', 
'meta_key' => 'timestamp', //NAME CUSTOM FIELD DATE 
'orderby' => 'meta_value_num', 
'order' => 'ASC', 
))?> 

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

    <?php the_content();?> 

    <?php endwhile; endif; ?> 
+0

Привет, Это используется для работы в WP 4.1, но он не работает в WP 4.2. Кроме того, мне нужно сортировать по 2 полям, а не только в настраиваемом поле. – LJK

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