Estou carregando alguns arquivos JavaScript no tema principal. O caminho no tema pai é:
scripts > custom.js
No tema filho, estou criando o mesmo caminho ( scripts > custom.js
) e alterando algumas das jQuery dentro do custom.js
arquivo.
O problema é que as alterações não estão sendo aplicadas. Essa é a maneira errada de fazer alterações nesses arquivos no tema filho?
child-theme
wp-enqueue-script
Chris Molitor
fonte
fonte
Respostas:
Os temas filhos substituem apenas arquivos php (como header.php) que estão incluídos em funções como get_template_part ou get_header, etc.
A maneira correta de adicionar scripts ao WordPress é com wp_enqueue_script . Se o seu tema pai usar isso, você poderá substituir os arquivos JS usando wp_dequeue_script e enfileirando o seu próprio.
Igual a...
Se o tema pai não estiver usando wp_enqueue_script, provavelmente está conectando-se a wp_head (ou wp_footer) para ecoar os scripts lá. Portanto, você usaria remove_action para se livrar dessas funções que ecoam os scripts e enfileirar seu próprio script.
Se o script estiver codificado no arquivo de modelo, você precisará substituí-lo no tema filho sem a tag de script.
Se eles usaram chamadas wp_enqueue_script que utilizam get_stylesheet_directory_uri , não é necessário fazer nada. Como isso não está acontecendo, você terá que bisbilhotar e ver o que o autor do tema fez.
fonte
wp_enqueue_scripts
poderia ser usado para enfileirar apenas scripts no front end. Atualizada. Se você vir algo desatualizado, sinta-se à vontade para editar.add_action( 'wp_enqueue_scripts', 'wpse26822_script_fix', 100 );
de codex.wordpress.org/Function_Reference/wp_dequeue_scriptwp_deregister_script('parent-script-handle');
para remover completamente o script pai. Na verdade, não funcionou para mim sem ele. WP 4.6.1Em alguns casos, é importante priorizar as chamadas add_action e wp_enqueue_script da seguinte maneira:
Nesse caso, wp_enqueue_scripts foi chamado pelo pai com uma prioridade 20120206 (a data) e, portanto, essa ação é adicionada com uma prioridade apenas um pouco maior para que seja retirada da fila imediatamente. Em seguida, a declaração de enfileiramento a seguir é realmente priorizada depois disso, para garantir que ela seja carregada após a retirada da antiga. O verdadeiro, nesse caso, também é importante porque especifica que ele deve ser enfileirado no rodapé, que é onde o script pai foi enfileirado pela primeira vez.
Além disso, não consigo explicar completamente, mas percebo que, se você tomar cuidado com o desenfileiramento do script inicial imediatamente após o enfileiramento, parece que você pode efetivamente impedir que ele seja carregado em primeiro lugar.
fonte
wp_enqueue_script
não possui um parâmetro de prioridade, é apenas um número de versão que é concatenado no final do caminho como uma string de consulta. Este parâmetro é usado para garantir que a versão correta seja enviada ao cliente, independentemente do cache [...]chame wp_deregister_script antes de registrar sua própria versão
fonte
fonte