WordPressで記事本文を表示・取得する方法まとめ

WordPressでは、投稿記事や固定ページの本文(コンテンツ)を扱う際に、主に次の2つの関数を使用します。
- 記事本文を出力(表示)したい場合 → the_content()
- 記事本文を取得(変数に代入)したい場合 → get_the_content()
一見すると似ていますが、役割・使いどころ・注意点が大きく異なるため、正しく理解して使い分けることが重要です。
「the_content()」の使い方
基本的な使い方
the_content()は、記事本文をそのまま画面に出力する(echoする)関数です。
基本的にはWordPressループ内で使用します。
例えば、トップページやアーカイブページなどの記事一覧で使用する場合は、次のようになります。
<h2>マイブログ</h2>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h3><?php the_title(); ?></h3>
<p><?php the_content(); ?></p>
・
・
<?php endwhile; endif; ?>
the_content()は、戻り値を返しません。
そのため、以下のような使い方は誤りです。
<?php $content = the_content(); ?> ❌
本文を変数に代入したい場合は、後述するget_the_content()を使用します。
the_content() の引数について
the_content()には、以下の2つの引数を指定できます。
the_content( $more_link_text = null, $strip_teaser = false );
何も指定しなければ、記事本文がそのまま全文表示されます。
第1引数:<!–more–> 以降を表示するリンクテキスト
第1引数では、<!--more-->を挿入している場合に、
「続きを読む」リンクとして表示するテキストを指定できます。
<?php the_content(“全文を読む”); ?>
記事内に<!--more-->がある場合、次のような挙動になります。
<!--more-->より前の文章が表示される- 末尾に「全文を読む」というリンクが表示される
- クリックすると、記事の全文ページへ遷移する
※<!--more-->が存在しない場合、この引数は無視されます。
第2引数:<!–more–> 以前の本文を表示するかどうか
第2引数$strip_teaserは、<!--more-->より前の本文を表示するかどうかを制御します。
- false(デフォルト)
<!--more-->より前の本文を表示 - true
<!--more-->より前の本文を表示せず、後半のみ表示
<?php the_content(“”, true); ?>
※ 実務ではあまり使用されることはなく、
通常はデフォルト(false)のままで問題ありません。
「get_the_content()」の使い方
基本的な使い方
get_the_content()は、記事本文を取得して返す関数です。
表示は行われず、変数に代入して加工・条件分岐などに使うことができます。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php $content = get_the_content(); ?>
・
・
<?php endwhile; endif; ?>
get_the_content() の重要な注意点(最新情報)
get_the_content()で取得できる本文は、フィルタが適用されていない生データです。
つまり、以下は自動では適用されません。
- 改行の
<p>/<br>変換(wpautop) - ショートコードの展開
- 埋め込み(YouTubeなど)
そのため、実際に表示する場合は必ずフィルタを通す必要があります。
<?php
$content = get_the_content();
$content = apply_filters( ‘the_content’, $content );
echo $content;
?>
「取得した本文を表示したい」場合は、この処理が必須です。
第1引数:<!–more–> 以降を表示するリンクテキスト
get_the_content()の第1引数も、the_content()と同様に
<!--more-->用のリンクテキストを指定できます。
<?php $content = get_the_content(“全文を読む”); ?>
※ ただし、リンクHTMLが返るだけなので、そのまま表示する場合はechoが必要です。
第2引数:<!–more–> 以前の本文の表示・非表示
第2引数の挙動もthe_content()と同じです。
- false(デフォルト):全文取得
- true:
<!--more-->より前を除外
<?php $content = get_the_content(“”, true); ?>
the_content() と get_the_content() の使い分けまとめ
| 用途 | 使用する関数 |
|---|---|
| 記事本文をそのまま表示したい | the_content() |
| 本文を加工・条件分岐・文字数制限したい | get_the_content() |
| 取得した本文を表示したい | get_the_content() + apply_filters |
まとめ
WordPressで記事本文を扱う際は、表示するのか、取得するのかによって使用する関数が明確に分かれています。
- 記事本文をそのまま画面に表示したい場合は
the_content()を使用する - 記事本文を変数に代入して加工したい場合は
get_the_content()を使用する
特にget_the_content()は、フィルタが適用されていない生データを返すという点が重要です。
そのまま表示すると、改行やショートコードが正しく処理されない原因になります。
取得した本文を表示する場合は、必ず次のように
apply_filters( 'the_content', $content )を通すことを意識しましょう。
これらの違いを正しく理解しておくことで、
- テーマ開発時のレイアウト崩れを防げる
- 不要なバグや表示トラブルを回避できる
- WordPressらしい正しい実装ができる
「表示は the_content()、加工は get_the_content()」
この基本を押さえておけば、記事本文の扱いで困ることはほとんどなくなります。






















