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

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

ブログカードブロックに関する不具合報告
 
共有:
通知
すべてクリア

[解決済] ブログカードブロックに関する不具合報告

9 投稿
2 ユーザー
4 Reactions
2,285 表示
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

Cocoonのブログカードブロックでは、ひとつのブロックの中で段落ごとにURLを指定することで同ラベルの複数のブログカードを並べることが可能ですが、pタグが行頭になるとは限らないため、

/^(<p>)?(<a[^>]+?>)?...

https://github.com/yhira/cocoon/blob/master/lib/blogcard-in.php#L188

にある^によってマッチせず、ブログカード化されない不具合があります。

ただ、^を除くとクラシックエディターで書かれた場合に別の不具合が起きそうなので、ブロック向けの修正が必要そうです。


【追記】

内部ブログカードしか確認していませんが、不具合の状況から外部ブログカードも同様の不具合が起こりそうです。

https://github.com/yhira/cocoon/blob/master/lib/blogcard-out.php#L34


   
わいひら reacted
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

さらに追記です。

 

内部ブログカードで実際に確認したところ、上記の不具合では

$the_content = preg_replace('{^'.preg_quote($match, '{}').'}im', $tag , $the_content, 1);

https://github.com/yhira/cocoon/blob/master/lib/blogcard-in.php#L210

URLからブログカード化されたタグをコンテンツに反映する際の置換でも^が問題になってきます。

^によってマッチせず、ブログカードタグが反映されません。

 

こちらについても、外部ブログカードも同様の問題が起こると考えられます。

https://github.com/yhira/cocoon/blob/master/lib/blogcard-out.php#L51


   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

ご連絡ありがとうございます!
ちなみに、エディターではどのようにブログカードを挿入されていますか?
よろしければお手数ですがエディター画面をキャプチャしてアップしていただけますと幸いです。
同様にして試してみます。


   
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

例えば添付画像のように、同ブロック内の段落ごとに1URLといった感じです。

https://notepad.pw/code/cij9f3h57

URLを入力後、そのまま保存すると2~3段落目からは改行なしのコードになります。

 

ただ、「編集画面を開いて保存する」動作を繰り返すとpタグ間に改行が入り、HTMLが展開されていくので、根本的な問題はGutenbergまたはReactにあるのではないかと思われます。


https://wp-cocoon.com/gutenberg-blogcard/#toc3

一応、こちらの記事で解説してある通りです。


   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

一応、こんな感じでは正常表示されるようにはなりましたが…。
https://github.com/yhira/cocoon/commit/b79e1460dfc5aab2dc7bc73ea4cab77a86a62cf4
うーん、あまり綺麗な方法ではないですね…。
ここら辺も、これで問題の出る文章もあるかどうかかも。

$the_content = preg_replace('{<p> +}', '<p>', $the_content);
$the_content = preg_replace('{ +</p>}', '</p>', $the_content);

基本的に、p開始タグ直後の半角スペースと、p閉じタグ直前の半角スペースはあったとしても、不要とは思うんですけど。
今のところ思いついてはいないですが、取り除いて、都合の悪いケースとかもあるのかも。


   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

あ、URLの前に半角スペースを挿入して、あえてブログカード化させないということをやっている人は、ブログカード化されてしまうかも。

[] https://cocoon.local/16902 

   
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

とりあえず、PHPは使わず、ブログカードブロック側のJavaScriptの処理を追加して、何とか以下で修正できたのではないかと思います。
https://github.com/yhira/cocoon


   
ろこ
(@lococo)
Prominent Member Registered
結合: 7年前
投稿: 830
トピックスターター  

修正確認しました。
問題点については解決したようです。

ブロック含め、ブログカード周りは今のところクラシックエディターをベースとした仕組みになっているので、最終的にはGutenbergベースに切り替えていった方が綺麗に書けるとは思います。


   
わいひら reacted
わいひら
(@yhira)
Illustrious Memberサイト Admin
結合: 7年前
投稿: 17391
 

ご確認ありがとうございます。
今回、最初修正がうまくいかなかったので、テスト的にPHPベースで試してみました。
ただ、PHPだと処理が本文全体におよんでしまうため、今後とも出来る限りブロック内の処理にとどまるGutenberg側で修正しようと思っています。


   
共有:

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

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

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

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

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

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

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

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