www.bring-flower.com
Open in
urlscan Pro
162.43.117.62
Public Scan
URL:
https://www.bring-flower.com/blog/get-terms/
Submission: On December 12 via api from US — Scanned from JP
Submission: On December 12 via api from US — Scanned from JP
Form analysis
1 forms found in the DOMGET https://www.bring-flower.com/
<form role="search" method="get" id="searchform" class="searchform" action="https://www.bring-flower.com/">
<div class="search-box-inner">
<h2 class="blog-search"><label for="s">ノウハウ検索</label></h2>
<div class="search-box">
<input type="text" placeholder="キーワード入力" value="" name="s" id="s">
<button type="submit">検索</button>
</div>
</div>
</form>
Text Content
* services * SEO対策・コンサルティング * ホームページ制作 * ホームページ運用・更新サポート * 素材としての写真撮影・動画撮影 * プロモーション動画制作 * UX向上施策コンサルティング * UXデザイン専門家の育成支援 * works * 制作 * SEO対策 * products * SEOに強いAIライティングツール * SEOに強いWordPressオリジナルテーマ * about * know-how * * contact * 問い合わせフォーム * SEO無料診断 * 電話 MENU * services * SEO対策・コンサルティング * ホームページ制作 * ホームページ運用・更新サポート * プロモーション動画制作 * 素材としての写真撮影・動画撮影 * UX向上施策コンサルティング * UXデザイン専門家の育成支援 * works * about * products * know-how * 問い合わせフォーム * 無料SEO診断 * 電話 * * ホーム * ノウハウ * ホームページ制作 * WordPress * WordPressで投稿ページに紐づくなど指定した条件のタームを取得する方法 * Facebook * X * hatena * Pocket * LINE * URLコピーコピー しました WordPress WORDPRESSで投稿ページに紐づくなど指定した条件のタームを取得する方法 最終更新日:2023/07/26 * Facebook * X * hatena * Pocket * LINE * URLコピーコピー しました WordPressで、例えば「特定のタクソノミーに属する」「投稿ページに紐づく」などの指定条件でカスタムタクソノミーのタームを取得する様々な方法をご紹介します。 非常に似た名称の関数が多いので、頭がこんがらがります。なので、自分のためにも整理しました。全て覚える必要もなく、他の関数を用いても実現できるものも多いので、自分にあったものを見つけてそれを使う、という風に決めた方がよいかもしれません。 なお、この記事の中での記述の凡例です。 $taxonomy:例えばblog_catなどのタクソノミー名。 $taxonomies:上述のタクソノミー名を配列で複数指定できる場合 目次 1. タクソノミーとタームとは? 2. 投稿ページに応じたタームの取得 1. get_the_terms 2. wp_get_post_terms 3. wp_get_object_terms 4. the_terms 3. アーカイブページ(archive.php/taxonomy.php)で取得 1. get_taxonomy 2. single_term_title 4. その他の指定 1. get_terms 2. get_categories 3. wp_list_categories 4. get_the_term_list 5. wp_get_object_terms 6. get_term_by 5. 子タームを取得する場合について 1. get_terms 2. get_term_children 6. 紛らわしい関数 1. get_term 7. まとめ タクソノミーとタームとは? タクソノミーは、通常の投稿でいうカテゴリーやタグのことで、そのような器自体を指します。タームは、タクソノミーの中の項目のことです。 詳しくは次の記事で解説しています。 カテゴリー、タグ、タクソノミー、タームの違いについてどこよりも分かりやすい解説を試みる 投稿ページに応じたタームの取得 GET_THE_TERMS 関数リファレンス/get the terms 1. <?php 2. $terms = get_the_terms( $post->ID, 'タクソノミー名' ); 3. $terms = get_the_terms( $post->ID, array( 'タクソノミー名1', 'タクソノミー名2' ) ); 4. ?> 投稿ページ(single.php)において、その投稿に関連するタームを取得する関数として、get_the_termsがあります。 タクソノミー名は、例えばnews_catなどです。スラッグ名なので、タクソノミースラッグとも呼ばれます。 出力は次のように行います。[0]というのは配列の1つ目を取り出す記述です。当該ページ関連のものはWordPressの仕様として、配列の1つ目に格納されているということです。 1. <?php 2. //単体を出力 3. echo $terms[0] -> slug; 4. //複数を出力 5. foreach( $terms as $term ) { 6. echo $term->slug; 7. } 8. ?> 上記のタームを出力する$term[0]ですが、親タームがある場合はそちらを出力してしまいます。親タームを持つ可能性がある場合は次のようにすることで、子タームのみ出力することが可能です。 1. <?php 2. $children = get_term_children($term[0]term_id, $taxonomy); 3. if( $children ): 4. echo $term[1]->slug; 5. else: 6. echo $term[0]->slug; 7. endif; 8. ?> WP_GET_POST_TERMS 関数リファレンス/wp get post terms 1. <?php 2. $terms = wp_get_post_terms( $post->ID, $taxonomy, $args ); 3. ?> $argsは指定しなくても大丈夫ですが、それだとget_the_termsと変わりません。$argsを指定することで表示順を変えることができます。$args省略できるんだから、get_the_termsいる?という疑問があります。 WP_GET_OBJECT_TERMS 関数リファレンス/wp get object terms 1. <?php 2. $terms = wp_get_object_terms( 3. array( 1, 2 ), // ポストID 4. array( 'news_cat', 'news_tag' ), //タクソノミー名(スラッグ)を指定 5. $args 6. ); 7. ?> オブジェクト(投稿)のIDとタクソノミー名を指定し、そのタームを取得する関数です。 THE_TERMS 関数リファレンス/the terms 1. <?php 2. the_terms( $post->ID, 'タクソノミー名', 'カテゴリー: ', ' / ' ); 3. // 出力結果 カテゴリー: SEO / UX / WordPress 4. ?> 出力の文字列まで指定できる関数です。あまり使わなそうですね アーカイブページ(ARCHIVE.PHP/TAXONOMY.PHP)で取得 GET_TAXONOMY 関数リファレンス/get taxonomy 1. <?php 2. get_taxonomy( $taxonomy ); 3. ?> タクソノミーのメタデータが入ったオブジェクトが取得されます。 例えば、ターム名を表示したい場合は次のようにします。 1. <?php 2. $obj = get_taxonomy( $taxonomy ); 3. echo esc_html( $obj->singular_label); 4. ?> SINGLE_TERM_TITLE 関数リファレンス/single_term_title 1. <?php 2. single_term_title( $prefix, $display ); 3. ?> $prefixには、タイトルの前に出力するテキストを指定します。何も出力しない場合は''とします。 $displayは、タイトルを表示する場合はtrue、PHP で使えるようにタイトルを返す場合はfalseとします。 その他の指定 GET_TERMS 関数リファレンス/get terms 1. <?php 2. $taxonomies = array( 3. 'blog_cat', 4. 'blog_tag', 5. ); 6. $terms = get_terms( $taxonomies, $args ); 7. ?> タクソノミーを配列で複数指定してターム一覧を取得できます。 1つだけ指定の場合は配列ではなくて大丈夫です。 $argsは省略可能で、省略しない場合は取得順や、項目が一つもないタームを取得するかどうか、などを指定できます。 例えば、項目が一つもない(中身が空の)タームを取得する場合は次のように書きます。 1. <?php 2. get_terms( $taxonomy, 'hide_empty=0' ); 3. ?> または、次のように書いても中身が空のタームの取得がされます。 1. <?php 2. $args = array( 3. 'orderby' => 'id', 4. 'order' => 'ASC', 5. 'hide_empty' => false 6. ); 7. get_terms( $taxonomy, $args ); 8. ?> よく似た関数名に上記でご紹介済みのget_termとget_the_termsがあります。 GET_CATEGORIES 関数リファレンス/get categories 1. <?php 2. $args = array( 3. 'orderby' => 'name', 4. 'order' => 'ASC', 5. 'taxonomy' => 'blog_cat' 6. ); 7. $terms = get_categories($args); 8. foreach($terms as $term): ?> 9. echo $term->name; 10. <?php endforeach; ?> 11. ?> こちらは結論、使う場面はないと思います。何故なら、配列の$argsで指定できる条件がget_termsより少ないためです。タクソノミーの指定も配列の中で行わなければいけません。 WP_LIST_CATEGORIES テンプレートタグ/wp list categories 1. <?php 2. wp_list_categories( $args ); 3. ?> こちらは、ul, li, aの各要素付きで、各タームへのリンク付きリストをHTMLで出力してくれる関数です。クラス名も勝手に付与されます。カスタマイズ可能ですが、結局get_terms使った方が勝手が良いので、私は使ったことがありません。 例えば特定のタクソノミーのターム一覧を、項目の有無に関わらず取得する場合は次の記述になります。 1. <?php 2. wp_list_categories ( array( 3. 'taxonomy' => 'blog_cat', 4. 'hide_empty' => 'false' 5. )); 6. ?> GET_THE_TERM_LIST 関数リファレンス/get the term list 1. <?php 2. get_the_term_list( $id, $taxonomy, $before, $sep, $after ); 3. ?> 指定された投稿IDとタクソノミーに対するタームのリストをul, li, aの各要素付きで、各タームへのリンク付きリストをHTMLで出力してくれる関数です。 WP_GET_OBJECT_TERMS 関数リファレンス/wp get object terms 1. <?php 2. $terms = wp_get_object_terms( 3. array( 1, 2 ), // ポストID 4. array( 'news_cat', 'news_tag' ), 5. $args 6. ); 7. ?> オブジェクト(投稿)のIDとタクソノミー名を指定し、そのタームを取得する関数です。 GET_TERM_BY 関数リファレンス/get term by 1. <?php 2. $term = get_term_by( $field , $value , $taxonomy ); 3. ?> $fieldには、 ‘id’, ‘slug’, ‘name’, ‘term_taxonomy_id’のいずれかを指定できます。 $valueは、$fieldで指定した値です。例えばslugを指定したら、slugの名称が入ります。 以下は、news_catというタクソノミーの中でirというスラッグのついたタームを取得する例です。 1. <?php 2. $term = get_term_by( 'slug' , 'ir' , 'news_cat' ); 3. ?> 子タームを取得する場合について 子タームの取得には、上記で紹介済みのget_termsが利用できます。 GET_TERMS 出力例: 1. <?php 2. $term_children = get_terms( $taxonomy, array( 3. 'child_of' => $term_id, 4. 'orderby' => 'none' 5. )); 6. foreach( $term_children as $term_child ): ?> 7. echo esc_html($term_child->name); 8. endforeach; GET_TERM_CHILDREN 関数リファレンス/get term children 子タームの取得には、このget_term_childrenという関数が用意されてますが、これだと取得の順番の指定ができません。 また、こちらの関数を用いた場合は、get_term_byを用いなければタームの取得までできません。 現在表示中のページにおける子タームを取得する場合は、get_the_termsのところに記載していますので、そちらをご参照ください。 1. <?php 2. $term_childeren = get_terms_children( $term->term_id, $taxonomy ); 3. foreach( $term_children as $child ): 4. $term_child = get_term_by( 'id', $child->term_id, $taxonomy ); 5. echo esc_html($term_child->name); 6. endforeach; 子タームのみ出力する 上記のget_terms_childrenを用いて次のようにして子タームのみ出力するということができます。 1. <?php 2. $check = get_term_children( $term->term_id, $taxonomy ); 3. if ( empty($check) ): 4. echo esc_html($term->name); 5. endif; 紛らわしい関数 次のget_termはタームを取得できそうな関数名ですが、タームを指定してそのタームの情報を取得できる関数ということで、紛らわしいので整理のため、ここに掲載しておきます。 GET_TERM 関数リファレンス/get term 1. <?php 2. $term = get_term( 'ターム名', 'タクソノミー名' ); 3. ?> ターム名とタクソノミー名を指定してそのタームの情報を取得します。 まとめ WordPressでタームの一覧を取得する方法をご紹介しました。全て覚える必要はないので、自分にとって使い勝手の良いものを見つけるのが良いと思います。 * Facebook * X * hatena * Pocket * LINE * URLコピーコピー しました BringFlower 稲田 高洋(Takahiro Inada) 2003年から大手総合電機メーカーでUXデザインプロセスの研究、実践。UXデザイン専門家の育成プログラム開発。SEOにおいても重要なW3Cが定めるWeb標準仕様策定にウェブアクセシビリティの専門家として関わる。2010~2018年に人間中心設計専門家を保有、数年間ウェブアクセシビリティ基盤委員も務める。その後、不動産会社向けにSaaSを提供する企業の事業開発部で複数サービスを企画、ローンチ。CMSを提供し1000以上のサイトを分析。顧客サポート、サイト運営にも関わる。 2022年3月にBringFlowerを開業し、SEOコンサル、デザイン、ウェブ制作を一手に受ける。グッドデザイン賞4件、ドイツユニバーサルデザイン賞2件、米国IDEA賞1件の受賞歴あり。 プロフィール詳細 ノウハウ一覧 ノウハウ検索 検索 ノウハウ一覧 カテゴリー * SEO105 * AI(人工知能)9 * ホームページ制作76 * アクセシビリティ6 * WordPress35 * HTML&CSS13 * JavaScript22 * PHP4 * サイト制作プロセス・運用7 * UX6 同じカテゴリーの他の記事 WORDPRESSの投稿が属するカテゴリーとタグをそれぞれ分けて取得する方法 WordPressで記事一覧を表示する際や、記事の詳細ページに、その記事が属するカテゴリーやタグを表…<続きをみる> WORDPRESSの投稿一覧にカテゴリーとタグ(ターム)を取得・表示する方法 WordPressでブログなどの投稿一覧をサイトに表示する際に、その投稿につけたカテゴリ―やタグを表…<続きをみる> 【プラグインなし】カスタムフィールドの値で絞り込み:ORとANDの組み合わせのある複雑な条件 プラグインなしでWordPressのカスタムフィールドの値で絞り込む方法です。複数のカスタムフィール…<続きをみる> WORDPRESSで2ページ目が表示されない場合の対処 WordPressのページネーションで2ページ目以降が表示されず困ってますか?調べると色々出てきます…<続きをみる> カテゴリー(ターム)に画像などの入力項目をプラグインなしで追加する方法 WordPressのカテゴリー(ターム)にデフォルトで用意されている「名前」「スラッグ」「親カテゴリ…<続きをみる> WORDPRESSで画像/ファイルアップロード(メディアアップローダー)の項目をプラグインなしで作成する方法 WordPressで、画像アップロードの項目をプラグインなしで追加する方法と、画像だけではなく、PD…<続きをみる> View More * メール * 電話 資産となるホームページづくりを BringFlower サービス プロダクト プロフィールなど 対応ジャンル 対応エリア Information ニュース 掲載メディア ノウハウ サイトポリシー プライバシーポリシー Contact 問い合わせフォーム SEO無料診断 070-3784-5716 Copyright© BringFlower All rights reserved.