Как создать шорткод с 1 параметром (atts)
21 дек. 2014 г., 21:14:01
Просмотры: 72.5K
Голосов: 17
У меня возникли проблемы с созданием шорткода с 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');
Все ответы на вопрос
1
2
Вот как следует создавать шорткод.
Сначала вам нужно определить элемент $atts
в get_userdata
, потому что $atts
— это массив. Также, думаю, есть проблемы с именами атрибутов в верхнем регистре, поэтому следует использовать атрибут в нижнем регистре. То есть вместо userID
используйте userid
.
function getUserEmail_func( $atts ) {
$user_info = get_userdata( $atts['userid'] );
return $user_info->user_email;
}
add_shortcode( 'sme_user-email', 'getUserEmail_func' );
Протестировал — всё работает.

Robert hue
8.56K
21 дек. 2014 г. 21:31:24
Комментарии
Удивительно, @Roberthue... ПРОБЛЕМА В ВЕРХНЕМ РЕГИСТРЕ. Я бы никогда не догадался об этом.

21 дек. 2014 г. 21:40:03
Похожие вопросы
2
ответов