我正在创建自定义设置字段,用于显示帖子自定义字段数据。
我想使用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()
只创建一个字段,其中包含数组的最后一个元素。
非常感谢任何输入。