5

I'm trying to display the first and last name of an author without having to change the "Display publicly as..." setting. Problem is, I can only seem to find solutions for either or, or at best display/nice/nickname. I would like to display the full name no matter what the user/author has chosen to "Display publicly as".

Ideally I'd like to combine the below if possible.

get_the_author_meta('first_name') 

and

get_the_author_meta('last_name') 

Any help would be appreciated!

EDIT (FINAL CODE):

$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 {
            //both first name and last name are present
            $full_name = "{$fname} {$lname}";
        }

        $nicknames = "";
        //get_author_role()
        $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'>By ".$linkpre.$authornames.$linkpost."</p><br/><p class='authormet'>".$categories_list." | ".get_the_date()."</p>";
1
  • 1
    Try the_author_meta( 'display_name' ). May 15, 2017 at 16:30

2 Answers 2

11

Try the following:

<?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 {
    //both first name and last name are present
    $full_name = "{$fname} {$lname}";
}

echo $full_name;
?>
3
  • 7
    Why not just echo trim( "$fname $lname" );?
    – fuxia
    Feb 7, 2013 at 15:31
  • Thanks, I'm really close now! Adding the above outputs the name twice though. I'm probably overlooking something simple, I've added sample code above. Feb 7, 2013 at 15:32
  • 1
    remove the first echo $full_name; ;-) Feb 7, 2013 at 15:35
2

The get_the_author can directly be used to display the name of the author. There are few settings to be done on the admin for this:

  • Under the user settings add make sure you have the first and last name fields filled up.
  • After that see for the Display name publicly as options and select whichever format you want the name to be shown.
  • Click save and refresh your page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.