プラグインCustom Post Type UIのcptui_pre_register_post_typeアクションの使用方法・解説

概要

cptui_pre_register_post_typeはWordPressのCustom Post Type UIプラグインにおいて、カスタム投稿タイプの登録処理が行われる前にフックされるアクションです。このアクションは、カスタム投稿タイプの属性や設定を変更するために使用されることが一般的です。具体的には、以下のような機能を実装する際に利用されます。

  1. カスタム投稿タイプのスラッグの変更
  2. 権限設定のカスタマイズ
  3. 特定の条件に基づいたカスタムフィールドの追加
  4. 投稿タイプのラベルの多言語対応
  5. カスタム投稿タイプサポートの追加(例:サムネイル、エディタ)
  6. サイトの要件に応じたカスタムタクソノミーの定義

構文

add_action( 'cptui_pre_register_post_type', 'your_custom_function', 10, 1 );

パラメータ

  • post_type: 登録しようとしているカスタム投稿タイプの情報を含む配列

戻り値

このアクション自体には戻り値はなく、フックを使って引数として渡されたデータを変更することが目的です。

バージョン

  • Custom Post Type UI: 1.0以上
  • WordPress: 4.0以上

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

アクション名 使用例
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

add_action( 'cptui_pre_register_post_type', 'modify_post_type_slug' );
function modify_post_type_slug( $post_type ) {
    if ( $post_type['label'] == 'Movies' ) {
        $post_type['rewrite'] = array( 'slug' => 'films' );
    }
    return $post_type;
}

説明: このサンプルは、「Movies」というカスタム投稿タイプのスラッグを「films」に変更します。

サンプルコード2

add_action( 'cptui_pre_register_post_type', 'add_custom_capabilities' );
function add_custom_capabilities( $post_type ) {
    if ( $post_type['label'] == 'Books' ) {
        $post_type['capability_type'] = 'book';
        $post_type['capabilities'] = array(
            'edit_post' => 'edit_book',
            'read_post' => 'read_book',
            'delete_post' => 'delete_book'
        );
    }
    return $post_type;
}

説明: このサンプルでは、「Books」というカスタム投稿タイプに対して特定の権限を追加します。

サンプルコード3

add_action( 'cptui_pre_register_post_type', 'add_support_for_thumbnails' );
function add_support_for_thumbnails( $post_type ) {
    if ( $post_type['label'] == 'Portfolio' ) {
        $post_type['supports'][] = 'thumbnail';
    }
    return $post_type;
}

説明: このサンプルは、「Portfolio」というカスタム投稿タイプにサムネイルのサポートを追加します。

サンプルコード4

add_action( 'cptui_pre_register_post_type', 'modify_labels_for_reviews' );
function modify_labels_for_reviews( $post_type ) {
    if ( $post_type['label'] == 'Reviews' ) {
        $post_type['labels']['singular_name'] = 'Review';
    }
    return $post_type;
}

説明: このサンプルでは、「Reviews」というカスタム投稿タイプの単数名ラベルを「Review」に変更します。

サンプルコード5

add_action( 'cptui_pre_register_post_type', 'register_custom_taxonomy' );
function register_custom_taxonomy( $post_type ) {
    if ( $post_type['label'] == 'Events' ) {
        $post_type['taxonomies'] = array( 'category', 'post_tag', 'event_type' );
    }
    return $post_type;
}

説明: このサンプルは、「Events」というカスタム投稿タイプにカスタムタクソノミー「event_type」を追加します。

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


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