我正在尝试用稍后添加的其他字段替换用户个人资料页面的标题,即用户名。试图显示全名作为页面的标题。
我用以下代码编辑了page.tpl.php $title 但它不起作用。
if(arg(0)=="user")
{
$title=$field_user_last_name;
}
您可以使用Entity API模块的元数据包装器和 hook_user_view() 很好地完成此功能。在模块的 .info 文件中添加对 Entity API 的依赖项,然后代码可能如下所示(假设您要将标题设置为用户的全名,并且您有名为 field_first_name 和 field_last_name 的字段):
/**
* Implements hook_user_view().
*/
function MYMODULE_user_view($account, $view_mode, $langcode) {
// Set the page title of the user profile page to the user's full name.
$wrapper = entity_metadata_wrapper('user', $account);
$first_name = $wrapper->field_first_name->value();
$last_name = $wrapper->field_last_name->value();
if ($first_name && $last_name) {
drupal_set_title($first_name . ' ' . $last_name);
}
}
一种更清洁的方法:
function mymodule_page_alter() {
global $user;
if(drupal_get_title() === $user->name) {
drupal_set_title('New value');
}
}
我有解决方案!!!
我在我的 template.php上的preprocess_page函数上添加了以下代码
if(isset($variables['page']['content']['system_main']['field_name'])){
$title=$variables['page']['content']['system_main']['field_name']['#object']->field_name['und'][0]['value'];
drupal_set_title($title);
}