如何在Wordpress高级自定义字段插件中检查字段组?

时间:2012-12-08 13:29:42

标签: wordpress custom-fields

我正在使用适用于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 editor

page

更新 以下是程序员的反馈:

  

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

     

我相信您的方法是最小,高效和智能的。我会   继续使用它。

     

干杯艾略特

1 个答案:

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

所以,你必须检查帖子的存在。

acf field group

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

acf field group in the database 点击放大⤴


解决方案:使用get_page_by_title()

在我的例子中:

if( get_page_by_title( 'TimMaia', OBJECT, 'acf' ) )
{
    // Your stuff
}