有誰知道的方式我可以更改現有的顯示名稱公開爲所有用戶。我想將姓氏姓作爲默認姓名,因爲這將反映在論壇中。我已閱讀所有的論壇,並嘗試所有的黑客,任何建議,將不勝感激。在此先感謝WordPress的更改默認顯示名稱Publicy至於所有現有的用戶
回答
使用admin_head掛鉤的問題在於,它不適用於不使用管理系統的用戶。另外,我嘗試實現Marty發佈的解決方案失敗了,因爲它似乎並不能通過update_user_meta()更新display_name - 必須使用wp_update_user()。
我的建議 - 把這個在您的functions.php文件:
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);
對我來說,(使用WP 3.4.1),該工程確定,只要他們登錄替換顯示名稱
。快速和骯髒的劈將是編輯文件 'WP-包括/ user.php的' 編輯如下因素
if (empty($display_name))
$display_name = $user_login;
$display_name = apply_filters('pre_user_display_name', $display_name);
編輯這一行
$display_name = $user_login;
更改爲:
$display_name = $first_name . ' ' . $last_name;
上述解決方案應該可以工作,假設user.php文件在WordPress upd吃或alternativly你可以添加這樣的事情你的functions.php
//force display-name of users to Firstname Lastname
add_action('admin_head','force_pretty_displaynames');
function force_pretty_displaynames() {
$current_user = wp_get_current_user();
if ($current_user->display_name != $current_user->first_name." ".$current_user->last_name){
update_user_meta($current_user->ID, 'display_name', $current_user->first_name." ".$current_user->last_name);
}
}
但agian在這上面可以添加一些檢查,以查看用戶是否登錄,是管理員,貢獻者etc..etc ..
但應該做你找什麼..
來源:http://wordpress.org/support/topic/change-default-display-name-1
馬蒂
<?php
//Sets the user's display name (always) to first name last name, when it's avail.
add_action ('admin_head','make_display_name_f_name_last_name');
function make_display_name_f_name_last_name(){
$users = get_users(array('fields'=>'all'));
foreach($users as $user){
$user = get_userdata($user->ID);
$display_name = $user->first_name . " " . $user->last_name;
if($display_name!=' ') wp_update_user(array ('ID' => $user->ID, 'display_name' => $display_name));
else wp_update_user(array ('ID' => $user->ID, 'display_name' => $user->display_login));
if($user->display_name == '')
wp_update_user(array ('ID' => $user->ID, 'display_name' => $user->display_login));
}
}
?>
謝謝@aubreypwd這就是我所需要的。我已經通過CSV導入了一大批用戶,並且需要將每個人的display_name更改爲他們的名字和姓氏。所以我在functions.php和voila中運行過這個函數,一切都完成了! :D再次感謝!對於未來的用戶,我打算使用另一個腳本來強制display_name作爲名和姓。 – 2016-09-10 18:59:49
-1爲admin_head上的所有用戶執行此操作是一個非常糟糕的主意,除非您計劃永遠不會有幾個用戶。我發現這個確切的代碼在我剛剛繼承的網站上使用。管理員頁面花了差不多1分鐘時間才能加載2000個用戶。當上面的add_action被註釋掉時,超過500萬個PHP調用被消除。現在管理頁面立即加載。 – BillK 2016-10-20 03:52:12
一個老問題,但我的答案可能對別人有用。
運行數據庫此查詢(調整表名,如果您有其他前綴):
UPDATE wp_users SET display_name = CONCAT((SELECT meta_value FROM wp_usermeta WHERE meta_key = 'first_name' AND user_id = ID), ' ', (SELECT meta_value FROM wp_usermeta WHERE meta_key = 'last_name' AND user_id = ID));
在WP 3.3.1,但應該在以後的版本工作。
這裏的richplane的回答的改進版本,在WordPress的新版本作品(3.8+):
/**
* Format WordPress User's "Display Name" to Full Name on Login
* ------------------------------------------------------------------------------
*/
add_action('wp_login', 'wpse_9326315_format_user_display_name_on_login');
function wpse_9326315_format_user_display_name_on_login($username) {
$user = get_user_by('login', $username);
$first_name = get_user_meta($user->ID, 'first_name', true);
$last_name = get_user_meta($user->ID, 'last_name', true);
$full_name = trim($first_name . ' ' . $last_name);
if (! empty($full_name) && ($user->data->display_name != $full_name)) {
$userdata = array(
'ID' => $user->ID,
'display_name' => $full_name,
);
wp_update_user($userdata);
}
}
- 1. 顯示在wordpress中顯示名稱的所有角色
- 2. Firebase - 沒有用戶的顯示名稱
- 3. 在Access工作區中更改默認用戶的名稱
- 4. 更改所有複選框的名稱
- 5. 使GtkScrolledWindow默認顯示所有子項
- 6. 更改xcode中的現有類名稱
- 7. phpMyAdmin:更改顯示的默認行數?
- 8. Corda Demobench更改默認服務名稱
- 9. DBAppender - 如何更改默認表名稱?
- 10. Wordpress更改默認翻譯
- 11. 將現有域名移至Wordpress
- 12. Apache更改默認用戶
- 13. С將所有用戶ID更改爲Facebook名稱
- 14. 在所有aspx頁面上顯示用戶名稱
- 15. 如何讓java.io.Console顯示用戶默認的確認或修改?
- 16. 如何僅顯示所有者名稱?
- 17. 在facebook上更改用戶的顯示名稱
- 18. WordPress的默認日曆更改
- 19. WordPress:將我的按鈕中的名稱從'LOGOUT'更改爲用戶的名稱?
- 20. 更改Grails域類的顯示名稱
- 21. Sitecore更改顯示語言的名稱
- 22. 更改外鍵MVC的顯示名稱
- 23. 使用smartxls dll我無法更改打開的默認名稱
- 24. 更改創建文件夾時NSOpenPanel使用的默認名稱?
- 25. jira更改現有用戶的用戶名
- 26. 更改所有使用javascript的元素類名稱的樣式
- 27. 顯示所有用戶
- 28. 顯示所有用戶liferay
- 29. 是否有顯示所有屬性名稱/值的NAnt任務?
- 30. Envers,withModifiedFlag有一個默認名稱列?
實際上可以我可以用下面的代碼來做到這一點:\t \t \t \t $ USER_ID = $ current_user-> ID; \t \t \t \t $ loginfullname = $ current_user-> user_firstname。' '。$ current_user-> user_lastname; (數組('ID'=> $ user_id,'display_name'=> $ loginfullname)); – uknowit2 2012-04-11 09:55:32
永遠不要編輯核心或插件文件。使用鉤子(或覆蓋)就像馬蒂的第二個建議。 – ljelewis 2015-08-18 10:06:31