使用不同的附加功能多次添加_过滤器?

时间:2011-01-28 作者:Scott B

当条件为true时,我将添加此筛选器。当第二个条件为真时,我是否可以在同一个筛选器上添加另一个函数,或者最后一个条件是否会抵消前一个条件?

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\' );
}

1 个回复
最合适的回答,由SO网友:MikeSchinkel 整理而成

你好@Scott B:

绝对地这是系统设计的一部分,您可以根据需要添加任意数量的插件(其他插件也可以)

唯一的问题是,如果您可能需要解决哪一个先运行,那么您可能需要设置优先级在下面的示例中,第三个将首先运行,第二个将最后运行:

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 );  
当然,当您需要设置优先级时,您会发现它可能会与其他设置优先级较高或较低的插件发生冲突。发生这种情况的典型地方是,您希望钩子在所有其他钩子之前或之后运行。0和100的优先级是否足够?如果使用了另一个插件-1和101;看到quandry了吗?不管怎样,这通常不是问题,但当它是,它是。

结束

相关推荐