ショートコードが1つの属性で動作するようにするのに問題があります。
これが私のショートコードです[sme_user-email userID="2"]
ここに私のスクリプトがあります - それらのどれも動作しません。
function getUserEmail_func($atts) {
extract(shortcode_atts(array('userID' => 1,), $atts));
$user_info = get_userdata($atts);
return $user_info->user_email;
}
add_shortcode('sme_user-email', 'getUserEmail_func');
。
function getUserEmail_func($atts) {
$user_info = get_userdata($atts);
return $user_info->user_email;
}
add_shortcode('sme_user-email', 'getUserEmail_func');
。
function getUserEmail_func($atts) {
$user_info = get_userdata($atts['userID]');
return $user_info->user_email;
}
add_shortcode('sme_user-email', 'getUserEmail_func');
これはうまくいきます - しかし私はユーザーIDをハードコードしたくありません。動的にできることを望んでいました
function getUserEmail_func($atts) {
$user_info = get_userdata(2);
return $user_info->user_email;
}
add_shortcode('sme_user-email', 'getUserEmail_func');
ショートコードを作成する方法は次のとおりです。
$atts
は配列なので、最初にget_userdata
に$atts
項目を定義する必要があります。また、大文字の属性名にも問題があると思いますので、attributeを小文字で使用する必要があります。 userID
の代わりにuserid
を使用してください。
function getUserEmail_func( $atts ) {
$user_info = get_userdata( $atts['userid'] );
return $user_info->user_email;
}
add_shortcode( 'sme_user-email', 'getUserEmail_func' );
それをテストしました、そしてそれは働いています。