如何在多语言网站上从 id 获取节点路径?
How to get node path from id on multi lingual website?
我有一个节点,有nid。即 78,它是法语(主要语言是英语),所以它的本地名称是:
fr/node/78
或者只是
node/78
?
该页面还有一些别名,即 "hello" 所以它的相对路径是:
/fr/hello
我怎样才能得到那个相对路径?
是的,我知道:
$alias = drupal_get_path_alias('node/78');
应该给我我的页面别名,但它不起作用,可能是因为不同的语言?!?或者应该是:
$alias = drupal_get_path_alias('fr/node/78');
我都试过了,但其中 none 有效?!?我无法相信没有可用的简单函数,它将节点 ID 作为参数和 return SEO(带别名)页面路径?!?
请帮忙。如果我有 nid,在多语言网站上获取节点 seo 路径的最简单方法是什么?
终于明白了。如果其他人遇到这个问题:
// Returns root relative path
function get_node_url_ml ($nid, $language){
$defaultLanguage = language_default();
$local_path = 'node/' . $nid;
$url = drupal_lookup_path('alias', $local_path, $language);
if (!$url) $url = 'node/' . $nid;
if ($language != $defaultLanguage->language) $url = $language.'/'.$url;
return '/'.$url;
}
我有一个节点,有nid。即 78,它是法语(主要语言是英语),所以它的本地名称是:
fr/node/78
或者只是
node/78
?
该页面还有一些别名,即 "hello" 所以它的相对路径是:
/fr/hello
我怎样才能得到那个相对路径?
是的,我知道:
$alias = drupal_get_path_alias('node/78');
应该给我我的页面别名,但它不起作用,可能是因为不同的语言?!?或者应该是:
$alias = drupal_get_path_alias('fr/node/78');
我都试过了,但其中 none 有效?!?我无法相信没有可用的简单函数,它将节点 ID 作为参数和 return SEO(带别名)页面路径?!?
请帮忙。如果我有 nid,在多语言网站上获取节点 seo 路径的最简单方法是什么?
终于明白了。如果其他人遇到这个问题:
// Returns root relative path
function get_node_url_ml ($nid, $language){
$defaultLanguage = language_default();
$local_path = 'node/' . $nid;
$url = drupal_lookup_path('alias', $local_path, $language);
if (!$url) $url = 'node/' . $nid;
if ($language != $defaultLanguage->language) $url = $language.'/'.$url;
return '/'.$url;
}