「メイド・イン・ヘブン」スキン適用中

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 ユーザー
3 Likes
781 表示
 carl
(@carl)
Trusted Member Registered
結合: 6年前
投稿: 36
Topic starter  

いつもお世話になっております。

先ほど投稿させていただいたこちらの相談に関連してもう1点ご相談させてください。

WPMLというプラグインを有効にしたところ、以下のような警告が大量に出力されました。

Warning: Constant HTTP_URL_REPLACE already defined in /home/ziazara/cooksealphoto.com/public_html/classicguitar.cooksealphoto.com/wp-content/themes/cocoon-master/lib/punycode.php on line 18

どうやら、WPMLを有効にしたことで、punycode.phpの18行目から28行目の以下の定義がすでにおこなわれており、警告が出るようになったようです。

define('HTTP_URL_REPLACE',1);
define('HTTP_URL_JOIN_PATH',2);
define('HTTP_URL_JOIN_QUERY',4);
define('HTTP_URL_STRIP_USER',8);
define('HTTP_URL_STRIP_PASS',16);
define('HTTP_URL_STRIP_AUTH',24);
define('HTTP_URL_STRIP_PORT',32);
define('HTTP_URL_STRIP_PATH',64);
define('HTTP_URL_STRIP_QUERY',128);
define('HTTP_URL_STRIP_FRAGMENT',256);
define('HTTP_URL_STRIP_ALL',504);

大変申し訳ないのですが、これらの意味がまったくわかっておらず、現状子テーマの方で空の「function puny_http_build_url」を定義し、上記のdefineが実行されないようにして無理矢理警告を出ないようにしています。

これらの定数に対し、たとえば「!defined」で定義済みか判定して再定義を回避してしまって問題ないでしょうか?

PHPやテーマのことがよくわかっていない状態での質問で恐縮ですが、サポートいただけると幸いです。

テーマ情報は以下です。

----------------------------------------------
サイト名:クラシックギター情報ブログ 最高の一音を求めて
サイトURL:  https://classicguitar.cooksealphoto.com
ホームURL:  https://classicguitar.cooksealphoto.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
スキン:/wp-content/themes/cocoon-master/skins/skin-colors-red/style.css
WordPressバージョン:5.8.3
PHPバージョン:8.0.12
ブラウザ:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
サーバーソフト:Apache
サーバープロトコル:HTTP/1.1
言語:ja,en;q=0.9
----------------------------------------------
テーマ名:Cocoon
バージョン:2.4.0
カテゴリ数:30
タグ数:65
ユーザー数:1
----------------------------------------------
子テーマ名:Cocoon Child
バージョン:0.0.5
style.cssサイズ:927バイト
functions.phpサイズ:458バイト
----------------------------------------------
Gutenberg:1
AMP:0
PWA:0
Font Awesome:5
Auto Post Thumbnail:0
Retina:0
ホームイメージ:/wp-content/themes/cocoon-master/screenshot.jpg
----------------------------------------------
ブラウザキャッシュ有効化:1
HTML縮小化:1
CSS縮小化:1
JavaScript縮小化:1
Lazy Load:1
WEBフォントLazy Load:1
----------------------------------------------
利用中のプラグイン:
Contact Form 7 5.5.3
Contact Form 7 Multilingual 1.1.0
EWWW Image Optimizer 6.3.0
Post List Generator 1.3.0
PS Auto Sitemap 1.1.9
Really Simple CAPTCHA 2.1
Regenerate Thumbnails 3.1.5
Toolset Types 3.4.15
What's New Generator 2.0.2
WP Fastest Cache 0.9.7
WPML Media 2.7.0
WPML Multilingual CMS 4.5.2
WPML String Translation 3.2.0
WP Multibyte Patch 2.9
WPvivid Backup Plugin 0.9.67
XML Sitemap & Google News 5.3.2
----------------------------------------------

不明点等ありましたらお知らせください。

お手数をおかけしますがよろしくお願いいたします。


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

これらの定数に対し、たとえば「!defined」で定義済みか判定して再定義を回避してしまって問題ないでしょうか?

WPMLプラグイン側のHTTP_URL_REPLACE定数の値がどのようになっているかによるかと思います。
値が同じ1なら問題ないように思います。


   
carl reacted
 carl
(@carl)
Trusted Member Registered
結合: 6年前
投稿: 36
Topic starter  

お忙しいところご回答ありがとうございます。

たしかに、WPML側と値が同じかわからないため、安易に定義を外すのは危険ですね…。

punycode.phpを改変し、それぞれのHTTP_URL_*の末尾に「_COCOON」をつけることで対処することにします。

この対処したバージョンをGitHubからプルリクエストした場合、取り込んでいただくことは可能でしょうか?

あまり需要のない改変のため恐縮ですが、ご検討いただけと幸いです。


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

たしかに、WPML側と値が同じかわからないため、安易に定義を外すのは危険ですね…。

プラグインのファイルすべてを「HTTP_URL_REPLACE」というキーワードでgrep検索すれば値が分かるかと思います。


   
 carl
(@carl)
Trusted Member Registered
結合: 6年前
投稿: 36
Topic starter  

アドバイスありがとうございます。

投稿者:: @yhira

プラグインのファイルすべてを「HTTP_URL_REPLACE」というキーワードでgrep検索すれば値が分かるかと思います。

その通りです。

ただ、プラグイン側がその値をずっと同じのまま使う保証はなく、他のプラグインが定義した値をテーマが使うのも望ましい状態ではないと考え、

投稿者:: @carl

punycode.phpを改変し、それぞれのHTTP_URL_*の末尾に「_COCOON」をつけることで対処することにします。

という対処をおこないました。

ところで、

投稿者:: @carl

この対処したバージョンをGitHubからプルリクエストした場合、取り込んでいただくことは可能でしょうか?

についてはいかがでしょうか?

取り込んでいただけると、私としてはCocoonのバージョンアップのたびに当該コードに変更がないか確認する必要がなくなり、わいひら様としても同様の質問が来ることが無くなるかと思います。

ただ、Cocoonのコードをこのような理由で改変することに抵抗があるということであれば、個人での管理にとどめることにいたします。

ご検討よろしくお願いいたします。


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

変更するとしたら、定義されているpunycode.phpに定義されている定数全ての頭に「COCOON_」になっているのだとしたら。
ただ、申し訳ないですが、実物のプルリクエストを見てみないと取り込めるかどうかの明言はできません。不具合を確認する必要があるので。
不具合がないようであれば、マージすると思います。


   
 carl
(@carl)
Trusted Member Registered
結合: 6年前
投稿: 36
Topic starter  

ありがとうございます。

ご指示の通り、"HTTP_URL_*"を"COCOON_HTTP_URL_*"に変更したものをGitHub上で提案させていただきました。

https://github.com/yhira/cocoon/pull/65

お手数をおかけして恐縮ですが、ご確認および取り込みのご検討、よろしくお願いいたします。


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

お手数をおかけします。
プルリクエストありがとうございます!
GitHubの方にはマージしておきました。
https://github.com/yhira/cocoon/commit/fe3f69435d2fff7dcea0ae51c8c2afe164292dbb


   
 carl
(@carl)
Trusted Member Registered
結合: 6年前
投稿: 36
Topic starter  

ありがとうございます。

本当に助かります。

本件はクローズさせていただきます。


   
わいひら reacted
共有:

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

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

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

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

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

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

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

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