0

基本的に、ワードプレスで投稿が作成されたときに実行される関数があります。次のコードを追加して、この関数を変更しました。

$episodeID = $_POST['item_meta'][137];
$episodeVersion = $_POST['item_meta'][357];



if ($episodeVersion == "Subbed") { 
    $value = array("Subbed");

    update_field('field_48', $value, $episodeID);

} 
else if ($episodeVersion == "Dubbed") { 
    $value = array("Dubbed");

    update_field('field_48', $value, $episodeID);



}

このコードは基本的に、その投稿のフィールドの値が「Subbed」の場合、「Subbed」チェックボックスをオンにして別のチェックボックス フィールドを更新することを示しています。「吹き替え」の場合は、「吹き替え」チェックボックスを選択して、チェックボックス フィールドを更新します。

これは問題なく動作しますが、これらのチェックボックスの両方がチェックされている時間はありません。吹き替え付きの投稿を追加すると吹き替え済みにチェックが入り、字幕付きの投稿を追加すると吹き替え済みのチェックが外れ、字幕付きのチェックが入ります。

基本的に、すでにチェックされているものを実際にチェック解除しないようにするにはどうすればよいですか。では、チェックボックスがチェックされていないかチェックされているかを確認するには、何を使用すればよいでしょうか? ブール値の真/偽のタイプ?

4

1 に答える 1

0

さて、私はコードの一部を操作して、最終的にそれを機能させることができました。

私がしなければならなかったのは、吹き替えのifステートメントを実行するときにSubbedチェックボックスがすでにチェックされているかどうかをチェックすることだけでした。

これが更新されたコードです

$episodeID = $_POST['item_meta'][137];
$episodeVersion = $_POST['item_meta'][357];



if ($episodeVersion == "Subbed" && !(get_field('episode_sdversion') && in_array('Subbed', get_field('episode_sdversion', $episodeID))) ) { 
    if (get_field('episode_sdversion') && in_array( 'Dubbed', get_field('episode_sdversion'))) {    
        $value = array("Subbed", "Dubbed");         
    } else {
        $value = array("Subbed");
    }       

    update_field('field_48', $value, $episodeID);

} 
if ($episodeVersion == "Dubbed" && !(get_field('episode_sdversion') && in_array('Dubbed', get_field('episode_sdversion', $episodeID))) ) { 

    if (get_field('episode_sdversion') && in_array( 'Subbed', get_field('episode_sdversion'))) {    
        $value = array("Subbed", "Dubbed");         
    } else {
        $value = array("Dubbed");
    }

    update_field('field_48', $value, $episodeID);



}
于 2013-02-26T01:28:29.683 に答える