WordPressのループ外でカスタム投稿タイプ名を表示する方法のメモです。
わざわざループ外でと書いていますが、別にループ内でも使えます。
カスタム投稿タイプ名を表示するのはアーカイブページのタイトルなど(=ループ外)の場合が多いかと思うので、一応そういう意味です。
自分で考えたみたいに書いちゃってますが、参考ページのソースを使わせて頂きました。
WordPressのループ外でカスタム投稿タイプ名を出力する
- PHP
<?php $q = $wp_query->query_vars; $postTypeNameObj = $q["post_type"]; $postTypeName = get_post_type_object($postTypeNameObj)->labels->name; echo $postTypeName ?>
カスタム投稿タイプの概要文を出力する
カスタム投稿タイプ名だけでなく、カスタム投稿タイプを有効化したときにfunctions.phpで設定した概要文(description)を出力することもできます。
- PHP
<?php $q = $wp_query->query_vars; $postTypeNameObj = $q["post_type"]; $postTypeName = get_post_type_object($postTypeNameObj)->description; echo $postTypeName ?>
カスタム投稿タイプを有効化する
ついでですが、カスタム投稿タイプを有効化するソースも書いておきます。
WordPressテーマのfunctions.phpに下記のように記述してください。
この例では「お客様の声」というカスタム投稿タイプ(スラッグはvoice)を有効化しています。
- functions.php
/* カスタム投稿タイプ(お客様の声) ---------------------------------------------------------- */ 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); }