I'm trying to retrieve user information based on a URL within WordPress. I've setup a page template for each of the WordPress users on the site. I'd like to say "contact userfirst userlast" and display their email.
The URL structure is www.example/memberpage/username.
My code is:
function retrieve_member_name (){
$current_member = get_user_by( 'slug', basename($_SERVER["REQUEST_URI"]) );
if ( ! $current_member->exists() ) {
return;
}
if ($current_member->first_name){
$fname = $current_member->first_name;
} else {
$fname = "";
}
if ($current_member->last_name){
$lname = $current_member->last_name;
} else {
$lname = "";
}
$mname = $fname.' '.$lname;
return $mname;
}
add_shortcode('membername','retrieve_member_name');
This works great, but if the member doesn't exist I get an error that I'm using exists()
incorrectly. What is the proper way to test for $current_member
when I call get_user_by()
?
I'm trying to retrieve user information based on a URL within WordPress. I've setup a page template for each of the WordPress users on the site. I'd like to say "contact userfirst userlast" and display their email.
The URL structure is www.example/memberpage/username.
My code is:
function retrieve_member_name (){
$current_member = get_user_by( 'slug', basename($_SERVER["REQUEST_URI"]) );
if ( ! $current_member->exists() ) {
return;
}
if ($current_member->first_name){
$fname = $current_member->first_name;
} else {
$fname = "";
}
if ($current_member->last_name){
$lname = $current_member->last_name;
} else {
$lname = "";
}
$mname = $fname.' '.$lname;
return $mname;
}
add_shortcode('membername','retrieve_member_name');
This works great, but if the member doesn't exist I get an error that I'm using exists()
incorrectly. What is the proper way to test for $current_member
when I call get_user_by()
?
1 Answer
Reset to default 1You should check if $current_member
is empty, because get_user_by()
would return false
upon failure and a WP_User
instance/object otherwise:
if ( empty( $current_member ) ) {
return '';
}
members
with a rewrite rule set to/memberpage
. This would give you a free archive of members at/memberpage
, anarchive-members.php
andsingle-members.php
, allowing you to completely eliminate the need for setting up page templates, no longer cluttering up your pages section of the admin by moving them all out into a Members menu item, even making REST API requests simpler – Tom J Nowell ♦ Commented Oct 29, 2019 at 18:51