Controllare se una pagina ha un termine associato?
-
16-10-2019 - |
Domanda
Sto cercando un modo per fare un po 'di logica condizionato a condizioni associate con un post.
In sostanza ho creato il mio tassonomia personalizzato per "età" e hanno creato tre termini per loro. Bambini, adolescenti, adulti ... Nel settore amministrativo voglio verificare i termini che si applicano a un post specifico e sul frontend del sito all'interno del mio modello di pagina voglio mostrare un'immagine specifica se il termine è stato associato con il post o uno diverso se il termine non è stato associato.
Qualcuno ha una soluzione per questo ... ho pensato che il seguente esempio di codice avrebbe funzionato, ma non è così. . (A proposito - che cosa sto facendo qui sta cambiando l'immagine in base al largo css)
<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
Soluzione
Ciao @NetConstructor:
Per prima cosa, assumendo la logica ha funzionato è possibile utilizzare l'operatore ternario per semplificare il tuo esempio:
<li id="kids-<?php echo is_term('Kids','age_groups')
? 'on' : 'off'; ?>">Kids Programs</li>
Il problema sembra essere che is_term()
viene utilizzato per verificare se esiste un termine, se non è associato a un determinato post. Credo che ciò che si vuole veramente è is_object_in_term()
(che presuppone che l'utente nella The Loop , vale a dire che $post
ha un valore appropriato ):
<li id="kids-<?php echo is_object_in_term($post->ID,'age_groups','Kids')
? 'on' : 'off'; ?>">Kids Programs</li>
P.S. Supponendo is_term()
era stata la giusta funzione, che sia stato effettivamente deprecato ; sostituisce term_exists()
is_term()
; Cordiali saluti.