1. TOP
  2. wordpressテーマカスタマイズ
  3. WordPrssに全記事をまとめたhtmlサイトマップをプラグインなしで作成する

WordPrssに全記事をまとめたhtmlサイトマップをプラグインなしで作成する

サイトの全てのページへのリンクが設置されているサイトマップを設置することで、目的のページが見つけやすくなり、ユーザービリティを高めることができます。

更に、サイトマップは、検索エンジンのクローラーにページを認識してもらいやすくする効果も期待できるので、是非設置しておきましょう。

今回は、全ページを出力するサイトマップを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サイトマップの作成は完了です!この機会に、ユーザビリティを向上させ検索エンジンのクローラーにページを認識させるためのサイトマップを設置してみてください!