„WordPress“: perrašykite trumpąjį kodą iš tėvų temos savo vaiko temoje

„WordPress“ API

Na, praėjo nemažai laiko, nes „WordPress“ pasidalijau keliais programavimo patarimais. Pastaruoju metu grįžau į atsarginių suolą, naudodamas kodą visiems mūsų klientams, ir buvo smagu grįžti į dalykų sūpynę. Galbūt pastebėjote naujas „Marketing Whitepaper“ integracijas visoje svetainėje - tai buvo gana smagus projektas!

Šiandien aš turėjau kitą problemą. Daugelis mūsų klientų turi mygtukus, įdiegtus per pagrindinius temos trumpinius kodus. Vienas iš mūsų partnerių iš „Elevated Marketing Solutions“ paklausė, ar galėtume atlikti tam tikrą įvykių stebėjimą mygtukais, nes tai buvo puikus raginimas veikti visose svetainėse. Trumpojo kodo mygtukai yra ne kas kita, kaip inkaro žyma, sukurta šiek tiek iškalbingiau naudojant klasių serijas, kurias užpildo trumpojo kodo parinktys.

Dėl to, norėdami užregistruoti įvykį, prie inkaro teksto turėjome pridėti „onclick“ įvykį. Štai kaip tai gali atrodyti:

Namų mygtukas

Žinoma, problema yra ta, kad mūsų vietoje yra trumpasis kodas tėvų tema ir mes nenorime redaguoti pagrindinės temos. Kadangi trumpasis kodas yra naudojamas visame turinyje, mes taip pat nenorime sukurti naujo trumpojo kodo.

Sprendimas yra gana aptakus. „WordPress“ API leidžia pašalinti trumpąjį kodą! Taigi, vaiko temoje galime pašalinti trumpąjį kodą, tada jį pakeisti nauja funkcija:

add_action ('after_setup_theme', 'call_child_theme_setup');
funkcija Call_child_theme_setup () {remove_shortcode ('old_button_function_in_parent_theme'); add_shortcode ('mygtukas', 'new_button_function_in_child_theme'); }
function new_button_function_in_child_theme ($ atts, $ content = null) {... čia yra jūsų naujasis trumpasis kodas ...}

Savo naujoje mygtuko funkcijoje (Vaiko temos funkcijose.php) perrašiau trumpojo kodo funkciją, kad pridėčiau dinamišką įvykį „onClick“ įvykyje. Išvestis veikia puikiai ir dabar stebima „Google Analytics“!

Ką manote?

Ši svetainė naudoja "Akismet", kad sumažintų šlamštą. Sužinokite, kaip apdorojamas jūsų komentaras.