サイトの全てのページへのリンクが設置されているサイトマップを設置することで、目的のページが見つけやすくなり、ユーザービリティを高めることができます。
更に、サイトマップは、検索エンジンのクローラーにページを認識してもらいやすくする効果も期待できるので、是非設置しておきましょう。
今回は、全ページを出力するサイトマップをWordPressにプラグインなしで追加する方法をご紹介します。
固定ページ用テンプレートを追加する
サイトマップを自動で出力するためには、PHPで各情報を出力必要があります。しかしながら、WordPressの通常の固定ページの編集画面からでは、PHPを出力することができません。
固定ページでサイトマップ用のPHPを使用するためには、直接テンプレート内に記述する必要があります。通常の固定ページテンプレートの中に記述してしまうと、全ての固定ページに反映されてしまうので、WordPressのテーマ内にサイトマップ専用の固定ページテンプレートを作成してPHPを記述していきましょう。
まずは、FTP用ソフトからWordPressのテーマにアクセスします。 ※WordPressの各テーマは、『ドメイン名/wp-content/themes/テーマ名』の位置に収納されています。
テーマフォルダにアクセスしたら、『page.php』をローカル上にコピーし、『pege-sitemap.php』という名前に変更して開いてください。
『pege-sitemap.php』を開いたら、1行目(ソースコードのtop)にWordPressに固定ページテンプレートとして認識させるためのコードを追加しましょう。
<?php /* Template Name: サイトマップ Template Post Type: page */ ?>
上記のコードを、テンプレートの先頭に加えるだけで固定ページテンプレートとして認識されるようになります。
サイトマップ用のコードを追加する
まずは、『pege-sitemap.php』のコードの中から『<?php the_content(); ?>』という、エディタのコンテンツ部分の内容を出力するためのソースコードを探し、下記の3つの中から自分の好みに合わせて選んで記述してください、
エディタに記述した内容をサイトマップの上に表示する
<?php the_content(); ?> ← サイトマップを追加するためのソースコードを記述
エディタに記述した内容をサイトマップの下に表示する
← サイトマップを追加するためのソースコードを記述 <?php the_content(); ?>
エディタには何も記述せずサイトマップだけを表示
『<?php the_content(); ?>』を削除し、サイトマップ用のコードを同じ位置に記述
サイトマップを追加する位置を設定したら、サイトマップ用のコードを追加しましょう。追加するコードは、下記の通りです。
pege-sitemap.phpに追記
<div class="site-map"> <p><a href="<?php echo home_url(); ?>">TOPページ</a></p> <?php $args=array( 'orderby' => 'name', 'order' => 'ASC' ); $categories=get_categories($args); foreach($categories as $category) { echo '<h2><a href="' . get_category_link( $category->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $category->name ) . '"' . '>' . $category->name.'</a></h2>'; ?> <ul> <?php global $post; $myposts = get_posts('numberposts=100&category=' . $category->term_id); foreach($myposts as $post) : setup_postdata($post); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul> <?php }; ?> <h2>固定ページ</h2> <ul> <?php wp_list_pages('title_li='); ?> </ul> </div>
上記のソースコードを追加することで、TOPページ・カテゴリごとの記事一覧・固定ページ一覧がを自動で呼び出すことができます。
一覧に出力するカテゴリ・記事の順番は、6行目の『’order’ => ‘ASC’』の記述を変更することで昇順と降順を選ぶことができます。
昇順(最低から最高へ) → ‘order’ => ‘ASC’
降順(最高から最低へ) → ‘order’ => ‘DESC’
また、『’order’ => ‘ASC’』の後にコンマをつけ、『category__not_in => カテゴリID』の記述を加えることで、挿入したくないカテゴリを除去することもできます。
サイトマップを固定ページとして設置する
テーマの作成が完了したら、WordPressテーマの中に『pege-sitemap.php』をFTPソフトでローカルからテーマフォルダの中にアップロードします。
アップロードが完了したら、WordPressの管理画面より固定ページ編集画面を開き、サイトマップ用の固定ページを作成しましょう。
『pege-sitemap.php』を追加したことで、右側にテンプレート欄が追加され、『サイトマップ』というテンプレートを選ぶことができるようになります。
テンプレートをデフォルトテンプレートからサイトマップに変更し、パーマリンクをsitemapに設定して記事を公開してください。
きちんと、『pege-sitemap.php』が反映されていれば、上記の画像のようにカテゴリごとの記事一覧と固定ページの一覧が出力されます。あとは、好みに合わせてstyle.cssでデザインを調整してください。
以上で、自動でWordPressへのhtmlサイトマップの作成は完了です!この機会に、ユーザビリティを向上させ検索エンジンのクローラーにページを認識させるためのサイトマップを設置してみてください!