如何创建带1个参数的快捷码(Atts)

时间:2014-12-21 作者:tammy

我很难获得使用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\');
nbsp;

1 个回复
最合适的回答,由SO网友:Robert hue 整理而成

下面是您应该如何创建短代码。

首先,您必须定义$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\' );
已经对其进行了测试,并且正在运行。

结束

相关推荐

Shortcode won't execute

我用我有限的知识,google和stackexchange创建了一个短代码。但当我加载页面时,它会加载到页面内容上方,并显示为html文本。(shortocode text) ------- page contents appearing normally 正如我所说,我对这种类型的编码知识有限(零),我无法找出哪个部分/什么部分不起作用。我附加了我使用的代码的压缩版本,在shortcode函数中显示的内容更少。// Add Shortcode function p_fo