「先頭に固定表示」をカテゴリページにも反映する

投稿の公開ステータスに「この投稿を先頭に固定表示」というチェックがあります。



これはデフォルトではトップページでのみ有効になるもので、カテゴリページではチェックがあっても先頭に固定表示にはなりません。

これをカテゴリページでも反映するようにします。

category.php
<?php 
$get_cat = get_the_category();
$cat = $get_cat&#91;0&#93;;
$sticky = get_option('sticky_posts');?>

<!-- 1ページ目の時先頭固定表示 -->
<?php if (!is_paged()) : ?>
	<?php if(!empty($sticky)):
		$args = array(
			'cat' => $cat->cat_ID,
			'post__in'  => $sticky,
		);

		$the_query = new WP_Query( $args );
		if ( $the_query->have_posts() ) :
			while ( $the_query->have_posts() ) : $the_query->the_post();?>
			<h2><?php the_title(); ?></h2>
			<p><?php the_content(); ?></p>
			<?php endwhile;?>
		<?php endif;?>
		<?php wp_reset_postdata(); ?>
	<?php endif;?>
<?php endif;?>
<!-- ここからカテゴリー表示 -->
<?php
$args = array(
	'post__not_in' => $sticky,
	'cat' => $cat->cat_ID,
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) :
	while ( $the_query->have_posts() ) : $the_query->the_post();?>
		<h2><?php the_title(); ?></h2>
		<p><?php the_content(); ?></p>
	<?php endwhile;?>
<?php endif;?>


カテゴリの1ページ目の時は先頭固定の投稿を表示して、
その後それ以外の投稿が並ぶようにします。
なので、1ページ目は先頭固定表示の分だけ表示件数が増えます。
Comments

“「先頭に固定表示」をカテゴリページにも反映する” へ2件のコメント

  1. はるき says:

    このコードをどこに貼り付ければいいんですか?
    よろしくおねがいします。

  2. tamucha says:

    こんにちは。 上記の変更はカテゴリページを想定しているので、 テーマフォルダ内のcategory.phpテンプレートです。 テーマにもよりますが、ループでコンテンツが出力される箇所を書き換えることで変更できます。
    出力する内容やデザインは適当なものに変更してください。
    お役に立てれば幸いです。

コメントする