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

Автор:
Руслан Шкарбан — автор статьи Руслан Шкарбан
#Советы

Вопрос

У меня сайт на WordPress. Если я делюсь ссылкой с него ссылкой в дискорде, то он показывает автора страницы, не только для статей, но и для любых страниц сайта. Как отключить?

Ответ

Автор вопроса не прислал скриншот, поэтому, для наглядности смоделируем ситуацию: поделимся в дискорде ссылкой с разработанного нами сайта-агрегатора perevod.spb.ru.

Автор на превью ссылки агрегатора

В прогрузившейся ссылке получаем не только title и description, но и имя того, кто создал эту страницу на сайте.

Причина

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

Рассмотрим второй пример такой же ситуации, но уже на другом сайте - интернет-магазине по продаже пиломатериалов: shop.szpk78.ru. Делимся ссылкой и в превью получаем имя автора страницы. В данном случае, такой функционал не нужен сайту абсолютно.

Автор на превью ссылки магазина

Решение

Обуздать такое поведение WP возможно двумя способами: использованием плагина для SEO или куском собственного кода. Рассмотрим оба варианта.

Начнем с решения для которого, нам понадобиться написать небольшой код, а именно воспользуемся хуком WP oembed_response_data. Хук используется WordPress для обработки данных ответа oEmbed (формата, который создан для упрощения добавления контента с одной веб страницы в другую). О том, какие параметры принимает в себя хук, можете посмотреть в документации.

Для удаления данных напишем функцию, в которой удаляем информацию об авторе из передаваемых данных oEmbed:

add_filter( 'oembed_response_data', 'disable_embeds_filter_oembed_response_data_' );
function disable_embeds_filter_oembed_response_data_( $data ) {
	unset($data['author_url']);
	unset($data['author_name']);
	return $data;
} 

Кусок кода добавляем в файл functions.php. Дискорд может не обновить данные сразу, поэтому для проверки можно воспользоваться сервисом Iframely. Данный подход имеет место, в случае, если вы не используете плагины и все SEO пишите самостоятельно.

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

Рассмотрим более простой вариант - использование SEO плагина.

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

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

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

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