次のようなカスタムメタタグをD7サイトに追加する必要があります: http://groups.drupal.org/node/83069 。可能なオプションは何ですか?メタタグモジュールがあることは知っていますが、カスタムタグをサポートしていないようです。
テーマを変更することはできますが、ユーザーが構成できるソリューションが必要です。
Meta tags quick をご覧になりましたか?
メタタグ生成モジュールの比較ページ があります。
メタタグ は、hook_metatag_metatags_view_alter()を実装することにより、カスタムタグをサポートします。カスタムエンティティからOpen Graphvideo:durationメタタグを追加するには、次のフック実装を参照してください。
/**
* Alter metatags before being cached.
*
* This hook is invoked prior to the meta tags for a given page are cached.
*
* @param array $output
* All of the meta tags to be output for this page in their raw format. This
* is a heavily nested array.
* @param string $instance
* An identifier for the current page's page type, typically a combination
* of the entity name and bundle name, e.g. "node:story".
*/
function mycustommodule_metatag_metatags_view_alter(&$output, $instance) {
if ($instance == 'mycustom:entity') {
$entity = mycustomentity_load(someid);
$duration = $entity->duration;
$output['video:duration']['#attached']['drupal_add_html_head'][0] = array(
array(
'#theme' => 'metatag_opengraph',
'#tag' => 'meta',
'#id' => 'video:duration',
'#name' => 'video:duration',
'#value' => $duration,
),
'video:duration',
);
}
}
遅く返信しますが、これは他の人に役立つかもしれません:
私の解決策についてここに書きました http://mymixerone.blogspot.in/2012/11/adding-meta-tags-in-drupal-node.html
参考になれば、ぜひご覧ください。
ここに簡単な解決策があります、これをtemplet.phpファイルに追加してみてください:
<?php
function <theme-name>_preprocess_html(&$variables) {
switch(arg(1)) {
//current-issues, node id 33
case "33" :
// title
$variables['head_title']= "New Title";
//key-words
$page_keywords = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'keywords',
'content' => 'all keywords for this node',
)
);
drupal_add_html_head($page_keywords, 'page_keywords');
break;
//node id 20
case "20" :
// title
$variables['head_title']= "New Title";
break;
}
}
?>
他のタグも同様に追加できます。
アトゥルありがとう。 Drupalサポートモジュールで30秒ごとにページを更新するために、あなたのアプローチを使用しました。
function garland_preprocess_html(&$vars) {
//Adding Refresh to main tikets page BEGIN
//print 'Node id = ';print(arg(1));
switch(arg(1)){
//check node id : if nid=kontora then use custom "Refresh setup" (must be the name of client you want to refresh)
case "client1" :
/*Implementation of HTML equivalent <meta http-equiv="Refresh" content="30" />*/
$http_equiv = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'http-equiv' => 'Refresh',
'content' => '30',
)
);
drupal_add_html_head($http_equiv, 'http_equiv');
// Meta tag code here
break;
/*
//node id 20
case "20" :
// Meta tag code here
break;*/
}
//Adding Refresh to main tikets page END
}
カスタムモジュールにhook_metatag_infoを実装し、メタタグを定義して、UIで構成することもできます。
この実装は、例としてメタタグモジュールから確認できます http://www.drupalcontrib.org/api/drupal/contributions%21metatag%21metatag_opengraph%21metatag_opengraph.metatag.inc/function/metatag_opengraph_metatag_info/7