首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于非单一元数据获取帖子

基于非单一元数据获取帖子
EN

WordPress Development用户
提问于 2021-12-02 16:40:54
回答 1查看 52关注 0票数 0

我有元数据自定义post“事件”,注册为非单一的,即有一个数组d元数据“术语”(它不是WordPress术语,我只是称之为术语,它是一个记录包含事件的开始日期,事件的结束日期,可能的事件的开始和结束时间。

代码语言:javascript
复制
register_meta(
    'post',
    'term_definition',
    [
        'object_subtype' => 'event',
        'type' => 'object',
        'description' => 'object with time data of the event',
        'single' => false,
        'auth_callback' => __NAMESPACE__ . '\authentication',
        'sanitize_callback' => 'sanitization',
        'show_in_rest' => [
            'schema' => [
                'type' => 'object',
                'properties' => [
                    'ID' => [
                        'type' => 'integer'
                    ],
                    'startDate' => [
                        'type' => 'string'
                    ],
                    'endDate' => [
                        'type' => 'string'
                    ],
                    'startTime' => [
                        'type' => 'string'
                    ],
                    'endTime' => [
                        'type' => 'string'
                    ],
                ]
            ]
        ]
    ]
)

我希望获得自定义类型事件的所有帖子,其中元数据中的startDate位于当前日期时间之后(或当前日期时间之前)。从文档来看,这似乎只适用于单一的、简单的元数据,正如手册所描述的那样。作为一个侧面,我注意到以这种方式创建的元数据被序列化并存储在数据库中,如下所示:

代码语言:javascript
复制
meta_key: 'term_definition'
meta_value: a:3:{s:9:"startDate";s:19:"2021-12-09T16:36:00";s:2:"ID";i:0;s:7:"endDate";s:19:"2021-12-10T16:36:00";}
EN

回答 1

WordPress Development用户

回答已采纳

发布于 2021-12-06 11:39:13

您是正确的,这是不可能的序列化数据。有一些黑客试图通过搜索序列化字符串的各个部分来绕过这一问题,但这些漏洞会引发大量错误,无法排序。

通常,在单个元值中存储结构化数据是一种反模式,您不能在meta_query字段中查询内部数据。如果您绝对必须存储它,那么将其存储为JSON,但请记住,您不能对内容进行查询或执行逻辑。(序列化的PHP值还会打开对象反序列化攻击,如果长度发生变化,则当在数据库上运行朴素搜索替换查询时中断)

这里的解决方案是将它分离成单个原子post元(至少5 ),在PHP/JS中进行排序,或者创建子post类型来表示您的事件,以便您可以使用标准的日期时间列

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/398792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档