Как в 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.
    Добавить Комментарий

    Ваш ответ

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