• 解決済 kleza

    (@kleza)


    はじめて投稿させていただきます。

    このフォーラムで以前あった
    http://ja.forums.wordpress.org/topic/3215

    ここで回答されているコードを使って
    指定したカテゴリ名を出力しないということをしました。

    復数のカテゴリに記事が属していた場合の区切りの処理を
    どうすればいいのかわかりません。the_category()ならば

    <?php the_category(‘, ‘); ?>

    これでいけるのですが。

    現状は以下の記述で「指定したカテゴリ名」は出力させないようにしています。

    <?php
    $cats = get_the_category();
    $exclude = array(3); /* カテゴリID3のカテゴリ名は出力しない */
    foreach((array)$cats as $cat) if(!in_array($cat->cat_ID, $exclude))
    echo '<a href="' . get_category_link($cat->cat_ID) . '">' . $cat->cat_name . '</a>';
    ?>

    ↑このように指定したカテゴリ名は出力しないで、プラス、復数のカテゴリ名が
    出力された場合の区切り文字(カンマや半角スペース等)を出力させるには
    どうしたらいいか、アドバイスを何卒よろしくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • Tsuyoshi.

    (@andante0727)

    ソースが見辛かったのでついでに直しておきました。

    ほんの一例ですが例えばこんな方法もあります。

    <?php
    $cats = get_the_category();
    
    // カテゴリID3のカテゴリ名は出力しない
    $exclude = array( 3 );
    $str = '';
    foreach( ( array )$cats as $cat ) {
    	if( !in_array( $cat->cat_ID, $exclude ) ) {
    		$str .=  '<a href="' .
    			  get_category_link( $cat->cat_ID ) . '">' .
    			  $cat->cat_name .
    			  '</a>' .
    			  ',';
    	}
    }
    // 末尾のカンマを削除してカテゴリ出力
    echo rtrim( $str, "," );
    ?>
    トピック投稿者 kleza

    (@kleza)

    さっそくのレスポンス、ありがとうございます!
    こういう場で質問をして返していただいたのが
    初めてだったので余計に感動です。

    求める結果は得られました。でも、このままだと
    まるまる教えていただいただけでコピーになってしまうので
    なにをどうやっているのか、理解しないといけませんね。

    ソースも整形していただいて、本当にありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「get_the_category()で区切り文字を使いたい」には新たに返信することはできません。