WordPress: перазапішыце шорт-код бацькоўскай тэмы ў тэме вашага дзіцяці

API WordPress

Ну, ужо даўно я падзяліўся некалькімі парадамі па праграмаванні ў WordPress. У апошні час я вярнуўся на лаву для разгортвання кода для ўсіх нашых кліентаў, і было вельмі цікава вярнуцца да рэчаў. Магчыма, вы заўважылі новую інфармацыю пра маркетынгавую інфармацыю на сайце - гэта было даволі вясёлы праект!

Сёння ў мяне была іншая праблема. У многіх нашых кліентаў кнопкі рэалізаваны праз шорткоды бацькоўскай тэмы. Адзін з нашых партнёраў па высокіх маркетынгавых рашэннях спытаў, ці можна нам адсочваць падзеі на кнопках, бо яны былі выдатнымі заклікамі да дзеянняў на ўсіх сайтах. Кнопкі шорт-кода - гэта не што іншае, як анкерны тэг, які распрацаваны крыху больш красамоўна, выкарыстоўваючы шэраг класаў, якія запоўнены опцыямі шорт-кода.

З-за гэтага нам трэба было дадаць падзею onclick у тэкст прывязкі, каб зарэгістраваць падзею. Вось як гэта можа выглядаць:

Кнопка "Дадому"

Праблема, вядома, у тым, што ў нас ёсць шорт-код бацькоўская тэма і мы не хочам рэдагаваць бацькоўскую тэму. І, паколькі шорт-код разгорнуты па змесце па ўсім сайце, мы таксама не хочам ствараць новы шорт-код.

Рашэнне даволі гладкае. WordPress API дазваляе выдаліць шорт-код! Такім чынам, у нашай даччынай тэме мы можам выдаліць шорт-код, а потым замяніць яго новай функцыяй шорт-кода:

add_action ('after_setup_theme', '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 для барацьбы са спамам. Даведайцеся, як дадзеныя апрацоўваюцца каментар.