it-swarm.com.de

mehrmals add_filter mit verschiedenen addon funktionen?

Ich füge diesen Filter hinzu, wenn die Bedingung erfüllt ist. Kann ich dem gleichen Filter eine weitere Funktion hinzufügen, wenn die 2. Bedingung erfüllt ist, oder hebt die letzte die vorherige auf?

if(get_option('my_nofollow_flag'){
    add_filter('wp_insert_post_data', 'save_add_nofollow' );
}

if(get_option('my_second_option'){
    add_filter('wp_insert_post_data', 'another_function' );
}
2
Scott B

Hallo @Scott B:

Absolut. Dies ist Teil des Systemdesigns. Sie können so viele hinzufügen, wie Sie benötigen.(andere Plugins tun dies.)

Das einzige Problem besteht darin, dass Sie möglicherweise angeben müssen, welches zuerst ausgeführt wird. In diesem Fall müssen Sie möglicherweise priority. festlegen. Im folgenden Beispiel wird das dritte zuerst ausgeführt und das zweite wird ausgeführt zuletzt:

add_filter('wp_insert_post_data','norm_priority_func'); // 10=default priority 
add_filter('wp_insert_post_data','run_last_funcn', 11 );  
add_filter('wp_insert_post_data','run_first_func', 9 );  

Wenn Sie Prioritäten setzen müssen, kann dies natürlich zu Konflikten mit anderen Plugins führen, die eine höhere oder niedrigere Priorität festlegen. Typische Orte, an denen dies geschieht, sind Orte, an denen ein Hook vor oder nach allen anderen ausgeführt werden soll. Sind 0 und 100 ausreichend Prioritäten? Nicht, wenn ein anderes Plugin -1 und 101 verwendet; siehst du das quandry? Wie auch immer, das ist normalerweise kein Problem, aber wenn es ist, ist es es.

12
MikeSchinkel