0

所以基本上,我有一个在 wordpress 上创建帖子时运行的函数。我通过添加以下代码修改了这个函数。

$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”复选框来更新另一个复选框字段。如果它是“配音”,则通过选中“配音”复选框来更新复选框字段。

这工作得很好,但是没有时间同时选中这两个复选框。如果我添加一个带有配音的帖子,它会选中配音,然后如果我添加一个带有 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 回答