web-dev-qa-db-fra.com

Comment créer un shortcode avec 1 paramètre (atts)

Je ne parviens pas à obtenir un shortcode pour travailler avec 1 attribut.

Voici mon shortcode [sme_user-email userID="2"]

Voici mes scripts - aucun d’entre eux ne fonctionne.

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');

Celui-ci fonctionne - mais je ne veux pas coder en dur l'ID utilisateur. J'espérais pouvoir le faire dynamiquement

function getUserEmail_func($atts) {
    $user_info = get_userdata(2);
    return $user_info->user_email;
}
add_shortcode('sme_user-email', 'getUserEmail_func');

5
tammy

Voici comment créer un shortcode.

Vous devez d’abord définir l’élément $atts dans get_userdata car $atts est un tableau. De plus, je pense qu’il ya aussi des problèmes avec les noms d’attributs en majuscules, vous devriez donc utiliser attribut en minuscule. Donc, au lieu de userID, utilisez userid.

function getUserEmail_func( $atts ) {
    $user_info = get_userdata( $atts['userid'] );
    return $user_info->user_email;
}
add_shortcode( 'sme_user-email', 'getUserEmail_func' );

Je l'ai testé et ça marche.

12
Robert hue