Как установить пользовательский тип сообщения, чтобы не отображаться на переднем конце

9

Я использую пользовательский тип записи на одном из своих сайтов для слайд-шоу изображений. Я установил для общего доступа значение false / off, но когда Google сканирует мой сайт, я вижу 404 ошибки для URL-адресов моих слайд-шоу. Я подумал, что публичный запрос из Wordpress не создаст эти внешние URL-адреса.

Как полностью отключить внешние URL-адреса и страницы для моего пользовательского типа записи?

РЕДАКТИРОВАТЬ

Добавив public => false, has_archive => false, publicaly_queryable => falseи query_var => falseя успешно избавился от 404 ошибок в Google. Я также добавил функцию, предоставленную @Norcross просто для хорошей меры.

dkmojo
источник
Какой у вас URL?
s_ha_dum
как вы редактируете пользовательские типы сообщений с этими настройками? Публичное ложное означает, что я не могу редактировать его в админке
Laurence Cope
1
Чтобы редактировать в админе, вам нужно public => true, тогда у вас есть опечатка, чтобы сделать ее невидимой на внешнем интерфейсе, она должна быть publicly_queryable
Laurence Cope
!!!! Внимание !!! Существует опечатка, которая должна быть «
publicly_queryable

Ответы:

6

Другим вариантом было бы установить перенаправление 301 для всех CPT слайд-шоу, чтобы перенаправить куда-нибудь (как домашняя страница). Это будет получено Google, а также убедитесь, что никто случайно не попадет на них

function rkv_slideshow_redirect() {
    global $wp_query;

    // redirect from 'slideshow' CPT to home page
    if ( is_archive('CPT_NAME_HERE') || is_singular('CPT_NAME_HERE') ) :
        $url   = get_bloginfo('url');

        wp_redirect( esc_url_raw( $url ), 301 );
        exit();
    endif;
}

add_action ( 'template_redirect', 'rkv_slideshow_redirect', 1);
Norcross
источник
Спасибо! Все мои ошибки 404 слайд-шоу в Google теперь ушли. Я добавил public => false, has_archive => false и publicly_queryable => false, и они больше не отображаются как 404 ошибки. Я добавил код, указанный вами, в мой файл functions.php «на всякий случай». Еще раз спасибо!
dkmojo
2

Видимо, ваше слайд-шоу , а не WordPress, оно показывает эти URL. Я предполагаю, что это оборачивает изображения в слайд-шоу со ссылками на пользовательские сообщения, которые вы не хотите. Вам нужно отредактировать слайд-шоу, чтобы оно не делало этого.

s_ha_dum
источник
Слайд-шоу использует wp_get_attachment_image_src для извлечения изображений в цикле, поэтому нет ссылки на пользовательский тип записи слайд-шоу. Я просто установил параметр "public" в моем методе пользовательского типа записей в регистре в false. Я посмотрю, поможет ли это. Спасибо за ваш вклад!
dkmojo
1

Модификацию вашего исходного вопроса, вы должны добавить

'exclude_from_search' => true,

Если это не добавлено, CPT будет отображаться в результатах поиска.

JoseLazo
источник
developer.wordpress.org/reference/functions/register_post_type : exclude_from_search(bool) Следует ли исключать посты с этим типом поста из результатов поиска переднего плана. По умолчанию используется противоположное значение $ public.
Эренор Пас