自动化 update_post_meta

Automating update_post_meta

所以我一直在研究这个遗留代码,我正在努力改进它。我有这段代码,它从 post.

中保存了一堆自定义字段
if(isset($_REQUEST['unidade-dir1-cargo'])){
    update_post_meta($post_id, 'unidade-dir1-cargo', sanitize_text_field($_POST['unidade-dir1-cargo']));
    update_post_meta($post_id, 'unidade-dir1-nome', sanitize_text_field($_POST['unidade-dir1-nome']));
    update_post_meta($post_id, 'unidade-dir1-email', sanitize_text_field($_POST['unidade-dir1-email']));
}
if(isset($_REQUEST['unidade-dir2-cargo'])){
    update_post_meta($post_id, 'unidade-dir2-cargo', sanitize_text_field($_POST['unidade-dir2-cargo']));
    update_post_meta($post_id, 'unidade-dir2-nome', sanitize_text_field($_POST['unidade-dir2-nome']));
    update_post_meta($post_id, 'unidade-dir2-email', sanitize_text_field($_POST['unidade-dir2-email']));
}
if(isset($_REQUEST['unidade-dir3-cargo'])){
    update_post_meta($post_id, 'unidade-dir3-cargo', sanitize_text_field($_POST['unidade-dir3-cargo']));
    update_post_meta($post_id, 'unidade-dir3-nome', sanitize_text_field($_POST['unidade-dir3-nome']));
    update_post_meta($post_id, 'unidade-dir3-email', sanitize_text_field($_POST['unidade-dir3-email']));
}
if(isset($_REQUEST['unidade-dir4-cargo'])){
    update_post_meta($post_id, 'unidade-dir4-cargo', sanitize_text_field($_POST['unidade-dir4-cargo']));
    update_post_meta($post_id, 'unidade-dir4-nome', sanitize_text_field($_POST['unidade-dir4-nome']));
    update_post_meta($post_id, 'unidade-dir4-email', sanitize_text_field($_POST['unidade-dir4-email']));
}
if(isset($_REQUEST['unidade-dir5-cargo'])){
    update_post_meta($post_id, 'unidade-dir5-cargo', sanitize_text_field($_POST['unidade-dir5-cargo']));
    update_post_meta($post_id, 'unidade-dir5-nome', sanitize_text_field($_POST['unidade-dir5-nome']));
    update_post_meta($post_id, 'unidade-dir5-email', sanitize_text_field($_POST['unidade-dir5-email']));
}

并且有效。我试过把它改成这个,但它不起作用。有人知道为什么吗?

$no_directors = 5;
$fields = array('cargo', 'nome', 'email');
for($i=1; $i<=$no_directors; $i++){
    foreach($fields as $field){
        $label = 'unidade-dir'.$i.'-'.$field;
        if(isset($_REQUEST[$label])){
            update_post_meta($post_id, $label, sanitize_text_field($_POST[$label]));
        }
    }
}
 $no_directors = 5;
$fields = array('cargo', 'nome', 'email');
for($i=1; $i<=$no_directors; $i++){
    foreach($fields as $field){
        $label = "unidade-dir$i-$field";
        if(isset($_REQUEST[$label])){
            update_post_meta($post_id, $label, sanitize_text_field($_POST[$label]));
        }
    }
}