• お世話になります。
    現在私は、WordPress 3.1.1 を使用してサイトを作成しております。

    ウィジェットの「最新のコメント」についての質問です。
    現在、ウィジェットの「最新のコメント」をサイドバーに表示されているのですが、
    デフォルトだと、すべてのカテゴリーの中の新着10件を表示されてしまいます。
    ある特定のカテゴリーのコメントを除外したい場合はどうすれば良いのでしょうか?

    プラグインでなにかないか調べたところ、
    「Widget Logic」、「Display widgets」などのプラグインを見つけたので、
    試してはみたんですが、互換性の問題か、バージョンの問題かは
    分かりませんが、なぜか反映されませんでした。。。

    なにか特定のカテゴリーを除外する方法はないでしょうか?
    良いプラグインまたは、PHPでIDを除外する方法などの
    回答をよろしくお願いしますm(_ _)m

2件の返信を表示中 - 16 - 17件目 (全17件中)
  • 「$comments =」というのは、書かれていなかったのですが、

    すみません書き忘れです$commentsがないと配列へ代入がされないのでループできません・・・

    とりあえず絞り込みの入り口に立ったというわけなので
    前提としてコメントIDとカテゴリIDは別物です
    今すぐにはちょっと出かけ先で返事が出来ないのですが
    絞り込みたいカテゴリに属するコメントのIDを取得して
    そのIDで絞り込みをかけるのが手順となります

    <?php
    //除外したいカテゴリID(array(n, x, y)のように配列にすることで複数選択可)
    $foundCat = 14;
    //除外したいカテゴリのページ情報を配列で取得
    $bounds_posts = get_posts( array( 'category'=> $foundCat );
    //各ページループしコメントを抽出する
    foreach($bounds_posts as $post_com):
    	//除外するコメント情報
    	$byeCom = get_approved_comments( $post_com => ID );
    	//除外ページ単位のコメント配列
    	foreach($byeCom as $comment):
    		//コメントIDを取得
    		$comID = $comment => comment_ID;
    		//除外記号の"-"を付加して配列に保存
    		$bounds_comID[] = "-".$comID;
    	endforeach;
    endforeach;
    
    //コメント情報取得
    if(count($bounds_comID) != 0){
    	$comments = get_comments(array('status' => 'approve' ,'number' => 5, 'ID' => $bounds_comID));
    }else{
    	$comments = get_comments(array('status' => 'approve' ,'number' => 5));
    }
    //取得したコメント分ループ開始
    foreach($comments as $comment):
    	//コメントのIDを取得する
    	$post = get_post($comment->comment_post_ID);
    /******************** ココから内容表示 ********************/
    ?>
    	<!--コメントされたページへのリンクとタイトル-->
    	<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>へのコメント
    	<!--コメントしたユーザー情報とコメントした月日-->
    	(<?php comment_author_link(); ?>より[<?php comment_date('m/d'); ?>])
    	<!--コメント内容-->
    	<?php comment_text(); ?></li>
    
    <?php
    /******************** ココまで内容表示 ********************/
    
    //ループ終了
    endforeach;
    ?>

    未検証ですがこんな感じでは無いですか?
    実を言うとget_approved_commentsと言う命令は
    ページIDを渡すとそのページのコメント一覧を取得する命令です
    複数カテゴリがあった場合のことを考えて一度噛ませてるんですが
    一つのみならば除外したいカテゴリIDに”-”を付けることで
    そのままget_approved_commentsを使用して出力する事も可能なはずです
    勿論上記コードでも可能な筈ですが・・・

    追記:

    <dl class="comments_li">
    <dt><a href="<?php the_permalink(); ?>"><?php the_title(); ?>に<?php comment_author_link(); ?>より</a></dt>
    <?php endforeach; ?>
    </dl>

    と書かれていたのですがdlクラスにループ終了タグを巻き込んではだめですよ?
    行うなら

    <dl class="comments_li">
    <dt><a href="<?php the_permalink(); ?>"><?php the_title(); ?>に<?php comment_author_link(); ?>より</a></dt>
    </dl>
    <?php endforeach; ?>

    ・・・です

2件の返信を表示中 - 16 - 17件目 (全17件中)
  • トピック「最新のコメント ある特定のカテゴリーを除外」には新たに返信することはできません。