Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用str#u replace更改字段';s在Drupal 7视图中显示_Php_Drupal_Drupal 7 - Fatal编程技术网

Php 使用str#u replace更改字段';s在Drupal 7视图中显示

Php 使用str#u replace更改字段';s在Drupal 7视图中显示,php,drupal,drupal-7,Php,Drupal,Drupal 7,我正在使用谷歌分析模块检索过去一天我网站上最受欢迎的文章,以填充一个“趋势”块 问题在于PageTitle字段来自元数据,包括管道和站点名称。我想从字符串的末尾去掉它,但是我不知道如何在视图中使用rewrite results 我创建了一个views-view-field--pageTitle.tpl.php文件,并将其编辑为: <?php $output = str_replace(" | My Site", "", $output); print $output; ?>

我正在使用谷歌分析模块检索过去一天我网站上最受欢迎的文章,以填充一个“趋势”块

问题在于
PageTitle
字段来自元数据,包括管道和站点名称。我想从字符串的末尾去掉它,但是我不知道如何在视图中使用
rewrite results

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

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


这似乎不起作用…

如果您确定它总是以
我的文章标题|我的网站
的形式返回,您可以在
|
处拆分字符串

$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

在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');
 }

我认为您必须在template.php中修改元数据,因此您可以通过以下方式完成此操作:

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

您还可以使用元数据模块来处理元数据:


希望有帮助;)

是的,那会有用的。你知道我需要把代码放在哪里才能得到显示新字符串的视图吗?我不知道drupal具体是如何工作的,但我假设你会把它放在你想在代码中存储/显示文章标题的任何地方。它不是节点的标题。这是一个属于Google Analytics数据的字段,“页面跟踪:页面标题”我想我需要知道如何让一个字段以不同的方式显示数据库中的内容,因为我想用零替换字符串的结尾。我不想更改元数据,我希望元数据中包含站点名称。我只需要在我自己的网站上显示它时将其删除。这样,您就可以在KeyEdit上使用unset()函数来显示我刚才尝试的内容。。。