Como obter um nó por seu alias de URL?


37

Eu sei que posso carregar um nó por seu título com a node_load()função É possível carregar um nó pelo alias de URL?

Respostas:


56

Você deseja investigar menu_get_object e drupal_lookup_path .

Algo assim faria o que você deseja:

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

Além disso, para pegar dinamicamente o alias de URL, faça o seguinte: $ alias = $ _SERVER ['REQUEST_URI']; $ alias = substr ($ alias, 1); // para remover "/" do início da string #
Eugene Pavlov

@EugenePavlov - $alias = drupal_get_path_alias();deveria ser isso.
Leymannx

0

Para alguém que procura descobrir como fazer isso no Drupal 8, aqui está a pergunta e resposta correspondentes

Como posso obter o nid de um nó no alias da página?

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]);
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.