Tag condizionale is_page con un custom post type

29 apr 2014, 20:39:07
Visualizzazioni: 9.74K
Voti: 2

Secondo la documentazione di is_page, fornendo lo slug come argomento WordPress può dirmi se la pagina corrente è quella rappresentata dallo slug. Forse sto usando lo slug sbagliato? Tuttavia ho provato sia il percorso utilizzato nell'argomento rewrite sia quello che considero essere lo "slug" o in altre parole l'elemento usato per registrare il CPT.

Ecco un frammento di codice per farti capire:

'rewrite'               => array( 'slug' => 'faqs/archivio' )
  );

register_post_type( 'faqs', $args );

Ho provato a usare lo slug utilizzato per un custom post type, ma non sono riuscito a farlo funzionare.

Quindi due domande:

  1. is_page dovrebbe funzionare in questo caso?
  2. se no, qual è la migliore alternativa?

Grazie Andrea

0
Tutte le risposte alla domanda 2
4

La creazione di un tipo di post personalizzato ha all'interno della sua definizione un post type. Inoltre, "page" è solo un tipo di post predefinito. Se registri il tuo tipo di post personalizzato, verifica questo post type, non una pagina.

Tag Condizionale is_singular

La funzione, tag condizionale is_singular() ha come scopo principale verificare se si sta visualizzando un post singolo. Tuttavia, può anche essere utilizzata per verificare se si sta visualizzando un post singolo di un determinato tipo di post inserendo il parametro $post_type come mostrato nel seguente frammento di codice.

is_singular( 'your_custom_post_type' );

o per diversi tipi di post

is_singular( array( 'your_custom_post_type_1', 'your_custom_post_type_2' ) );

Suggerimento per il debug

Utilizzo il plugin Debug Objects per eseguire il debug di argomenti in questo contesto. Forse questo può aiutarti anche te, spesso è più semplice che leggere il codice o il codex. Guarda la seguente schermata del plugin, il risultato dei tag condizionali, inclusi is_page() e is_single() su un CPT. Risultato dei tag condizionali con Debug Objects

29 apr 2014 20:49:09
Commenti

Grazie, scaricherò questo plugin. Potresti cortesemente chiarire dove si trova l'errore di battitura? Apparentemente il mio CPT funziona bene, quindi non capisco.

Andrea Moro Andrea Moro
30 apr 2014 06:40:08

A quale errore di battitura ti riferisci?

bueltge bueltge
30 apr 2014 14:01:15

Scusa... ora ho capito la frase. Hai scritto "a post typo" mentre avrebbe dovuto essere "a post type". Quindi ho pensato che fosse un mio errore di battitura. BTW ho installato il plugin, che non è più in beta. Il layout è diverso e non riesco a trovare l'output del mio is_page o is_singular. Suppongo che siano nella sezione debug_hooks.

Andrea Moro Andrea Moro
1 mag 2014 06:51:36

Sì, è stato un errore da parte mia, ora corretto in "type". Se hai installato il plugin, vedi le impostazioni, attiva il topic condizionale. Se sei sul lato, ci sarà il debug, clicca sul bug nella barra di amministrazione o usa il parametro url, anche documentato nella pagina delle impostazioni.

bueltge bueltge
2 mag 2014 18:41:18
1

Puoi fare così, per instradare il file single.php per diversi tipi di post.

Ho due file single.php chiamati single-product.php e single-blogs.php.

Ora nel file single.php ho scritto il mio codice qui sotto per reindirizzare i diversi post in base al tipo di Custom Post

if (get_post_type('product'))
{        
  include (TEMPLATEPATH . '/single-product.php');
}
else 
{         
 include (TEMPLATEPATH . '/single-blogs.php');
}

oppure

if (is_singular('product'))
{        
 include (TEMPLATEPATH . '/single-product.php');
}
else 
{         
  include (TEMPLATEPATH . '/single-blogs.php');
}
10 apr 2018 10:25:17
Commenti

Se stai caricando file di template, sarebbe buona pratica usare get_template_part() invece di include.

Jacob Peattie Jacob Peattie
10 apr 2018 11:04:12