ouster
  • 0
Новичок

По каким причинам вам не следует взламывать основные файлы WordPress?

  • 0

Часто быстрое решение проблемы можно решить, взломав ядро ​​WordPress, то есть изменив код, который является самим WordPress.

Это очень опасный путь! Не делай этого, никогда!


Вы всегда можете изменить работу WordPress с помощью плагинов. Иногда это может быть довольно утомительно и сложно, но дополнительная работа всегда перевешивает проблемы, которые возникают при изменении самого ядра WordPress.

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

Этот вопрос предназначен для введения в коллективную работу о том, почему вам никогда не следует взламывать ядро ​​WordPress, и мы можем использовать его в качестве справочного материала. Если у вас есть что добавить, не стесняйтесь добавить это как вопрос.

Share
  1. Лучшая причина не взламывать ядро ​​состоит в том, что все, что вы делаете, должно быть переработано как патч для ядра!

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

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

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

    Даже если у вас не получается что-то сделать в Core trac (требуется некоторое убеждение, чтобы что-то было зафиксировано), вы, по крайней мере, уварили свой основной хак до минимума: 1 строка кода для вашего действия/фильтра. Когда вы обновляете WP, вы заменяете весь код, который вы впихнули в ядро, одной строкой, которую нужно обновить, и ваш плагин может остаться прежним!

    • 0
  2. Также стоит отметить тот факт, что как только вы обновите WordPress до последней версии, все ваши изменения в основных файлах будут перезаписаны.

    • 0
  3. Я считаю, что это, прямо из WordPress Codex, говорит само за себя:

    Фото: Не взламывайте ядро ​​WordPress;  Или котенок получить его!

    🙂

    • 0
  4. Это предупреждение очень старое, задолго до появления децентрализованных систем контроля версий, таких как Git. В те времена, чтобы взломать ядро, вам нужно было сохранить свои изменения в виде набора собственных патчей. Поскольку некоторые (в основном неопытные разработчики, возившиеся с WordPress) не делали патчи, чтобы отслеживать свои изменения, они столкнулись с проблемой: в конце концов у них возникли проблемы с обновлением Worpdress до новой версии, и родилась поговорка.

    Предупреждение было более или менее культурной отсылкой к подписи к изображению «Каждый раз, когда ты мастурбируешь… Бог убивает котенка», и, очевидно, предназначалось для развлечения. Однако была проведена аналогия между «взломом ядра WordPress» и «мастурбацией». Вероятно, это и привело к некоторой популярности.

    Конечно, хакерское ядро ​​— это двусторонний меч, и я думаю, именно поэтому вы спросили.

    Во-первых, взламывать ядро ​​вполне допустимо, возможно и осуществимо как в прошлом, так и в настоящем. В прошлом с помощью наборов исправлений, а сегодня стало еще проще, используя git и репозиторий git WordPress, общедоступный на Github.

    Вместо того, чтобы говорить пользователям (которые могут даже не понимать, о чем идет речь), что они тупые, шутя о них, лучше поощрять их и обучать их.

    Кроме того, и это одна из самых темных сторон в истории WordPress, сообщество WordPress не продвигается здесь хорошо. Несмотря на то, что он как бы побуждает пользователей вносить изменения в восходящий поток (то есть в исходный репозиторий кода), что обычно хорошо, WordPress не делает этого для библиотек, которые они перенесли в свое дерево из исходных источников. Так что относитесь к этим высказываниям легкомысленно, это не то, чем руководство WordPress и основные разработчики следовали за кодом, который они также переняли у других.

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

    Лучшее предложение, которое я могу дать, это если вы разработчик и хотите внести изменения в ядро, сделайте это. Делайте так, как нравится вам, а не другим. WordPress является бесплатным программным обеспечением по определенной причине, и вы должны гордиться им и тем, что вы делаете с ним. Публично или приватно. Если вы ищете способы сделать это более выполнимым, создайте вокруг него рабочий процесс, как если бы вы занимались другими видами разработки.

    • 0
  5. Мне три с половиной раза приходилось взламывать ядро, чтобы решить проблему.

    1) Исправлена ​​ошибка. Я сообщил об этом как об ошибке в Trac вместе с патчем diff. Функциональность уже перерабатывается в следующей версии WP, что в основном устраняет ошибку. До тех пор я могу легко применить созданный мной патч к текущим/новым установкам.

    2) Было добавлено очень подробное ведение журнала, чтобы попытаться отследить очень конкретную проблему, с которой столкнулся пользователь. Не повседневная ситуация и уж точно не связанная с функциональностью.

    3a) Я хотел добавить дополнительное поле в категории в WP 2.8.5. Встроенные хуки для этого не работали должным образом (известная проблема), и я полагаю, что эта конкретная проблема была исправлена ​​в дереве 2.9. В конце концов, реализация была ошибочной, и мы переработали эту функцию, чтобы она работала по-другому, не требуя модификации ядра.

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

    • 0

Оставить ответ

You must login to add an answer.