У меня сайт на WordPress. Если я делюсь ссылкой с него в Discord, то он показывает автора страницы, не только для статей, но и для любых страниц сайта. Как отключить это?
Автор вопроса не прислал скриншот, поэтому для наглядности смоделируем ситуацию: поделимся в Discord ссылкой с разработанного нами сайта-агрегатора perevod.spb.ru.
В прогрузившейся ссылке получаем не только title и description, но и имя того, кто создал эту страницу на сайте.
Происходит это из-за того, что WordPress (далее WP) был движком, который изначально применялся для блогов, и в данном случае мы видим тянущееся за ним наследие. Если ваш сайт не требует отображения информации об авторах, как, например, в блогах с несколькими авторами или журналах, то такой функционал окажется излишним.
Рассмотрим второй пример такой же ситуации, но уже на другом сайте — интернет-магазине по продаже пиломатериалов: shop.szpk78.ru. Делимся ссылкой и в превью получаем имя автора страницы. В данном случае такой функционал сайту абсолютно не нужен.
Обуздать такое поведение WP возможно двумя способами: использованием плагина для SEO или куском собственного кода. Рассмотрим оба варианта.
Начнем с решения, для которого нам понадобиться написать небольшой код. Мы воспользуемся хуком-фильтром WP oembed_response_data. Используя данный хук,мы получим данные oEmbed и уберем из них автора страницы.
oEmbed - это открытый формат, созданный для упрощения встраивания содержимого одной веб-страницы в другую. В роли контента могут выступать: фотографии, видеоролики, ссылки и другой контент. Например, если вы хотите вставить видео с YouTube на сайт, просто вставьте URL этого контента, и WordPress, используя oEmbed преобразует его в привычный плеер.
Узнать о oEmbed подробнее можно на официальном сайте.
В качестве параметров хука мы используем только вызов функции, которой удаляем лишние параметры oEmbed. Список всех параметров хука вы можете посмотреть в документации.
Для удаления данных напишем функцию, в которой удаляем информацию об авторе из передаваемых данных oEmbed:
add_filter( 'oembed_response_data', 'ctr99_remove_author' ); function ctr99_remove_author( $data ) { unset($data['author_url']); unset($data['author_name']); return $data; }
Хук-фильтр позволяет изменить данные, которые передает WP вместе с контентом записи в формате oEmbed.В нашей функции мы убираем данные об авторе, удалив нужные ключи из массива. Затем возвращаем измененные данные.
Кусок кода добавляем в файл functions.php. Discord может не обновить данные сразу, поэтому для проверки можно воспользоваться сервисом Iframely. Данный подход имеет место, в случае, если вы не используете плагины и все SEO пишите самостоятельно.
Рассмотрим более простой вариант — использование SEO плагина.
Большинство SEO плагинов также "чистят" информацию от неподходящего контента. Для примера возьмем The SEO Framework.
Находим плагин в магазине расширений WordPress, устанавливаем и активируем. Делимся ссылкой в Discord. Как и в прошлом случае, изменения сразу не отобразятся, для проверки можно использовать тот же сервис, что и в первом варианте.
Воспользовавшись одним из вариантов, мы получаем превью ссылки без автора, как и требовалось. С этим разобрались, а если у вас есть вопросы, то задавайте их в комментариях, постараемся помочь.