Masarki Kondo
メンバー
3 years前の投稿 #
まだ、公開されている機能ではないのですが...
先日、コメントの重複チェックを行った際、必ずwp_dieを使ってエラーページに移行してしまうので困っていました。
wp_dieについて調べていたところ、WordPress Tracにて
「#6589 Add Filter To wp_die message」
http://trac.wordpress.org/ticket/6589
というソースが提案されていました。
このフィルタは、試してみましたがすごく有用だと思いました。
でも、できればこのパッチに以下のことを追加提案したいのですが、提案先がtrac内では手も足も出ません。それにまだ公開バージョンにはない機能ですし。
まだtrac内にあるソースに対して提案する方法はないのでしょうか。
方法等があったらどなたか教えてください。
追加提案とは以下の通りです。
1. フィルタの引数に「$admin_dir」を追加
せっかく、wp_dieでwp_admin下であるかを調べているので、フィルタ側で再利用できればいいなぁと思ったのです。
2. フィルタの結果が、偽の場合はwp_dieを終了。
たとえば、コメントのチェックだけをしたいのに、必ずエラーページが生成され、dieしてしまいます。
メッセージをfalseで返した場合、dieしないで「return false;」で返してくれればいいなぁと思うのですが...
あるいは、dieせずwp_dieを抜ける方法があれば...
Masarki Kondo
メンバー
3 years前の投稿 #
自己レスです。
書く場所を間違えました。
これは「開発版」に書くべきでした。ごめんなさい。
どうやったら削除、移動できるだろう...ごめんなさい。
このフォーラムのアカウントは trac でも使えますので、trac にログインできます。
そして、該当チケットにコメントすればいいですよ。ソースをそのままコメントに書いてもいいですし、添付ファイルとして書いてもいいでしょう。
で、提案内容に対しては、以下のように思いました。
(1) フィルタ関数側で is_admin() 関数を使えばいいので、$admin_dir はなくてもいいはず。
(2) これは、コメントの重複チェック時に wp_die を呼ぶのが問題なので、それを修正すべきです。重複検出後、wp_die を呼ぶかどうかをフィルターするとか、アクションを実行するとかが考えられます。wp_die を呼んでも、そこから戻ってくるというのは、WordPress コアやプラグインで想定してない事態なので、副作用が大きすぎます。
ということで、ご提案をそのまま trac に送るのは、個人的にはいまいち感があります。
で、書く場所ですが、WordPress に対する提案とも言えるので、あながち間違いとは言えないですよ。ナイトリービルドやRC版でバグ発見とかそういうのは、「開発版」でしょうけど。
Masarki Kondo
メンバー
3 years前の投稿 #
>lilyfanさん
ご教授ありがとうございます。
プラグインの提出をSubversionで出しているので、同様にアクセスすればよかったのですね。
ご指摘の件ですが、
(1) フィルタ関数側で is_admin() 関数を使えばいいので、$admin_dir はなくてもいいはず。
確かにその通りです。が、せっかくwp_dieの中で判定まで行っているので、それを使わず改めてis_admin()をしなくてもよいのではと思いました。
(2) これは、コメントの重複チェック時に wp_die を呼ぶのが問題なので、それを修正すべきです。
実はその通りだと思います。コメントの重複チェックのみだと、wp_allow_comment関数側の修正を提案すべきものだと思います。
実際、同じwp_allow_comment関数内で"flood-protection"は"comment_flood_filter"を使っているようなので、同じように"comment_duplicate_filter"(仮称)を設けるべきだと思います。
tracに送るのはもう少し様子みてからにします。