Drupal 8の回答はまだありません。 メタタグモジュール をインストールしました。これは素晴らしいモジュールですが、ビューにまったく対応していないようです。 この投稿 for Drupal 7は、「メタタグビュー」モジュールが付属していると述べていますが、これはDrupal 8には当てはまらないようです。 metatag quick もインストールしようとしましたが、何もできません。だから私は行き詰まっています。 D8でこれをプログラムで行う方法はありますか?どうすればこれを達成できますか?
Metatagモジュールの現在のバージョンには、サブモジュール「Metatag:Views」が含まれています。これを有効にすると、ビューエディターで新しいセクションを取得して、使用可能なすべてのメタタグを設定します(特定のタグは、他のサブモジュールでdrupalの方法で)使用できます)。
メタタグモジュールが追いつくのを待つ間、テーマの.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');
}
}
私はすべてのビューページをブロックにして、そのブロックを基本ページに追加することになりました。そこから、メタタグを自由に編集して追加できます。理想的なソリューションではありませんが、新しいモジュールがリリースされるまでは問題ないでしょう。この問題に光を当ててくれた@ Neograph734に感謝します。
次の手順を実行してください。
1)インストール metatag モジュール
2)有効にします3)メタタグの子モジュールである "Metatag:Views"モジュールを有効にします
4)キャッシュをクリアします
5)ビューページに移動
6)「言語」の下に「META TAGS」オプションが表示されます
7)「デフォルトの使用」オプションをそのままにするか、それをクリックしてページのメタタイトルを変更します
8)このタイトルは、デフォルトの言語コンテンツに設定されます
9)他の言語のコンテンツの場合、同じビューのページを翻訳する必要があります
10)まず、ビューを翻訳します
11)翻訳されたビューを編集する
12)「ページ表示設定」の下の「ページタイトル」を検索してください
13)それに応じてタイトルを変更します
14)保存する
15)変更される他の言語のページのメタタイトルを確認します
16)反映されていない場合は、キャッシュをクリアしてください