プラグインなしでWordPressサイトにサイトマップ(sitemap.xml)を作成する方法

プラグインなしでWordPressサイトにサイトマップ(sitemap.xml)を作成する方法

スポンサードリンク
プラグインなしでWordPressサイトにサイトマップ(sitemap.xml)を作成する方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加


  • 大量にアクセスを呼び込みザクザク稼げてしまう21世紀最強の無料ツールを発見!!
  • このエントリーをはてなブックマークに追加

プラグインを使用せずに、WordPressサイトにサイトマップ(sitemap.xml)を作成する方法をご紹介いたします。

プラグインなしでWordPressサイトにサイトマップ(sitemap.xml)を作成する方法

適用しているテーマのfunctions.phpに以下を追加します。

functions.php
add_action('publish_post', 'create_sitemap');
add_action('publish_page', 'create_sitemap');
function create_sitemap() {
$sitemap_posts = get_posts(array(
'numberposts' => -1,
'orderby' => 'modified',
'post_type' => array('post','page'), // Add custom post types here
'order' => 'DESC'
));
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
foreach($sitemap_posts as $post) {
setup_postdata($post);
$postdate = explode(" ", $post->post_modified);
$sitemap .= '<url>'.
'<loc>'. get_permalink($post->ID) .'</loc>'.
'<lastmod>'. $postdate[0] .'</lastmod>'.
'<changefreq>monthly</changefreq>'.
'</url>';
}
$sitemap .= '</urlset>';
$fp = fopen(ABSPATH . "sitemap.xml", 'w');
fwrite($fp, $sitemap);
fclose($fp);
}

カスタム投稿タイプがある場合は、「post_type」の配列にカスタム投稿タイプ名を追加してください。例えば、custompostというカスタム投稿を追加する場合は、以下のようにします。

'post_type' => array('post','page','custompost'),

サイトマップ内にカスタム投稿タイプは含めなくても良いとか、固定ページは含めなくて良いという場合も、post_typeの値で調整します。

上記コードを追加した後は、記事が公開されるタイミングでサイトマップも更新されます。そのため、次に記事の公開処理が行われるまでは、サイトマップは作成されません。

何でもいいので記事を公開して、以下のアドレスにアクセスしてみましょう。サイトマップが表示されます。

http://yourdomain.com/sitemap.xml

「yourdomain.com」の部分は自サイトのドメインに置き換えてください。

あとがき

上記コードは、You Might Not Need That WordPress Pluginを参考にしました。

All in One SEO PackGoogle XML Sitemapsなどのプラグインを使えば、サイトマップは簡単に作成できますが、これだけのためにプラグインを入れるのはちょっと・・・という時はぜひ参考にしてください。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。