order by multiple meta_keys?

时间:2012-12-09 作者:Jido Park

嗨,我想按多个meta\\u键订购

要使用这些键进行排序

adminscore+user\\u like+\\u count-views\\u all+comment\\u count

组合这些键我应该如何排列它??

我试过了,但没用。。

  $args = array(
            \'meta_key\' => \'adminscore\' + \'user_like\' + \'_count-views_all\' + \'comment_count\',
                \'numberposts\' => $number_posts,
                \'post_status\' => $post_status,
                \'post_type\' => $custom_post_type,
                \'orderby\' => \'meta_value_num\'
               );
谢谢你检查我的问题,希望有人能回答。

2 个回复
最合适的回答,由SO网友:Syamil MJ 整理而成

该行错误:

\'meta_key\' => \'adminscore\' + \'user_like\' + \'_count-views_all\' + \'comment_count\',
\'meta_key\' 仅接受字符串值。

您需要的是一个额外的元键,例如“totalscore”,它保存所有元值的总分值。您可以手动运行php函数,该函数可不时计算和存储totalscore值,或者使用wp_schedule_event 以设定的间隔运行函数。

然后,您可以这样编写$args:

$args = array(
            \'meta_key\' => \'totalscore\',
            \'numberposts\' => $number_posts,
            \'post_status\' => $post_status,
            \'post_type\' => $custom_post_type,
            \'orderby\' => \'meta_value_num\'
);

SO网友:Mridul Aggarwal

在这里,您唯一能做的就是使用posts_orderby filter

要确保不修改任何其他查询,请使用add_filter 在检索帖子之前拨打电话(&A);A.remove_filter 要么在钩住的函数本身中调用,要么就在您有帖子之后调用。

结束

相关推荐

列出分类法:如果分类法没有POST,就不要列出分类法--取决于定制的POST-META?

这可能很难解释,我不知道是否有解决办法!?我有一个名为“wr\\u event”的自定义帖子类型和一个名为“event\\u type”的分层自定义分类法。自定义帖子类型有一个元框,用于event_date 并且与此帖子类型关联的所有帖子都按以下方式排序event_date. 我在循环中有一个特殊的条件来查询event_date 已经发生了-在这种情况下,它没有显示,但只列在我的档案中。就像你可以使用wp_list_categories() 我编写了一个自定义函数,它以完全相同的方式列出所有分类术语。现在