所以,基本上,我有一个函数,当在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"复选框来更新另一个复选框字段。如果是"Dubbed",则通过选择"Dubbd"复选框来更新复选框字段。
这非常好,但是没有时间同时选中这两个复选框。如果我添加了一个带有配音的帖子,它会选中配音,然后如果我添加一个带有Subbed的帖子,会取消选中配音并选中Subbed。
所以基本上,我该怎么做,这样它就不会取消选中已经选中的内容。那么,我应该用什么来检查复选框是未选中还是已选中?某种类型的布尔真/假?
好吧,所以我能够操作一些代码,并最终使其工作。
我所要做的就是检查在执行配音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);
}