将自定义发布类型和字段保存到自定义表

时间:2012-02-06 作者:Jesse

我有一个项目,我正在尝试将大量数据导入WordPress安装,并从这些数据中,在我的网站上创建页面(作为自定义帖子类型)。由于这些页面的访问次数远远少于我们网站的其他部分,因此我们决定将数据与帖子和邮件分开,这样就不会影响加载时间。这些信息确实需要创建自定义帖子,以便将其添加到站点地图(使用google xml站点地图-太多,无法手动添加)。

我创建了一个自定义帖子类型,并创建了一个插件的开头,该插件在数据库中创建了一个自定义表。我的想法是,我可以创建一个函数,在创建post或post meta时,将post信息保存到此数据库中,而不是将其保存到该数据库中。我对php了解得足够多,对sql也很陌生,但如果需要,我可以求助于它。不幸的是,他们在wordpress方面不如在编码方面精通,所以我想在转向他们之前尽量收集更多的信息。

那么,这听起来是一个合理的计划吗?是否有人知道我可以从哪些资源中感受到我需要做什么?

3 个回复
SO网友:mor7ifer

如果你看wp_insert_post()\'的源代码,您可以看到它被锁定为使用$wpdb->posts。。。因此,您确实需要修改核心,使其按照您所概述的方式工作(或者可能在循环的早期对其进行过滤,无论哪种方式,您都会弄得一团糟)。这就是说,拥有大量的帖子并不会给你的网站带来很大的负担,因为几乎所有的事情都是通过ID或名字直接完成的,很少,如果有的话,是通过从返回结果列表中过滤来完成的。。。你在谈论一个令人难以置信的黑客解决方案,它的增益只有几分之一毫秒。我强烈建议您坚持默认的wordpress,因为它的结构非常有效。

SO网友:TheDeveloper

我建议您研究Pods框架,它将满足您的需求,而且非常灵活。版本2即将推出,它允许您扩展或创建帖子类型。如果需要,meta可以存储在单独的表中。

玩一玩,从github下载。

我使用的版本1和2(beta版)可以推荐给任何人。它背后的团队也提供了出色的支持。

http://podsframework.org/

SO网友:Nicola Boccardi

我已经遇到过这种情况,但我的方法完全不同:我创建了一种框架来执行crud操作并管理全新的实体,每个实体都不同于其他实体,使用由自定义db层支持的wp db层。在您的情况下,我认为可以做您想做的事情,但您需要使用hook拦截save post调用,然后检查post\\u类型,并执行您自己的save post函数来覆盖标准类型,以防post类型是新添加的类型之一。

结束

相关推荐

Switching database on the fly

我读过here 关于使用动态切换当前wp数据库$wpdb->select(\'database_name\'); 一旦完成,我理解我将不得不向原始数据库发出相同的语句。问题:更改数据库后,我是否需要刷新缓存或类似的东西才能正常工作?我需要再次呼叫WP标头吗?潜在问题?