插件开发:在数据库中存储和操作符合JSON的数据

时间:2016-02-23 作者:Summer Developer

我是Wordpress插件开发新手,但一般来说,我不熟悉web开发。我有一个网站,我正在尝试将其功能移植到Wordpress,以便客户端在自定义插件和主题中使用它。

在我的另一个(非Wordpress)网站上,这是一个商店页面,我无法作为客户端编辑商店项目,它都是硬编码为一个复杂的JSON,带有嵌套的数组和对象,不适合MySQL。

摘录(来自角度控制器):

$scope.theBreadsList = [{
        category: \'Daily Breads\',
        breads: [{
            text: \'Apple Streusel\',
            category: \'Daily Breads\',
            type: \'Apple Streusel\',
            instance: 0,
            isDaily: true,
            price: 7.25,
            quantity: 0,
            days: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday"],
            daysNotAvailable: null,
            onMenu: true,
            canSlice: false,
            orderDates: [],
            theActualOrderDate: "",
            shipping: false,
            ingredients: ["White Flour", "Honey", "Water", "Butter", "Brown Sugar", "Eggs", "Applesauce", "Apples", "White Sugar", "Yeast", "Spices", "Vanilla", "Salt"]
        },


        {
            text: \'Honey Whole Wheat\',
            category: \'Daily Breads\',
            type: \'Honey Whole Wheat\',
            instance: 0,
            isDaily: true,
            price: 5.65,
            quantity: 0,
            days: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sunday"],
            daysNotAvailable: null,
            onMenu: true,
            canSlice: true,
            orderDates: [],
            theActualOrderDate: "",
            shipping: false,
            ingredients: ["Organic Whole Wheat Flour","Filtered Water","Honey","Yeast","Salt"],
        },
基本上,对于Wordpress插件,我希望客户端能够输入此类类别和面包(或任何其他类型的项目)以及所有相关数据,然后添加到该格式中,以便我的Angular脚本读取。

因为我无法想象如果不将其作为JSON存储在数据库本身中(因为它太复杂)如何做到这一点,我一直在思考如何让客户端从插件中编辑数据结构。

抱歉,这太模糊了,但我希望有人能在概念上帮助我做些什么。

1 个回复
最合适的回答,由SO网友:kraftner 整理而成

只有一个指向正确方向的指针:

你会想要一个Custom Post Type bread.

那么你需要Custom Taxonomy 对于本CPT。

其余的可能是post meta.

如果这些成分只是像标签一样使用,而本身没有大量数据,那么您也可以将其作为自定义分类法。如果它们有单独的URL和内容,您可能希望将它们实现为CPT,并通过bread CPT。

创建这些CPT和分类法时,可以将其创建为public=false. 这样,它们就没有自己的URL,但可以用来管理后端的数据。然后您可以使用custom queries 以您需要的方式构建JSON。任何一个the old fashioned way 或使用REST API 或者只需在angular应用程序运行的页面中内联输出。

因此,基本上您只需要使用WordPress来处理后端UI,然后按照前端所需的方式构建JSON。