Зачем?
Иногда легко исправить поведение самого WordPress или плагина - изменить файлы плагина или WordPress напрямую. Когда приходит такая идея, обычный ответ:
Не взламывайте ядро.
Почему вообще плохая идея менять основные файлы?
Рассмотреть возможность?
Однако иногда вещи, которые могут быть критически важными для сайта, просто невозможно сделать, хорошим способом без изменения основных файлов. В такой ситуации, что вам нужно знать, прежде чем начинать взламывать ядро?
Как?
Вы рассмотрели все варианты, но единственным решением является взлом основных файлов. Как вы должны делать это? Как измененное ядро повлияет на рабочие процессы, такие как обновление?
admin_body_class
иadmin_footer
что означает захватив всю страницу . Я только что попробовал, и есть> 2 МБ контента, который должен быть найден для соответствующего раздела, затем проанализирован и изменен перед выводом. Или я могу добавить одну строку кода в правую частьmy-sites.php
и использовать инструмент diff, чтобы применить исправление после обновлений (при условии, что оно вообще было изменено). В таких сценариях действительно сложно аргументировать против модификации ядра.Ответы:
Если вам необходимо взломать ядро, подумайте о том, чтобы сделать его таким, чтобы его можно было расширить для других.
Добавить Action Hook
В девяти случаях из десяти вы могли бы делать то, что хотели, если бы
do_action
в конкретном файле был дополнительный вызов. В этом случае добавьте действие, задокументируйте его и отправьте патч через Trac . Если для вашего патча есть веская причина (то есть вы не единственный, кто его использует), вы можете добавить его в ядро.Затем создайте пользовательский плагин (вам не нужно его выпускать / распространять!), Который подключается к этому новому хуку и выполняет все функции, которые вам нужны.
Рефакторинг файла ядра
В других случаях вам может понадобиться кусок кода, который будет вести себя по-другому. Например, передавайте переменную по ссылке или возвращайте значение, а не выводите его. Потратьте некоторое время, чтобы сесть и реорганизовать код, чтобы он выполнял то, что вам нужно ... затем отправьте патч через Trac, чтобы остальные могли извлечь выгоду из вашей работы.
Вы видите тему, развивающуюся здесь? Взломать ядро не обязательно «нет-нет» ... просто то, что большинство разработчиков крайне обескуражит для новых пользователей или начинающих программистов (если вы спрашиваете нас, как сделать что-то, мы предложим плагин каждый раз, прежде чем даже рассматриваю, чтобы предложить вам взломать ядро).
Взлом ядра - это способ разработки и развития WordPress, но он опасен для тех, кто только изучает PHP или не имеет опыта работы с файлами WP. Пожалуйста, начните с плагина, прежде чем трогать ядро - если вы сломаете плагин, вы можете удалить его быстро (удалив через FTP, если это необходимо) ... но если вы сломаете ядро, плохие вещи могут случиться с вашим сайтом и, возможно, с вашим база данных также.
Но если вы находитесь в ситуации, когда основной взлом неизбежен, внесите изменения. Кроме того, опубликуйте ваши изменения на видном месте (если ваш блог хорошо виден, этого может быть достаточно ... но я предлагаю Trac, потому что именно так изменения сообщества будут внесены в следующий выпуск). Ваше изменение может быть волшебной палочкой, которая может решить проблемы на сотне различных сайтов ... так что внесите свой вклад в сообщество, которое помогло вам создать свой сайт.
Если изменение вступит в силу, ваш хак станет частью ядра, и вам не нужно будет беспокоиться об этом в будущем. Если это не так, по крайней мере, у вас есть подробная документация о том, как повторно внедрить хак после обновления WP через 3 месяца.
источник
Ну, это потому, что это предложение для первого уровня, неопытных пользователей. Те, кто взломал ядро, сломали бы их установку, они не могут гарантировать, что в их изменениях сохранятся обновления и т. Д.
Конечно, вы можете взломать ядро, например, с помощью системы управления версиями, такой как SVN. Это поможет вам сохранить ваши собственные изменения в основном коде в соответствии с обновлениями проекта. Это также помогает создавать патчи для Wordpress и отправлять их в проект.
Взлом ядра - это факт, заставляющий Wordpress развиваться.
Соображения
Если вы не хотите устанавливать полный SVN и все еще знаете, какие (некоторые) файлы вы изменили, вы можете использовать более низкоуровневые инструменты, такие как Diff / Merge (для win: WinMerge ) или редакторы с возможностями сравнения (например, Блокнот ++ с плагином сравнения ). В Linux вы можете легко установить утилиты командной строки, которые делают то же самое. Редактор Geany поставляется с хорошей интеграцией оболочки КСТАТИ. ,
Я предпочитаю Eclipse PDT для тяжелых работ. Но это не для быстрого редактирования или взлома.
Так что я бы сказал, что если вы используете правильные инструменты и хотите позаботиться о том, чтобы взломать ядро - это путь. Если вы взламываете что-то вместе, что осталось на каком-то другом сервере пользователей Noob (да, Wordpress довольно популярен), просто предоставьте плагин, который можно легко выбросить, если он что-то сломает.
источник
Вопросы:
Если вы хотите сделать это, то сделайте жизнь проще для себя:
// PATCH START
и// PATCH END
)Иногда это на 100% неизбежно, но я почти всегда могу придумать другой способ достижения цели или изменения спецификации из-за вероятной стоимости времени, потраченного на это. Это просто кошмар обслуживания, и многие люди предпочитают взламывать ядро, а не искать правильное решение.
источник