Comment définir un type de publication personnalisé pour ne pas apparaître sur le frontal

9

J'utilise un type de publication personnalisé dans l'un de mes sites pour les diaporamas d'images. J'ai la possibilité d'interroger publiquement la valeur false / off, mais lorsque Google explore mon site, je vois 404 erreurs pour les URL de mes diaporamas. Je pensais qu'en ayant une requête publique sur Wordpress, cela ne créerait pas ces URL frontales.

Comment désactiver complètement les URL et les pages frontales pour mon type de publication personnalisé?

ÉDITER

En ajoutant public => false, has_archive => false, publicaly_queryable => falseet query_var => falseje l' ai réussi à réussi à se débarrasser des erreurs 404 dans Google. J'ai également ajouté la fonction fournie par @Norcross juste pour faire bonne mesure.

dkmojo
la source
Quelle est votre URL?
s_ha_dum
comment modifiez-vous les types de publication personnalisés avec ces paramètres? Public faux signifie que je ne peux pas le modifier en administrateur
Laurence Cope
1
Pour éditer dans l'administration on dirait que vous avez besoin de public => true, alors vous avez une faute de frappe pour la rendre non visible sur le front end, elle devrait être publique_queryable
Laurence Cope
!!!! Attention !!! Il y a une faute de frappe qui devrait être 'publiquement_queryable' et non '
publicaly_queryable

Réponses:

6

Une autre option serait de définir une redirection 301 pour tous les CPT de diaporama à rediriger quelque part (comme la page d'accueil). Cela serait récupéré par Google et ferait en sorte que personne ne s'y mette accidentellement

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
la source
Merci! Toutes mes erreurs de diaporama 404 dans Google ont maintenant disparu. J'ai ajouté public => false, has_archive => false et public_queryable => false et ils n'apparaissent plus comme des erreurs 404. J'ai ajouté le code que vous avez fourni à mon fichier functions.php "juste au cas où". Merci encore!
dkmojo
2

Apparemment, votre diaporama , pas WordPress, il révèle ces URL. Je suppose qu'il enveloppe les images du diaporama avec des liens vers les messages personnalisés, ce que vous ne voulez pas. Vous devez modifier le diaporama pour qu'il ne le fasse pas.

s_ha_dum
la source
Le diaporama utilise wp_get_attachment_image_src pour extraire les images dans une boucle, il n'y a donc pas de lien vers le type de publication personnalisé du diaporama. Je viens de définir le paramètre "public" dans ma méthode de type de message personnalisé de registre sur false. Je vais voir si ça aide. Merci pour votre contribution!
dkmojo
1

Une modification de votre question d'origine, vous devez ajouter

'exclude_from_search' => true,

Si ce n'est pas ajouté, le CPT apparaîtra dans les résultats de recherche.

JoseLazo
la source
developer.wordpress.org/reference/functions/register_post_type : exclude_from_search(bool) Indique si les publications avec ce type de publication doivent être exclues des résultats de recherche frontaux. La valeur par défaut est la valeur opposée de $ public.
Erenor Paz