Необходимо ли в каких-либо обстоятельствах модифицировать Wordpress, кроме написания плагинов и тем?

StackOverflow https://stackoverflow.com/questions/203543

  •  03-07-2019
  •  | 
  •  

Вопрос

Недавно мне пришлось работать над проектом, в котором предыдущий разработчик изменил каталог wp-admin.Мне это кажется плохой идеей, поскольку Wordpress постоянно обновляется.Неужели я просто не обладаю тем уровнем знаний в модификации Wordpress?

Это было полезно?

Решение

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

Изменять или не изменять — это выбор между компромиссами.Новые функции могут быть инкапсулированы в виде модулей, что, возможно, может привести к тому, что их функциональность будет менее интегрированной, чем хотелось бы.Однако полная интеграция изменений может помешать легкому обновлению программного обеспечения по мере выпуска новых версий.

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

Кстати, я считаю, что модификация WordPress практически необходима, особенно если вы хотите, чтобы он имел достойную архитектуру или был на самом деле безопасным (ладно, это был укол, подайте на меня в суд).

Другие советы

Что ж, это плохая идея только потому, что она означает, что теперь вы несете ответственность за поддержание внутреннего де-факто форка...каждый раз, когда WordPress выпускает обновление, вам нужно выполнить трехстороннюю разницу, чтобы объединить ваши изменения с новым «настоящим» WordPress.(Трехсторонний разброс означает, что вы выполняете разницу между вашей вилкой старой версии и стандартной старой версией для создания набора исправлений, а затем применяете этот набор исправлений к новой версии.) Вам также следует использовать VCS самостоятельно, чтобы сохранить себя. в своем уме.

Если вам это не по силам, то вам не по силам, нет ничего плохого в том, чтобы следовать принципу KISS и не портить код приложения.

Если вы можете написать плагин, который делает то же самое и делает это столь же эффективно, то вам следует сделать это, чтобы вам не приходилось поддерживать свою собственную вилку.

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

Я работал техническим руководителем в блоге, который на тот момент входил в топ-20 рейтинга Technorati, и проделал большую работу по масштабированию WordPress на одном сервере, а затем на кластере (с отдельными серверами для администратора и серверами для администраторов и серверов).публичный доступ).У нас были восходящие обратные прокси (т.е.Varnish или Squid), действующий как ускорители HTTP и внутренняя система кэширования фрагментов объектов/страниц, которая подключается к memcached с переключением на кэширование файловой системы с использованием PEAR::Cache_Lite.Нам пришлось модифицировать WordPress, чтобы он мог выполнять такие функции, как отправка разумных, удобных для кэширования HTTP-заголовков, а также для отключения большого количества ненужного SQL и обработки.

Я модифицировал WP для работы с использованием кластерного механизма хранения NDB, работающего только в памяти, что означало указание индексов во многих запросах (однако в конце концов мы выбрали вместо этого реплицируемый кластер).Модифицируя его для работы с отдельными серверами для администратора и сервера.общедоступную версию, мы заблокировали общедоступную версию, поэтому она работала со значительно ограниченными привилегиями MySQL, разрешая только чтение (третий пользователь MySQL получил права комментирования).

Если у вас серьезная проблема со спамом в комментариях (т.10 тыс./час), тогда вы иметь сделать что-то помимо плагинов.Спам будет DOS, потому что простая инициализация ядра WordPress занимает примерно полсекунды на автономном P4 без параллелизма, а поскольку WP — это комок кода, нет возможности что-либо сделать без предварительной инициализации ядра.

«WP-Cron» является бессмысленным и его следует отключить, если у вас есть доступ к реальному crontab для выполнения этих функций.Это не сложно сделать.

Короче говоря, я мог бы бесконечно перечислять причины, по которым вы можете захотеть внести изменения.

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

В одной комбинации блог/форум мы скомпоновали процедуру регистрации так, чтобы люди заполняли одну форму для одновременной регистрации как на WordPress, так и на phpBB.Я уверен, что есть лучший способ сделать это с помощью плагинов, но у него есть одно неожиданное преимущество — это действительно сбивает с толку спам-ботов.Несмотря на то, что несколько из них регистрируются каждый день, за время существования форума у ​​нас было около двух спам-сообщений.

Конечно, я бы не рекомендовал это — это мешает нам обновлять любое программное обеспечение.

Я склонен решительно выступать против изменения основного кода, если это вообще возможно, особенно в проекте, который обновляется, как это делает WordPress.Если WordPress невозможно заставить делать то, что вам нужно, с помощью плагинов и тому подобного, вам, вероятно, лучше использовать более расширяемую/универсальную систему, такую ​​​​как Drupal.Переделывать CMS, ориентированную на ведение блогов, во что-то еще, возможно, не стоит.

В более старых версиях WordPress (1.0 и даже в ранних версиях 2.0) я бы и глазом не стал модифицировать сам WordPress.

Однако архитектура WordPress повзрослела.Боковые панели больше не нужно кодировать вручную.Вместо этого вы можете портировать свою тему, чтобы использовать виджеты и просто создавать виджеты (какая находка!).Не нравится, как что-то отображается — просто измените тему!Не нравится, как WordPress что-то обрабатывает?Создайте плагин.Мне трудно придумать причину для изменения самого кода WordPress, который вместо этого не может быть обработан с помощью современных модульных компонентов WordPress (виджетов, плагинов, тем).

Я из тех людей, которые всегда заглядывают «под капот» приложений с открытым исходным кодом, таких как WordPress.Однако в настоящее время нет веских причин изменять основной код WordPress.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top