【问题标题】:How can we get display name by last name?我们如何通过姓氏获取显示名称?
【发布时间】:2020-10-20 06:14:41
【问题描述】:

我有一个用户的姓氏,并且想要获取他们的显示名称。 get_user_by() 仅允许 IDslugemaillogin。如何从姓氏中获取显示名称?

在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'); ?>

【问题讨论】:

    标签: php wordpress function woocommerce


    【解决方案1】:

    由于姓氏和名字等位于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;
    }
    

    【讨论】:

    • 谢谢。我们如何调用这个函数以便它输出? <?php $user = get_display_name_by_last_name ( 'last_name', 'LastName' ); echo $user->display_name; ?>
    • @newbieneedshelp 不需要$user->display_name;,它已经直接返回显示名称,所以$display_name = get_display_name_by_last_name('Jackson'); echo $display_name; ?>
    猜你喜欢
    • 2021-01-16
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    相关资源
    最近更新 更多