我有以下结构
Services
-Page_1
-Page_2
--Page_3
--Page_4
我使用Wp-query来获取页面。这是我的args:
<?php $args = array(
'post_type' => 'page',
'post_parent' => '45'
); ?>
45是服务页面的ID。 但我只获得第一级Page_1和Page_2。我如何获得所有页面?我使用的是高级自定义字段插件,因此使用get_pages()不是一个好选择,是吗?
答案 0 :(得分:1)
正如您的评论中所提到的,最简单的解决方案是实际使用get_pages()
。如果您能够获取页面的ID(可以使用get_pages()
),您仍然可以获取帖子的元数据,这样您仍然可以使用ACF的自定义字段。
以下是get_pages()
:
$args = array(
'child_of' => 45,
'post_type' => 'page',
);
$pages = get_pages($args);
我们想要关注的get_pages()
和WP_Query
之间的主要区别是'child-of'=>45
参数与'post_parent'=>45
。
child-of
参数将抓住整个层次结构中的所有孩子,即儿童和孩子的孩子等。
相比之下,post-parent
的{{1}}参数只会抓取页面的直接子项。
如果您需要从ACF获取自定义字段,您仍然可以使用get_post_meta()
。
如果您的自定义字段包含值数组,则需要先将其反序列化,然后循环遍历这些值:
WP_Query