web-dev-qa-db-ja.com

ページの子を見つけて、箇条書きのリンクリストとしてエコーする(メニュー)

親ページに子があるかどうかを確認しようとしています。子供がいる場合は、子供をそれぞれの子供へのリンク付きの箇条書きリスト(基本的にはメニュー)としてエコーします。

今私はloop-page.phpに以下のコードを持っていて、それはPageが子を持っているかどうかをチェックして子を持つ配列を返します。数値が0より大きいかどうかを確認するには、ifステートメントを使用します。

$children = get_pages('child_of='.$post->ID.'&parent='.$post->ID);

if (count($children)) {
    // Echo children as a bulleted list of links
}

この部分はうまくいくようです。

私の質問は、リンク付きの箇条書きとして子供たちにどうやって反響するのかということです。以下の例のように。

「サービス」が親ページで、その子ページが「草刈り」、「ウォーターガーデン」、および「造園」であるとしましょう。

count($ children)は3つの子を持つので、 "Services"ページに3を返します。今それはそれらをエコーする必要があります:

<ul>
<li><a href="#">Grass Cutting</a></li>
<li><a href="#">Water Gardens</a></li>
<li><a href="#">Landscaping</a></li>
</ul>

href =はページへのリンクになります。

1
user1822824

$children上でforeachループを実行するだけでいいのに、WordPressにはwp list pagesという名前の組み込み関数があります。

例えば:

$children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=1');

if ($children)
echo '<ul>' . $children . '</ul>';

ここに完全な参照と例があります。 http://codex.wordpress.org/Function_Reference/wp_list_pages

2
Wyck