Как получить узел по его URL-псевдониму?


Я знаю, что могу загрузить узел по его названию с помощью функции node_load(). Можно ли загрузить узел по его псевдониму URL-адреса?

 37
Author: Laxman13, 2011-11-10

2 answers

Вы хотите исследовать menu_get_object и путь drupal_lookup_path.

Что-то вроде этого сделало бы то, что вы хотите:

$alias = "some/path/to/a/page";
$path = drupal_lookup_path("source", $alias);
$node = menu_get_object("node", 1, $path);
 56
Author: mpdonadio, 2011-11-10 20:28:15

Для тех, кто хочет узнать, как это сделать в 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]);
 1
Author: anoopjohn, 2019-11-14 02:17:43