本文の出力

content関数のイラスト

「the_content」の関数を使うことで、記事の本文を出力します。

記事の本文を出力

記事の本文を出力するには the_content という関数(テンプレートタグ)を使います。

パラメータを指定せず以下のように書きます。

PHP

<?php the_content(); ?>

ループ内での基本的な使い方は、以下の通りです。

PHP

<?php if (have_posts()): ?>
    <?php while (have_posts()) : the_post(); ?>
        個々の投稿を出力する処理
        <?php the_content(); ?>
    <?php endwhile; ?>
        投稿一覧を出力した後に行う処理
<?php else: ?>
    投稿が無い時の処理
<?php endif; ?>

文字数を制限する場合

functions.php に追記することで、本文の文字数を制限して出力できます。

functions.phpに記述

function my_excerpt( $length ) {
global $post;
$content = mb_substr( strip_tags( $post -> post_content ), 0, $length );
$content = $content . ' ... <a class="more" href="'. get_permalink() . '">続きを読む</a>';
return $content;
}

文字数が50文字以上は省略して出力して、それ以上は「…」の後にリンク付きの「続きを読む」が出力されます。

PHP

<?php echo my_excerpt(50); ?>

タイトルと本文をセットで出力

ベーシックな組み合わせで、本文と記事のタイトルを出力する関数を使ってループを作成することができます。

PHP

<?php if ( have_posts() ) : ?>
  <?php while( have_posts() ) : the_post(); ?>
      <h2><?php the_title(); ?></h2>
      <p><?php the_content(); ?></p>
  <?php endwhile;?>
<?php endif; ?>

上限100文字でそれ以上は「……」を付けるhtmlタグ付きの本文を出力

htmlのタグ付きで100文字まで出力し、それ以上の文字数の場合は「……」を出力します。

PHP

<?php
if(mb_strlen($post->post_content, 'UTF-8')>100){
	$content= mb_substr($post->post_content, 0, 100, 'UTF-8');
	echo $content.'……';
}else{
	echo $post->post_content;
}
?>

上限100文字でそれ以上は「……」を付けるhtmlタグ無しの本文を出力

str_replacestrip_tags の関数を入れて、HTMLタグをなくした状態で100文字の本文を出力します。

PHP

<?php
if(mb_strlen($post->post_content,'UTF-8')>100){
	$content= str_replace('\n', '', mb_substr(strip_tags($post-> post_content), 0, 100,'UTF-8'));
	echo $content.'……';
}else{
	echo str_replace('\n', '', strip_tags($post->post_content));
}
?>