WordPress: sobrescribe un código curto dun tema principal no tema do teu fillo

API de WordPress

Ben, pasou bastante tempo desde que compartín algúns consellos sobre programación en WordPress. Ultimamente, estiven de volta no banco implementando código para todos os nosos clientes e foi divertido volver ao balance das cousas. É posible que te decatases das novas integracións do Libro Blanco de Marketing en todo o sitio; iso foi bastante divertido proxecto!

Hoxe tiven un problema diferente. Moitos dos nosos clientes teñen botóns implementados mediante códigos curtos de temas pais. Un dos nosos socios de Elevated Marketing Solutions preguntou se podiamos facer algún seguimento de eventos nos botóns, xa que foron unha excelente chamada á acción en todos os sitios. Os botóns de código abreviado non son máis que unha etiqueta de áncora deseñada un pouco máis elocuentemente usando unha serie de clases que están poboadas polas opcións de código abreviado.

Debido a isto, necesitamos engadir un evento onclick ao texto de áncora para rexistrar un evento. Aquí ten o seu aspecto:

<a href="https://highbridgeconsultants.com" class="button blue medium" onClick="ga('send', 'event', 'button', 'Click', 'Home Button');">Botón de inicio

O problema, por suposto, é que hai un shortcode no noso sitio tema dos pais e non queremos editar un tema principal. E, dado que o shortcode se desprega en contido de todo o sitio, tampouco queremos crear un shortcode novo.

A solución é bastante elegante. O WordPress API permítelle eliminar un shortcode. Así, no tema infantil podemos eliminar o shortcode e substituílo pola nosa nova función shortcode:

add_action ('after_setup_theme', 'calling_child_theme_setup');
función chamando_nimo_tema_configuración () {remove_shortcode ('botón_antigo_función_en_parente_tema'); add_shortcode ('botón', 'new_button_function_in_child_theme'); }
function new_button_function_in_child_theme ($ atts, $ content = null) {... o teu novo código abreviado está aquí ...}

Na miña nova función de botón (en functions.php de My Theme Child), escribín de novo a función de código curto para engadir un evento dinámico no evento Click. A saída funciona moi ben e agora está seguindo en Google Analytics.

¿Que pensas?

Este sitio usa Akismet para reducir o spam. Aprende a procesar os teus datos de comentarios.