使用織夢CMS每個月都被黑,,打完官方最新補丁不久又有漏洞繼續(xù)被黑,,算是受夠了,果斷把網(wǎng)站從天殺的dedecms中搬家到wordpress程序,網(wǎng)上搜索轉(zhuǎn)換教程,,折騰幾個小時,,順利把網(wǎng)站的文章轉(zhuǎn)移到wordpress程序,,保留了文章點擊數(shù),、文章日期、文章分類,,文章標簽的數(shù)據(jù)表著實弄不過來,,只能放棄!下面是具體的操作方法,操作前請備份好網(wǎng)站數(shù)據(jù),。
1,、DEDECMS文章標題等基本數(shù)據(jù)導入wordpress站點
織夢CMS的文章標題、正文和欄目分別存放在三個不同的數(shù)據(jù)表中,,而wordpress則把文章標題和正文放在一個數(shù)據(jù)表,,欄目(分類目錄)放在另一個數(shù)據(jù)表中,為了簡化后面的工作,,第一步是制作生成織夢CMS的全站RSS文件(制作方法:http://www.boke8.net/dedecms-echo-all-post-rss.html),然后通過wordpress程序后臺——工具——導入——RSS,,上傳導入生成的織夢全站RSS文件,。
這樣就可以使wordpress在wp_posts數(shù)據(jù)表上生成文章標題,在wp_terms數(shù)據(jù)表上生成文章分類,,并匹配起來,,此外通過RSS導入,wp_posts數(shù)據(jù)表上還導入了文章摘要,、日期,、自定義網(wǎng)址等數(shù)據(jù),但是RSS不會導入全文!
2,、導入織夢CMS文章全文到wordpress站點
織夢文章的數(shù)據(jù)存儲在dede_addonarticle數(shù)據(jù)庫的body字段中,,現(xiàn)在需要把body字段的內(nèi)容轉(zhuǎn)到wordpress數(shù)據(jù)庫的wp_posts數(shù)據(jù)庫的post_content字段里。
這個轉(zhuǎn)換需要使用一個橋梁——那就是dede_archives數(shù)據(jù)表,,即dede_addonarticle上body的內(nèi)容先轉(zhuǎn)到dede_archives上,,再從dede_archives轉(zhuǎn)到wp_posts的post_content里。這兩次轉(zhuǎn)換的匹配點,分別是織夢里的文章id,,以及Wordpress里已經(jīng)導入了的文章標題(這與織夢里的文章標題是一樣的),。
具體的操作步驟如下:
進入phpmyadmin,選擇dedecms網(wǎng)站使用的數(shù)據(jù)庫,,在SQL輸入框中執(zhí)行以下SQL語句,,在織夢數(shù)據(jù)庫的dede_archives表上,添加字段body:
1ALTER TABLE dede_archives ADD body longtext NOT NULL
然后再執(zhí)行以下SQL語句把dede_addonarticle數(shù)據(jù)表中的body字段內(nèi)容導入到dede_archives的body字段,,語句以dede_addonarticle的aid和dede_archives的id為匹配點:
1
2
3UPDATE dede_archives,dede_addonarticle
SET dede_archives.body = dede_addonarticle.body
WHERE dede_archives.id = dede_addonarticle.aid
接著通過phpmyadmin導出功能把dede_archives數(shù)據(jù)表導出,,然后再通過導入功能把該數(shù)據(jù)表導入wordpress網(wǎng)站使用的數(shù)據(jù)庫中,使其與wp_posts數(shù)據(jù)庫處在同一個數(shù)據(jù)庫里,。
下面再次使用SQL語句把dede_archives的body導入到wp_posts上的post_content上,,以文章標題為匹配點(前提是文章標題都是唯一的):
1
2
3UPDATE wp_posts,dede_archives
SET wp_posts.post_content = dede_archives.body
WHERE wp_posts.post_title = dede_archives.title
至此文章內(nèi)容部分轉(zhuǎn)換完成!
3、織夢CMS文章點擊數(shù)導入wordpress網(wǎng)站
織夢CMS的文章有點擊數(shù)(即是文章的閱讀數(shù)),,不導入wordpress怪可惜,。
在wordpress上安裝Simple Hit Counter插件,啟用后數(shù)據(jù)庫里會生成wp_hitcount表,,在SQL輸入框中執(zhí)行以下語句在增加hits字段:
ALTER TABLE wp_posts ADD hits int(10) NOT NULL
執(zhí)行以下SQL語句,,把dede_archives上的點擊數(shù)click導入到wp_posts的hits上,仍然以標題為匹配點:
UPDATE wp_posts,dede_archives
SET wp_posts.hits = dede_archives.click
WHERE wp_posts.post_title = dede_archives.title
最后執(zhí)行以下SQL語句把wp_posts的hits導入到wp_hitcount的hits上,,這次以wp_posts的ID和wp_hitcount的pid為匹配點:
UPDATE wp_posts,wp_hitcount
SET wp_hitcount.hits = wp_posts.hits
WHERE wp_hitcount.pid = wp_posts.ID
至此點擊數(shù)轉(zhuǎn)換完成,,然后在模板中添加Simple Hit Counter插件調(diào)用代碼即可。
附:我習慣使用wp-postviews插件,,所以我是把織夢CMS文章點擊數(shù)轉(zhuǎn)換為wp-postviews插件的瀏覽數(shù),。但是由于該插件需要文章有瀏覽數(shù)之后才會在數(shù)據(jù)庫中生成meta_key的值,因此需要先在wp_postmeta表中添加對應的meta_key的值,。
執(zhí)行以下SQL語句,,把文章ID導入wp_postmeta中的post_id字段:
INSERT INTO wp_postmeta(post_id) SELECT ID FROM wp_posts
執(zhí)行以下SQL語句,把上面添加的post_id中的meta_key字段的null設置為views值:
UPDATE wp_postmeta SET meta_key='views' WHERE meta_key IS NULL
執(zhí)行以下SQL語句,,把上面添加的post_id中的meta_value字段的null設置為0值:
UPDATE wp_postmeta SET meta_value='0' WHERE meta_value IS NULL
然后再把wp_posts的hits導入到wp_postmeta數(shù)據(jù)表中的meta_key字段的值views對應的meta_value,,SQL語句如下:
UPDATE wp_postmeta,wp_posts
SET wp_postmeta.meta_value=wp_posts.hits
WHERE wp_postmeta.post_id=wp_posts.ID AND meta_key='views'