Posted by bzj00220 on November 4, 2013 at 6:56am
viewsで作ったページにメタタグを設定したいと思っています。
viewsで「○○の事例一覧」という表を作ってその中には事例の名称を表示させています。
メタタグのデスクリプションを下記のような感じにしたいのですがなにかいい方法はあるでしょうか?
コンテキストやメタタグモジュールでメタタグを設定することはできるのですが、views内に表示されている項目を取得してきてメタタグに表示させるということはできそうにありません。
もし、どなたかよいモジュールなどを知っていたら教えていただけば幸いです。
Comments
「views内に表示されている項目」というのが何を指してい
「views内に表示されている項目」というのが何を指しているのか、おそらくそのビューの中で「%1」や「!1」といった代替文字列に置き換えられるもの、という理解で説明しますね。
モジュールではありませんが、ビューに少しコードを加える方法です。
<?php// 表示させたい項目が代替文字列「 %1 」で置き換えられるとすると
$element = array(
'#tag' => 'meta',
'#attributes' => array(
'name' => 'description',
'content' => '%1 の事例一覧',
),
);
drupal_add_html_head($element, 'meta_description');
?>
Drupal カスタマイズTips 更新中...
CMS自由自在!
http://customfield.jp/
できれば各項目のタイトルを挿入したい
返信ありがとうございます。
試してみたところ、かなり近いところまでできています。
書いていただいた手順3のところで私の画面には置換パターンの中に
[title] == コンテンツ: タイトル
があるのですが、私の場合はそれも引用したいのです。
試しに
<?php// 表示させたい項目が代替文字列「 %1 」で置き換えられるとすると
$element = array(
'#tag' => 'meta',
'#attributes' => array(
'name' => 'description',
'content' => '%1 の事例一覧','[title]'
),
);
drupal_add_html_head($element, 'meta_description');
?>
としてみると
<meta name="description" content="○○ の事例一覧" 0="△△△←1番目の項目のタイトル" />となってしまいました。
できれば
<meta name="description" content="○○ の事例一覧・△△△←1番目の項目のタイトル・□□□←2番めの項目のタイトル・xxx←3番めの項目のタイトル" />みたいに項目のタイトルをずらっと並べたいのですがそのようにするにはどうしたら良いのでしょうか?
次のコードでどうでしょう。 分かり易いように少し書き方を変
次のコードでどうでしょう。
分かり易いように少し書き方を変えました。
<?php
// 表示させたい項目が代替文字列「 %1 」で置き換えられるとすると
$content = '%1 の事例一覧・[title]・[title_1]・[title_2]';
$element = array(
'#tag' => 'meta',
'#attributes' => array(
'name' => 'description',
'content' => $content,
),
);
drupal_add_html_head($element, 'meta_description');
?>
Drupal カスタマイズTips 更新中...
CMS自由自在!
http://customfield.jp/
ご指導ありがとうございました。
ご指導ありがとうございました。
できれば下記の点ももし分かるようでしたら教えていただければ幸いです。
以前の書き込みでは
<meta name="description" content="○○ の事例一覧・△△△←1番目の項目のタイトル・□□□←2番めの項目のタイトル・xxx←3番めの項目のタイトル" />と書きましたが、viewsに表示される項目は3つだけとは限りません。
できれば、
<meta name="description" content="○○ の事例一覧・△△△←1番目の項目のタイトル・□□□←2番めの項目のタイトル・xxx←3番めの項目のタイトル"・・・このあとのタイトルもここに表示されるようにしたい・・・ />みたいにviewsに表示される項目の数だけタイトルを表示することはできますか?
もし、できるようでしたら教えていただければ幸いです。
先の回答の手順3 で、REPLACEMENT
先の回答の手順3 で、REPLACEMENT PATTERNS で利用できる代替文字列(トークン)を確認できますので、設定したいものをすべて、先のコードの $content に含めてあげればよいです。
Drupal カスタマイズTips 更新中...
CMS自由自在!
http://customfield.jp/