Wordpress ループ内で投稿情報を取得する

Wordpressのループ内にて、タイトルや本文、カテゴリーやカスタムフィールドの値など、投稿の情報を取得するタグなどのまとめです。the_titleやthe_contentの代わりにget_the_title()や$post->post_contentなどを利用することで、そのまま表示する前に独自の処理を加えたいときに便利かと思います。

WordPress ループ内で投稿情報を取得する

作成日
2014/03/12
更新日
2016年8月16日

WordPressのテーマ作成をしていると、ループでカスタムフィールドを利用したり、文字数制限や投稿別にクラス付けなどをつけたりしたときがあります。タイトルやコンテンツを表示する際は通常the_title()やthe_content()などを利用すると思いますが、表示方法を変えたいときはこれらの情報を取得する必要が出てきます。まとめてみました。

$postについて

ループ内ではthe_post()などによって$postに記事の情報が格納されます。そのため、$post->○○とすれば取得できますが、パーマリンクや時間など、表示形式を変更する必要があるものもあります。
投稿をget_posts()で取得しforeachでまわす場合は必ずしも$postではありません。
以下はまとめていますが、固定ページや投稿、取得方法によって異なる場合があります。

取得のまとめ

IDを取得

get_the_ID()
get_the_IDは現在のIDを取得します。投稿のIDを渡すと該当する投稿のタイトルを返します。
$post->ID
$postに格納された連想配列からIDを取り出します。
$id
現在の投稿IDのグローバル変数です。

タイトルを取得

get_the_title()
get_the_titleは現在のタイトルを取得します。投稿のIDを渡すと該当する投稿のタイトルを返します。
$post->post_title
$postに格納された連想配列からタイトルを取り出します。

スラッグを取得

$post->post_name

パーマリンクを取得

get_permalink()
get_permalinkは現在のパーマリンクを取得します。投稿のIDを渡すと該当する投稿のパーマリンクを返します。

時間を取得

get_the_time('Y.m.d')
get_the_timeは現在の時間を指定されたフォーマットで取得します。フォーマットの指定は日付文字列の書式で、省略するとWP設定画面のものになります。投稿のIDを渡すと該当する投稿のタイトルを返します。
get_post_time()
get_post_timeは投稿の日時を取得します。

本文を取得

$post->post_content
get_post_timeは投稿の日時を取得します。

メタ情報を取得する

get_post_meta($post->ID,'メタキー',true)
get_post_metaは、投稿IDのメタキーの値を取得します。

カテゴリーを取得する

get_the_category()
get_the_category()は投稿のカテゴリーを取得します。選択されたカテゴリー全てを取得するには、foreachなどで回す必要があります。

以下はループ内で単純にカテゴリーを取得してリスト化する例です。リンク部分についてはパーマリンク設定に合わせて行って下さい(1行目と7行目の「href」の部分)。リストを取得するget_category_listなどもありますが、スラッグによる分岐やクラスをつけたい時に便利かもしれません。

著者(投稿者)を取得する

get_the_author_meta()
the_author_meta()は投稿者情報を取得します。以下のように何を取得するか入れる必要があります。
get_the_author_meta('ID')ユーザID
get_the_author_meta('login')ログイン名
get_the_author_meta('nicename')ユーザのスラッグ
get_the_author_meta('email')メールアドレス
get_the_author_meta('url')ユーザサイトのURL
get_the_author_meta('registered')登録日時
get_the_author_meta('status')ステータス
get_the_author_meta('display_name')ユーザーの表示名
get_the_author_meta('user_description')プロフィール情報

  • […] 何か処理を加えたいときに取得する方法です。取得については「WordPress ループ内で投稿情報を取得する」でまとめてあります。 […]

  • Wordpressのループ | ShitTakaBull へ返信する コメントをキャンセル

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Category

Archive