ACFでカテゴリに画像のカスタムフィールドを追加する
2件の返信を表示中 - 1 - 2件目 (全2件中)
-
画像のカスタムフィールドをcatthumbとしている前提で、次のようにして画像を表示できました。
出力部分は調整ください。<?php $cats = get_categories(); foreach ( $cats as $cat ) { $catthumb = get_field( 'catthumb', $cat ); if ( ! empty( $catthumb ) ){ $link = get_category_link( $cat->term_id ); echo sprintf( '<p><a href="%s"><img src="%s" />%s</a></p>',$link , $catthumb['url'], $cat->name ); } } ?>
以下、参考ページです。
https://wpdocs.osdn.jp/関数リファレンス/get_categories
https://www.advancedcustomfields.com/resources/get-values-from-a-taxonomy-term/
こんな感じで実装させています。
参考になりますでしょうか?<?php //初期設定 $tax = 'かすたむたくそのみー'; $post_type_slug = '投稿タイプ'; // タクソノミーにはデフォルト値がないので下記を例として使う。 $taxonomies = array( $tax, ); $args = array( /* 'orderby' => 'id',//id,count,name - デフォルト,slug,term_group - 実装が充分ではない(利用を避けること),none 'order' => 'ASC',//ASC - デフォルト(昇順),DESC(降順) */ //'orderby' => 'order-num',//id,count,name - デフォルト,slug,term_group - 実装が充分ではない(利用を避けること),none 'meta_key' => 'order-num', 'meta_value' => '1', 'orderby' => 'term_order',//プラグイン「taxonomy-terms-order」を使用時 'order' => 'ASC',//ASC - デフォルト(昇順),DESC(降順) 'hide_empty' => true, //空タームを表示させない true or false //'exclude' => array(559), //除外タームID 'exclude_tree' => array(), //除外親ID 'include' => array(),//指定IDのみ表示(空の場合は全部表示) 'number' => '', //表示するタームの数 'fields' => 'all', /* all - タームオブジェクトの配列を返す - デフォルト ids - 整数(ターム ID)の配列を返す names - 文字列(ターム名)の配列を返す count - (バージョン 3.2 以上)見つかったタームの個数を返す id=>parent - 連想配列を返す。キーはターム ID、値は親タームの ID またはゼロ(親がない場合) id=>slug - 連想配列を返す。キーはターム ID、値はスラッグ id=>name - 連想配列を返す。キーはターム ID、値はターム名 */ 'slug' => '', //表示させるslug 'parent' => '', /*直近の子タームを返す(指定された値が親タームの ID であるタームのみ)。 ゼロを指定するとトップレベルのタームのみを返す。デフォルトは空文字列。 */ 'hierarchical' => true, //子タームを持たせるかどうか /* 1 (true) - デフォルト 0 (false) */ 'child_of' => 0, //指定したタームの子孫をすべて取得します。デフォルトは 0 です。 'childless' => false, /*タクソノミーが階層有りの場合、子を持たないタームのみを返します。 階層無しの場合、すべてのタームを対象とします。 */ 'get' => '', //この値を 'all' にすると 'hide_empty' と 'child_of' が無効になります(すべてのタームを取得します)。 'name__like' => '',//ターム名にマッチさせたい文字列。 'description__like' => '',//タームの説明に 'description__like' の文字列を含む(大文字小文字を区別して)タームを返します 'pad_counts' => false,//true のとき、子孫タームすべてのカウント 'offset' => '', //見つかったタームの先頭から指定の個数を読み飛ばして返します。必ず 'number' と一緒に使ってください。 'search' => '', //ターム名にマッチさせたい文字列。ターム名とスラッグに対して検索対象 'cache_domain' => 'core' //'meta_value' => array('pickup' , 'now', 'campaign' ,'popular'),//カスタムフィールドの値 ); $terms = get_terms( $taxonomies, $args ); //$mycats = get_terms('sozaicat','hide_empty=0&parent=0');//取得したいタクソノミーを設定 $post_type = $post_type_slug; foreach($terms as $mycat): //foreach($mycats as $mycat): $sec_count++; //各項目の取得定義 //$terms = get_the_terms(); $term_parent = $mycat -> parent; $term_id = $mycat -> term_id; $term_slug = $mycat -> slug; $term_desc = $mycat -> description; $cat_link = esc_url(get_term_link($mycat -> slug, $mycat -> taxonomy)); $term_idsp = $tax.'_'.$term_id; //カスタムフィールドを取得するのに必要なtermのIDは「taxonomyname_ + termID」 $term_img_id = get_field('last-term-img-1',$term_idsp); $img_size = 'full'; $term_img = wp_get_attachment_image_src($term_img_id,$img_size ); $term_img_url = esc_url($term_img[0]); ?> <!-- 表示したい内容 --> <a><img src="<?php echo $term_img_url ?>" alt="" /></a> <?php endforeach; ?>
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「ACFでカテゴリに画像のカスタムフィールドを追加する」には新たに返信することはできません。