WordPress: Overskriv en kort kode fra et foreldretema i barnet ditt

WordPress API

Vel, det er ganske lenge siden jeg har delt noen tips om programmering i WordPress. I det siste har jeg vært tilbake på benken for å distribuere kode for alle våre kunder, og det har vært morsomt å komme tilbake i svingen av ting. Du har kanskje lagt merke til de nye Marketing Whitepaper-integrasjonene på hele nettstedet - det var ganske bra morsomt prosjekt!

I dag hadde jeg en annen sak. Mange av våre klienter har knapper implementert gjennom foreldrekortkoder. En av våre samarbeidspartnere på Elevated Marketing Solutions spurte om vi kunne gjøre noe sporing av hendelser på knappene, siden de var gode oppfordringer til hele nettstedet. Kortkodeknapper er ikke noe mer enn et ankermerke som er designet litt mer veltalende ved hjelp av en serie klasser som er befolket av kortkodealternativene.

På grunn av dette trengte vi å legge til en onclick-hendelse i ankerteksten for å registrere en hendelse. Slik kan det se ut:

Hjem-knapp

Problemet er selvfølgelig at det er en kortkode på plass i vår foreldretema og vi vil ikke redigere et overordnet tema. Og siden kortkoden er distribuert over innhold over hele nettstedet, vil vi heller ikke opprette en ny kortkode.

Løsningen er ganske glatt. WordPress API lar deg fjerne en kort kode! Så i vårt barns tema kan vi fjerne kortkoden og deretter erstatte den med vår nye kortkodefunksjon:

add_action ('after_setup_theme', 'calling_child_theme_setup');
funksjon calling_child_theme_setup () {remove_shortcode ('old_button_function_in_parent_theme'); add_shortcode ('button', 'new_button_function_in_child_theme'); }
funksjon new_button_function_in_child_theme ($ atts, $ content = null) {... den nye kortkoden din er her ...}

I den nye knappefunksjonen min (i funksjonene til barnetemaet mitt.php), skrev jeg om kortkodefunksjonen for å legge til en dynamisk hendelse onClick-hendelse. Produksjonen fungerer vakkert og spores nå i Google Analytics!

Hva tror du?

Dette nettstedet bruker Akismet for å redusere spam. Lær hvordan kommentaren din behandles.