슬러그로 분류 용어 이름을 얻는 방법은 무엇입니까?


22

분류 용어 슬러그를 알고 있다면 해당 용어의 이름을 어떻게 알 수 있습니까?


링크, 제목, ???를 만들고 싶습니까?
xLRDxREVENGEx

답변:


38

찾고있는 기능은 get_term_by입니다. 당신은 그것을 다음과 같이 사용할 것입니다 :

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

결과적으로 $term다음을 포함하는 객체가됩니다.

term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count

코덱은이 기능을 설명하는 훌륭한 일을합니다 : http://codex.wordpress.org/Function_Reference/get_term_by


당신은 나를 이겼습니다. 이것이 바로 내가 할 일입니다.
xLRDxREVENGEx

1
분류 슬러그가없는 경우 어떻게해야합니까?
EkoJR

2

분류법을 사용할 수 없거나 알 수없는 경우 답변을 제공합니다 .

필자의 경우 get_term_by를 사용할 때 용어 슬러그 만있는 경우 (No Term ID 또는 Taxonomy)가있었습니다. 그것은 나를 여기로 이끌었다. 그러나 제공된 답변으로 문제가 해결되지 않았습니다.

빈 솔루션 $taxonomy

// We want to find the ID to this slug.
$term_slug = 'foo-bar';
$taxonomies = get_taxonomies();
foreach ( $taxonomies as $tax_type_key => $taxonomy ) {
    // If term object is returned, break out of loop. (Returns false if there's no object)
    if ( $term_object = get_term_by( 'slug', $term_slug , $taxonomy ) ) {
        break;
    }
}
$term_id = $term_object->name;

echo 'The Term ID is: ' . $term_id . '<br>';
var_dump( $term_object );

결과

The Term ID is: 32
object(WP_Term)
  public 'term_id' => int 32
  public 'name' => string 'Example Term'
  public 'slug' => string 'example-term'
  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'

다음과 같이 개념은의 배열을 가져오고 배열을 $taxonomies반복하며 IF get_term_by()는 일치 항목을 반환하면 즉시 foreach 루프에서 나옵니다.

참고 : Term Slug에서 관련 분류법 (ID 또는 Slug)을 얻는 방법을 찾으려고했지만 불행히도 WordPress에서 사용 가능한 항목을 찾을 수 없습니다.


0

고마워, 이것은 나를 위해 일했다.

함수를 작성하고 필요에 따라 반복해서 사용했습니다.

function helper_get_taxonomy__by_slug($term_slug){
    $term_object = "";
    $taxonomies = get_taxonomies();
    foreach ($taxonomies as $tax_type_key => $taxonomy) {
        // If term object is returned, break out of loop. (Returns false if there's no object);
        if ($term_object = get_term_by('slug', $term_slug, $taxonomy)) {
            break;
        }else{
            $term_object = "Warn! Helper taxonomy not found.";
        }
    }
    return $term_object;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.