Puncte:2

Cum să obțineți textul de descriere din câmpul metatag

drapel jp

Un tip de conținut din instanța mea Drupal 9 utilizează modulul Metatag. Vreau să extrag valoarea metatag-ului „descriere” și să o includ într-un șablon de crenguță (pentru nod).

Dar când mă uit la variabilele disponibile, se pare că field_metatag conține PHP serializa()-ed cod.

Vreau să fac ceva de genul

<div class="the-description">
  {{ node.field_metatag.description|e('html') }}
</div>
Puncte:3
drapel ne

Puteți obține datele serializate prin node.field_metatag.value.

Dar se pare că nu există un filtru de deserializare gata făcut pentru Twig. Și etichetele sunt ascunse de nod, deoarece ar trebui să fie folosite la nivel de pagină. Deci, fie scrieți singur un filtru de neserializare, fie preprocesați descrierea în șablon.

Am găsit că următorul preproces funcționează.

/**
 * Implementează template_preprocess_node().
 */
funcția MYTHEME_preprocess_node(&$variabile) {
  $nod = $variabile['nod'];

  $tags = \Drupal::service('metatag.manager')
    ->tagsFromEntityWithDefaults($node);

  dacă (!gol ($tags['descriere'])) {

    $descriere = \Drupal::service('metatag.token')
      ->replace($tags['description'], ['node' => $node]);

    $variables['my_description'] = strip_tags($descriere);
  }
}
{% if my_description %}
  {{ my_description }}
{% endif %}

Sos: https://imalabya.co/fetch-metatags-programmatically-drupal

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.