概要
get_post_custom_keys
関数は、指定した投稿記事のカスタムフィールド名を取得するためのWordPressの関数です。この関数は、投稿に関連付けられたカスタムフィールドのキーを配列として取得し、開発者がカスタムフィールドを扱う際に非常に便利です。この関数は、以下のようなシナリオで利用されることが一般的です。
- 投稿に保存されたカスタムデータの一覧を表示する。
- フロントエンドでカスタムデータをフィルタリングする。
- カスタムメタボックスの作成や表示に使用する。
- 管理画面でのカスタムフィールドの管理機能を強化する。
- 特定の投稿タイプのカスタムフィールドを取得して、カスタマイズしたテンプレートに反映させる。
- APIレスポンスとしてカスタムフィールドを提供する。
- カスタム投稿タイプの情報を一覧表示する際に利用する。
- デバッグ目的でカスタムフィールドを確認する。
構文
array get_post_custom_keys( int $post_id );
パラメータ
post_id
(int): カスタムフィールドを取得したい投稿記事のID。
戻り値
array
: 指定した投稿記事のカスタムフィールドのキー名を含む配列。存在しない場合は空の配列を返します。
関連する関数
使用可能なバージョン
この関数は、WordPress 2.9以降で使用可能です。
コアファイルのパス
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 |
サンプルコード
以下に、get_post_custom_keys
関数を用いたサンプルコードを示します。
サンプルコード1: 投稿のカスタムフィールドのキーを取得する
$post_id = 1; // 投稿ID
$custom_keys = get_post_custom_keys($post_id);
print_r($custom_keys);
このサンプルコードは、投稿ID 1 のカスタムフィールドのキーを取得し、それを表示します。
サンプルコード2: 投稿が持つカスタムフィールドの数を表示する
$post_id = 2; // 投稿ID
$custom_keys = get_post_custom_keys($post_id);
echo 'この投稿のカスタムフィールドの数は: ' . count($custom_keys);
このサンプルコードは、投稿ID 2 に関連するカスタムフィールドの数を表示します。
サンプルコード3: 特定のカスタムフィールドが存在するか確認する
$post_id = 3; // 投稿ID
$custom_keys = get_post_custom_keys($post_id);
if (in_array('my_custom_field', $custom_keys)) {
echo 'my_custom_fieldが存在します。';
}
このサンプルでは、投稿ID 3 に特定のカスタムフィールドが存在するかどうかを確認します。
サンプルコード4: 全ての投稿のカスタムフィールドを取得してリスト表示する
$all_posts = get_posts();
foreach ($all_posts as $post) {
$custom_keys = get_post_custom_keys($post->ID);
echo '投稿ID ' . $post->ID . ' のカスタムフィールド: ' . implode(', ', $custom_keys) . '<br>';
}
このサンプルコードは、全ての投稿のカスタムフィールドを取得し、それをリスト表示します。
サンプルコード5: 投稿のカスタムフィールド名をJSON形式で取得する
$post_id = 4; // 投稿ID
$custom_keys = get_post_custom_keys($post_id);
header('Content-Type: application/json');
echo json_encode($custom_keys);
このサンプルでは、投稿ID 4 のカスタムフィールド名をJSON形式で返します。