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

本サイトは、統合・リニューアル中です!

Plusers.netをご覧いただきありがとうございます。

本ブログ『https://plusers.net』は、『https://plusers.jp』と統合しフルリニューアルいたします。

リニューアルに伴い、ブログ記事の内容も新しい設計に見直しリニューアルしていきます。リニューアル完了済の記事は『Plusers.jp』の方に自動でリダイレクトします。

閉じる