Eu tenho um snippet de javascript que quero injetar no rodapé da página. É um código de rastreamento, digamos, semelhante ao Google Analytics. Não tem dependências, é um trecho independente.
Eu posso fazer algo assim
function render_tracking_code(){
wp_enqueue_script( 'depends-js', 'https://rdiv.com/dummy.js', array(), '0.01', true );
wp_add_inline_script( 'depends-js', 'aWholeBunchOfJavascriptCode' );
}
add_action( 'wp_enqueue_scripts', 'render_tracking_code' );
Parece um pouco estúpido (dummy.js é um arquivo em branco), mas funciona. Existe uma maneira de pular a dependência?
fonte
wp_add_inline_script()
sem dependência ainda está sendo considerado para 4.9.9, não significa necessariamente que será adicionado. Portanto, é aconselhável aguardar a confirmação antes de usar esse recurso.Atualização: o WordPress adicionou suporte para adicionar scripts e estilos embutidos sem dependência na v5.0. Veja a resposta da @ birgire para implementações.
Ao usar
wp_add_inline_script()
,WP_Scripts::print_inline_script()
será usado para gerar scripts embutidos. Por design,print_inline_script()
requer uma dependência válida$handle
,.Como não há dependência neste caso,
wp_add_inline_script()
não é a ferramenta certa para o trabalho. Em vez de criar um arquivo de dependência falso (e uma solicitação HTTP adicional indesejável), usewp_head
ouwp_footer
para gerar o script embutido:Geralmente, o JavaScript deve ser adicionado a um
.js
arquivo e enfileirado usandowp_enqueue_script()
nowp_enqueue_scripts
gancho. Os dados podem ser disponibilizados para o script usandowp_localize_script()
. Às vezes, ainda pode ser necessário adicionar um script embutido.fonte
Uma maneira de fazer isso é criar uma função que ecoa seu script dentro de uma
<script>
tag e conectá-la àwp_print_footer_scripts
ação. Você deve evitar qualquer coisa que não controle estritamente, mas, de outra forma, esse é um método fácil e seguro.Por exemplo:
fonte