Вопрос
Делюсь ссылкой со своего сайта в дискорде, а он показывает автора, как отключить?
Для наглядности моделируем ситуацию читателя: поделимся в дискорде ссылкой с разработанного нами сайта-агрегатора perevod.spb.ru.
В прогрузившейся ссылке получаем не только title и description, но и имя того, кто создал эту страницу на сайте.
Ответ
WP был движком, который изначально применялся для блога и в данном случае мы видим тянущееся за ним блоговое наследие. Если у вас не сайт на котором важно иметь упоминание авторов, то функционал является ненужным.
Для решения мы воспользуемся хуком WP oembed_response_data. Хук используется WordPress для обработки данных ответа oEmbed (формата, который создан для упрощения добавления контента с одной веб страницы в другую). О том, какие параметры принимает в себя хук, можете посмотреть в документации.
Для удаления данных напишем функцию, в которой удаляем информацию об авторе из передаваемых данных oEmbed:
function disable_embeds_filter_oembed_response_data_( $data ) { unset($data['author_url']); unset($data['author_name']); return $data; }
Следующей функцией мы исключаем вложение из индексации в поисковых системах:
function noindex_attachments() { if (is_attachment()) { echo ''; } } add_action('wp_head', 'noindex_attachments');
Собираем полный код:
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; } function noindex_attachments() { if (is_attachment()) { echo ''; } } add_action('wp_head', 'noindex_attachments');
Добавляем его в наш файл functions.php, сохраняем и возвращаемся через несколько часов, изменения вступают не сразу, вероятно, из-за кеширования.
Теперь, мы получаем превью ссылки без автора, как и хотели. С этим разобрались, а если у вас есть вопросы, то задавайте в комментариях, постараемся помочь.