有誰知道的方式我可以更改現有的顯示名稱公開爲所有用戶。我想將姓氏姓作爲默認姓名,因爲這將反映在論壇中。我已閱讀所有的論壇,並嘗試所有的黑客,任何建議,將不勝感激。在此先感謝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. 更改Linux用戶對文件創建的默認所有權?
- 3. 更改默認的按鈕名稱NSIS
- 4. Firebase - 沒有用戶的顯示名稱
- 5. 在Access工作區中更改默認用戶的名稱
- 6. 如何更改wordpress中所有文件的主題名稱?
- 7. 更改xcode中的現有類名稱
- 8. 使GtkScrolledWindow默認顯示所有子項
- 9. 更改svn + ssh默認用戶名
- 10. TFS:顯示所有更改
- 11. 在不更改頁面名稱的情況下更改默認子頁面的名稱WordPress管理員
- 12. 從默認的「Application1」名稱更改項目名稱
- 13. phpMyAdmin:更改顯示的默認行數?
- 14. 更改默認路由名稱
- 15. Corda Demobench更改默認服務名稱
- 16. DBAppender - 如何更改默認表名稱?
- 17. 更改默認名稱空間
- 18. Azure B2C:默認顯示名稱
- 19. 如何獲取Column的名稱或更改現有的名稱?
- 20. Wordpress更改默認翻譯
- 21. Apache更改默認用戶
- 22. С將所有用戶ID更改爲Facebook名稱
- 23. 將現有域名移至Wordpress
- 24. 默認所有產品對於bugzilla中的所有用戶都可見
- 25. 在所有aspx頁面上顯示用戶名稱
- 26. 如何讓java.io.Console顯示用戶默認的確認或修改?
- 27. 如何僅顯示所有者名稱?
- 28. 在facebook上更改用戶的顯示名稱
- 29. 更改連接字符串的默認名稱用於WebJobs的AzureWebJobsStorage和AzureWebJobsDashboard
- 30. WordPress的默認日曆更改
實際上可以我可以用下面的代碼來做到這一點:\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