我需要將舊數據庫導入到WordPress。容易嗎?那麼不那麼容易,我需要保持相同的帖子ID,因爲我使用了包含帖子ID的自定義永久鏈接結構。將自定義數據庫導入wordpress並保留帖子ID
例如:/%postname%+id-%post_id%.html。
我該怎麼做?
我需要將舊數據庫導入到WordPress。容易嗎?那麼不那麼容易,我需要保持相同的帖子ID,因爲我使用了包含帖子ID的自定義永久鏈接結構。將自定義數據庫導入wordpress並保留帖子ID
例如:/%postname%+id-%post_id%.html。
我該怎麼做?
找出您的舊數據庫中的最舊(最小的id)。 讓我們假設這45
開始用新安裝的WP和刪除的「Hello World」的帖子這樣的帖子,post_meta和term_relationships表沒有什麼做的是「世界你好」後
截斷自己的帖子表,並設置初始值45,從而進入了第一個記錄將有ID 45.
同時
之前遷移舊的數據庫記錄開始遷移,一個記錄,計算出的區別和prev記錄。例如,如果你的下一篇文章得到了ID 46,那麼46-45 = 1。 1是好的,正常遷移也是如此。 (通常運行wp_insert) 當您發現差異不是1時,則根據需要創建儘可能多的虛擬記錄。例如,如果記錄是49,則49-45 = 4。這意味着,你需要3個虛擬記錄。因此,在帖子標題中運行3個wp_inserts短語「待刪除」。 ,然後做你的第49次記錄遷移。
你繼續這樣下去,直到你達到你最古老的(最年輕的)記錄。
然後只需刪除標題爲「待刪除」的所有記錄。但始終使用WP api。以便跨表保持關係完整性。
我明白。謝謝 ! – 2013-04-06 18:21:50
這可能是矯枉過正 - 即使它是一個自動增量,也沒有什麼能阻止你在posts表中設置任何你想要的ID。如果「舊」數據庫是WordPress的數據庫,那麼您可以使用'mysqldump'來創建一個導出文件,您可以將它們直接導入新數據庫。 – doublesharp 2013-04-06 19:06:16
假設這些都是WordPress數據庫,那麼處理此問題的最簡單方法是使用mysqldump
創建導出,然後針對新數據庫執行生成的SQL文件。默認情況下它會導出所有的表格,所以如果你只想要其中的一些表格,你需要明確地指定它們。 WordPress的帖子的 「重要」 的表格:
wp_posts
- 職位wp_postmeta
- 後元值wp_term_relationships
- 職位,以分類wp_term_taxonomy
- 分類wp_terms
- 實際的標籤和類別值要導出您的dat基於SQL文件,適當地替換USERNAME,PASSWORD和DATABASE。這將刪除/創建/填充表,因此如果您只想要數據使用–no-create-info
選項。
mysqldump -u USERNAME -pPASSWORD DATABASE > dump.sql
要那麼dump.sql
文件導入到新的數據庫:
mysql -u USERNAME -pPASSWORD NEW_DATABASE < dump.sql
所有數據庫ID將保持不變。
@SAM:編輯時,請修復需要在帖子中修復的_everything_。不要只刪除一個標籤。 – 2014-07-10 11:15:48
@ S.L.Barth對不起,我正在清理標籤問題。 – Mehraban 2014-07-10 11:18:12