サポート » 使い方全般 » get_the_termsで取得した値の一部を抜き出して配列にまとめたい

  • 解決済 xxxpudding

    (@xxxpudding)


    get_the_termsで記事が属するterm情報を全て取得する事はできたのですが、
    この中から[slug]だけを抜き取って配列に格納する方法はありますでしょうか。

    下は例ですが、get_the_termsを使って$term_infoにterm情報を全て取り込んだ状態です。

    ○var_dump($term_info)の結果○

    array(2) {
    [163]=>
      object(stdClass)#3434 (11) {
        ["term_id"]=>
        string(3) "163"
        ["name"]=>
        string(25) "お料理レシピ"
        ["slug"]=>
        string(6) "resipi"
        ["term_group"]=>
        string(1) "0"
        ["term_order"]=>
        string(1) "0"
        ["term_taxonomy_id"]=>
        string(3) "171"
        ["taxonomy"]=>
        string(9) "cooking"
        ["description"]=>
        string(0) ""
        ["parent"]=>
        string(1) "0"
        ["count"]=>
        string(3) "252"
        ["object_id"]=>
        string(5) "10000"
      }
    [170]=>
      object(stdClass)#3434 (11) {
        ["term_id"]=>
        string(3) "170"
        ["name"]=>
        string(25) "趣味一覧"
        ["slug"]=>
        string(6) "hobby"
        ["term_group"]=>
        string(1) "0"
        ["term_order"]=>
        string(1) "0"
        ["term_taxonomy_id"]=>
        string(3) "181"
        ["taxonomy"]=>
        string(9) "private"
        ["description"]=>
        string(0) ""
        ["parent"]=>
        string(1) "0"
        ["count"]=>
        string(3) "252"
        ["object_id"]=>
        string(5) "11000"
      }

    この情報の中から[slug]のみ、つまり例では”resipi”と”hobby”を抜き取り、最終的に
    $term_list = array("resipi","hobby");
    と同じ状態になるように、配列$term_listに取り込みたいです。

    宜しくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • wp_get_object_terms を使えば、第3引数で、取得するフィールド(など)を指定できます。

    モデレーター jim912

    (@jim912)

    wp_get_object_terms だとダイレクトに取れますが、この関数だとオブジェクトキャッシュを利用しないため、関数実行の都度にデータベースへのクエリーが発生してしまいます。

    ちょっと面倒でも、取得できた配列をループして、スラッグのみ$term_listに格納した方がパフォーマンスがよくなります。

    $term_list = array();
    if ( $term_info ) {
        foreach ( $term_info as $term ) {
            $term_list[] = $term->slug;
        }
    }
    トピック投稿者 xxxpudding

    (@xxxpudding)

    LVP8様、jim912様
    どちらも試してみたところ、ぴったり希望通りの結果を得る事ができました。
    今回はアドバイス頂いた通り、foreachで配列に読み込む方法で実装する事にしましたが、
    ケースバイケースでwp_get_object_termsも利用してみようと思います。
    お二方とも本当に有難う御座いました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「get_the_termsで取得した値の一部を抜き出して配列にまとめたい」には新たに返信することはできません。