grayishスキン適用中

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カスタマイズ依頼

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

外部リンク画像を指定した場合にLigh...
 
共有:
通知
すべてクリア

[解決済] 外部リンク画像を指定した場合にLightbox系の処理が動かない

10 投稿
3 ユーザー
1 Likes
3,256 表示
(@ぱのん)
New Member
結合: 5年前
投稿: 3
Topic starter  

こんにちは、早速質問なんですが、

画像を挿入するときGoogleフォトの画像を外部リンクで指定しています。

この場合、設定でどの指定でも『baguetteBox』『Lity』『iLghtbox』画像の拡大効果は作動しません。

コードエディターモードで aタグ内に 【data-lightbox="image-set"】を追加で指定すると『iLghtbox』では作動出来ました。

画像を外部リンクで指定した場合でもうまく動作させる方法は無いでしょうか?


   
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16239
 

よろしければ、案内にもあるように実際のページのURLを提示していただけると助かります。
まず動作しない環境の実物を確認したく思います。


   
panon
(@panon)
Active Member Registered
結合: 5年前
投稿: 5
 

現在の画像の設定は『Lightbox』です。

高速化のコードの縮小化はチェック外しています。

https://panonbox.com/resona-atmfree/

リンクの画像はすべてGoogleフォトの画像をリンクで挿入しています。

https://panonbox.com/googlephoto/

上記のページでは記事の中間あたりにアバター画像を2枚並べていますが、上部が『Googleフォト』で下部が『同じサーバー内』のものです。

現状はコードエディターモードで aタグ内に 【data-lightbox="image-set"】を追加してるので画像の拡大効果は出ています。

またこの2枚の画像ですが何も手を加えなければ、上の画像は普通にリンクに飛び、下の画像は『Lightbox』が反映されます。ですが、上部の画像に【data-lightbox="image-set"】を追加すると下部の画像から『Lightbox』のコードが消えて状態が逆転します。上部に反映され下部はリンクに飛びます。

 


   
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16239
 

CocoonのLightbox判別として、jpg、jpeg、png、gifが含まれているものを画像と判別しています。
https://github.com/yhira/cocoon/blob/e03782b9cda2dfb090c24bf495643e31a82bfefd/lib/image.php#L42
そうでないと、通常のテキストリンクまでLightbox仕様になってしまうので。

Google PhotoのURLの場合、以下のように、画像と判別できる情報がないため、反応しません。
ttps://lh3.googleusercontent.com/Pha8Evpbtcq5Gi7Ws2cWUXBPhZxL7agdfq9ko30dTQenptHIRiHOXs8oZnBTfn8B84vI3lTzYbSE4QQaYXkzHF8wNqr3dwm5jD3HecMiojEuB1yGTXXgw-vS9iSirwSujaDfT_oM5A=w800

今後も、Cocoon親テーマ側に、機能としてそういった判別は行わないと思います。


   
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16239
 

その場合、子テーマ側で対応していただく必要があるのですが、それ用のフックを用意しました。
まずは以下のファイルでアップデートしてください。
------------------------------------------------
https://github.com/yhira/cocoon
最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。

FTPでのアップデート方法はこちら。
https://wp-cocoon.com/ftp-update/
------------------------------------------------


   
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16239
 

その後、以下のコードを子テーマのfunctions.phpに追記すると、アップデートの影響を受けない子テーマ側で対応できるかと思います。

LightboxをGoogle Photoに対応させる

//Google PhotoのLightbox置換
add_filter('add_lightbox_property', function ($content){
  //Aタグを正規表現で置換
  $content = preg_replace(
    '/<a([^>]+?googleusercontent\.com[^>]+?)>([\s\w\W\d]+?)<\/a>/i',//Aタグの正規表現
    '<a${1} data-lightbox="image-set">${2}</a>',//置換する
    $content );//投稿本文(置換する文章)

  return $content;
}); 

   
(@ぱのん)
New Member
結合: 5年前
投稿: 3
Topic starter  

特殊な内容に対応して頂きありがとうございます。途中問題が発生しましたが、自己解決出来ました。

画像と次の画像に挟まれている場所すべてにリンクタグが指定される状態でした。(添付画像参照)

Chromeの検証機能で確認していたので、気がつくまで時間がかかりました。”/a”実際は無いのですが有るように処理されるようですね。

結果的には

'<a${1} data-lightbox="image-set">${2}',//置換する
'<a${1} data-lightbox="image-set">${2}</a>',//置換する

”</a>”が抜けていただけだと思います。

ちなみに${2}の部分ですが親テーマの判別では”3”ですが2と3の違いはなにかあるのでしょうか?

思っていたように表示させる事が出来ましたありがとうございます。


   
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16239
 

すいません。僕の記入ミスだと思います。
上のコードも修正しておきます。

ちなみに${2}の部分ですが親テーマの判別では”3”ですが2と3の違いはなにかあるのでしょうか?

これに関しては、以下のページの「パターンに一致する文字を別の文字に置き換える」部分を参照してください。
http://www.sound-uz.jp/php/note/regx

ここら辺。

$0 は正規表現パターン全体にマッチする文字を表しています。もちろん $1、$2、$3 ... というのもあるわけですが、これはパターンの中で、カッコで囲まれたパターンの文字を表します。始めのカッコのパターンにマッチする文字が $1、2番目のカッコのパターンにマッチする文字が $2、といった順番に対応しており、パターンの一部を参照することが出来ます。


   
わいひら
(@yhira)
Illustrious Member Admin
結合: 6年前
投稿: 16239
 

実際に、エディターに書いたコードを見たら問題なかったようです。
なので、おそらくaの閉じタグは、HTMLタグなので、フォーラムにタグと認識されてしまったのかもしれません。
一応、エディターに書いた原本のコードも画像で掲載しておきます。


   
(@ぱのん)
New Member
結合: 5年前
投稿: 3
Topic starter  

PHPの正規表現や置き換えについて、すごく勉強になりました。

PHPもこれから学習していこうと思います。ありがとうございました。


   
わいひら reacted
共有:

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

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

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

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

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

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

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

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