【问题标题】:Importing Data into Wordpress-Magic Fields using MySQL queries使用 MySQL 查询将数据导入 Wordpress-Magic 字段
【发布时间】:2012-01-02 08:00:00
【问题描述】:

第 1 部分:介绍

嘿 Stackoverflow 来自挪威白雪皑皑的阿尔卑斯山的问候

我现在已经连续两天尝试对 Magic Fields 进行逆向工程。为什么?因为我是一个简单的人,并且想使用 CSV 从一个异国情调的数据库将数据导入我的 wordpress(而不是编写一个我不知道也不理解的 php 例程)。

这适用于所有普通的 Wordpress 字段,即后期数据、类别等。 (我使用 LibreOffice Calc 微调 CSV 数据、Quest Toad for MySQL 导入和创建 MySQL 查询)。

我的设计师使用 Magic Fields 插件广泛地设计了这整个东西。因此,对于需要导入的其余数据,我必须处理 Magic Fields。这是一个电影数据库,所以它是典型的电影元数据,如“productionyear”“producer”“imdblink”“youtubetrailerlink”等。

我的问题是,我希望就如何将这些数据导入魔法领域获得一些见解/想法/支持。我已经尝试并放弃了“魔术字段导入器”,它没有记录,并且在我尝试导入各种 csv 格式时没有给出任何错误消息。

第 02 部分:理解魔法场

我的问题是如何使用 mysql 查询填充(插入)具有数据的魔术字段? 当我在 admin-edit-post-frontend 中将一些数据放入魔术场并按保存时,我试图了解魔术场在做什么。它做了很多我似乎无法重现的事情。一方面,将数据插入到引用数据的两个地方是不够的。 wp_postmetawp_mf_post_meta

这个示例帖子不足以让数据“工作”,即在 wordpress 中显示自己,既不在 admin-post-editor 也不在用户的前端:

INSERT INTO `wp_postmeta` (`post_id`,`meta_key`,`meta_value`) VALUES ('474','originaltitle','Die Hard 3');

INSERT INTO wp_mf_post_meta ( meta_id, field_name, field_count, group_count, post_id )  VALUES ( 1100083, 'originaltitle' , 1,1 ,474 );

同样使用 meta_id 编号,Magic Fields 会为每个帖子创建一个 10 的数字系列,例如 7000-7010,然后是 8000-8010。我不明白这些数字是从哪里来的,以及它们是否必须是连续的/连续的。我发现一旦通过 admin-post-editor 前端输入,我可以更改 wp_postmetawp_mf_post_meta 中的 meta-id's 并且它仍然有效。但是,当我尝试使用 SQL 查询自己创建它们时,“它就是行不通 (TM)”。

在启用 MySQL 查询记录并检查 MySQL 数据库引擎提供的日志文件,然后尝试手动插入查询(我可以从日志中找出)后,我仍然无法让 Wordpress“找到”数据并显示它们正确地显示在页面上。

在使用前端填充数据后,我可以使用 mysql 查询修改数据,没有任何问题。

同样使用查询日志,我发现在 Wordpress 前端后编辑器中按下“SAVE”后,它执行的 mysql 查询行不少于 ~780 行(无论我填充了 1 个还是 10 个魔术字段)!

我尝试的另一件事是在我完成魔术字段的发布之前和之后拍摄数据库的快照,然后使用差异工具(各种,主要是 WinMerge 和 Notepad++)。我不明白它在做什么,但我认为它在 wp_term_taxonomy 中做了一些隐藏的诡计。这只是猜测。

第 03 部分:结论我不懂编程,所以任何实用的解决方案都会非常感激。

我想为每个帖子执行的完整查询(我有大约 800 个)在这里:>http://pastebin.com/5cZT3AjA

此处列出了我在管理前端推送保存后 Magic Fields 正在执行的查询的完整列表(我称之为“工作机器人”)。 http://pastebin.com/c2c6qUQt 可以肯定的是,我已经检查了三遍,在我按下保存后它正在执行大约 780 行,这并不是什么特别的事情。

我想我是否可以找到一种方法来批量编辑我的所有帖子,然后让“机器人”(即 admin-post-edit 前端)来完成在数据库中创建所有这些行的工作。之后我可以更改字段...但是批量编辑器也不显示魔术字段编辑器。

我已经在这个问题上转了 10 次头,再也不能转了!

【问题讨论】:

  • 一般人没有那么多时间看一堆内容,请优化问题,我可以给出合适的答案

标签: php mysql csv wordpress


【解决方案1】:

解决了!!!!

Meta_id 必须是 CHRONOLOGICAL 并且不能是任意的(即随机的)。

数据必须插入到 wp_mf_postmeta 和 wp_postmeta 中

这些记录与 post_id、meta_id 和 数据本身,其中 key 是“movietitle”,value 是“Die Hard”。

我已经上传了为此创建的 csv 并创建了 mysql 查询。 我使用 LibreOffice Calc 微调数据和 Toad for MySQL(由 Quest 提供,免费) 创建 MySQL 查询...

需要修改这两条记录才能正确插入数据: 注意 META_ID 必须是按时间顺序排列的,即 11001、11002 11003 每个字段每个帖子 因此,如果 meta_key 是 Movietitle,则 meta_id 为 11001,如果 productionyear 为第二,则为 11002,如果 country 为第三,则为 11003

另请注意,对于 wp_mf_postmeta,字段名称与 meta_key 的值相同 来自 wp_postmeta ,即元键。

插入wp_postmeta (post_id,meta_key,meta_value) 值 (346,'produksjonsar','18001');

INSERT INTO wp_mf_post_meta (meta_id, field_name, field_count, group_count, post_id) VALUES (18001, 'produksjonsar', 1,1 ,346);

我用于此导入的文件可以在这里找到,如果有人的话 需要查看如何执行此导入的示例...我再次使用 Toad for MySQL 使用 IMPORT 函数创建 SQL 查询。

这也解决了我在 Wordpress 论坛、Stackoverflow 和 Stackexchange 上发布的问题。

http://wordpress.org/support/topic/importing-data-to-custom-fields?replies=2#post-2592976

https://wordpress.stackexchange.com/questions/37691/inserting-data-into-magicfields-using-mysql-queries

Importing Data into Wordpress-Magic Fields using MySQL queries

向 Hameedullah Khan Stackexchange 提供大量支持,此处为 https://wordpress.stackexchange.com/users/5337/hameedullah-khan 的简介,基本上提供了找到解决方案所需的线索。

【讨论】:

    猜你喜欢
    • 2017-08-07
    • 2014-07-25
    • 1970-01-01
    • 2021-12-31
    • 2011-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多