私はWordPressのためのクエリを開発しようとしています。それは私がタイトルだけで子ページのリストを表示し、それから各子ページタイトルの下に孫(子の子)ページタイトルとその内容のリストを表示できるようにします。
たとえば、出力は次のようになります。
<ul>
<li>
<h1>Page 1</h1>
<ul>
<li>
<h2>Child Page 1</h2>
</li>
<li>
<h2>Child Page 2</h2>
<ul>
<li>
<h3>Grandchild</h3>
<p>Hello, welcome to this grandchild page</p>
</li>
<li>
<h3>Grandchild #2</h3>
<p>Hello, welcome to this grandchild page</p>
</li>
</ul>
</li>
<li>
<h2>Child Page 3</h2>
</li>
</ul>
</li>
<li>
<h1>Page 2</h1>
</li>
</ul>
これは動的に行われる必要があります。つまり、クエリの一部として投稿ID番号を指定したくありません。
標準のWordPressクエリを使用してから、最初のクエリ内に2番目のクエリを入れ子にしてみました - これは失敗しました。
さらに、私はまたここに見られるコードを修正しようとしました: http://wordpress.org/support/topic/query-child-pages-of-a-current-page-and-loop -through-each-child-page
最後に、私はまたこのコードを修正しようとしました:
<?php if ( have_posts() ) { while ( have_posts() ) { the_post(); $thispage=$post->ID; }} ?>
<?php $childpages = query_posts('post_per_page=3&orderby=menu_order&order=asc&post_type=' . get_post_type( $post->ID ) . '&post_parent='.$thispage);
if($childpages){ /* display the children content */
foreach ($childpages as $post) :
setup_postdata($post); ?>
<li><a class="" href="#<?php echo($post->post_name) ?>">
<?php the_title(); ?>
</a></li>
<?php
endforeach;
} ?>
私は1日以上も前からこれを機能させようとしていました、そして私は本当に円の中を歩き回っています。
これを機能させるために助けをいただければ幸いです。
次のようにしてください。
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<div class="parent-post">
<?php the_title('<h2>', '</h2>'); ?>
<?php $children = new WP_Query( array('post_type' => 'page', 'post_parent' => get_the_ID() )); ?>
<?php if ( $children->have_posts() ) : ?>
<ul class="post-children">
<?php while ( $children->have_posts() ) : $children->the_post(); ?>
<li><?php the_title('<h3>', '</h3>'); the_content(); ?></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php endwhile; ?>
<?php endif; ?>