FC2ブログの「サムネイル代替画像の設定」について

FC2ブログの「サムネイル代替画像の設定」について

FC2ブログのあれこれ
2020/03/14
1
vanillaice (Akira)
vanillaice (Akira)
トラブル対処お詫びTips

え?今更?って感じですね。すみません。もしかしたら私の勘違いで誤情報を発信したかもしれません。あるいは仕様に変更が入っていることに気づかなかった可能性も。いずれにしろお詫びを含めた記事でございます。

「サムネイル代替画像設定」とは

「サムネイル」「アイキャッチ」と2通りの表現があってややこしいんですが、今回は「サムネイル」という表現を用います。対象部位は

  1. 要約表示タイプテンプレートのトップページで表示される各記事の画像
    * カテゴリ, タグ, 月日別ページ含む/ 全記事一覧含まず
  2. 関連記事リスト「アイキャッチ画像あり」に設定したときに表示される各記事の画像
  3. 新着記事リスト「サムネイルつき」プラグインを掲載しているときに表示される各記事の画像
  4. ブログ内検索結果に表示される各記事の画像

こんなところでしょうか。今回便宜上「カテゴリ」「月日別」「タグ」のページも「トップページ」に含めますので留意してお読みください。

今回の記事の主旨は サムネイル対象画像が存在しない場合の表示処理 です。

認識が間違っていたかもしれない

私個人の誤認識なのか仕様が変わったのか…。あぁー考えてもわかんない
「サムネイル代替画像の設定」機能が導入されたときに検証を行った記憶はちゃんとあって、その上で以下のような記事を書いてるんですね。

FC2ブログでのサムネイルの仕様をまとめてみる

FC2ブログでのサムネイルの仕様をまとめてみる

FC2ブログのサムネイル関連の充実に伴って、若干混乱もあり ^^; テンプレートのデフォルト設定と絡めた記事内容です。...

表示優先順位
アイキャッチ画像 > 記事内の画像 > 個人設定No image画像 > テンプレデフォルトNo image画像(あるいは「無し」)

個人の設定が優先ですので、テンプレデフォルトが邪魔をすることはありません。

これ嘘やん… (´・ェ・`)
改めて確認したところ トップページ, 検索結果ページに関しては

表示優先順位
アイキャッチ画像 > 記事内の画像 > テンプレデフォルトNo image画像(あるいは「無し」)

最下位は「テンプレデフォルト」でそれ以下はなし。つまり サムネイル代替画像設定で指定した画像は反映されない というのが正しいです。誤情報を発信して申し訳ないです。

じゃあテンプレートの方の仕様を修正したら?と考えたくなりますけれども、そういうわけにはいかない事情 があります。以降の章でその説明をします。

ユーザー全員が設定を行っているわけではない

これが最大の理由です。順を追って説明しますね。

画像の有無の判定

各記事にサムネイル対象となる画像が「有る」か「無い」かの判定ですが、それぞれ変数が用意されています。

  • <!--body_img--><!--/body_img--> --- 画像「有り」
  • <!--body_img_none--><!--body_img_none--> --- 画像「無し」

言ってみればフラグですよね。この変数を用いて「対象画像が有る場合はその画像を表示」「対象画像が無い場合はxxxの画像を表示」と振り分けることが可能になります。そしてこの変数が利用されるのは トップページ検索結果 です。関連記事リストと新着記事リストでは使いません(使えません)

では サムネイル代替画像設定で指定した画像はどちらのフラグに属するのか なんですが、どちらにも属しとらんねこれ (´・ェ・`)

この真偽判定に属していないものですから、サムネイル代替画像を指定していてもトップページでは抽出できない ということになります。

属していないですし、もっと言うと 見分けを行うと無効になる という感じです。見分けるというのはつまり <!--body_img--><!--body_img_none--> を利用する、という意味です。では利用しなければどうか。

サンプル画像としてこちらを用います。「サムネイル代替画像設定」で指定した画像です。

見分けを行った場合の表示
<img src="<!--body_img--><%topentry_image_url><!--/body_img--><!--body_img_none-->https://xxx.jpg<!--/body_img_none-->" alt="">
見分けを行わなかった場合の表示
<img src="<%topentry_image_url>" alt="">

見分けないと出てくる(笑)
考えてみれば <!--body_img_none--> というのは「画像が明らかに無い」を意味するわけで、サムネイル代替画像画像の指定がされているのであれば「無い」とは言えない。がしかしあくまでも代替で指定しているのですから「画像が明らかに有る」つまり <!--/body_img--> とも言えない。どちらにも属さないのでどちらにも表示されない、といことですね。見分け作業を放棄することで自動で表示される(笑)

* 注「トップページと検索結果では」という縛りはそもそも見分け・判定変数が「関連記事リスト」「新着記事リスト」では利用できないためです。

じゃあ見分けなきゃ良いじゃん。とはいかないんです。

何故判定が必要なのか

この章の大見出しの通りで 全てのユーザーがサムネイル代替画像を指定しているわけではない からです。「サムネイル代替画像指定無し」の状態で「見分けを行わない」コンボだとどうなるか。

サムネイル代替画像の指定が無い場合

何も表示されなくなりました。画像が出ないという視覚的なことだけでなく一番の問題は html構文エラーになる 点です。画像の指定が無ければ画像のアドレス不在になりますので即構文エラー。なので見分けないわけにはいかないんですね。表示面の仕様に左右されて不正確なhtmlを容認するなんてのは本末転倒。とはいえ公式テンプレートでは当たり前にやってるけど(笑)
いややっぱダメだと思うよ。それはさ。公式の名を冠してるんだからちゃんとしたものを提供して頂きたい。

というわけで、個人設定の強制はできませんし、そもそも「設定してね(はぁと)」なんていくら書いたところでアナウンスが行き届くはずもありませんので、今後も見分け・判定は必須だと考えています。

まとめ

誤情報について改めてお詫び申し上げます。弊テンプレートのデフォルトNo imageを変更したい、という方については別途ご相談を承ります。難しいカスタマイズではありません。指南に従いさえすればササッと数秒で完了する系です。基本は「画像URLを差し替える」か「No image画像を追加する」いずれか。いずれもテンプレートhtml修正です。

もしかしたら非公開変数で中間に属するものがあるかもしれません。いやたぶん _with_alt だろうと末尾は予想が付いてますがその前が不明。時間があれば模索しますが期待薄(私の能力的に)

というわけで「サムネイル代替画像設定」についての説明でした。

Related post

Comments  1

-
2022/01/21 (Fri) 20:09

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

コメントに関する注意事項
  • テンプレートに関するご質問は各テンプレート専用記事でのみ受付致します。また、よくある質問をまとめているページも事前にご参照ください。
  • 専門的なご質問の場合、記事内容と明らかに関連の無い内容はお控えください(雑談の場合はその限りではありません)
  • 第三者が不快と感じる内容や論調でのコメントはお控えください(性的,高圧的,暴力的など)