相關: #2134 提高 Example.php 論壇匯入程式的可讀性 (內聯文件和程式碼格式)
您可以自定義包含在/bbpress/includes/admin/converters/Example.php 中的 example.php 以設定從任何 MySQL 資料庫匯入。
一個很好的參考是檢視包含的轉換器 bbPress1.php 、 phpBB.php 和 SimplePress5.php 並比較資料庫表和欄位對映,因為這應該會給您一些很好的提示。
以下是逐步完成自定義包含的 Example.php 轉換器的示例的工作,該示例取自支援論壇請求,以幫助製作 Mingle 論壇轉換器。 @robin-w 的另一篇關於使用自定義匯入器將 Snitz 論壇從 Microsoft Access 轉換為 MySQL 資料庫的精彩帖子也可以在這裡閱讀。
- 您需要的第一步是找到要從中匯入的當前 SQL 資料庫的資料庫架構,這可以在現有軟體的文件中,或者您可以使用 phpMyAdmin 找到它,現在我將連結到這是來自原始帖子的這裡
- 我們還需要確定將在 「匯入論壇」 使用者介面中使用的資料庫字首
現有論壇是否共享相同的目標 WordPress 資料庫,還是現有資料庫與目標 WordPress 資料庫完全分開?
在這個使用 Mingle 的例子中,它是一個 WordPress 外掛,與 WordPress 共享相同的資料庫,並將以下表格新增到現有的 WordPress 資料庫中 (在這種情況下,WordPress 設定為使用 wp_ 作為資料庫字首):
wp_forum_forums
wp_forum_groups
wp_forum_posts
wp_forum_threads
wp_forum_usergroup2user
wp_forum_usergroups
- 在同一資料夾中複製 Example.php 並將其命名為 Mingle.php(這裡的檔名區分大小寫)
- 開啟您最喜歡的文字編輯器 (記事本、 Text Pad 、 Notepad++、 Sublime Text 等) 並開始編輯您新建立的 Mingle.php 檔案
從論壇部分和第一個資料庫表和欄位對映 「論壇 ID」 在 Example.php 第 18 行開始
-
-
18 // Forum id. Stored in postmeta.
看到我們有一個 「from_tablename」 叫 「論壇」 和 「from_fieldname」 叫 「forumid」 這些是隻有兩個值,您將需要在大多數情況下的變化。'to_type' 'to_type'和'to_fieldname'值都是此資料儲存在 bbPress 中的位置,我們不需要更改其中任何一個。
19 $this->field_map[] = array(
20 'from_tablename' => 'forum', 'from_fieldname' => 'forumid',
21 'to_type' => 'forum', 'to_fieldname' => '_bbp_forum_id'
22 );- 如果我們將這些相同的值與 bbPress1.php 進行比較:
29 'from_tablename' => 'forums',
30 'from_fieldname' => 'forum_id', - 與 phpBB.php 相比:18 'from_tablename' => 'forums',
19 'from_fieldname' => 'forum_id', - 與 SimplePress5.php 相比:
20 'from_tablename' => 'sfforums',
21 'from_fieldname' => 'forum_id', - 如果我們檢視 Mingle Forums 資料庫架構:
wp_forum_forums
id
name
parent_id
description
views
sort - 計算得出的猜測將使我們將以下內容用於我們的第一個資料庫對映
-
'from_tablename' => 'forum_forums',
'from_fieldname' => 'id',
下一步在論壇部分,用於 Example.php Line#24 中的第二個資料庫對映 「論壇父 ID」
-
-
24 // Forum parent id. If no parent, than 0. Stored in postmeta.
25 $this->field_map[] = array(
26 'from_tablename' => 'forum', 'from_fieldname' => 'parentid',
27 'to_type' => 'forum', 'to_fieldname' => '_bbp_parent_id'
28 );- 這次計算出的猜測將使我們將以下內容用於我們的第二個資料庫對映
-
'from_tablename' => 'forum_forums',
'from_fieldname' => 'parent_id',
- 現在我們對 Example.php 中的每個現有資料庫對映重複此操作
- 連線特定欄位值的表...
- 標籤 – 如果源論壇不使用話題標籤,您可以從轉換器中刪除此部分,如果它確實編輯了 「來自」 值。
- 使用者…
- 遷移 BBCode 、笑臉和自定義 HTML……
- 下一步…
報告拼寫錯誤
以下文字將傳送給我們的編輯: