我在Wordpress中运行高级自定义字段。在ACF中,您可以在选项卡中对项目进行分组,从而更容易导航以创建帖子/页面内容。
我想要以编程方式检索选项卡的名称,它是内容。
有可能吗?我找不到任何关于此的文件。
答案 0 :(得分:0)
不确定您是否得到了问题的答案,
没有办法通过php代码获取字段/子字段数据,因为选项卡和它们下面的字段之间没有关系。
ACF选项卡仅用于管理布局以组织字段(隐藏/显示等),并且完全通过JS / CSS完成。如果你有ACF PRO检查这个文件夹中的函数 - plugins / advanced-custom-fields-pro / assets / js / acf-input.js,它解释了标签在ACF中的工作方式
如果你想获得一个不在数组中的转发器/灵活布局的字段,那么你可以得到一整套字段数据,这在[{3}}
中有解释。答案 1 :(得分:0)
我今天遇到了这个问题,以为我会发布解决方案。根据我的研究,除了在字段组中找到它并向后迭代直到找到类型为tab的字段外,无法直接访问tab字段。
Class ACFHelper {
/**
* get_field_group_by_name: gets the first matching field group for a given title
*
* @param $title the title of the acf field group
* @return Array the fields of the field group or false if not found
*
*/
public static function get_field_group_by_name($title) {
$field_group_post = get_posts([
'numberposts' => 1,
'post_type' => 'acf-field-group',
's' => $title
]);
return ( !empty($field_group_post[0]) ? acf_get_fields( $field_group_post[0]->ID ):false );
}
/**
* get_tab_by_field_name: gets the tab of a specified field by iterating backwards through the field group
*
* @param $field_group_title the title of the acf field group
* @param $field_name the name of the field for which we want the tab it's under
* @return Array the field group of the tab or false if not found
*
*/
public static function get_tab_by_field_name($field_group_title, $field_name) {
$field_group = Self::get_field_group_by_name($field_group_title);
if($field_group) {
$field_index = array_search($field_name, array_column($field_group, 'name'));
if($field_index) {
for($field_index; $field_index > -1; $field_index--) {
if( $field_group[$field_index]['type'] == 'tab' )
return $field_group[$field_index];
}
}
}
return false;
}
}
现在,如果我在“水果”标签下有一个野草莓,则可以在“食品”字段组中找到我的“水果”标签,例如:
$tab = ACFHelper::get_tab_by_field('foods', 'strawberry');