概要
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形式で返します。