WordPressで独自のサイトマップページを作成する方法

  • 9590
    views
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

サイトナビゲーション上、またSEO上、少しでも効果があるのであれば「サイトマップページ」は置かないよりは置いた方が良いかな、

ということで、今回はプラグインを利用せずに、自作でサイトマップページを設置してみました。

すごく簡単なページではございますが、当ブログにおけるサイトマップページの記述例を以下にご紹介します。※マークアップなどはサイトに適した形で変えていただければ結構です。

投稿記事の取得

固定ページ、月刊アーカイブス、カテゴリ、投稿記事一覧の表示を例に、簡単なソースコード例をご紹介します。
<h2>固定ページ</h2>
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>

<h2>月刊アーカイブス</h2>
<ul>
<li><?php wp_get_archives('type=monthly&format=custom&before=<li>&after=</li>'); ?></li>
</ul>

<h2>カテゴリ</h2>
<ul>
<?php wp_list_categories(); ?>
</ul>

<h2>投稿記事一覧</h2>
<ul>
<?php get_archives('postbypost','','custom',','); ?>
</ul>
※アーカイブスは種類を選べるのですが、当ブログは月間(monthly)にしています。


固定ページの取得

固定ページの場合、当初はプラグインを使用していましたが、登録されている固定ページを表示する(親子カテゴリの表示・特定カテゴリの除外可) の記事でも紹介しております通り、今ではテンプレートタグを利用して表示させております。

ただ、前回の記事と以下のソースコードが異なりますが、これは当ブログの場合ですとページが親カテゴリ(トップレベル)のものしかなく、カテゴリ数も少なく…、表示制御かける必要もなく…、またブログページへの表示方法もデフォルトのリスト形式をそのまま使用している…などのためです。

手抜きではないんですが、シンプルに表示させているだけですので、あらかじめご了承願います。
<?php wp_list_pages('title_li='); ?>

ただ、前回の記事でも紹介しております通り、親子のカテゴリで表示制限をかけたり特定のページを除外するなどの場合は、以下のようなソースコードをベースにパラメータの追記、またはCSS による装飾を行うことでカスタマイズを行うと良いかと思います。
<?php
$output = wp_list_pages('echo=0&title_li=<h2>Top Level Pages </h2>' );
if (is_page( )) {
  $page = $post->ID;
  if ($post->post_parent) {
    $page = $post->post_parent;
  }
  $children=wp_list_pages( 'echo=0&child_of=' . $page . '&title_li=' );
  if ($children) {
    $output = wp_list_pages ('echo=0&child_of=' . $page . '&title_li=<h2>Child Pages</h2>');
  }
}
echo $output;
?>
簡単に自作のサイトマップページをブログ内に設置出来てしまいました♪

以下のページでテンプレートタグやパラメータ一覧が参照できますので、もっと踏み込んだカスタマイズをされる方は、是非ご参照ください。


  • 9590
    views
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

この投稿と関連する記事一覧

この記事に関するコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください