Cum obții numele unui termen taxonomic folosind slug-ul?

5 mai 2011, 07:47:46
Vizualizări: 147K
Voturi: 42

Dacă cunosc slug-ul unui termen taxonomic, cum pot obține numele acelui termen?

1
Comentarii

vrei să creezi un link, titlu, ???

xLRDxREVENGEx xLRDxREVENGEx
5 mai 2011 08:10:50
Toate răspunsurile la întrebare 3
4
67

Funcția pe care o căutați este get_term_by. Ați folosi-o astfel:

<?php $term = get_term_by('slug', 'my-term-slug', 'category'); $name = $term->name; ?>

Acest cod va avea ca rezultat $term fiind un obiect care conține următoarele proprietăți:

term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count

Codex-ul explică foarte bine această funcție: https://developer.wordpress.org/reference/functions/get_term_by/

5 mai 2011 08:11:15
Comentarii

m-ai bătut la asta. Exact asta aș face și eu.

xLRDxREVENGEx xLRDxREVENGEx
5 mai 2011 08:16:04

Ce faci dacă nu ai slug-ul taxonomiei?

EkoJR EkoJR
7 mai 2017 04:42:44

Poți folosi get_term( $term_id ); dacă ai doar ID-ul.

Gavin Gavin
11 iul. 2020 12:32:24

Fii conștient că acesta nu este modul corect de a obține numele taxonomiei, ci modul de a obține numele termenului.

jave.web jave.web
2 mai 2021 21:00:30
0

Acest lucru oferă un răspuns atunci când taxonomia nu este disponibilă/necunoscută.

În cazul meu, când foloseam get_term_by, au existat câteva situații în care aveam doar Slug-ul Termenului (fără ID-ul Termenului sau Taxonomia). Ceea ce m-a adus aici. Cu toate acestea, răspunsul oferit nu mi-a rezolvat complet problema.

Soluție pentru $taxonomy gol

// Vrem să găsim ID-ul pentru acest slug.
$term_slug = 'foo-bar';
$taxonomies = get_taxonomies();
foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
    // Dacă obiectul termen este returnat, ieși din buclă. (Returnează false dacă nu există obiect)
    if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
        break;
    }
}
$term_id = $term_object->name;

echo 'ID-ul Termenului este: ' . $term_id . '<br>';
var_dump( $term_object );

Rezultat

ID-ul Termenului este: 32
object(WP_Term)
  public 'term_id' => int 32
  public 'name' => string 'Exemplu Termen'
  public 'slug' => string 'exemplu-termen'
  public 'term_group' => int 0
  public 'term_taxonomy_id' => int 123
  public 'taxonomy' => string 'category'
  public 'description' => string ''
  public 'parent' => int 0
  public 'count' => int 23
  public 'filter' => string 'raw'

După cum urmează, conceptul obține un array de $taxonomies, parcurge array-ul și DACA get_term_by() returnează o potrivire, atunci iese imediat din bucla foreach.

Notă: Am încercat să caut o metodă pentru a obține taxonomia asociată (ID sau Slug) din Slug-ul Termenului, dar din păcate nu am găsit nimic disponibil în WordPress.

7 mai 2017 06:53:29
1

mulțumesc, asta a funcționat pentru mine.

Am creat o funcție și o folosesc din nou și din nou după cum este necesar.

function helper_get_taxonomy__by_slug($term_slug){
    $term_object = "";
    $taxonomii = get_taxonomies();
    foreach ($taxonomii as $tax_type_key => $taxonomy) {
        // Dacă obiectul termen este returnat, ieși din buclă. (Returnează false dacă nu există obiect)
        if ($term_object = get_term_by('slug', $term_slug, $taxonomy)) {
            break;
        }else{
            $term_object = "Atenție! Taxonomia Helper nu a fost găsită.";
        }
    }
    return $term_object;
}
3 ian. 2019 17:09:55
Comentarii

Ar trebui să returnezi aceleași tipuri ca get_term_by: (WP_Term|array|false) Instanță WP_Term (sau array) în caz de succes. Va returna false dacă $taxonomy nu există sau $term nu a fost găsit.

xnagyg xnagyg
25 mai 2020 20:58:26