我正在将涉及绘画的现有数据从一个不使用WordPress的旧主机移到一个使用WordPress的新主机。
在旧网站上,数据存储在数据库中,因此每幅画都有自己的页面,其中包含与之相关的信息(艺术家、姓名、年份、风格等)和媒体,然后可以通过不同的信息(相似的年份、艺术家等)搜索页面
有了WordPress,有没有办法使用我的旧数据库自动生成可以按这种方式排序的页面/帖子?
我正在将涉及绘画的现有数据从一个不使用WordPress的旧主机移到一个使用WordPress的新主机。
在旧网站上,数据存储在数据库中,因此每幅画都有自己的页面,其中包含与之相关的信息(艺术家、姓名、年份、风格等)和媒体,然后可以通过不同的信息(相似的年份、艺术家等)搜索页面
有了WordPress,有没有办法使用我的旧数据库自动生成可以按这种方式排序的页面/帖子?
进入之前Importing, 我会让你自己熟悉standard post type 和post_meta 以及custom post types 和taxonomies. 如果您的最终目标将从后者中受益,那么在导入准备过程中使用它们将为您省去不少麻烦。
如果您喜欢直接使用数据库,那么转储/转换/导入当然总是可能的。下面所附的示意图可以回答您的任何问题。
另一种选择是从旧站点向wordpress站点的wp json api端点发送帖子,并以这种方式处理迁移。
像@Rarst 前面提到,没有真正的捷径,但是@Max 在他的评论中指出,进口商至少可以在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术语:标记和类别值
您可以使用自定义重写规则,以便WP解释特定URL来调用和显示旧数据库中的数据。但是,是否要继续管理旧数据库中的数据?与创建/链接WP管理界面一样,以一种与之无关的方式保存数据?在这一点上,您几乎是在WP旁边编写自己的CMS。
在我看来,如果WP成为访问和管理这些数据的一种新的规范方式,那么最好的方法就是将其正确地迁移到适当的WP数据结构中。
当然,情况需要谨慎,根据需要,您可能只保留旧功能&;数据全部集成,只需在WP站点内对其进行集成/蒙皮即可。
简而言之,WP负责的工作越多,考虑全面迁移就越好。
我在Wordpress页面上有一个表单,将数据发布到一个名为“members”的表中。我有第二页在表中显示这些数据。一切都很顺利。使用以下方式显示数据:$myrows = $wpdb->get_results( \"SELECT first_name, surname, role, email, country, bio FROM members\" ); foreach ( $myrows as $row ) { echo \"<tr><td>\" . $r