Как убрать из WordPress страницы вложений и лишние архивы без плагина

Страница вложения — отдельный адрес WordPress для загруженного изображения или другого файла. Архивы категорий, меток, авторов и дат тоже могут создавать страницы, которые не нужны на конкретном сайте. Убирать их можно без плагина, но сначала решите, что должно происходить при открытии старого адреса: перенаправление на файл или подходящую страницу либо ответ 404.

Удаление страниц не удаляет сами записи, рубрики и файлы из медиатеки. Для большинства сайтов достаточно отключить архив конкретного типа записи, а для ненужных архивов таксономий и авторов возвращать 404. Ниже — варианты для разных случаев.

Страницы вложений: что меняется в разных версиях WordPress

Страница вложения — это не файл, а запись типа attachment с собственным URL. Например, у картинки могут быть адрес файла и отдельный адрес страницы, на которой тема выводит изображение, заголовок и описание.

Начиная с WordPress 6.4 страницы вложений по умолчанию отключены: запрос к такой странице перенаправляется на URL самого файла. Поведение можно изменить фильтром wp_attachment_pages_enabled. Поэтому на актуальной версии сначала проверьте сайт: возможно, менять код не требуется. Если страница всё ещё открывается, проверьте, не включена ли она фильтром в теме или другом коде.

На WordPress до 6.4 страницы вложений могут отображаться как обычные страницы сайта. Если обновить WordPress сейчас нельзя, добавьте перенаправление. Код ниже отправляет посетителя со страницы вложения на файл; если URL файла получить не удалось, запрос станет 404.

add_action( 'template_redirect', function () {
    if ( ! is_attachment() ) {
        return;
    }

    $file_url = wp_get_attachment_url( get_queried_object_id() );

    if ( $file_url ) {
        wp_redirect( $file_url, 301 );
        exit;
    }

    global $wp_query;
    $wp_query->set_404();
    status_header( 404 );
    nocache_headers();
}, 1 );

Добавляйте этот код только на версиях, где страницы вложений действительно открываются, или после проверки, что он не дублирует уже настроенное перенаправление. Здесь используется wp_redirect(), потому что URL файла может вести на внешний домен CDN. Адрес берётся из данных вложения WordPress, а не из параметра запроса. После изменения проверьте несколько вложений, в том числе файлы, для которых настроен внешний CDN.

Перенаправление не удаляет файл и не мешает вставлять его в записи. Оно меняет только ответ на запрос страницы вложения. Если вам нужно полностью отключить страницу на WordPress 6.4 и новее, можно дополнительно вернуть значение false для фильтра wp_attachment_pages_enabled, но на стандартной установке это уже поведение по умолчанию.

Отключите архив типа записи в месте его регистрации

Если лишний архив относится к пользовательскому типу записи, например к портфолио, задайте has_archive значение false в вызове register_post_type(). Это предпочтительнее, чем перехватывать запрос и перенаправлять его: WordPress не будет регистрировать архивный URL для этого типа записей.

register_post_type( 'portfolio', array(
    'label'        => 'Портфолио',
    'public'       => true,
    'has_archive'  => false,
    'rewrite'      => array( 'slug' => 'portfolio' ),
) );

В примере отключён именно архив портфолио. Одиночные записи при этом продолжают открываться по своим адресам. Если тип записи зарегистрирован плагином или готовой темой, найдите вызов register_post_type() в документации или исходном коде этого компонента. Не добавляйте второй вызов для уже зарегистрированного типа: это может вызвать конфликт. Если изменить регистрацию нельзя, используйте обработку архивов, описанную ниже.

Как убрать архивы рубрик, меток, авторов и дат

У рубрик и меток нет одной общей настройки WordPress, которая отключает только их архивные страницы и оставляет сами рубрики и метки. Можно удалить таксономию целиком, но это повлияет на редактор и привязанные к ней записи. Если задача — не показывать архивы, безопаснее оставить данные и отвечать 404 на запрос к ненужным страницам.

Добавьте обработчик в файл functions.php дочерней темы или в собственный небольшой функциональный плагин. Файл основной темы для такой правки неудобен: обновление темы может перезаписать изменения. Пример ниже отключает архивы рубрик, меток, всех таксономий, авторов и дат, а также архивы всех типов записей.

add_action( 'template_redirect', function () {
    if (
        is_category() ||
        is_tag() ||
        is_tax() ||
        is_author() ||
        is_date() ||
        is_post_type_archive()
    ) {
        global $wp_query;
        $wp_query->set_404();
        status_header( 404 );
        nocache_headers();
    }
}, 1 );

Код не перенаправляет посетителей на главную, а возвращает настоящий статус 404 и позволяет теме вывести шаблон ошибки. Это лучше, чем массово отправлять разные страницы на один URL: такой редирект может сбивать посетителей с толку и не указывает на равнозначную замену.

Не используйте этот вариант без изменений, если некоторые архивы нужны. Например, чтобы оставить архив рубрик и отключить только авторов и даты, удалите из условия is_category(). Чтобы отключить только архив конкретного типа записи, замените общий вызов is_post_type_archive() на условие для нужного типа, например is_post_type_archive( 'portfolio' ). Условие is_tax() относится к пользовательским таксономиям; архивы рубрик и меток отдельно учитываются через is_category() и is_tag().

Перенаправляйте только туда, где есть подходящая замена

Иногда архив действительно заменён другой страницей. Например, архив старого типа записей можно перенаправить на новый раздел, если содержание и назначение страниц совпадают. В таком случае используйте постоянный редирект 301 на конкретный релевантный адрес. Не отправляйте все рубрики, метки и авторские архивы на главную только ради того, чтобы они перестали открываться.

Если подходящей страницы нет, оставьте 404. Если архив отключается через has_archive => false, проверьте старые URL: после изменения правил маршрутизации WordPress иногда продолжает открывать адрес по ранее сохранённым правилам. В таком случае зайдите в админке в раздел «Настройки» → «Постоянные ссылки» и нажмите «Сохранить изменения», не меняя настройки. Это обновит правила перезаписи адресов.

Проверьте результат и ссылки на сайте

Откройте адрес страницы вложения и несколько URL тех архивов, которые отключили. Для страницы вложения ожидайте перенаправление на файл, если работает стандартное поведение WordPress 6.4 или добавленный обработчик. Для архивов, отключённых через пример выше, должен возвращаться статус 404 и отображаться шаблон ошибки темы. Проверить HTTP-статус можно в инструментах разработчика браузера на вкладке Network.

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

Как отключить архивы тегов в WordPress
31.10.2026
Как убрать из WordPress страницы вложений и лишние архивы без плагина
09.11.2026
Как убрать из индекса теги noindex, canonical и robots.txt в WordPress
10.10.2026
Как отключить архивы автора в WordPress
28.10.2026
Как автоматически удалять старые ревизии в WordPress без плагинов
02.10.2026

Изучение WordPress: детальные уроки и нужные советы.