the_contentとget_the_contentの違い

スポンサーリンク

WordPress関数のthe_contentもget_the_contentも、ページの本文を取得する関数です。違いは、the_contentは本文を画面に表示するのに対して、get_the_contentは変数などに本文を返します。いったん変数に取得して加工してから画面に表示したい場合に役立ちます。

$content = get_the_content();

もう1つの違いは、get_the_contentは本文をそのまま取得するだけですが、the_contentは取得した本文にフィルターフックが適用されます。具体的には次のようなコード(wp-includes/post-template.php)です。

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

これにより、自動整形(wpautop)が適用されたり、ショートコードが置き換えられたりする仕組みです。同じようにして、本文の前後に独自の文字列を追加したり、本文の一部を置き換えるなど、the_contentにフックをかけることでページの本文を自由にカスタマイズすることができます。

the_contentのコードを抜粋すると、次のようになります。

function the_content( $more_link_text = null, $strip_teaser = false) {
	$content = get_the_content( $more_link_text, $strip_teaser );
	$content = apply_filters( 'the_content', $content );
	$content = str_replace( ']]>', ']]>', $content );
	echo $content;
}

get_the_contentで取得した本文(2行目)にフィルターフック(3行目)をかけている流れがわかると思います。参考にしてください。

PHPの基礎が身に付いたかチェックするなら

PHP「直す力」養成ドリル
スポンサーリンク