【WordPress】the_content()が動かない時の解決方法

the_contentメソッドが動かない時の解決方法

どうも、イソップ(@Yuhiisk)です。

記事の本文を出力する the_content メソッドですが、

あれー?? the_title() は出力されてるのに、 なんで the_content() は表示されてないんだ!?

という事態に遭遇してしまいました。

原因がわからずちょっと悩んでしまったので、本日は解決策をば。

キミィ、the_contentはループの中で動作するのだよ

こういうの見たことありませんか?

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
  <?php the_content(); ?>
<?php endwhile; endif; ?>

the_content() は、上記のようなループの中で呼び出されなければいけません。

公式ドキュメントにもしっかり書いてありますね。

現在の投稿の本文を出力します。 このテンプレートタグはループの中で使わなければなりません。

テンプレートタグ/the content – WordPress Codex 日本語版

で、ぼくの場合はループの中で実行していなかったので、出力されなかったのです。

そして、あわせて大事なのが the_post() メソッド。

ループ処理を次に進めるためのメソッドです。
そして the_post() はループの中かどうかをWordPressに教えます。

つまり、ループの中で the_post() メソッドの実行が必要ということなんですね。

なので、the_titlethe_content は、
the_post() とセットで使わなければ上手く表示してくれなかったのです。

関数リファレンス/the post – WordPress Codex 日本語版

凡ミスには気をつけましょう

というわけで、今回はぼくの凡ミスだったというお話でした。

言い訳するつもりじゃないけど、ちょっと書かないと忘れてしまいますね……これは。

もし the_content() が表示されないときは、
ループの中かどうか、the_post() が実行されているかどうかを確認してください。

the_contentメソッドが動かない時の解決方法

更新情報はTwitterでも配信しています