概要
cptui_pre_register_post_type
はWordPressのCustom Post Type UIプラグインにおいて、カスタム投稿タイプの登録処理が行われる前にフックされるアクションです。このアクションは、カスタム投稿タイプの属性や設定を変更するために使用されることが一般的です。具体的には、以下のような機能を実装する際に利用されます。
- カスタム投稿タイプのスラッグの変更
- 権限設定のカスタマイズ
- 特定の条件に基づいたカスタムフィールドの追加
- 投稿タイプのラベルの多言語対応
- カスタム投稿タイプサポートの追加(例:サムネイル、エディタ)
- サイトの要件に応じたカスタムタクソノミーの定義
構文
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」を追加します。