Как отключить страницы вложений в 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));
}
}
Выбирайте тот вариант, что вам больше нравится, вставляйте в тему и забудьте об этой проблеме, если она у вас есть, ну или может появиться. Я бы советовал второй способ — редирект на страницу записи, к которой принадлежит вложение.
не фурычит
первый вариант — страница отдает код 200, но при этом на самой странице выводится, что страница не существует
второй вариант — циклический редирект, сама на себя делает
недавно была такая же проблема, решил просто добавлением
meta name=»robots» content=»noindex,follow»
Перепроверил код, все работает как надо. Возможно ,проблема с вашей темой или плагинами. Проверьте.
Это ценная штука
Ох да, работа с кодами страницы всегда сложное дело. Спасибо за статью, очень интересная и познавательная. Начал заниматься продвижением после прочтения книг
Подскажите, второй вариант (с редиректом) добавлять в конец файла 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)?