Saya memposting ulang jawaban saya dari /programming/8124089/get-value-of-custom-user-field-in-drupal-7-template di sini karena saya pikir ini adalah solusi alternatif. Contoh ini menunjukkan cara menggunakan sesuatu seperti field_real_name alih-alih nama pengguna default.
Jika Anda menggunakan fungsi preproses, tidak perlu menarik $user
objek global . Anda dapat mengubah bidang dalam array $ variable yang sesuai $variables['name']
dengan yang Anda miliki di bidang khusus yang saya panggil field_real_name
. Anda memiliki akses ke $variables
array, sehingga Anda bisa mendapatkan informasi pengguna dengan ini - itu akan memuat informasi yang terkait dengan uid ( lihat template_preprocess_username ):
function mythemename_preprocess_username(&$variables) {
$account = user_load($variables['account']->uid);
...more code will go here in a moment
}
Jika Anda dpm($account)
(atau kpr($account)
jika Anda tidak menggunakan devel) Anda akan melihat bahwa Anda memiliki akses ke semua informasi pengguna, tanpa menggunakan $user
objek global .
Maka Anda dapat mengubah output $variables['name']
menjadi Anda field_real_name
sebagai berikut:
function mythemename_preprocess_username(&$variables) {
// Load user information with user fields
$account = user_load($variables['account']->uid);
// See if user has real_name set, if so use that as the name instead
$real_name = $account->field_real_name[LANGUAGE_NONE][0]['safe_value'];
if (isset($real_name)) {
$variables['name'] = $real_name;
}
}