0

私はかなり長い間苦労してきた問題を解決しようとしています。

UL LI1 つの WordPress ページのすべてのメイン ページにリストを作成したいと考えています。これらのメイン ページには子があり、これも子を持つ場合と持たない場合があります。

私が思いついたのはこれです:

<?php
$children = get_pages('child_of='.$post->ID);
$count = 0;
echo '<ul id="accordion">';
foreach($children as $child) {
    if($child->post_parent==$post->ID) {
    echo '<li class="first-level">'.$child->post_title.'</li>';
    } else {
    echo '<li class="second-level">'.$child->post_title.'</li>';
    }
}
echo '</ul>';
?>

子の最初のレベルは、"ul id="accordion">.../ul>" でラップされているため問題ありません。しかし今、私は子供たちの子供たちも2番目のul-listにラップしたいと思っています。したがって、構造は次のようになります。

<ul>
<li>- Page 1
  <ul><li>- Subpage 1 of Page 1</li>
      <li>- Subpage 2 of Page 1</li>
  </ul>
</li>
<li>Page 2</li>
...

どうすればこれを機能させることができますか?<ul>...</ul>そのような foreach ループに -wrapを追加するにはどうすればよいですか?

4

1 に答える 1

2

ホイールを再発明する必要はなく、wp_list_pagesネストされたリストを生成します:

<ul id="accordion">
<?php wp_list_pages( 'title_li=&child_of=' . $post->ID ); ?>
</ul>

http://codex.wordpress.org/Function_Reference/wp_list_pagesで多くの例を確認してください。

于 2013-05-29T00:37:58.550 に答える