我希望使用ACF为每个帖子对象添加自定义字段。
我有两种不同的自定义帖子类型:"清洗程序" 和"清洗"
我需要在Washes Field Group上添加一个" Number Field"基于"洗涤程序"讯息。
因此,如果在"洗涤"中有3种不同的"洗涤程序"我想要3个字段:
"Wash Program 1" -> "Number Field"
"Wash Program 2" -> "Number Field"
"Wash Program 3" -> "Number Field"
我正在考虑它的逻辑很长时间,但仍然无法弄清楚如何实现这一目标。
任何帮助都将不胜感激。
答案 0 :(得分:0)
听起来你不知道有多少帖子" Wash Programs"将有,但每次你添加一个新的"洗涤程序"您需要为每个" Wash添加一个额外的数字字段。"
也许可以通过向每个" Wash"添加Repeater字段来达到解决方法。这需要两个子字段:一个post对象和一个数字字段。
在该转发器中,您可以分配新的"洗涤程序"然后你需要的数字字段" Wash"这与#34;洗涤计划有关。"
答案 1 :(得分:0)
我认为许多开发人员有时会遇到这种要求,因此我将在此处发布如何完成这项工作。
因此,基本上我首先查询所有洗涤程序,然后为每个洗涤程序查询,我在 Washes 字段组上创建了新字段
这是代码
<?php
// Check if function exists
if( function_exists('acf_add_local_field_group') ):
// Query the wash_program posts
$posts = get_posts(array(
'posts_per_page' => -1,
'post_type' => 'wash_program'
));
// Initialize empty array for filling later
$arr = [];
// Just a number to add on the 'key'
$c = 0;
if($posts) :
// For each wash_program post
foreach($posts as $post):
setup_postdata($post);
// Prepare the array
array_push($arr, array(
'key' => 'field_777'. $c, # key used by acf
'label' => get_field("wp_name"), # label
'name' => 'sub_title_' . $c,
'type' => 'number'
));
$c++;
endforeach;
wp_reset_postdata();
endif;
// Add new fields on 'wash' post type
acf_add_local_field_group(
array(
'key' => 'group_1',
'title' => 'Washes Numbers',
'fields' => $arr,
'location' =>
array (
array (
array (
'param' => 'post_type',
'operator' => '==',
'value' => 'wash',
),
),
),
));
endif;
?>
结果正是我想要的