2017-06-21 13 views
2

ここに私がしようとしていることがあります。例えば誰かがサブの上にある場合ので、私がやりたいのは何wp_nav_menu()は、現在のページとその深さ= 1のサブアイテムを表示します。

<ul> 
<li><a href="#">Page #1</a> 
<ul> 
<li><a href="#">Sub-Page #1</a> 
<ul> 
<li><a href="#">Sub-Sub-Page #1</a></li> 
<li><a href="#">Sub-Sub-Page #2</a></li> 
</ul> 
</li> 
<li><a href="#">Sub-Page #2</a></li> 
<li><a href="#">Sub-Page #3</a></li> 
</ul> 
</li> 
<li><a href="#">Page #2</a></li> 
<li><a href="#">Page #3</a></li> 
</ul> 

が唯一のユーザが現在閲覧しているページとそのサブ項目を表示するためにwp_nav_menuを使用している:のは、私はこのようになりますメニューを持っているとしましょうページ番号1またはそのサブ項目のいずれかに(サブサブページ#1または#2)生成されたメニューは次のようになります。ユーザーが生成したメニューページ#1の上に現在ある場合

<ul> 
<li><a href="#">Sub-Page #1</a> 
<ul> 
<li><a href="#">Sub-Sub-Page #1</a></li> 
<li><a href="#">Sub-Sub-Page #2</a></li> 
</ul> 
</li> 
</ul> 

べき次のようになります。

<ul> 
<li><a href="#">Page #1</a> 
<ul> 
<li><a href="#">Sub-Page #1</a></li> 
<li><a href="#">Sub-Page #2</a></li> 
<li><a href="#">Sub-Page #3</a></li> 
</ul> 
</li> 
</ul> 

wp_nav_menuや他の方法でこれを実現することは可能でしょうか?どんな助けでも大歓迎です。

答えて

1

「get_posts」でこれを実現できます。クエリ引数にパラメータ "post_parent"を渡すだけで、すべての子ページが取得されます。

https://codex.wordpress.org/Template_Tags/get_posts

<ul> 
    <?php global $post; 
    $args = array('posts_per_page' => -1, 'post_parent'=> get_the_ID()); 
$myposts = get_posts($args); 
foreach ($myposts as $post) : setup_postdata($post); ?> 
<li> 
    <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> 
</li> 
<?php endforeach; ?> 
</ul> 

あなたはwp_queryを経由して同じ目標を得ることができます。 https://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters

+0

悲しいことに、上記の解決策は私にとっては何も出力しません。何も表示されません。私はWP_Queryを見ていきます、ありがとう。 –

+0

argsのpost_parentパラメータに現在のページIDを渡しましたか? –

+0

うん、私は$ post-> IDを渡して何も出力されません。 –

関連する問題