如果我是正确的,那么您有一个包含数组的字段,很明显,您可以使用以下方法保存该字段:
add_post_meta( $postid, \'delivery_method\', array(\'Online\', \'Scheduled\') );
然后您要查询字段“delivery\\u method”=
array( \'Online\', \'Scheduled\')
.
问题是像yours这样的元查询:
$meta_query = array(
array(
\'key\' => \'delivery_method\',
\'value\' => array( \'Online\', \'Scheduled\' ),
\'compare\' => \'IN\'
)
);
返回将“deliver\\u method”键设置为“Online”(字符串)或“Scheduled”(字符串)或两者兼有的帖子,但您的帖子将键“deliver\\u method”保存为数组,因此其值为
serialized 在保存到数据库之前使用WordPress,并且您不能使用未序列化的数组查询序列化的值。。。
因此,如果您想存储不同的传递方法,最好是对同一个键使用多个值,而不是使用一个具有多个值的键,例如。
add_post_meta( $postid, \'delivery_method\', \'Online\' );
add_post_meta( $postid, \'delivery_method\', \'Scheduled\' );
通过这种方式,使用适当的参数,您将能够根据需要获得具有其中一种或两种方法的帖子。
我真的不知道如何使用ACF来实现这一点,但是插件特定的方式对于这个网站来说是不合适的,但我认为这个概念很简单,你可以简单地应用到这个插件上。
针对特定情况的一种恶意攻击是使用序列化值作为值进行查询
$meta_query = array(
array(
\'key\' => \'delivery_method\',
\'value\' => serialize ( array( \'Online\', \'Scheduled\' ) )
)
);
此元查询返回两个方法都保存为数组的帖子。