wordpress:投稿の最初の200字だけ出力

投稿記事の最初の200字を出力し、「続きを読む」にする

「初歩から学ぶゲーム理論」というカテゴリーが呼び出されたときだけ、最新の投稿から記事内容を200字だけ出力することにした。

(1) list_web_kogi1.phpと言う、以下のファイルを作成。

<!-- 記事を200字出力し、続きを読むにリンクを貼る出力 -->

<h2>初歩から学ぶゲーム理論-WEB講義</h2>
<h3>最新の投稿</h3>
<ul>
<?php
$wp_query = new WP_Query();
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'category__in' => 8,
'posts_per_page' => 10,
'order' => 'DESC'
);
$wp_query->query($args);
if($wp_query->have_posts()){
?>
<?php
while (have_posts()) {
the_post();
?>
<!-- 出力部分 -->
<?php $naji_title=get_permalink(); ?>
<h4><a href="<?php echo $naji_title; ?>"><u>
<?php the_title(); ?></u></a></h4>
<?php
if(mb_strlen($post->post_content,'UTF-8')>200){
	$content= str_replace('\n', '', mb_substr(strip_tags($post-> post_content), 0, 200,'UTF-8'));
	echo $content.'<a href='.$naji_title.'><u>(.....続きを読む)</u></a>';
}else{
	echo str_replace('\n', '', strip_tags($post->post_content));
}
?>
<!-- 出力部分 -->
<?php
}
wp_reset_query();
}
?>

(2) category.php の途中の適切な部分(ループの前)に以下を挿入

if (is_category('gametheory_lecture')):
include('list_web_kougi1.php');
else:
  • gametheory_lecture:「初歩から学ぶゲーム理論」のカテゴリ名(スラッグ)
  • 自分が使っているテーマ twelveseventeen はcategory.phpを用いず、すべてpage.php で出力を行うため、まず page.phpを複製し、それをcategory.phpという名前のファイルに変えた。