gpt4 book ai didi

php - 整个组高级自定义字段的输出字段

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:46 25 4
gpt4 key购买 nike

我正在尝试找到一种方法(使用 wordpress 插件 ACF)来输出整个字段组。

我有两个“字段组”,如果其中一个是“事件的”(带有一个复选框),我想将它们回显到我的模板中。

问题是,如何从一个“字段组”中获取所有字段数据的数组?

现在我正在尝试以下操作:

<?php

$group_ID = 37;

$fields = array();
$fields = apply_filters('acf/field_group/get_fields', $fields, $group_ID);

echo "<pre>";
print_r($fields);
echo "</pre>";

?>

它输出一个字段数组,但据我所知它不包含实际数据:

Array
(
[0] => Array
(
[key] => field_537b79d92081f
[label] => Active-1
[name] => active-1
[_name] => active-1
[type] => true_false
[order_no] => 0
[instructions] =>
[required] => 0
[id] => acf-field-active-1
[class] => true_false
[conditional_logic] => Array
(
[status] => 0
[rules] => Array
(
[0] => Array
(
[field] => null
[operator] => ==
)

)

[allorany] => all
)

[message] =>
[default_value] => 0
[field_group] => 37
)

[1] => Array
(
[key] => field_537b78a4c743e
[label] => Title-1
[name] => title-1
[_name] => title-1
[type] => text
[order_no] => 1
[instructions] =>
[required] => 0
[id] => acf-field-title-1
[class] => text
[conditional_logic] => Array
(
[status] => 0
[rules] => Array
(
[0] => Array
(
[field] => field_537b79d92081f
[operator] => ==
[value] => 1
)

)

[allorany] => all
)

[default_value] =>
[placeholder] =>
[prepend] =>
[append] =>
[formatting] => html
[maxlength] =>
[field_group] => 37
)

[2] => Array
(
[key] => field_537b78c6c743f
[label] => Info-1
[name] => info-1
[_name] => info-1
[type] => textarea
[order_no] => 2
[instructions] =>
[required] => 0
[id] => acf-field-info-1
[class] => textarea
[conditional_logic] => Array
(
[status] => 0
[rules] => Array
(
[0] => Array
(
[field] => field_537b79d92081f
[operator] => ==
[value] => 1
)

)

[allorany] => all
)

[default_value] =>
[placeholder] =>
[maxlength] =>
[rows] =>
[formatting] => br
[field_group] => 37
)

)

我想基本上执行以下操作(请原谅 sudo/损坏的代码,PHP 不是我的语言):

<?php

$group_ID1 = 37;

$fields = array($group_ID1);

if ($fields1['active'] !== null) {
echo "<h1>";
echo $fields1['active']['text'];
echo $fields1['title']['text'];
echo $fields1['content']['text'];
echo "<h1>";
}

$group_ID2 = 38;

$fields2 = array($group_ID2);

if ($fields2['active'] !== null) {
echo "<h1>";
echo $fields2['active']['text'];
echo $fields2['title']['text'];
echo $fields2['content']['text'];
echo "<h1>";
}

?>

我还可以获得如下特定字段数据:

<?php

$field_key = "field_537b78c6c743f";
$field = get_field_object($field_key);

if($field) {
echo "<pre>";
print_r($field);
echo "</pre>";
}

?>

输出如下:

Array
(
[key] => field_537b78c6c743f
[label] => Info-1
[name] => info-1
[_name] => info-1
[type] => textarea
[order_no] => 2
[instructions] =>
[required] => 0
[id] => acf-field-info-1
[class] => textarea
[conditional_logic] => Array
(
[status] => 0
[rules] => Array
(
[0] => Array
(
[field] => field_537b79d92081f
[operator] => ==
[value] => 1
)

)

[allorany] => all
)

[default_value] =>
[placeholder] =>
[maxlength] =>
[rows] =>
[formatting] => br
[field_group] => 37
[value] => testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest
)

但我真的需要为每个“字段组”调用每个字段键吗?一个“字段组”中不是所有字段的数组吗?

最佳答案

您可以获得属于一个组的所有字段的数组。函数是:

$acf_fields = acf_get_fields_by_id( $group_ID );

我们需要知道 ACF 字段组 ID。您可以在组编辑页面的 url 中找到它,例如:

http://site.ru/wp-admin/post.php?post=340&action=edit

在这种情况下,组 ID 是 340。如果您不想使用硬编码 ID(如果您的组不时更改),您可以使用组名(在此示例中组名 id Technic CPT)获取它):

global $wpdb;
$group_ID = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_title = 'Technic CPT'" );

输出看起来像这样:

array(1) {
[0] => array(29) {
["ID"] => int(366)
["key"] => string(19) "field_55f05295a59ca"
["label"] => string(29) "Gallery of technic"
["name"] => string(15) "technic_gallery"
["prefix"] => string(0) ""
["type"] => string(7) "gallery"
["value"] => NULL
["menu_order"] => int(6)
["instructions"] => string(155) "Field instructions"
["required"] => int(0)
["id"] => string(0) ""
["class"] => string(0) ""
["conditional_logic"] => int(0)
["parent"] => int(340)
["wrapper"] => array(3) {
["width"] => int(50)
["class"] => string(0) ""
["id"] => string(0) ""
}
["_name"] => string(15) "technic_gallery"
["_input"] => string(0) ""
["_valid"] => int(1)
["min"] => string(0) ""
["max"] => int(10)
["preview_size"] => string(9) "thumbnail"
["library"] => string(3) "all"
["min_width"] => int(475)
["min_height"] => int(365)
["min_size"] => string(0) ""
["max_width"] => string(0) ""
["max_height"] => string(0) ""
["max_size"] => int(2)
["mime_types"] => string(0) ""
}
}

关于php - 整个组高级自定义字段的输出字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23778726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com