概要
cptui_disable_tax
フィルタは、WordPressのプラグイン「Custom Post Type UI」でカスタム投稿タイプに関連するタクソノミーの機能を無効にするために使用されます。このフィルタは、開発者が生じる可能性のあるタクソノミーの混乱を回避するため、特定のカスタム投稿タイプに対してタクソノミーの追加を制限する際によく使われます。特によく使われるケースには、以下のようなものがあります。
- タクソノミーの冗長性を避けること。
- カスタム投稿タイプに関連付けるタクソノミーを選択的に制限すること。
- 不要なタクソノミーの表示を防ぐこと。
- フロントエンドでのナビゲーションの簡素化。
- カスタムポストタイプの管理画面を整理する。
- 特定のユーザー権限に基づいてタクソノミーを条件付きで変更する。
このフィルタは、Custom Post Type UIのバージョン 1.6 以上およびWordPressのバージョン5.0以降で利用可能です。
構文
add_filter( 'cptui_disable_tax', 'my_custom_tax_disable', 10, 2 );
パラメータ
$disable
(bool): デフォルト値はfalse
。タクソノミーを無効にするかどうかを示す。$post_type
(string): タクソノミーの作成対象のカスタム投稿タイプ。
戻り値
- bool:
true
の場合、タクソノミーが無効化されます。
この関数のアクションでの使用可能性
アクション名 | 使用例 |
---|---|
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_disable_tax', function( $disable, $post_type ) {
if ( 'book' === $post_type ) {
return true;
}
return $disable;
});
引用元: https://codex.wordpress.org/Function_Reference/add_filter
サンプルコード2: タクソノミーの特定条件で無効化
このコードは、ユーザーのロールが「editor」の場合にタクソノミーを無効化します。
add_filter( 'cptui_disable_tax', function( $disable, $post_type ) {
if ( current_user_can('editor') ) {
return true;
}
return $disable;
});
引用元: https://developer.wordpress.org/reference/functions/current_user_can/
サンプルコード3: 特定のタクソノミーの無効化
このコードは、「event」というカスタム投稿タイプに対して、特定のタクソノミー「category」の機能を無効にします。
add_filter( 'cptui_disable_tax', function( $disable, $post_type ) {
if ( 'event' === $post_type ) {
return 'category' === $tax ? true : $disable;
}
return $disable;
});
引用元: https://developer.wordpress.org/reference/hooks/add_filter/
サンプルコード4: すべてのカスタム投稿タイプで無効化
このコードは、すべてのカスタム投稿タイプに対してタクソノミーを無効にします。
add_filter( 'cptui_disable_tax', function( $disable, $post_type ) {
return true; // すべて無効
});
引用元: https://developer.wordpress.org/reference/functions/add_filter/
サンプルコード5: カスタム条件で無効化
このコードは、特定の条件が満たされた場合のみタクソノミーを無効化します。
add_filter( 'cptui_disable_tax', function( $disable, $post_type ) {
if ( is_single() && $post_type === 'portfolio' ) {
return true; // ポートフォリオの単一表示時に無効化
}
return $disable;
});
引用元: https://developer.wordpress.org/reference/functions/is_single/