0

Drupal 7 は初めてです。

さまざまな基本ページがあり、メタ タグを使用してすべてのページをループしたい:

<meta http-equiv="refresh" content="20; url=http://sitename/node/page2" />

ページ2にはメタタグがあります

<meta http-equiv="refresh" content="10; url=http://sitename/node/page3" />

これどうやってするの?基本ページのみにメタタグを追加したい

TEMPLATEUSED_preprocess_html を使用してメタ タグを追加しようとしましたが、動的ではなく、すべてのページに適用されるため、間違っていることに気付きました。

4

2 に答える 2

1

drupal_add_html_headは、head にタグを追加するのに便利です。以下の例を確認してください。

// First, we must set up an array
$element = array(
  '#tag' => 'link', // The #tag is the html tag - <link />
  '#attributes' => array( // Set up an array of attributes inside the tag
     'href' => 'http://fonts.googleapis.com/css?family=Cardo&subset=latin', 
     'rel' => 'stylesheet',
     'type' => 'text/css',
  ),
);
drupal_add_html_head($element, 'google_font_cardo');

これにより、次の HTML が出力されます。

<link href="http://fonts.googleapis.com/css?family=Cardo&amp;subset=latin" rel="stylesheet" type="text/css" />
于 2012-10-11T15:39:53.213 に答える
1

これは古い質問ですが、より具体的な回答がないままです。template.php 内に head 要素を追加するには、preprocess_html を使用する必要があるようです。$node は利用できません (少なくとも template.php/preprocess_html 内からアクセスできませんでした) が、drupal_get_path_alias を使用してパスを取得できました。これは元の質問が要求したものです。

これは私の実際の例です:

function THEMENAME_preprocess_html(&$variables) {
  if (drupal_get_path_alias() == "node/45") {
    $meta_refresh = array(
      '#type' => 'html_tag',
      '#tag' => 'meta', 
      '#attributes' => array( 
         'http-equiv' => 'refresh',
         'content' => '900, url=/node/45',
      ),
    );
    drupal_add_html_head($meta_refresh, 'meta_refresh');
  }
}

case ステートメントを使用すると、ウォーレンの 2 つのパスにより適している場合があります。

于 2014-10-15T17:15:23.920 に答える