Come ottenere un nodo dal suo alias url?


37

So che posso caricare un nodo dal suo titolo con la node_load()funzione. È possibile caricare un nodo con il suo alias URL?

Risposte:


56

Vuoi investigare menu_get_object e drupal_lookup_path .

Qualcosa del genere farebbe quello che vuoi:

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

Inoltre, per afferrare dinamicamente l'alias url fai il prossimo: $ alias = $ _SERVER ['REQUEST_URI']; $ alias = substr ($ alias, 1); // per rimuovere "/" dall'inizio della stringa
Eugene Pavlov,

@EugenePavlov - $alias = drupal_get_path_alias();dovrebbe essere.
leymannx,

0

Per qualcuno che cerca di scoprire come farlo in Drupal 8, ecco la domanda e la risposta corrispondenti

Come posso ottenere il nid di un nodo dall'alias di pagina?

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]);
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.