Как отключить страницы вложений в 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
Оставить комментарий

avatar
4 Цепочка комментария
1 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
5 Авторы комментариев
TinaЮрийOptimizBlackSEO-SeermGinger Dog Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о
Ginger Dog
Гость

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

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

BlackSEO-Seerm
Гость

Это ценная штука

Юрий
Гость

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

Tina
Гость
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)?