【发布时间】:2013-02-26 09:28:29
【问题描述】:
所以基本上,我有一个在 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 的帖子,它将取消选中配音并选中已配音。
所以基本上,我怎样才能使它实际上不会取消选中已经检查的任何内容。那么我应该用什么来检查复选框是未选中还是选中?某种类型的布尔真/假?
【问题讨论】:
-
如果 update_field 只是在字段上设置了一个检查,那么你可以去掉“else”关键字,这样如果 Subbed 它将检查 subbed,然后检查是否配音然后检查配音。当你拥有它时,这两者是相互排斥的,所以只有一个或另一个,而当你同时拥有两个 if 时,两者都可以同时发生。
-
我想这在逻辑上是有道理的。仅当 if 条件在一篇不会发生的帖子中为真时。这意味着一篇帖子只能有 Subbed 或 Dubbed。但是它正在更新的字段的值可以检查 Subbed 和 Dubbed。因此,如果有一个帖子以 Subbed 值提交,然后另一个帖子作为“配音”提交,则应在另一个帖子上选中两个复选框。但这不会发生,只检查一个或另一个。
-
那么需要更多代码,例如您的 html 以及 update_field 的实现方式。