php - 我们如何通过姓氏获取显示名称?
问题描述
我有一个用户的姓氏,并想获得他们的显示名称。get_user_by()
只允许ID
, slug
,email
或login
. 如何从姓氏中获取显示名称?
在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'); ?>
解决方案
由于姓氏和名字等位于 上wp_usermeta
,因此您可以使用JOIN
s 相应地调整您的语句。通过以下方式连接它们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;
}
推荐阅读
- python - Use Python to get robot to respond to button press
- magento2 - Magento 2.4:无法应用数据补丁 Magento\CatalogRuleSampleData\Setup\Patch\Data\InstallCatalogRuleSampleData
- python - Gives me an error while adding a column to a data source
- powershell - how to build an AD server menu and select a server
- sas - SAS: Check variables if they are not empty dynamically
- exchange-server - Exchange 2019 on premise and Sageone email
- testing - Why i cannot save the test plan in jmeter?
- javascript - How to send and receive dropdown selected option using AJAX
- html - CSS overriding a selector with a background colour works, but using no colour doesn't
- apache-flink - Flink job falis to recover from checkpoint