Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用ACF多选字段的WP高级搜索_Php_Wordpress_Advanced Custom Fields - Fatal编程技术网

Php 使用ACF多选字段的WP高级搜索

Php 使用ACF多选字段的WP高级搜索,php,wordpress,advanced-custom-fields,Php,Wordpress,Advanced Custom Fields,无法确定如何在WP高级搜索表单中使用具有多个值的ACF自定义字段 我正在使用高级自定义字段和WP Advanced search进行分面搜索,我遇到的大多数问题我都能自己解决,或者最终找到做类似事情的人 然而,到目前为止,我找不到任何关于如何使用具有多个值的自定义字段的示例。我不知道如何设置我的WPAS表单来处理每个单独的值,或者是否可能 此自定义字段仅存储post的单个值,在这种情况下,wp_Posteta中的meta_值正好是预期的字符串,即Condo、Townhouse、Distached

无法确定如何在WP高级搜索表单中使用具有多个值的ACF自定义字段

我正在使用高级自定义字段和WP Advanced search进行分面搜索,我遇到的大多数问题我都能自己解决,或者最终找到做类似事情的人

然而,到目前为止,我找不到任何关于如何使用具有多个值的自定义字段的示例。我不知道如何设置我的WPAS表单来处理每个单独的值,或者是否可能

此自定义字段仅存储post的单个值,在这种情况下,wp_Posteta中的meta_值正好是预期的字符串,即Condo、Townhouse、Distached等。这可以正常工作

$args['fields'][] = array(  'type'      => 'meta_key',
                            'meta_key'  => 'property_style',
                            'format'    => 'multi-select',
                            'compare'   => 'LIKE',
                            'data_type' => 'ARRAY<CHAR>',
                            'relation'  => 'OR',
                            'label'     => 'Property Style',
                            'values'    =>  array(
                                                'Condo Townhouse'    => 'Condo Townhouse',
                                                'Condo Apartment'    => 'Condo Apartment',
                                                'Detached'           => 'Detached',
                                                'Semi-Detached'      => 'Semi-Detached',
                                                'Freehold Townhouse' => 'Freehold Townhouse',
                                                'Link'               => 'Link',
                                                'Other'              => 'Other'
                                            ) 
                    );

我知道我做错了,甚至找不到任何关于我应该做什么的信息。我不确定WP Advanced Search是否仍在开发中,但它仍与最新版本的WP一起运行,因此这不是我真正关心的问题。

我不确定我做了什么不同,但这似乎起到了作用。。。我想我从一开始就是对的,但可能是因为其他原因导致了其他地方的问题

无论如何,它的语法与常规ACF自定义字段的语法相同,只有一个值

    $args['fields'][] = array(  'type'                  => 'meta_key',
                                'meta_key'              => 'basement',
                                'format'                => 'multi-select',
                                'compare'               => 'LIKE',
                                'data_type'             => 'ARRAY<CHAR>',
                                'relation'              => 'OR',
                                'label'                 => 'Basement',
                                'values'                => array(
                                                                'Apartment' => 'Apartment',
                                                                'Crawl Space' => 'Crawl Space',
                                                                'Finished Walk Out' => 'Finished Walk Out',
                                                                'Finished' => 'Finished',
                                                                'Full' => 'Full',
                                                                'Half' => 'Half',
                                                                'None' => 'None',
                                                                'Other' => 'Other',
                                                                'Partial Basement' => 'Partial Basement',
                                                                'Partially Finished' => 'Partially Finished',
                                                                'Separate Entrance' => 'Separate Entrance',
                                                                'Unfinished' => 'Unfinished',
                                                                'Walk Out' => 'Walk Out',
                                                                'Walk-Up' => 'Walk-Up'
                                                            )
                                                        );
$args['fields'][]=数组('type'=>'meta_key',
“meta_键”=>“地下室”,
'格式'=>'多选',
'比较'=>'类似',
“数据类型”=>“数组”,
'关系'=>'或',
“标签”=>“地下室”,
'值'=>数组(
“公寓”=>“公寓”,
“爬网空间”=>“爬网空间”,
“完成退出”=>“完成退出”,
“已完成”=>“已完成”,
“满”=>“满”,
“一半”=>“一半”,
“无”=>“无”,
“其他”=>“其他”,
“局部基底”=>“局部基底”,
“部分完成”=>“部分完成”,
“独立入口”=>“独立入口”,
“未完成”=>“未完成”,
“退出”=>“退出”,
“向上走”=>“向上走”
)
);
编辑:我明白了为什么我认为这是错误的。当我处理通过后端输入的值时,它开始工作。我在导入程序中生成的值缺少冒号

ACF生成的序列化数组:a:2:{i:0;s:9:“单元”;i:1;s:11:“爬网空间”}

我的导入程序的“序列化数组”:a:2{i:0;s:8:“完成”;i:1;s:4:“完整”

(在“a:2”之后没有冒号)


也许如果我真的像一个普通人一样序列化了一个数组,而不是像一个怪人一样通过字符串操作来完成它,我就永远不会花这么多时间来修复工作代码。让这对我们大家来说是一个教训,但对我来说更重要。

我不确定我做了什么不同的事情,但这似乎起到了作用……我想我是ri从一开始就是这样,但可能是因为其他原因导致了其他地方的问题

无论如何,它的语法与常规ACF自定义字段的语法相同,只有一个值

    $args['fields'][] = array(  'type'                  => 'meta_key',
                                'meta_key'              => 'basement',
                                'format'                => 'multi-select',
                                'compare'               => 'LIKE',
                                'data_type'             => 'ARRAY<CHAR>',
                                'relation'              => 'OR',
                                'label'                 => 'Basement',
                                'values'                => array(
                                                                'Apartment' => 'Apartment',
                                                                'Crawl Space' => 'Crawl Space',
                                                                'Finished Walk Out' => 'Finished Walk Out',
                                                                'Finished' => 'Finished',
                                                                'Full' => 'Full',
                                                                'Half' => 'Half',
                                                                'None' => 'None',
                                                                'Other' => 'Other',
                                                                'Partial Basement' => 'Partial Basement',
                                                                'Partially Finished' => 'Partially Finished',
                                                                'Separate Entrance' => 'Separate Entrance',
                                                                'Unfinished' => 'Unfinished',
                                                                'Walk Out' => 'Walk Out',
                                                                'Walk-Up' => 'Walk-Up'
                                                            )
                                                        );
$args['fields'][]=数组('type'=>'meta_key',
“meta_键”=>“地下室”,
'格式'=>'多选',
'比较'=>'类似',
“数据类型”=>“数组”,
'关系'=>'或',
“标签”=>“地下室”,
'值'=>数组(
“公寓”=>“公寓”,
“爬网空间”=>“爬网空间”,
“完成退出”=>“完成退出”,
“已完成”=>“已完成”,
“满”=>“满”,
“一半”=>“一半”,
“无”=>“无”,
“其他”=>“其他”,
“局部基底”=>“局部基底”,
“部分完成”=>“部分完成”,
“独立入口”=>“独立入口”,
“未完成”=>“未完成”,
“退出”=>“退出”,
    $args['fields'][] = array(  'type'                  => 'meta_key',
                                'meta_key'              => 'basement',
                                'format'                => 'multi-select',
                                'compare'               => 'LIKE',
                                'data_type'             => 'ARRAY<CHAR>',
                                'relation'              => 'OR',
                                'label'                 => 'Basement',
                                'values'                => array(
                                                                'Apartment' => 'Apartment',
                                                                'Crawl Space' => 'Crawl Space',
                                                                'Finished Walk Out' => 'Finished Walk Out',
                                                                'Finished' => 'Finished',
                                                                'Full' => 'Full',
                                                                'Half' => 'Half',
                                                                'None' => 'None',
                                                                'Other' => 'Other',
                                                                'Partial Basement' => 'Partial Basement',
                                                                'Partially Finished' => 'Partially Finished',
                                                                'Separate Entrance' => 'Separate Entrance',
                                                                'Unfinished' => 'Unfinished',
                                                                'Walk Out' => 'Walk Out',
                                                                'Walk-Up' => 'Walk-Up'
                                                            )
                                                        );