サイト内検索
定義済みの定数に関する警告について | Cocoonテーマに関する質問 | Cocoon フォーラム

Topic starter2022年1月17日 10:57
いつもお世話になっております。
先ほど投稿させていただいたこちらの相談に関連してもう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
----------------------------------------------
不明点等ありましたらお知らせください。
お手数をおかけしますがよろしくお願いいたします。
2022年1月18日 19:15
これらの定数に対し、たとえば「!defined」で定義済みか判定して再定義を回避してしまって問題ないでしょうか?
WPMLプラグイン側のHTTP_URL_REPLACE定数の値がどのようになっているかによるかと思います。
値が同じ1なら問題ないように思います。
carl 件のいいね!
Topic starter2022年1月19日 10:14
お忙しいところご回答ありがとうございます。
たしかに、WPML側と値が同じかわからないため、安易に定義を外すのは危険ですね…。
punycode.phpを改変し、それぞれのHTTP_URL_*の末尾に「_COCOON」をつけることで対処することにします。
この対処したバージョンをGitHubからプルリクエストした場合、取り込んでいただくことは可能でしょうか?
あまり需要のない改変のため恐縮ですが、ご検討いただけと幸いです。
2022年1月19日 20:01
たしかに、WPML側と値が同じかわからないため、安易に定義を外すのは危険ですね…。
プラグインのファイルすべてを「HTTP_URL_REPLACE」というキーワードでgrep検索すれば値が分かるかと思います。
Topic starter2022年1月19日 20:45
アドバイスありがとうございます。
プラグインのファイルすべてを「HTTP_URL_REPLACE」というキーワードでgrep検索すれば値が分かるかと思います。
その通りです。
ただ、プラグイン側がその値をずっと同じのまま使う保証はなく、他のプラグインが定義した値をテーマが使うのも望ましい状態ではないと考え、
punycode.phpを改変し、それぞれのHTTP_URL_*の末尾に「_COCOON」をつけることで対処することにします。
という対処をおこないました。
ところで、
この対処したバージョンをGitHubからプルリクエストした場合、取り込んでいただくことは可能でしょうか?
についてはいかがでしょうか?
取り込んでいただけると、私としてはCocoonのバージョンアップのたびに当該コードに変更がないか確認する必要がなくなり、わいひら様としても同様の質問が来ることが無くなるかと思います。
ただ、Cocoonのコードをこのような理由で改変することに抵抗があるということであれば、個人での管理にとどめることにいたします。
ご検討よろしくお願いいたします。
2022年1月20日 19:28
変更するとしたら、定義されているpunycode.phpに定義されている定数全ての頭に「COCOON_」になっているのだとしたら。
ただ、申し訳ないですが、実物のプルリクエストを見てみないと取り込めるかどうかの明言はできません。不具合を確認する必要があるので。
不具合がないようであれば、マージすると思います。
Topic starter2022年1月21日 13:10
ありがとうございます。
ご指示の通り、"HTTP_URL_*"を"COCOON_HTTP_URL_*"に変更したものをGitHub上で提案させていただきました。
https://github.com/yhira/cocoon/pull/65
お手数をおかけして恐縮ですが、ご確認および取り込みのご検討、よろしくお願いいたします。
わいひら 件のいいね!
2022年1月21日 19:30
お手数をおかけします。
プルリクエストありがとうございます!
GitHubの方にはマージしておきました。
https://github.com/yhira/cocoon/commit/fe3f69435d2fff7dcea0ae51c8c2afe164292dbb