Loading…

WordPress カスタマイズ

WordPressプラグイン使わずxmlサイトマップ作成方法

本日の人気記事BEST10

所要時間目安:2


WordPress カスタマイズ

プラグイン使わずxmlサイトマップ作成方法

これまでいくつかのブログにてブログを運営してきました。

  • FC2ブログ
  • 忍者ブログ
  • Blogger

など…。

今現在のメインはBloggerですが、
Bloggerには初めサイトマップ自体を作成する機能がなかったのでatomフィードと500記事ごと送信設定をする必要がありました。

現在はBloggerブログでも、

よく読まれている人気記事一覧

目次に戻る


スポンサーリンク

自動でxml形式のサイトマップが作成できるようになっています。

 

WordPressでもサイトマップを作成して、
旧ウェブマスターツール(現SearchConsole)に送信した方が、
SEO的には間違いなくいいです。

スポンサーリンク

アドセンス336pxPC閲覧記事下表示1つ目コード


しかし、

私は、変に多くのプラグインなどは入れたくない派なので、
なんとかならないかと行脚していました。

そしたら、
やっぱりありました。

function.php内に記載するのですが、

以下コードを記載すれば自分のWordPressブログ・サイトのxml形式のサイトマップが作成されます。

 

//Google XML サイトマップ作成
add_action("publish_post", "eg_create_sitemap");
add_action( "save_post", "eg_create_sitemap" );
function eg_create_sitemap() {
$postsForSitemap = get_posts( array(
'numberposts' => -1,
'orderby' => 'modified',
'post_type' => array( 'post' ),
'order' => 'DESC'
) );
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>';
$sitemap .= "\n" . '<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
$sitemap .= "\t" . '<url>' . "\n" .
"\t\t" . '<loc>' . esc_url( home_url( '/' ) ) . '</loc>' .
"\n\t\t" . '<lastmod>' . date( "Y-m-d", current_time( 'timestamp', 0 ) ) . $tempo . '</lastmod>' .
"\n\t\t" . '<changefreq>daily</changefreq>' .
"\n\t" . '</url>' . "\n";
foreach( $postsForSitemap as $post ) {
setup_postdata( $post );
$postdate = explode( " ", $post->post_modified );
$sitemap .= "\t" . '<url>' . "\n" .
"\t\t" . '<loc>' . get_permalink( $post->ID ) . '</loc>' .
"\n\t\t" . '<lastmod>' . $postdate[0] . '</lastmod>' .
"\n\t\t" . '<changefreq>daily</changefreq>' .
"\n\t" . '</url>' . "\n";
}
$sitemap .= '</urlset>';
$fp = fopen( ABSPATH . "sitemap.xml", 'w' );
fwrite( $fp, $sitemap );
fclose( $fp );
}

//robots.txtにサイトマップ指定
add_filter("robots_txt", "add_robots_txt");
function add_robots_txt($output) {
$url = site_url();
$output .= "Sitemap: $url/sitemap.xml";
return $output;
}

 

これで、

スポンサーリンク

プラグインは何も使わずにGoogleさんにサイトマップの送信ができるようになります。

アドレスは、
自分のサイトURLの後に/sitemap.xmlです。

一度、

SearchConsoleにてサイトマップの送信テストしてみるとわかると思います。

見事に成功と出るはずです。

そしたら、
そのまま追加してしまいましょう。

今回は、

サイトマップをプラグインを使わずに作成する方法でした。

 

WordPress, カスタマイズ」同じカテゴリ人気記事


アドセンス336pxPC閲覧記事下表示1つ目コード

おすすめの記事一部広告

関連記事

Table of Contents Plus(TOC+)目次CSS-min

WordPress カスタマイズ 伝えたいこと 備忘録

Table of Contents Plus(TOC+)目次のCSSカスタマイズ方法

本日、かの有名な目次作成プラグインであるTable of Contents Plus(TOC+)を導…

もっと読む

WordPressFTPダウンロードエラー設定変更

WordPress アップグレード 伝えたいこと 備忘録

WordPressFTPソフトでダウンロード出来ない場合の対処方法

WordPressのアップデート・アップグレードには必須と言っていいFTPソフト(FFFTPなど)で…

もっと読む

記事上に人気記事表示

Stinger6 WordPress カスタマイズ

WordPress,css外部ファイル化方法Stinger

昨今…。 といっても、 ここ数年ページ表示速度もSEO対策のひとつにもなります。 また、 検索してく…

もっと読む

関連記事内にインフィード広告挿入画像

AdSense AFFINGER4Pro STINGER PLUS+ Stinger6 Stinger7 WordPress カスタマイズ 伝えたいこと 備忘録

関連記事内(途中)にインフィード広告を入れる挿入方法

先月いや先々月の7月初旬頃かと思います。Google Adsenseにおいて、 インフィード広告や …

もっと読む

よろしかったらシェアよろしくお願いします。

おすすめ!!

世界中でNo.1のシャアを誇るAmazonでのお得なお買い物でお得をしよう!!ネット通販なので、もちろん24時間年中無休です。健康商品から食品、車カスタマイズ商品、大手家電メーカー商品やパソコンの自作サプライ商品、その他アマゾン・プライムでは映画やドラマなど多くの作品や番組を見ることができます。マスクなど衛生商品も今では必須アイテム。一番信用できて一番商品数の多いAmazonでの買い物が絶対にオススメ!!

おすすめ2

楽天による季節特集です。それぞれの季節ごとにお得なお買い物商品やお得な旅行商品、その他にもAmazon同様に国内最大の買い物ポータルサイトです。楽天をメインにお買い物されている方はポイントやSPUも貯まりさらにお得に!!楽天カードや宇佐美系列のガソリンスタンドでも楽天ポイントが今では貯まります。それらのポイントを貯めてお得にお買い物や旅行商品その他にもパソコンサプライや車カスタマイズ商品など楽天も充実しています。

-WordPress, カスタマイズ
-, , ,



この記事が良かったら
いいね!お願いします(#^.^#)

WordPressデビュー津々浦々の
最新情報をお届けします

言えないことはTwitterで!!



目次に戻る


コメントを閉じる
  1. raiki より:

    最近まで「All in One SEO Pack」を使っていたのですが、xmlサイトマップが「パースエラー」とか表示されて使い物にならなくなったので、ここに書かれた方法を試して
    http://自分のドメイン/sitemap.xml
    と直にURL入力しても
    「http://自分のドメイン/sitemap.xml/」と言うHTMLファイルに飛ばされて、xmlサイトマップとして機能しません。
    (ちなみに他のサイトマップ系プラグインを使っても同じような現象が起こって使い物になりません。)
    ちなみにテーマは「Simplicity2バージョン: 2.5.1」を使っています。
    他テーマに変える、プラグインの再インストール、怪しいプラグインの停止、どれも失敗しています。
    何か原因に心当たりはありませんでしょうか?

    • izu より:

      raiki様コメントありがとうございます。
      サイトマップをSearchConsoleで送信する際に入力するURLは自分のサイトのURLの後に「sitemap.xml」のみを入力して送信されていますでしょうか?

      一度、SearchConsoleでサイトマップのテスト送信をしてみてどうかの確認をされてみてはいかがでしょう?

      また、
      もしくはYoast SEOというプラグインでもxmlサイトマップは作成可能なので、上記でNGであればこちらにてもお試してみてどうかですが…。

      あとは、
      基本中のサイトマップ専用のプラグインで「Google XML Sitemaps」で、サイトマップを作成してもらいSearchConsoleにてテスト送信を実施後に送信してみてどうかですが…。

      まずは、順番にお試ししてみてくださいm(__)m。

      追伸)
      最後にこちらで紹介している子テーマのfunction.php内に記述するコードを、
      一応もう一度以下に記載しておきます。

      //Google XML サイトマップ作成
      add_action("publish_post", "eg_create_sitemap");
      add_action( "save_post", "eg_create_sitemap" );
      function eg_create_sitemap() {
      $postsForSitemap = get_posts( array(
      'numberposts' => -1,
      'orderby' => 'modified',
      'post_type' => array( 'post' ),
      'order' => 'DESC'
      ) );
      $sitemap = '';
      $sitemap .= "\n" . '' . "\n";
      $sitemap .= "\t" . '' . "\n" .
      "\t\t" . '' . esc_url( home_url( '/' ) ) . '' .
      "\n\t\t" . '' . date( "Y-m-d", current_time( 'timestamp', 0 ) ) . $tempo . '' .
      "\n\t\t" . 'daily' .
      "\n\t" . '
      ' . "\n";
      foreach( $postsForSitemap as $post ) {
      setup_postdata( $post );
      $postdate = explode( " ", $post->post_modified );
      $sitemap .= "\t" . '' . "\n" .
      "\t\t" . '' . get_permalink( $post->ID ) . '' .
      "\n\t\t" . '' . $postdate[0] . '' .
      "\n\t\t" . 'daily' .
      "\n\t" . '
      ' . "\n";
      }
      $sitemap .= '
      ';
      $fp = fopen( ABSPATH . "sitemap.xml", 'w' );
      fwrite( $fp, $sitemap );
      fclose( $fp );
      }

      //robots.txtにサイトマップ指定
      add_filter("robots_txt", "add_robots_txt");
      function add_robots_txt($output) {
      $url = site_url();
      $output .= "Sitemap: $url/sitemap.xml";
      return $output;
      }

      解決されれば良いのですが…。

  2. raiki より:

    念のために、上記のソースでも試しましたが、やはり「http://自分のドメイン/sitemap.xml/」と言うHTMLファイルに飛ばされて、xmlサイトマップとして機能しません。
    すでに「Yoast SEO」でも、バグで悪名高い「Google XML Sitemaps」でも生成を試みましたが、同じ現象が引き起こって全然解決しません。
    サーチコンソールでも

    型:
    エラー
    問題:
    サイトマップが HTML です
    説明:
    サイトマップが HTML ページです。サポートされている形式のサイトマップを使用してください。

    と言うエラー結果が弾き出されます。
    他に怪しい箇所などは見当たらないでしょうか?

    • izu より:

      raiki様。
      お力になれなくて申し訳ありません。

      raiki様のサイトURLがわかりませんので何とも言えませんが、
      W3 Total Cacheなどのキャッシュ系プラグインなどは使用されていませんか?

      キャッシュ系プラグインを使用されている場合において、
      時折「サイトマップがHTMLです」といったようなエラーがでるようです。

      パースエラー自体が構文エラーの意味ですので、
      エラー表記がどのようにされているのか詳細がわかりませんが、
      「"」や「;」が抜けていたりする場合などに通常は表示されるはずです。

      また、ブラウザでFirefoxを使用されている場合などにも表示されることがあるようです。
      (詳細はわかりませんがm(__)m)

      他にご提案策としましては、以下のサイトで確認してみるなどしても良いのかもしれません。

      http://validator.w3.org/
      http://validator.w3.org/feed/

      また、テーマにSimplicity2をご使用でありましたらサポートフォーラムがあると思います。

      もし、時間をおいても解決されないようでしたらSimplicity2のサポートフォーラムにご質問されてみても良いのではないでしょうか。

      Simplicity2作者のわいひら様が、かなり頻繁にサポートされていらっしゃるようです。

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください