URLエイリアスでノードを取得する方法は?


37

node_load()関数を使用して、タイトルでノードをロードできることを知っています。URLエイリアスでノードをロードすることは可能ですか?

回答:


56

menu_get_objectdrupal_lookup_pathを調査します

このようなことはあなたが望むことをするでしょう:

$alias = "some/path/to/a/page";
$path = drupal_lookup_path("source", $alias);
$node = menu_get_object("node", 1, $path);

また、URLエイリアスを動的に取得するには、次を実行します。$ alias = $ _SERVER ['REQUEST_URI']; $ alias = substr($ alias、1); //文字列の先頭から「/」を削除するには
ユージンパブロフ

@EugenePavlov-ある$alias = drupal_get_path_alias();べきです。
leymannx

0

Drupal 8でこれを行う方法を見つけたい人のために、対応する質問と回答があります

ページエイリアスからノードのnidを取得するにはどうすればよいですか?

use \Drupal\Core\Url;

$alias = \Drupal::service('path.alias_manager')->getPathByAlias('/etapes-de-la-vie');
$params = Url::fromUri("internal:" . $alias)->getRouteParameters();
$entity_type = key($params);
$node = \Drupal::entityTypeManager()->getStorage($entity_type)->load($params[$entity_type]);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.