Как избавиться от страниц вложений в WordPress?

В CMS WordPress создаются отдельные страницы под каждый файл, загруженный в медиатеку. Как от них избавиться не прибегая к плагинам?


Зачем от них нужно избавиться?

Причины, по которым следует избавиться от этих страниц:

  1. В них нет смысла, ни для посетителя, ни для робота;
  2. Лишний объем в индексе поисковых систем;
  3. Такие страницы могут вводить в заблуждение посетителей;
  4. Очень часто такие страницы просто не оформлены.

Взяться за написание этого поста побудило тот факт, что эти страницы в Яндекс.Вебмастере оказались без мета-тегов.

Просто закрыть их в

robots.txt

не позволила структура ЧПУ.

Решение через код 404

Первое решение проблемы лишних страниц с вложениями стало с таким кодом в

functions.php

:

add_action("template_redirect", "disable_attachment_page");
 
function disable_attachment_page() {
  global $wp_query;
  if (is_attachment()) {
    $wp_query->set_404();
  } 
}


Суть:

Видя страницу, на которой срабатывает функция

is_attachment()

, просим WordPress показать посетителю шаблон страницы 404.

Все работает, никаких нареканий нет, и владельцы сайтов довольны, но есть существенные минусы в этом подходе!


Недостатки:

  1. Ссылки на такие страницы (если они есть), автоматически становятся «битыми»;
  2. Возвращается только шаблон 404 страницы, но код ответа сервера все равно 200 (Ок);


Вывод:

Решение плохое, не рекомендую его использовать никому.

Решение через перенаправление

add_action("template_redirect", "disable_attachment_page");
 
function disable_attachment_page() {
  global $post;
  if (is_attachment()) {     
    wp_redirect(get_permalink($post->post_parent), 301);  
  } 
}


Суть:

попав на страницу вложения посетителя сразу перенаправляет на страницу или запись, к которой этот медиафайл прикреплен.


Крайне рекомендую

принудительно прописать в функции

wp_redirect()

вторым параметром код 301 (постоянный редирект), потому как по-умолчанию отдается 302 (временный).

Таким образом, если вы случайно добавили медиафайл с ссылкой на страницу вложения — ничего страшного. И ссылки битой не останется, и посетители эту страницу не увидят.


admin

Share
Published by
admin

Recent Posts

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 месяца ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 месяца ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 месяца ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 месяца ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 месяца ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 месяца ago