add_filter várias vezes com diferentes funções adicionais?

2

Estou adicionando esse filtro quando a condição é verdadeira. Posso adicionar outra função no mesmo filtro quando a segunda condição for verdadeira ou a última cancelar a anterior?

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' );
}
    
por Scott B 28.01.2011 / 19:22

1 resposta

11

Oi @Scott B:

Absolutamente. Isso é parte do design do sistema, você pode adicionar quantos você precisar (outros plugins fazem.)

O único problema é se você precisar endereçar qual deles é executado primeiro e é quando você deve definir a prioridade . No exemplo abaixo, o terceiro será executado primeiro e o segundo será executado. executar por último:

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 );  

É claro que quando você precisa definir prioridades, pode causar conflitos com outros plugins que definem uma prioridade maior ou menor. Lugares típicos onde isso acontece é quando você quer que um gancho corra antes ou depois de todos os outros. São 0 e 100 prioridades suficientes? Não se outro plugin usasse -1 e 101; veja o dilema? De qualquer forma, isso geralmente não é um problema, mas quando é, é.

    
por MikeSchinkel 28.01.2011 / 19:26

Tags