WordPress: Overskriv en kort kode fra et overordnet tema i dit barns tema

WordPress API

Nå, der er gået et stykke tid siden jeg har delt nogle tip til programmering i WordPress. På det seneste har jeg været tilbage på bænken og implementeret kode for alle vores kunder, og det har været sjovt at komme tilbage i svinget på tingene. Du har måske bemærket de nye Marketing Whitepaper-integrationer overalt på siden - det var ret et sjovt projekt!

I dag havde jeg et andet problem. Mange af vores klienter har knapper implementeret gennem overordnede temakortkoder. En af vores partnere hos Elevated Marketing Solutions spurgte, om vi kunne foretage sporing af begivenheder på knapperne, da de var gode opfordringer til handlinger overalt på siderne. Kortkodeknapper er intet andet end et ankermærke, der er designet lidt mere veltalende ved hjælp af en række klasser, der er befolket med kortkodemulighederne.

På grund af dette havde vi brug for at tilføje en onclick-begivenhed til ankerteksten for at registrere en begivenhed. Sådan ser det ud:

Hjemknappen

Problemet er selvfølgelig, at der er en kort kode på plads i vores overordnet tema og vi ønsker ikke at redigere et overordnet tema. Og da kortkoden er distribueret på tværs af indhold over hele webstedet, vil vi heller ikke oprette en ny kortkode.

Løsningen er temmelig glat. WordPress API giver dig mulighed for at fjerne en kort kode! Så i vores børnetema kan vi fjerne kortkoden og derefter erstatte den med vores nye kortkodefunktion:

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

I min nye knapfunktion (i mit Child Theme-funktioner.php) omskrev jeg kortkodefunktionen for at tilføje en dynamisk begivenhed onClick-begivenhed. Outputtet fungerer smukt og spores nu i Google Analytics!

Hvad mener du?

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.