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

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

共有:
通知
すべてクリア

[解決済] cocoon内でのsleep()とflush()の使用

11 投稿
2 ユーザー
1 Reactions
951 表示
(@ろくろ)
Active Member
結合: 3年前
投稿: 6
トピックスターター  

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

https://rokuro.backdrop.jp/115/

 

相談内容:

以下のようなショートコードをCocoonの子テーマ内のfunction.phpに実装しました。

function flush_test()
{
    $i = 1;
    echo$i;
 
    ob_flush();
    flush();
 
    sleep(3);
 
    $i++;
    echo$i;
}
add_shortcode('flush_test_shortcode', flush_test');
 
その後、記事内で[flush_test_shortcode]を記述し投稿したところ、ob_flush();flush();が動作せず3秒が経過した後「12」とまとめて表示されてしまいます。おそらくコード圧縮によるものだと考えるのですが、どのように処理すれば正常に動作するでしょうか。
 
何卒ご回答のほど、よろしくお願いいたします。
 
 
解決のために試したこと:
テーマをTwenty Twenty-One(バージョン: 1.4)に変更し同様の処理を行ったところ正常に動作致しました。
 
 
環境情報:
----------------------------------------------
サイト名:ろくろ備忘録
サイトURL: https://rokuro.backdrop.jp
ホームURL: https://rokuro.backdrop.jp
コンテンツURL:/wp-content
インクルードURL:/wp-includes/
テンプレートURL:/wp-content/themes/cocoon-master
スタイルシートURL:/wp-content/themes/cocoon-child-master
親テーマスタイル:/wp-content/themes/cocoon-master/style.css
子テーマスタイル:/wp-content/themes/cocoon-child-master/style.css
スキン:/wp-content/themes/cocoon-master/skins/silk/style.css
WordPressバージョン:5.8.1
PHPバージョン:8.0.11
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
サーバーソフト:LiteSpeed
サーバープロトコル:HTTP/1.1
エンコーディング:gzip, deflate, br
言語:ja,en-US;q=0.9,en;q=0.8
----------------------------------------------
テーマ名:Cocoon
バージョン:2.3.6.3
カテゴリ数:7
タグ数:0
ユーザー数:1
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:1.1.2
style.cssサイズ:845バイト
functions.phpサイズ:370バイト
----------------------------------------------
Gutenberg:1
AMP:1
PWA:0
Font Awesome:4
Auto Post Thumbnail:0
Retina:0
ホームイメージ:/wp-content/uploads/2021/05/SDS_ookawajinbeirokuro_TP_V42.png
----------------------------------------------
ブラウザキャッシュ有効化:0
HTML縮小化:0
CSS縮小化:0
JavaScript縮小化:0
Lazy Load:0
WEBフォントLazy Load:1
----------------------------------------------
利用中のプラグイン:
Akismet Anti-Spam 4.2.1
Enable Media Replace 3.6.0
Lolipop Migrator 0.9.6
Phoenix Media Rename 3.4.4
SiteGuard WP Plugin 1.6.0
Site Kit by Google 1.43.0
WP Multibyte Patch 2.9
----------------------------------------------

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

すいません。どういった動作が正常とされているのかわからないのでちょっと何とも言えません。

テーマをTwenty Twenty-One(バージョン: 1.4)に変更し同様の処理を行ったところ正常に動作致しました。

僕の環境では動作は変わりませんでした。


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

ただいずれにせよ、コード指南はサポート対象外とさせていただいているので、恐れ入りますが「正常な動作」がわかったとしても対応できないかもしれません。
https://wp-cocoon.com/not-supported/


   
(@ろくろ)
Active Member
結合: 3年前
投稿: 6
トピックスターター  

ご回答頂きありがとうございます。ご負担をおかけしてしまって申し訳ありません。Cocoonを利用させていただきありがとうございます。

 

投稿者:: @yhira

どういった動作が正常とされているのかわからないのでちょっと何とも言えません。

すみません。表現が曖昧でした。この「正常な動作」は

 

投稿ページに移動する

投稿内で「1」が表示される

3秒が経過する

投稿内で「2」が表示される

 

を想定しておりました。

Twenty Twenty-One(バージョン: 1.4)で確認を行った動作もこちらになります。

 

それが自分のCocoon環境では

 

投稿ページに移動せず3秒が経過する

投稿内で「12」がまとめて表示される

 

という状態になってしまっています。 

https://rokuro.backdrop.jp/115/

 

投稿者:: @yhira

僕の環境では動作は変わりませんでした。

投稿者:: @yhira

ただいずれにせよ、コード指南はサポート対象外とさせていただいているので、恐れ入りますが「正常な動作」がわかったとしても対応できないかもしれません。

ご負担をおかけしてしまい大変恐縮なのですが、わいひらさんの動作は自分の想定している「正常な動作」であるかの一点だけ、ご返信いただけませんでしょうか。何卒よろしくお願い致します。


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

Twenty Twenty-One(バージョン: 1.4)で、ChromeとFirefoxで試しましたが、僕の環境ではまとめて表示されました(Cocoonと動作は変わらなかったです)。
同様の動作にならないので、詳しい原因までは調べていません。
また、投稿の記事内で、PHPそのように表示を遅らせる意味もちょっとわからないです。ページ読み込みに時間がかかればかかるほどSEO的には良くないので。
演出ということで遅らせて表示するのであれば、CSS&JavaScript等で制御したほうが良いような気がします。
もしまた違った意図があるのであればすいません。


   
(@ろくろ)
Active Member
結合: 3年前
投稿: 6
トピックスターター  

ご返信頂きありがとうございます!!参考にさせていただきます。

投稿者:: @yhira

Twenty Twenty-One(バージョン: 1.4)で、ChromeとFirefoxで試しましたが、僕の環境ではまとめて表示されました(Cocoonと動作は変わらなかったです)。

想定している正常な動作にはなっていないということですね……

一応自分がTwenty Twenty-One(バージョン: 1.4)にて動作を確認した際のgifを添付させていただきます。まずheaderとtitleが読み込まれ、contentの途中で1が表示され、3秒が経過したあとに、2が表示され、コメント部分やfooterが読み込まれる。という具合になっています。

キャプチャしていて気づいたのですが、Twenty Twenty-One(バージョン: 1.4)ではサイドバーがない設定になっているので、Cocoonではそのあたりが読み込みの邪魔をしているのかもしれませんね……

 

投稿者:: @yhira

また、投稿の記事内で、PHPそのように表示を遅らせる意味もちょっとわからないです。ページ読み込みに時間がかかればかかるほどSEO的には良くないので。
演出ということで遅らせて表示するのであれば、CSS&JavaScript等で制御したほうが良いような気がします。
もしまた違った意図があるのであればすいません。

実は今回のショートコードは現在開発中のサイトで実装したい機能のテストでして、for文で処理待ちをする際に使用する予定でした。処理にはWordPressの関数を用いるため、JavaScriptではなくPHPで実装を行っておりました。

 

ご多忙の中、丁寧に対応していただきありがとうございます。gif等でもし何かお気づきのことがあればご連絡いただければ幸いですが、これ以上対応していただくのも申し訳なく、お手すきの際に、可能であればお願い致します。ご連絡ありがとうございました。


   
(@ろくろ)
Active Member
結合: 3年前
投稿: 6
トピックスターター  

すみません、gifがファイルサイズをオーバーしていました。エンコードし直しましたので再度添付させていただきます。よろしくお願いします。


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

すいません、GIF画像が小さすぎて何が何だかちょっとわかりませんでした。
画像のサイズを小さくしないでアップすることはできますでしょうか。ただ画像を見れたからといってわかるとは限らないのですが;


   
(@ろくろ)
Active Member
結合: 3年前
投稿: 6
トピックスターター  

エンコードし直しました。よろしくおねがいします。

しかしわいひらさんの指摘にもありましたが、もう半分PHPでの実装は諦めて、JavaScriptの非同期処理でなんとか実装が出来ないか試しています。そもそもPHPで処理待ちを行うのが良くなかったのかもしれません……


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

僕もGIFを撮影してみましたが、同じようにはなってないです。
※ほとんど変化なく見えますがリロードしてます。

どんなことをされるのかはわかりませんが、やっぱりこういうページ上の動的な処理はJavaScriptか、CSSのアニメーションに任せた方が無難かと思います。


   
(@ろくろ)
Active Member
結合: 3年前
投稿: 6
トピックスターター  

使っているサーバーの違いだったりするんですかね……

ともかく環境によって動作が異なるのであれば、解決するのは中々難しそうですね。PHPでの実装は諦めて、JavaScriptの非同期処理をしっかり学んでみようと思います。ご相談に乗ってくださり、ありがとうございました。


   
わいひら reacted
共有:

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

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

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

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

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

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

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

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