Loading…

記事内にプロモーションが含まれています。

WordPress カスタマイズ

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

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

所要時間目安:2

This session is using  IPv4  is established in

この記事は2015年12月28日のものです。現在は状況が異なる可能性がありますのでご注意ください。

WordPress カスタマイズ

目次に行く・戻る

メルカリ招待コード:

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

  • 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にてサイトマップの送信テストしてみるとわかると思います。

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

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

今回は、

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

 

あなたにおすすめな関連記事

Stinger6右サイドバー上に別広告

AdSense Stinger6 WordPress カスタマイズ

Stinger6右サイドバー上に別広告を表示する方法

はぁ…。やっと、できた!!って何がという感じですが、 とても使い勝手の良いテーマStingerの最新版Stinger6を選ばせて頂いて、四苦八苦の日々が続いていたわけですが、アドセンス広告は1ページ当…

もっと読む

インフィード広告アドセンス

WordPress日本語化

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

WordPressを日本語化する方法と設定は実は1秒でできる…。

先日(昨日)WordPressのバージョンをやっとこさ4.5.2の最新版にしました。なぜか?それは一番はセキュリティ上の問題の解消ですが、他にもサイトのページ表示速度が、もしかしたら速くなるかもなんて…

もっと読む

インフィード広告アドセンス

WordPress

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

サイドバーのウィジェットにタイトルを表示させずに追加する方法

テーマにもよりますが、サイドバーにデフォルト(はじめから)で追加されている状態のウィジェットがあると思います。 もちろん、サイドバーにウィジェット追加用に多くのテーマは作られていると思います。 ですが…

もっと読む

インフィード広告アドセンス

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

パーマリンクURLを自動一括リダイレクト方法htaccessにて

サイトやホームページのURLはパーマリンクURLといい唯一無二のアドレスになります。そのサイトURLのパーマリンク設定URLをサイト移転などをした際に、記事数やホームページのURL数が多いとリダイレク…

もっと読む

インフィード広告アドセンス

カエレバのデザイン選択画像

カスタマイズ カスタマイズ ツール 伝えたいこと

カエレバ・ヨメレバのカスタマイズCSS表示でズレないようにする方法

カエレバ・ヨメレバのサービス提供者であるかん吉さんより、正式にサービス提供方法?がAmazonから国内の市場に協力?することやAmazonのPA-APIの仕様変更?により、楽天(国内)メインに仕様変更…

もっと読む

インフィード広告アドセンス

WordPress

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

WordPress記事中最初のH2見出し前に広告を自動挿入方法

WordPressで記事の途中に思い通りの広告などをショートコードなどによって、 挿入する方法はいくつかあります。 今回は、 記事中の始めのh2タグの前にウィジェットとして追加して自動的に表示する方法…

もっと読む

WordPress, カスタマイズ」同じカテゴリーの記事一覧

おすすめの記事一部広告

お小遣い稼ぎにアンケート。

Multiplex 広告

おすすめ!!

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

おすすめ2

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

Total325


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

目次に戻る

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

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

目次に戻る

目次に戻る


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

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

    • danna より:

      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 ページです。サポートされている形式のサイトマップを使用してください。

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

    • danna より:

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

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

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

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

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

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

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

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

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

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

comment

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

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