ルクセリタス カスタマイズ─404とサイトマップ設定でつまずいたこと

2018年10月28日ワードプレス,カスタマイズ

404とサイトマップの設定でつまずいたこと

最初に404 not foundのページ作成でつまずいたことから。
あたりまえのことなのかもしれませんが、ネットで調べても最後の詰めの所をどうすればいいのか分かりませんでした。ページの内容をどうするのかという記事はありますが、それを「公開?」設定する時の手順がよく分かりません。404 not foundのページ設定の仕方で迷ってしまったので、同じように迷っている人もいるかもしれないと思い投稿してみました。

この記事を書いた頃は、ここに書いた方法でいけたのですが、いつの頃からかファイルの中身そのものが全部削除されて無くなってしまう現象が発生するようになりました。原因を調べるのも面倒なので、ほったらかしにしています。ごめんなさい。

404 not foundページの設定

404 not foundのページを作ろうと思い、ネットでルクセリタス関連のカスタマイズ記事を参考にして、投稿ページを使ってシンプルなものを作りました。投稿と同じ要領だから作成自体は簡単でしたが、404 not foundのページを「公開」扱いにするのも変だし、インデックスされる必要ないしと思い最初「非公開」にしました。どう表示されるのか確認しようと思ってサイトのURLに適当なアルファベットをつけて開くと、404 not foundの文字の前に「非公開:」の文字が。

ものセラ 404 not found ページ

「非公開」ってつくのもおかしいので「公開」にしてno indexにすればいいのかなと思ったのですが、no indexにしてもサイトマップには404 not foundのページが記載されます。サイトマップに404 not foundのページを載せても意味ないので、特定のページをサイトマップに載せない方法ってあったっけと思案していたら、Luxeritasのカスタマイズで「その他」の中に「404 Not Found ページ」の設定個所を見つけました。

ルクセリタス カスタマイザー 404ページ

固定ページの中から404 Not Found ページにしたいものを選べるようです。
ですが、サイトマップからは消せません。

サイトマップに載せたくない記事の消し方

このままではサイトマップから消せないので、次のように処理しました。
「外観」から「テーマエディター(テーマの編集)」で右上の「編集するテーマを選択」から子テーマではなく、親テーマの「 Luxeritas」を選びます。選択して右サイド「テーマファイル」の中段の下よりに「pages」というファイルがあります。クリックすると「Sitemap 固定ページテンプレート」が出てきます。

ものセラ、テーマの編集、固定ページテンプレート

開くと 46行目➜アップデートの度に微妙に変わります。
wp_list_pages('title_li=’); の exclude= の後に記事IDの数字を入力しました。
このブログでは ID=3338 だったので、この数字を入力して、
wp_list_pages( 'title_li=&exclude=3338’ );
これでサイトマップには表示されません。他にも表示したくないページがあれば続けて「, 」でIDの数字を入れていけばいいようです。

記事IDの確認方法は簡単です。「投稿一覧」から記事タイトルにカーソルを合わせたら画面左下にURLが表示されます。後半部分のpost=3338&action=editの出てきた数字がIDです。

アップデートされたLuxeritas 3.13.0で確認したところsitemap.phpの内容が変更されていました。 41行目にあったのが46行目になってwp_list_pages( 'title_li=’ );になっていました。
この部分、親テーマで対応していたのでアップデートの度にsitemap.phpの内容を変更しなければいけません。子テーマで子テーマ用のsitemap.phpを作ればいいのに、、、
ま、とにかく46行目を wp_list_pages( 'title_li=&exclude=3338’ ); にとりあえずしておきました。

ものセラ、テーマの編集、サイトマップ

「送信された URL に noindex タグが追加されています」というお知らせが

『Search Console により、貴サイトに影響する「インデックス カバレッジ」関連の問題が新たに 1 件検出されました』
『送信された URL に noindex タグが追加されています』というお知らせが届きました。

調べてみるとサイトマップのページが noindex に設定されていることが原因の様でした。サイトマップのページを noindex に設定した記憶はないし、サイトマップはプラグインの XML-Sitemap で設定済みと思っていました。それにサイトマップは以前使っていたテーマの時作ったものをそのまま流用していたのでルクセリタステーマでやり直したところでした。ほっておいてもいいかなとも思いましたが、この際キチンと処理しておくことにしました。最初にしたことはXML-Sitemap の設定にある「基本的な設定」の「HTML形式でのサイトマップを含める」のチェックを外しているかどうか確認することでした。

「HTML形式でのサイトマップを含める」のチェックを外す

このやり方はネットで調べてもよく見かける方法ですが、これだけではうまくいきません。カスタムフィールドで index するように設定しても変更できず noindex のままです。

ものセラ、サイトマップ no index

XML-Sitemap で特定の記事をインデックスさせない方法

となると、プラグインの XML-Sitemap でインデックスさせないようにするのが手っ取り早いかな思い XML-Sitemap の設定にある「Excluded Items」の「投稿 (個別記事) を含めない」にサイトマップのID を追加しました。

ものセラ、XMLsitemapインデックス除外

Excluded Items は除外するアイテムのことで、他にも除外したい投稿記事や固定記事があればコンマつなぎで入れていけばインデックスされません。わたしはサイトマップ、プライバシーポリシー、404 not foundのページをインデックスさせないようにしました。ページ毎にカスタムフィールドで no index 設定するより簡単かもしれません。

サイトマップ、問題が修正されました

めでたしめでたし