2012-11-26 48 views
1

我想將Drupal的帖子導出到Wordpress(這本身就是一件麻煩事)。我無法弄清楚如何維護博客文章的URL。其中一些是自定義的:如何從Drupal數據庫獲得發佈slu 012

博客標題爲土壤故事是blog/2012/03/03/soil-story在Drupal。一個名爲Welcome John Doe的只是/john

是否有Drupal函數來製作這些網址?它在哪裏存儲定製的博客文章?

回答

-2

我發現url_alias表Drupal數據庫,和我跑這條SQL語句:現在

UPDATE `url_alias` 
    SET src=SUBSTRING_INDEX(`src`, '/', -1), 
     dst=SUBSTRING_INDEX(`dst`, '/', -1) 
    WHERE 1 

SRC是NID現在DST是蛞蝓。我可以重命名它們,然後INSERT INTO wp_posts作爲post_name

3

您可以使用url方法獲取URL別名。

$url = url('node/' . $nid); 
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

我發現上述非常有幫助,因爲我希望從數據庫中獲得我所需要的內容,而不是使用函數。它給了我一個很好的起點,但是運行它時,它只是出錯,因爲它們不是正確的列名。請記住,這個更新了一些東西,如果你沒有在數據庫的副本上工作,它將會破壞所有的東西。此代碼將解決這個問題:因爲即時通訊在地方做的事情並不大

UPDATE `url_alias` 
    SET source=SUBSTRING_INDEX(`source`, '/', -1), 
     alias=SUBSTRING_INDEX(`alias`, '/', -1) 
    WHERE 1 

我只是增加兩個NID和蛞蝓,然後運行這個查詢

UPDATE `url_alias` 
    SET nid=SUBSTRING_INDEX(`source`, '/', -1), 
     slug=SUBSTRING_INDEX(`alias`, '/', -1) 
    WHERE 1