Làm thế nào để có được một nút bằng bí danh url của nó?


37

Tôi biết tôi có thể tải một nút theo tiêu đề của nó với node_load()chức năng. Có thể tải một nút bằng bí danh URL của nó không?

Câu trả lời:


56

Bạn muốn điều tra menu_get_objectdrupal_lookup_path .

Một cái gì đó như thế này sẽ làm những gì bạn muốn:

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

Ngoài ra, để tự động lấy bí danh url, hãy thực hiện tiếp theo: $ alias = $ _SERVER ['REQUEST_URI']; $ bí danh = chất nền ($ bí danh, 1); // để xóa "/" khỏi đầu chuỗi
Eugene Pavlov

@EugenePavlov - $alias = drupal_get_path_alias();nên là nó.
leymannx

0

Đối với ai đó đang tìm cách làm điều này trong Drupal 8, đây là câu hỏi và câu trả lời tương ứng

Làm thế nào tôi có thể nhận được nid của một nút từ bí danh trang?

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]);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.