WP_Query改变存档页面查询

问题描述:

我有一个场景,我想先获取精选属性,然后选择其他属性。如果属性显示,我已经用_property_featured保存了一个meta_key。 对于这个我使用pre_get_posts钩,这里是代码WP_Query改变存档页面查询

 function my_property_modify_query($query) { 
     if (is_post_type_archive('property') || is_tax('property_contracts')) { 
      set_query_var('orderby', 'meta_value_num'); 
      set_query_var('meta_key', '_property_featured'); 
      set_query_var('ORDER', 'DESC'); 
     } 
     } 
     add_action("pre_get_posts", "my_property_modify_query"); 

但它只显示功能属性的任何建议,他为什么这样做呢?

请尝试将meta_key放在orderby参数之前。 我认为你不需要使用meta_value_num,因为1只是一个标志,排序会给你一些奇怪的结果。

+0

我已经修复它,基本上在wp_postmeta当我的帖子保存如果特色复选框被选中保存_property_featured 1否则它删除_property_featured meta_key所以这就是为什么它只显示特色属性。现在我已经保存_property_featured 0,它的工作原理! – 2014-08-29 07:46:25

+0

好,所以它只显示他们,因为其他帖子没有元。 – 2014-08-29 08:22:49

+0

是正确的。 – 2014-10-16 12:57:46