テンプレートタグ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 } ?>