プラグインElementorのelementor/settings/controls/checkbox_list_cpt/post_type_objectsフィルタの使用方法・解説

概要

elementor/settings/controls/checkbox_list_cpt/post_type_objects フィルタは、WordPressのElementorプラグインにおいて、チェックボックスリスト形式でカスタム投稿タイプのオブジェクトを表示するためのフィルタです。このフィルタを使用することで、カスタム投稿タイプのオブジェクトを制御し、特定の条件に基づいて表示することができます。主に以下のような機能を実装する際に役立ちます。

  1. 特定のカスタム投稿タイプを選択可能にする。
  2. 投稿タイプの表示条件をカスタマイズする。
  3. モジュールのオプションを動的に変更する。
  4. カスタムフィールドの設定を調整する。
  5. 設定パネルのユーザビリティ向上。
  6. 投稿タイプに基づくフィルタリングロジックの実装。

構文

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」投稿タイプを表示します。

これらのコード例は、実際のアプリケーションに応じてフィルタを活用する方法を示しています。

この関数について質問する


上の計算式の答えを入力してください