Разработчики выступают против того, чтобы новый эндпоинт random в WordPress 7.2 был включен по умолчанию

0 0

Разработчики выступают против того, чтобы новый эндпоинт random в WordPress 7.2 был включен по умолчанию

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

В четверг Аарон Джорбин, независимый участник разработки ядра WordPress, анонсировал появление эндпоинта random в блоге «Make WordPress Core». При переходе по адресу example.com/random/ посетитель будет перенаправлен на случайно выбранную опубликованную запись — это касается сайтов, обновленных до версии WordPress 7.2, выход которой запланирован на 8 декабря.

Функция также работает с архивами: например, /random/category/release/ приведет пользователя к случайной записи в указанной категории, а /random/author/jorbin/ — к случайной публикации конкретного автора. По умолчанию будут включены произвольные типы записей, если они доступны для публичного поиска и имеют архив; при этом страницы и вложения в выборку не попадают. В панели администратора нет настройки для отключения этой функции, однако разработчики могут деактивировать ее с помощью специального фильтра.

«Если у вас есть веская причина не использовать эту функцию на сайте — или вы просто не любите развлечения, — существует фильтр, позволяющий полностью ее отключить», — написал Джорбин.

В LinkedIn он добавил: «Раз в несколько релизов WordPress я отвлекаюсь от текущей поддержки и создаю что-то новое. В версии 7.2 таким нововведением стала функция случайного выбора записей».

Эта функция появилась благодаря тикету в Trac, открытому в январе директором по архитектуре и открытому исходному коду компании Automattic Энн Маккарти, которая предложила «обсудить вопрос о том, следует ли создать минимальную, опциональную реализацию в ядре». Маккарти сказала, что соучредитель WordPress Мэтт Мулленвег хотел, чтобы эта функция была рассмотрена для WordPress 7.0, основываясь на его плагине Random Redirect.

Когда позже участник проекта Джон Блэкборн задал вопрос в тикете о том, соответствует ли эта функция правилу 80%, Маккарти ответила, что Мулленвег сам об этом просил.

«Как указано в описании задачи, @matt запросил ее для включения в ядро. Именно поэтому данная функция добавляется в систему, а не предлагается в виде отдельного плагина. Он настаивал на этом (неоднократно)», — написала Маккарти.

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

«Отлично, теперь мне придется внедрять плагин, чтобы отключить эту «возможность» на более чем 200 сайтах, — прокомментировал разработчик Сибин Грасич. — Кто вообще об этом просил? Почему это включено в ядро? И почему функция активирована по умолчанию?»

Основатель Yoast Йост де Валк отметил, что идея может быть забавной, но назвал включение её по умолчанию «ужасной затеей». Он пояснил, что на многих сайтах используются типы записей для контента, который считается «приватным» лишь потому, что на него нет прямых ссылок, а в самом WordPress нет штатного механизма, позволяющего пометить запись как «необнаруживаемую».

«Если бы в ядре была поддержка тега noindex, мы могли бы использовать её, чтобы исключить такие записи из этой функции случайного поиска. Теперь же я опасаюсь, что пользователи будут случайно попадать на счета, коммерческие предложения, страницы, предназначенные для конкретных клиентов, и тому подобное», — написал де Валк.

В комментариях Джорбин ответил, что владельцы сайтов могут воспользоваться фильтром pre_get_posts, чтобы исключить определенный контент из выдачи для эндпоинта random. Отвечая другому пользователю, он добавил, что, согласно философии WordPress, для каждой функции не предусматривается отдельная настройка для её отключения — «иначе страницы настроек стали бы совершенно непригодными для использования».

Ещё одним поводом для беспокойства стала производительность. Райан Маккью, директор по продуктам в компании Human Made, поинтересовался, как эта функция поведет себя на крупных сайтах.

«Использование ORDER BY RAND() в MySQL — общеизвестно медленный процесс, поскольку его сложность составляет O(N) относительно количества строк в таблице; некоторые хостинг-провайдеры даже блокируют его применение», — отметил Маккью, добавив, что многократные обращения ботов к эндпоинту /random/ «могут стать простым способом проведения DoS-атаки на сайт».

Рене Херменау, основатель WP Staging, провел тестирование на более крупных проектах, чем те, что рассматривались в исходном обсуждении (где максимальный объем составлял 200 000 записей). Он выяснил, что время выполнения случайного запроса растет пропорционально количеству записей: на сайте с двумя миллионами публикаций запрос занимает почти две секунды, а одновременная обработка 20 таких запросов требует 14 секунд. Херменау уточнил, что для настройки среды и проведения замеров использовался инструмент Claude Code, а сам он лично проверил методику и полученные результаты.

Некоторые участники дискуссии усомнились в том, стоит ли вообще включать эту функцию в ядро ​​системы. Плагин Random Redirect, созданный Мулленвегом, имеет более 100 активных установок, однако последнее обновление для него выходило 18 лет назад.

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

Бен Мэй, управляющий директор компании The Code Company, выразил несогласие с тем, что при внедрении этой функции были проигнорированы стандартные процедуры контроля, обязательные для добавления новых возможностей в ядро ​​WordPress.

«Когда контрибьюторы предлагают нововведения — даже небольшие улучшения рабочих процессов, — стандартный ответ почти всегда звучит так: «Сначала сделайте это в виде отдельного плагина, соберите данные, подтвердите востребованность и предусмотрите возможность включения по желанию пользователя», — написал Мэй. — Однако в данном случае, когда речь идет об изменении, которое фундаментально меняет стандартное поведение контента и его предсказуемость, весь этот процесс управления был, по сути, обойден стороной. Вместо этого функция внедрена непосредственно в ядро, причем с настройкой «включено по умолчанию» (с возможностью отключения)».

В субботу в дискуссию вступил Мулленвег, ответив на опасения по поводу производительности и потенциальных рисков, высказанные Чиприаном Попеску, владельцем ресурса getButterfly.

«Пожалуйста, пишите сами, а не с помощью ИИ. И спросите у своего ИИ: не хуже ли это того, что люди непреднамеренно раскрывают через карты сайта и REST API? И является ли такой запрос более серьезным вектором истощения ресурсов, чем отправка множества случайных поисковых строк через параметр ?s=?» — написал он.

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

«По сути, это не отдельная страница и не постоянный ресурс. Не думаю, что здесь нужен какой-то красивый URL; запрос подразумевал просто /?random — прямо в корневом каталоге», — пояснил он. В том же комментарии он добавил, что эта дискуссия «привлекла толпу ворчливых WP-садомазохистов» после того, как на нее дали ссылку в соцсети X.

В ходе тестирования также выявились некоторые проблемы. Питер Уилсон, разработчик ядра WordPress, подтвердил, что существующая страница со слагом random имеет приоритет перед новым редиректом. Поэтому владельцам сайтов, у которых уже есть такая страница, придется изменить базовый путь для случайных записей в настройках постоянных ссылок. Херменау также обнаружил, что если постоянная ссылка на случайную запись ведет на другой домен, то отображаемая страница не передает заголовки no-cache и noindex (которые присутствуют при перенаправлении). В результате кэш страницы может начать показывать одну и ту же запись всем посетителям. Джорбин согласился, что это похоже на ошибку, которую стоит исправить; Херменау уже создал соответствующий тикет и приложил к нему патч.

Дискуссия развернулась и в X: генеральный директор WebDevStudios Брэд Уильямс поинтересовался у своих подписчиков, хорошая ли это идея. Большинство ответов оказались негативными; многие, включая основателя Siren Affiliates Алекса Стэндифорда, отметили, что подобные вещи должны реализовываться через плагины.

Старший менеджер по продуктам в Cloudflare Мэтт «TK» Тейлор, работающий над EmDash — «духовным преемником WordPress», — не удержался от колкости.

«В EmDash не будет добавлена ​​ради забавы конечная точка /random, от которой потом приходится специально отказываться. Это серьезная CMS», — написал Тейлор в соцсети X.

Впрочем, у этой функции есть свои сторонники. Сайед Балхи, генеральный директор компании Awesome Motive, рассказал, что много лет назад реализовал нечто подобное на сайте WPBeginner, отметив, что «это было довольно непросто сделать — из-за активного кэширования и тому подобных вещей».

«Очень рад, что эта возможность появится в ядре WordPress», — написал Балхи в соцсети X.

Сооснователь CodePen Крис Койер также положительно оценил нововведение. «Я уже много лет использую подобные решения на своих сайтах — по-моему, это здорово. Правда, из-за кэширования всё оказывается сложнее, чем хотелось бы, так что, возможно, теперь это будет работать как надо», — отметил он.

Основатель Wordfence Марк Маундер пошел еще дальше, выступив в поддержку того, чтобы эта настройка была включена по умолчанию.

«Предлагаемый в ядре WordPress параметр /random — это своего рода «анти-PageRank». Он выводит на поверхность longtail-контент, который оставался в тени с тех пор, как Google превратил эгалитарный веб в иерархическое царство «зомби». Включите его по умолчанию», — написал он в X.

Джорбин пока не уточнил, изменятся ли настройки по умолчанию до официального релиза. Владельцы сайтов, которым эта функция не нужна, могут добавить код add_filter( ‘wp_enable_random_content_redirect’, ‘__return_false’ ); в mu-плагин — это позволит удалить правила перезаписи, отвечающие за случайный переход.

Выход WordPress 7.2 Beta 5 запланирован на 10 ноября, за ним последует версия RC1 (17 ноября), а финальный релиз состоится 8 декабря.

Источник: oddstyle.ru

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

Ваш электронный адрес не будет опубликован.