在lopp内部执行WP查询时

时间:2018-06-11 11:03:49

标签: wordpress foreach while-loop nested-loops

我正在创建自定义设置字段,用于显示帖子自定义字段数据。

我想使用add_settings_section()函数为每个帖子创建一个部分,并且在每个部分中,我想为每个自定义字段创建一个字段add_settings_field()

function createSettingsSections() {
    $args = array(
    "post_type"       => "post",
    "category_name"   => "mycat",
    "post_status"     => "publish",
  );

  $mycatPosts = new WP_Query($args);

  $customFields = MyClass::getCustomFields(); // array of strings

  while ($mycatPosts->have_posts()) {
    $mycatPosts->the_post();
    $post = $mycatPosts->post;

    add_settings_section(                    // WordPress API function
      'my_page' . $post->ID,
      $post->post_title,
      'section_callback',
      'my_page'
    );

    forEach ($customFields as $field) {
      add_settings_field(                    // Other WP API function
        $post->ID,
        $field,
        'field_callback',
        'my_page',
        'my_page' . $post->ID,
        [
          'label_for' => $field,
          'class' => '',
          'custom_data' => 'custom',
        ]
      );
    }
  }
}

第一部分工作正常:add_settings_section()$mycatPosts查询中为每个帖子正确创建了一个部分。

但是,当我尝试为每个部分为$customField创建一个字段时,forEach循环仅返回{strong> $customFields数组的最后一个元素。换句话说,add_setings_field()只创建一个字段,其中包含数组的最后一个元素。

非常感谢任何输入。

0 个答案:

没有答案