プラグイン不要!WordPressサイトに自動更新されるサイトマップを作る方法
  • プラグイン不要!WordPressサイトに自動更新されるサイトマップを作る方法
  • 記事公開:2017/07/21
  • 最終更新:-------------

プラグイン不要!WordPressサイトに自動更新されるサイトマップを作る方法

WordPressサイトに自動更新されるサイトマップを作る方法をご紹介します。プラグインを使わない方法です。一度実装すれば、コンテンツが増えるたび自動的に反映されます。WordPressに慣れていない方でも5分程度でサイトマップを実装できます。

この記事は約 24 分で読めます。

サイトマップとは?

初めに【サイトマップ】がどういったものなのか解説をしておきます。
以下の解説が【サイトマップ】を理解する上で非常に分かり易いのでご紹介します。

サイトマップとは、一言で表すと、サイト内のページリンクをまとめたページのことで、検索エンジンと検索ユーザー双方に、そのサイトにどうのようなページがあるのかを伝えるためのものだ。このサイトマップには非常に重要な役割があり、サイトのユーザビリティの改善や、内部SEOの向上にも密接に関わっている。サイトマップのSEO効果と理想的な作成方法より引用

設置する理由としては、以下の2つが挙げられています。

  • ユーザーが必要としているコンテンツを見つけ易くなる。ユーザビリティが向上する。
  • 検索エンジンのクローラーがサイト内のページを見落としなく巡回し易くなる。内部SEOの向上に繋がる。

書籍で例えるなら、目次の役割を果たすのがサイトマップです。
目次のない書籍なんてありませんよね!

同じようにサイトマップのないWEBサイトもおかしな話です。

サイトマップの設置は非常に簡単です。
このコンテンツで設置方法を解説していますので、サクッと設置してみましょう。

すぐにサイトマップを設置できますよ。

WordPressサイトに自動的に更新されるサイトマップを実装する方法

WordPressサイトにサイトマップを実装しようとすると、多くの方がプラグインを採用します。

プラグインはWordpressに様々な機能を簡単に実装できて確かに便利なのですが、個人的には必要最低限しか使いたくないと考えています。この辺りのことは、以下のコンテンツで詳しく解説しています。

2016-01-16
プラグインの落とし穴!プロがプラグインを最低限しか導入しない5つの理由
プラグインを最低限しか導入しない5つの理由プラグインは様々な機能を簡単に追加できる非常に便利な仕組みです。 WordPressで構築したサイトでプラグインを使っていないケースは珍しいのではないでしょうか?私もプラグインの存在を知ったころは、バシバシとプラグインを

サイトマップを実装する時、よく選ばれるプラグインと言えば【PS Auto Sitemap】です。
私も初めてWordpressでサイトを作った時は【PS Auto Sitemap】でサイトマップを実装していました。

ですが、サイトマップを実装するなら【PS Auto Sitemap】を使わなくても、テーマをカスタマイズする事で自動的に更新されるサイトマップページを実装することができます。

自動更新ですから、一度カスタマイズしたら後はほったらかしで大丈夫です。
もちろん、サイトマップページに特定のページを表示させないなどのカスタマイズも可能です。

これから、可能な限りコピペだけでサイトマップページを実装できる様に解説をしていきます。
10分程度の作業で実装できますので、ぜひ挑戦してみてください。

WordPressサイトにプラグインを使わずサイトマップを実装する方法

WordPressサイトにプラグインを使わずサイトマップを実装する方法をご紹介していきます。

手順1:サイトマップを表示するページを作る。

サイトマップを表示させるための固定ページを作成しましょう。
固定ページの新規作成方法は、以下のコンテンツを参照してください。

2015-01-06
WordPressの固定ページを新規作成する基本的な手順
WordPressの固定ページを理解しよう WordPressでページを作成する場合、「投稿」と「固定ページ」という方法があります。投稿に関しましては【WordPressの投稿と基本的な投稿手順】でも解説していますが、【投稿】で作成したページは、投稿した順番に時系列順に

タイトルは【サイトマップ】でOKです。

固定ページが作成できましたら、その固定ページのIDをメモしておきましょう。
このIDは後ほどの作業で必要になります。

固定ページのIDを調べる方法は、以下のコンテンツを参照してください。

2015-01-04
WordPressの投稿・固定ページ・カテゴリーなどのIDを調べる方法
記事などの個別IDを調べる方法 調査方法は至って簡単で、編集画面のURLを確認するだけです。 個別IDは編集画面のURLに含まれています。例えば、記事のIDを調べる方法は下記の通りです。IDを調べたい記事の編集画面にアクセスしてください。このと

固定ページを作成し、IDをメモしたら次の項目に進みましょう。

手順2:サイトマップを表示させるテンプレートファイルを作る。

まず、サイトマップを自動生成するテンプレートファイルを作成します。

サイトマップを自動生成するためにはPHPを使いますが、固定ページではPHPが使えません。
そこで、テンプレートファイルを作成し、ショートコードで固定ページに読み込ませます。

プラグインを使って、固定ページでもPHPが動作するようにする方法もありますが、今回はテンプレートファイルを作成して、ショートコードで固定ページに読み込ませる方法をご紹介します。

<ul id="sitemap">

<!– HOME –>
<li><a href=""></a></li>

<!– 固定ページ –>
<?php wp_list_pages('title_li=&exclude='); ?>

<!– 投稿(カテゴリー単位) –>
<?php
$categories = get_categories('parent=0&exclude=');
foreach($categories as $category) :
?>
<li><a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->cat_name; ?>
<span class="total-number">(全<span class="total-number2"><?php echo $category->count; ?></span>記事を見る)</span></a>
<ul>
<?php
$categorylist = array(
'cat' => $category->cat_ID,
'posts_per_page' => 2,
'post__not_in' => array(),
);
?>
<?php
query_posts($categorylist);
if (have_posts()) : while (have_posts()) : the_post();
?>
<li><a href=""><?php the_title(); ?></a></li>
<?php endwhile; endif; wp_reset_query(); ?>
</ul>
</li>
<?php endforeach; ?>

</ul>

上記のコードがサイトマップを自動生成するコードです。

このコードをメモ帳などにコピーして保存してください。
ファイル名は「sitemap」拡張子は「.php」としてください。

ファイル名は自由に決めて頂いても構いません。
この先の解説は「sitemap.php」としたものとして話を進めています。

ファイルを保存したら、テーマフォルダの【style.css】と同じ階層にアップロードします。
アップフォードはFTPを介すなどして行ってください。

アップロードできたら、ファイルのコードを一部書き直さなければなりません。

asefwefew

管理画面「外観」⇒「テーマの修正」⇒「sitemap.php」と進んでください。
「sitemap.php」は、「テーマの修正」の右側にある一覧の中にあります。

「sitemap.php」が開けたら、以下の【○○○】部分に調べた固定ページのIDを記述してください。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude='); ?>

例えば、投稿IDが【3】の場合は、以下の様な記述になります。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude=3'); ?>

この部分にサイトマップの固定ページIDを記述すると、サイトマップページにサイトマップページへのリンクが表示されなくなります。

サイトマップページにサイトマップページへのリンクが掲載されても意味がありません。
訪問者を迷わせるだけですので、サイトマップページへのリンクは表示されないようにします。

ファイルが修正できたら次の項目に進みましょう。

手順3:サイトマップを表示させるショートコードを作る。

続いて、先ほどアップロードしたテンプレートファイルを、最初に作成した固定ページに読み込むショートコードを作りましょう。

ショートコードってなに?と言う方は、以下のコンテンツを参照してください。

2016-03-11
WordPressのショートコードをマスターしよう!
ショートコードとはWordPresswでサイトを運営していると、投稿や固定ページで頻繁に使う定型文が出てきたり、投稿や固定ページでPHPの処理を行いたい場面に出くわすことがあるかと思います。そんな時に便利なのが、WordPressの【ショートコード】です。

ショートコードの知識がある方は、上記のコンテンツは飛ばしてください。

読むのが面倒な方も飛ばしてOKです。
知識がなくてもコピペでショートコードは作成可能です。

functions.phpに以下のコードをコピペします。

function site_map() {
ob_start();
get_template_part('site_map');
return ob_get_clean();
}
add_shortcode('site-map', 'site_map');

上記のコードをコピペしたら、先ほど作成したサイトマップの固定ページ(本文部分)に作成したショートコードを記述します。

【site-map】

※ 実際に記述する時、【】を[]に変更してください。

上記のショートコードを記述することで、サイトマップが表示されるようになります。

ショートコードを記述する時は、テキストエディタに切り替えてから記述してください。
ビジュアルエディタで記述してもショートコードは動作しません。

これで、自動更新されるサイトマップの設置作業は完了です。
最後にサイトマップが正常に表示されているか確認しましょう。

作成したサイトマップページにアクセスして、サイトマップが表示されていればOKです。

手順4:サイトマップを装飾する

今回ご紹介した方法で実装したサイトマップのHTMLは以下の様になります。

<ul id="sitemap">
<!-- HOME -->
<li><a href="">HOME</a></li>
<!-- 固定ページ -->
<li class="page_item">固定ページA</li>
<li class="page_item">固定ページB</li>
<!-- 投稿(カテゴリー単位) -->
<li><a href="">カテゴリーA<span class="total-number">(全<span class="total-number2">【カテゴリーAの記事数】</span>記事を見る)</span></a>
<ul>
<li><a href="">カテゴリーAの記事A</a></li>
<li><a href="">カテゴリーAの記事B</a></li>
<li><a href="">カテゴリーAの記事C</a></li>
</ul>
</li>
<li><a href="">カテゴリーB<span class="total-number">(全<span class="total-number2">【カテゴリーBの記事数】</span>記事を見る)</span></a>
<ul>
<li><a href="">カテゴリーBの記事A</a></li>
<li><a href="">カテゴリーBの記事B</a></li>
<li><a href="">カテゴリーBの記事C</a></li>
</ul>
</li>
</ul>

固定ページが2件、カテゴリーが2件、記事の件数が6件、そんなサイトの場合です。

サイトマップの装飾は、CSSなどから自由に行ってください。

サイトマップの表示内容をカスタマイズする。

知っていると便利なサイトマップのカスタマイズ方法を3つご紹介します。

投稿の表示件数を変更する

今回ご紹介したコードの場合、カテゴリーごとに表示される投稿の件数は2件となっています。
この件数を変更する場合は、以下の部分を編集してください。

<?php
$categorylist = array(
‘cat’ => $category->cat_ID,
‘posts_per_page’ => 2,
‘post__not_in’ => array(),
);
?>

上記の赤文字部分に表示させたい投稿の件数を記述します。
例:5件なら【5】と記述する。

今回ご紹介したコードでは、カテゴリー毎に表示する投稿の件数を変更することはできません。
全てのカテゴリーで表示できる件数を統一となります。

特定の投稿をサイトマップから除外する。

サイトマップに表示させたくない投稿がある場合、テンプレートファイル「sitemap.php」を編集することで特定の投稿を除外することができます。

除外したい投稿が1つの場合と複数の場合で記述方法が異なります。

除外したい投稿が1つだけの場合

「sitemap.php」から以下の部分を見つけてください。

<?php
$categorylist = array(
'cat' => $category->cat_ID,
'posts_per_page' => 2,
'post__not_in' => array(),
);
?>

赤文字で強調されているコードを、以下の様に書き換えます。

array( 投稿ID )

【投稿ID】の部分に、表示させたくない投稿の投稿IDを記述します。
例えば、投稿IDが3の場合は以下のように記述します。

array( 3 )

投稿IDの確認方法は、サイトマップを表示させる固定ページを作成した時の方法と同じです。

投稿IDを書き込んだら、サイトマップを表示してみましょう。
記述したIDの投稿がサイトマップから消えているはずです。

除外したい投稿が複数ある場合

「sitemap.php」から以下の部分を見つけてください。

<?php
$categorylist = array(
'cat' => $category->cat_ID,
'posts_per_page' => 2,
'post__not_in' => array(),
);
?>

赤文字で強調されているコードを、以下の様に書き換えます。

array( 投稿ID, 投稿ID )

【投稿ID】の部分に、表示させたくない投稿の投稿IDを記述します。
例えば、投稿IDが3と6の場合は以下のように記述します。

array( 3, 6 )

【,】で投稿IDを区切れば、いくつでも投稿IDを指定することができます。

投稿IDを書き込んだら、サイトマップを表示してみましょう。
記述したIDの全ての投稿がサイトマップから消えているはずです。

特定のカテゴリーに属する全ての記事をサイトマップから除外する。

特定の投稿をサイトマップから除外するのではなく、特定のカテゴリー自体(分類された投稿を丸ごと)を除外する方法です。

こちらも、除外したいカテゴリーが1つの場合と複数の場合で記述方法が異なります。

除外したいカテゴリーが1つだけの場合

「sitemap.php」から以下の部分を見つけてください。

<!– 投稿(カテゴリー単位) –>
<?php
$categories = get_categories(‘parent=0&exclude=’);
foreach($categories as $category) :
?>

赤文字で強調されているコードを、以下の様に書き換えます。

<!– 投稿(カテゴリー単位) –>
<?php
$categories = get_categories(‘parent=0&exclude=カテゴリーID’);
foreach($categories as $category) :
?>

【カテゴリーID】の部分に、表示させたくないカテゴリーのIDを記述します。
カテゴリーIDの調べ方は、以下のコンテンツを参照してください。

2015-01-04
WordPressの投稿・固定ページ・カテゴリーなどのIDを調べる方法
記事などの個別IDを調べる方法 調査方法は至って簡単で、編集画面のURLを確認するだけです。 個別IDは編集画面のURLに含まれています。例えば、記事のIDを調べる方法は下記の通りです。IDを調べたい記事の編集画面にアクセスしてください。このと

仮に除外したいカテゴリーIDが【3】の場合は、以下の様な記述になります。

<!– 投稿(カテゴリー単位) –>
<?php
$categories = get_categories(‘parent=0&exclude=3’);
foreach($categories as $category) :
?>

除外したいカテゴリーが複数ある場合

「sitemap.php」から以下の部分を見つけてください。

<!– 投稿(カテゴリー単位) –>
<?php
$categories = get_categories(‘parent=0&exclude=○○○’);
foreach($categories as $category) :
?>

赤文字で強調されているコードを、以下の様に書き換えます。

<!– 投稿(カテゴリー単位) –>
<?php
$categories = get_categories(‘parent=0&exclude=カテゴリーID, カテゴリーID’);
foreach($categories as $category) :
?>

【カテゴリーID】の部分に、表示させたくないカテゴリーのIDを記述します。
仮に、除外したいカテゴリーIDが【3】と【5】の場合は、以下の様な記述になります。

<!– 投稿(カテゴリー単位) –>
<?php
$categories = get_categories(‘parent=0&exclude=3, 5’);
foreach($categories as $category) :
?>

【,】でカテゴリーIDを区切れば、いくつでもカテゴリーIDを指定することができます。

特定の固定ページをサイトマップから除外する。

特定の固定ページをサイトマップから除外したい場合です。
基本は既に解説したサイトマップページをサイトマップから除外するのと同じと考えてください。

除外したい固定ページが1つだけの場合

「sitemap.php」から以下の部分を見つけてください。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude='); ?>

赤文字で強調されているコードを、以下の様に書き換えます。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude=投稿ID'); ?>

除外したい固定ページの【投稿ID】が【3】の場合は、下記の様に書き換えます。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude=3'); ?>

このコンテンツを頭から読んで作業をしている場合、この部分には、既にサイトマップページの投稿IDが記述されているかと思います。そこに別の投稿IDを加える場合は、次の項目を参照してください。

除外したい固定ページが複数ある場合

「sitemap.php」から以下の部分を見つけてください。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude='); ?>

赤文字で強調されているコードを、以下の様に書き換えます。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude=投稿ID, 投稿ID'); ?>

除外したい固定ページの【投稿ID】が【3】と【6】の場合は、下記の様に書き換えます。

<!-- 固定ページ -->
<?php wp_list_pages('title_li=&exclude=3, 6');?>

【,】で投稿IDを区切れば、いくつでも投稿IDを指定することができます。

投稿IDを書き込んだら、サイトマップを表示してみましょう。
記述したIDの全ての固定ページがサイトマップから消えているはずです。

まとめ

WordPressサイトに自動更新されるサイトマップを作る方法をご紹介しました。

プラグインを使わずにサイトマップを実装する方法です。
プラグインを増やしたくない、ほったらかしでサイトマップを更新したい方は使ってみてください。

駆け足で解説しましたので、不明な点があるかもしれません。
そんな場合は、お問い合わせからご連絡をください。
個別に回答をさせていただきます。

この記事が気に入ったら【いいね】しよう!

Wordpressサイトのカスタマイズで
お困りではありませんか?

あなたのWordpressサイトを、ご希望に沿ってカスタマイズいたします。
次に該当する方は、お気軽にご相談下さい。

  • Wordpressサイトをカスタマイズしたいが、やり方が分からないで困っている。カスタマイズの知識が豊富な人に任せたい。
  • Wordpressサイトをカスタマイズしたいが、自分でカスタマイズする暇がない。カスタマイズが得意な人に丸投げしたい。
  • Wordpressサイトをカスタマイズしてみたが、上手くカスタマイズできなかった。カスタマイズ経験が豊富な人に任せたい。
  • Wordpressサイトをカスタマイズしてみたら、バグが発生して困っている。正常に動作するように正しくカスタマイズしてほしい。

一つでも該当する方は、以下のリンクからチェックしてみてください。

詳細を確認する

著者:とあるWEBディレクター

岡山在住のWebディレクターです。Wordpressを使ったWEBサイト制作を中心に7年間ほど活動させていただいています。

Wordpress関連の記事でお役に立てれば幸いです。

【関連記事】あなたが興味のありそうな関連記事をご紹介します。

  • 不要なデフォルトのウィジェットを非表示にしてスッキリさせる方法

    2015-01-12

    WordPressのデフォルトウィジェットで不要なウィジェットを非表示にするカスタマイズ方法をご紹介します。ウィジェットは便利な機能ですが、デフォルトの中には利用しないものも含まれています。使わないウィジェットは非表示にして管理画面をスッキリとさせましょう。 記事を読む

  • WordPressで記事URLから記事タイトルを取得する方法

    2017-07-19

    WordPressで記事URLから記事タイトルを取得する方法をご紹介します。記事URLから記事タイトルが取得できないで困っている方は必見です。たった1行のコピペでお悩みを解決します。 記事を読む

  • プラグインは不要!WordPressサイトに人気記事一覧をパパッと設置しよう。

    2015-11-10

    WordPressサイトに人気記事一覧をパパッと設置する方法をご紹介します。プラグインは使いません。人気記事一覧を簡単に設置したい方には必見の内容です。3分後にはあなたのサイトに人気記事一覧が設置できてしまします。 記事を読む

  • WordPressのカスタムメニューでアクティブページだけ装飾を変える方法(カレント表示)

    2016-03-12

    WPのカスタムメニューでアクティブページだけ装飾を変える方法をご紹介します。現在表示されているページがグローバルメニューの中にある場合、そのメニュー部分だけ装飾を変えることができれば、ユーザビリティの向上にも繋がります。3分だけコンテンツを読んでみてください。 記事を読む

  • WordPress管理者必見!アクセス解析からサイト管理者を除外する方法

    2015-11-14

    WordPressサイトに設置したアクセス解析からサイト管理者を除外する簡単な方法をご紹介します。このコンテンツで紹介している方法ならコピペだけで管理者をアクセス解析から除外できます。興味のある方は、3分間だけコンテンツを見てください。 記事を読む

コメントを残す


(必須)

CAPTCHA