Как отключить страницы постов (single-тип.php) определённого типа?

Типы записей — это такой мега-удобный, а благодаря произвольным полям, ещё и расширяемый функционал в WordPress, и именно поэтому его используют довольно много для каких целей, а не только для создания товаров в интернет-магазинах.

В этой статье я подробно рассмотрю ситуацию, когда при создании постов какого-то типа нам не нужно, чтобы на сайте для них создавалась страница. В качестве примера возьму иногда встречающуюся, не совсем удачную реализацию слайдера — это когда для слайдов регистрируется отдельный тип поста, в результате чего у каждого слайда появляется своя страница на сайте. А как вы знаете, если WordPress не находит файла single-тип_поста.php, то он использует файл записей single.php.

Обычно о таких вещах владельцы сайтов и не подозревают до тех пор, пока не обнаруживают свои слайды отдельными страницами в результатах поиска Google. Обратившись к сеошникам, они получают ответ — проставить 301 редирект с этих страниц например на главную.

add_action( 'template_redirect', 'true_slider_301' );
 
function true_slider_301() {
 
    if ( is_singular('slide') ) { // проверка того, что находимся на странице типа slide (я обозвал так для примера)
        wp_redirect( home_url(), 301 ); // редиректим
        exit;
    }
 
}

А на самом то деле, всё, что было нужно сделать — это указать при регистрации типа поста параметр publicly_queryable равным false. Тогда даже пропадут кнопки «Просмотреть» и «Просмотреть изменения» из админки WordPress.

При установке publicly_queryable false кнопки просмотра исчезнут для данного типа поста
$args = array(
    ...
    'publicly_queryable' => false,
 
    ...
);
register_post_type( 'slide', $args );

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

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

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

%d такие блоггеры, как: