Cocoonフォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。

不具合・カスタマイズ対象ページのURL:

相談内容:

不具合の発生手順:

解決のために試したこと:

※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:

※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。

環境情報の取得方法はこちら。
https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
https://wp-cocoon.com/theme-trouble/

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法
  7. ブラウザ環境チェックツール
  8. Cocoonカスタマイズ依頼

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

投稿がNO IMAGEのとき、カテゴリ...
 
共有:
通知
すべてクリア

[解決済] 投稿がNO IMAGEのとき、カテゴリーのアイキャッチが表示されない

10 投稿
3 ユーザー
13 Reactions
236 表示
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3826
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.8.8
カテゴリー数:18
タグ数:124
ユーザー数:1
----------------------------------------------

●設定

[Cocoon設定]→[画像]→サムネイル画像1:1とした。
横200×縦400pxの画像を「カテゴリーA」のアイキャッチに設定した。
投稿(カテゴリーA)にはアイキャッチを設定していない。


●現象

投稿にアイキャッチを設定していないため、エントリーカードには「カテゴリーA」のアイキャッチが表示する。
しかし、画像が表示されない。


●原因

320x320のサムネイル用のファイル名が存在しない。
サムネイル生成の際、メディア登録した画像幅が320pxより小さいので、ファイル名-200x320でサムネイルが生成される。


●発生のアルゴリズム

投稿にアイキャッチ未設定のため、get_entry_card_no_image_tagから、get_no_image_320x180_urlが呼ばれる。
フックを介して、カテゴリーのアイキャッチを反映するため、get_categorized_no_image_urlが呼ばれる。
そのとき、get_image_sized_urlでカテゴリーのアイキャッチのファイル名に幅x高さを付加し、srcタグとなる画像ファイルのURLを返却する。
結果、320x320となってしまう。


●対策

カテゴリー、タグなどのアイキャッチから画像URLを生成した際、ファイルが存在するかチェックする。
無い場合、元画像とする。

/**/が追加した箇所です。

https://notepad.pw/share/apLLwXXYFrXeODhAUsWz

 



大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3826
トピックスターター  

●修正

上記のコードだと各所に同じような判定があるので、以下の関数に集約するのが望ましい。

 
生成したサムネイルが無い場合、元ファイルとする。
 
function get_image_sized_url($url, $w, $h){
  $ext = get_extention($url);
  $sized_url = str_replace('.'.$ext, '-'.$w.'x'.$h.'.'.$ext, $url);
  if (!file_exists(url_to_local($sized_url))) {
    $sized_url = $url;
  }
  return $sized_url;
}


   
返信引用
エックスサーバー 高澤
(@s_takazawa)
Estimable Member Moderator
結合: 12か月前
投稿: 100
 

@chu-ya さん

ご指摘いただきありがとうございます!

上記内容をご確認させていただき、対応いたしますので少々お待ちください。


この投稿は3週間前ずつエックスサーバー 高澤に変更されました

   
わいひら reacted
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3826
トピックスターター  

@s_takazawa さん

現象だけでなく、原因、対策案まで私の方で時間を割き対応しており。
御社として素早い対応願います。



   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3826
トピックスターター  

●修正

投稿者:: @chu-ya

320x320のサムネイル用のファイル名が存在しない。
サムネイル生成の際、メディア登録した画像幅が320pxより小さいので、ファイル名-200x320でサムネイルが生成される。

再確認したら誤りがあり。
200x320の元画像a.jpgをメディア登録した。
メディアにはa-320x320.jpgが生成されない

add_image_sizeでサムネイル生成時に元画像のサイズが指定サイズより小さいので生成されない。

https://github.com/xserver-inc/cocoon/blob/5e6d4d0a11dbcd4891fc1bd0d6c8c03b83ed57c7/lib/settings.php#L59


●補足

サムネイルサイズより小さい画像はサムネイルを生成しない。
NO IMAGEの処理にその考慮が漏れている。

バグ発生の流れ

1.投稿にアイキャッチの設定が無い場合、get_entry_card_no_image_tagが呼ばれる。

https://github.com/xserver-inc/cocoon/blob/5e6d4d0a11dbcd4891fc1bd0d6c8c03b83ed57c7/tmp/entry-card.php#L37

2.以下でエントリーカードのサムネイル画像を設定する。

https://github.com/xserver-inc/cocoon/blob/5e6d4d0a11dbcd4891fc1bd0d6c8c03b83ed57c7/lib/entry-card.php#L79

3.フックを介して以下でカテゴリーのアイキャッチを取得し、320x320を付加し返却する。

https://github.com/xserver-inc/cocoon/blob/5e6d4d0a11dbcd4891fc1bd0d6c8c03b83ed57c7/lib/page-settings/image-funcs.php#L298

無条件にサムネイル名に320x320を付加してしまう。
結果、サムネイルファイル320x320はないので表示されない。

→サムネイルファイルが有無を確認し、無ければ元ファイルを返却する。



   
返信引用
エックスサーバー 高澤
(@s_takazawa)
Estimable Member Moderator
結合: 12か月前
投稿: 100
 

@chu-ya さん

追加で情報提供いただきまして、ありがとうございます!

大変参考になりました。

 

内容の方ご確認させていただき、引き続き対応の方進めさせていただきました。

わいひらさんへ確認をご依頼できればと思いますので、少々お待ちください。



   
わいひら reacted
返信引用
エックスサーバー 高澤
(@s_takazawa)
Estimable Member Moderator
結合: 12か月前
投稿: 100
 

@yhira

わいひらさん

お疲れ様です。

 

お待たせいたしました、本件に関して対応が完了し、PRを作成いたしましたのでご報告いたします。

お手すきでご確認のほど、よろしくお願いいたします。

PR:
https://github.com/xserver-inc/cocoon/pull/297

(対応内容)
・lib/page-settings/image-funcs.phpの画像URLから指定サイズのURL生成する関数であるget_image_sized_url()関数の処理に、サムネイル画像ファイルの有無を確認し、無ければ元ファイルを返す処理を追加

お忙しいところ恐縮ですが、お手すきでご確認のほどよろしくお願いいたします。



   
わいひら reacted
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 8年前
投稿: 17990
 

@s_takazawa 

ご対応いただきありがとうございます。
プルリクをマージさせていただきました。



   
返信引用
大門未知子
(@chu-ya)
Illustrious Member Registered
結合: 3年前
投稿: 3826
トピックスターター  

----------------------------------------------
テーマ名:Cocoon
バージョン:2.8.8
カテゴリー数:18
タグ数:124
ユーザー数:2
----------------------------------------------
対策されていることを確認しました。
本件をクローズとします。



   
返信引用
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 8年前
投稿: 17990
 

ご確認いただきありがとうございます。



   
返信引用
共有:

問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。

また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

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