ビューテンプレートを使用して、フィールドの表示方法を上書きしています。
ノードへのリンクをフィールドに含めたい。
ノードが与えられた場合、ノードの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>
この場合、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);
_
ビューで、Node:Pathフィールドを出力する必要があります。次に、以下を使用してビューの情報にアクセスできます。
$fields["path"]->content;
適切なseoフレンドリーなURLを得るには、検索パス関数を使用します。
$パス= drupal_lookup_path( 'エイリアス'、 "ノード/".$ノード-> nid)
ビューテンプレートでは$ view変数を使用できるようにする必要があるため、以下を使用できます。
$nid = $view->result[$id]->nid;
$path = "node/".$nid;
ノードへのURLはnode/$node->nid
。 l() 関数を使用してリンクを生成し、常に正しいURLが出力されるようにすることを強くお勧めします。
あなたのコード例では次のようになります:
$node = node_load($row->{$field->field_alias});
$wrapper = entity_metadata_wrapper('node', $node);
print l(t('Go to Node'), 'node/' . $node->nid);