Come impostare un custom post type per non visualizzarlo sul front end

30 nov 2012, 16:27:47
Visualizzazioni: 13.8K
Voti: 11

Uso un custom post type in uno dei miei siti per le slideshow di immagini. Ho impostato publicly_queryable su false/off ma quando Google esegue il crawling del mio sito vedo errori 404 per gli URL delle mie slideshow. Pensavo che impostando publicly_queryable su off WordPress non avrebbe creato quegli URL front end.

Come posso disabilitare completamente gli URL e le pagine front end per il mio custom post type?

MODIFICA

Aggiungendo 'public' => false, 'has_archive' => false, 'publicly_queryable' => false, e 'query_var' => false sono riuscito a eliminare gli errori 404 in Google. Ho anche aggiunto la funzione fornita da @Norcross per maggiore sicurezza.

4
Commenti

Qual è il tuo URL?

s_ha_dum s_ha_dum
1 dic 2012 17:41:41

come si modificano i custom post type con quelle impostazioni? Public false significa che non posso modificarli nell'admin

Laurence Cope Laurence Cope
4 mar 2016 16:46:46

Per modificare nell'admin sembra che tu abbia bisogno di public => true, poi hai un errore di battitura per non renderlo visibile sul front end, dovrebbe essere publicly_queryable

Laurence Cope Laurence Cope
4 mar 2016 16:50:57

!!!! Attenzione !!! C'è un errore di battitura, dovrebbe essere 'publicly_queryable' non 'publicaly_queryable'

Tofandel Tofandel
6 ago 2018 17:49:21
Tutte le risposte alla domanda 4
1

Un'altra opzione sarebbe impostare un reindirizzamento 301 per tutti i CPT dello slideshow verso un'altra pagina (come la home). Questo verrebbe rilevato da Google e assicurerebbe che nessuno vi acceda accidentalmente.

function rkv_slideshow_redirect() {
    global $wp_query;

    // reindirizza dal CPT 'slideshow' alla home page
    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);
2 dic 2012 18:23:26
Commenti

Grazie! Tutti i miei errori 404 delle presentazioni su Google sono ora spariti. Ho aggiunto public => false, has_archive => false e publicly_queryable => false e non compaiono più come errori 404. Ho anche aggiunto il codice che hai fornito al mio file functions.php "per sicurezza". Grazie ancora!

dkmojo dkmojo
3 dic 2012 19:36:55
1

Una modifica alla tua domanda originale, dovresti aggiungere

'exclude_from_search' => true,

Se questo non viene aggiunto, il CPT (Custom Post Type) apparirà nei risultati di ricerca.

8 set 2015 13:04:22
Commenti

https://developer.wordpress.org/reference/functions/register_post_type/: exclude_from_search (bool) Se escludere i post con questo tipo di post dai risultati di ricerca front-end. Il valore predefinito è l'opposto di $public.

Erenor Paz Erenor Paz
5 apr 2017 13:14:36
1

A quanto pare il tuo slideshow, non WordPress, sta mostrando quegli URL. Presumo che stia avvolgendo le immagini nello slideshow con link ai post personalizzati, cosa che non vuoi. Devi modificare lo slideshow in modo che non lo faccia.

30 nov 2012 16:43:00
Commenti

Lo slideshow utilizza wp_get_attachment_image_src per recuperare le immagini all'interno di un loop, quindi non c'è un link al custom post type dello slideshow. Ho appena impostato il parametro "public" nel mio metodo di registrazione del custom post type su false. Vedrò se questo aiuta. Grazie per il tuo contributo!

dkmojo dkmojo
1 dic 2012 17:39:40
1

Per favore, aggiorna o modifica il permalink e salva. Pannello di controllo -> Impostazioni -> permalink -> Modifica o aggiorna e poi salva le impostazioni.

20 giu 2021 17:43:23
Commenti

Non sono sicuro che sarebbe d'aiuto in questo caso? Non credo che WordPress utilizzi la cache dei permalink per creare effettivamente gli URL, ma solo per instradarli.

Rup Rup
24 giu 2021 02:08:51