add_filter varias veces con diferentes funciones de complemento?

2

Estoy agregando este filtro cuando la condición es verdadera. ¿Puedo agregar otra función en el mismo filtro cuando la segunda condición es verdadera o la última cancelará la 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' );
}
    
pregunta Scott B 28.01.2011 - 19:22

1 respuesta

11

Hola @Scott B:

Absolutamente. Eso es parte del diseño del sistema, puede agregar tantos como necesite (otros complementos).

El único problema es si es posible que tenga que abordar cuál de ellos se ejecuta primero y es cuando debe configurar la prioridad. En el siguiente ejemplo, el tercero se ejecutará primero y el segundo ejecutar el ú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 );  

Por supuesto, cuando tiene que establecer prioridades, puede encontrar que puede causar conflictos con otros complementos que establecen una prioridad más alta o más baja. Los lugares típicos donde esto sucede es cuando desea que un gancho se ejecute antes o después de todos los demás. ¿Son 0 y 100 prioridades suficientes? No si otro plugin usa -1 y 101; ver el quandry? De todos modos, eso no suele ser un problema, pero cuando lo es, lo es.

    
respondido por el MikeSchinkel 28.01.2011 - 19:26

Lea otras preguntas en las etiquetas