WordPressのループ外でカスタム投稿タイプ名を出力する方法

2017.11.30 WordPress
WordPressのループ外でカスタム投稿タイプ名を出力する方法

WordPressのループ外でカスタム投稿タイプ名を表示する方法のメモです。

わざわざループ外でと書いていますが、別にループ内でも使えます。カスタム投稿タイプ名を表示するのはアーカイブページのタイトルなど(=ループ外)の場合が多いかと思うので、一応そういう意味です。

自分で考えたみたいに書いちゃってますが、参考ページのソースを使わせて頂きました。

カスタム投稿タイプ名を出力する

<?php
$q = $wp_query->query_vars;
$postTypeNameObj = $q["post_type"];
$postTypeName = get_post_type_object($postTypeNameObj)->labels->name;
echo $postTypeName
?>

カスタム投稿タイプの概要文を出力する

カスタム投稿タイプ名だけでなく、カスタム投稿タイプを有効化したときにfunctions.phpで設定した概要文(description)を出力することもできます。

<?php
$q = $wp_query->query_vars;
$postTypeNameObj = $q["post_type"];
$postTypeName = get_post_type_object($postTypeNameObj)->description;
echo $postTypeName
?>

カスタム投稿タイプを有効化する

ついでですが、カスタム投稿タイプを有効化するソースも書いておきます。WordPressテーマのfunctions.phpに下記のように記述してください。この例では「お客様の声」というカスタム投稿タイプ(スラッグはvoice)を有効化しています。

/* カスタム投稿タイプ(お客様の声)
---------------------------------------------------------- */
add_action('init', 'custom_post_voice');
function custom_post_voice() {
$labels = array(
'name'               => _x('お客様の声', 'post type general name'),
'singular_name'      => _x('お客様の声', 'post type singular name'),
'add_new'            => _x('新規追加', 'voice'),
'add_new_item'       => __('お客様の声を書く'),
'edit_item'          => __('お客様の声を編集'),
'new_item'           => __('新しいお客様の声'),
'view_item'          => __('お客様の声を見る'),
'search_items'       => __('お客様の声を検索'),
'not_found'          =>  __('記事が見つかりません'),
'not_found_in_trash' => __('ゴミ箱に記事はありません'),
'parent_item_colon'  => ''
);
$args = array(
'labels'              => $labels,
'public'              => true,
'publicly_queryable'  => true,
'show_ui'             => true,
'query_var'           => true,
'rewrite'             => true,
'capability_type'     => 'post',
'hierarchical'        => false,
'menu_position'       => 6,
'supports'            => array('title','editor','thumbnail','revisions'),
'has_archive'         => true,
'exclude_from_search' => false
);
register_post_type('voice',$args);
}

参考ページ:get_post_type_object()でカスタム投稿のタイトルを出す!

柴田竹思

柴田竹思

ベトナム在住Web系フリーランス。有名企業から個人事業まで、いろんなウェブサイトを制作してます。これまで400弱くらい作りました。一年中WordPressばっかりいじってます。

プロフィールはこちら