PHPの条件分岐の書き方 〜 ターム名ラベル表示させたい
-
現在ローカル環境でカスタマイズを行っているため、リンクが記載できません。
ご了承ください。【概要】
テーマ「SWELL」にて、カスタム投稿タイプを複数追加しました。
記事一覧ページにて、“通常投稿”では表示されるサムネイルの右肩のカテゴリー名ラベルが、
“カスタム投稿”の一覧には表示されません。カスタム投稿の記事一覧で”カスタムタクソノミー”のタームラベル名が表示される様にしたいのが今回の目的です。
※SWELL公式フォーラムでは、こういったカスタマイズはサポート外なので質問できません。
※一部有料記事もありましたが、コチラでお力を貸し手頂ければとトピックを立てました。
※プログラム未経験ですが、ググった情報を元にPHPを編集する位の事は出来ます【質問】
調べたところ、2つのPHPファイルが「サムネイル上のカテゴリー名表示」に関係していることが分かりました。■thimb.php
<?php if ( ! defined( 'ABSPATH' ) ) exit; $the_id = $variable['post_id'] ?? get_the_ID(); $sizes = $variable['sizes'] ?? '(min-width: 960px) 960px, 100vw'; $size = $variable['size'] ?? 'full'; $lazy_type = $variable['lazy_type'] ?? SWELL_Theme::$lazy_type; $decoding = $variable['decoding'] ?? false; $cat_pos = $variable['cat_pos'] ?? 'none'; $cat_data = $variable['cat_data'] ?? []; // 後方互換用 ?> <div class="p-postList__thumb c-postThumb<?php echo ! has_post_thumbnail( $the_id ) ? ' noimg_' : ''; ?>"> <figure class="c-postThumb__figure"> <?php SWELL_Theme::get_thumbnail( [ 'post_id' => $the_id, 'size' => $size, 'sizes' => $sizes, 'lazy_type' => $lazy_type, 'decoding' => $decoding, 'class' => 'c-postThumb__img u-obf-cover', 'echo' => true, ] ); ?> </figure> <?php if ( 'on_thumb' === $cat_pos || ! empty( $cat_data ) ) : SWELL_Theme::pluggable_parts( 'post_list_category', [ 'post_id' => $the_id, 'class' => 'c-postThumb__cat', ] ); endif; ?> </div>
このコードの下の部分
<?php if ( 'on_thumb' === $cat_pos || ! empty( $cat_data ) ) : SWELL_Theme::pluggable_parts( 'post_list_category', [ 'post_id' => $the_id, 'class' => 'c-postThumb__cat', ] ); endif; ?>
コチラがカテゴリーラベルの表示をしているPHP
■list_parts.php
/** * 記事リストのカテゴリー */ if ( ! function_exists( 'swl_parts__post_list_category' ) ) : function swl_parts__post_list_category( $args ) { $the_id = $args['post_id'] ?? get_the_ID(); $class = $args['class'] ?? 'p-postList__cat u-thin'; $cat_data = get_the_category( $the_id ); if ( empty( $cat_data ) ) { return; }
そしてこちらが、リスト情報を広う関数?が設定されている部分(だと思います)
【試した事】
表示させたいタームがあるタクソノミー名を
「item」
としたとします。/** * 記事リストのカテゴリー */ if ( ! function_exists( 'swl_parts__post_list_category' ) ) : function swl_parts__post_list_category( $args ) { $the_id = $args['post_id'] ?? get_the_ID(); $class = $args['class'] ?? 'p-postList__cat u-thin'; $cat_data = get_the_category( $the_id ); if ( empty( $cat_data ) ) { return; }
こちらのコードの
“$cat_data = get_the_category( $the_id );”
を
“$cat_data = get_the_terms( $the_id, ‘item’ );”とすると、カスタム投稿の記事一覧にターム名ラベルが表示されました。
ですが、一般投稿のカテゴリー名ラベルは消えました。ここから先で躓いています。
【予想】
恐らく上記コード内で elseifの条件分岐を使えばいいのか?
と考えたのですが、その方法が良く分かりません。いくつかのコードを試しましたが無理でした。
//////////
なにかヒントやコードを思い付かれる方がいらしたら、ご教授頂けると嬉しいです。
よろしくお願いいたします。
- トピック「PHPの条件分岐の書き方 〜 ターム名ラベル表示させたい」には新たに返信することはできません。