Как создать дочерний плагин для WordPress - PullRequest
0 голосов
/ 08 июня 2018

На самом деле я изменил некоторый код в WordPress Store Locator.Я хочу, чтобы он оставался, когда плагин будет обновляться.Поэтому я хочу создать дочерний плагин для этого.Любые идеи о том, как я мог справиться с этим?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Это варьируется от плагина к плагину, и иногда это даже невозможно, в других случаях плагины имеют документацию для их легкого расширения (например, WooCommerce и Gravity Forms).Некоторые из них создают Action Hooks с do_action(), которые позволяют легко расширять функциональность.Типичным примером является обновление сообщения после отправки формы Gravity с их gform_after_submission ловушкой.

Эффективно, это зависит от того, что вы хотите сделать, и от того, как плагин реализует функциональностьВы хотите изменить.Если они добавляют текст с помощью Closure или Anonymous Function , то будет сложнее изменить указанный текст, и вам, возможно, придется посмотреть на что-то странное, например, выполнить поиск и заменить во время выполнения.используя выходную буферизацию , обычно на хуке template_redirect.

Если вы хотите удалить что-то, что делает плагин, вы можете отсоединить его с помощью remove_action.Это может быть немного сложно в зависимости от того, как создается плагин, иногда это просто:

remove_action( 'some_hook', 'function_to_remove' );

В других случаях это сложнее, например:

global $plugin_class_var;
remove_action( 'some_hook', array($plugin_class_var, 'function_to_remove') );

Это основырасширение (или даже «сжатие») функциональности плагина, и это не всегда , выполнимо соответствующим образом.К сожалению, узкий ответ на ваш вопрос выходит за рамки того, что мы можем предоставить от StackOverflow.

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

Удачи!

0 голосов
/ 08 июня 2018

Согласно стандарту WordPress, это называется аддоном плагина.

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

ЗдесьЯ отправляю ссылку для справки.https://developer.wordpress.org/reference/functions/add_action/

...