Получить полное имя автора

7 февр. 2013 г., 17:19:48
Просмотры: 30.8K
Голосов: 5

Я пытаюсь отобразить имя и фамилию автора без необходимости изменять настройку "Отображать публично как...". Проблема в том, что я могу найти решения только для одного из полей или, в лучшем случае, для display/nice/nickname. Я хотел бы отображать полное имя независимо от того, что пользователь/автор выбрал для "Отображать публично как".

В идеале я хотел бы объединить приведенное ниже, если возможно.

get_the_author_meta('first_name') 

и

get_the_author_meta('last_name') 

Буду благодарен за любую помощь!

РЕДАКТИРОВАНИЕ (ФИНАЛЬНЫЙ КОД):

$fname = get_the_author_meta('first_name');
        $lname = get_the_author_meta('last_name');
        $full_name = '';

        if( empty($fname)){
            $full_name = $lname;
        } elseif( empty( $lname )){
            $full_name = $fname;
        } else {
            //присутствуют и имя, и фамилия
            $full_name = "{$fname} {$lname}";
        }

        $nicknames = "";
        //получить_роль_автора()
        $userjob = get_cimyFieldValue(get_the_author_meta('ID'), 'JOBTITLE');
        //$userjob = "";
        ob_start();
        coauthors_links();
        //coauthors_firstname();
        $authornames = $full_name;
        ob_end_clean();

        if (empty($authornames)) { 
            $authornames = get_the_author();
        } else {
            $userjob = NULL;
        }
        $linkpre = "<a href='/author/".get_the_author_meta('user_nicename')."'>";
        $linkpost = "</a>";
        if (custom_author_byline("") !== ""){
            $authornames = get_the_author();
            $linkpre = $linkpost = "";
            $userjob = NULL;
        }
        //echo coauthors_links();
        //get_the_author_meta("nickname")
        echo "<p class='authormet'>От ".$linkpre.$authornames.$linkpost."</p><br/><p class='authormet'>".$categories_list." | ".get_the_date()."</p>";
1
Комментарии

Попробуйте the_author_meta( 'display_name' ).

Fabien Snauwaert Fabien Snauwaert
15 мая 2017 г. 19:30:40
Все ответы на вопрос 2
3
11

Попробуйте следующий код:

<?php

$fname = get_the_author_meta('first_name'); // Получаем имя автора
$lname = get_the_author_meta('last_name');  // Получаем фамилию автора
$full_name = ''; // Инициализируем переменную для полного имени

if( empty($fname) ){ // Если имя пустое
    $full_name = $lname; // Используем только фамилию
} elseif( empty( $lname ) ){ // Если фамилия пустая
    $full_name = $fname; // Используем только имя
} else {
    // Если присутствуют и имя, и фамилия
    $full_name = "{$fname} {$lname}"; // Объединяем имя и фамилию
}

echo $full_name; // Выводим полное имя
?>
7 февр. 2013 г. 17:26:42
Комментарии

Почему бы просто не использовать echo trim( "$fname $lname" );?

fuxia fuxia
7 февр. 2013 г. 17:31:30

Спасибо, я уже почти у цели! Но при добавлении этого кода имя выводится дважды. Наверное, я упускаю что-то простое, образец кода я добавил выше.

kallekillen kallekillen
7 февр. 2013 г. 17:32:34

уберите первый echo $full_name; ;-)

Mike Madern Mike Madern
7 февр. 2013 г. 17:35:21
0

Функция get_the_author может быть напрямую использована для отображения имени автора. Для этого необходимо выполнить несколько настроек в админке:

  • В настройках пользователя убедитесь, что поля "Имя" и "Фамилия" заполнены.
  • Затем найдите опцию Отображать имя публично как и выберите желаемый формат отображения имени.
  • Нажмите "Сохранить" и обновите страницу.
13 окт. 2020 г. 17:12:14