【问题标题】:How to check for field groups in Wordpress Advanced Custom Fields plugin?如何检查 Wordpress 高级自定义字段插件中的字段组?
【发布时间】:2012-11-26 12:09:39
【问题描述】:

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

1,我在 后端;
2、我在acf-menu中为“My Field Group”设置了一个角色为 仅显示在例如特定页面(角色也可以是类别等)
3,我创建了一个带有复选框的自定义字段,并且 在始终返回“yes”的“我的字段组”中命名“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 不保存有关特定字段组的任何信息 出现在帖子上,只有字段值。

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

干杯艾略特

【问题讨论】:

  • 你所说的字段组是什么? “可用”是什么意思?这个复选框放在哪里?
  • 看,您的问题仅从全局上下文的一小部分开始。现在,在 2 个错过的答案之后,总体情况更加清晰。要理解 Q,必须通过 cmets 进行导航。我的建议是您再次编辑 Q 以使其真正可回答。并使用您自己的字段名称,Tim Maia 原本是巴西的复活节彩蛋,但现在让事情变得更加混乱:P
  • IMO,如果您将快照添加到项目 2 和 3,将会非常清楚。
  • 好的,我做到了。你能恢复你的第一个答案吗?我认为很高兴知道谁可以针对特定的领域组,这可能有助于回答我的问题
  • 我把第一版和第二版的Q合并了,是不是解决了大家的疑惑?

标签: wordpress custom-fields


【解决方案1】:

为了简单地检查字段 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 表中。

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

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

点击放大 ⤴


解决方法:使用get_page_by_title()

在我的例子中:

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

【讨论】:

  • 谢谢。这不是编码问题。代码工作正常。我只是想知道如何直接针对 acf-plugin 的字段组(无需创建为每个组设置变量的额外自定义字段)
  • 感谢您让我知道如何定位该组!只有一个问题:if 语句将始终返回字段组“TimMaia”的内容,因为它始终为真(即使某个页面在其页面上不使用该组)
  • 抱歉给您带来了困惑 ;)
猜你喜欢
  • 1970-01-01
  • 2018-02-04
  • 2012-08-10
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 2015-01-21
  • 2017-05-01
  • 2017-08-28
相关资源
最近更新 更多