@dimas7525

Как редактировать плагин WordPress, чтоб при его обновлении изменения сохранились?

Как редактировать плагин WordPress, чтоб при его обновлении изменения сохранились?
  • Вопрос задан
  • 6363 просмотра
Решения вопроса 1
OtshelnikFm
@OtshelnikFm Куратор тега WordPress
Обо мне расскажет yawncato.com
Не слушайте, они не в теме))

Можно, но при условии ваших знаний и возможностей плагина. Важно усвоить - ядро (файлы) плагина править нельзя. Но у себя воздействовать - можно.

Итак:

Смотря что вы подразумеваете под редактированием:

1. Если css файлы - их редактировать нельзя. Только переопределять. т.е. если есть класс .some в плагине - то вы у себя в подвале подключайте свой css файл, а стиль для .some переносите и пишите там.

2. если вы говорите о правке перевода, а у автора плагина строки переведены через __() функции - то воспользуйтесь плагинами интернационализации (переводов), или ВП фильтром gettext

3. Если php файлы, то поинтересуйтесь у автора - есть ли в том месте, где вы хотите поменять, фильтр. apply_filters в коде плагина, а вы воздействуете на него через add_filters (Есть еще экшены (действия) - но они не позволяют изменять. Это триггеры, когда событие произошло).
Если фильтра в этом месте нет - попросите автора добавить его. Обычно автор заинтересован в том, что его плагином пользуются и внедряет. Но если вам фильтр нужен только для смены текста - то вам вариант номер два, выше. У плагина может быть 500 строк и на каждую строку текста лепить фильтр - маразм.

4. Автор плагина может ввести и поддерживать функционал шаблонов. Темплейты - например карточка товара, профиль пользователя, одиночная запись и т.д. Такой функционал имеют многие плагины. bbPress, woocommerce. Суть их такова - что вы переносите файл шаблона (например cart.php) в свою тему или внутри папки wp-uploads (каждый плаг по своему реализует) и плагин вначале проверяет наличие такого файла вне своей папки, а потом, если не нашел там, подключает из своей папки. Так вы можете всю нужную верстку и внешний вид под себя переделать.

5. Много функций внутри плагина висит на хуках (add_action) - например так:
add_action('some_action', 'some_function', 20);
где 20 - приоритет выполнения. Так вы можете всю функцию дерегистрировать через remove_action. Например так:
remove_action('some_action', 'some_function', 20); (приоритет 20 обязательно такой как и при регистрации)
и потом всю функцию из плагина копируйте к себе (переименуйте) и вешайте на этот же хук и приоритет. Внутри функции уже делайте как вам надо - изменяйте.
Но этот способ самый зависимый - т.к. вам нужно следить - вдруг в обновлении автор в этой функции внес изменения или устранил уязвимость. Следите через svn или гит.

Так что варианты есть. А если их еще в плагине нет - попросите автора плагина добавить такую возможность. Если автор плагина не пойдет на встречу - не юзайте такой плагин. Там нет будущего. Большинство программистов понимает что ситуаций много и помогают и внедряют и подсказывают если есть еще способы влияния на нужный участок.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
wppanda5
@wppanda5 Куратор тега WordPress
WordPress Mедведь
Никак, только вешаться внешним кодом на его хуки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы