web-dev-qa-db-ja.com

node_load()を使用してノードをロードするときにノードのURLエイリアス/パスを取得します

node_load()がノードオブジェクトのノードURLエイリアスを返さないか、何か不足していますか?.

URLエイリアス/パスを取得する1つの方法はdrupal_get_path_alias("node/NODE_ID")を使用することですが、node_loadによって返されるオブジェクトにノードURLエイリアスも含まれていることを望んでいました。

3
Ankit Agrawal

いいえ、URLエイリアスはフィールドでもエンティティプロパティでもありません。また、読み込まれたときにノードオブジェクトに追加されません。

hook_node_load() を使用してそのデータを追加するのは簡単です

function MYMODULE_node_load($nodes, $types) {
  foreach ($nodes as $node) {
    $node->url_alias = url("node/$node->nid");
  } 
}
4
Clive