WordPress: sobrescrever um shortcode de um tema pai em seu tema filho

API WordPress

Bem, já faz um bom tempo que compartilho algumas dicas sobre programação em WordPress. Ultimamente, voltei ao banco de dados implantando código para todos os nossos clientes e tem sido divertido voltar ao ritmo das coisas. Você deve ter notado as novas integrações de whitepaper de marketing em todo o site - isso foi bastante projeto divertido!

Hoje, tive um problema diferente. Muitos de nossos clientes têm botões implementados por meio de códigos de acesso do tema pai. Um de nossos parceiros da Elevated Marketing Solutions perguntou se poderíamos fazer algum rastreamento de eventos nos botões, uma vez que eram ótimas frases de chamariz em todos os sites. Os botões de shortcode nada mais são do que uma tag de âncora projetada de forma um pouco mais eloquente, usando uma série de classes preenchidas pelas opções de shortcode.

Por causa disso, precisamos adicionar um evento onclick ao texto âncora para registrar um evento. Pode ser assim:

Botão Home

O problema, claro, é que existe um código curto em nosso tema pai e não queremos editar um tema pai. E, como o shortcode é implantado em todo o conteúdo do site, também não queremos criar um novo shortcode.

A solução é bastante engenhosa. O WordPress API permite que você remova um shortcode! Portanto, em nosso tema filho, podemos remover o shortcode e, em seguida, substituí-lo por nossa nova função shortcode:

add_action ('after_setup_theme', 'calling_child_theme_setup');
função call_child_theme_setup () {remove_shortcode ('old_button_function_in_parent_theme'); add_shortcode ('botão', 'new_button_function_in_child_theme'); }
function new_button_function_in_child_theme ($ atts, $ content = null) {... seu novo shortcode está aqui ...}

Em minha nova função de botão (em functions.php do meu Tema filho), reescrevi a função shortcode para anexar um evento onClick de evento dinâmico. A saída funciona perfeitamente e agora é rastreada no Google Analytics!

O que você acha?

Este site usa o Akismet para reduzir o spam. Saiba como seus dados de comentário são processados.