WordPress 固定ページの一覧を表示する方法

WordPress で固定ページの一覧を表示する方法を紹介します。
例えば、サイトマップで固定ページの一覧を表示したい場合に便利な方法です。

  1. テンプレートタグ wp_list_pages() を使った表示方法
    1. リストの見出しを変更または隠す方法
    2. 指定したIDの子ページ一覧を表示する方法
    3. 特定のページを除外する方法
    4. 投稿タイプを指定する方法
  2. テンプレートタグ get_posts を使った表示方法

テンプレートタグ wp_list_pages() を使った表示方法

WordPress のテンプレートタグ wp_list_pages() は固定ページへのリンクリストを表示します。
投稿タイプを指定すれば、固定ページ以外のリンクリストを表示できます。
次のコードは、固定ページのリンクリストを表示する方法です。

<ul>
<?php wp_list_pages(); ?>
</ul>

例えば、固定ページが親子孫ページまである場合 HTML は次のように生成されます。

<ul>
<li class="pagenav">
固定ページ
<ul>
<li class="page_item page-item-1111"><a href="#">ページ</a></li>
<li class="page_item page-item-2222 current_page_item"><a href="#">現在表示しているページ</a></li>
<li class="page_item page-item-3333 page_item_has_children">
<a href="#">親ページ</a>
<ul class='children'>
<li class="page_item page-item-4444 page_item_has_children">
<a href="#">子ページ</a>
<ul class='children'>
<li class="page_item page-item-5555"><a href="#">孫ページ</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>

現在表示されているページにはカレントクラス current_page_item が付与されます。

リストの見出しを変更または隠す方法

wp_list_pages は通常は見出し(表示は「ページ」)が表示されます。
見出しの文言を変更または非表示にする場合はパラメーター title_li を追加します。
次のコードは、見出しを「固定ページ一覧」にする方法です。

<ul>
<?php wp_list_pages('title_li=固定ページ一覧'); ?>
</ul>

見出しを非表示にする場合は入力の値を空にします。
次のコードは、見出しを非表示にする方法です。

<ul>
<?php wp_list_pages('title_li='); ?>
</ul>

指定したIDの子ページ一覧を表示する方法

指定したIDの子ページを表示する方法を紹介します。
条件分岐を使い、子ページがない場合は表示しないようにします。その場合は echo=0 を追加します。
次のコードは、ページIDが 123 の場合に、そのページに紐づく子ページの一覧を表示します。

<?php // 指定したIDの子ページ一覧を表示
$children = wp_list_pages('title_li=&child_of=123&echo=0'); // ページIDを指定
if($children){ // 子ページがある場合に一覧を表示
echo '<ul>';
echo $children;
echo '</ul>';
}
?>

特定のページを除外する方法

リンクリストから特定のページを除外する場合はパラメーター exclude を追加します。
次のコードは、見出しを非表示にして特定のページ(ページID 10,11 のページ)を除外する方法です。

<ul>
<?php wp_list_pages('title_li=&exclude=10,11'); ?>
</ul>

除外するページのIDを確認する場合は、管理画面から各ページの詳細ページで表示されるアドレスから確認してください。

投稿タイプを指定する方法

ページリストを固定ページではなく、投稿やカスタム投稿タイプを指定する場合 post_type を追加します。
次のコードは、投稿タイプが products の場合の表示方法です。

<ul>
<?php wp_list_pages('title_li=&post_type=products'); ?>
</ul>

テンプレートタグ get_posts を使った表示方法

テンプレートタグ get_posts は、パラメーターに基づいて投稿データを作成します。
リンクリストを自由にマークアップしたいときこちらを選択するとよいかもしれません。
次のコードは、固定ページのリンクリストを昇順ですべて表示する方法です。


<?php // 固定ページの一覧を表示する
$page_list = get_posts( 'numberposts=-1&order=ASC&post_type=page' ); // ページ情報の取得
foreach ( $page_list as $page_item ) {
echo '<a href="'. get_page_link($page_item->ID).'">'.get_the_title($page_item->ID).'</a>'; // ページの情報を表示
}
?>

リンクリストの表示件数を変更する場合は numberposts=-1 の -1(すべて表示)から任意の数字に変更してください。
昇順ではなく降順で指定する場合は order=ASCDESC に変更してください。
投稿タイプの指定は post_type=pagepage を変更してください。

まとめ

WordPress で固定ページ一覧を表示する方法を紹介しました。

スポンサーリンク

私が続けて読みたい関連記事

私が続けて読みたい関連記事