「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_replace
と strip_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));
}
?>