- ある日突然、更新時間が表示されなくなった
- 全ての記事ではなく、過去記事の更新時間が表示されていない
- JavaScriptコンソールでエラーを見つけました
- 解決方法:エラーに該当するsitemap_periodical.xmlを作成するため、該当する投稿月の記事を作成する
- 更新時間が表示されるようになりました!
- 原因:なぜ、存在しない記事に対応するsitemap_periodical.xmlをJavaScriptが参照していたか?
- まとめ
ある日突然、更新時間が表示されなくなった
「はてなブログ」にて、他ブログの知恵をお借りしながら、更新時間表示に成功しました。しばらくは問題なく更新時間が表示されていたのですが、ある日偶然気づいたのですが、更新時間が表示されていない記事がありました。
更新時間が表示されるように設定した以降、JavaScriptもCSSもソースを変更したことはありません。
全ての記事ではなく、過去記事の更新時間が表示されていない
いくつかの記事を見ていると、全ての記事ではなく、一部の記事で表示されていないことがわかりました。比較的最近の記事は問題なく更新時間が表示されているようです。
更新時間が表示されている記事とされていない記事の境目は、2022年前後っぽい。
JavaScriptコンソールでエラーを見つけました
JavaScriptで更新時間表示を実現しているのだから、JavaScriptエラーが出ているのでしょうか?
そこで、更新時間が表示されていない記事上で、Chromeブラウザのコンソール機能を使ってみました。
Chromeの上部メニューから利用するならば、 表示>開発/管理>JavaScriptコンソール です。
Macのショートカットキーならば、fn+F12 で表示されます。
すると、下記のエラーが表示されました。
404 (Not Found)?つまり、sitemap_periodical.xmlが見つからないということですね。
実際に、「https://jobchan.hateblo.jp/sitemap_periodical.xml?year=2022&month=1
」にアクセスしてみると、「お探しの記事は見つかりませんでした。」と表示されます。
更新時間表示を実現するJavaScriptコード上には「sitemap.xml」を呼び出す記述があるので、無関係ではなさそうです。
更新時間が表示されている記事の投稿日時が、例えば、2022年3月1日ならば、該当するであろうsitemap_periodical.xmlである「https://jobchan.hateblo.jp/sitemap_periodical.xml?year=2022&month=3
」をURL欄に入力してアクセスすると、xmlの内容が表示され、問題ないように見えます。
解決方法:エラーに該当するsitemap_periodical.xmlを作成するため、該当する投稿月の記事を作成する
- 「
https://jobchan.hateblo.jp/sitemap_periodical.xml?year=2022&month=1
」が404 (Not Found)でエラーが出ている - 更新時間表示が問題ない場合は、投稿月に対応するsitemap_periodical.xmlが存在している
という状況だったので、エラーが出ないように、エラーが出ている投稿月(2022年1月)の記事を無理やり作ることにしました。
記事が存在すれば、対応するsitemap_periodical.xmlが生み出され、エラーが無くなり、更新時間表示も復活すると考えました。
- 記事を新しく作成する、もしくは既存の記事の編集画面に
- 編集画面から、編集オプション>投稿日時 で「2022年1月」を設定
- 記事を「公開する」
更新時間が表示されるようになりました!
上述の手順で記事を作成した直後、更新時間が表示されていなかった2022年1月以前の記事で、更新時間が表示されるようになりました!
「https://jobchan.hateblo.jp/sitemap_periodical.xml?year=2022&month=1
」にアクセスすると、Not Found
ではなく、xmlの中身が表示されるようになりました。
※現在は、2022年1月の記事を完全に削除したので、「https://jobchan.hateblo.jp/sitemap_periodical.xml?year=2022&month=1
」はありません。
原因:なぜ、存在しない記事に対応するsitemap_periodical.xmlをJavaScriptが参照していたか?
結論、原因は明確にはわかりません。。。
思い当たりそうなことは、ある記事について、
- 2022年1月に記事を新規作成した
- 諸事情で、下書きに戻した
- リライト後、2022年4月に「投稿日時」と「カスタムURL」を変更して公開した
ということがありました。
ですので、2022年1月に記事を公開した時点で、sitemap_periodical.xml?year=2022&month=1
が生み出され、記事がなくなっても何かの理由でsitemap_periodical.xml?year=2022&month=1
を参照していたのでしょうか。
はてなブログの仕様が原因なのか、JavaScriptが原因なのかはわかりませんでした。
まとめ
実は、この解決方法に辿り着くまで、数時間Google検索で彷徨いました。。。
更新時間JavaScriptは、全てのデザインテーマに対応しているとは限らないとも見かけたので、最近変更したデザインテーマ「Minimalism」と相性が悪いのか?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">
というようにjquery
を呼び出しているので、jquery
のバージョンが古いのか?
更新時間JavaScriptは数パターン存在しており、はてなブログの貼り付け位置やCSSも微妙に違う場合があるので、他のパターンの更新時間JavaScriptをゼロから貼り付け直したり。。。
他のサイトを参考に色々試しましたが解消できなかったので、結局はフロントエンジニア時代に頼りにしていた、ブラウザのJavaScriptコンソールに頼ってみました。
原因は特定できませんでしたが、何にせよ、解消してよかったです!
Failed to load resource: the server responded with a status of 404 (Not Found)
https://jobchan.hateblo.jp/sitemap_periodical.xml?year=2022&month=1