Переопределите функцию, которая находится внутри плагина


Я хотел бы изменить поведение одной функции в плагине. Вместо того, чтобы переписывать файл и иметь дело с обновлениями, я бы предпочел решение, которое работает аналогично тому, как add_filter работает для ядра wordpress. Возможно ли это с помощью php или wordpress?

Author: fdsa, 2012-05-05

2 answers

Если в функции есть крючки, это возможно, если нет, могут быть подключаемые функции, где вы можете заменить их функцию своей собственной пользовательской функцией. Я не часто видел подключаемые модули в плагинах, но в большинстве наиболее популярных плагинов вы видите действия и фильтры.

Вы можете взаимодействовать с плагином, изменяя поведение функций, которые он вызывает, для достижения желаемого эффекта. Это может быть сложно, и часто приводит к хакерским решениям, но это лучше, чем ничего.

Если нет способа взаимодействовать с плагином, то вы можете разветвить код плагина. Естественно, это наименее желательно, но это может быть вашим единственным вариантом.

 0
Author: mor7ifer, 2012-05-05 01:46:42

Я думаю, вам следует отправить сообщение автору плагина, чтобы он добавил крючки do_action() и apply_filters() в нужное место в коде. Тогда даже при обновлении вы не потеряете функциональность. Или используйте эти конструкции if(function_exists('plugin-function'))

 1
Author: , 2012-05-05 01:49:21