您的短代码可以如下所示:
[check-if-empty usermeta="last_name"] Is not empty [/check-if-empty]
参数名为;“用户元”;添加到函数($atts)中,其值用于检查用户数据。
function func_check_if_empty( $atts, $content = null ) {
if ( is_user_logged_in() ) { /* check if logged in */
$user_meta = $atts[\'usermeta\']; /* get value from shortcode parameter */
$user_id = get_current_user_id(); /* get user id */
$user_data = get_userdata( $user_id ); /* get user meta */
if ( !empty( $user_data->$user_meta ) ) { /* if meta field is not empty */
return $content; /* show content from shortcode */
} else { return \'\'; /* meta field is empty */ }
} else {
return \'\'; /* user is not logged in */
}
}
add_shortcode( \'check-if-empty\', \'func_check_if_empty\' );
我们使用
$atts[\'usermeta\']
这是
last_name
在本例中。在检查用户是否登录后,我们将获取用户数据并使用您的快捷码中的元字段。
这样,您可以检查所有的元字段(如first_name
, user_login
, user_email
) 只需在shortcode参数中使用另一个名为;usermeta;。
例如,如果您现在想在名字不为空的情况下显示某些内容,您可以使用以下短代码:
[check-if-empty usermeta="first_name"] Is not empty [/check-if-empty]