Есть сайт на WP, ему в функции темы прописали функцию для обработки данных.
Эта функция должна выполняться только, если выключен плагин, где необходимо подставить несколько другой функционал по этому названию функции, что бы не лезть в файлы темы. Как это можно сделать максимально правильно?
Я погуглил, понял что удалить функцию невозможно. А при ее повторном создании вылазит ошибка, т.к. функция уже существует.
Подскажите пожалуйста, как я могу перехватить вызов функции в плагине и передать аргументы своей функции?
Речь ведь про функцию WP, а не PHP? Тогда поставьте соответствующий тег, чтобы отвечали по теме.
Неужели гугл не помог? Поверхностное гугление говорит мне, что нужно отвязать WP от хука, и перенаправить хук на новую функцию.
если функция не завернута в if ( ! function_exists( 'some_function' ) ) {}, то скорее всего нет, кроме как если она подвешена на какойто хук, тогда ее можно открапить от хука, а вместо нее прикрепить свою кастомную замену
Существует такая функция override_function(), но я бы ее в продавшее вообще никогда не использовал, ее предназначение больше для отладки, чем для чего-то другого. Все таки PHP давно ООП поддерживает, и для вашей задачи можно воспользоваться полиморфизмом, но в тему придется залезть.
Vitsliputsli, Скорее про php, потому что функция не повешена на хук, а вызывается из разных участков по имени функции. А насчет override_function() - ей требуется pecl который есть не на всех хостингах.