Esta pergunta pode estar errada, não tenho certeza. Porque eu não sou claro sobre isso.
Eu sei add_action
que é usado para conectar nossa função à função especificada. Por exemplo, add_action('wp_head'.'myfunc');
agora, qualquer código myfunc
que será executado no wp_head()
. Isso está claro, mas estou com dúvidas no do_action
que faz?
Eu acho que é usado para criar nosso próprio gancho como ganchos já disponíveis (wp_head, wp_footer, etc. etc) Se eu estiver correto, alguém pode me mostrar uma resposta simples e compreensível com um exemplo simples.
Eu tentei a diferença na internet, mas todos estão apontando para a diferença entre add_action e add_filter. Não quero ir para lá porque primeiro quero esclarecer isso e depois vou para lá.
Alguém pode me ajudar?
EDIT após a pergunta POST
function custom_register()
{
echo '<script>jQuery(document).ready(function(){alert("Learning Hooks");});</script>';
}
do_action('custom');
add_action('custom','custom_register');
Eu tentei isso no plugin, mas não recebi a mensagem de alerta.
Mas quando eu conecto a mesma função wp_head
, ela está funcionando bem
/******************working****************/
add_action('wp_head','custom_register');
do_action('custom');
depois de registrar o retorno de chamada? E verifique se o jQuery está carregado.wp_head
ele está funcionando bem, mas não com ocustom
Respostas:
Use
do_action( 'unique_name' )
para criar suas próprias ações.Você pode usar isso para oferecer uma API para o seu plug-in , para que outros plug-ins possam registrar retornos de chamada para sua ação personalizada. Exemplo: Preciso chamar do_action no meu plugin?
Mas você também pode usar ações personalizadas (ou filtros) em um tema. Exemplo: maneira prática recomendada de implementar seções personalizadas em um tema WordPress
E você pode combinar ambos para criar um plug-in e um tema trabalhando juntos. Exemplo: Como disponibilizar o método do plugin no tema?
Resumo:
add_action( 'foo' )
registra um retorno de chamada,do_action( 'foo' )
executa esse retorno de chamada registrado.fonte
Este é o meu palpite, por isso, se você souber melhor, faça um comentário para que eu possa atualizar o meu palpite.
Seu código de plug-in é executado antes
wp_head()
(o que podemos assumir que invocará as ações adicionadas a ele). Quando vocêadd_action('wp_head','custom_register')
, você está dizendo ao PHP que quando (no futuro)do_action('wp_head')
for chamado, também será chamadocustom_register()
. O mesmo se aplica à sua chamada para,add_action('custom','custom_register')
mas como você vê no seu código, a chamada parado_action('custom')
já foi feita e, quando foi chamada, não havia (ainda) nenhuma ação adicionada a ela. É por isso que Toscho perguntou o que acontece quando você ligado_action('custom')
depois de registrar o retorno de chamada. Sua resposta sobre back-end e front-end é ambígua. Se você trocar as duas últimas linhas no código a seguir, acho que funcionará:fonte
do_action
: Registra um gancho de ação enquantoadd_action
: adiciona uma função de retorno de chamada ao gancho registrado.Exemplo
Considere que você deseja imprimir algo antes da barra lateral no seu modelo.
index.php
via<?php add_action('bp_sidebar_left'); ?>
.functions.php
arquivo, você pode adicionar uma função de retorno de chamada a esse gancho para imprimir o que quiser.add_action('bp_sidebar_left', 'bp_sidebar_left_cb'); function bp_sidebar_left_cb() { echo 'Hello World !'; }
fonte
Você tem que usar como abaixo:
fonte