Come creare uno shortcode con 1 parametro (atts)

21 dic 2014, 21:14:01
Visualizzazioni: 72.5K
Voti: 17

Ho difficoltà a far funzionare uno shortcode con 1 attributo.

Ecco il mio shortcode [sme_user-email userID="2"]

Ecco i miei script - nessuno di questi funziona.

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

Questo funziona -- ma non voglio codificare l'ID utente direttamente. Speravo di poterlo fare dinamicamente

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

0
Tutte le risposte alla domanda 1
2
28

Ecco come dovresti creare uno shortcode.

Per prima cosa dovrai definire l'elemento $atts in get_userdata perché $atts è un array. Inoltre credo ci siano anche alcuni problemi con i nomi degli attributi in maiuscolo, quindi dovresti usare l'attributo in minuscolo. Quindi invece di 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' );

L'ho testato e funziona.

21 dic 2014 21:31:24
Commenti

Fantastico @Roberthue... IL MAIUSCOLO è un problema. Non ci sarei mai arrivato da solo.

tammy tammy
21 dic 2014 21:40:03

A volte lo è. Ecco perché di solito evito il maiuscolo e le combinazioni di trattini -, come hai usato nel nome dello shortcode sme_user-email. Hai usato un trattino e un underscore. Mantienilo uniforme e avrai meno problemi.

Robert hue Robert hue
21 dic 2014 21:44:22