Как создать дочерний плагин для WordPress

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

2 ответа

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

Фактически, это зависит от того, что вы хотите сделать, и от того, как плагин реализует функциональность, которую вы хотите изменить. Если они добавляют текст с помощью функции закрытия или анонимной функции, то будет сложнее изменить указанный текст, и вам, возможно, придется посмотреть на что-то странное, например, выполнить поиск и замену во время выполнения с использованием буферизации вывода, обычно в 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') );

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

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

Удачи!

Я просто прошел через себя, и у меня было так много изменений, что я не мог просто отменить действия.

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

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

https://github.com/ThomasDepole/wordpress-child-plugin-tool

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

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

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

Другие вопросы по тегам