【WordPress】投稿コンテンツを取得する関数解説
WordPressの投稿のコンテンツを取得する場合、いくつかの関数が用意されています。
しかし、どの関数を使用すればいいのか、使い分けはどうしたらいいのか、ふと疑問に思うこともあります。
今回はWordPressの投稿のコンテンツを取得する関数を違いと使い分けのポイントを踏まえてご紹介したいと思います。
この記事の目次を表示
the_content()関数
the_content()
関数は、WordPressで現在の投稿のコンテンツを表示する時に使用します。
この関数は、WordPressのループ内で使用します。
基本的な使用方法
基本的な使用方法は凄くシンプルで、以下のように記述します。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; endif; ?>
このコードをsingle.phpやpage.phpなどテーマのテンプレートファイルのループ内で挿入することで、現在の投稿のコンテンツを表示することが出来ます。
パラメータ指定
the_content()
関数は、2つのパラメータを指定することが出来ます。
- $more_link_text:「もっと読む」リンクのテキストを変更するために使用します。「もっと読む」タグが投稿内にある場合、表示されるリンクテキストとして使用されます。
- $strip_teaser:trueまたはfalseを指定。trueの場合、「もっと読む」以降のコンテンツを表示。falseの場合、コンテンツ全てを表示。デフォルト値はfalse。
「もっと読む」リンクのテキストを変更
「もっと読む」のリンクテキストを変更したい場合、以下のように記述します。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php the_content('read more'); ?>
<?php endwhile; endif; ?>
「もっと読む」のリンクテキストは「read more」というテキストで表示されます。
「もっと読む」タグより前のコンテンツを除外
「もっと読む」タグより前の部分を表示から除外する場合は、以下のように記述します。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php the_content('', true); ?>
<?php endwhile; endif; ?>
このようにすることで、「もっと読む」リンクで遷移した先で、「もっと読む」よりも前のコンテンツを非表示にします。おもな使い方は「もっと読む」よりも前に抜粋文などを記述、「もっと読む」よりも後にメインとなるコンテンツを記述するという使用方法です。
get_the_content()関数
get_the_content()
関数は、WordPressで現在の投稿や特定の投稿のコンテンツを取得する時に使用します。the_content()
関数と異なり、get_the_content()
関数はコンテンツを表示するのではなく、文字列として返します。
これにより、タイトルを変数に保存したり、他の関数と組み合わせたりすることができます。
基本的な使用方法
基本的な使用方法はシンプルで、以下のように記述します。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php echo get_the_content(); ?>
<?php endwhile; endif; ?>
このコードをsingle.phpやpage.phpなどテーマのテンプレートファイルのループ内で挿入することで、現在の投稿のコンテンツを取得し、それを表示します。
パラメータ指定
get_the_content()
関数は、3つのパラメータを指定することが出来ます。
- $more_link_text:「もっと読む」リンクのテキストを変更するために使用します。「もっと読む」タグが投稿内にある場合、表示されるリンクテキストとして使用されます。
- $strip_teaser:trueまたはfalseを指定。trueの場合、「もっと読む」以降のコンテンツを表示。falseの場合、コンテンツ全てを表示。デフォルト値はfalse。
- $post:投稿IDを指定することで特定の投稿のコンテンツを取得します。
「もっと読む」リンクのテキストを変更
「もっと読む」のリンクテキストを変更したい場合、以下のように記述します。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php echo get_the_content('read more'); ?>
<?php endwhile; endif; ?>
「もっと読む」のリンクテキストは「read more」というテキストで表示されます。
「もっと読む」タグより前のコンテンツを除外
「もっと読む」タグより前の部分を表示から除外する場合は、以下のように記述します。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php echo get_the_content('', true); ?>
<?php endwhile; endif; ?>
このようにすることで、「もっと読む」リンクで遷移した先で、「もっと読む」よりも前のコンテンツを非表示にします。おもな使い方は「もっと読む」よりも前に抜粋文などを記述、「もっと読む」よりも後にメインとなるコンテンツを記述するという使用方法です。
特定の投稿のコンテンツを取得
特定の投稿のコンテンツを取得する場合、以下のように記述します。
<?php echo get_the_content('', '', 1570); ?>
指定したIDの投稿のコンテンツを取得し、表示することが出来ます。投稿IDを指定する場合、必ずしもループ内で使用する必要はありません。
それぞれの関数の違いと使い分け
the_content()
関数とget_the_content()
関数はどちらもWordPressで投稿のコンテンツを取得するための関数ですが、主な違いは出力方法とパラメータの数です。
the_content()関数
- 出力方法:コンテンツを直接HTMLに出力します。変数に格納することは出来ません。
- パラメータ:2つ指定することが出来ます。「もっと読む」のリンクテキストを変更することが出来たり、「もっと読む」より前のコンテンツを表示するかどうかを切り替えることが出来ます。
get_the_content()関数
- 出力方法:コンテンツを文字列として取得します。コンテンツを変数に保存したり、他の関数と組み合わせたりするために使用されます。
- パラメータ:3つ指定することが出来ます。2つは
the_content()
関数と同じ使用用途です。3つ目の引数を指定することで、特定の投稿のコンテンツを取得することが出来ます。
使い分けのポイント
直接表示するか、操作が必要か
the_content()
関数は単純にコンテンツを表示するのに適しています。
一方、get_the_content()
関数はコンテンツをさらに操作したい場合(例:保存、条件分岐、組み合わせなど)に適しています。
特定の投稿のコンテンツを取得する
特定の投稿のコンテンツを取得するにはget_the_content()
関数を使用する必要があります。この機能はthe_content()
関数にはありません。この機能があるため個人的にはget_the_content()
関数の方をよく使います。
まとめ
今回は投稿のコンテンツを取得する関数をご紹介しました。
それぞれどんな特性があり、使用が適しているのはどんな場面なのか、それぞれの状況にあった関数を使用していきたいですね。