高级自定义字段:表字段

贝斯克雷朋

表字段插件增强了“高级自定义字段”插件具有易于编辑的表格。

此插件需要“高级自定义字段”插件专业版!

表字段也适用于中继器和灵活的字段类型,并支持古腾堡ACF砌块

特征

  • 表格标题(可选)
  • 表标题(可选)
  • 支持ACF Gutenberg区块
  • 添加和删除表列和行
  • 通过拖动更改列和行的顺序
  • 要移动到下一个单元格编辑器,请按键:tab
  • 要移动到上一个单元格编辑器,请按键:shift+tab

翻译

  • 英语–默认,始终包含
  • 德语:Deutsch–immer dabei!
  • 丹麦语:Dansk–altid der!
  • 波兰语:Polski–zawsze tam jest!

注:拜托贡献你的语言让插件更加有用。

赞成的意见

高级自定义字段表字段插件也有专业版本,其中包含更多功能和灵活性。其他Pro功能包括:

  • 预定义表
  • 表格单元格内容类型(简单文本或可配置的WordPress编辑器)
  • 桌头和桌脚
  • 短柱
  • 行span和列span
  • 移动行和列的更好方法
  • 行和列的最小和最大数量
  • 表格和表格部分的样式选择

Pro版本与免费版本完全独立运行,并带有自己的字段类型。

至专业网站

屏幕截图

  • 字段设置

  • 字段内容编辑

  • 抓住灰色区域中的行和列并拖动它们。

安装

该软件可以用作WP插件和主题包。
然而,只有当作为插件激活时,更新才可用。

插件

  1. 将“advanced-custom-fields-table-field”文件夹复制到插件文件夹中。
  2. 通过插件管理页面激活插件。

常见问题解答

如何输出表格html?

要在一个模板文件(page.php,single.php)中将表字段数据呈现为html表,可以从以下基本代码示例开始:

$table=获取字段('your_table_field_name');if(!空($table)){echo'<table border=“0”>';if(!空($table['caption']){echo“<caption>”$表['caption']。'</标题>';}if(!空($table['header']){echo“<thead>”;echo“<tr>”;foreach($table['header']作为$th){echo“<th>”;echo$th['c'];echo“</th>”;}echo“</tr>”;echo“</thead>”;}echo“<tbody>”;foreach($table['body']作为$tr){echo“<tr>”;foreach($tr表示$td){echo“<td>”;echo$td['c'];echo“</td>”;}echo“</tr>”;}echo“</tbody>”;echo“</table>”;}

表字段在get_field()上没有返回数据?

如果表只有一个空单元格,那么获取字段()收益错误的.获取字段()如果数据库中没有存储字段,则返回NULL。当复制页面而不是其字段内容时会发生这种情况。您可以使用空()

$table=get_field('your_table_field_name]);if(!空($table)){//$table不是FALSE,也不是NULL。//字段存在于数据库中并具有内容。}

如何处理换行符?

这是关于在管理表中显示换行符并将换行符作为<br>当输出表格HTML时。

为HTML输出转换换行符

将换行符转换为<br>在表中,HTML输出PHP函数nl2br()可用于:

对于中的换行符表格标题单元格替换…

回声$th['c'];

使用…

echo nl2br(第['c'个]);

对于中的换行符表体单元格替换…

echo$td['c'];

使用…

echo nl2br($td['c']);

在编辑表格中显示换行符

要在管理区域的编辑表中显示自然换行符,请将以下样式添加到管理区域。

.acf-table-header-cont,.acf-table-body-cont格式{空白:前置行;}

将这些样式添加到WordPress管理区域的一种方法是将以下代码添加到主题的functions.php文件中。

add_action('admin_head','acf_table_styles');函数acf_table_styles(){echo“<样式>.acf-table-header-cont,.acf-table-body-cont格式{空白:前置行;}</style>';}

如何使用Elementor Page Builder中的表字段?

一般来说,由Elementor来支持Elementor小部件上的ACF字段类型。Elementor支持的所有ACF字段你可以在这里找到。但由于表字段不是本机ACF字段,因此可能永远不会支持此字段。

目前的方法是使用Elementors短代码小工具。在使用短代码显示表字段表之前,必须在functions.php中设置短代码。以下代码执行此操作。您可以根据需要修改表格html输出。

函数shortcode_cf_tablefield($atts){$a=shortcode_atts(数组(“table-class”=>“”,“field-name”=>假,“post-id”=>假,),$atts);$table=获取字段($a['field-name'],$a[`post-id']);$return=“”;如果($table){$return.='<table class=“'.$a['table-class'].'”border=“0”>';if(!空($table['caption']){echo“<caption>”$表['caption']。'</标题>';}if($table['header']){$return.='<头部>';$return.='<tr>';foreach($table['header']作为$th){$return.='<th>';$返回。=$th['c'];$return.='</th>';}$return.='</tr>';$return.='</头部>';}$return='<tbody>';foreach($table['body']作为$tr){$return.='<tr>';foreach($tr表示$td){$return='<td>';$返回。=$td['c'];$return.='</td>';}$return.='</tr>';}$return.='</t车身>';$return.='</表>';}return$return;}add_shortcode('tablefield','shortcode_cf_tablefield');

然后使用Elementors短代码小部件中的短代码,如下所示从当前页面或帖子插入表格

[tablefield field-name=“your table field name”table-class=“my-table”]

你也可以从其他页面或帖子插入表格

[tablefield field-name=“your table field name”post-id=“123”table-class=“my-table”]

或者你可以从ACF选项页插入表格

[tablefield field-name=“your table field name”post-id=“option”table-class=“my-table”]

使用update_field()更新表

您可以使用ACF PHP函数更新字段()更改表数据。

通知

  • 确保标题数组中的条目数与正文行中的单元格数相匹配。
  • 数组键“c”表示单元格的内容,可以在未来开发中添加其他单元格设置。
  • get_field()获得的表数据是格式化的,与get_post_meta()获取的原始数据库数据不同。

使用get_field()和update_field

//更新表字段的post ID$post_id=123;$table_data=get_field('my_table',$post_id);$table_data=数组(“use_header”=>true,//boolean true/false'标题'=>'我的标题',“header”=>数组(0=>数组(“c”=>“A”,),1=>阵列(“c”=>“B”,),),“body”=>数组(0=>数组(0=>数组('c'=>'第一行第一个单元格的内容',),1=>阵列('c'=>'第一行第二个单元格的内容',),),1=>阵列(0=>数组('c'=>第二行第一个单元格的内容',),1=>阵列(“c”=>“第二行第二个单元格的内容”,),),));update_field('my_table',$table_data,$post_id);

添加新行的示例

//更新表字段的post ID$post_id=123;//获取表数据$table_data=获取字段('my_table',$post_id);//定义新行及其列$new_row=数组(//必须定义与表中相同数量的列//第1列阵列(//“c”代表单元格内容“c”=>“第1列的单元格内容”,),//第2列阵列(“c”=>“第2列的单元格内容”,));//将新行添加到表体数据array_push($table_data['body'],$new_row);//保存新的表数据update_field('my_table',$table_data,$post_id);

第三方插件问题

自表插件1.3.1版以来,表数据的存储格式从JSON字符串更改为新表或更新表的序列化数组。JSON的问题是因为第三方插件没有正确应用wp_slash()更新为post_meta值之前更新post_metadata()。这可能会破坏JSON字符串,因为更新post_metadata()默认情况下删除反斜杠。反斜杠是内容中转义引号的JSON字符串语法的一部分。

表字段插件防止断开的JSON字符串保存为表字段数据,并引发一条错误消息来解释此问题。但这也可能会破坏试图更新表数据的第三方插件的功能。您可以使用wp-config.php文件中的以下代码禁用表字段插件中的JSON字符串检查。但是,表JSON数据不再受到更新post_metadata()。如果您了解风险,请仅在wp-config.php中使用以下代码…

定义(“ACF_TABLEFIELD_FILTER_POSTMETA”,假);

雷森西宁

7.März 2023年
几年前,我在一个网站上安装了这个插件,今天我才重新开始使用它。仍然是一个非常干净、简单和灵活的表字段解决方案,谢谢!👍🏻
4.2022年11月
你好,对不起,我怎么才能在前台展示这张桌子?
2021年5月18日
这是一个很棒的插件,但遗憾的是,它无法设置默认值。问开发者:如果有人编写这个功能,你会把它添加到官方插件中吗?
2021年4月19日
正在寻找一种干净的方法来在我的网站中的任何位置插入表格。这就是解决方案。
Alle 56 Rezensionen lesen公司

Mitwirkende&Entwickler公司

“高级自定义字段:表字段”是Open-Source-Software。Folgende Menschen haben an diesem Plugin mitgewirkt:

米特威肯德

9 Sprachenübersetzt.Danke an中的“高级自定义字段:表字段”u bersetzerinnen和u bersetzir之死我是Mitwirkung。

Übersetze“高级自定义字段:表格字段”在deine Sprache中。

干预Entwicklung?

杜氏密码,sieh dir das公司SVN仓库阿伯尼埃尔的一个订单恩特威克隆普洛托科尔RSS(RSS).

阿尔·安德伦斯波托科尔

1.3.22

  • 修复了在未对字段进行任何实际更改的情况下对字段执行更改的触发器的问题。
  • 修复了未保存对行和列以及新行和列的顺序所做的更改的问题。

1.3.21

  • 为选项页添加update_field()支持
  • 修复了get_field()上缺少的“use_header”属性

1.3.20

  • 修复Gutenberg上的多个注册事件
  • 修复了未初始加载编辑表的问题

= 1.3.19=
*修复了未在古腾堡块中初始加载编辑表的问题。

1.3.18

  • 修复了包含表字段的Gutenberg块的问题。如果同一块在页面上多次使用,则不会保存更改。

1.3.17

  • 使用ACF_register_field_type方法更改注册ACF字段类型。
  • 删除对ACF版本4的支持。

1.3.16

  • 修复导致PHP警告的逻辑错误

1.3.15

  • 修复了PHP8中count()的问题

1.3.14

  • 防止表格单元格的蓝色编辑器窗口中的字体大小和行高被其他样式覆盖。
  • 修复了update_field()中无法将“use_header”选项设置为false的问题。

1.3.13

  • 修复ACF Gutenberg块中缺少的可排序列和行
  • 更新被剥夺的jQuery功能

1.3.12

  • 更新acf按钮加号和减号的样式

1.3.11条

  • 添加对update_field()更新术语类型的支持

1.3.10

  • 修复了ACF Gutenberg块上的表单元格内容和标题更新问题
  • 将jQuery depicated size()方法替换为.length属性

1.3.9

  • 修复WordPress 5.3中损坏的ACF选择字段样式。
  • 修复了使用update_field()添加或删除列时出现的问题。

1.3.8

  • 修复了使用update_field()更新字段时未应用选项“use header”的问题。
  • 修复了表字段内容中的百分比字符导致JavaScript错误的问题。

1.3.7

  • 修复了在页面预览中未显示表标题的问题。

1.3.6

  • 修复了将字段类型更改为数据库中已有其他字段类型内容的字段表时出现的问题。

1.3.5

  • 修复了当选项“use header”设置为“no”时,使用update_field()删除表标题内容的问题。
  • 修复update_post_metadata过滤器的问题

1.3.4

  • 修复了阻止删除表内容的问题

1.3.3

  • 修复了保存包含单引号的内容后返回空表的问题。

1.3.2

  • 修复了保存包含引号的内容后返回空表的问题
  • 使用update_field()修复表字段上的问题

1.3.1

  • 将表数据存储格式从JSON字符串更改为序列化数组。这是由于第三方插件使用update_post_meta()而没有为之前的值提供wp_slash()导致的问题。数据库中JSON字符串格式的现有表数据值仍然存在并兼容。再次保存字段时,存储格式将从JSON更改为序列化数组。
  • 修复了表标题的PHP错误

1.3.0

  • 添加对表标题的支持
  • 修复了ACF版本4的JavaScript问题

1.2.7

  • 添加PHP常量ACF_TABLEFIELD_FILTER_POSTMETA。将此常量设置为false可防止update_post_metadata过滤器查找由update_phost_meta()破坏的表字段JSON字符串。

1.2.6

  • 替换jQuery.noConflict方法
  • 如果表字段值来自以前的字段类型,则防止PHP错误

1.2.5

  • 感谢Jeppe Skovsgaard,添加了丹麦语翻译

1.2.4

  • 修复了使用update_field()时的反斜杠;

1.2.3

  • 添加对ACF update_field()函数的支持。如果通过get_field()获取表字段数据数组,则可以更改表数据数组并使用update_field。

1.2.2

  • 将插件版本添加到表数据以处理结构更改。
  • 修复了第三方update_post_meta()操作中包含引号的表数据丢失到表字段值的问题。仅限于新字段或自插件版本1.2.2以来更改的字段值。
  • 修复了自PHP 7.2以来正文数据为空的PHP警告

1.2.1

  • 修复了不使用用户区域设置进行翻译的问题
  • 将处理换行符的说明添加到插件页面

1.2

  • 添加对选项卡导航的支持。使用shift+tab进行向后导航。
  • 轻微的代码改进

1.1.16

  • 如果tablefields值不是有效的JSON字符串,则保持WordPress管理区域工作。在控制台中记录无效值以进行调试。

1.1.15

  • 添加Pawel Golka的波兰语翻译

1.1.14

  • 修复表未出现在某些字段组位置规则下

1.1.13

  • 修复了/wp-admin/pages中的XSS问题

1.1.12

  • 添加对字段组分类后规则的支持

1.1.11

  • 修复了更改其他内容时表的重新呈现

1.1.10

  • 与ACF规则相关的固定表功能

1.1.9

  • 修复了ACF版本4的单个空表单元格返回false的问题

1.1.8

  • 修复了对用户编辑页面的支持

1.1.7

  • 修复了对用户配置文件页面的支持

1.1.6

  • UI:修复表标题关闭问题

1.1.5

  • 使用插件“WP Migrate DB”修复了数据库迁移后出现的问题

1.1.4

  • 接管自5.3.2版以来ACF-Pro中图标类的更改

1.1.3

  • 修复了错误的函数名称“change_template”

1.1.2

  • 修复页面模板更改中缺少的表

1.1.1

  • 兼容ACF Pro 5.2.8版的图标更改
  • 修复FireFox中的桌面图例高度
  • 修复IE中删除列图标的位置

1.1

  • 改进了删除所有列和行时的用户体验。
  • 与ACF Pro 5.2.7版变更的兼容性。

1.0.7

  • 使用wp_json_encode()而不是json_encode()。这可能会解决罕见环境中的问题。

1.0.6

  • 如果表只有一个空单元格(默认情况下为空),则现在不会返回任何表数据。

1.0.5

  • 修复了IE 8中的javascript问题。
  • 修复FireFox中缺少的表格边框和表格标题高度。

第1.0.4条

  • 修复了某些主机上的uri问题。

1.0.3

  • 修复HTTP_REFFERR上的php错误。

1.0.2

  • 修复了从主题中包含插件时的错误。

1.0.1

  • 修复了使用标题选项“使用表格标题”并取消选中时ACF验证错误“必需”。

1

  • 免费版本的正式发布