我们在GeekWire上使用了许多WordPress插件。我们发现的最有用的方法之一是高级定制字段(ACF),可以方便地输入和输出自定义字段。我们广泛使用自定义字段,如果没有这个插件,我无法想象我们的WordPress开发工作流。它确实为我们节省了数百个小时的乏味工作。
WordPress自定义字段
WordPress自定义字段允许文章作者为文章分配各种元数据。元数据可以是任何东西。我们使用自定义字段来做一些事情,比如指定特定帖子类型的截止日期,将外部url与帖子关联,在谷歌Analytics中添加链接跟踪参数,并为我们的活动帖子输入演讲者和赞助商列表。
一旦一个自定义字段被分配给一个帖子,你就可以用它们做一些有趣的事情来在你的网站上显示数据。例如,您可以使用自定义WP_Query对象,该对象只返回自定义字段中具有特定值的帖子。还可以检索自定义字段值,以便在站点上显示。我们网站上有一个很好的例子启动列表.列表中的每个公司都是一个带有各种自定义字段的职位。我们检索到公司的url和它的社交媒体配置文件等内容,以显示在一个表中。在我们的情况下西雅图工程中心页中,除了公司名称外,您看到的所有内容都存储为自定义字段。
构建一个WordPress自定义字段元框
如果你的WordPress帖子启用了自定义字段,你可以简单地使用管理屏幕右上方的屏幕选项下拉菜单启用“自定义字段”显示。这在后期编辑屏幕中提供了一个非常基本的元框。
很明显,这个框没有给后期作者关于你的主题期望什么样的数据的指导,甚至不是用户友好的。为了有效地使用自定义字段,您需要在您的post编辑屏幕上添加一个自定义元框,使数据输入易于理解且不易出错。下面是一个从我们的网站输入数据的例子启动列表.
创建一个自定义元框不涉及任何超级困难的代码,但它是极其乏味的。您的代码需要为每个字段的条目指定HTML,处理任何数据格式或验证规则,将值保存到数据库,从数据库检索值,清除用户输入并将元框添加到编辑屏幕。一个简单的具有几个字段的metabox很容易超过100行代码。你可以在法典中看到一个很长的例子add_meta_box
对于一个简单的单字段元框。
为什么ACF如此有用
高级自定义字段允许您创建一个复杂的UI,用于输入零代码的自定义字段信息。编写代码可能需要花费几个小时,但创建自定义的后期编辑屏幕只需两分钟。
ACF使用字段组将自定义字段附加到帖子。字段组允许您更改自定义字段的顺序,并确定您想要附加字段编辑屏幕的文章类型。
一旦创建了字段组,就可以输入各种自定义字段类型.ACF允许您指定字段标签和字段名,后者用作meta_key,用于在WordPress数据库中存储数据。你可以选择各种各样的字段类型,如文本框,所见即所得编辑器,日期选择器,图像上传,复选框,图片库,oEmbed对象,谷歌地图位置等。许多字段类型,如电子邮件、URL或数字,都有内置的数据验证逻辑,以防止在数据库中存储格式不正确的值。
您还可以通过向作者提供关于每个字段的说明来润色您的帖子编辑屏幕,关于何时应该出现特定字段的数据输入的条件逻辑,输入字段的占位符文本以及CSS类和id属性,使您能够将自定义样式应用到表单。
在站点上显示自定义字段
一旦构建了字段组,并且作者输入了自定义数据,就需要在站点上显示数据,或者使用它来影响站点的呈现方式。ACF在这里并没有提供很多神奇的功能,因为您需要确定如何使用自定义字段数据来使用主题输出或影响站点的显示。
使用ACF字段组构建的post编辑器表单使用标准的WordPress postmeta。这意味着它将数据存储在数据库中的标准meta_key/meta_value对中。在许多情况下,实际上不需要使用ACF函数来访问这些数据。你可以使用标准的WordPress函数,比如get_post_meta
或查询自定义字段参数来获取作者存储的数据。
ACF确实提供它的自己的API也可以访问自定义字段数据。简单的例子the_field(“field_name”)
或get_field(“field_name”)
允许开发人员快速检索和使用自定义字段数据。ACF api的优点是您可以指定希望返回的值的类型。例如,如果你有一个图像上传字段,get_field
可以返回图像URL,图像ID或图像元数据数组,这取决于你在代码中需要什么。
API真正有用的地方是当你使用像中继器字段.中继器允许字段在同一个帖子上一次又一次地输入。使用以下组合have_rows
,the_row
而且the_sub_field
从ACF API,你可以迭代这些字段,以非常类似于WordPress循环的方式在你的网站上显示数据。
从高级自定义字段开始
ACF有两个版本。的从WordPress.org免费下载包含大部分基本功能。升级到付费专业版支持更复杂的字段组,如中继器字段,图库字段,灵活的内容字段和选项页面。购买开发人员许可使您可以将插件部署到客户端网站。你甚至可以在你自己的插件/主题中分发ACF如果你是一个商业主题开发者。
ACF在WordPress社区中被大量使用,根据WordPress.org的数据,目前有90万活跃安装。ACF也得到了开发人员的积极开发和适当的支持,这是评估任何WordPress插件的关键标准。
如果你是一个开发人员,需要处理与你的WordPress帖子相关的任何类型的自定义元数据,我强烈建议你看看ACF。这会节省你很多时间。