我在Wordpress主题中使用get_pages来创建导航。
我有一些我不想在导航中显示的页面。
在所有网页上,我都有一个' dont_show_in_nav'真/假自定义字段。
我可以使用meta_key添加包含' dont_show_in_nav'选 但是我不想展示那些有' dont_show_in_nav'地选择。
我可以创建一个' show_in_nav'自定义字段并选择要显示的所有页面,但我必须有很多页面才能执行此操作。
我已尝试'meta_value' => false
$pages_args = array(
'sort_column' => 'menu_order',
'parent' => 0,
'post_type' => 'page',
'post_status' => 'publish',
'meta_key' => 'dont_show_in_nav',
'meta_value' => true
);
答案 0 :(得分:0)
我猜测问题是meta_value
必须是一个字符串,因为WordPress只支持post meta的字符串。当你创建你的领域时,你实际节省了什么?是“真”这个词,它是'0'还是'1'等?
无论如何,在wordpress中生成导航菜单的更好方法是利用导航菜单功能。看看wp_nav_menu()
,它应该比元键更可靠。
答案 1 :(得分:0)
截至目前,get_pages()
的Wordpress文档说该功能不支持使用meta_key
进行查询:
注意:此功能目前不会使用' meta_key'和' meta_value' $ args数组中的参数如下所述。在WordPress代码库中修复此问题之前,您可能希望使用get_posts()。
因此,您的代码应该调用get_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_posts
的某些参数与get_pages
略有不同。