declarație condițională pentru taxonomie personalizată

12 iul. 2013, 22:57:29
Vizualizări: 19.6K
Voturi: 1

Mă chinui să aflu cum să realizez acest lucru, dacă este posibil. Echivalentul lui is_category dar pentru o taxonomie personalizată pe care am configurat-o. Taxonomia este Numele Taxonomiei cu 2 termeni: Taxonomia Unu și Taxonomia Doi. Dar acest cod:

<?php if ( has_term('taxonomia-unu' ) ) {?>
    <div class="test" style="color: red"><?php the_field('nume_camp'); ?></div>
<?php } elseif ( has_term('taxonomia-doi' ) ) {?>
    <div class="test" style="color: green"><?php the_field('nume_camp'); ?></div>
<?php } ?>

Nu pare să existe documentație pentru acest lucru, așa că nu sunt sigur dacă este posibil, sper totuși că da. Orice sugestii ar fi foarte apreciate!

0
Toate răspunsurile la întrebare 1
13

Sunt sigur că nu ar trebui să folosești negație în condiții... Dacă verifici ! is_tax... va fi adevărat nu doar pentru alte pagini de taxonomie, dar și pentru pagini singular, și orice altceva...

Deci ar trebui să arate astfel:

<?php if ( is_tax('taxonomy-name','taxonomy-one' ) ) {?>
    <div class="test" style="color: red"><?php the_field('field_name'); ?></div>
<?php } elseif ( is_tax('taxonomy-name','taxonomy-two' ) ) {?>
    <div class="test" style="color: green"><?php the_field('field_name'); ?></div>
<?php } ?>

Și despre lipsa documentației... Nu am idee unde ai căutat, dar există o pagină în codex pentru is_tax: http://codex.wordpress.org/Function_Reference/is_tax ;)

PS. Dacă vrei să verifici dacă un anumit post este atribuit unui termen, atunci ar trebui să folosești funcția has_term.

12 iul. 2013 23:04:26
Comentarii

mulțumesc pentru asta! Am citit asta în codex înainte, dar eu nu caut să pun acest cod într-o arhivă de taxonomii, ci într-o arhivă de tip post personalizat la care am adăugat taxonomiile personalizate :) Am încercat și codul sugerat de tine mai sus și nu a funcționat :(

user1374796 user1374796
12 iul. 2013 23:19:30

is_tax îți spune dacă este o arhivă de taxonomii. O arhivă de tip post personalizat nu este o arhivă de taxonomii (la fel cum indexul de postări nu este o arhivă de categorii)... Deci nu sunt exact sigur ce încerci să realizezi...?

Krzysiek Dróżdż Krzysiek Dróżdż
12 iul. 2013 23:32:30

ah, corect, nu mi-am dat seama de asta, sunt nou în taxonomii, scuze. Ceea ce încercam să realizez era să verific dacă postul se află într-o taxonomie sau alta. Dacă se află într-una, textul din arhiva postărilor va fi roșu, iar dacă se află în cealaltă, textul din arhiva postărilor va fi verde.

user1374796 user1374796
12 iul. 2013 23:36:37

Nicio problemă. Ar trebui să folosești has_term (http://codex.wordpress.org/Function_Reference/has_term) atunci.

Krzysiek Dróżdż Krzysiek Dróżdż
12 iul. 2013 23:38:28

Am editat întrebarea mea cu has_term dar tot nu pare să funcționeze, nu apare nimic deloc?

user1374796 user1374796
13 iul. 2013 00:09:07

Ce este taxonomy-one în codul tău? Este un termen sau numele taxonomiei tale personalizate?

Krzysiek Dróżdż Krzysiek Dróżdż
13 iul. 2013 00:12:54

este numele termenului

user1374796 user1374796
13 iul. 2013 00:26:47

Te referi la slug? Și care este numele acelei taxonomii?

Krzysiek Dróżdż Krzysiek Dróżdż
13 iul. 2013 00:32:24

da, slug-ul, numele fiind 'Taxonomy One'

user1374796 user1374796
13 iul. 2013 00:40:16

Și care este numele acestei taxonomii personalizate? (nu termenul)

Krzysiek Dróżdż Krzysiek Dróżdż
13 iul. 2013 00:41:21

numele acelei taxonomii fiind 'Taxonomy Name' cu slug-ul 'taxonomy-name'

user1374796 user1374796
13 iul. 2013 00:49:05

OK, deci încearcă has_term('taxonomy-one', 'taxonomy-name')

Krzysiek Dróżdż Krzysiek Dróżdż
13 iul. 2013 00:58:56

voila!! asta a funcționat, mulțumesc mult pentru asta, apreciez foarte mult.

user1374796 user1374796
13 iul. 2013 01:23:11
Arată celelalte 8 comentarii