我正在尝试将Drupal帖子导出到Wordpress(这本身就很麻烦)。我无法弄清楚如何维护博客帖子的URL。其中一些是定制的:
在Drupal中标题为“土壤的故事”的博客是blog/2012/03/03/soil-story
。名为Welcome John Doe的名字只是/john
是否有Drupal功能来制作这些网址?它在哪里存储自定义博客文章?
答案 0 :(得分:3)
您可以使用url
方法获取网址别名。
$url = url('node/' . $nid);
答案 1 :(得分:2)
您应该可以使用drupal_lookup_path
:
// alias: return an alias for a given Drupal system path (if one exists).
$alias = drupal_lookup_path('alias', $node->nid);
Drupal手册:drupal_lookup_path或反过来,从别名查找节点/内部路径:drupal_get_normal_path。
似乎Rawkode发布的url function函数有相同的功能,所以我想这取决于您的个人偏好。
另见:http://daipratt.co.uk/how-to-get-the-path-of-a-node-from-the-node-id-in-drupal/
答案 2 :(得分:2)
我发现上面的内容非常有用,因为我希望在我查看时从db获取所需内容,而不是使用函数。它给了我一个很好的起点但运行它因为它坐着什么都没有,只是错误,因为那些不是正确的列名。请记住这些更新的内容,如果您没有处理数据库副本,将会破坏所有内容。此代码将修复它:
UPDATE `url_alias`
SET source=SUBSTRING_INDEX(`source`, '/', -1),
alias=SUBSTRING_INDEX(`alias`, '/', -1)
WHERE 1
因为我做的事情不是很大我刚刚添加了两列nid和slug然后运行了这个查询
UPDATE `url_alias`
SET nid=SUBSTRING_INDEX(`source`, '/', -1),
slug=SUBSTRING_INDEX(`alias`, '/', -1)
WHERE 1
答案 3 :(得分:-2)
我在Drupal数据库中找到了url_alias表,并运行了这个SQL语句:
UPDATE `url_alias`
SET src=SUBSTRING_INDEX(`src`, '/', -1),
dst=SUBSTRING_INDEX(`dst`, '/', -1)
WHERE 1
src现在是nid而dst现在是slug。我可以重命名它们,然后INSERT INTO wp_posts
为post_name