使用str_replace在Drupal 7视图中更改字段的显示

时间:2017-11-16 17:58:25

标签: php drupal drupal-7

我正在使用Google Analytics模块在过去一天内检索我网站上最受欢迎的文章,以填充“趋势”块。

问题是PageTitle字段来自元数据,包括管道和站点名称。我想在字符串末尾删除它,但我无法弄清楚如何使用rewrite results在视图中执行此操作。

我创建了一个views-view-field - pageTitle.tpl.php文件并将其编辑为:

<?php 
$output = str_replace(" | My Site", "", $output);
print $output;
?>

这似乎不起作用......

3 个答案:

答案 0 :(得分:0)

在template.php中使用预处理器肯定会有效。还有其他选项可以更改页面,但它取决于您使用哪些模块和设置来生成该标题,显然是在某处使用模式定义,所以不知道我的建议是使用像这样的预处理器

 function THEME_NAME_preprocess_page(&$variables) {
   //you could use arg to identify your page page
  //https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/arg/7.x
    // if the page is the one you are looking then override the title
     drupal_set_title('mytitle');
 }

答案 1 :(得分:0)

我认为您必须修改template.php中的元数据,因此您可以执行以下操作:

THEMENAME_html_head_alter(&$head_elements) {
  // dump content of $head_elements and find your value to modify
}

文档:https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_html_head_alter/7.x

您还可以使用元数据模块来处理元数据: https://www.drupal.org/project/metatag

希望它有所帮助;)

答案 2 :(得分:-1)

如果您确定它始终将其作为My Article Title | My Web Site返回,则可以将字符串拆分为|

$result = "My Article Title | My Web Site";   //the string that was returned
$splitResult = explode(" | ", $result);       //split the string at " | ", creating an array: ["My Article Title", "My Web Site"]
$articleTitle = $splitResult[0];              //get the first item in the array