Як отримати вузол за його псевдонімом URL?


37

Я знаю, що можу завантажити вузол за його заголовком з node_load()функцією. Чи можна завантажити вузол за його псевдонімом URL?

Відповіді:


56

Ви хочете дослідити 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);

Крім того, для динамічного захоплення псевдоніму url зробіть наступне: $ alias = $ _SERVER ['REQUEST_URI']; $ alias = substr ($ псевдонім, 1); // видалити "/" з початку рядка
Євген Павлов

@EugenePavlov - так і $alias = drupal_get_path_alias();має бути.
leymannx

0

Для того, хто шукає, як це зробити в Drupal 8, ось відповідне запитання та відповідь

Як я можу отримати назву вузла з псевдоніма сторінки?

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]);
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.