为什么‘meta_key’在Get_Pages中返回空数组

时间:2017-07-31 作者:Lee

非常简单,get_pages() 将返回所有页面。

我想获取所有具有名为“basePrice”的自定义字段键的页面,而不考虑其值。

但是当我尝试使用

get_pages(array(
    \'meta_key\' => \'basePrice\'
))
数组始终为空,不返回任何页面。

我知道我可以创建一个自定义WP查询,但我不想,我想保持这个简单,但我还想在使用foreach

如果我使用get_posts, meta\\u键有效,但所有页面(包括子页面)都按字母顺序排列,与父页面无关。

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

我不确定这是否仍然是真的,但我试过一次,发现了一个类似的问题:

要知道这不是我的答案,而是我发现最终起作用的东西。那是一年前的事了,我还没试过用meta\\u键进行查询是否有效。。。从这个问题:

https://stackoverflow.com/questions/32104826/wordpress-get-pages-meta-key-dont-show-page

以下是提供的答案:

截至目前,get\\u pages()的Wordpress文档表示该函数不支持使用meta\\u键进行查询:

注意:此函数当前不会使用$args数组中的“meta\\u key”和“meta\\u value”参数检索页面,如下所述。在WordPress代码库中修复此问题之前,您可能希望改用get\\u posts()。

因此,您的代码应该调用get\\u posts():

$pages_args = array(
  \'orderby\' => \'menu_order\',
  \'parent\' => 0,
  \'post_type\' => \'page\',
  \'post_status\' => \'publish\',
  \'meta_key\'  => \'dont_show_in_nav\',
  \'meta_value\' => \'true\'
);
$pages = get_posts($pages_args);
请注意,我引用了“true”,因为对Wordpress来说,它只是一个文本字段。此外,get\\U POST的一些参数与get\\U页面的参数略有不同。

结束

相关推荐