0

子ページで、親ページのいくつかのカスタムフィールドをクエリし、親ページのすべての子ページも表示したいですか?(理想的には、子ページのリストで、現在どの子ページにあるかを識別できるはずです)

これが私が使っているコードです

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

1 に答える 1

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_post()ではなくget_page()を使用してください。投稿は階層的ではありません。

于 2012-04-24T18:50:57.657 に答える