2

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>";
  • Try the_author_meta( 'display_name' ). – Fabien Snauwaert May 15 '17 at 16:30
7

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;
?>
  • 5
    Why not just echo trim( "$fname $lname" );? – fuxia Feb 7 '13 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. – kallekillen Feb 7 '13 at 15:32
  • 1
    remove the first echo $full_name; ;-) – Mike Madern Feb 7 '13 at 15:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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