Як замінити існуючу дію плагіна новою дією


18

Я використовую плагін. У нього є така дія.

add_action('publish_post', 'old_action');
function old_action($pid) {
    "code goes here"
    }
}

Я пишу модуль для цього плагіна. Тому мені потрібно змінити цю стару функцію дії з моєю новою функцією дії.

Це моя нова функція.

function new_action($pid) {
      "code goes here"
        }
    }

Я хочу замінити цю стару функцію запуска моєю новою функцією запускання за допомогою гачків. Хтось може мені допомогти?

Спасибі

Відповіді:


33

Ви можете використовувати remove_action()функцію, наприклад:

remove_action('publish_post', 'old_action');
add_action('publish_post', 'new_action');

Важливо зауважити, що якщо старий запуск доданий з параметром пріоритету, ви повинні додати його до remove_actionвиклику, інакше його не вдасться видалити. Є й інші наслідки, якщо старий запуск доданий у класі. Дивіться тут для отримання додаткової інформації.


3
+1 із уточненням, що дія видалення повинна бути викликана після додавання функції, яку вона видаляє.
Стівен Гарріс

2
'after_setup_theme' здається гарним місцем для видалення запуску. Дивіться: wordpress.stackexchange.com/questions/170663/…
DigitalDesignDj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.