将user_meta中的值添加到用户的“显示名称”?

问题描述 投票:0回答:1

我们有用户通过以下方式在网站上注册:

  • 名字
  • 姓氏
  • maiden_name
  • 昵称

姓氏和昵称都保存为user_meta中的键->值对。

我想这样做,以便如果用户包括昵称和/或姓氏,我们可以做到这一点,以便在网站上显示时为:

名字“昵称” last_name(maiden_name)

当用户是帖子或评论的“作者”时,这主要很重要。

任何想法,我将如何进行这项工作?

思考这可以通过“ add_filter”函数来完成,但是我不太确定该怎么做。

wordpress
1个回答
0
投票

我设法弄清楚了……尽管我做了更改,但由于Wordpress已经使用了“昵称”,因此我改变了想法……可以重新添加(使用不同的标签以避免混淆) ,但目前仅做娘家姓。

add_filter('the_author', 'full_author_name', 10, 1);

function full_author_name(){
    global $post;

    $user = $post->post_author;
    $maiden = get_user_meta($user, $key='high-school-last-name', $single=true);
    $first = get_user_meta($user, $key='first_name', $single=true);
    $last = get_user_meta($user, $key='last_name', $single=true);
    $maiden_name = !empty($maiden) ? ' ('.$maiden.') ' : '';
    $firstname = ' '.$first.' ';
    $lastname = ' '.$last.' ';
   $author = $firstname.$lastname.$maiden_name;
return $author;

}

我不知道这是否是[[best的方法,但似乎可行。

从我在这里找到的其他代码中改编而成:https://stackoverflow.com/a/13841280/649417-我用来对注释作者显示进行相同的更改:

add_filter('get_comment_author', 'my_comment_author', 10, 1); function my_comment_author( $author = '' ) { $comment = get_comment( $comment_ID ); if (!empty($comment->user_id)){ $user=$comment->user_id; $maiden = get_user_meta($user, $key='high-school-last-name', $single=true); $first = get_user_meta($user, $key='first_name', $single=true); $last = get_user_meta($user, $key='last_name', $single=true); $maiden_name = !empty($maiden) ? ' ('.$maiden.') ' : ''; $firstname = ' '.$first.' '; $lastname = ' '.$last.' '; $author = $firstname.$lastname.$maiden_name; } else { $author = __('Anonymous'); } return $author; };

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.