這是我爲我製作的,我希望它對你們有用。
我做了一個函數,它接受參數並在特定帖子(由id提取)中插入一個帶有自己字段的中繼器,並且在此中繼器中插入另一個或多個帶有自己的字段的一個或多個(因爲它是中繼器)subrepeater。
所以,如果我有這樣的事情:
擾流器(Repeater)
------------農佈雷擾流板(輸入)
----- -------擾流板標籤(輸入)
------------ ENLACES(副中繼器)
------------ ------------- Nombre Enlace(輸入)
------------------------- Enlace(輸入)
使用此函數我可以插入X「擾流板」和x「 ENLACES「S
這裏的功能:
function insert_field_subfield($repeater_field, $repeater_subfield, $field_values, $subfield_values, $field_key, $postid){
if(get_field($field_key, $postid)){
$value = get_field($field_key, $postid);
}else{
$value = array();
}
$value[] = $field_values;
if(update_field($field_key, $value, $postid)){
$i = 0;
if(have_rows($repeater_field, $postid)){
$spoiler_item = get_field($repeater_field, $postid);
$total_rows = count(get_field($repeater_field, $postid)) -1;
while(have_rows($repeater_field, $postid)) : the_row();
if($i == ($total_rows)){
if(!is_array($spoiler_item[$i][$repeater_subfield])) {
$spoiler_item[$i][$repeater_subfield] = array();
}
if (count($subfield_values) == count($subfield_values, COUNT_RECURSIVE)){ // subfield_values is not multidimensional
array_push($spoiler_item[$i][$repeater_subfield], $subfield_values);
}else{ // subfield_values is multidimensional
foreach($subfield_values as $subfield_value){
array_push($spoiler_item[$i][$repeater_subfield], $subfield_value);
}
}
}
$i++;
endwhile;
if(update_field($field_key, $spoiler_item, $postid)){
return true;
}else{
return false;
}
}
}else{
return false;
}}
要撥打:
$addField = array("nombre_spoiler" => "Otro nombre", "spoiler_tag" => "Spoiler tag");
對於內subrepeater一個值:
$addSubField = array(
'nombre_enlace' => 'Valor de un array no multidimensional',
'enlace' => 'Valor enlace');
多個值:
$addSubField[] = array(
'nombre_enlace' => 'multidimensional',
'enlace' => 'Valor enlace');
$addSubField[] = array(
'nombre_enlace' => '2 multidimensional',
'enlace' => 'Valor enlace 2');
而現在的呼叫:
insert_field_subfield('spoiler', 'enlaces', $addField, $addSubField, 'field_586155ce49bf8', 21267);
insert_field_subfield('spoiler', 'enlaces', $addField, $addSubField, 'field_586155ce49bf8', 21267);
我希望這將是爲別人有用!
P.S.我不完美,因爲我不控制第二個轉發器,但這是沒有ACF API的東西。
P.S. field_key是第一個中繼器的字段密鑰。