如何在WordPress的子页面中查询父页面的自定义字段?

时间:2012-04-24 18:20:48

标签: php wordpress

在子页面上,我想查询父页面的一些自定义字段,以及显示父页面的所有子页面? (理想情况下,在子页面列表中,我应该能够识别它当前所在的子页面)

这是我正在使用的代码

<?php if($post->post_parent): 
$parent = get_post($post->post_parent);
?>
<h2><?=$parent->address;?></h2>
<? parent->get('address');?>
<?php endif; ?>

1 个答案:

答案 0 :(得分:1)

这应该有助于您入门:

<?php
global $post;
if($post->post_parent): 
$parent = get_page($post->post_parent);
?>
<h2><?php echo get_post_meta($post->post_parent, 'address', true); ?></h2>
<?php 
$args = array(
    'child_of'     => $post->post_parent,
    'title_li'     => '',
    'echo'         => false,
    'sort_column'  => 'menu_order, post_title',
);
$children = wp_list_pages($args); //RETURNS HTML OF ALL CHILD PAGES
endif;
?>

我猜你的意思是在你可以查询的父页面中有一个名为'address'的自定义字段。否则,请通过“地址”澄清您的意思(如果它是自定义元字段,主题选项或其他内容)。

警告:$ children变量只会抓取其匹配父级的后代。不是它的顶级祖先。这意味着如果当前页面是孙子或曾孙,则父页面将是另一页面的子页面。

如果你想抓住那个顶级祖先,我已经编写了一个递归执行此功能的函数,但它非常难看。我建议不要走那条路。

编辑:使用get_page(),而不是get_post()。帖子不是分层的。