web-dev-qa-db-ja.com

ノードへのパスを取得する方法

ビューテンプレートを使用して、フィールドの表示方法を上書きしています。

ノードへのリンクをフィールドに含めたい。

ノードが与えられた場合、ノードのURL(相対は問題ありません)を取得するにはどうすればよいですか?

オーバーライドされたテンプレートにノードがありますが、そこからどこに行くべきかわかりません:

$node = node_load($row->{$field->field_alias});
$wrapper = entity_metadata_wrapper('node', $node);

$path_to_node = ???

?><a href="<?php print $path_to_node ?>">Go to Node</a>
4
ChristopherJ

この場合、entity_metadata_wrapperは必要ありません。ノードのパスはurl()関数を使用して取得できます。

_$node = node_load($row->{$field->field_alias}); 
$nid = $node->nid; 
$path_to_node = url("node/$nid");
_

そして、私はЕлинЙの答えに同意します。 l()関数を使用できます。すでにurl()関数を使用しています。したがって、次を使用してノードpathautoエイリアスとのリンクを構築できます。

_$node = node_load($row->{$field->field_alias}); 
print l(t('Go to Node'), 'node/' . $node->nid);
_
2
milkovsky

ビューで、Node:Pathフィールドを出力する必要があります。次に、以下を使用してビューの情報にアクセスできます。

$fields["path"]->content;
1
Keith Holliday

適切なseoフレンドリーなURLを得るには、検索パス関数を使用します。

$パス= drupal_lookup_path( 'エイリアス'、 "ノード/".$ノード-> nid)

0

ビューテンプレートでは$ view変数を使用できるようにする必要があるため、以下を使用できます。

$nid = $view->result[$id]->nid;
$path = "node/".$nid;
0
Kevin

ノードへのURLはnode/$node->nidl() 関数を使用してリンクを生成し、常に正しいURLが出力されるようにすることを強くお勧めします。

0
Елин Й.

あなたのコード例では次のようになります:

$node = node_load($row->{$field->field_alias});
$wrapper = entity_metadata_wrapper('node', $node);
print l(t('Go to Node'), 'node/' . $node->nid);
0
Pontus Nilsson