Как отключить страницы вложений в WordPress (решение проблемы)

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

Все началось с того, что мне яндекс вебмастер выдал предупреждение, что у ваших страниц нету дескрипшена, и как оказалось, это было 4 страницы, все — страницы вложений, они имеют простой адрес, например сайт.ру/название_медиафайла. Посмотреть такой адрес вы можете в админ панели движка, в разделе медиафайлов (щелкаем на любую картинку и справа будет ссылка «Просмотреть страницу вложения».

Один из двух кодов, которые я привел ниже — вам нужно вставить в functions.php вашей темы.

Вывод 404 ошибки на странице вложения

add_action('template_redirect', 'template_redirect_attachment');
function template_redirect_attachment() {
global $wp_query;
// Если это вложение то устанавливаем 404 ошибку:
if (is_attachment()) {
$wp_query->set_404();
}
}

Редирект со страницы вложения на запись

add_action('template_redirect', 'template_redirect_attachment');
function template_redirect_attachment() {
global $post;
// Если это вложение то перейдем на страницу записи:
if (is_attachment()) {
wp_redirect(get_permalink($post->post_parent));
}
}

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

Понравилось? Было полезно? Подпишись!

Ваш E-mail

Обсуждение: 5 комментариев

  1. не фурычит
    первый вариант — страница отдает код 200, но при этом на самой странице выводится, что страница не существует
    второй вариант — циклический редирект, сама на себя делает

    недавно была такая же проблема, решил просто добавлением
    meta name=»robots» content=»noindex,follow»

    Ответить
    1. Optimiz:

      Перепроверил код, все работает как надо. Возможно ,проблема с вашей темой или плагинами. Проверьте.

      Ответить
  2. Это ценная штука

    Ответить
  3. Ох да, работа с кодами страницы всегда сложное дело. Спасибо за статью, очень интересная и познавательная. Начал заниматься продвижением после прочтения книг

    Ответить
  4. Tina:

    Подскажите, второй вариант (с редиректом) добавлять в конец файла functions?

    У меня файл functions завершается так:
    /*Add Category tovar*/
    /*Reg Reviews Type*/
    add_action(‘init’, ‘register_post_types’);
    function register_post_types(){

    register_taxonomy(‘item-cat’, array(‘page’), array(
    ‘hierarchical’ => true,
    ‘label’ => ‘Категории’,
    ‘query_var’ => true,
    // ‘rewrite’ => true
    ‘rewrite’ => array(‘slug’ => ‘item-cat’, ‘with_front’ => false),)
    );
    flush_rewrite_rules(false);

    }

    // add_action( ‘admin_head-post-new.php’, ‘cwc_fix_html_editor_font’ );
    //add_action( ‘wp_head’, ‘cwc_fix_html_editor_font’ );

    Верно будет добавить код, как есть перед последними двумя строками (перед // add_action)?

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *