TwigテンプレートでノードURLを取得するにはどうすればよいですか?


22

TwigテンプレートでノードURLを取得しようとしています。{{ content.node_link }}完全なリンクを返しますが、URLのみが必要です。

ノードURLを取得するにはどうすればよいですか?


4
ノードテンプレートを見ると、それurlが利用可能な変数であることがわかります。したがって{{ url }}、たとえば単純に印刷すると、未加工のURLがレンダリングされます。/node/[nid]つまり/node/30、ラップマークアップはありません。それはあなたがやろうとしていることですか?
ダニーイングランド

回答:



11

node.html.twigでは、直接使用できます {{ url }}

<a href="{{ url }}">read more</a>

詳細については、コアテンプレートのコメントを参照してください/core/modules/node/templates/node.html.twig::

{#
/**
 * @file
 * Default theme implementation to display a node.
 *
 * Available variables:
 * - node: The node entity with limited access to object properties and methods.
 * ...
 * - url: Direct URL of the current node.
 * ...
#}
...

<article{{ attributes }}>

  {{ title_prefix }}
  {% if not page %}
    <h2{{ title_attributes }}>
      <a href="{{ url }}" rel="bookmark">{{ label }}</a>
    </h2>
  {% endif %}
  {{ title_suffix }}

「単純に」ではなく、あなたの答えをもっと説明すべきです。このよう@Dannyイングランダーは、質問のコメントに書いたものとして説明は、アスカーなどについてさらに学ぶことができますどのようにあなたがあなたの答えとそれらがどのように将来的に自分自身を助けることができると思いついたの。
-mradcliffe

これは、ノード小枝テンプレートで組み込み変数を使用する最も簡単な方法です。
エリックスタインボーン

それは受け入れられる答えであるはずです
カプセル

7

私はこのソリューションが機能することを発見しましたが、かなり複雑です。

{{ path('entity.node.canonical', {'node': content['#node'].id()  }) }}

4
node.id代わりに使用できるcontent['#node'].id()
-4k4

2
表示スイートテンプレートを使用してビューを操作していますが、「ノード」は使用可能なキーの1つではありません。{{dump(_context | keys)}}はこれらのキーのみを提供します: 'content'、 'theme_hook_original'、 'attributes'、 'title_attributes'、 'content_attributes'、 'title_prefix'、 'title_suffix'、 'db_is_active'、 'is_admin' 'LOGGED_IN'、 'ユーザー'、 'ディレクトリ'、 '設定'、 'レイアウト'、 '#cache'、 'theme_hook_suggestions'を
inalto

ディスプレイスイートテンプレートの優れたソリューション。@ 4k4 content['#node'].id()はDSコンテキストに適しています。
マスターチーフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.