ワードプレスのget_post_types_by_support関数の使用方法・解説

概要

get_post_types_by_support 関数は、特定のサポート機能(例:エク抜き、エディター、サムネイルなど)を持つ投稿タイプ名を取得するための関数です。この関数は、特定の機能を利用したい場合や、カスタム投稿タイプの管理を行う際に便利です。よく使われるシナリオには以下のようなものがあります。

  1. カスタム投稿タイプのフィーチャーを確認する
  2. 投稿タイプを条件にしたウィジェットを作成する
  3. 特定の投稿タイプに対して、カスタムフィールドを表示したい場合
  4. 投稿タイプの一覧から特定の条件を満たすものを抽出する
  5. プラグインの設定画面で投稿タイプを選択させる
  6. 特定のサポート機能を持つ投稿タイプのフィルタリング
  7. カスタム投稿のサポート機能に基づいて異なるUIを提供する
  8. APIエンドポイントを設計する際の条件指定

構文

get_post_types_by_support( $supports, $operator = 'or' );

パラメータ

  • $supports (string|array): 検索するサポート機能の名称。複数指定する場合は配列で渡すことができる。
  • $operator (string): すべてのサポート機能が必要な場合は 'and'、いずれかのサポート機能が必要な場合は 'or'。デフォルトは 'or'

戻り値

指定されたサポート機能を持つ投稿タイプのスラッグの配列。

関連する関数

使用可能なバージョン

get_post_types_by_support 関数は WordPress 2.9.0 以降で利用可能です。また、特定のバージョンで非推奨または削除された情報はありません。

コアファイルのパス

get_post_types_by_support 関数は、wp-includes/post.php に含まれています。

この関数のアクションでの使用可能性

アクション名 使用例
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: 特定のサポート機能を持つ投稿タイプの取得

$supported_post_types = get_post_types_by_support('thumbnail');
foreach ($supported_post_types as $post_type) {
    echo $post_type . '<br>';
}

このサンプルは「サムネイル」機能を持つ投稿タイプ名を取得して表示します。投稿にサムネイルを設定できる投稿タイプを一覧化する際に利用できます。

サンプルコード2: 複数のサポート機能に基づいた投稿タイプの取得

$supported_post_types = get_post_types_by_support(array('editor', 'thumbnail'));
foreach ($supported_post_types as $post_type) {
    echo $post_type . '<br>';
}

このコードは「エディター」および「サムネイル」の機能を持つ投稿タイプを取得し、表示します。複数機能でフィルタリングしたい場合に便利です。

サンプルコード3: サポート機能の条件で投稿タイプを処理

if (in_array('page', get_post_types_by_support('excerpt'))) {
    echo 'ページ投稿タイプは抜粋をサポートしています。';
}

このコードは「抜粋」機能を持つ投稿タイプが「ページ」に含まれているかを確認し、その結果を出力します。

サンプルコード4: サポート機能に応じたカスタムウィジェットの作成

$supported_post_types = get_post_types_by_support('custom-fields');
foreach ($supported_post_types as $post_type) {
    register_widget('My_Custom_Widget_'.$post_type);
}

このサンプルでは、カスタムフィールドをサポートしている投稿タイプごとにカスタムウィジェットを登録します。

サンプルコード5: APIエンドポイントでの使用

add_action('rest_api_init', function () {
    $post_types = get_post_types_by_support('thumbnail', 'or');
    register_rest_route('myplugin/v1', '/post-types', array(
        'methods' => 'GET',
        'callback' => function () use ($post_types) {
            return $post_types;
        },
    ));
});

このコードは、REST APIのエンドポイントを通じてサムネイルをサポートする投稿タイプ名を提供します。APIを利用したアプリケーション開発に役立ちます。

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


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