【发布时间】:2011-06-01 20:04:48
【问题描述】:
我有这样的路径:
/news/2011/05/26/some-story-path
如何找到路径指向的节点的 nid?
编辑
上面的路径只是我在另一个页面上的字符串值。我需要获取有关路径链接到的节点的信息。
【问题讨论】:
我有这样的路径:
/news/2011/05/26/some-story-path
如何找到路径指向的节点的 nid?
编辑
上面的路径只是我在另一个页面上的字符串值。我需要获取有关路径链接到的节点的信息。
【问题讨论】:
你可以使用 menu_get_object:
$node = menu_get_object();
见http://api.drupal.org/api/drupal/includes--menu.inc/function/menu_get_object/6
编辑
我认为你可以像这样指定你的路径
menu_get_object($type = 'node', $position = 1, $path = '/news/2011/05/26/some-story-path');
【讨论】:
SELECT src FROM url_alias WHERE dst = '$path';,然后我使用$node = menu_get_object('node', 1, $src);
在 Drupal 6 中...
如果知道url别名,就可以检索内部系统路径:
$nid = str_replace("node/","",drupal_lookup_path("source","my/drupal/path"));
在 php 中,查看/编辑节点时,您也可以像这样检索它:
function get_current_nid () {
if (arg(0) == 'node' && is_numeric(arg(1)) { return arg(1); }
return null;
}
$nid = get_current_nid();
drupal_set_message("The current node id is: $nid");
【讨论】:
news/2011/05/26/some-story-path)不是我所在的页面。它只是我拥有的一个字符串值,我需要检索有关它链接到的节点的信息。我相信你的方法只有在 /news/2011/05/26/some-story-path 的页面上才有效。