Überprüfen Sie, ob eine Seite einen zugeordneten Begriff hat?
-
16-10-2019 - |
Frage
Ich suche nach einer Möglichkeit, eine bedingte Logik zu Begriffen zu machen, die mit einem Beitrag verbunden sind.
Im Wesentlichen habe ich meine eigene benutzerdefinierte Taxonomie für "Altersgruppen" erstellt und drei Begriffe für sie erstellt. Kinder, Teenager, Erwachsene ... Im Administratorbereich möchte ich die Begriffe überprüfen, die für einen bestimmten Beitrag gelten, und an der Frontend der Site in meiner Seitenvorlage möchte ich ein bestimmtes Bild anzeigen, wenn der Begriff dem Beitrag zugeordnet wurde oder eine andere, wenn der Begriff nicht verbunden war.
Hat jemand eine Lösung dafür ... Ich dachte, das folgende Code -Beispiel würde funktionieren, aber nicht. (Übrigens - Was ich hier tue, ist das Bild basierend auf CSS).
<li id="kids-<?php if ( is_term( 'Kids' , 'age_groups' ) ) {
echo 'on';
} else {echo 'off';} ?>">Kids Programs</li>
Lösung
Hi @NetConstructor:
Erste Sache, Annahme Ihre Logik funktioniert mit dem ternären Operator, um Ihr Beispiel zu vereinfachen:
<li id="kids-<?php echo is_term('Kids','age_groups')
? 'on' : 'off'; ?>">Kids Programs</li>
Das Problem scheint das zu sein is_term()
wird verwendet, um zu überprüfen, ob ein Begriff existiert, nicht wenn er einem bestimmten Beitrag zugeordnet ist. Ich denke, was du wirklich willst ist is_object_in_term()
(was davon ausgeht, dass Sie in der Nähe sind Die Schleife, dh das $post
hat einen geeigneten Wert):
<li id="kids-<?php echo is_object_in_term($post->ID,'age_groups','Kids')
? 'on' : 'off'; ?>">Kids Programs</li>
Ps angenommen is_term()
war die richtige Funktion gewesen, es war tatsächlich gewesen veraltet; term_exists()
ersetzt is_term()
; Nur zur Info.