WordPressでterm(ターム)category(カテゴリ)を取得する関数がややこしいのでまとめました。
目的別でどれを使うべきか?という観点です。細かい仕様はDevサイト見て下さい。
混乱しないポイントは、下記の3大ターム関数だけ使うことです。ほかも色々ありましけど、下記があればだいたい事たりるですね。
あと、カテゴリー系の関数は、いったん忘れます。コード上もterm関数で統一したほうがスッキリするんですよね。term関数で、引数をtaxonomy = ‘category’とするだけですからね。
投稿のtermを取得
ループの中で、現在の投稿のタームを取得します。
get_the_terms( int|object $post, string $taxonomy )
存在するすべてのtermを取得
普通にtermをクエリします。クエリ変数を第一引数に入れられます。これは、get_posts()の役割と似ています。
get_terms( array|string $args = array(), array $deprecated = ” )
termオブジェクトを取得
特定のterm_idから、termオブジェクトを取得するのに使います。もしくは、すでにTermオブジェクトは持っているけど、フィルターを通したい時にも使えます。
get_term( int|WP_Term|object $term, string $taxonomy = ”, string $output = OBJECT, string $filter = ‘raw’ )
termのアーカイブリンクを取得
これがいつもめんどくさい。
get_term_link( object|int|string $term, string $taxonomy = ” )
それ以外の関数
get_term_by()
get_term()のfieldsで代用できますのでほぼいりません。