Cum se creează un shortcode cu 1 parametru (atts)

21 dec. 2014, 21:14:01
Vizualizări: 72.5K
Voturi: 17

Am probleme în a face să funcționeze un shortcode cu 1 atribut.

Iată shortcode-ul meu [sme_user-email userID="2"]

Acestea sunt script-urile mele - niciunul nu funcționează.

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

Acesta funcționează -- dar nu vreau să hardcodez ID-ul utilizatorului. Speram să pot face acest lucru în mod dinamic

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

0
Toate răspunsurile la întrebare 1
2
28

Iată cum ar trebui să creezi un shortcode.

Mai întâi va trebui să definești elementul $atts în get_userdata deoarece $atts este un array. De asemenea, cred că există și unele probleme cu numele atributelor în majuscule, așa că ar trebui să folosești atributul cu litere mici. Deci în loc de userID, folosește userid.

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

Am testat și funcționează.

21 dec. 2014 21:31:24
Comentarii

Uimitor @Roberthue...MAJUSCULELE sunt o problemă. Nu aș fi descoperit niciodată asta singur.

tammy tammy
21 dec. 2014 21:40:03

Uneori da. De aceea, de obicei evit majusculele și combinațiile de cratime -, cum ai folosit în numele shortcode-ului sme_user-email. Ai folosit o cratimă și un underscore. Păstrează uniformitatea și vei întâmpina mai puține probleme.

Robert hue Robert hue
21 dec. 2014 21:44:22