我有一些带有不同子字段的ACF(高级自定义字段)转发器表。现在,我想检查插入其中之一的特定文本值,并根据此处存储的值打印不同的div类。
我尝试了以下操作,但这不起作用。
[ { _id: '09-09-2019', count: 3 },
{ _id: '08-09-2019', count: 3 },
{ _id: '07-09-2019', count: 2 },
{ _id: '05-09-2019', count: 8 },
{ _id: '06-09-2019', count: 1 },
{ _id: '10-09-2019', count: 1 },
{ _id: '04-09-2019', count: 4 } ]
答案 0 :(得分:1)
1)更正回显字符串的格式
您的结束引号和分号在回显的字符串中不正确。
这是更正的标记:
<?php
if (get_sub_field('rls_status') == "ONLINE") {
echo '<div class="online">Status: ONLINE</div>';
} elseif (get_sub_field('rls_status') == "OFFLINE") {
echo '<div class="offline">Status: OFFLINE</div>';
}
?>
2)检查数据是否可访问
查看存储在ACF选项中的数据。 要在DOM中呈现,请使用:
<?php var_dump(get_sub_field('rls_status')); ?>
要查看您的PHP错误日志(我的偏好,因为它通常更易于查看):
<?php
error_log("--------- START of my log -------------");
error_log(var_export(get_sub_field('rls_status'), true));
error_log(gettype(get_sub_field('rls_status'))); // Check the type is string
error_log("--------- END of my log -------------");
?>
(不要忘记true
作为var_export
函数中的第二个参数)
如果看不到数据或不是您期望的数据,则需要检查一些内容。
get_sub_field()
是正确的,但如果您在某个地方感到困惑,请仔细检查get_field()
。3)检查它是否尚未运行,但似乎没有作用
通过检查并查看代码块是否已呈现但只是不可见来仔细检查DOM。
要绝对确定我会执行以下操作:
<?php
if (get_sub_field('rls_status') == "ONLINE") {
error_log("--------- WE ARE ONLINE- WHAAAAAT?! -------------");
echo '<div class="online">Status: ONLINE'</div>;
} elseif (get_sub_field('rls_status') == "OFFLINE") {
error_log("--------- WE ARE OFFLINE BOOOOOOO! -------------");
echo '<div class="offline">Status: OFFLINE';</div>
} else {
error_log("--------- NEITHER?! -------------");
error_log(var_export(get_sub_field('rls_status'), true));
}
?>
4)检查该帖子的所有ACF数据
您可以使用get_fields()
函数查看帖子的所有数据。
<?php
error_log("--------- START of my log -------------");
error_log(var_export(get_fields(), true));
error_log("--------- END of my log -------------");
?>
查看您是否可以找到所需的内容或丢失的内容。