Cómo configurar un tipo de publicación personalizada para que no aparezca en el front-end

9

Utilizo un tipo de publicación personalizada en uno de mis sitios para presentaciones de imágenes. He establecido consultas públicas en false / off, pero cuando Google rastrea mi sitio, veo errores 404 para las URL de mis presentaciones de diapositivas. Pensé que tener una consulta pública fuera de Wordpress no crearía esas URL front-end.

¿Cómo puedo desactivar por completo las URL y páginas frontales para mi tipo de publicación personalizada?

EDITAR

Mediante la adición de public => false, has_archive => false, publicaly_queryable => false, y query_var => falsehe conseguido con éxito deshacerse de los errores 404 en Google. También agregué la función proporcionada por @Norcross solo por si acaso.

dkmojo
fuente
¿Cuál es tu URL?
s_ha_dum
¿Cómo edita los tipos de publicaciones personalizadas con esa configuración? Público falso significa que no puedo editarlo en administración
Laurence Cope
1
Para editar en el administrador parece que necesita public => true, entonces tiene un error tipográfico para que no sea visible en el front end, debería ser publicly_queryable
Laurence Cope
!!!! Atención !!! Hay un error tipográfico que debería ser 'publicly_queryable' no 'publicaly_queryable'
Tofandel

Respuestas:

6

Otra opción sería establecer una redirección 301 para todos los CPT de presentación de diapositivas para redirigir a algún lugar (como la página de inicio). Esto sería recogido por Google, y también se aseguraría de que nadie los alcance accidentalmente

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
fuente
¡Gracias! Todos mis errores de presentación de diapositivas 404 en Google ya no están. Agregué public => false, has_archive => false y publicly_queryable => false y ya no aparecen como errores 404. Agregué el código que proporcionó a mi archivo functions.php "por si acaso". ¡Gracias de nuevo!
dkmojo
2

Aparentemente, su presentación de diapositivas , no WordPress, revela esas URL. Supongo que está envolviendo las imágenes en la presentación de diapositivas con enlaces a las publicaciones personalizadas, que no desea. Necesita editar la presentación de diapositivas para que no lo haga.

s_ha_dum
fuente
La presentación de diapositivas usa wp_get_attachment_image_src para extraer las imágenes dentro de un bucle para que no haya ningún enlace al tipo de publicación personalizada de la presentación de diapositivas. Acabo de establecer el parámetro "público" en mi método de registro de tipo de publicación personalizado en falso. Veré si eso ayuda. ¡Gracias por tu contribución!
dkmojo
1

Una modificación a su pregunta original, debe agregar

'exclude_from_search' => true,

Si esto no se agrega, el CPT aparecerá en los resultados de búsqueda.

JoseLazo
fuente
developer.wordpress.org/reference/functions/register_post_type : exclude_from_search(bool) Si se excluyen las publicaciones con este tipo de publicación de los resultados de búsqueda front-end. El valor predeterminado es el valor opuesto de $ public.
Erenor Paz