2017-06-08 12 views
0

私はこのレガシーコードに取り組んでおり、少し改良を図っています。私はポストからカスタムフィールドの束を保存するこのコードを持っています。自動更新update_post_meta

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])); 
     } 
    } 
} 
+1

トライ$ラベル= "unidade-DIR $のI-の$フィールド"。 –

+0

echo $ _REQUEST [$ label]そしてこれを(ifetet($ _REQUEST [$ label])){ –

+0

@MujeebuRahman wow}に入れてください。それはうまくいった!どうもありがとう。文字列をキャッチするこの方法がなぜ機能するのか、他の方法がなぜそうでないのでしょうか?また、答えとして追加して、正しいものとして選ぶこともできます。 – bfagundes

答えて

1
$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])); 
     } 
    } 
}