- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
テンプレートタグ/the content
目次
説明
現在の投稿の本文を出力します。 このテンプレートタグはループの中で使わなければなりません。
本文中に <!--more--> クイックタグがある場合、先頭からそのクイックタグまでの内容のみを抜粋として表示します。 ただし単一投稿ページ(パーマリンクで投稿を特定したページ)では、抜粋のみでなく本文をすべて表示します。 the_content() テンプレートタグは <!--more--> の表示方法を決めるパラメータを受け取り、投稿の全文を「続けて読む」ためのリンクを表示する、という設計になっています。
- <!--more--> について:
- <!--more--> クイックタグの "more" の前に空白を入れてはいけません。つまり <!-- more --> は正常に動作しません!
- <!--more--> クイックタグは single.php などの単一投稿を表示するテンプレートでは動作せず無視されます。
- 詳しくは 「続きを読む」のカスタマイズ をお読みください。
使い方
<?php the_content( $more_link_text, $stripteaser ); ?>
パラメータ
- $more_link_text
- (文字列) (オプション) <!--more--> 以降を読むためのリンクとして表示するテキスト。
- 初期値: '(more...)'
- $stripteaser
- (真偽値) (オプション) <!--more--> 以前の内容を隠すかどうか。
- 初期値: false
- true - <!--more--> 以降のみを表示
- false - 本文をすべて表示 - デフォルト
用例
"More" のテキストを指定する
この例は投稿の本文を表示します。もし <!--more--> クイックタグが使われていたら more リンクのテキストに "Read more..." を使います。
<?php the_content('Read more...'); ?>
"More" にタイトルを含める
上の例と似ていますが、<!--more--> クイックタグが使われていたら "Continue reading 投稿のタイトル" を表示します。 そのために the_title() テンプレートタグと display パラメータを利用します。
<?php the_content("Continue reading " . get_the_title()); ?>
アーカイブ/単一投稿ページでの動作を変える
the_content() が思ったとおりに動作しない(例えば <!--more--> クイックタグまでのみを表示して欲しいのに本文全体が表示される)場合、グローバル変数 $more を併用して動作を変えることができます。
<?php global $more; // グローバル変数 $more を宣言(ループの前に)。 $more = 0; // more タグまでのみを表示するようにセット(ループの中で)。 the_content("More..."); ?>
本文をすべて表示しなければならない場合は:
<?php global $more; // グローバル変数 $more を宣言(ループの前に)。 $more = 1; // more の後まで本文をすべて表示するようにセット(ループの中で)。 the_content(); ?>
先頭に固定表示する投稿の中で "More" を無視する
この例は先頭に固定表示する投稿の中で more クイックタグを無視、つまり投稿に <!--more--> があっても本文をすべて表示します。しかし他の投稿はどれも more リンクを表示します。
<?php if (is_sticky()) { global $more; // グローバル変数 $more を宣言(ループの前に)。 $more = 1; // more の後まで本文をすべて表示するようにセット(ループの中で)。 the_content(); } else { global $more; $more = 0; the_content('この投稿の続きを読む »'); } ?>
別の使い方
直接表示する代わりに、get_the_content() を使って本文の内容を取得することができます。 例えば:
<?php $content = get_the_content(); ?>
注意! get_the_content はフィルターを適用せずに内容を返します。 そのため、the_content() と同じ出力が欲しい場合は次のコードを使ってください:
<?php $content = apply_filters( 'the_content', get_the_content() ); $content = str_replace( ']]>', ']]>', $content ); ?>
更新履歴
バージョン 0.71 にて導入されました。
ソースファイル
the_content() は wp-includes/post-template.php
にあります。
関連資料
投稿タグ: body_class(), next_image_link(), next_post_link(), next_posts_link(), post_class(), post_password_required(), posts_nav_link(), previous_image_link(), previous_post_link(), previous_posts_link(), single_post_title(), sticky_class(), the_category(), the_category_rss(), the_content(), the_content_rss(), the_excerpt(), the_excerpt_rss(), the_ID(), the_meta(), the_shortlink(), the_tags(), the_title(), the_title_attribute(), the_title_rss(), wp_link_pages(),
最新英語版: WordPress Codex » Function_Reference/the_content (最新版との差分)