WordPress: Zastąp krótki kod z motywu nadrzędnego w motywie podrzędnym

Interfejs API WordPressa

Cóż, minęło sporo czasu, odkąd podzieliłem się wskazówkami dotyczącymi programowania w WordPress. Ostatnio wróciłem do warsztatu, wdrażając kod dla wszystkich naszych klientów i fajnie było wrócić do huśtawki. Być może zauważyłeś nowe integracje Marketing Whitepaper w całej witrynie - to było całkiem niezłe zabawny projekt!

Dzisiaj miałem inny problem. Wielu naszych klientów ma przyciski zaimplementowane za pomocą skrótów motywów nadrzędnych. Jeden z naszych partnerów w Elevated Marketing Solutions zapytał, czy moglibyśmy śledzić zdarzenia na przyciskach, ponieważ były one świetnymi wezwaniami do działania w witrynach. Przyciski shortcode to nic innego jak tag kotwicy, który został zaprojektowany nieco bardziej elokwentnie przy użyciu serii klas zapełnianych przez opcje shortcode.

Z tego powodu musieliśmy dodać zdarzenie onclick do tekstu kotwicy, aby zarejestrować zdarzenie. Oto, jak to może wyglądać:

<a href="https://highbridgekonsultanci.com" class="button blue medium" onClick="ga('send', 'event', 'button', 'Click', 'Home Button');">Przycisk Home

Problem polega oczywiście na tym, że w naszym pliku jest krótki kod motyw nadrzędny i nie chcemy edytować motywu nadrzędnego. A ponieważ shortcode jest wdrażany w całej zawartości witryny, nie chcemy również tworzyć nowego shortcode.

Rozwiązanie jest całkiem sprytne. WordPress API pozwala usunąć krótki kod! Tak więc w naszym motywie potomnym możemy usunąć krótki kod, a następnie zastąpić go naszą nową funkcją krótkiego kodu:

add_action ('after_setup_theme', 'call_child_theme_setup');
funkcja call_child_theme_setup () {remove_shortcode ('old_button_function_in_parent_theme'); add_shortcode ('button', 'new_button_function_in_child_theme'); }
function new_button_function_in_child_theme ($ atts, $ content = null) {... twój nowy shortcode jest tutaj ...}

W mojej nowej funkcji przycisku (w functions.php mojego motywu podrzędnego) przepisałem funkcję shortcode, aby dołączyć zdarzenie dynamiczne onClick. Wynik działa pięknie i jest teraz śledzony w Google Analytics!

Co o tym myślisz?

Ta strona używa Akismet do redukcji spamu. Dowiedz się, jak przetwarzane są dane komentarza.