GoogleSiteMap_XML 0.1 をMODxで利用
Etomite用スニペットGoogleSiteMap_XML 0.1 をMODxで利用
初出:2007年03/31 更新:2007年03/31
GoogleSiteMap_XMLとは
Etomite(MODxの前身)用にNutt氏によって書かれた、 指定ID以下の全ドキュメントをGoogle SitemapのRSSとして書き出すスニペットです。
GoogleSiteMap_XMLの入手・修正
Etomiteから、 GoogleSiteMap_XMLを入手します。 (リファラで弾かれるので一旦EtomiteにアクセスしてからURL入力してください)
このまま利用すると、メニュー非表示の項目までサイトマップに含めてしまうので、以下の修正を加えます。
129-131行目付近
検索対象外のページと、メニュー非表示のページを除外する:
$children = $funcEtomite->getActiveChildren($listParent, "menuindex", "ASC", "id, editedon");
foreach($children as $child)
{
$id = $child['id'];
$url = "http://www.yoursite.com/[~".$id."~]";
$date = $child['editedon'];
$date = date("Y-m-d", $date);
↓
$children = $funcEtomite->getActiveChildren($listParent, "menuindex", "ASC", "id, editedon, searchable, hidemenu");
foreach($children as $child)
{
if ($child['searchable'] == 0) continue;
if ($child['hidemenu'] != 0) continue;
$id = $child['id'];
$url = "http://www.yoursite.com/[~".$id."~]";
$date = $child['editedon'];
$date = date("Y-m-d", $date);
さらに改造
上記の変更で正しくXMLを吐くようになりますが、http://www.yoursite.com/を自分のサイトのURLに変える必要があったり、blogの記事(大抵メニューには非表示)などをサイトマップに含めるオプションがなかったりとオリジナルのスニペットには不満な点が多いので、さらに数ヶ所変更を加えた物を置いておきます。 変更点は次の通りです。
- http://www.yoursite.com/ではなく正しいURLを自動で取得
- メニュー表示・検索対象によるフィルタリングをパラメータで指定(&removeNoSearchPage, &removeNoMenuPageに1/0指定)
- 指定IDの子孫ページは含めるオプション(&forceAddDescendants にコンマ区切りのIDリスト)
GoogleSiteMap_XML v0.1
参考リンク
- スニペット「GoogleSiteMap_XML」の改造について[MODx公式フォーラム]
- Google Sitemap生成スニペット[CMS-Laboフォーラム]
- GoogleSiteMap_XML[Etomite] (リファラで弾かれるのでEtomiteからどうぞ)
