2

我正在为 Wordpress 使用 acf 高级自定义字段插件。我正在使用默认输出所有字段组的通用模板。由于某些字段仅显示在特定页面上,我想确定需要输出哪些字段。我目前的解决方法如下:

1、我在后台创建了一个acf-field group(比如名字为“My Field Group”);
2,我在 acf 菜单中为“我的字段组”设置了一个角色,使其仅在特定页面上显示(角色也可以是类别等)
3,我创建了一个带有复选框和名称的自定义字段“我的字段组”中的“mygroup”总是返回“是”。

4,然后在代码中,我可以通过检查自定义字段“mygroup”的值来检查页面上的组“My Field Group”是否可用。如果是,它将返回“我的字段组”的所有字段

编码:

//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 编辑器

页

更新: 这是程序员的反馈:

ACF 不保存有关帖子中出现的特定字段组的任何信息,只保存字段值。

我相信你的方法是最小的、有效的和聪明的。我会继续使用这个。

干杯艾略特

4

1 回答 1

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表中。

因此,您必须检查帖子是否存在。

acf 字段组

数据库中相同的“字段组”:

数据库中的 acf 字段组 点击放大⤴</sup>


解决方案:使用get_page_by_title()

在我的例子中:

if( get_page_by_title( 'TimMaia', OBJECT, 'acf' ) )
{
    // Your stuff
}
于 2012-12-08T14:36:22.880 回答