Re: og:imageよりもthumbnailが優先して表示される(Open Graph Tags Lite)

2020年4月28日 at 10:24

> aniyaさま
ご返信、ありがとうございます。

一度アンインストールして入れ直し、無事「2.1.4」にアップデートはできたのですが、
残念ながらog:imageよりもサムネイルが優先して表示されてしまう状況は変わらず…。
(htmlを確認しても、og:imageのパスがサムネイルの画像に紐づいていました。)

力不足で恐縮ですが、他に何か考えられる原因がありましたら
ご教示いただけますと幸いです、どうぞよろしくお願いいたします。

Re: og:imageよりもthumbnailが優先して表示される(Open Graph Tags Lite)

2020年4月28日 at 18:51
すみません、なんとなく不具合があるのかなぁ…レベルで質問内容を勘違いしておりました。

改めて質問内容を読み直しました。
要望は
「thumbnailが設定されているページでもOpen Graph Tags Liteの設定を優先して反映させたい」
ということですよね。

多分Open Graph Tags Lite設定ページにある
ページ属性リファレンス>og_imageの説明
エンティティを表現する画像。この値が空のとき、「thumbnail」属性が代わりに使われます。

を読んで
本来は「og:image」の方が優先的に表示されるもの

と解釈されたのだと思いますが、実際の動きは下記のとおりになるようです。
・og_image設定無し + ページthumbnail設定無し = og:image自体の記載無し
・og_image設定無し + ページthumbnail設定有り = og:imageはthumbnailを反映
・og_image設定有り + ページthumbnail設定無し = og:imageはog_imageを反映
・og_image設定有り + ページthumbnail設定有り = og:imageはthumbnailを反映


この振り分けにより
「全投稿のog:imageが同じになる」
ことを避けているのだと思います。
これはこれで正しいかと。

しかしながら、もし
「(ElementalのPortfolioみたいに)thumbnailはページ一覧などで必要だから設定したいが、
facebookなどの投稿ではOpen Graph Tags Liteの画像設定を優先したい」
ということであれば、
packages/open_graph_tags_lite/src/Html/OpenGraphTags.php
の55〜61行目を編集すればよろしいかと。
$og_image = $page->getAttribute('thumbnail');
if (!is_object($og_image)) {
$og_image = $page->getAttribute('og_image');
if (!is_object($og_image) && !empty($thumbnailID)) {
$og_image = File::getByID($thumbnailID);
}
}

上記を次のように置き換えれば多分大丈夫だと思います。
$og_image = File::getByID($thumbnailID);


参考になれば幸いです。
 

Re: og:imageよりもthumbnailが優先して表示される(Open Graph Tags Lite)

2020年5月12日 at 15:00
aniyaさま

詳細まで確認いただき、また対応方法についても
たいへん丁寧にご説明くださり、ありがとうございます。

私の方でも仕様を把握できていなかったようで、失礼しました…。
また、当方でなかなか挙動の確認ができず、
ご連絡がたいへん遅くなってしまい、申し訳ありません。

取り急ぎ「2.1.5」バージョンへ変更してみたところ無事に解消されておりました。
重ねがさね、ありがとうございました…!