我正在尝试将 Drupal 帖子导出到 Wordpress(这本身就是一件麻烦事)。我不知道如何维护博客文章的 URL。其中一些是定制的:
名为“土壤故事”的博客blog/2012/03/03/soil-story
位于 Drupal 中。一个名为 Welcome John Doe 的文章很简单/john
是否有创建这些 URL 的 Drupal 函数?它在哪里存储定制的博客文章?
您可以使用该url
方法获取 URL 别名。
$url = url('node/' . $nid);
您应该能够使用以下命令获取节点的别名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 函数功能似乎差不多,所以我想这取决于您的个人喜好。
另见:http ://daipratt.co.uk/how-to-get-the-path-of-a-node-from-the-node-id-in-drupal/
我发现上面的内容非常有用,因为我希望在查找时从数据库中获得所需的信息,而不是通过使用函数。它给了我一个很好的起点,但是在它所在的位置运行它只会出错,因为这些不是正确的列名。请记住,如果您不处理数据库副本,这会更新内容并且会破坏所有内容。此代码将修复它:
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
我在 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