WordPress: Презапишете шорткод от родителска тема в темата на вашето дете

API на WordPress

Е, мина доста време, откакто споделих няколко съвета за програмиране в WordPress. Напоследък се върнах на пейката за внедряване на код за всички наши клиенти и беше забавно да се върна в разгара на нещата. Може би сте забелязали новите интеграции на White Paper в целия сайт - това беше доста забавен проект!

Днес имах различен проблем. Много от нашите клиенти имат бутони, реализирани чрез шорткодове на родителска тема. Един от нашите партньори в Elevated Marketing Solutions попита дали можем да направим проследяване на събитията на бутоните, тъй като те бяха страхотни призиви за действие в сайтовете. Бутоните за къси кодове не са нищо повече от котва за маркери, която е проектирана малко по-красноречиво, като използва серия от класове, които се попълват от опциите за шорткод.

Поради това трябваше да добавим събитие onclick към котвата, за да регистрираме събитие. Ето как може да изглежда:

Бутон за начало

Проблемът, разбира се, е, че в нашия има кратък код родителска тема и не искаме да редактираме родителска тема. И тъй като шорткодът е разположен в цялото съдържание на сайта, ние също не искаме да създаваме нов шорткод.

Решението е доста хлъзгаво. WordPress API ви позволява да премахнете къс код! И така, в нашата дъщерна тема можем да премахнем шорткода, след което да го заменим с новата ни функция за шорткод:

add_action ('after_setup_theme', 'call_child_theme_setup');
функция call_child_theme_setup () {remove_shortcode ('old_button_function_in_parent_theme'); add_shortcode ('button', 'new_button_function_in_child_theme'); }
функция new_button_function_in_child_theme ($ atts, $ content = null) {... вашият нов шорткод е тук ...}

В новата си функция за бутони (в функцията на детската ми тема functions.php) пренаписах функцията за шорткод, за да добавя динамично събитие onClick събитие. Резултатът работи прекрасно и вече се проследява в Google Analytics!

Какво мислите?

Този сайт използва Akismet за намаляване на спама. Научете как се обработват данните за коментарите ви.