Loading…

WordPress カスタマイズ

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

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

このセッションは  IPv4  で確立しています

本日の人気記事BEST10

所要時間目安:2

This session is using  IPv4  is established in

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

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

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

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

今回は、

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

 

53


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

関連記事

RSSフィード画像

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

【決定版】プラグインなしでRSSにアイキャッチ画像を表示する2つの方法

この度は、度重なるRSSフィードにアイキャッチ画像を出力表示させる方法を連続して検証も兼ねて投稿してしまい申し訳ありませんでした。 何度か実際に実施してみてプラグインを使わないでRSSフィードにアイキ…

もっと読む

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

記事上に人気記事表示

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

WordPress4.5.2にアップデート・アップグレードし不具合はないか…。

WordPressの新バージョン4.5がリリースされて1ヶ月近く経ちました。そして、現在は4.5.2が最新バージョンになっています。 新バージョンが出たばかりというのは、おおむね何にしても何かしらの不…

もっと読む

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

カテゴリの人気記事イメージ画像アイキャッチ画像を丸くする

WordPress テーマ 伝えたいこと 備忘録

カテゴリの人気記事イメージ画像を丸くする方法

えーと…。 ここのところイメージ画像・アイキャッチ画像を丸くすることにこだわってしまっている私です…。 こんな感じで過去に3回もイメージ画像を丸くする方法を投稿しています。 関連記事のイメージ画像を丸…

もっと読む

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

横浜夜景

AdSense WordPress

WordPressでAdSense広告を任意の場所に表示させる方法

WordPressでAdSenseコードを任意の場所に挿入する方法です。 <!--more-->タグの後に必然的にアドセンス広告を表示させる方法と、 ショートコード化して任意の場所にアドセ…

もっと読む

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


おすすめの記事一部広告

    Multiplex 広告

アクセスランキング

目次に戻る

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

-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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください