サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2023年4月8日 14:38
いつもわいひら様、フォーラムの皆様、Cocoonにお世話になっております。
不具合・カスタマイズ対象ページのURL: https://wordpress-solution.info/
相談内容:現在、表題のとおりトップページの記事一覧にて、抜粋文字数が反映されない不具合(?)が出ております。
更新前の状態であればCocoon設定のインデックスタブ、抜粋文字数の通りに制限できていたのですが、更新直後から文字数が制限できなくなっている状態です。
複数サイトで同じ現象が確認できています。
不具合の発生手順:cocoonのバージョンを2.5.4.4から2.5.8.3に更新した
解決のために試したこと:
PHPバージョンの変更や設定のやり直し、キャッシュの削除、プラグイン停止などを行いましたが文字数設定が反映されませんでした。
過去のフォーラムで出ていた
//スニペットの文字数制限
add_filter('get_the_snipet', function($snipet){
return get_content_excerpt($snipet, 100);//←数字を直接入力
});
上記も試したのですが、制御できませんでした(見当はずれでしたらすみません)
cocoon2.5.6.8にバージョンを落とすと抜粋部は正常に動作しました。
またすこし主旨とずれますが
https://wp-cocoon.com/manual-downgrade-of-cocoon-theme/
こちらの手順通りに実行しても古いcocoonテーマをアップできず、「辿ったリンクは期限が切れています」の表示で更新ができません。こちらは現在は方法が変わっているのでしょうか?※今回はFTPで対応しました。
試した後、環境表示のためCocoonは最新に更新しております。
上記はPHPのアップロードファイルの最大容量の問題でした。
同じ質問がまた来るかもしれないのでこの辺り書き加えておくといいかもしれません。
環境情報:
---------------------------------------------- サイト名:test サイトURL: https://wordpress-solution.info/--- ホームURL: https://wordpress-solution.info コンテンツ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 WordPressバージョン:6.2 PHPバージョン:8.0.27 ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 サーバーソフト:Apache サーバープロトコル:HTTP/1.1 エンコーディング:gzip, deflate, br 言語:ja ---------------------------------------------- テーマ名:Cocoon バージョン:2.5.8.3 カテゴリー数:1 タグ数:0 ユーザー数:1 ---------------------------------------------- 子テーマ名:Cocoon Child バージョン:1.1.3 style.cssサイズ:895バイト functions.phpサイズ:366バイト ---------------------------------------------- Gutenberg:1 AMP:0 PWA:0 Font Awesome:4 Auto Post Thumbnail:0 Retina:0 ホームイメージ:/---/wp-content/themes/cocoon-master/screenshot.jpg ---------------------------------------------- ブラウザキャッシュ有効化:0 HTML縮小化:0 CSS縮小化:0 JavaScript縮小化:0 Lazy Load:1 ---------------------------------------------- 利用中のプラグイン: All-in-One WP Migration 7.73 SiteGuard WP Plugin 1.7.4 ----------------------------------------------
※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
2023年4月8日 16:49
get_the_snipetで抜粋文を取得していません。
この為、記載したコードは実行されません。
●不具合作り込みの経緯
https://wp-cocoon.com/community/postid/68434/
Ver2.5.7.16
抜粋文字数を空白とすると、placeholder=120が表示され。
一見、120文字抜粋されるように見え修正を行った。
https://github.com/xserver-inc/cocoon/commit/92035a7cafaeb8d1a52dc13e5d0f2951b5533887
●原因
is_intで文字数を判定し、空白なら120としたかった。
判定前後、var_dumpを入れ確認すると、get_content_excerptの引数$lengthの型はstringとなった。
数値intで無い為、設定しても常に抜粋文字数120となってしまう。
●対策
is_intでなくis_numericに修正する。
わいひら and mysanc0303 reacted
Topic starter
2023年4月8日 17:23
ご返信ありがとうございます。
コード使用していないとのこと、ご指摘ありがとうございます。
内容確認しました、そういう経緯があったのですね。
テストとして、cocoon-masterのfunctions.php内、
//$lengthが整数じゃなかった場合の処理 if (!is_int($length)) { $length = 120; }
の部分を
//$lengthが整数じゃなかった場合の処理 if (!is_numeric($length)) { $length = 120; }
と書き換えると設定が反映されることが確認できました。
https://wordpress-solution.info/
現在、こちらのテストページに反映させており、インデックスのスニペットを20文字に設定しています。
また、スニペット設定が反映されないのはCocoon設定タブの投稿(関連記事)のスニペットも同様で、上記の修正で動作するようです。
2023年4月8日 18:19
私は単なる1ユーザで、開発サイドの人間ではありません。
善意で調査してるにすぎません。
この為、間違いもあるかと思います。(言い訳笑)
●現象
現在、こちらのテストページに反映させており、インデックスのスニペットを20文字に設定しています。
上記を見ると20文字になっておらず。
●原因
Gutenbergエディターで段落を追加した際、段落間に改行コードが入り。
この為、$content内に改行コードが混入する。
get_content_excerptで、文字除外の時、改行コードを考慮していない。
この為、改行コード数分、文字がずれると思われる。
●対策
以下を追加し、改行コードを除去する。
$content = str_replace(PHP_EOL, '', $content);
わいひら reacted
Topic starter
2023年4月8日 18:45
ご返信ありがとうございます。改行が入っているとずれるものかと思っておりました。
cu-ya様の調査のスピード感が本当にすごいです、本番で指摘を受けて発覚したので結構焦っていたのですが、調べても全然原因に辿り着けませんでした。どうやったらその境地に辿り着けるのか…!
・何もせずそのまま
テスト投稿10です123456...(15文字(全角半角区別無し)+...)
<h2 class="entry-card-title card-title e-card-title" itemprop="headline">テスト投稿10</h2> <div class="entry-card-snippet card-snippet e-card-snippet"> テスト投稿10です 123456... </div>
・エディタ内で改行を消す
テスト投稿10です1234567891...(19文字(全角半角区別無し)+...)
<h2 class="entry-card-title card-title e-card-title" itemprop="headline">テスト投稿10</h2> <div class="entry-card-snippet card-snippet e-card-snippet"> テスト投稿10です1234567891... </div>
・function.phpに $content = str_replace(PHP_EOL, '', $content);を追記
テスト投稿10です12345678910...(20文字(全角半角区別無し)+...)
<div class="entry-card-content card-content e-card-content"> <h2 class="entry-card-title card-title e-card-title" itemprop="headline">テスト投稿10</h2> <div class="entry-card-snippet card-snippet e-card-snippet"> テスト投稿10です12345678910... </div>
となります。
現在テスト投稿10のみエディタ内で改行消し、その他は改行あり+functions.php追記状態です。
cocoon-master内、functions.phpの65行目の下に
$content = str_replace(PHP_EOL, '', $content);
を追加してテストを行いました。きっちり20文字カウントされているようです。
わいひら reacted
2023年4月9日 19:49
ご連絡いただきありがとうございます。
chu-yaさんの修正提案をそのまま親テーマに適用させていただきました。
https://github.com/xserver-inc/cocoon/commit/2fa0960134d4d4d94fe9ebbfc2de053d2a46728a
ご提案いただきありがとうございます。
mysanc0303 reacted
2023年4月10日 19:38
ご連絡ありがとうございます。修正しておきました。
https://github.com/xserver-inc/cocoon/commit/7cd484270f768e676198407d4162901e55a6d8bc
mysanc0303 and mk2 reacted
2023年4月11日 20:04
ご確認ありがとうございます。
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。