2017-02-14 34 views
0

Helo, 我的自定义文章中有多个meta_key值对。所以要解决这个问题,我所做的就是我首先运行了一个WP_QUERY,它创建了一个post ID的数组,然后通过加载更多来加载这些ID。Wordpress AJAX加载更多Order by Meta_VALUE_NUM

我使用WP_Query构建的数组的顺序是正确的。但是,当我在post_in参数中使用ID时,它不会按给定顺序显示它们。我也尝试给orderby="meta_value_num"参数,但它也不工作。

这里是WP_QUERY这是工作完美

$loop = new WP_Query( 
           array( 
             'post_type' => 'properties', 
             'posts_per_page' => -1, 
             'meta_query' => array(
               array(
                'key' => 'listing_type', 
                'value' => array(3,2), 
                'type' => 'NUMERIC', 
               ), 
               array(
                'key'  => 'payment_status', 
                'value' => 'yes', 

                 ),            
               array(
                'key'  => 'expired', 
                'value' => 'no', 



-), 

         ), 
             'orderby' => 'meta_value_num', 
             'meta_key' => 'listing_type', 
             'order' => 'DESC' 
            )); 

下面是短代码:

[ajax_load_more post_type="properties" post__in="'.implode(',',$featured).'" posts_per_page="10" scroll="false" transition="fade" button_label="'.$l_more.'" button_loading_label="'.$l_more_2.'" container_type="ul" css_classes="items",orderby="meta_value_num" meta_key="listing_type"] 

但是它不为了帖子,因为它应该因为$特色阵列具有它要求的顺序。即使我通过和meta_key参数删除命令它不起作用。

请帮助 艾哈迈尔

+1

如果您回显$循环,查询会说什么? –

+1

_“但是它没有按照它的顺序排列帖子,因为$ featured数组按它的顺序排列。” - 它“应该”这样做,只是你的假设。通过id选择帖子本身并不能保证任何顺序。 – CBroe

+0

@WouterNeuteboom查询按预期完美工作,并以正确的顺序返回ID。然而,它的阿贾克斯加载更多,不是正确排序数据 –

回答

1

首先,你必须在你的简码的错误。

[ajax_load_more post_type="properties" post__in="'.implode(',',$featured).'" posts_per_page="10" scroll="false" transition="fade" button_label="'.$l_more.'" button_loading_label="'.$l_more_2.'" container_type="ul" css_classes="items" orderby="meta_value_num" meta_key="listing_type"] 

其次,你应该orderby="post__in"保留post__in排序。 https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

+0

非常感谢你@达伦 –