みやもとメモ

「Notion」「Google Apps Script」「ブログカスタマイズ」などについて書いていきます。

目次
目次

【はてなブログ】記事ページの最終更新日を調整

この記事をシェアする

数日前から適用しているのですが、記事ページの最終更新日を調整しました。

元々、JavaScriptCSSを追加適用して表示させていました。

ブログカスタマイズ

ですが最近、はてなブログが「最終更新日の表示」に対応したみたいです。

はてなブログ開発ブログ
せっかくなので、はてなブログが対応した方に乗り換えることにしました。
ですが簡単にはいかず、自分のブログカスタマイズと干渉してデザインが崩れてしまいました。

今回の記事では、どんなデザイン調整をしたのか書いていこうと思います。

変更内容(画像)

まずは変更前後の画像を貼ります。

変更前

変更前

変更前はこんな感じです。

左に作成日、右に更新日が表示されています。
右の更新日は自分のブログカスタマイズによって追加表示しています。

変更後(設定変更)


とりあえず、はてなブログが対応した「最後に更新した日付も表示する」機能を有効にしてみました。

変更後(設定変更)

有効にした直後はこんな感じです。

作成日と更新日の間に、もう1つ更新日が表示されました。

今回の記事では、

  • はてなブログが対応した更新日にデザインを適用
  • 自分のブログカスタマイズで対応した更新日を削除

の2つを対応します。

2つの対応内容

変更後(JS削除、CSS修正)

変更後(JS削除、CSS修正)

変更後(最終版)はこんな感じです。

先ほど書いた通り、

  • はてなブログが対応した更新日にデザインを適用
  • 自分のブログカスタマイズで対応した更新日を削除

しました。

参考サイト

以下のサイトを参考にしました。
※といっても、はてなブログ公式と自分の記事です。
※記事の冒頭のリンクと同様です。
miya-moto-memo.hatenablog.com
staff.hatenablog.com

コード

削除したコード

以前のブログカスタマイズで適用したJavaScriptを削除しました。

<!-- 記事ヘッダーの作成日・更新日 -->
<script>
document.addEventListener('DOMContentLoaded', function () {
  // 各要素を取得
  const jsonld = JSON.parse(document.querySelectorAll('head script[type="application/ld+json"]')[0].innerText); // JSON-LD
  const datePublished = jsonld.datePublished; // 作成日文字列
  const dateModified = jsonld.dateModified; // 更新日文字列
  const entryDate = document.querySelector('header.entry-header .entry-date'); // 日付表示領域
  
  // 取得できなかったら処理終了
  if (!jsonld) return;
  if (!datePublished) return;
  if (!dateModified) return;
  if (!entryDate) return;
  
  // 「更新日要素」を作成
  const modifiedElm = document.createElement('span');
  modifiedElm.innerText = dateModified.substr(0, 10);
  modifiedElm.className = 'modified-date';
  
  // 日付が違った場合は「更新日要素」を追加
  if (datePublished.substr(0, 10) !== dateModified.substr(0, 10)) {
    entryDate.appendChild(modifiedElm);
  }
});
</script>
<!-- 記事ヘッダーの作成日・更新日ここまで -->

修正したコード

CSSを修正しました。
「修正前」から「修正後」のコードに差し替えました。

修正前
/***記事ヘッダーの作成日・更新日***/
/*作成日のデザイン調整*/
.entry-header .date a {
    transform: none;
}
.entry-header .date a:before {
    vertical-align: middle;
}
/*更新日のデザイン*/
.entry-header .date span.modified-date {
    display: inline-block;
    background-color: #111;
    padding: 0 6px 1px;
    margin-left: 10px;
    color: #fff;
}
.entry-header .date span.modified-date:before {
    font-family: "blogicon";
    content: "\f02b  ";
    vertical-align: middle;
}
/***記事ヘッダーの作成日・更新日ここまで***/
修正後
/***記事ヘッダーの作成日・更新日***/
/*作成日のデザイン調整*/
.entry-header .date a {
    transform: none;
}
.entry-header .date a:before {
    vertical-align: middle;
}
/*更新日のデザイン*/
.entry-header .date span.date-last-updated {
    display: inline-block;
    background-color: #111;
    padding: 1px 6px;
    margin-left: 10px;
    color: #fff;
}
.entry-header .date span.date-last-updated .blogicon {
    margin-bottom: 3px;
}
/***記事ヘッダーの作成日・更新日ここまで***/

デザインの適用手順

一応、適用手順を載せておきます。


STEP
ヘッダーの右上あたりにあるところをクリックして「デザイン」をクリック
STEP
「カスタマイズ」→「記事」をクリック
STEP
「記事下HTML」の記述領域をクリック
STEP
赤枠のJavaScriptを削除する
STEP
続いて「カスタマイズ」→「デザインCSS」→「CSS記述領域」をクリック
STEP
上述のCSSに差し替える(修正前CSSを削除、修正後CSSを設定)
STEP
「変更を保存する」をクリック
STEP
デザインが変更されているか確認する(挙動も確認する)
デザインが変更されなかったり、想定の挙動になっていない方は
手順が間違っているか、今使っているデザインテーマと相性が悪いか、他にもCSSやJSを埋め込んでいてその影響か、、などなど原因は色々考えられます。

注意事項

はてなブログで適用したものです。
はてなブログ以外では試してないので、うまく動かない可能性があります。

今使っているSilenceというデザインテーマにCSS適用した形となります。

他のデザインテーマを使っている方や、他にもCSSやJSを埋め込んでいる人はうまく動かない可能性がありますので、もし今回記載のCSSを適用しようとしている方はその辺りご了承ください。

おわりに

ということで、「記事ページの最終更新日を調整」に関してアレコレ書いてみました。

自分のブログカスタマイズから、はてなブログ公式の機能に乗り換えました。
見た目的にはそれほど大きな変化はないですが、実は生成されているHTMLに違いがありました。

自分のブログカスタマイズで表示した更新日は、spanタグで表示していました。
それに対して、はてなブログ公式の機能で表示した更新日はtimeタグで表示しているようです。(自分が確認した時点だと。)

SEO的にはtimeタグの方が良いらしいです。
”らしい”と書いたのは、timeタグでもSEO的に変わりはない的な記事も見かけたためです。

結局どっちがSEO的に良いのか、「とりあえず自分のブログに適用してみよう」となりました。
自分のブログ記事をtimeタグに変更したことで、SEO的にどう変化するか見てみたいなと。
そう思って取り急ぎ、対応してみました。

またなにかブログカスタマイズしたら記事にします。

関連記事

はてなブログ関連の機能は他にも記事を書いています。
気になる記事があればぜひ。

TOPへ戻る HOMEへ