I'll be NET 】創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)

トップページ > Wordpress > Wordpressで投稿タイプを取得・表示する方法

Wordpressで投稿タイプを取得・表示する方法

Wordpressのテンプレートで投稿タイプの情報を取得するには、get_post_type()関数を利用すると便利です。

投稿を指定して投稿タイプを取得する

$post_type = get_post_type( $post );

上記のようにすると、$post の記事の投稿タイプを取得できます。
$post には、投稿オブジェクトまたは投稿のIDを利用します。
未入力であった場合は現在の投稿が対象となりますので、シングルページなどで現在の投稿の投稿タイプを取得できます。

戻り値は、投稿タイプのスラッグになります。

参考リンク:関数リファレンス/get post type

アーカイブページで投稿タイプを取得する

アーカイブページで投稿タイプを取得するには、get_post_type() ではなく get_query_var() を利用します。

$post_type = get_query_var('post_type');

戻り値は、投稿タイプのスラッグになります。

参考リンク:WordPress:現在の投稿タイプをget_post_type()で取得できない場合の代替案

タクソノミーアーカイブページで投稿タイプを取得する

タクソノミーアーカイブページで投稿タイプを取得するには、get_taxonomy()get_query_var() を利用します。

$taxonomy = get_query_var('taxonomy');
$post_type = get_taxonomy($taxonomy)->object_type[0];

get_query_var() で取得したタクソノミーを get_taxonomy() に渡すとタクソノミーのオブジェクトを取得できます。
戻り値は、投稿タイプのスラッグになります。

参考リンク:WordPress:現在の投稿タイプをget_post_type()で取得できない場合の代替案

投稿タイプのスラッグから投稿タイプの名前・ディスクリプションなどを取得する

投稿タイプのスラッグから投稿タイプの名前・ディスクリプションなどを取得するには、get_post_type_object() を使用します。

$obj = get_post_type_object($post_type);

上記のようにすると、投稿タイプのオブジェクトを取得できます。
$post には、投稿タイプのスラッグを利用します。

戻り値は投稿タイプのオブジェクトです。
便利に使用できそうな値としては、

echo $obj->labels->name;         //投稿タイプ名
echo $obj->labels->singular_name;//投稿タイプ名(単数形)
echo $obj->name;                 //投稿タイプのスラッグ
echo $obj->description;          //投稿タイプのディスクリプション
echo $obj->rewrite['slug'];        //投稿タイプのパーマリンク

などがあります。

参考リンク:関数リファレンス/get post type object

記事移動

関連記事

Wordpressでショートコードを利用してphpファイルをincludeする方法

Wordpressのカスタム投稿タイプにリビジョンを追加する方法

MW WP Form で選択された内容によって必須項目(バリデーションルール)を切り替える方法

MW WP Form で入力された内容によって自動返信メールや管理者宛メールの内容を変更する方法

Wordpressで全ての親ページの情報を取得する方法

Wordpressで記事のスラッグから記事IDを取得する方法

Comment Form

  • コメントを入力してください。
登録フォーム
Name
Mailaddress
URL
Message
Postkey
(スパム対策に、投稿キー を半角で入力してください。)

ユーティリティ

創作サイトから中小企業まで東京都三鷹市で低価格高品質なホームページ制作(SOHO)【I'll be NET】

プロフィール

author:I'll be NET

since:2014.01.01

東京都を拠点としたSOHO(フリーランス)による創作サイト向けWEB制作サービスを行っています。 お仕事とか創作活動とかでメモっておきたいこととかを掲載しています。

more

Feed