以编程方式在灵活布局 ACF 中创建行

问题描述 投票:0回答:1

我错过了一些我觉得非常简单的东西,但环顾四周却找不到答案

while ( have_rows('page_builder') ) : the_row();
  if( get_row_layout() == 'one_column' ): // Single Column
    update_sub_field('field_60745782d2943', get_the_content());
  endif;
endwhile;

这是一个遍历所有帖子的循环。我设置了 ACF 灵活内容,其中有不同的布局。其中之一称为“一柱”。我需要从每个帖子中获取 the_content() 并更新 one_column 布局内的子字段。当手动为每个帖子选择并保存一栏时,此概念将起作用。整个 has_rows('page_builder') 永远不会被触发,因为没有行。我有 500 多个帖子 添加新布局类型时,是否会在 ACF 中触发?是添加新行吗?子排?我已经尝试了我能找到的每一个迭代,但它们都不会为我创建该块。最后,我想在这之前添加一段代码来创建 one_column ,以便它可以顺利运行。我确信实际上有一种方法可以在创建行后更新子字段,但我正在努力创建它!

if(!have_rows("page_builder")){
    THIS IS WHERE I AM STUCK. HOW DO I CREATE AN INSTANCE OF 'ONE COLUMN'
}

SOLUTION

$value = array(
  // nested array for each row you want to create
  array(
    // field key => value pairs for row
    'acf_fc_layout' => 'one_column',
    'field_60745782d2943' => get_the_content();
  )
)
update_field('field_key_of_flex_field', $value, $post_id)

It was the acf_fc_layout that I was missing.
php wordpress advanced-custom-fields
1个回答
0
投票

尝试使用

add_row()
功能

if(!have_rows("page_builder")){
     $new_row = array(
        'field_XXXXXX' => 'Your value here', //replace with the appropriate field key
    ); 

    add_row('page_builder', $new_row);
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.