WordPress: oorskryf 'n kortkode van 'n ouer-tema in u kind-tema

WordPress API

Wel, dit is 'n hele ruk sedert ek 'n paar wenke oor programmering in WordPress gedeel het. Die afgelope tyd het ek al die kode vir al ons kliënte gebruik en dit was lekker om weer in die gang te kom. U het dalk die nuwe integrasie van Marketing Whitepaper op die hele webwerf opgemerk - dit was nogal 'n goeie idee prettige projek!

Vandag het ek 'n ander saak gehad. Baie van ons kliënte het knoppies wat geïmplementeer word deur middel van ouersoortkortkodes. Een van ons vennote by Elevated Marketing Solutions het gevra of ons 'n geleentheidsopsporing op die knoppies kon doen, want dit was 'n goeie oproep tot aksies op die hele webwerf. Kortkode-knoppies is niks anders as 'n ankerplaatjie wat 'n bietjie meer welsprekend ontwerp is met behulp van 'n reeks klasse wat deur die kortkode-opsies gevul word nie.

Daarom moes ons 'n onclick-gebeurtenis by die ankerteks voeg om 'n gebeurtenis te registreer. Hier is hoe dit kan lyk:

Tuisknoppie

Die probleem is natuurlik dat daar 'n kortkode in ons ouer tema en ons wil nie 'n ouer-tema wysig nie. Aangesien die kortkode oor die hele webwerf versprei word, wil ons ook nie 'n nuwe kortkode skep nie.

Die oplossing is redelik glad. Die WordPress API kan u 'n kortkode verwyder! Dus, in ons kindertema, kan ons die kortkode verwyder en dan vervang deur ons nuwe kortkode-funksie:

add_action ('after_setup_theme', 'calling_child_theme_setup');
funksie calling_child_theme_setup () {remove_shortcode ('old_button_function_in_parent_theme'); add_shortcode ('button', 'new_button_function_in_child_theme'); }
funksie new_button_function_in_child_theme ($ atts, $ content = null) {... u nuwe kortkode is hier ...}

In my nuwe knoppie-funksie (in my Kindtema se funksies.php), het ek die kortkode-funksie herskryf om 'n dinamiese gebeurtenis by die Click-gebeurtenis by te voeg. Die produksie werk pragtig en volg nou in Google Analytics!

Wat dink jy?

Hierdie webwerf gebruik Akismet om spam te verminder. Leer hoe jou opmerking verwerk is.