WordPress attachment. Настраиваем редирект вложенных изображений

Сайтостроение WordSmall

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

Любую платформу системы управления содержимым, какую бы вы ни выбрали, нужно оптимизировать и настраивать под свои нужды. Где-то требуется больше времени и работы, но в конечном итоги, каждую можно довести до идеала. И сегодня сделаем один такой шаг в сторону оптимизации WordPress, настроев редирект на все вложенные картинки поста.

Что такое attachment в WordPress?

Attachment – это прикрепленные /вложенные/загруженные медиафайлы к записи/статье через загрузочную форму в разделе редактирования постов. То есть файлы, добавленные через кнопку «Добавить медиафайл» автоматически привязываются к этой конкретной записи. И в следствии каждая картинка создает для себя отдельную страницу.

Почему это проблема?

Дело в том, что эти все вложенные изображения имеют такой же адрес URL, как и у поста, только после окончания адреса добавляется вложение. Пример — http://site.ru/post-title.html/attachment/img-title. И в некоторых случаях, в зависимости от содержания файла вложения, может дублироваться еще и какой-то контент, включая и название статьи.

Таким образом, в поиске образовывается большое количество дублей одной и той же записи. Что и является проблемой в ухудшении индексации сайта, появление мусорных ссылок и тому подобное.

Редирект attachment WordPress

Есть различные варианты и решения «отключения» вложенных в посты медиафайлов. Точнее, не отключение, а настройка редиректа 301, чтобы вложение направляло на основной адрес поста. И со временем произойдет склейка attachment с родительским постом. Все способы почти аналогичны друг другу, за исключением мелких деталей.

Редирект через файл вложения

За содержание прикрепленных изображений отвечает файл attachment.php или image.php. Они должны находиться внутри вашей текущей темы. Если таковых не обнаружите, то просто создайте новый файл с одним из названий выше, и поместите в этот файл код, который ниже. В случае если тема содержит один из названых файлов, тогда все содержимое поменяйте также на код, который ниже. И лучше всего этот файл загрузить в дочернюю тему.

<?php wp_redirect( get_permalink( $post->post_parent ), 301 ); exit; ?>

Через файл functions.php

Аналогичное решение, только нужно отредактировать файл функций. А в самом коде можно выбрать редирект как на основной URL, так и указать, чтоб вложенные картинки ввели на страницу ошибки 404.

add_action('template_redirect', 'template_redirect_attachment');
    function template_redirect_attachment() {
    global $post;
    if (is_attachment()) {
        wp_redirect(get_permalink($post->post_parent));//переадресация на родительский пост
                //или на сстраницу ошибки 404
                /*$wp_query->set_404();*/
         }
 }

Плагин Attachment Pages Redirect

Если не хочется возиться с редактированием и созданием файлов, проще тогда установить плагин. В нем отсутствуют какие-либо настройки, параметры или что-то подобное. Он только включает редирект и все. Установили и забыли про него.

Плагин Yoast SEO

Так как данный СЕО плагин используют многие пользователи, то может быть вы являетесь одним из их. И вам в таком случае не придется ничего делать, а только включить в его параметрах один пункт. На вкладке SEO в разделе Dashboard – Features включаем расширенные настройки (Advanced settings pages) и жмем кнопку «Сохранить». Потом переходим в раздел «Advanced» на вкладку «Permalinks» и включаем параметр «Redirect attachment URLs to parent post URL». Не забудьте сохранить изменения.

Автор, он же Андрей, он же Admin, он же WordSmall

Лентяй-любитель, окончил высшую школу безделья с многочисленными знаками отличия. Создатель этого небольшого «чудо-блога» о еще более «чудном» контенте.

E-mail Google+ Twitter
Добавить комментарий
bold quote code