概要
elementor/settings/controls/checkbox_list_cpt/post_type_objects フィルタは、WordPressのElementorプラグインにおいて、チェックボックスリスト形式でカスタム投稿タイプのオブジェクトを表示するためのフィルタです。このフィルタを使用することで、カスタム投稿タイプのオブジェクトを制御し、特定の条件に基づいて表示することができます。主に以下のような機能を実装する際に役立ちます。
- 特定のカスタム投稿タイプを選択可能にする。
- 投稿タイプの表示条件をカスタマイズする。
- モジュールのオプションを動的に変更する。
- カスタムフィールドの設定を調整する。
- 設定パネルのユーザビリティ向上。
- 投稿タイプに基づくフィルタリングロジックの実装。
構文
add_filter( 'elementor/settings/controls/checkbox_list_cpt/post_type_objects', 'my_function' );
パラメータ
$post_type_objects: 投稿タイプのオブジェクトの配列。
戻り値
- 修正された投稿タイプのオブジェクトの配列。
使用可能なプラグインとバージョン
- Elementorバージョン: 3.0.0 以降
- WordPressバージョン: 5.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( 'elementor/settings/controls/checkbox_list_cpt/post_type_objects', function( $post_types ) {
$post_types[] = 'custom_post_type';
return $post_types;
});
このコードは、Elementorの設定にカスタム投稿タイプ「custom_post_type」を追加します。
サンプルコード2
add_filter( 'elementor/settings/controls/checkbox_list_cpt/post_type_objects', function( $post_types ) {
return array_filter( $post_types, function( $type ) {
return $type !== 'page'; // 'page' 投稿タイプを除外
});
});
このコードは、利用可能な投稿タイプから「page」投稿タイプを除外します。
サンプルコード3
add_filter( 'elementor/settings/controls/checkbox_list_cpt/post_type_objects', function( $post_types ) {
return array_merge( $post_types, ['new_custom_type1', 'new_custom_type2']); // 新しいカスタム投稿タイプを追加
});
このコードは、既存の投稿タイプに新しいカスタム投稿タイプ「new_custom_type1」と「new_custom_type2」を追加します。
サンプルコード4
add_filter( 'elementor/settings/controls/checkbox_list_cpt/post_type_objects', function( $post_types ) {
if( !current_user_can( 'administrator' ) ) {
return []; // 管理者以外には投稿タイプを表示しない
}
return $post_types;
});
このコードは、ユーザーが管理者でない場合、全てのカスタム投稿タイプを非表示にします。
サンプルコード5
add_filter( 'elementor/settings/controls/checkbox_list_cpt/post_type_objects', function( $post_types ) {
if( isset( $_GET['show_custom_post'] ) ) {
$post_types['custom_post'] = 'Custom Post'; // クエリパラメータによって特定の投稿タイプを表示
}
return $post_types;
});
このコードは、クエリパラメータ show_custom_post が設定されている場合のみ「custom_post」投稿タイプを表示します。
これらのコード例は、実際のアプリケーションに応じてフィルタを活用する方法を示しています。