WordPress: перезапишіть шорт-код батьківської теми в темі вашої дитини

API WordPress

Що ж, минув досить довгий час, коли я поділився деякими порадами щодо програмування в WordPress. Нещодавно я повернувся до лави розгортання коду для всіх наших клієнтів, і було цікаво повертатися до розмаху. Можливо, ви помітили нову інтеграцію довідки з маркетингу на веб-сайті - це було цілком веселий проект!

Сьогодні у мене було інше питання. Багато наших клієнтів мають кнопки, реалізовані через шорткоди батьківської теми. Один із наших партнерів у компанії 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'); }
function new_button_function_in_child_theme ($ atts, $ content = null) {... ваш новий шорт-код тут ...}

У моїй новій функції кнопки (у моїй дочірній темі functions.php) я переписав функцію короткого коду, щоб додати динамічну подію onClick. Результат працює чудово і тепер відстежується в Google Analytics!

Що ви думаєте?

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.