コンテンツ(投稿記事/固定ページ)の本文を出力/取得
コンテンツ(投稿記事/固定ページ)の本文を出力または取得するには、the_content
関数またはget_the_content
関数を使用します。
the_content関数はechoで出力するのに対して、get_the_content関数はreturnで返します。
- ※ サブループ内でのみ取得可能です。
構文
出力
the_content(リンクテキスト, 以降を表示); |
取得
戻り値 = get_the_content(リンクテキスト, 以降を表示); |
引数名 | 型 | 初期値 | 説明 | |
---|---|---|---|---|
第一引数 | リンクテキスト | string | null | 本文の続き(投稿ページ)を表示するためのリンクのテキスト。 リンクについては 続きを読むためのリンクについてを参照。 |
第二引数 | 以降を表示 | boolean | false | <!--more-->を基準にそれ以降を表示し、以前を非表示にするかどうか。true ... 以降を表示、以前を非表示false ... 以前を表示、以降を非表示 |
戻り値
取得した本文を返します。
サンプルコード
$cont = get_the_content(); |
続きを読むためのリンクについて
本文は一覧で表示する際などで省略して表示したい場合などがあります。
そこで<!--more-->
を挿入することで、挿入した箇所以降の本文は非表示にすることができます。
次のコードは、"あいうえお"までが表示され、"かきくけこ"以降は表示されません。
< p >あいうえお</ p > <!--more--> < p >かきくけこ</ p > < p >さしすせそ</ p > |
また<!--more-->は次のようなHTMLに置き換わります。
リンクのHTMLを変更したい場合は、functions.phpファイルに次のコードを追加します。
if (!function_exists( 'custom_read_more_link' )) { function custom_read_more_link( $more ) { $html = '<p class="more-link">' ; $html .= '<a href="' .esc_url(get_permalink()). '">' . $more . '</a>' ; $html .= '</p>' ; return $html ; } } add_filter( 'the_content_more_link' , 'custom_read_more_link' ); |
returnで出力するリンクのHTMLを返します。
get_permalink関数でパーマリンクを取得し、esc_url関数でURLの特別な文字列(半角スペースなど)をエスケープします。
定義する関数の第一引数は次で説明しているリンクテキストが渡されてきます。
リンクテキスト
リンクテキストは構文の通り、the_content関数(またはget_the_content関数)の第二引数で指定することで変更することができますが、<!--moreリンクテキスト-->
と"more"文字に続いて文字を指定することでリンクテキストを変更することもできます。
コード
<p>あいうえお</p>
<!--moreもっと見る-->
<p>かきくけこ</p>
<p>さしすせそ</p>
出力結果
<p>あいうえお</p>
<a href="https://example.co.jp/1970/01/23/foo/#more-45" class="more-link">もっと見る</a>