【发布时间】: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_postmeta 和 wp_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_postmeta 和 wp_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 次头,再也不能转了!
【问题讨论】:
-
一般人没有那么多时间看一堆内容,请优化问题,我可以给出合适的答案