サポート » テーマ » 特定カテゴリをカテゴリページでのみ表示させたい

  • 解決済 hatobane

    (@hatobane)


    お世話になっております。

    トップページで記事一覧から特定カテゴリを除外させたくて
    ループの部分に『query_posts』を使用しました。

    すると除外には成功したのですがカテゴリページでも
    一覧から記事が除外されてしました。

    トップページではループから特定カテゴリが除外され、
    かつカテゴリページでは記事が表示される状態が理想なのですが
    その方法に見当がつかなかったので質問させていただきました。

    分かりづらい文章で恐縮です。
    何かしら方法がありましたらご教授いただけませんでしょうか。
    ちなみに以下がループ部分のコードとなります。

    <table>
    
    <?php query_posts('cat=-4'); ?>
    	<?php
    	$col = 0;
    	$cols_per_row = 1;
    	while (have_posts()) : the_post();
    	if($col == 0) echo '<tr>';
    	?>
    		<td class="column'<?php echo $col; ?>" style="vertical-align: top">
    		<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    
    			<div class="pin"></div>
    			<a href="<?php the_permalink(); ?>">
    							<h2><?php echo get_the_title(); ?></h2>
    			<div class="thumb"><?php the_post_thumbnail(); ?></div>
    			</a>
    				<div class="post-meta">
    					<p class="post-date"><?php echo get_the_date(); ?></p>
    					<p class="cate">カテゴリ: <?php the_category(' &raquo; ') ?></p>
    					<p class="comment-num"><?php comments_popup_link('Comment : 0', 'Comment : 1', 'Comments : %'); ?></p>
    				</div>
    			<?php echo mb_substr(strip_tags($post-> post_content), 0, 0); ?>
    			<div class="rating">
    			<?php echo the_ratings_results(get_the_id()); ?>
    			</div>
    
    	</div>
    	<td>
    	<?php
    	if($col++ >= $cols_per_row){
    	$col = 0;
    	echo '</tr>';
    	}
    	endwhile;
    	?>
    
    </table>

    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    試していませんが、

    }
    	endwhile;
    wp_reset_query();

    としてみてください

    トピック投稿者 hatobane

    (@hatobane)

    nobita様、ありがとうございます。

    wp_reset_query();
    を追加してみましたが特に変化はありませんでした。

    query_postsの使用を止めて
    functionに以下を記述して解決しました。

    function exclude_category_at_home($wp_query){
        if($wp_query->is_main_query() && $wp_query->is_home()){
            $wp_query->set('cat','-4');
        }
    }
    add_action('pre_get_posts',
        'exclude_category_at_home');

    また何か厄介になると思いますが、その時は何卒よろしくお願い致します。
    どうもありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「特定カテゴリをカテゴリページでのみ表示させたい」には新たに返信することはできません。