get_option () filtrando e saindo da recursão

3

get_option() fornece alguns filtros 'pre_option_'.$option e 'option_'.$option .

No entanto, na maioria das vezes eu tentei fazer uso deles, normalmente ele explode e não vale a pena - ou eu preciso checar outra opção dentro do meu filtro, que aciona meu filtro, que aciona meu filtro ...

Outro caso comum é que preciso ter a opção atual que estou filtrando e não posso fazer isso porque estou filtrando-a.

Apenas curioso - há alguma lógica prática a seguir aqui? Eu sei que eu poderia manipular o meu filtro, mas isso é sobrecarga que eu não gosto e filtragem de remoção é considerada não muito confiável por alguns. ;)

Para exemplos práticos recentes - Eu quero filtrar posts_per_rss para minha opção, mas forneça o valor do WordPress se a minha opção não estiver definida (para o registro eu sei que a maneira recomendada de mexer com isso é via post_limits ). / p>     

por Rarst 07.05.2011 / 17:28

1 resposta

9

Geralmente eu removo o filtro, depois o adiciono novamente;

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' );
    
por TheDeadMedic 07.05.2011 / 20:46