我们有用户通过以下方式在网站上注册:
姓氏和昵称都保存为user_meta中的键->值对。
我想这样做,以便如果用户包括昵称和/或姓氏,我们可以做到这一点,以便在网站上显示时为:
名字“昵称” last_name(maiden_name)
当用户是帖子或评论的“作者”时,这主要很重要。
任何想法,我将如何进行这项工作?
我思考这可以通过“ add_filter”函数来完成,但是我不太确定该怎么做。
我设法弄清楚了……尽管我做了更改,但由于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;
};