Stinger3カスタマイズ。サイトバーにカテゴリ別の最新記事を表示する。

2016/10/15


wordpress

WordPressの無料テーマ「Stinger3」で、サイドバーにカテゴリ別の最新記事を表示する方法をご紹介します。

動作のイメージは、こんな感じです。

  1. 個別記事を表示している時
    その記事が属しているカテゴリの最新記事を一覧表示
  2. カテゴリ別アーカイブを表示している時
    そのカテゴリの最新記事を一覧表示
  3. それ以外(トップページなど)
    カテゴリを問わず、最新記事を一覧表示

スポンサーリンク

カスタマイズの手順

まず、sidebar.phpファイル内の、次の箇所を削除します。

<!--最近のエントリ-->

中略

<!--/最近のエントリ-->

続いて、先ほど削除した箇所に、次のコードを追加します。

<!--最近のエントリ-->
<?php
$num = 10;
/* 個別記事の時は、カテゴリ別の最新記事を表示する*/
if (is_single()){
	$cat = get_the_category();
	$cat = $cat[0];
	$motto = get_category_link( $cat->cat_ID );
	query_posts($query_string . '&category_name='.$cat->slug.'&posts_per_page='.$num.'&offset=0');
	echo '<h2 class="menu_underh2">「'.$cat->name.'」の最新記事</h2>';
/* カテゴリ別アーカイブの時は、カテゴリ別の最新記事を表示する*/
}else if(is_category()){
	$cat = get_query_var('cat');
	$cat = get_category($cat);
	$motto = get_category_link( $cat->cat_ID );
	query_posts($query_string . '&category_name='.$cat->slug.'&posts_per_page='.$num.'&offset=0');
	echo '<h2 class="menu_underh2">「'.$cat->name.'」の最新記事</h2>';
/* それ以外の時は、全カテゴリの最新記事を表示する*/
}else{
	$motto = home_url();
	query_posts('posts_per_page='.$num.'&offset=0'); 
	echo '<h2 class="menu_underh2">最新記事</h2>';
}
?>
<div id="topnews">
<div>
<?php if(have_posts()):while(have_posts()):the_post();?>
<dl>
<dt>
<span>
<a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>">
<?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?>
	<?php the_post_thumbnail( 'thumb100' ); ?>
<?php else: // サムネイルを持っていないときの処理 ?>
	<img src="<?php echo get_template_directory_uri(); ?>/images/no-img.png" alt="no image" title="no image" width="100" height="100" />
<?php endif; ?>
</a>
</span>
</dt>
<dd>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
<p><?php echo mb_substr( strip_tags( stinger_noshotcode( $post->post_content ) ), 0, 35 ) . ''; ?></p>
</dd>
<p class="clear"></p>
</dl>
<?php
endwhile; endif;
wp_reset_query();
wp_reset_postdata();
?>
<p class="motto"> <a href="<?php echo $motto; ?>/">→もっと見る</a></p>
</div>
</div>
<!--/最近のエントリ-->

子テーマを作成したうえで、お試しくださいね。

画像引用元:how to make WordPress needle cushion 3 by Odyssey

スポンサーリンク