首页 > 解决方案 > 我们如何通过姓氏获取显示名称?

问题描述

我有一个用户的姓氏,并想获得他们的显示名称。get_user_by()只允许ID, slug,emaillogin. 如何从姓氏中获取显示名称?

在functions.php上我有:

//Get user display name by last name
function get_display_name_by_last_name( $last_name ) {
    global $wpdb;
if ( ! $user = $wpdb->get_row( $wpdb->prepare(
        "SELECT `display_name` FROM $wpdb->users WHERE `last_name` = %s", $last_name
    ) ) )
        return false;
return $user->display_name;
}

我在 page.php 上有:

<?php echo get_display_name_by_last_name ('last_name', 'A1e'); ?>

标签: phpwordpressfunctionwoocommerce

解决方案


由于姓氏和名字等位于 上wp_usermeta,因此您可以使用JOINs 相应地调整您的语句。通过以下方式连接它们user_id

function get_display_name_by_last_name( $last_name ) {
    global $wpdb;
    if ( ! $user = $wpdb->get_row( $wpdb->prepare(
        "SELECT 
            wpu.display_name 
            FROM {$wpdb->prefix}users AS wpu
            JOIN {$wpdb->prefix}usermeta AS wpum 
                ON wpu.ID = wpum.user_id
            WHERE 
                wpum.meta_key = 'last_name' 
            AND 
                wpum.meta_value = %s", $last_name
    ) ) ) return false;
    return $user->display_name;
}

推荐阅读