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 a través de códigos curtos do tema principal. Un dos nosos socios de Elevated Marketing Solutions preguntounos se podiamos facer algún seguimento de eventos nos botóns, xa que eran 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 referencia para rexistrar un evento. Aquí ten o seu aspecto:

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 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.