【问题标题】:Getting the URL of a node in Drupal 7在 Drupal 7 中获取节点的 URL
【发布时间】:2012-01-27 10:32:18
【问题描述】:

目标:发送一封电子邮件,其中包含从节点生成的 URL 列表。

在我的自定义模块中,我设法获取了用户想要的节点 ID,现在我想获取每个节点的 URL 以放入我的电子邮件中。

我搜索了数据库并使用了谷歌,但似乎找不到合适的解决方案。

看来我们需要像这样构造 URL:

<?php
global $base_url;
$link=$base_url."// few more parameters 

【问题讨论】:

    标签: php drupal drupal-7


    【解决方案1】:

    你可以使用url()函数:

    $options = array('absolute' => TRUE);
    $nid = 1; // Node ID
    $url = url('node/' . $nid, $options);
    

    这将为您提供绝对路径(即前面带有 http://example.com/),以及指向节点页面的 URL 别名路径。

    【讨论】:

      【解决方案2】:

      你也可以试试drupal_lookup_path('alias',"node/".$node-&gt;nid)

      【讨论】:

      • 这个方法有问题吗?这似乎比批准的答案更有用,但也不那么明显。
      • 如果节点没有别名怎么办?此外,这将返回一个相对路径。
      • 与 $base_url 全局变量结合使用。
      • drupal_lookup_path() 并不总是直接可用,请改用url()
      【解决方案3】:

      你也可以通过

      $path=drupal_get_path_alias('node/'.$nid);
      

      nid 的绝对路径

      url('node/' . $node->id(), ["absolute" => TRUE]);
      

      【讨论】:

      • 如果节点没有别名怎么办?此外,这将返回一个相对路径。
      • @cambraca 是的,它返回原始路径类似于node/3
      【解决方案4】:

      您也可以使用l() 函数。

        l(t('Link text'), 'node/123', array('options' => array('absolute' => TRUE)));
      

      【讨论】:

        【解决方案5】:

        使用

        $node_url;

        它会给你当前的节点 url

        【讨论】:

        • 你没有得到问题!回答前请仔细阅读问题
        猜你喜欢
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多