じょーじ

フォーラムへの返信

2件の投稿を表示中 - 1 - 2件目 (全2件中)
  • 投稿者
    投稿

  • じょーじ
    参加者

    いしかわ 様

    ご回答ありがとうございます。
    「画像右上分類」を特定のタクソノミーの子タームから表示するように出来ました。

    コードは下記になります。投稿にタクソノミーが設定されていない場合を考慮してif文を追加しています。

    function my_vk_post_custom_term($options, $post)
    {
    	if (get_post_type() === 'company') {
    		// 元の画像右上のカスタム分類名を非表示に.
    		$options['display_image_overlay_term'] = false;
    		// 画像右上に表示するカスタム分類
    		$options['body_append'] = my_get_vk_post_custom_single_term($post);
    	}
    	return $options;
    }
    add_filter('vk_post_options', 'my_vk_post_custom_term', 10, 2);
    
    /**
     * 投稿一覧画面で表示する投稿情報画像右上のカスタム分類.
     *
     * @param object $post : 1件分の投稿情報
     */
    function my_get_vk_post_custom_single_term($post)
    {
    	// 表示したい投稿タイプを条件分岐で指定します.
    	// ※その他必要に応じて $options や $post の中身を元に条件分岐を追加してください.
    	if (get_post_type() === 'company') {
    		$args = [
    			'class' => 'vk_post_imgOuter_singleTermLabel', // クラス名を追加する場合は指定.
    		];
    
    		$outer_class = ' class="' . esc_attr($args['class']) . '"';
    
    		$single_term_with_color = '';
    		// 表示対象に指定するカスタム分類名.
    		$taxonomy = 'area';
    		// 投稿に紐付いているカスタム分類を取得.
    		$terms = get_the_terms($post->ID, $taxonomy);
    
    		if ($terms) {
    			foreach ($terms as $key => $term) {
    				// 親タームの場合.
    				if (!$term->parent) {
    					// 親タームを除外.
    					unset($terms[$key]);
    				}
    			}
    			// 配列キーのふりなおし.
    			$terms = array_values($terms);
    		}
    
    		if (!empty($terms[0])) {
    			$term_name = esc_html($terms[0]->name);
    
    			if (method_exists('Vk_term_color', 'get_term_color')) {
    				$term_color = Vk_term_color::get_term_color($terms[0]->term_id);
    				$term_color = ($term_color) ? ' style="color:#fff;background-color:' . $term_color . '"' : '';
    
    				$single_term_with_color .= '<span' . $outer_class . $term_color . '>';
    				$single_term_with_color .= $term_name;
    				$single_term_with_color .= '</span>';
    			}
    		}
    	}
    
    	return $single_term_with_color;
    }

    じょーじ
    参加者

    ご回答ありがとうございます。

    CSSを使用するのは盲点でした。
    CSSを使用して「分類(全項目)」の表示順をコントロール出来ました。

    子タームだけ表示するのってむずかしそうなので、エリア と 都道府県 を別々のタクソノミーに分けるのってダメでしょうか?

    タクソノミー構造を変えない方法を探しております。

2件の投稿を表示中 - 1 - 2件目 (全2件中)