sitemaps.org の仕様に準拠した sitemap を作成するプラグイン
General Plugin info | |
---|---|
作者: | Niels Leenheer + shizuki |
最新のバージョン: | 1.2 |
入手先: | http://japan.nucleuscms.org/bb/download/file.php?id=1086 |
ソース: | seositemaps_code |
フォーラム参照先: | http://japan.nucleuscms.org/bb/viewtopic.php?t=2916 |
セキュリティチェック: | N/A |
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?virtualpath=$1 [L,QSA]
もしくは
RewriteEngine on RewriteCond %{REQUEST_FILENAME} sitemap.xml RewriteRule ^(.*)$ index.php?virtualpath=$1 [L,QSA]
と記述する事で、アドレス欄に表示されるURLが変更される事無くアクセスが可能になります
FancyURL モードでの運用の場合、自動更新通知に使用される URL は
http://ブログのURL/オプションで指定した仮想ファイル名
となりますが、modRewrite が使用できない場合でも、.htaccess に
RedirectMatch /sitemap\.xml /index.php?virtualpath=sitemap.xml
(sitemap.xml はオプションで指定した仮想ファイル名)と記述する事で、サーバが自動的に
http://ブログのURL/index.php?virtualpath=オプションで指定した仮想ファイル名
にリダイレクトしてくれます([アドレス]欄に表示される URL はリダイレクト後のものになります)
また、FancyURL を使用しない場合は、自動更新通知の URL が
http://ブログのURL/index.php?virtualpath=オプションで指定した仮想ファイル名
になりますので .htaccess の記述は不要となります
インストール完了後、「Google ウェブマスターツール」や「Yahoo! Site Explorer」へ
http://ブログのURL/sitemap.xml
を登録します
各ブログのオプションで「更新を Google/Yahoo! に通知する」を「はい」にしておくと、アイテムを追加した時に自動で Google/Yahoo! に更新を通知します
(googleへの登録方法は割愛)
Yahoo! へ更新を通知する場合は、Yahoo.comでアプリケーションIDを取得する必要があります
このプラグインは「SiteMap」イベントを発生させます
このイベントを別のプラグインでフックすることで、NP_ExtraSkin(JP) 等で作ったページをサイトマップに加えることが出来ます
以下は NP_ExtraSkinJP のページをサイトマップに追加するプラグインのコードです
NP_AddExtraSkinSitemap.php の名前で保存してください
<?php class NP_AddExtraSkinSitemap extends NucleusPlugin { function getName() { return 'Add ExtraSkin page for GoogleSitemap'; } function getAuthor() { return 'Shizuki'; } function getURL() { return 'http://japan.nucleuscms.org/wiki/plugins:googlesitemap#tips_and_tricks'; } function getVersion() { return '1.0'; } function getDescription() { return 'Add ExtraSkin page for GoogleSitemap.'; } function getPluginDep() { return array('NP_GoogleSitemap', 'NP_ExtraSkinJP'); } function supportsFeature ($what) { switch ($what) { case 'SqlTablePrefix': return 1; default: return 0; } } function event_SiteMap(&$data) { global $CONF; $res = sql_query('SELECT * FROM ' . sql_table('plug_extraskin_jp') . ' WHERE url != "" ORDER BY title'); while ($row = mysql_fetch_array($res)) { $data['sitemap'][] = array ( 'loc' => $CONF['BlogURL'] . '/extra/' . $row['url'], 'priority' => '0.8' ); } } } ?>