当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

関数リファレンス/get post type object

提供: WordPress Codex 日本語版
< 関数リファレンス
2014年8月12日 (火) 09:14時点におけるGblsm (トーク | 投稿記録)による版 (en:Function_Reference/get_post_type_object 14:24, 30 November 2013 Mistercat 版を新たに和訳。)

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

登録済み投稿タイプを表すオブジェクトを取得します。 初めから組み込まれている 'post'(投稿)、'page'(固定ページ)等や、カスタム投稿タイプも対象です。

使い方

<?php get_post_type_object( $post_type ); ?>

パラメータ

$post_type
文字列) (必須) 投稿タイプを登録したときに使った、投稿タイプの名前。
初期値: なし
参考:register_post_type()$post_type パラメータで指定した値です。

戻り値

(オブジェクト) 
成功したときのみ。

失敗すると何も返しません(null かどうかでチェックできます)。

用例

$obj = get_post_type_object( 'post' );
echo $obj->labels->singular_name;

技術的には、上記コードは下記と同じです:

global $wp_post_types;
$obj = $wp_post_types['post'];
echo $obj->labels->singular_name; 

print_r( $obj ) を実行すると例えば次のような値が返されます:

stdClass Object
(
   [labels] => stdClass Object
       (
           [name] => Posts
           [singular_name] => Post
           [add_new] => Add New
           [add_new_item] => Add New Post
           [edit_item] => Edit Post
           [new_item] => New Post
           [view_item] => View Post
           [search_items] => Search Posts
           [not_found] => No posts found
           [not_found_in_trash] => No posts found in Trash
           [parent_item_colon] => 
       )

   [description] => 
   [publicly_queryable] => 1
   [exclude_from_search] => 
   [_builtin] => 1
   [_edit_link] => post.php?post=%d
   [capability_type] => post
   [hierarchical] => 
   [public] => 1
   [rewrite] => 
   [query_var] => 
   [register_meta_box_cb] => 
   [taxonomies] => Array
       (
       )

   [show_ui] => 1
   [menu_position] => 
   [menu_icon] => 
   [permalink_epmask] => 1
   [can_export] => 1
   [show_in_nav_menus] => 1
   [name] => post
   [cap] => stdClass Object
       (
           [edit_post] => edit_post
           [edit_posts] => edit_posts
           [edit_others_posts] => edit_others_posts
           [publish_posts] => publish_posts
           [read_post] => read_post
           [read_private_posts] => read_private_posts
           [delete_post] => delete_post
       )

   [label] => Posts
)

注意:オブジェクトの属性の名前が register_post_type() の引数の名前と少し違っています。

アーカイブページでカスタム投稿タイプのスラッグを取得

<?php
if ( is_post_type_archive() ) {
  $post_type = get_query_var( 'post_type' );
  if ( is_array( $post_type ) )
    $post_type = reset( $post_type );
  $post_type_obj = get_post_type_object( $post_type );
  echo "カスタム投稿タイプ $post_type_obj->labels->name のスラッグは $post_type_obj->name です。";
}
?>

更新履歴

  • 3.0 から導入されました。

ソースファイル

get_post_type_object()wp-includes/post.php にあります。


投稿タイプ: register_post_type(), add_post_type_support(), remove_post_type_support(), post_type_supports(), post_type_exists(), set_post_type(), get_post_type(), get_post_types(), get_post_type_object(), get_post_type_capabilities(), get_post_type_labels(), is_post_type_hierarchical(), is_post_type_archive(), post_type_archive_title()


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function_Reference/get_post_type_object最新版との差分