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

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

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

今回は、

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

 

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

Multiplex 広告

おすすめの記事一部広告

おすすめ!!

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

おすすめ2

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

あなたにおすすめ

WordPressの文字コードUTF-8(BOMなし)

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

WordPressの文字コードはUTF-8で改行LFにて保存する方法

えーっと、この度WordPressのバージョンを4.6.1にバージョンアップしてから管理画面にjetpack4.3.2のダッシュボードを表示した際に、ちょっとしたWarningメッセージが表示されるよ…

もっと読む

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

AMP化対応スマホ画像

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

AMP化対応したらアクセス数増えるの減るの?減ったのは気のせい?

先日、一応記事としてAMP化対応方法に関して記載いたしました。 AMP化対応方法 AMP化対応完全版 しかし、初回のときはうまくAMP化対応できずその都度改善修正を行ってきました。 でも、AMP化対応…

もっと読む

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

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

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

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

先月いや先々月の7月初旬頃かと思います。Google Adsenseにおいて、 インフィード広告や 関連コンテンツ内広告 そして記事内広告 の3つが追加されてこれまでよりより使いやすくなりました。 (…

もっと読む

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

WordPressバックアップとドメイン移行複製方法

WordPress 伝えたいこと 備忘録

ドメイン移行(複製)方法、DupulicaterでスターサーバーwpblogフリーWPから

これまで無料でWordPressを使うことができたネットオウルのサービスであるフリーWPのwpblog.jpドメインのサービスが2022年3月31日で終了の案内がされました。他の無料サービスのフリーP…

もっと読む

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

ブログカード

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

WordPressブログカードEmbedで実装方法

WordPressがバージョン4.4になってから、 はてなブログのようなブログカード風のリンク先が、 エディタのビジュアル画面の投稿画面にURLを入力するだけでブログカードを実装できるようになりました…

もっと読む

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

モバイルファーストインデックス

インターネット カスタマイズ 伝えたいこと 備忘録 時事ネタ

モバイルファーストインデックスを導入予定、影響と対応は?

こんにちは!こんばんは!あはようございます!? とまぁ、あいさつは朝昼晩のどの時間帯にこの記事を拝見されても良いように3種類であいさつしましたポリポリ (・・*)ゞ。Googleが何やらモバイルファー…

もっと読む

Total264


アドセンス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作者のわいひら様が、かなり頻繁にサポートされていらっしゃるようです。

raiki へ返信する コメントをキャンセル

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

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