可以使用正则表达式RLIKE:
$val = \'15\';
$args = array(
    \'post_type\' => \'shop\',
    \'meta_query\' => array(
        array(
            \'key\' => \'map-location\',
            \'value\' => \'s:7:"address";s:[0-9]+:"[^"]*\' . preg_quote( $val ) . \'[^"]*";\',
            \'compare\' => \'RLIKE\'
        ),
    )
);
 尽管如果您的地址数据包含双引号,它可能会失败。如果你总是有
lat 和a
lng 字段后面的
address 然后,您可以扩展表达式以匹配这些表达式,并且不再需要
[^"] 位(用点代替)。