Tag condizionale is_page con un custom post type
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:
- is_page dovrebbe funzionare in questo caso?
- se no, qual è la migliore alternativa?
Grazie Andrea

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.

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

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.

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.

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');
}
