使用META_KEY的自定义查询无法正常工作

时间:2016-09-13 作者:Rod0n

我进行以下查询是为了获得所有按元键排序的帖子(本例中为wpcf estado),但它不按顺序返回项目:

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
        $args = array( 
                        \'post_type\' => \'proyectos\',
                        \'posts_per_page\' => 8,
                        \'paged\' => $paged,
                        \'orderby\' => \'meta_value\',
                        \'order\' => \'DESC\',
                        \'meta_key\' => \'wpcf-estado\',
                        //\'meta_value\' => \'a\',                                      
        );
如果我取消对“meta\\u value”参数的注释,那么我最终只能成功地获得包含“a”的帖子作为wpcf estado。

wpcf estado的可能值为:a、b或c。

我尝试了几种方法,但没有找到合适的解决方案。

2 个回复
SO网友:Syed Fakhar Abbas

@Rod0n WP 4.2版包括以下方面的改进WP_QUERY 尤其是使用“meta\\u query”参数时。同时,检查WP_QUERY Class Refernece.


$args = array( 
         \'post_type\' => \'proyectos\' ,
         \'posts_per_page\' => 8 , 
         \'paged\' => $paged,
         \'orderby\' => array(
           \'meta_value\' => \'DESC\'
          ), 
         \'meta_query\' => array(
           array(
             \'key\' => \'wpcf-estado\',
             \'compare\' => \'EXISTS\',
          ),
       ),
    );
希望它对你有用!

SO网友:mlimon

你试过了吗\'orderby\' => \'meta_value_num\' ?

我觉得更妙的是

$args = array( 
    \'post_type\' => \'proyectos\',
    \'posts_per_page\' => 8,
    \'paged\' => $paged,
    \'orderby\'  => array( \'meta_value_num\' => \'DESC\', \'title\' => \'ASC\' ),
    \'meta_key\' => \'wpcf-estado\'
    //\'meta_value\' => \'a\',                                      
);