我正在使用适用于Wordpress的acf Advanced Custom Fields插件。 我正在使用默认情况下输出所有字段组的通用模板。 由于某些字段仅显示在特定页面上,我想确定需要输出哪些字段。 我目前的解决方法如下:
1,我创建了一个acf-field组(例如名称为“My Field Group”)
后端;
2,我在“My Field Group”的acf菜单中设置了一个角色
仅在例如特定页面(角色也可以是类别等)
3,我创建了一个带有复选框的自定义字段
在“我的字段组”中命名“mygroup”,始终返回“是”。
4,然后在代码中,我可以检查组中的“我的字段组”是否可用 页面通过检查自定义字段“mygroup”的值。如果是,它将返回“我的字段组”的所有字段
代码:
//check if the field group "My Field Group" is available by checking the value of its custom field "mygroup"
<?php if(get_field('mygroup') == "yes") { ?>
<div>
//load all other fields in the field group "My Field Group"
</div>
<?php } ?>
因为这只需要一个额外的字段来检查字段组是否在页面上可用(分别用于确定角色),我想知道是否有更优雅的方法来实现
更新 以下是程序员的反馈:
ACF不会保存有关特定字段组的任何信息 出现在帖子上,只有字段值。
我相信您的方法是最小,高效和智能的。我会 继续使用它。
干杯艾略特
答案 0 :(得分:0)
只需检查字段mygroup
是否已启用,请使用:
// call the function only once
$group = get_field('mygroup');
if( $group ) {
?>
<div>
<?php do_your_magic_with_the_other_fields(); ?>
</div>
<?php
}
用于检查整个My Field Group
:
ACF字段组是存储在wp_posts
表中的自定义帖子类型。此字段组中的字段存储在wp_postmeta
表中。
所以,你必须检查帖子的存在。
数据库中的“字段组”相同:
在我的例子中:
if( get_page_by_title( 'TimMaia', OBJECT, 'acf' ) )
{
// Your stuff
}