WordPress:如何在前端输出已配置的自定义用户元字段值?
你的实现方式整体是正确的,这里给你拆解细节和优化建议
首先,你添加自定义用户联系字段的代码完全符合WordPress的标准做法:
if ( ! function_exists( 'ld_modify_contact_methods' ) ) : function ld_modify_contact_methods( $contactmethods ) { $contactmethods['dealername'] = __( 'Dealer Name' ); return $contactmethods; } add_filter('user_contactmethods','ld_modify_contact_methods', 10, 1);
通过user_contactmethods过滤器扩展用户联系字段,这个字段会正常出现在后台用户编辑页面的联系信息板块,用户填写后能正确保存,这部分没有问题。
然后看前端输出的代码:
$dealername = get_the_author_meta( 'dealername', $post->post_author ); echo $dealername;
这段代码在文章循环内部使用是完全有效的——$post->post_author能准确获取当前文章作者的ID,get_the_author_meta会根据这个ID取出对应的dealername字段值并输出。
不过可以补充几个优化点,让代码更健壮:
- 添加安全转义:用户输入的内容可能包含特殊字符,直接输出有XSS风险,建议用
esc_html()转义后再输出:$dealername = get_the_author_meta( 'dealername', $post->post_author ); echo esc_html( $dealername ); - 处理空值情况:如果作者没有填写这个字段,避免输出空白内容,可以加个判断:
$dealername = get_the_author_meta( 'dealername', $post->post_author ); if ( ! empty( $dealername ) ) { echo '<span class="dealer-name">Dealer: ' . esc_html( $dealername ) . '</span>'; } - 循环外的使用场景:如果是在文章循环外部(比如侧边栏、独立页面),需要手动指定用户ID,比如获取当前登录用户的字段:
$current_user_id = get_current_user_id(); $dealername = get_the_author_meta( 'dealername', $current_user_id ); echo esc_html( $dealername );
内容的提问来源于stack exchange,提问作者Zain
相关产品推荐
相关产品推荐

