进入之前Importing, 我会让你自己熟悉standard post type 和post_meta 以及custom post types 和taxonomies. 如果您的最终目标将从后者中受益,那么在导入准备过程中使用它们将为您省去不少麻烦。
如果您喜欢直接使用数据库,那么转储/转换/导入当然总是可能的。下面所附的示意图可以回答您的任何问题。
另一种选择是从旧站点向wordpress站点的wp json api端点发送帖子,并以这种方式处理迁移。
像@Rarst 前面提到,没有真正的捷径,但是@Max 在他的评论中指出,进口商至少可以在Wordpress方面为您提供帮助。
下面只是对这些要点的链接进行了详细阐述和整合。
使用Wordpress导入器(工具>导入)
将内容导入Wordpress有多种选择(在使用任何一种导入器之前需要考虑更多的事情)。
This would be the safest method to take. 您可以在此处熟悉其中的许多内容:
Importing Content into Wordpress包括:
博客作者Drupal可移动类型Nucleus CMS可移动类型>键盘等,您可以理解,页面还列出了用于导入以前cms导出的各种插件(列出了多种类型)。
CSV、XML、RSS。。。任何方式都可以。当然,您必须创建它需要处理的文件。
数据库转储>导入(不知道当前数据库的任何信息),您可以转储旧的数据库页面内容,并将其转换为sql导入。Don\'t even consider this if you don\'t really know what you\'re doing, though. You could seriously muck things up. 但如果你对它感到满意,这是一个可行的选择。
我不认为这是wordpress的解决方案,只是将其作为一种方法。
如果您仍然可以访问旧的数据库/站点,则可以使用wp-json api 在你这边写点什么posts
到旧数据库中每个条目的wordpress端的相应端点。
您通常可以构建它来保持同步,但它也可以作为一次性导入工具。
扩展此内容,以代替OP在评论中的其他问题:
首先,您需要添加书签this resource for dealing with the WP_REST_request class
假设我们在旧站点上编写了一些代码,可以获取相关内容并将其放入格式化的POST对象中,并假设有一个自定义端点:
[Old Site Data ]
将http发布到路由http://new-WP-site.com/wp-json/v2/plugin_namespace/v1/posts/
在WP端,/plugin_namespace/v1/posts/
我们会创造。要做到这一点,我们首先extend
这个WP_REST_Controller
班
然后在课堂上,我们使用register_rest_routes()
.类似于:
public function __construct() {
add_action( \'rest_api_init\', array($this, \'register_routes\' ) );
}//end __construct
public function register_routes() {
$version = \'1\';
$namespace = \'plugin_namespace/v\' . $version;
$base = \'posts\';
register_rest_route( $namespace, \'/\'. $base, array(
array(
\'methods\' => \'GET\',
\'callback\' => array( $this, \'this_is_a_callback_function\' ),
//\'permission_callback\' => array( $this, \'key_permissions_check\' ),
),
array(
\'methods\' => \'POST\',
\'callback\' => array( $this, \'this_is_a_callback_function\' ),
//\'permission_callback\' => array( $this, \'key_permissions_check\' ),
),)
);
}//register_routes
public function this_is_a_callback_function(WP_REST_Request $request) {
//if posted in body like form data
$posted_data = $request->get_body_params();
}
从此点开始
$posted_data
有什么是
POST
您可以遍历它,或者将它传递给另一个函数。
该函数需要从每个条目构建post\\u数组,并将其传递给wp_insert_post()
可以利用WP_REST_Server::CREATABLE
代替methods => POST
也我的只是一个快速/不完整的例子。
我还注释掉了permissions_callbacks
, 但回调函数通常是授权检查的地方。
请注意wp_insert_post()
也将允许您传递meta数组,但是wp_update_post
不会。wp_insert_post
还需要title
和content
价值观如果传递除0以外的任何ID,它将运行wp_upate_post
.
您可能希望使用以下内容requestb.in 在整理旧站点代码以检查其发送的内容时postman 在检查api的响应时效果很好。
正如我在评论中提到的,ngrok 可用于在开发环境中完全执行非wp到wp的迁移。
希望这能给你足够的信息,把它翻译给你需要的人。
相关WP表(POST)无论是构建sql导入还是编写其他桥梁posts, wordpress端要映射到的表是:
Table Name : data in table
wp\\U岗位:岗位
wp\\U postmeta:后元数据
wp\\U term\\u关系:发布到分类法
wp\\U term\\u分类法:分类法
wp\\U术语:标记和类别值
这是full database schematic