Estou tendo problemas para colocar minha cabeça em volta do $valuee $var. Eu li o códice e parece que ele $valuepode ser modificado $var, mas não encontrei nenhum exemplo disso na natureza. Parece ser usado como uma maneira de passar uma variável. Nesse caso, qual é a diferença entre isso e o $var?
apply_filters(
$filter_name,// used for add_filter( $filter_name, 'callback' );
$value_to_change,// the only variable whose value you can change
$context_1,// context
$context_2 // more context);
Então, quando essa função é chamada como:
// wp-login.php line 94
apply_filters('login_body_class', $classes, $action );
Se eu entendi corretamente. Não adiciono uma variável para coletar o valor retornado de apply_filters, pois ele é aplicado automaticamente a $ value_to_change?
precisa saber é o seguinte
@ r00tAcc3ss Nada acontece automaticamente. Você precisa alterar o valor no seu retorno de chamada. Você também pode devolvê-lo inalterado, se desejar - dependendo do contexto.
fuxia
Oh sim. Eu quis dizer, não preciso aceitar o valor retornado em outra variável e atribuí-lo ao valor $. Isso é feito, se eu alterar o valor $ na função viciada e retornar "automaticamente".
precisa saber é o seguinte
11
O que são filtros?
Os filtros são funções pelas quais o WordPress passa os dados, em certos pontos da execução, pouco antes de executar alguma ação com os dados (como adicioná-los ao banco de dados ou enviá-los para a tela do navegador). Os filtros ficam entre o banco de dados e o navegador (quando o WordPress está gerando páginas) e entre o navegador e o banco de dados (quando o WordPress está adicionando novas postagens e comentários ao banco de dados); a maioria das entradas e saídas no WordPress passa por pelo menos um filtro. O WordPress faz alguma filtragem por padrão, e seu plugin pode adicionar sua própria filtragem.
Conectando-se a um filtro
Para permitir que os usuários alterem alguns dados específicos (um valor, a saída de uma função etc.), os ganchos de filtro são fornecidos por meio de apply_filtersfunções.
Esses ganchos de filtro incluem o nome (ou tag ) do filtro e pelo menos o nome da função a ser usada para filtrar (ou seja, alterar de alguma forma) os dados.
Para alterar o título de uma postagem, você pode usar o the_titlegancho de filtro, definido da seguinte maneira:
apply_filters('the_title', $title, $id );
Isso significa que o filtro possui a tag / nome the_title, o primeiro parâmetro $titlesão os dados a serem alterados (ou seja, o título da postagem) e o segundo parâmetro $idé uma informação extra (nesse caso, o ID da postagem).
Para exibir o título de cada postagem em MAIÚSCULAS, por exemplo, você pode usar a seguinte linha:
add_filter('the_title','strtoupper');
Se dermos uma olhada na add_filterfunção, vemos que ela é definida da seguinte maneira:
Especificamos apenas o primeiro e o segundo parâmetro (obrigatório), enquanto o terceiro e o quarto parâmetros são configurados para seu respectivo valor padrão (ou seja, 10e 1).
Um filtro mais complexo
Se você quiser filtrar apenas uma determinada postagem , poderá usar as informações extras (no caso desse filtro: o ID). Para fazer isso, você deve especificar o número de parâmetros (que é 2 neste caso) e, para fazer isso novamente, é necessário especificar o parâmetro de prioridade (que vem antes do número de argumentos).
Suponha que desejemos afetar apenas o título da postagem com o ID 42, e será assim:
add_filter('the_title','my_strtoupper',10,2);function my_strtoupper($title, $id){if(42=== $id)return strtoupper($title);return $title;}// function my_strtoupper
Nesse caso, temos que especificar todos os quatro parâmetros disponíveis.
Quais parâmetros eu tenho?
Para identificar o (número de) parâmetros disponíveis de um determinado filtro, é necessário procurar onde ele está definido (neste caso: aqui ).
+1 para uma resposta completa e uma aula impecável (brochacho de formatação agradável)!
bosco
Obrigado, isso é muito completo, mas realmente não explica o que eu estava perguntando. por exemplo. a diferença entre a variável $ value e a variável $ var no filtro.
precisa saber é o seguinte
Hum, eu diria que sim, mas esse é, é claro, o meu sentimento subjetivo. Vou adicionar algumas informações sobre o filtro e seus parâmetros.
O que são filtros?
Conectando-se a um filtro
Para permitir que os usuários alterem alguns dados específicos (um valor, a saída de uma função etc.), os ganchos de filtro são fornecidos por meio de
apply_filters
funções.Esses ganchos de filtro incluem o nome (ou tag ) do filtro e pelo menos o nome da função a ser usada para filtrar (ou seja, alterar de alguma forma) os dados.
Para alterar o título de uma postagem, você pode usar o
the_title
gancho de filtro, definido da seguinte maneira:Isso significa que o filtro possui a tag / nome
the_title
, o primeiro parâmetro$title
são os dados a serem alterados (ou seja, o título da postagem) e o segundo parâmetro$id
é uma informação extra (nesse caso, o ID da postagem).Para exibir o título de cada postagem em MAIÚSCULAS, por exemplo, você pode usar a seguinte linha:
Se dermos uma olhada na
add_filter
função, vemos que ela é definida da seguinte maneira:Especificamos apenas o primeiro e o segundo parâmetro (obrigatório), enquanto o terceiro e o quarto parâmetros são configurados para seu respectivo valor padrão (ou seja,
10
e1
).Um filtro mais complexo
Se você quiser filtrar apenas uma determinada postagem , poderá usar as informações extras (no caso desse filtro: o ID). Para fazer isso, você deve especificar o número de parâmetros (que é 2 neste caso) e, para fazer isso novamente, é necessário especificar o parâmetro de prioridade (que vem antes do número de argumentos).
Suponha que desejemos afetar apenas o título da postagem com o ID 42, e será assim:
Nesse caso, temos que especificar todos os quatro parâmetros disponíveis.
Quais parâmetros eu tenho?
Para identificar o (número de) parâmetros disponíveis de um determinado filtro, é necessário procurar onde ele está definido (neste caso: aqui ).
Referências :
apply_filters
funçãoadd_filter
funçãofonte