Добавить значение из user_meta к отображаемому имени пользователя? - PullRequest
0 голосов
/ 04 февраля 2020

У нас есть пользователи, которые регистрируются на сайте с:

  • first_name
  • last_name
  • maiden_name
  • псевдоним

И девичья фамилия, и псевдоним сохраняются как пара ключ-> значение в user_meta.

Я хотел бы сделать так, чтобы, если пользователь включил ник и / или девичью фамилию, мы могли сделать это так что при отображении на сайте это будет:

first_name "псевдоним" last_name (maiden_name)

Это главным образом важно, когда пользователь является "автором" поста или комментария .

Есть идеи, как мне сделать эту работу?

Я думаю это можно сделать с помощью функции "add_filter", но я не совсем уверен, как это сделать.

1 Ответ

0 голосов
/ 05 февраля 2020

Мне удалось выяснить это ... хотя я и внес изменение, так как 'ник' уже используется в 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;

}

Я не знаю, является ли это лучшим способом сделать это, но, похоже, это работает.

Адаптировано из некоторого другого кода, который я нашел здесь: { ссылка } - который я адаптировал, чтобы внести те же изменения в отображение комментариев автора:

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;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...