web-dev-qa-db-fra.com

Comment ajouter des balises META personnalisées à une page d'affichage?

Il ne semble pas y avoir de réponse pour Drupal 8 pour le moment. J'ai le module de métabalises installé, c'est un excellent module, mais ne semble pas adresser les vues du tout. Cet article pour Drupal 7 dit qu'il est livré avec un module 'vues de balises méta', mais, cela ne semble pas être vrai pour Drupal 8. J'ai également essayé d'installer metatag quick , mais cela ne fait rien du tout. Je suis donc bloqué. Existe-t-il un moyen de le faire par programme en D8, comment faire?

7
Josh Coast

Je crois en fait que mon commentaire fournit une réponse à cette question; cela ne peut pas encore être fait ...

Mais en regardant le problème , il semble être assez actif pour le moment et il est prévu pour la première version candidate. Il y a un patch disponible et cgmonroe a affirmé que cela fonctionnait dans sa version beta 11 du module.

Vous pouvez donc attendre la sortie de RC1, qui contiendra très probablement l'intégration de Views, ou vous pouvez essayer d'appliquer le correctif.

2
Neograph734

La version actuelle du module Metatag comprend un sous-module "Metatag: Views". En activant cela, vous obtenez une nouvelle section dans votre éditeur de vues pour définir toutes les métabalises disponibles (des balises spécifiques sont disponibles dans d'autres sous-modules d'une manière très drupal). metatag: views

10
nessunluogo

Pendant que nous attendons que le module de métabalises se rattrape, j'utilise quelque chose comme ça dans le fichier .theme De mon thème:

<?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
75th Trombone

J'ai fini par transformer toutes mes pages View en blocs, puis en ajoutant le bloc à une page de base. De là, je peux éditer et ajouter des balises META à volonté. Ce n'est pas une solution idéale, mais devrait nous en sortir jusqu'à la sortie du nouveau module. Merci @ Neograph734 d'avoir fait la lumière sur le problème.

1
Josh Coast

Veuillez suivre les étapes suivantes:
1) Installez le module metatag
2) Activez-le 3) Activez maintenant le module "Metatag: Views" qui est le module enfant de Metatag
4) Vider maintenant le cache
5) Maintenant, allez à la page des vues
6) Vous pouvez voir l'option "META TAGS" sous la "LANGUAGE"
enter image description here 7) Maintenant, soit vous avez laissé l'option "Utiliser les valeurs par défaut" ou cliquez simplement dessus et changez le titre méta de la page
8) Ce titre définira le contenu de la langue par défaut
9) Pour le contenu d'une autre langue, vous devez aller pour traduire une page des mêmes vues
10) D'abord, traduisez les vues
11) Modifier la vue traduite
12) Recherchez maintenant le "Titre de la page" sous "PARAMÈTRES D'AFFICHAGE DE PAGE"
enter image description here 13) Modifiez le titre en conséquence
14) Enregistrez-le
15) Voir le méta-titre de la page d'une autre langue, il sera changé maintenant
16) Veuillez vider le cache s'il ne reflète pas

0
user50292