Как в wordpress запретить просмотр записей произвольного типа(custom post_type)?

Решено

я создал свой произвольный тип записей в вордпресс(post_type). С помощью встроенной функции register_post_type(). Мне нужно запретить просмотр данных записей  на сайте(фронтэнд), так как они у меня служат для внутренних целей. Для решения проблемы я пробовал играться с параметрами, такими как: public, publicly_queryable, exclude_from_search, query_var, rewrite. Но результата это не принесло, записи как открывались на сайте так и открываются. Еще важным условием является то что мне нужно отображать произвольный тип в админке. Скажите как можно решить данную проблему?

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

Думаю в вашем случае(раз игра с параметрами не прошла) поможет обычная переадресация, например на главную. Мы проверим тип страницы и если он тот самый — будем перенаправлять:

 add_action( 'template_redirect', 'onwp_redirect_post' );
function onwp_redirect_post() {
 $queried_post_type = get_query_var('post_type');
 if ( is_single() && 'onwp_post_type' ==  $queried_post_type ) {
 wp_redirect( home_url(), 301 );
 exit;
 }
 }
 

onwp_post_type — ваш произвольный тип записи.

Нужно заметить что мы сделаем переадресацию, если только это single — страница записи.

Для того что бы исключить из поиска, вам следует и выдачи вообще, вам следует прописать к своему post_type следующее:

'public' => false,
'publicly_queryable' => false, // запросы не будут работать во фронтэнде
'exclude_from_search' => true, // не показывать в поиске исключить из запросов query_posts()
'show_ui' => true, // показывать в меню в админ панеле
'query_var' => false, // Ставим false, чтобы убрать возможность запросов
'rewrite' => false, // не использовать ЧПУ

‘show_ui’ => true — покажет ваш пост тайп в меню.

Если нужно можно перенаправить на страницу 404 об этом говорилось тут:

Как в wordpress сделать перенаправление на страницу 404?

в 10.03.2016.
Добавить Комментарий

Ваш ответ

Размещая свой ответ, вы соглашаетесь с правилами сайта.