首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从metatag字段获取描述文本

如何从metatag字段获取描述文本
EN

Drupal用户
提问于 2022-01-12 12:41:40
回答 1查看 715关注 0票数 2

我的Drupal 9实例中的一个内容类型使用Metatag模块。我希望提取“description”元值,并将其包含在一个小枝模板中(用于节点)。

但是,当我查看可用的变量时,它看起来像是field_metatag包含了serialize()-ed代码。

我想做这样的事

代码语言:javascript
复制
  {{ node.field_metatag.description|e('html') }}
EN

回答 1

Drupal用户

回答已采纳

发布于 2022-01-12 14:50:09

您可以通过node.field_metatag.value获得序列化数据。

但似乎没有现成的非序列化过滤器用于Twig。标记被隐藏在节点上,因为它们应该在页面级别上使用。因此,您可以自己编写一个非序列化过滤器,或者将描述预处理到模板中。

我发现下面的预处理是有效的。

代码语言:javascript
复制
/**
 * Implements template_preprocess_node().
 */
function MYTHEME_preprocess_node(&$variables) {
  $node = $variables['node'];

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

  if (!empty($tags['description'])) {

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

    $variables['my_description'] = strip_tags($description);
  }
}
代码语言:javascript
复制
{% if my_description %}
  {{ my_description }}
{% endif %}
票数 3
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/309138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档