Drupal 8にはまだ答えがないようです。私が持っているメタタグモジュールがインストールされ、それは偉大なモジュールですが、すべてのアドレスビューにいないようです。Drupal 7のこの投稿には、「メタタグビュー」モジュールが付属していると書かれていますが、これはDrupal 8には当てはまらないようです。メタタグクイックもインストールしようとしましたが、まったく何もできません。だから私は行き詰まっています。D8でこれをプログラムで行う方法はありますか?どうすればこれを達成できますか?
Drupal 8にはまだ答えがないようです。私が持っているメタタグモジュールがインストールされ、それは偉大なモジュールですが、すべてのアドレスビューにいないようです。Drupal 7のこの投稿には、「メタタグビュー」モジュールが付属していると書かれていますが、これはDrupal 8には当てはまらないようです。メタタグクイックもインストールしようとしましたが、まったく何もできません。だから私は行き詰まっています。D8でこれをプログラムで行う方法はありますか?どうすればこれを達成できますか?
回答:
メタタグモジュールの現在のバージョンには、サブモジュール「メタタグ:ビュー」が含まれています。これを有効にすると、ビューエディターに新しいセクションが表示され、利用可能なすべてのメタタグが設定されます(特定のタグは他のサブモジュールで非常に単純な方法で利用できます)。
私はすべてのビューページをブロックにして、そのブロックを基本ページに追加することになりました。そこから、メタタグを自由に編集して追加できます。理想的な解決策ではありませんが、新しいモジュールがリリースされるまでは問題ないでしょう。この問題に光を当ててくれた@ Neograph734に感謝します。
metatagモジュールが追いつくのを待つ間、テーマの.theme
ファイルで次のようなものを使用しています。
<?php
function THEMENAME_preprocess_html(&$variables) {
// Set up the tag structure that's always the same no matter what page you're on
$tag = array(
'#tag' => 'meta',
'#attributes' => array(
'name' => 'description',
'content' => FALSE,
),
);
// Switch on the current page path. Apparently Drupal 8 paths have leading slashes now
switch(\Drupal::service('path.current')->getPath()) {
case '/your/view/path':
$tag['#attributes']['content'] = 'Your view’s description';
break;
case '/another/view/path':
$tag['#attributes']['content'] = 'Another view’s description';
break;
}
// Only add the tag if an option matched the current path
if($tag['#attributes']['content']) {
// 'THEMENAME_meta_description' is my best guess for a good identifier.
// Maybe there's something better?
$variables['page']['#attached']['html_head'][] = array($tag, 'THEMENAME_meta_description');
}
}
次の手順を実行してください:
1)インストールメタタグモジュール
2)有効にする3)メタタグの子モジュールである「メタタグ:ビュー」モジュールを有効にする
4)キャッシュをクリアする
5)ビューのページに移動する
6)「META TAGS」オプションが「 LANGUAGE "
7)[デフォルトを使用]オプションをそのままにしておくか、クリックしてページのメタタイトルを変更します
8)このタイトルはデフォルトの言語コンテンツに設定されます
9)他の言語コンテンツの場合は、同じビューのページ
10)まず、ビューを翻訳します
11)翻訳されたビューを編集します
12)次に、「ページ表示設定」の下の「ページタイトル」を検索します
13)タイトルを適宜変更し
ます14)保存します
15)変更される他の言語のページのメタタイトルを参照して
ください。16)反映されていない場合は、キャッシュをクリアしてください。