サイトの全てのページへのリンクが設置されているサイトマップを設置することで、目的のページが見つけやすくなり、ユーザービリティを高めることができます。
更に、サイトマップは、検索エンジンのクローラーにページを認識してもらいやすくする効果も期待できるので、是非設置しておきましょう。
今回は、全ページを出力するサイトマップを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サイトマップの作成は完了です!この機会に、ユーザビリティを向上させ検索エンジンのクローラーにページを認識させるためのサイトマップを設置してみてください!