2013-08-23 55 views
0

我已经设置显示名称以显示名字和姓氏使用下面的功能。我如何操作LAST NAME来只拉取该字符串的第一个字母?例如,如果你作为李四注册(名字=约翰,姓= DOE),我想您的显示名称是约翰D.Wordpress显示名称字符串操作

感谢

function force_pretty_displaynames($user_login, $user) { 

$outcome = trim(get_user_meta($user->ID, 'first_name', true) . " " . get_user_meta($user->ID, 'last_name', true)); 
if (!empty($outcome) && ($user->data->display_name!=$outcome)) { 
    wp_update_user(array ('ID' => $user->ID, 'display_name' => $outcome));  
} 
} 
add_action('wp_login','force_pretty_displaynames',10,2); 

回答

0

get_user_meta($user->ID, 'last_name', true)刚刚获得第一个字符。你可以使用字符串作为字符数组(因为它是字符数组:),所以要得到第一个字符,你会写$string[0]

$lastName = (string) get_user_meta($user->ID, 'last_name', true); 
$firstChar = $lastName[0]; 
+0

伊隆可以请你插入你的答案进入我的代码澄清?当我尝试它时,我得到了致命错误:不能使用WP_User类型的对象作为数组。谢谢! –

+0

编辑答案,我认为现在使用该解决方案会很容易;) –

0

这是我如何解决它使用PHP的SUBSTR()函数:

$outcome = trim(
get_user_meta($user->ID, 'first_name', true) 
. ' ' 
. substr(get_user_meta($user->ID, 'last_name', true), 0, 1) 
. '.' 
); 

以上感谢帕特j码

的完整代码显示名字和最初在WordPress姓氏在下面。如果任何人想要使用它,记住它粘贴到你的主题function.php文件

function force_pretty_displaynames($user_login, $user) { 

$outcome = trim(
get_user_meta($user->ID, 'first_name', true) 
. ' ' 
. substr(get_user_meta($user->ID, 'last_name', true), 0, 1) 
. '.' 
); 
if (!empty($outcome) && ($user->data->display_name!=$outcome)) { 
    wp_update_user(array ('ID' => $user->ID, 'display_name' => $outcome));  
} 
} 
add_action('wp_login','force_pretty_displaynames',10,2);