Gutenberg: 支持在自定义数据库表中存储 CPT 元数据

创建于 2017-12-02  ·  3评论  ·  资料来源: WordPress/gutenberg

例如,我们有两个 CPT,Books 和 Authors,我们想将 Books 元数据(即 parent_id、isbn、subtitle、average_rating、 ratings_count、publication_date、num_pages、bisac_code、author_id 等)存储在自定义数据库表中“ Books”,并将作者元数据(即works_count、date_of_birth、fans_count、average_rating 等)存储在自定义数据库表“Authors”中。

然后我们想像这样查询数据:

SELECT p.post_id, p.post_title, p.post_content, b.subtitle, b.average_rating, a.post_tile as author_name
FROM wp_posts as p
INNER JOIN books as b ON p.post_id = b.parent_id
INNER JOIN authors as a ON b.author_id = a.id
WHERE b.average_rating => 3 AND YEAR(b.publication_date) => 2007 AND bisac_code = 'FIC009050' AND a.average_rating => 3

将所有 CPT 元数据存储在wp_postmeta中不是一种选择,因为搜索超过 100 万行会非常缓慢且无法扩展,这也是WooCommerce 将订单和产品移动到自定义数据库表的原因。

我能否将自定义字段/元块添加到古腾堡中的两个 CPT,然后将该元数据保存在自定义数据库表中?

Framework [Feature] Block API [Feature] Extensibility [Priority] Low [Type] Enhancement

最有用的评论

@pmgarman是的,您已经可以在没有 Gutenberg 的情况下将 CPT 元数据保存在自定义数据库表中,但我相当确定您还不能使用 Gutenberg 做到这一点。

所有3条评论

您已经可以做到这一点,而无需对 Gutenberg 进行更改。 你现在可以在没有古腾堡的情况下做到这一点。 我们半定期地在我们的项目上这样做。

@pmgarman是的,您已经可以在没有 Gutenberg 的情况下将 CPT 元数据保存在自定义数据库表中,但我相当确定您还不能使用 Gutenberg 做到这一点。

使用 EntityProvider 和 useEntityProperty 挂钩可以构建将内容存储在多个 CPT 字段中的构建块。 您可以检查 PostTitle、PostExcerpt... 块是如何工作的。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

bradyvercher picture bradyvercher  ·  3评论

nylen picture nylen  ·  3评论

aaronjorbin picture aaronjorbin  ·  3评论

ellatrix picture ellatrix  ·  3评论

franz-josef-kaiser picture franz-josef-kaiser  ·  3评论