
こんにちは、yutaです。
WordPressでオリジナルテーマを制作する際にWordPress関数を使用することが多々ありますが、名前が似ていて違いが良くわからないものも多いです。
今回は、そんな名前が似ている「post_excerpt」と「the_excerpt()」の違いについてのメモを残しておきます。
1.post_excerptとthe_excerpt()の基本情報
2.post_excerptとthe_excerpt()の使い方
3.「theなんとか」関数一覧
1.post_excerptとthe_excerpt()の基本情報
post_excerptとthe_excerpt()の基本情報について。
post_excerpt
get_post()で取得した投稿データに含まれる記事の抜粋情報を格納しているフィールド。
投稿記事作成/編集画面の抜粋文入力欄に記載されている文章を格納しているので、ここに何も記載されていない場合は、何も表示されません。
the_excerpt()
the_post()などでセットされた現在の投稿の抜粋を表示する関数。取得した文字列の前後に<p>タグを追加します。
投稿記事作成/編集画面の抜粋文入力欄に何か入力してあればそれを表示して、何も入力されていなければ投稿内容の最初の55個の単語までを表示します。
抜粋文が55単語を超える場合には末尾に”[…]”テキストが自動的に付加されます。
the_excerpt()はループ内でのみ使えます。また、”[…]”は続きを読むリンクではなくただのテキストです。
2.post_excerptとthe_excerpt()の使い方
post_excerptとthe_excerpt()の使い方について。
post_excerpt
get_post()で取得した投稿データに含まれるフィールドなので、まず以下のようにして指定した投稿IDの投稿データを取得します。
<?php
$id = 777; //投稿IDが777の投稿データを取得したい場合
$post = get_post($id) //$postに投稿データを取得
今回は直接投稿IDを数字で指定しましたが、投稿IDの取得方法は以下のようにいろいろあるようです。
【投稿IDの取得方法】
(1)現在の投稿のIDを取得します。ループの中でのみ使用可能。
<?php
get_the_ID();
(2)記事のURLから投稿IDを取得します。
<?php
$url = “投稿IDを知りたい記事のURL”;
echo url_to_postid($url);
あとは、$post->post-_excerptとすれば抜粋データが取得できます。これを<p>タグなどで囲んで出力することでWordPress上で実際に抜粋文を表示できます。
全文を書き出すと以下の通りです。
<?php
$id = 777; //投稿IDが777の投稿データを取得したい場合
$post = get_post($id) //$postに投稿データを取得
$excerpt = $post->post_excerpt;
echo “<p>”.$excerpt.”</p>”;
the_excerpt()
現在の投稿の抜粋を表示する関数で、必ずループ内で使用されるのでまず以下のように投稿があるかどうかをチェックして、ある場合にはその投稿を取得するループを書きます。
<?php
if(have_posts()): //投稿があるかどうかを確認してあればwhile文以降を実行。無ければ何も実行しない。
while(have_posts()): //投稿があるかを確認してあればthe_post()を実行。無ければループから抜ける。
the_post(); //投稿を取得して、それを現在の投稿としてセットアップする。
endwhile;
endif;
the_post()でセットアップされた投稿データの情報は、「theなんとか」という名前の関数を使って取り出すことができます。今回のthe_excerpt()がまさにそれで、現在の投稿データの抜粋情報を表示する関数になります。具体的には以下のように書けばOKです。
<?php
if(have_posts()): //投稿があるかどうかを確認してあればwhile文以降を実行。無ければ何も実行しない。
while(have_posts()): //投稿があるかを確認してあればthe_post()を実行。無ければループから抜ける。
the_post(); //投稿を取得して、それを現在の投稿としてセットアップする。
echo the_excerpt(); //自動で<p>タグが付加されるのでechoするだけでOKです。
endwhile;
endif;

3.「theなんとか」関数一覧
ついでに「theなんとか」という名前の関数一覧を以下に書き出しておきます。詳細はリンク先で確認してください。
the_post():投稿を取得して、それを現在の投稿としてセットアップします。ループを次の投稿へ進めます。
http://wpdocs.osdn.jp/関数リファレンス/the_post
the_content():現在の投稿の本文を出力します。
http://wpdocs.osdn.jp/テンプレートタグ/the_content
the_title():現在の投稿のタイトルを出力もしくは返します。
http://wpdocs.osdn.jp/テンプレートタグ/the_title
the_ID():現在の投稿のIDを表示します。
http://wpdocs.osdn.jp/テンプレートタグ/the_ID
the_permalink():投稿のパーマリンクのURLを表示します。
http://wpdocs.osdn.jp/テンプレートタグ/the_permalink
the_excerpt():現在の投稿の抜粋を<p>タグを付けて表示します。
http://wpdocs.osdn.jp/テンプレートタグ/the_excerpt
the_author():現在の投稿の作者を表示します。
http://wpdocs.osdn.jp/関数リファレンス/the_author
the_date():記事の投稿/更新日を出力します。
http://wpdocs.osdn.jp/テンプレートタグ/the_date
the_time():現在の投稿の公開時刻を表示します。
http://wpdocs.osdn.jp/テンプレートタグ/the_time
the_modified_time():記事が最後に更新された時刻(と日付)を表示します。
http://wpdocs.osdn.jp/テンプレートタグ/the_modified_time
the_category():現在の記事が属するカテゴリーへのリンクを表示します。
http://wpdocs.osdn.jp/テンプレートタグ/the_category
the_tags():現在の記事に付けられたタグを表示します。各タグは、そのタグのアーカイブページへリンクします。
http://wpdocs.osdn.jp/テンプレートタグ/the_tags
the_terms():ある投稿に付けられたタームを文字列として表示します。
http://wpdocs.osdn.jp/関数リファレンス/the_terms
the_title_attribute():現在の(または指定した)投稿のタイトルを表示、もしくはその値を返します。the_title()と機能の一部が被っています。
http://wpdocs.osdn.jp/テンプレートタグ/the_title_attribute
the_title_rss():RSS、ATOM、RDFなどのフィード用にフォーマットされた形式で投稿のタイトルを出力します。
http://wpdocs.osdn.jp/テンプレートタグ/the_title_rss
the_category_rss():RSS、ATOM、RDFなどのフィード用にフォーマットされた形式で、投稿が所属するカテゴリー名を出力します。
http://wpdocs.osdn.jp/テンプレートタグ/the_category_rss
the_excerpt_rss():RSS、ATOM、RDFなどのフィード用にフォーマットされた形式で記事の概要を出力します。概要が特に指定されていない場合は、本文の最初から120字(半角)を表示します。
http://wpdocs.osdn.jp/テンプレートタグ/the_excerpt_rss
the_content_feed():フィードの記事のコンテツを表示します。
http://wpdocs.osdn.jp/関数リファレンス/the_content_feed
ブログランキングに参加していますので、僕のモチベアップの為にもバナーを押していただけると嬉しいです!(※別タブで開きます)