web-dev-qa-db-ja.com

設定方法Nodeプログラムでパス/エイリアス

Drupal 6にいくつかのノードをプログラムで作成しています。空のオブジェクトを作成し、いくつかのプロパティを設定して、オブジェクトでnode_save()を呼び出します。

オブジェクトをもう一度印刷すると、node_save()がノードオブジェクトを参照によって変更するため、新しいプロパティが表示されますが、パスプロパティは表示されませんが、Drupalから常に表示できます「node/NID」のノード。

「ノード/ NID」はパスですか?

ノード自体に「ユーザーフレンドリーな」パスプロパティを設定せず、ノード自体のパスプロパティをいじるのではなく、node_saveの後にpath_set_alias()を使用するだけですか?

6
Aaron

node/[nid]は確かに任意のノードへのパスです。これがノードモジュールでの定義方法です。 node_menu 関数。

pathauto モジュールを使用すると、自動エイリアスのルールを設定できるため、ノードのエイリアスを自分で把握する必要がありません。これは、カスタムモジュールのロジックをハードコーディングする代わりに、「ユーザーフレンドリー」または「SEO最適化」の自動URLを作成するための推奨される方法です。

4
googletorp

ノードの正規URLは http://example.com/node/ _<nid>_;です。パスエイリアスを設定したい場合は、path_set_alias('node/' . $node->nid, $alias)で設定する必要があります。

5
kiamlaluno