ターム一覧の取得と投稿に設定されたタームを取得
所沢市でWebサイト制作や欧州輸入品販売を行っているRishunTradingです。ChatGPTが出てきたことで、かなり難易度の高いプログラミングも効率よく開発できるようになってきました。
今回は、タームを取得する際に使用するファンクション(get_terms or get_the_terms? / get_categories or get_the_categories?)がどっちだっけとなってしまう事があるので、逆引き形式で書き留めておこうと思います。
設定されている全ターム一覧(カテゴリー一覧)を取得したい時
投稿データとは関係なしに、カスタム宣言したtaxonomyに設定されたターム(カテゴリ)一覧を取得するような場合に使用する関数は、get_termsです。(標準の投稿カテゴリー(category))ならば、get_categoriesです。)
get_temsを使用したショートコードのサンプル
こちらのサンプルは、タクソノミー(tax_usecase_type)に設定されたターム一覧を取得し、表示するショートコードのサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | //----------------------------------------------------------- // ターム一覧を取得するサンプル // shortcode:show_usecase_type // current(in):現在のカテゴリのスラッグ //----------------------------------------------------------- add_shortcode('show_usecase_type', 'get_show_usecase_type'); function get_show_usecase_type($atts){ extract(shortcode_atts(array( 'current' => '', ), $atts)); //get parent only $arg = array( 'hide_empty' => 0, 'parent' => 0, ); $terms = get_terms('tax_usecase_type', $arg); //tax_usecase_type(taxonomy) if(!empty($terms)): $tmp = '<ul class="ul-usecase-type">'; $current_flg=0; foreach($terms as $term): $tagurl = get_term_link($term); $tmp .= '<li>'; if($term->slug === $current){ //check current term. //this src use fontawesome. $tmp .= '<a href="'.$tagurl.'" class="term_current"><span>'.esc_html($term->name).'<i class="fa-solid fa-chevron-right"></i></span></a>'; $current_flg = 1; }else{ $tmp .= '<a href="'.$tagurl.'"><span>'.esc_html($term->name).'<i class="fa-solid fa-chevron-right"></i></span></a>'; } $tmp .= '</li>'; endforeach; if($current_flg === 0){ $tmp .= '<li><a href="'.home_url('/usecase/').'" class="term_current"><span>全て表示する<i class="fa-solid fa-chevron-right"></i><span></a></li>'; }else{ $tmp .= '<li><a href="'.home_url('/usecase/').'"><span>全て表示する<i class="fa-solid fa-chevron-right"></i></span></a></li>'; } $tmp .= '</ul>'; else: //data nothing $tmp = '<div class="nodata"><p>データがありません。</p></div>'; endif; return $tmp; } |
投稿に設定されたターム(カテゴリー)を取得したい時
「投稿」で選択されたターム(カテゴリー)を取得したい場合には(投稿に紐づいたタームを取得したい場合には)、get_the_termsを使います。(標準の投稿カテゴリー(category))ならば、get_the_categoriesです。)
get_the_termsを使用したサンプル
こちらのサンプルでは、該当投稿データに紐づけられたターム(カテゴリー)を取得しています。タクソノミー名は、tax_usecase_areaとなります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | while ( have_posts() ) : the_post(); $area_terms = get_the_terms($post->ID, 'tax_usecase_area'); if(!empty($area_terms)){ $areahtml = '<ul class="ul-usecaselist-area">';//generate html code to display foreach($area_terms as $area_term){ if($area_term->parent !== 0){ $tagurl = get_term_link($area_term); $areahtml_area = '<li class="cat_'.$area_term->slug.'"><a href="'.$tagurl.'"><span>'.esc_html($area_term->name).'</span></a></li>'; } else{ if(!isset($areahtml_area)){ $tagurl = get_term_link($area_term); $areahtml_area = '<li class="cat_'.$area_term->slug.'"><a href="'.$tagurl.'"><span>'.esc_html($area_term->name).'</span></a></li>'; } } } $areahtml .= $areahtml_area; $areahtml .= '</ul>'; } : : endwhile |
毎回、どっちだっけとなってしまうので、まとめてみました。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル