質問: remove_filterが機能しないのはいつですか? remove_filterはある状況下では動作しないという報告があります、そして代替案を提供するべきです 。しかし、この記事では、これがどのような状況下で起こるのかを明確にはしていません。私はwordpressとphpバージョン、そして最終的に提供される他の関連情報で、remove_filterを壊すコード例を探しています。私は次のスニペットが使えるテンプレートであるべきだと思います:<?php include('wp-load.php'); function filtertest_function($value) { return 'filtered'; } var_dump(apply_filters('filtertest', 'original value')); add_filter('filtertest', 'filtertest_function'); var_dump(apply_filters('filtertest', 'original value')); remove_filter('filtertest', 'filtertest_function'); var_dump(apply_filters('filtertest', 'original value')); これは期待されたものを返します。string(14) "original value" string(8) "filtered" string(14) "original value" フィルタがクラスの一部である場合、または複数のフィルタが使用されている場合は、エラーが発生すると思います。 _wp_filter_build_unique_id が関与していることがわかります 。そのコードのエラーの原因がどこにあるかを指摘してください。
回答: denisがhakreのブログにコメントしたように、これは問題の非常に基本的な例です。function run_me_once() { remove_action( 'foobar', 'run_me_once' ); echo 'test....'; } add_action( 'foobar', 'run_me_once' ); function run_me2() { echo 'test2....'; } add_action( 'foobar', 'run_me2', 11 ); echo ''; do_action( 'foobar' ); // test.... echo ''; echo ''; do_action( 'foobar' ); // test2.... echo ''; ただし、そのコードを実行する前に、自分で考えてみてください。結果はどうなるでしょうか。結果がどうなるべきか決まったら、それを実行して何が起こるのかを確認します。