get_option()
提供两个筛选器\'pre_option_\'.$option
和\'option_\'.$option
.
然而,大多数时候,我试图利用这些,它通常会爆炸,不值得麻烦-要么我需要检查我的过滤器内的另一个选项,它会触发我的过滤器,它会触发我的过滤器。。。
另一种常见情况是,我需要获取当前正在筛选的选项,但我无法这样做,因为我正在筛选它。
只是好奇——这里有什么实际的逻辑可以遵循吗?我知道我可以调整我的过滤器,但这是我不喜欢的开销,一些人认为删除过滤器不太可靠。。)
对于最近的实际示例,我想筛选posts_per_rss
我的选项,但如果我的选项未设置,请提供WordPress值(我知道建议通过post_limits
).
最合适的回答,由SO网友:TheDeadMedic 整理而成
通常我把过滤器取下来,然后再加回去;
function _my_custom_option( $option )
{
remove_filter( \'pre_option_name\', \'_my_custom_option\' );
// do what you like with $option
add_filter( \'pre_option_name\', \'_my_custom_option\' );
return $option;
}
add_filter( \'pre_option_name\', \'_my_custom_option\' );