Cum obții termenul curent din taxonomia personalizată în WordPress?

15 feb. 2011, 16:45:55
Vizualizări: 38.7K
Voturi: 6

Am nevoie să afișez termenul curent din taxonomia mea personalizată într-o postare individuală.

exemplu:

  • Taxonomia mea personalizată este products și termenii acesteia sunt product-1, product-2 și products-3.
  • Postarea mea este atribuită la product-2
  • Și vreau să afișez produsul curent = products-2 în postarea mea

De fapt, am nevoie de o funcție similară cu the_category(); din WordPress, dar pentru taxonomia mea, ceva de genul the_customtaxonomy();

ACTUALIZARE:

de fapt știu că trebuie să obțin ID-ul acestuia pentru că am nevoie să afișez o iconiță pentru acesta în pagina single, de exemplu o funcție ca the_category_ID();

0
Toate răspunsurile la întrebare 7
3

Puteți utiliza get_the_term_list():

Descriere

Returnează un șir HTML al termenilor de taxonomie asociați cu un articol și o taxonomie dată. Termenii sunt legați către paginile lor respective de listare a termenilor.

Utilizare

<?php get_the_term_list( $id, $taxonomy, $before, $sep, $after ) ?>
15 feb. 2011 17:47:44
Comentarii

singura problemă cu get_the_term_list este că înfășoară termenii în html. folosește wp_get_object_terms() pentru a obține înapoi un array cu termeni

anu anu
15 feb. 2011 18:38:52

În acest caz, ai putea folosi get_the_terms în schimb.

t31os t31os
15 feb. 2011 18:49:52

@anu, Ei bine, el a spus că dorește o funcție precum the_category, care de asemenea înfășoară termenii în HTML.

User User
15 feb. 2011 20:08:21
0

mulțumesc pentru răspunsul prietenului meu, am găsit cum să afișez slug-ul taxonomiei mele

<?php
 $terms = get_terms('my-taxonomy-name');
 foreach ( $terms as $term ) {
 echo $term->slug.' ';
 }
?>

dar returnează toți termenii din taxonomia mea și eu am nevoie să returnez doar termenul curent din taxonomia mea..

ACTUALIZARE:

în final am găsit această soluție și am adăugat o verificare pentru termeni goali și funcționează

<?php   // Obține termenii pentru postare
 $terms = get_the_terms( $post->ID , 'oil' );
 // Parcurge fiecare element din array
 if ( $terms != null ){
 foreach( $terms as $term ) {
 // Afișează metoda slug din obiectul $term
 print $term->slug ;
 // Elimină celelalte date stocate în obiect, deoarece nu sunt necesare
 unset($term);
} } ?>
16 feb. 2011 09:41:50
1

L-am găsit:

<?php 
//listă termenii dintr-o taxonomie dată folosind wp_list_categories (util și ca widget dacă folosești un plugin PHP Code)

$taxonomy     = 'genre';
$orderby      = 'name'; 
$show_count   = 0;      // 1 pentru da, 0 pentru nu
$pad_counts   = 0;      // 1 pentru da, 0 pentru nu
$hierarchical = 1;      // 1 pentru da, 0 pentru nu
$title        = '';

$args = array(
  'taxonomy'     => $taxonomy,
  'orderby'      => $orderby,
  'show_count'   => $show_count,
  'pad_counts'   => $pad_counts,
  'hierarchical' => $hierarchical,
  'title_li'     => $title
);
?>

<ul>
<?php wp_list_categories( $args ); ?>
</ul>

Aceasta preia toți termenii din taxonomia mea personalizată și am nevoie să obțin termenul curent.

15 feb. 2011 17:15:26
Comentarii

Pentru imaginile tale, ar trebui să folosești pseudo-selectori CSS pentru a injecta pictogramele.

Brian Fegter Brian Fegter
21 sept. 2011 16:30:22
0

Trebuie să folosești wp_get_object_terms()

wp_get_object_terms( $object_ids, $taxonomies, $args )

  • $object_ids: șir de caractere sau array cu ID-urile obiectelor pentru care dorești să obții termenii
  • $taxonomies: șir de caractere sau array cu taxonomiile
15 feb. 2011 18:35:06
0
echo get_the_term_list( get_the_ID(), 'tax_name', 'Produs:' );
18 mar. 2011 20:45:45
0

Pe baza codului scris de user3208, am adăugat un pic de cod care adaugă URL-ul la Termen. Sper că ajută pe cineva.

<?php   // Obține termenii pentru postare
$terms = get_the_terms( $post->ID , 'oil' );
// Parcurge fiecare element deoarece este un array
if ( $terms != null ){
foreach( $terms as $term ) {
$term_link = get_term_link( $term, 'oil' );
 // Afișează numele și URL-ul
echo '<a href="' . $term_link . '">' . $term->name . '</a>';
// Elimină celelalte date stocate în obiect, deoarece nu sunt necesare
unset($term); } } ?>
28 oct. 2016 14:47:32
0

Un mic update pe această temă, deoarece întrebarea are aproximativ 11 ani și nimeni nu a menționat acest lucru.


Poți folosi get_query_var().

Returnează valoarea unei variabile de interogare din clasa WP_Query. pentru a obține termenul curent care este interogat pe o pagină de taxonomie.

În loc să facem o altă interogare, pur și simplu preluăm termenul din cea curentă. Apoi îl putem afișa pe front-end.

<?= get_query_var( 'term' ); ?>
18 mar. 2021 01:29:20