根据元键日期获取记录

时间:2021-02-02 作者:aliasgar vanak

我想写一个查询,根据添加的元键获取数据。元密钥名称为“repeater”。

这是我的博文元。

已序列化:

a:3:{i:0;a:3:{s:9:"postdates";s:10:"2021-02-02";s:12:"postplatform";a:1:{i:0;s:3:"3DS";}s:10:"postregion";a:2:{i:0;s:2:"EU";i:1;s:2:"JP";}}i:1;a:3:{s:9:"postdates";s:10:"2021-02-03";s:12:"postplatform";a:2:{i:0;s:3:"3DS";i:1;s:2:"DS";}s:10:"postregion";a:2:{i:0;s:2:"EU";i:1;s:2:"JP";}}i:2;a:3:{s:9:"postdates";s:10:"2021-02-04";s:12:"postplatform";a:3:{i:0;s:3:"3DS";i:1;s:2:"DS";i:2;s:27:"MAC, Linux, Mobile And More";}s:10:"postregion";a:3:{i:0;s:2:"EU";i:1;s:2:"JP";i:2;s:2:"NA";}}}
未序列化:

Array
(
    [0] => Array
        (
            [postdates] => 2021-02-02
            [postplatform] => Array
                (
                    [0] => 3DS
                )

            [postregion] => Array
                (
                    [0] => EU
                    [1] => JP
                )

        )

    [1] => Array
        (
            [postdates] => 2021-02-03
            [postplatform] => Array
                (
                    [0] => 3DS
                    [1] => DS
                )

            [postregion] => Array
                (
                    [0] => EU
                    [1] => JP
                )

        )

    [2] => Array
        (
            [postdates] => 2021-02-04
            [postplatform] => Array
                (
                    [0] => 3DS
                    [1] => DS
                    [2] => MAC, Linux, Mobile And More
                )

            [postregion] => Array
                (
                    [0] => EU
                    [1] => JP
                    [2] => NA
                )

        )

)
现在,如果postdates是今天/特定日期,我想取帖子。

谢谢,阿里

1 个回复
SO网友:Tom J Nowell

This is not possible, you cannot query sub-values of serialised/structured data in post meta values.

要解决这个问题,需要将要查询/筛选的日期存储为单独的post元键/值对。要以这种方式查询,值需要是字符串/数字/布尔整数值。它们不能是复杂的结构或子字符串,例如JSON、数组、对象

另请注意,保存数组或对象存在安全风险。这是因为您无法保存数组/对象,所以WordPress使用PHP的serialize 函数,将其转换为字符串。这会使您面临对象反序列化攻击。

相关推荐

如何在wp-Query中比较不同的时间戳以获取事件自定义帖子类型?

我有一个带有自定义元数据库的自定义帖子类型(as seen on wptheming.com) 并且希望进行查询以显示即将发生的事件,例如在侧边栏中,过去的日期被忽略。但我需要一个当前时间的值来和事件开始时间进行比较。现在我从current_time(\'mysql\') 看起来是这样的:2012-02-16 13:15:31元的开始时间如下所示:201108121100如何使这两个日期具有可比性?我可以在查询中执行吗?或者是否有其他解决方案?以下是我到目前为止的查询(值留空,时间戳回显):<?ph