Cevabımı /programming/8124089/get-value-of-custom-user-field-in-drupal-7-template adresinden yeniden gönderiyorum çünkü bunun alternatif bir çözüm olduğunu düşünüyorum. Bu örnek, varsayılan kullanıcı adı yerine field_real_name gibi bir şeyin nasıl kullanılacağını gösterir.
Bir önişleme işlevi kullanıyorsanız, genel $user
nesneyi çekmeye gerek yoktur . $ Değişkenler dizisindeki $variables['name']
alanı, özel alanınızda aradığım alanla değiştirebilirsiniz field_real_name
. $variables
Diziye erişiminiz var , böylece kullanıcı bilgilerini bununla alabilirsiniz - uid ile ilişkili bilgileri yükleyecektir ( bkz. Template_preprocess_username ):
function mythemename_preprocess_username(&$variables) {
$account = user_load($variables['account']->uid);
...more code will go here in a moment
}
Siz dpm($account)
(veya kpr($account)
devel kullanmıyorsanız), global $user
nesneyi kullanmadan tüm kullanıcı bilgilerine erişiminiz olduğunu görürsünüz .
Sonra çıktısını değiştirebilir $variables['name']
senin olmaya field_real_name
olarak aşağıdaki gibidir:
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;
}
}