ワードプレスのget_post_type_object関数の使用方法・解説

概要

get_post_type_object関数は、指定した投稿タイプの詳細な情報を取得するために使用されます。この関数は、カスタム投稿タイプや標準の投稿タイプ(例:投稿、ページ)の設定やプロパティを取得する際に便利です。具体的には、以下の機能実装の際によく使われます:

  1. 投稿タイプの柔軟な表示のためのカスタマイズ
  2. 特定の投稿タイプに基づくメタボックスの追加
  3. 投稿リストの表示形式をカスタマイズ
  4. 投稿タイプごとの権限チェック
  5. カスタムクエリの条件設定
  6. 投稿タイプの概要表示
  7. テンプレートの条件分岐
  8. ユーザーインターフェースのカスタマイズ

構文

get_post_type_object( string $post_type );

パラメータ

  • $post_type (string) : 取得したい投稿タイプのスラッグ。

戻り値

  • 取得した投稿タイプのオブジェクト。指定した投稿タイプが存在しない場合は、nullを返します。

関連する関数

使用可能なバージョン

  • WordPress 2.9.0 以降

コアファイルのパス

  • wp-includes/post.php

この関数のアクションでの使用可能性

アクション 使用可能
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

  1. 投稿タイプのオブジェクトを取得するサンプル

    $post_type_object = get_post_type_object('post');
    if ($post_type_object) {
       echo '投稿タイプのラベル: ' . $post_type_object->label;
    }
    

    説明: postというスラッグの投稿タイプオブジェクトを取得し、そのラベルを表示します。

  2. カスタム投稿タイプの情報を表示するサンプル

    $custom_post_type = 'portfolio';
    $post_type_object = get_post_type_object($custom_post_type);
    
    if ($post_type_object) {
       echo 'カスタム投稿タイプ: ' . $post_type_object->labels->singular_name;
    }
    

    説明: portfolioというカスタム投稿タイプのオブジェクトを取得し、その単数形のラベルを表示します。

  3. 投稿タイプに基づくカスタムメタボックスの追加サンプル

    add_action('add_meta_boxes', function() {
       $post_type_object = get_post_type_object('product');
       add_meta_box('product_details', $post_type_object->labels->singular_name . '詳細', 'render_product_details', 'product');
    });
    
    function render_product_details() {
       echo 'ここに詳細を入力します。';
    }
    

    説明: product投稿タイプに基づいたメタボックスを追加するサンプルです。

  4. 特定の投稿タイプの権限チェックサンプル

    if (current_user_can('edit_posts')) {
       $post_type_object = get_post_type_object('event');
       echo 'このユーザーは ' . $post_type_object->labels->name . ' を編集できます。';
    }
    

    説明: eventという投稿タイプのオブジェクトを取得し、その編集権限があるかをチェックします。

  5. カスタムクエリを作成するサンプル

    add_action('pre_get_posts', function($query) {
       if (is_post_type_archive('news')) {
           $query->set('posts_per_page', 5);
       }
    });
    

    説明: newsというカスタム投稿タイプのアーカイブページにおいて表示する投稿の数を制限するサンプルです。

これらのコードは、すべて著作権フリーのサンプルです。

この関数について質問する


上の計算式の答えを入力してください