Hänge verschiedene functionen bedingt an den gleichen Filter ODER Übergeben Sie zusätzliche Argumente an bestehende Filter?

Ist es möglich, 3 verschiedene functionen bedingt an denselben Filter anzuhängen, zB:

 

Oder wenn das nicht möglich ist, kann ich ein zusätzliches Argument an die gleiche function übergeben, um meine 3 verschiedenen Bedingungen zu kennzeichnen? Etwas wie:

  

Alles, was ich bei meiner Lektüre finden konnte, war, dass es etwas mit apply_filters zu tun apply_filters , aber ich konnte es nicht apply_filters .

Kann mir bitte jemand sagen, wie ich das erreichen kann? Vielen Dank!

Solutions Collecting From Web of "Hänge verschiedene functionen bedingt an den gleichen Filter ODER Übergeben Sie zusätzliche Argumente an bestehende Filter?"

Da es eine interessante Frage zu sein scheint, werde ich eine Kompilierung und Antwort geben.

Methode 1

Total in Ordnung, wird funktionieren. Hier ist das kompakte Stück Code, mit dem ich es getestet habe:

 function fnc_1( $content ) { return 'func1 :: '.$content; } function fnc_2( $content ) { return 'func2 :: '.$content; } function fnc_3( $content ) { return 'func3 :: '.$content; } $a = false; $b = false; if ( $a ) add_filter( 'the_content', 'fnc_1' ); elseif ( $b ) add_filter( 'the_content', 'fnc_2' ); else add_filter( 'the_content', 'fnc_3' ); 

Methode 2

add_filter keine zusätzlichen Argumente an die Filterfunktion übergeben, aber wenn Sie wirklich eine function teilen müssen, können Sie einen benutzerdefinierten Filter wie folgt um den Filter add_filter :

 add_filter( 'wpse31470_filter_wrapper', 'wpse31470_filter_wrapper_func', null, 2 ); function wpse31470_filter_wrapper_func( $content, $condition ) { if ( $condition ) return 'TRUE :: '.$content; else return 'FALSE ::'.$content; } add_filter( 'the_content', 'wpse31470_the_content_filter' ); function wpse31470_the_content_filter( $content ) { $condition = true; return apply_filters( 'wpse31470_filter_wrapper', $content, $condition ); } 

Der Zweck von wpse31470_the_content_filter besteht darin, das vom Filter the_content bereitgestellte Argument zu the_content und es zusammen mit zusätzlichen Argumenten an Ihren eigenen wpse31470_filter_wrapper .