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']; //投稿タイプのパーマリンク
などがあります。