WP-Membersで登録したカスタムフィールドをショートコードで表示

カスタムショートコードを作成

functions.phpにコードを追加

PHP
/**
 * WP-Membersで登録したカスタムフィールドをショートコードで表示
 * 単一または複数のメタキーに対応
 */
function wpmem_display_user_meta($atts)
{
    // ショートコードの属性を取得
    $atts = shortcode_atts(array(
        'meta_key' => '', // カンマ区切りで指定するメタキー
        'user_id'  => 0,  // 指定するユーザーID(省略時は現在のログインユーザー)
    ), $atts);

    // 現在のログインユーザーIDを取得
    if (!$atts['user_id']) {
        $atts['user_id'] = get_current_user_id();
    }

    // ログインしていない場合やユーザーIDが無効な場合
    if (!$atts['user_id']) {
        return 'ログインしていません。';
    }

    // メタキーをカンマ区切りで分割(複数対応)
    $meta_keys = array_filter(array_map('trim', explode(',', $atts['meta_key'])));

    // メタキーが指定されていない場合のエラーメッセージ
    if (empty($meta_keys)) {
        return 'メタキーが指定されていません。';
    }

    // 表示用HTML
    $output = '<ul class="wpmem-custom-fields">';

    foreach ($meta_keys as $key) {
        $meta_value = get_user_meta($atts['user_id'], $key, true);

        // メタデータが存在しない場合の処理
        $output .= '<li><strong>' . esc_html($key) . ':</strong> ' . esc_html($meta_value ?: 'データが存在しません') . '</li>';
    }

    $output .= '</ul>';

    // 結果を返す
    return $output;
}

// ショートコードを登録
add_shortcode('wpmem_field', 'wpmem_display_user_meta');

ショートコードの使い方

基本構文

PHP
[wpmem_field meta_key="キー名"]

meta_key:表示したいユーザーメタのキー名を指定。
ログイン中のユーザーのメタデータを取得。

特定のユーザーIDを指定

PHP
[wpmem_field meta_key="キー名" user_id="123"]

user_id:メタデータを取得したいユーザーのIDを指定。