概要
cptui_post_types_override
は、WordPressのプラグインであるCustom Post Type UIにおいて、カスタム投稿タイプの設定を変更するためのフィルターフックです。このフィルタは、既定のカスタム投稿タイプの設定を上書きする際に使用されます。具体的には、開発者がカスタム投稿タイプのメタ情報(ラベルや機能など)を自由に変更したり、追加のフィールドや設定を加えたりすることが可能になります。
主な用途は以下の通りです:
1. カスタム投稿タイプのラベルの変更
2. カスタム投稿タイプのオプションを動的に変更
3. 他のプラグインとの互換性のためのカスタマイズ
4. 特定の条件に基づいてカスタム投稿タイプの機能を制御
5. インターフェイス上での表示変更
6. デフォルトの動作を変更して特定のニーズに合わせる
構文
add_filter('cptui_post_types_override', 'your_custom_function');
パラメータ
– $post_types
: 既存のカスタム投稿タイプの配列。
戻り値
– 配列:変更されたカスタム投稿タイプの設定。
使用可能なプラグインバージョン
– Custom Post Type UI バージョン: 1.0以上
使用可能なWordPressのバージョン
– 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: 投稿タイプのラベルを変更
このサンプルコードは、カスタム投稿タイプ「book」のラベルを「本」に変更します。
add_filter('cptui_post_types_override', function($post_types) {
if (isset($post_types['book'])) {
$post_types['book']->label = '本';
}
return $post_types;
});
引用元: https://github.com/WebDevStudios/CPT-UI
サンプル2: カスタム投稿タイプのスラッグを変更
この例では、カスタム投稿タイプ「movie」のスラッグを「films」に変更します。
add_filter('cptui_post_types_override', function($post_types) {
if (isset($post_types['movie'])) {
$post_types['movie']->rewrite['slug'] = 'films';
}
return $post_types;
});
引用元: https://wordpress.org/plugins/custom-post-type-ui/
サンプル3: 投稿タイプにカスタムフィールドを追加
このコードは、「event」というカスタム投稿タイプにカスタムフィールドを追加します。
add_filter('cptui_post_types_override', function($post_types) {
if (isset($post_types['event'])) {
$post_types['event']->supports[] = 'custom-fields';
}
return $post_types;
});
引用元: https://wpengine.com
サンプル4: カスタム投稿タイプにエディタのサポートを追加
このサンプルは、「recipe」というカスタム投稿タイプにエディタの機能を追加します。
add_filter('cptui_post_types_override', function($post_types) {
if (isset($post_types['recipe'])) {
$post_types['recipe']->supports[] = 'editor';
}
return $post_types;
});
引用元: https://www.wpbeginner.com
サンプル5: カスタム投稿タイプの公開状態を変更
この例では、「portfolio」カスタム投稿タイプの公開状態を「非公開」に設定します。
add_filter('cptui_post_types_override', function($post_types) {
if (isset($post_types['portfolio'])) {
$post_types['portfolio']->public = false;
}
return $post_types;
});
引用元: https://themeisle.com