Dichiarazione condizionale per categorie di custom post type
Vorrei mostrare un testo che dipende dalla mia tassonomia personalizzata di categoria, come:
se la categoria del custom post type è X, allora mostra Testo Y.
Ho provato questo codice, ma non funziona:
global $post;
if (($post->post_type == 'myposttype') && is_category('slug-name-of-cat')) {
echo 'Il mio testo';
}
Qualche idea?
is_category()
non funziona sulle pagine di archivio delle tassonomie personalizzate. Il tag condizionale corretto qui è is_tax()
che accetta il nome della tassonomia come primo parametro e una stringa|int|array di nomi, slug o ID dei termini come secondo parametro.
Quindi la tua intera istruzione condizionale può essere simile a:
if ( is_tax( 'my_taxonomy', 'slug-name-of-the-term') ) {
echo 'My text';
}
MODIFICA
Inoltre, per verificare se un post appartiene a un termine specifico, dovresti usare has_term()
per testare il termine specifico
global $post;
if ( ( $post->post_type == 'myposttype' )
&& has_term( 'slug-name-of-the_term', 'my_taxonomy' )
) {
echo 'My text';
}

Le funzioni condizionali is_*
lavorano sulla query, non sul post corrente. In altre parole, ti dicono informazioni riguardo alla pagina in cui ti trovi, ma non riguardo al post corrente.
is_category()
verificherà se la pagina corrente è un archivio di categoriahas_category()
verificherà se il post ha una specifica categoria assegnata
Dalla tua descrizione, sospetto che tu intenda quest'ultima.

Consulta questo codex per una comprensione dettagliata: https://codex.wordpress.org/Function_Reference/get_categories
Puoi fare qualcosa del genere:
$args = array(
'taxonomy' => **$your_taxonomy**,
'orderby' => name,
'title_li' => $title,
);
$sub_cats = get_categories( $args );
if( !empty($sub_cats) ) {
// stampa il nostro output
}
