如何在 Drupal 中获取当前页面 URL?

How to get current page URL in Drupal?

我正在尝试在 Drupal 站点 (Drupal 7) 上输出当前页面 URL,我尝试了以下操作...

<?php print current_path(); ?>

输出页面名称而不是 URL,关于如何输出完整的 URL 有什么想法吗?

直接 PHP 你可以使用这个:

$curPathName = $_SERVER["DOCUMENT_ROOT"];
$currentURL = $_SERVER["HTTP_HOST"];

我不明白为什么那行不通。这将为您提供路径和 URL.

如果你想让事情完成 "the drupal way",你可以使用 current_path() 或 request_path()。

https://api.drupal.org/api/drupal/includes!path.inc/function/current_path/7 https://api.drupal.org/api/drupal/includes%21bootstrap.inc/function/request_path/7

您也可以使用 $base_url 而不是依赖 $_SERVER。

durbpoisn 给出的解决方案将在浏览器中为您提供 URL。如果那是别名,您可以使用 drupal_get_normal_path() 获取内部路径

https://api.drupal.org/api/drupal/includes!path.inc/function/drupal_get_normal_path/7

您可以使用

<?php 
    global $base_url;
    print $base_url . '/' . current_path(); 
?>

在 D7 上,如果你想获取当前路径,你可以使用:

$path = drupal_get_path_alias();

因此,如果您当前的 URL 是:

www.test.com/hello/world

您将获得:

'hello/world'

在 drupal9 中

$current_path = \Drupal::service('path.current')->getPath();
$path_alias = \Drupal::service('path_alias.manager')->getAliasByPath($current_path);