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を指定。
