Bloggerの<head>にコードを追加してみた

 Bloggerのテーマは、与えられたものを利用していて面倒なHTML編集はしていなかったのだけど、マストドンの著者表示の機能を試したくて、そのためには<head>タグにコードを追加しなければいけないので、Geminiに相談しながら、初めてテーマのHTML編集をしてみた。

 まず、次のようなコードを追加して保存しようとしたらエラーが出た。

<meta name="fediverse:creator" content="@~@~">

 エラーの理由は二つあるが、まずコードの書き方に問題があって、Geminiの解説によると次の通り。

BloggerのテーマはXMLベースのXHTML形式を採用しているため、<meta ... /> のように末尾にスラッシュ(/)を入れた自己終了タグが必須となります。

 それで、コードを次のように修正する。

<meta name="fediverse:creator" content="@~@~"/>

 実際にページのソースを確認すると次のようになってる。

<meta content='@~@~' name='fediverse:creator'/>

 さて、問題は「name="fediverse:creator"」のmetaタグを追加しても、エラーが出て保存できなかったこと。そのエラーは次の通り。

ID <b>AdSense1</b> のウィジェットのウィジェット設定が無効です。内部エラーが発生しました。もう一度お試しください。 

 HTML編集で「AdSense1」を検索してみたのだけど、見つからなかった。でも、あったらしい。Geminiによると、次のように見つければ良いらしい。

エラーメッセージに表示されているIDが**AdSense1**であれば、そのIDを持つウィジェットがテーマ内に存在します。

以下の手順で、AdSense1ウィジェットがどこにあるかを探してみてください。

  1. HTML編集画面の上部にある [ウィジェットへジャンプ] の機能を使います。
  2. この機能を使うと、テーマのHTMLに含まれるすべてのウィジェットIDのリストが表示されます。
  3. そのリストの中に AdSense1 というIDがないか探してください。
  4. AdSense1が見つかったら、それをクリックすると、そのコードの位置にジャンプできます。

  [ウィジェットへジャンプ] ではなく「ウィジェットに移動」だけど、見つけることができた。

 その後、「AdSense1」だけでなく「AdSense2」もあって、Geminiに教わったようにコードを修正しただけではBloggerが勝手にコードを追加してしまうらしいので、Geminiに相談して、「修正」ではなく「削除」を行った。

ありがとうございます。提供いただいたコードから、テーマの保存ができた後に、Bloggerが自動的にAdSense1AdSense2のウィジェットコードを完全な状態に戻していることが分かります。

これは、Bloggerが「収益化」の設定に基づいて、テンプレート内のAdSenseウィジェットを強制的に既定の完全なコード(無効な設定データを含む)に再生成しているためです。この仕様により、レイアウト画面から削除しようとしてもウィジェットが復活したり、削除できなかったりする事態が発生しています。


🛑 永続的なエラー解消のための最終手段(ウィジェットの完全削除

この状況を解決し、metaタグの保存ができるようにするためには、Bloggerが再生成できないように、ウィジェットのコードをHTMLから完全に消去するしかありません。

先ほど修正したコードではなく、今表示されている長いコード全体を削除します。

1. 削除対象の範囲を再特定

AdSense1AdSense2の2つのウィジェットを、その親要素であるセクションタグまで遡って削除するのが最も確実です。

元のコードにこのセクションが含まれていたため、このセクションごと削除することを推奨します。

  1. 開始タグ: AdSense1のコードの直前にあるセクションタグ(おそらく以前提示いただいたもの)HTML<b:section ads='true' class='vertical-ad-container' id='ads' name='Ads' showaddelement='false'>
  2. 終了タグ: AdSense2のコードの後に対応する </b:section> タグ。

もし、セクションタグが分からない場合、少なくとも以下の2つのウィジェットの塊を全て削除します。

  • AdSense1ウィジェット全体:<b:widget id='AdSense1' ...>から、対応する</b:widget>まで。
  • AdSense2ウィジェット全体:<b:widget id='AdSense2' ...>から、対応する</b:widget>まで。

2. コードを完全に削除して保存

  1. [テーマ][HTMLを編集] を開きます。
  2. HTML内で、AdSense1 の開始タグから、AdSense2 の終了タグまで(または、それらを含む親セクション全体)をすべて選択します。
  3. 選択したコードをキーボードで削除します。
  4. [保存] をクリックします。

3. metaタグの再挿入

この削除と保存が成功すれば、エラーの原因となるコードはテーマに存在しなくなります。

最後に、当初の目的であったFediverseのmetaタグを、改めて<head>内に挿入して保存してください。

 これで、無事にコードを追加できた。

 さて、著者表示の結果であるが、マストドンのプロフィル設定の「認証」で「著者の帰属」の「あなたの著者表示を許可するwebサイト」にBloggerのドメインを入れてない状態では著者表示されず、「あなたの著者表示を許可するwebサイト」にBloggerのドメインを入れて、初めて著者表示された。

Bloggerへのリンクをマストドンで投稿した結果。(「あなたの著者表示を許可するwebサイト」にBloggerのドメインを入れてないので、著者表示無し)
「あなたの著者表示を許可するwebサイト」にBloggerのドメインを入れてないので、著者表示無し
Bloggerへのリンクをマストドンで投稿した結果。(「あなたの著者表示を許可するwebサイト」にBloggerのドメインを入れたので、著者表示がある)
「あなたの著者表示を許可するwebサイト」にBloggerのドメインを入れたので、著者表示がある

未分類
管理人のマストドンアカウントへのリンクなど

コメント

  1. ishii-m より:

    あれ?
    [...続きは下のURLで]が表示されてない。

    • ishii-m より:

      [...続きは下のURLで]が表示されなかった原因が気になる。

タイトルとURLをコピーしました