Cum să dezactivez URL-urile front-end pentru un custom post type
Folosesc un custom post type pe unul dintre site-urile mele pentru slideshow-uri de imagini. Am setat publicly_queryable pe false/dezactivat, dar când Google indexează site-ul meu observ erori 404 pentru URL-urile slideshow-urilor. Am crezut că prin dezactivarea publicly_queryable, WordPress nu va genera acele URL-uri front-end.
Cum pot dezactiva complet URL-urile și paginile front-end pentru custom post type-ul meu?
EDIT
Prin adăugarea parametrilor 'public' => false
, 'has_archive' => false
, 'publicly_queryable' => false
și 'query_var' => false
am reușit să elimin erorile 404 din Google. De asemenea, am adăugat funcția sugerată de @Norcross ca măsură suplimentară.

O altă opțiune ar fi să setați o redirecționare 301 pentru toate postările personalizate (CPT) ale slideshow-ului către o altă destinație (cum ar fi pagina principală). Acest lucru ar fi detectat de către Google și ar asigura că nimeni nu ajunge accidental pe aceste pagini
function rkv_slideshow_redirect() {
global $wp_query;
// redirecționează de la postarea personalizată 'slideshow' către pagina principală
if ( is_post_type_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);

Mulțumesc! Toate erorile 404 din Google pentru slideshow-urile mele au dispărut. Am adăugat public => false, has_archive => false și publicly_queryable => false și ele nu mai apar ca erori 404. Am adăugat și codul pe care l-ai furnizat în fișierul meu functions.php "doar pentru orice eventualitate". Mulțumesc din nou!

https://developer.wordpress.org/reference/functions/register_post_type/: exclude_from_search
(bool) Determină dacă postările cu acest tip de post să fie excluse din rezultatele căutărilor pe front-end. Valoarea implicită este opusul lui $public.

Prezentarea de diapozitive folosește wp_get_attachment_image_src pentru a încărca imaginile într-o buclă, deci nu există nicio legătură către tipul personalizat de postare pentru slideshow. Tocmai am setat parametrul "public" în metoda mea de înregistrare a tipului de postare personalizat la false. Voi verifica dacă asta ajută. Mulțumesc pentru sugestie!
