macoblog

「ゲーム × プログラミング」で生きていく

アプリ検索ツール(β版)を公開

get_the_content関数で改行されない時【コピペOK】

WordPress プログラミング

wordpressを使用していると「本文を取得して表示させると改行されない」なんて事があると思います。

そんな時はちょっとひと手間加えるだけで解決です、コピペですぐに使えるコードを公開していますので参考にどうぞ。

「原因も特に思い当たらない」「こんなこと今までなかった」

こんな時はまずwordpress側の関数を確認した方がいいです。

記事ループ内で本文がらみで使用する関数はこの2つ。

  • the_content
  • get_the_content

the_content関数を使用しているのであれば問題はないでしょう。

もしかして、get_the_content関数を使用していませんか?

the_content関数とget_the_content関数

この二つは似て非なるものです、同じではありません。

それぞれ簡単に解説します。

the_content関数

the_content関数は頻繁に使われる関数で、記事ループ内で下記のように記述するだけで本文を取得し表示してくれます。

the_content();

個別記事ページを管理するsingle.phpで大活躍します。

get_the_content関数との違いは、

改行を含むデータを取得し表示する

これですね、つまりthe_content関数を使って改行されないということはないでしょう。

ちなみに上記コードを見てわかりように、関数を実行するだけで表示までしてくれるのも特徴の一つですね。

get_the_content関数

問題はこいつですね。

実はこの関数、the_content関数と違って本文のデータを取得するだけで改行を含みません

つまり、

get_the_content関数をそのまま出力しても改行されていないプレーンなデータが表示されるだけ

改行されない例

$content = get_the_content();

echo $content;

上記のようにそのまま出力するだけだと改行を含みません。

かといってthe_content関数は使いたくない、そんな時はget_the_content関数にひと手間加えるだけで改行を含むデータを取得できます。

改行を含むデータを取得する方法【コピペOK】

$content = apply_filters('the_content',get_the_content());

echo $content;

上記のようにすればget_the_content関数で改行を含むデータを取得できます。

簡単ですね。

終わりに

本記事の内容を簡単にまとめました。

the_content関数まとめ

  • 改行を含む本文データを取得する
  • 関数を実行するだけで出力することが可能
  • カスタマイズしにくい

get_the_content関数まとめ

  • 改行を含まないデータを取得する
  • 関数を実行するだけでは出力されない、これとは別に出力処理が必要
  • 工夫することで改行を含むデータを取得することができる
  • カスタマイズしやすい

改行されない!!なんて時は、素直にthe_content関数を使えば話は早いですが、

実際には変数や配列に格納して使ったりすることもあるので、the_content関数だけでは不便です。

get_the_content関数を使う事でカスタマイズの幅を広げることが可能になります。

関数を正しく使い分け質の高いサイト作りを目指していきましょう。

以上になります。

Twitterでも情報や経過を発信していますのでフォローよろしくお願いします。

不明点やアドバイスなどありましたら、コメントかTwitterからお願いします。