
テンプレートタグwp_list_pages()は固定ページへのリンクのリストを表示します。大抵の場合サイドバーやヘッダーにメニューを表示させるのに使われます。
記述方法
<?php wp_list_pages( $args ); ?>パラメーター
depth
表示する階層レベルを指定(省略時は0)
<?php
$args = array(
'depth' => 1, // 1階層まで表示
);
wp_list_pages( $args );
?>
show_date
show_dateパラメータは、ページの最終更新日付を表示するかどうかを制御します。デフォルトでは、このパラメータはfalseに設定されており、最終更新日付は表示されません。trueに設定すると、最終更新日付が表示されます。
<?php
$args = array(
'show_date' => true, // 最終更新日付を表示
);
wp_list_pages( $args );
?>
date_format
date_formatパラメータは、ページの最終更新日付の表示形式を指定します。このパラメータを使用すると、日付の表示形式をカスタマイズすることができます。WordPressでは、date_formatパラメータに指定できる値は、date_i18n()関数で使用されるフォーマット指定文字列と同じです。例えば、'F j, Y'は「月名 日, 年」の形式で日付を表示します。
<?php
$args = array(
'show_date' => true, // 最終更新日付を表示
'date_format' => 'F j, Y', // 日付の表示形式を設定
);
wp_list_pages( $args );
?>
title_li
title_liパラメータは、ページリストの先頭に追加するリンクのタイトルを指定します。通常、WordPressでは、ページリストの先頭には親ページへのリンクが表示されますが、title_liパラメータを使用することでこのリンクのテキストをカスタマイズすることができます。
<?php
$args = array(
'title_li' => 'カスタムタイトル', // カスタムタイトルを設定
);
wp_list_pages( $args );
?>
link_after
link_afterパラメータは、各ページのリンクの後に追加するテキストを指定します。
<?php
$args = array(
'link_after' => '<span>カスタムテキスト</span>', // リンクの後に追加するカスタムテキスト
);
wp_list_pages( $args );
?>
echo
wp_list_pages()関数は、通常は直接HTMLを生成して出力しますが、その出力を変数に格納したい場合など、HTMLを直接出力させずに出力を操作したい場合があります。そのような場合には、echoパラメータを使用します。
echoパラメータは、真偽値を受け取ります。デフォルトではtrueになっており、関数が実行されるとすぐにHTMLが出力されます。falseを指定すると、HTMLが出力されずに関数の戻り値として返されます。以下の例では、wp_list_pages()関数の出力が変数$pages_listに格納され、その後echo文で出力されています。
<?php
$args = array(
'echo' => false, // HTMLを出力せずに関数の戻り値として取得
);
$pages_list = wp_list_pages( $args );
// 出力を変数に格納したいなら、この変数を利用できます
echo $pages_list;
?>
child_of
child_ofパラメータは、特定の親ページの子ページのみをリストするために使用されます。このパラメータに親ページのIDを指定することで、その親ページの子孫ページのみをリストすることができます。以下の例では親ページIDが5のページの子孫ページのみをリストします。
<?php
$args = array(
'child_of' => 5, // 親ページIDが5のページの子孫ページのみをリストする
);
wp_list_pages( $args );
?>
exclude
excludeパラメータは、特定のページをリストから除外するために使用されます。除外するページのIDを指定することで、そのページをリストから省略します。以下の例ではIDが5、10、15のページがリストから除外されます。,で区切って複数のページIDを指定することもできます。
<?php
$args = array(
'exclude' => '5,10,15', // IDが5、10、15のページをリストから除外する
);
wp_list_pages( $args );
?>
include
includeパラメータは、上のexcludeと反対で特定のページのみをリストに含めるために使用されます。含めるページのIDを指定することで、そのページのみをリストします。以下の例では、IDが5、10、15のページのみがリストに含まれます。,で区切って複数のページIDを指定することもできます。
<?php
$args = array(
'include' => '5,10,15', // IDが5、10、15のページのみをリストに含める
);
wp_list_pages( $args );
?>
記述例
リストの見出しを隠す
title_liパラメータに空の値を入れると表示しなくすることができます。以下の例はページリストの上に見出しのテキストを表示しません。
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>リストの見出しを変える
ID が 2, 5, 15 のページだけを表示し、見出しのテキストを「会社概要」に置き換え、タグをh2に変更しています。
<ul>
<?php wp_list_pages('include=2,5,15&title_li=<h2>' . __('会社概要') . '</h2>' ); ?>
</ul>作成日順に並び替える
ページの作成日でソートし、その日付をページごとに表示します。
<ul>
<?php wp_list_pages('sort_column=post_date&show_date=created'); ?>
</ul>特定のページを除外する
excludeパラメータを使うと、ページリストから特定のページを除外することができます。
<ul>
<?php wp_list_pages('exclude=17,38' ); ?>
</ul>特定のページだけを含める
特定のページだけをリストに含めたい場合は、includeパラメータを使用します。
<ul>
<?php wp_list_pages('include=7,13,26,35&title_li=<h2>' . __('Pages') . '</h2>' ); ?>
</ul>サブページの表示
サブページがない場合でも、HTML タグ (<ul> や <ol>) が表示されます。
<ul>
<?php wp_list_pages('title_li=&child_of='.$post->ID.'&show_date=modified &date_format=$date_format'); ?>
</ul>表示中のページに子ページ (表示中のページを親ページと設定しているページ) が存在する場合のみリストを表示します。
<?php $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>