Как убрать автора из ссылки Discord, если сайт на wp?

Как убрать автора из ссылки Discord, если сайт на wp?
разработка wordpress
Обложка Как убрать автора из ссылки Discord, если сайт на wp?
Автор:
Руслан Шкарбан — автор статьи Руслан Шкарбан
254
#Ответы на вопросы

Вопрос

У меня сайт на 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 плагина.

Большинство SEO плагинов также "чистят" информацию от неподходящего контента. Для примера возьмем The SEO Framework.

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

Без автора на превью>

Воспользовавшись одним из вариантов, мы получаем превью ссылки без автора, как и требовалось. С этим разобрались, а если у вас есть вопросы, то задавайте их в комментариях, постараемся помочь.