概要
cptui_disable_{$post_type['name']}_cptフィルタは、WordPressのCustom Post Type UIプラグインにおけるカスタム投稿タイプの機能を制御するためのフックです。このフィルタを使うことで、特定のカスタム投稿タイプを無効化したり、特定の条件に基づいて表示を制御したりすることが可能になります。以下のような機能を実装する際によく使われます。
- 特定のユーザー権限に基づいた投稿タイプの利用制限
- 特定の条件(例:特定のプラグインが有効な場合等)に応じた投稿タイプの無効化
- テーマやプラグインのカスタマイズに合わせた柔軟な表示設定
- 投稿タイプの表示設定を一元管理する場合
- サイトの一時的な設定変更
- 挙動の変更に対する条件付きのフックの適用
このフィルタの構文は次の通りです。
add_filter( 'cptui_disable_{post_type_name}_cpt', 'your_callback_function' );
パラメータ
{$post_type['name']}: 無効化対象のカスタム投稿タイプのスラッグ。boolean: フィルタの戻り値。trueなら無効化、falseなら有効。
戻り値
このフィルタは、カスタム投稿タイプを無効化するためのフラグ(boolean値)を返します。
バージョン
このフィルタは、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_filter( 'cptui_disable_my_custom_post_type_cpt', function( $disable ) {
if ( ! current_user_can( 'administrator' ) ) {
return true; // 管理者以外は無効化
}
return $disable;
});
このサンプルコードは、 користувачам, що не мають права адміністратора, отключено нестандартний тип запису “my_custom_post_type”. この機能は、特定のユーザー権限に基づいて投稿タイプを制御する際に便利です。
サンプルコード2
add_filter( 'cptui_disable_events_cpt', function( $disable ) {
if ( is_single() && get_post_type() === 'events' ) {
return true; // 特定のシングルページで無効化
}
return $disable;
});
このコードは、特定のシングルページを表示しているときに、カスタム投稿タイプ「events」を無効化します。特定の条件での表示設定を行う際に使用します。
サンプルコード3
add_filter( 'cptui_disable_portfolio_cpt', '__return_true' );
このサンプルは、カスタム投稿タイプ「portfolio」を常に無効化します。サイトの運用上、一時的にコントロールが必要な場合に便利です。
サンプルコード4
add_filter( 'cptui_disable_testimonials_cpt', function( $disable ) {
$special_condition = get_option( 'disable_testimonials' );
return $special_condition ? true : $disable; // 特定のオプションに基づいて無効化
});
このコードは、特定のオプションが設定されている場合に、カスタム投稿タイプ「testimonials」を無効化します。テーマやプラグインのカスタマイズに合わせた柔軟な設定が可能です。
サンプルコード5
add_filter( 'cptui_disable_articles_cpt', function( $disable ) {
if ( date('D') === 'Fri' ) {
return true; // 金曜日に「articles」を無効化
}
return $disable;
});
このサンプルコードは、金曜日にカスタム投稿タイプ「articles」を無効化します。条件付きでの投稿タイプの無効化が求められるケースに役立ちます。