サイト内検索
Cocoonフォーラム
書き込みの前に以下の3点をご確認ください。
何を書き込んだら良いか分からない場合は、以下のテンプレートをコピペしてご利用ください。
不具合・カスタマイズ対象ページのURL:
相談内容:
不具合の発生手順:
解決のために試したこと:
※文字だけでは正しく伝わらない可能性があるため、スクショ画像の添付もお願いします。
※高速化設定をしている場合は無効にしてください。
環境情報:※↑こちらに「Cocoon設定 → テーマ情報」にある「環境情報」を貼り付けてください。
環境情報の取得方法はこちら。
→ https://wp-cocoon.com/theme-report/
高速化設定を無効にするにはこちら。
→ https://wp-cocoon.com/theme-trouble/
フォーラム利用ガイドリンク
- フォーラムガイドライン
- よくある質問と答え(FAQ)
- サポート対象外のケース
- 原因不明の不具合用トラブルシューティング
- トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw)
- 真っ白画面でのエラーメッセージの確認方法
- ブラウザ環境チェックツール
- Cocoonカスタマイズ依頼
フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。
Topic starter
2024年3月21日 20:29
不具合・カスタマイズ対象ページのURL:
https://loveclassicmusic.com/
相談内容:
サイドバーのウィジェットに[C]プロフィールを使用しています。
ホームおよびカテゴリーを表示した際に「未登録のユーザーさん」と以下Warning表示になってしまいます。
Warning: Undefined variable $description in /home/ratchet3/loveclassicmusic.com/public_html/wp-content/themes/cocoon-master/lib/html-forms.php on line 1497
個別記事を表示した際は問題なく表示できるのですが、設定等で対応可能なようでしたらご教示ください。
スクショ添付しましたので、お手数ですがよろしくお願いいたします。
不具合の発生手順:
ホームおよびカテゴリー記事を表示した際。
個別記事の表示時には発生しません。
解決のために試したこと:
ウィジェットを一旦削除→再設定は試しました。
また、全プラグインを無効化してみましたが状況変わりませんでした。
環境情報:
----------------------------------------------
サイト名:LOVE CLASSIC MUSIC
サイトURL: https://loveclassicmusic.com
ホームURL: https://loveclassicmusic.com
コンテンツ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.4.3
PHPバージョン:8.1.22
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
サーバーソフト:Apache
サーバープロトコル:HTTP/1.1
言語:ja,en;q=0.9,en-GB;q=0.8,en-US;q=0.7
----------------------------------------------
テーマ名:Cocoon
バージョン:2.7.1.2
カテゴリー数:8
タグ数:0
ユーザー数:1
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:1.1.3
style.cssサイズ:845 バイト
functions.phpサイズ:203 バイト
----------------------------------------------
Gutenberg:1
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:0
----------------------------------------------
利用中のプラグイン:
Advanced Editor Tools 5.9.2
Akismet Anti-spam: Spam Protection 5.3.2
ARVE Advanced Responsive Video Embedder 9.10.15
Classic Editor 1.6.3
Contact Form 7 5.9.2
Site Kit by Google 1.122.0
WordPress Popular Posts 6.4.2
WP Sitemap Page 1.9.3
Yoast SEO 22.3
----------------------------------------------
2024年3月21日 23:50
>わいひらさん
Ver.2.7.0でも同様の現象が発生しているページを散見します。
一覧ページ(投稿、固定ページ以外)で発生しています。
ソースを見ましたが、エラーは、1497行目以前に$descriptionに値を設定していないのが問題です。
そもそも1491行目の「未登録のユーザーさん」となる条件が分からず。
わいひら reacted
2024年3月22日 16:57
改善した事から、推測すると以下の流れになります。
●発生のアルゴリズム
①一覧ページの時、以下でプロフィールを取得します。
[Cocoon設定]→[SNSフォロー]→デフォルトユーザー
②①で取得した値が無い為、「未登録のユーザーさん」となる。
③②の状態だと$descriptionが未設定の為、以下でエラーとなった。
https://github.com/xserver-inc/cocoon/blob/6978de45bba51421b2e5a6fa7f2bfcba344b3423/lib/html-forms.php#L1497
●発生する要因
オプション(get_sns_default_follow_user)保存された値が、存在しないケースかと思います。
なぜ、壊れているか?これが根本的な問題です。
●回答
気にされている、ウィジェット追加、固定ページ追加、メニュー追加などは、影響しません。
もし1回も、Cocoon設定を保存してないなら、必ず1回保存して下さい。
2024年3月22日 17:08
>わいひらさん
1度もCocoon設定を保存してない場合、wp_get_current_user()の値ってなんでしょ?
現在のログインユーザーの情報を取得し、一見、Cocoon設定には正しく表示され。
しかし、保存しないと、get_sns_default_follow_user自体がDBに無く。
閲覧者だと、何も取得できないのでは?
この為、オプション(get_sns_default_follow_user)は未定となるのでは??
わいひら reacted
2024年3月22日 19:00
●対策案
ログインユーザーでなく、管理ユーザーとする?
1人しかユーザー登録していなければ、管理ユーザー=ログインユーザーとなり。
if (!function_exists( 'get_sns_default_follow_user' ) ): function get_sns_default_follow_user(){ $user = get_theme_option(OP_SNS_DEFAULT_FOLLOW_USER); // デフォルトユーザー保存なし? if (!$user) { // 管理ユーザーを取得 $user = get_users('role=administrator')[0]->ID; } return $user; } endif;
わいひら reacted
2024年3月22日 21:23
以下のような対策を行いました。
・ユーザーIDが0の時は、1にして表示する(WordPressインストール初期時は、必ず1になるので、これでインストール初期時のエラーのほとんどをつぶせる)
・ディスクリプションが空の時、警告メッセージを表示しない(これで少なくともメッセージは出ない)
・それでもユーザーが不正の場合案内メッセージを表示する
https://github.com/xserver-inc/cocoon/commit/960602d59ca5f986f8d4ebf92cff117ad1ade75f
最新版はこちら
------------------------------------------------
https://github.com/xserver-inc/cocoon
開発中の最新ファイルをダウンロードする場合は、上記ページのダウンロードボタンからzipファイルをダウンロードしてください。
WordPressでの手動アップデート方法はこちら
https://wp-cocoon.com/manual-update-of-cocoon-theme/
------------------------------------------------
2024年3月22日 21:29
上の書き込みをする前に、再読み込みをしてなかったので、この2つの書き込みを見ていませんでした。確認してみます。
https://wp-cocoon.com/community/postid/78003/
https://wp-cocoon.com/community/postid/78004/
2024年3月22日 21:40
●対策案
ログインユーザーでなく、管理ユーザーとする?
1人しかユーザー登録していなければ、管理ユーザー=ログインユーザーとなり。
こっちの方が初期の管理ユーザー以外にも対応できていて良さそうだったので、こちらを使わせていただきました。
https://github.com/xserver-inc/cocoon/commit/24c479310e87feee71bba68634f7740ff71e75b4
2024年3月22日 22:45
ご対応いただき、ありがとうございます。
先程の環境で、親テーマのバージョンアップを行うと以下のような表示になりました。
(以下の確認になると思います)
・ユーザーIDが0の時は、1にして表示する(WordPressインストール初期時は、必ず1になるので、これでインストール初期時のエラーのほとんどをつぶせる)
・ディスクリプションが空の時、警告メッセージを表示しない(これで少なくともメッセージは出ない)
【追記】
ふと思いましたが、上のケースではユーザーが「保存」するアクションに繋がらない気がしました。
ID=0が、Cocoon設定未保存の場合であれば、一律、下のケースと同じ表示にしても良さそうな気がしました。ユーザーが「保存」をするアクションに繋がるかなと)
わいひら reacted
2024年3月22日 23:57
chu-yaさん
以前「NO USER」とした対応があったかと思うのですけれど、それがきいている気がします。
再度、以下の環境を作成しました。
ユーザーは1つだけです。
(添付画像は、html-forms.phpにvar_dump($user_id)を追加しています)
- WordPressを新規インストール
- Cocoon親テーマをインストール
(有効化せず)- Cocoon子テーマをインストール
(有効化だけ行い、「Cocoon設定」の保存は未実施)
上記だと、以下のような表示です。
続いて、「Cocoon設定」を「まとめて保存」します。
その後の表示は以下です。
その後の表示は以下です。
その後、管理者ユーザー(id=2)を追加し、最初のユーザー(id=1)を削除します。
その後の表示は以下です。
その後の表示は以下です。
わいひら reacted
2024年3月23日 00:34
@mk2_mk2 さん
①既にデフォルトユーザー=1となり。
https://github.com/xserver-inc/cocoon/blob/24c479310e87feee71bba68634f7740ff71e75b4/lib/html-forms.php#L1427
②プロフィール情報などは取得されない。
以下で初めて、該当ユーザーが存在するかチェックされ、ユーザー=1がないので、NO USERとなってしまう。
https://github.com/xserver-inc/cocoon/blob/24c479310e87feee71bba68634f7740ff71e75b4/lib/html-forms.php#L1471-L1472
①でデフォルトユーザーが無いでの、ユーザー一覧の管理者ユーザーを取得し、戻り値が2となるが望ましいです。
※ユーザー一覧のいずれかでも良いですが、対象が記事一覧なので、管理者としています。
私が先に書いたコード(最新版ソース)には、デフォルトユーザーのチェックが漏れています。
また、最新版では、以下の「未登録のユーザーさん」にはならないです。
わいひら reacted
2024年3月23日 01:53
●修正案
●html-forms.php
generate_author_box_tagを、Ver2.7.1.8のソースに戻し、以下だけを追加。
author_boxショートコードで存在しないIDを指定した時のみ、「未登録のユーザーさん」となる。
$description = '';
●sns-follow-funcs.php
get_sns_default_follow_userを以下に修正。
必ず、存在するユーザーIDを返却する為、Ver2.7.1.9で変更した、generate_author_box_tagは、初期設定漏れの追加のみで済む。
if (!function_exists( 'get_sns_default_follow_user' ) ): function get_sns_default_follow_user(){ $user = get_theme_option(OP_SNS_DEFAULT_FOLLOW_USER); // デフォルトユーザー保存なし? if (!get_userdata($user)) { // 管理ユーザーを取得 $user = get_users('role=administrator')[0]->ID; } return $user; } endif;
わいひら reacted
2024年3月23日 10:39
2024年3月24日 01:43
遅くなりました。
再度以下の環境を作成しました。
- WordPressを新規インストール
- Cocoon親テーマをインストール
(有効化せず)- Cocoon子テーマをインストール
(有効化だけ行い、「Cocoon設定」の保存は未実施)
その直後の状態は、以下です。
この後は、
- Cocoon設定を未保存
- Cocoon設定を保存
に分岐します。
【①Cocoon設定を未保存のままの場合】
その後、新規ユーザー(id=2)を追加、最初のユーザー(id=1)を削除すると、以下のような表示です。
【②Cocoon設定を保存した場合】
Cocoon設定を保存直後の表示は以下です。
更に、新規ユーザー(id=2)を追加、最初のユーザー(id=1)を削除すると、以下のような表示です。
わいひら reacted
2024年3月24日 10:57
その直後の状態は、以下です。
詳細にご確認いただきありがとうございます!
意図した表示になっているようです。
管理ユーザーを完全に消すことはできないと思うので、これで今回のような警告メッセージが出るような問題はでなくなるでしょう。
2024年9月26日 09:57
質問をどこからしたらよいのかわからないので、こちらに書かせてください。
プロフィールをサイドバーに設置したのですが、掲載本文下にも2つ入ってしまいました。これを消去するにはどうしたらいいのでしょうか。ウィジェットの本文下の部分は何度もチェックしましたが何もありません。プロフィール設定も変更していません。
2024年9月26日 12:36
Makorinrinさん
他の方のお問い合わせ・別内容のトピックへの追記はご遠慮ください。
(もし、ご自分のお問い合わせに、別の方が別内容のものをお書きになった場合、どうお感じになるでしょうか)
勝手ながら、以下へ転記させていただきました。
[C]プロフィールが掲載本文下に2つ表示されるのを消したい
https://wp-cocoon.com/community/postid/81102/
本トピックは、実質的に解決していると思いますし、確認もできているかと思います。
これを機に、クローズしてしまおうと思います。
わいひら reacted
問題の解決に至った場合には、トピック冒頭の「解決済み」をクリックしていただけますと幸いです。
また、有用な回答があった場合は返信右下にある「いいね!」もご活用ください。回答者の励みになります。
(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。
フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。
最近の書き込みはこちら。
詳細なカスタマイズ依頼をするならこちら。