WordPress大學(xué)的用戶注冊(cè)需要填寫(xiě)昵稱,但是后臺(tái)用戶列表默認(rèn)是沒(méi)有顯示昵稱的,而且也不能在后臺(tái)通過(guò)昵稱搜索用戶,今天就分享下實(shí)現(xiàn)的方法。

添加昵稱列
將下面的代碼添加到主題的 functions.php 即可
/**
* WordPress 后臺(tái)用戶列表顯示用戶昵稱
* http://www.ydqwiac.cn/add-user-nickname-column.html
*/
add_filter('manage_users_columns', 'add_user_nickname_column');
function add_user_nickname_column($columns) {
$columns['user_nickname'] = '昵稱';
return $columns;
}
add_action('manage_users_custom_column', 'show_user_nickname_column_content', 20, 3);
function show_user_nickname_column_content($value, $column_name, $user_id) {
$user = get_userdata( $user_id );
$user_nickname = $user->nickname;
if ( 'user_nickname' == $column_name )
return $user_nickname;
return $value;
}
如果你需要去除“姓名”這一欄,在上面的第 7 行下面添加以下代碼即可:
unset($columns['name']); //移除“姓名”這一欄
讓后臺(tái)用戶列表支持搜索昵稱
默認(rèn)情況下,WordPress后臺(tái)只能通過(guò)用戶名、郵箱進(jìn)行用戶搜索,如果要通過(guò)昵稱搜索,只需要添加下面的代碼到主題的 functions.php 文件即可:
function wpkj_extend_user_search( $u_query ){
// 確保代碼僅應(yīng)用于用戶搜索
if ( $u_query->query_vars['search'] ){
$search_query = trim( $u_query->query_vars['search'], '*' );
if ( $_REQUEST['s'] == $search_query ){
global $wpdb;
// 添加昵稱搜索查詢語(yǔ)句
$u_query->query_from .= " JOIN {$wpdb->usermeta} fname ON fname.user_id = {$wpdb->users}.ID AND fname.meta_key = 'nickname'";
// 設(shè)置可搜索的字段
$search_by = array( 'user_login', 'user_email', 'fname.meta_value' );
// 應(yīng)用到搜索
$u_query->query_where = 'WHERE 1=1' . $u_query->get_search_sql( $search_query, $search_by, 'both' );
}
}
}
add_action('pre_user_query', 'wpkj_extend_user_search');
拓展閱讀:
- https://developer.wordpress.org/reference/hooks/manage_users_custom_column/
- https://developer.wordpress.org/reference/hooks/pre_user_query/
- https://rudrastyh.com/wordpress/pre_user_query.html
聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書(shū)籍等各類媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。





怎么把用戶公開(kāi)顯示為默認(rèn)為昵稱,而不是用戶名呢?
用戶注冊(cè)后不修改公開(kāi)顯示為昵稱的話,回復(fù)顯示是用戶名啊
怎么換個(gè)列呢?比如放在電子郵件前一列?
喜歡折騰的孩紙有福了….