Webディレクターのおどりば

1981年生まれ40代のクチコミ・体験談

【解決】「はてなブログ」で更新時間が表示されなくなった(Minimalism)

※当サイトはアフィリエイト広告を利用しています

ある日突然、更新時間が表示されなくなった

「はてなブログ」にて、他ブログの知恵をお借りしながら、更新時間表示に成功しました。しばらくは問題なく更新時間が表示されていたのですが、ある日偶然気づいたのですが、更新時間が表示されていない記事がありました。

更新時間が表示されるように設定した以降、JavaScriptもCSSもソースを変更したことはありません。

全ての記事ではなく、過去記事の更新時間が表示されていない

いくつかの記事を見ていると、全ての記事ではなく、一部の記事で表示されていないことがわかりました。比較的最近の記事は問題なく更新時間が表示されているようです。

更新時間が表示されている記事とされていない記事の境目は、2022年前後っぽい。

JavaScriptコンソールでエラーを見つけました

JavaScriptで更新時間表示を実現しているのだから、JavaScriptエラーが出ているのでしょうか?

そこで、更新時間が表示されていない記事上で、Chromeブラウザのコンソール機能を使ってみました。

Chromeの上部メニューから利用するならば、 表示>開発/管理>JavaScriptコンソール です。

Macのショートカットキーならば、fn+F12 で表示されます。

すると、下記のエラーが表示されました。

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

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が生み出され、エラーが無くなり、更新時間表示も復活すると考えました。

  1. 記事を新しく作成する、もしくは既存の記事の編集画面に
  2. 編集画面から、編集オプション>投稿日時 で「2022年1月」を設定

  3. 記事を「公開する」

更新時間が表示されるようになりました!

上述の手順で記事を作成した直後、更新時間が表示されていなかった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が参照していたか?

結論、原因は明確にはわかりません。。。

思い当たりそうなことは、ある記事について、

  1. 2022年1月に記事を新規作成した
  2. 諸事情で、下書きに戻した
  3. リライト後、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コンソールに頼ってみました。

原因は特定できませんでしたが、何にせよ、解消してよかったです!