WordPress中‘Query_Posts’函数的排序问题。按自定义字段排序不起作用

时间:2011-01-06 作者:Sisir

0个否决票收藏夹

嗨,我在wordpress工作,我有一个事件列表系统。在我的帖子中有一个名为start\\u time的自定义字段,它是unix时间戳。现在,我想通过以下query\\u post命令启动\\u time来缩短所有帖子:

query_posts(array(
               \'post_type\' => \'event\',
               \'meta_key\' => \'end_time\',
               \'meta_compare\' =>\'>=\',
               \'meta_value\'=>time(),
               \'order_by\' => \'start_date\',
             \'order\' => \'ASC\'
));
但它不起作用。这里是网站http://citystir.com/events/. 我在unix中回显剩余时间之前的start\\u时间,以便您可以看到值。而且我的分页也不起作用。可能是我在query\\u post命令中做错了什么。

请某人回答。

---------------------更新-----------------

我在这里找到了一个很棒的帖子。com/archives/customize-posts-order通过自定义字段在wordpress中发布命令,但我没有成功。可能是因为我缺乏知识。请看一下,如果你有任何建议,请告诉我。我将继续努力。

--------------------已解决-----------------

已将order\\u by更改为orderby。而且我也知道,如果我们想不冲突,我们可以多次使用元密钥。以下是最终代码:

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
query_posts(array(
\'post_type\' => \'event\',
\'meta_key\' => \'end_time\',
\'meta_compare\' =>\'>=\',
\'meta_value\'=>time(),
\'meta_key\' => \'start_time\',
\'orderby\' => \'meta_value_num\',
\'post_per_page\' => \'-1\',
\'order\' => \'ASC\',
\'paged\' => $paged
));
谢谢你的辛勤工作!

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

order_by 不采用字段名称,而是采用顺序类型。自定义数字字段的orderby=meta_value_num. 但实际使用的字段取自meta_key 您已经在使用它进行过滤了。看见Orderby Parameters.

所以,如果不过滤和修改生成的SQL查询,现在就很难做到这一点。即将推出的WP 3.1将对自定义字段提供更完善、更灵活的查询支持,而且可能比。

SO网友:MathSmath

至于分页被破坏——当您执行这样的自定义query\\u post时,它会压扁原始查询中的所有变量。如果希望分页工作,则必须在查询参数中显式传递“paged”var。按如下方式获取现有分页变量:

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
然后将其添加到查询参数:

\'paged\' => $paged

结束

相关推荐

Sort admin menu items

关于“的相关注释”Changing the Order of Admin Menu Sections?“,我正在寻找一种按字母顺序对WordPress管理区域的每个子部分中的条目进行排序的方法。目前,每当添加新插件时,其条目都会出现在“设置/工具/插件”下看似随机的位置,通常很难找到新的菜单项。(我已经有很多插件了,所以我的菜单很满。)由于我相当经常地添加和删除插件,所以我宁愿不需要不断进入设置页面来获取菜单排序插件并调整顺序。抱歉问了这么长的问题;我只是想弄清楚我在找什么。示例代替: S