スラッグによって分類用語名を取得する方法は?


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を使用すると、Term Slugのみが存在する場合がありました(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.