[WP覚書]サイトマップを固定ページで自動出力できるプラグイン『PS Auto Sitemap』で自動更新できるツリー上のサイトマップを作成

2013年12月3日

通常サイトからWPサイトへの変換作業をやってます。
そのサイトは期間限定のページや、申し込みを閉めきったらクローズするページなどがあるので、今までもサイトマップの扱いが面倒だったのですが、このプラグインを使えば自動更新できるかも!と導入してみました。

ここで紹介されてる『PS Auto Sitemap』というプラグインです。
サイトマップを自動生成してくれるWordpressプラグイン | necozine

利点としては、固定ページの新規投稿や非公開操作に合わせて、こちらも勝手に更新されるということにつきますねー。

並ぶ順番は「順序」通り

20131203追記
サイトマップの並ぶ順番は、記事の「ページ属性」の「順序」に左右されます。
あらかじめ順番通りに並べておきましょう。
ちなみに自分は、あとから途中にも入れられるように、1、3、5、7、9と奇数並べにしてます。

プラグイン設定ページでサイトマップを表示する記事IDを入力

まず最初の設定として、PS Auto Sitemapの設定ページでサイトマップを表示する記事を入れないと表示されないよ。記事のIDを入れます。

本文の記述

サイトマップページに以下の記述を入れる

<!-- SITEMAP CONTENT REPLACE POINT -->

タイトルが短いと真ん中寄せにしたくなるので、その時はこんな感じで(ーー;
align centerだとテキストだけ真ん中になっちゃうので注意。

<div style="margin-left:100px;"><!-- SITEMAP CONTENT REPLACE POINT --></div>

トップページを手打ちにする場合

トップページの表示がサイト名そのままになってしまってヘンなので、設定から「ホームページの出力」のチェックをはずして表示させないようにして、最上部にトップページへのリンクを付けました。

<a href="トップページのURL">トップページ</a><div id="sitemap"><!-- SITEMAP CONTENT REPLACE POINT --></div>

ついでに、PS Auto sitemapのスタイルを採用した時でトップページを手打ちにしたときの全記述。
「付箋」スタイルで確認しました。他のスタイルだとおそらく ulのclass名が変わります。

<div style="margin-left:100px;">
<ul id="sitemap_list" class="sitemap_disp_level_0">
<li class="home-item"><a href="http://XXXXXX.com/">トップページ</a></li></ul>
<!-- SITEMAP CONTENT REPLACE POINT -->
</div>

自ページへのリンクは削除

また、サイトマップページにサイトマップへのリンクがあるとヘンなので「除外記事」項目にサイトマップ記事のIDを入れました。「サイトマップを表示する記事」項目と同じIDすね。

スタイルの選択

20120418追記
下にツリー型スタイルの導入方法も書きましたが、再び設置しようと思ったら、スタイルが結構入ってて、どれも良い感じ。
真面目なサイトであれば「シンプル」とか「ドキュメントツリー」とか、ちょっとくだけた感じのサイトだったら「蛍光ペン」とか「CUBE」とか好みです。
これだとツリー型の最下部の処理も気にしなくていいしね~。

ツリー型スタイルの導入

『PS Auto Sitemap』で出力されるソースはこんな感じ。

<ul id="sitemap_list" class="sitemap_disp_level_0">
<li class="page_item page-item-4"><a href="http://hogehoge.com/guide/">大会案内</a></li>
<li class="page_item page-item-6"><a href="http://hogehoge.com/place/">会場案内</a></li>
<li class="page_item page-item-8"><a href="http://hogehoge.com/course/">コースガイド</a>
<ul class='children'>
	<li class="page_item page-item-10"><a href="http://hogehoge.com/course/5km/">コースガイド~5km~</a></li>
	<li class="page_item page-item-12"><a href="http://hogehoge.com/course/10km/">コースガイド~10km~</a></li>
	<li class="page_item page-item-14"><a href="http://hogehoge.com/course/half/">コースガイド~ハーフ~</a></li>
</ul>
</li>
・・・

いつも使っているツリー型のCSSを、PS Auto Sitemapが吐き出すCSSに合わせて修正しました。

/************************************************
* Sitemap * 
************************************************/
div.sitemap {
margin-left: 50px;
}

ul li.home {
list-style-type: none;
}

ul.tree {
margin: 0 0 0 1em!important;
padding: 0!important;
list-style: none!important;
}
ul.tree ul {
margin: 0 0 0 1em!important;
padding: 0!important;
}
ul.tree li {
margin: 0!important;
padding: 0 0 0 16px!important;
background-image: url(blogimg/tree_lst.gif);
background-repeat: no-repeat!important;
list-style: none!important;
}
ul.tree li.tree_end {
background-image: url(blogimg/tree_end.gif);
list-style: none;
}

↓↓↓

/************************************************
* Sitemap * 
************************************************/
div#sitemap {
margin-left: 50px;
}

ul li.home {
list-style-type: none;
}

ul.sitemap_disp_level_0 {
margin: 0 0 0 1em!important;
padding: 0!important;
list-style: none!important;
}
ul.sitemap_disp_level_0 ul {
margin: 0 0 0 1em!important;
padding: 0!important;
}
ul.sitemap_disp_level_0 li {
margin: 0!important;
padding: 0 0 0 16px!important;
background-image: url(images/custom/tree_lst.gif);
background-repeat: no-repeat!important;
list-style: none!important;
}
ul.sitemap_disp_level_0 li.page-item-14,ul.sitemap_disp_level_0 li.page-item-170,ul.sitemap_disp_level_0 li.page-item-184 {
background-image: url(images/custom/tree_end.gif);
list-style: none;
}

手間取った点としては、
ツリー型ではリストのlastクラス指定でリストの一番下がL字型の画像になるのですが、PS Auto Sitemapで出力されてる場合、lastクラス指定ができないので、スタイルにリストの最後に来るページのIDを指定しないといけないです。

ul.tree li.tree_end {
background-image: url(blogimg/tree_end.gif);
list-style: none;
}

↓ ↓ ↓

ul.sitemap_disp_level_0 li.page-item-14,ul.sitemap_disp_level_0 li.page-item-170,ul.sitemap_disp_level_0 li.page-item-184
background-image: url(blogimg/tree_end.gif);
list-style: none;
}

この場合、この指定したページがページの追加などでリストの最後でなくなった場合は、当然修正しないといけないです。が、今回の場合は動かなさそうなページなので、ま、ま(^^;

類似プラグインなど。

プラグインを使わずサイトマップページを作る方法

お手軽WordPress Tips:プラグインを使わず、簡単なコードでシンプルなサイトマップを作成する – かちびと.net
何らかの事情でプラグインを使えない場合によいかもですね。
ここでもプラグインを使う場合はPSを推奨されてはいますが。

類似プラグイン:Dagon Design Sitemap Generator

利用したことはありませんが、ググってる時にいくつか見かけたのでメモ。
サイトマップ作成プラグイン Dagon Design Sitemap Generator | WordPressで企業ウェブサイト作成・商用ホームページ制作 WordPress Go Go

今使ってる「Google XML Sitemap」と併用した時に不具合があるらしい。
スラッグをかぶらせるといけないみたい。
サイトマップ作成プラグイン「Dagon Design Sitemap Generator」導入方法とその設定。(「Google XML Sitemap」と併用した場合) | うつしよ

「Dagon Design Sitemap Generator」 と 「Google (XML) Sitemaps Generator for WordPress」 を併用して使用した場合、「Dagon Design Sitemap Generator」 のページスラッグを 「sitemap」 にしてしまうと、サイトマップが表示されなくなるようだ。

WordPress

Posted by ponnao