/ / wp_nav_menu (), aby wyświetlić bieżącą stronę i jej podelementy depth = 1 - wordpress

wp_nav_menu (), aby wyświetlić bieżącą stronę i jej podelementy depth = 1 - wordpress

Oto, co próbuję zrobić. Powiedzmy, że mam menu, które wygląda tak:

<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>

Co chcę zrobić, to użyć wp_nav_menu do wyświetleniatylko strona aktualnie oglądana przez użytkownika i jej podelementy, więc np. jeśli ktoś jest na podstronie # 1 lub na jednym z jego podelementów (pod-pod-# 1 lub # 2) wygenerowane menu powinno wyglądać tak :

<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>

Jeśli użytkownik jest aktualnie na stronie # 1, wygenerowane menu powinno wyglądać tak:

<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>

Czy możliwe jest osiągnięcie czegoś podobnego za pośrednictwem wp_nav_menu lub w jakikolwiek inny sposób? Każda pomoc będzie wielce ceniona.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz osiągnąć coś takiego poprzez "get_posts". Wystarczy podać parametr "post_parent" w argumentach zapytania, a otrzymasz całą stronę podrzędną.

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>

możesz uzyskać ten sam cel za pomocą wp_query. https://codex.wordpress.org/Class_Reference/WP_Query#Post_.26_Page_Parameters