2016/07/01
カスタム投稿 Wordpress
備忘録です。
個人で運営中の「食!相模原」で地域カテゴリがあり、
町名のみだと例えば「相模原」の場合、駅名でも「相模原」があり
区別がしにくいため、
「相模原市中央区 相模原」のように表示できないかと思いカスタムをしました。
参考サイト
Display only parent category of a custom taxonomy
こちらを参考に
<?php if(get_the_terms($post->ID,'タクソノミー')){ $makemodel = wp_get_object_terms($post->ID, 'タクソノミー', array('orderby' => 'slug')); } ?> <?php if(!empty($makemodel) && get_term_link($makemodel[0])){ ?> <a href="<?php echo get_term_link($makemodel[0]); ?>"><?php echo $makemodel[0]->name; ?></a> <?php } ?> <?php single_cat_title();?>
としたところ「相模原市中央区 相模原」と表示されるようになりました。
しかし、親タームの場合「相模原市中央区 相模原市中央区」と表示されてしまうため、
下記サイトを参考にして条件分岐を入れました。
【コピぺOK】taxonomy.phpで子ターム名と一緒に親ターム名を表示する方法!
<?php if(is_tax('タクソノミー,array('親ターム1','親ターム2'))): ?> <?php single_cat_title();?> <?php else: ?> <?php if(get_the_terms($post->ID,'タクソノミー')){ $makemodel = wp_get_object_terms($post->ID, 'shop_place', array('orderby' => 'slug')); } ?> <?php if(!empty($makemodel) && get_term_link($makemodel[0])){ ?> <a href="<?php echo get_term_link($makemodel[0]); ?>"><?php echo $makemodel[0]->name; ?></a> <?php } ?> <?php single_cat_title();?> <?php endif; ?>
これで無事表示できました。
ちなみに上記の「【コピぺOK】~」のソースコードをそのままコピペしたところ、
子ターム一覧を表示するソースコードとの相性が悪くエラーが出てしまったため、
上記1サイトと上記2サイトの合わせ技にしました。
ひとつ問題があり、子ターム一覧の表示と並行して使う場合、
「相模原(0)」のようにデータが無い場合には子タームのみの表示となってしまいます。
データが無いタームを削除するか、
子タームを表示するソースコードに条件をつけるかして対応する必要がありそうです。
ゼヒトモ内でのプロフィール: ROCKSTREAM, ゼヒトモのホームページ作成・制作サービス, 仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス
2024/08/20
神社
御朱印
2024/07/06
神社
御朱印
2024/07/06
神社
御朱印
2024/02/09
神社
2024/02/09
神社