Как переопределить существующий action плагина новым action

28 янв. 2012 г., 08:35:34
Просмотры: 32.7K
Голосов: 24

Я использую плагин, в котором есть такой action.

add_action('publish_post', 'old_action');
function old_action($pid) {
    "код находится здесь"
    }
}

Я пишу модуль для этого плагина. Мне нужно переопределить старую функцию action новой функцией action.

Вот моя новая функция.

function new_action($pid) {
      "код находится здесь"
        }
    }

Я хочу заменить функцию old_action своей функцией new_action, используя хуки. Может кто-нибудь помочь?

Спасибо

0
Все ответы на вопрос 1
3
44

Вы можете использовать функцию remove_action() следующим образом:

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

Важно отметить, что если old_action был добавлен с параметром приоритета, вы должны указать его и в вызове remove_action, иначе удаление не сработает. Также есть дополнительные нюансы, если old_action был добавлен внутри класса. Подробнее об этом можно узнать здесь.

28 янв. 2012 г. 09:13:34
Комментарии

+1 с уточнением, что действие remove_action должно вызываться после добавления функции, которую оно удаляет.

Stephen Harris Stephen Harris
28 янв. 2012 г. 10:24:42

'after_setup_theme' кажется хорошим местом для remove_action. Смотрите: http://wordpress.stackexchange.com/questions/170663/remove-action-on-after-setup-theme-not-working-from-child-theme

DigitalDesignDj DigitalDesignDj
10 сент. 2016 г. 22:48:20

Я долго пробовал и ломал голову - в итоге "after_setup_theme" сработало! Спасибо!

frizzant frizzant
27 дек. 2023 г. 16:07:35