我有一个网站通过特定的探险过滤博客。
目前,当我点击与该特定探险相关的博客时,它会将头部标题(在浏览器窗口中)显示为“| mysite
”。因此,所有过滤后的视图都具有相同的标题。
我想为每个过滤后的视图添加自定义标题。
因此,举例来说,我希望与远征1有关的博客拥有头部标题为“Expedition 1 blogs | Mysite
”的过滤视图。
有人有任何建议吗?
答案 0 :(得分:2)
我建议你这样做:
视图3的:
如果您有一个视图,并且希望能够以编程方式更改标题,则可以通过在自定义模块中实现hook_views_pre_render来实现:
<?php
/**
* Implements hook_views_pre_view().
*/
function MODULENAME_views_pre_render($view) {
if ($view->name == 'my_view_name') {
if ($view->current_display == 'my_display_name') {
$view->set_title('my new title');
}
}
}
?>
我希望它有所帮助。
答案 1 :(得分:0)
此问题可能与this one有关,其中给出了以下解决方案:
在template.php中:
function YOUR_THEME_preprocess_page(&$vars){
// You can test if you're in your specific views of course
$path = $_GET['q'];
if (strpos($path,'YOUR_PATH_STRING') !== false) {
drupal_set_title('YOUR_TITLE');
}
}
我还看到了适合你的Page Title模块的引用。
答案 2 :(得分:0)
您可以通过使用以下模块挂钩来以编程方式设置视图页面标题。
function MODULE_NAME_views_pre_view(&$view, &$display_id, &$args) {
if($view->name == 'VIEW_MACHINE_NAME'){
$view->display[$view->current_display]->display_options["title"] =
$view->display[$view->current_display]->handler->options["title"] =
$view->human_name .' - '.$_GET['field_video_by_event_value'];
}
}