ORDER BY META_KEY其中序列化值

时间:2013-01-18 作者:Marco

我会按meta\\u键订购post,但我对meta\\u值有问题,因为它是序列化对象。

我会按计数值订购我的帖子。

a:2:{s:5:"count";d:9750;s:7:"timeout";i:1358466733;}
我使用以下代码,但在更新到3.5“订单截止日期”后,在wp版本3.4.2之前,订单是正确的:

 if (have_posts()) :
    $args=array(
    \'meta_key\' => \'tweets_count\',
    \'orderby\' => \'meta_value\',
    \'showposts\' => 10,
      ); 
      query_posts($args);
      while (have_posts()) : the_post();
//loop
印花申请:

REQUEST:SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = \'post\' AND (wp_posts.post_status = \'publish\' OR wp_posts.post_status = \'private\') ORDER BY wp_posts.post_date DESC LIMIT 0, 10
谢谢。

1 个回复
SO网友:hakre

是的,这是可能的,但是你的问题并不准确。

您所经历的可能已经是可以排序的了meta_key 甚至它的值也是一些序列化数据的字符串-只是这是标准的二进制排序,Wordpress不关心这是一个包含序列化数据的字符串-它只是一个用于排序的字符串。

所以答案是:是的,但这不是你想要的。

除了这个答案之外,Wordpress到目前为止还没有内置的功能来搜索meta_value 然后对该(子)值进行排序。

要求您首先获得整个结果集,然后对自己的数据进行排序。这在一定程度上取决于您想要如何使用它(您没有共享任何代码,所以很难说),从技术上讲,有多种方法可以做到这一点。

结束

相关推荐