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