WordPressでカテゴリにひもづくエントリーが0件のときの処理

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から3年以上経過しています。

カテゴリの情報をもとにして表示する画像を切り替えていたのですが、エントリー件数が0件のときに情報を取得できない構造になっていたので作り直しました。
get_query_varを利用すればエントリー件数が0件でも取得できるというのは前回の作業で知っていたのですが、まだまだいろいろ知らない・解らないことが多いですね。

カテゴリ名・カテゴリスラッグを取得後、取得したカテゴリ名からカテゴリIDを取得してカテゴリのURLを生成しています。

<?php
  $cat = get_query_var('cat');
  $category_name = get_query_var('category_name');
    if ( !empty($cat) ) {
      if ( !stristr($cat,'-') ) {
        //カテゴリ名の取得
        $cat_name = apply_filters('single_cat_title', get_the_category_by_ID($cat));
        
        //カテゴリスラッグの取得
        $category_name = explode('/',$category_name);
        $category_slug= $category_name[count($category_name)-1];
        
        //画像ファイルの alt
        $ttl_alt = $cat_name;
        
        //画像ファイルの名前
        $ttl_img = $category_slug;
        
        //URLの生成
        $catid = get_cat_ID( $cat_name );
        $getCatURL = get_category_link( $catid );
      }
    }
  ?>
  
  <!-- 例1 カテゴリ名・カテゴリスラッグから画像を表示  -->
  <img src="<?php bloginfo('template_url'); ?>/img/img_<?php echo $ttl_img ;?>.png" width="100" height="50" alt="<?php echo $ttl_img;?>について">
  
  <!-- 例2 カテゴリのURLを生成 -->
  <a href="<?php echo $getCatURL; ?>">カテゴリ一覧を見る</a>
  

これでカテゴリにひもづくエントリーが0件でも問題なくカテゴリ情報を取得して条件分岐などに利用できるようになりました。

apply filters - フィルターフックに追加された関数を呼び出します。
フィルターフックの一覧はプラグイン_APIをごらんください。

関数リファレンス/apply filters

single_cat_title - カテゴリー名を表示する。
string single_cat_title( [ string $prefix = '' [ , bool $display = true ] ] )
アーカイブページのカテゴリー名を取得し、パラメータ$displayがtrueならば表示する。$displayがfalseの場合は、文字列として返す。
パラメータ$displayがfalseの場合はカテゴリー名を返す。$displayがtrueの場合、返り値はない。

single_cat_title

get_the_category_by_ID - カテゴリーIDからカテゴリー名を取得する
mixed get_the_category_by_ID( int $cat_ID )
カテゴリー名を返す。パラメータ$cat_IDが無効なカテゴリーIDの場合は、エラー内容を示すWP_Errorのオブジェクトを返す。

get_the_category_by_ID
0%