Cómo crear un shortcode con 1 parámetro (atts)
21 dic 2014, 21:14:01
Vistas: 72.5K
Votos: 17
Estoy teniendo problemas para hacer funcionar un shortcode con 1 atributo.
Aquí está mi shortcode [sme_user-email userID="2"]
Aquí están mis scripts - ninguno de ellos funciona.
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');
Este funciona -- pero no quiero hardcodear el ID del usuario. Esperaba poder hacerlo de forma dinámica
function getUserEmail_func($atts) {
$user_info = get_userdata(2);
return $user_info->user_email;
}
add_shortcode('sme_user-email', 'getUserEmail_func');
Todas las respuestas a la pregunta
1
2
Aquí te mostramos cómo deberías crear el shortcode.
Primero tendrás que definir el elemento $atts
en get_userdata
porque $atts
es un array. Además, creo que también hay algunos problemas con los nombres de atributos en mayúsculas, por lo que deberías usar el atributo en minúsculas. Así que en lugar de userID
, usa userid
.
function getUserEmail_func( $atts ) {
$user_info = get_userdata( $atts['userid'] );
return $user_info->user_email;
}
add_shortcode( 'sme_user-email', 'getUserEmail_func' );
Lo he probado y está funcionando.

Robert hue
8.56K
21 dic 2014 21:31:24
Comentarios
Increíble @Roberthue... LAS MAYÚSCULAS son un problema. Nunca lo habría descubierto.

21 dic 2014 21:40:03
Preguntas relacionadas
4
respuestas
5
respuestas