如何在<;之间添加代码;头>;及</头>;在Drupal中,但排除某些节点

如何在<;之间添加代码;头>;及</头>;在Drupal中,但排除某些节点,drupal,drupal-7,adsense,Drupal,Drupal 7,Adsense,我正在尝试将谷歌AdSense“页面级广告”添加到我的Drupal网站。它需要在两个标记和之间粘贴一些代码。但是,我想从中排除一些节点。由于它们都是相同的节点类型,因此将从相同的page.tpl.php文件加载。我该怎么做?谢谢。就像Drupal中的一切一样,有很多方法可以做到这一点。您可以在预处理函数中检查特定节点ID,然后仅在页面呈现特定节点ID时添加该代码 function themename_preprocess_page(&$vars) { //check and see

我正在尝试将谷歌AdSense“页面级广告”添加到我的Drupal网站。它需要在两个标记
之间粘贴一些代码。但是,我想从中排除一些节点。由于它们都是相同的节点类型,因此将从相同的page.tpl.php文件加载。我该怎么做?谢谢。

就像Drupal中的一切一样,有很多方法可以做到这一点。您可以在预处理函数中检查特定节点ID,然后仅在页面呈现特定节点ID时添加该代码

function themename_preprocess_page(&$vars) {
  //check and see if we're rendering a node and if the current nid is in the a
  if (isset($variables['node'] && in_array($variables['node']->nid, array('1','2','3','4','5')) {
 drupal_add_js('your adsense code here',
    array('type' => 'inline', 'scope' => 'header');
  }
}
为了让人们更易于管理,我要做的是为节点类型添加一个复选框字段,用于“无广告”或其他内容。这将为您提供一个从管理界面中删除该节点上的广告的过程,您不需要不断修改代码来排除某些节点ID

现在制作(或添加)themename_preprocess_page函数

//psuedo代码--不复制和粘贴

theme_preprocess_page(&$vars) {
if ((isset($variables['node']->type) && $variables['node']->type == 'your_node_type') && isset($variables['node']->field_checkbox[LANGUAGE_NONE][0]) && $variables['node']->field_checkbox[LANGUAGE_NONE][0][value]) {
    drupal_add_js(your javascript ad code);
  }
}

这将很有效。我刚刚发现DrupalGoogleAdSense模块具有很大的灵活性,与Adsense代码结合使用可以解决这个问题。非常感谢。