管理中的自定义输入字段 – 自定义元框

几天前,我们在Košice举行了另一次 WordPress 爱好者 – 开发人员会议。 我们在Halmi caffe会面,这次的主题也是“自定义元盒”。

我们研究了在 WP 管理中创建自己的输入字段的三种方法,并在讨论期间添加了一些我们自己的经验、类型和生成器。 我们从使用经典的 WordPress 功能和文档中的描述开始,我们继续基于高级自定义字段和 CMB2 插件的演示。 文末有一些源代码;)

这些输入字段可用于我们要处理和显示在页面、文章、配置文件、产品等中的特殊值。

根据 WordPress 文档

WordPress 的核心是具有强大的功能,可让我们根据自己的喜好对其进行自定义。 其中之一是add_meta_box () ,我们用它来创建自己的输入字段。

add_meta_box()

根据输入的参数,我们可以指定输入字段应该位于帖子编辑的哪个部分,以及它将用于哪种类型的帖子(文章、页面、个人资料……)。 但是,该函数只会为我们创建一个字段。 您仍然需要在每次保存帖子时保存它的值,并在尝试编辑它时加载它。 我们受到了综合解决方案的启发,我们在文档下方的评论中找到了该解决方案。

此输入字段的值与post ID和meta key(用于区分几种类型的值)一起存储在数据库中的表postmeta (或usermeta等,取决于post的类型)中一篇文章)。

为了进一步处理或直接显示页面上的值,我们使用get_post_meta()函数从数据库中检索该值。

get_post_meta()

具体例如如下:

<?php echo get_post_meta( get_the_ID(), '_my_meta_value_key', true ); ?>

每页的示例结果:

 

使用高级自定义字段插件

该插件的优点是可以在其界面中逐字单击输入字段。

Advanced Custom Fields

另一个优点是大量的文档,无需冗长的编程,我们可以为图库、地图、日期和时间等创建输入字段。

但是,它在数据库中夸大了一点。 通过首先在其中定义输入字段,将它们保存为帖子(在帖子表中),然后将值(例如,输入字段在编辑中的位置)存储在postsmeta中。 保存页面编辑时,它为我们在数据库中为一个输入字段保存了两行。 当修订被自动保存时,还有两个。

然后我们不使用经典的 WP 函数(get_post_meta)来显示值,而是使用插件函数,例如:

<?php the_field('acf1'); ?>

根据文档,我们还可以在文章正文中使用简码和显示值。

使用 CMB2 插件

这个插件不再像我们习惯的那样具有“点击”设置。

CMB2

它包含可用于创建自定义输入字段的预构建类和对象,从而使编写更加容易。 我们为它找到了大量的文档,并且像 ACF 一样,它可以更轻松地为不同类型的值(日期、时间、颜色等)创建字段。

我想提请注意添加另一个文本编辑器与重复器(组)组合的可能性,以便我们可以区分页面上的部分文本,稍后更改它们的顺序等。 此插件的其他免费扩展也可用。

它使用一行将值存储在数据库中,并使用经典的 WP 函数进行处理(示例):

<?php echo get_post_meta( get_the_ID(), '_yourprefix_text', true ); ?>

发电机

 

这些是会议上提到的一些发电机。 它们生成与基本 WP 功能一起使用的代码,无需额外的插件。

用于聚会的代码示例

套餐包括:

  • 插件,其中有经典 WP 功能和 CMB2 使用的示例(为了正确的功能,它需要激活 CMB2 插件)
    • 只需激活插件,新的输入字段就会出现在页面编辑中
  • “test”主题,这是一个衍生的 Twentyfifteen 主题(为了正常运行,必须安装Twentyfifteen主题)
    • 包含带有代码的页面模板以显示存储的值

测试模板.zip

功能扩展.zip

 

 

Was this article helpful for you? Support me by sharing, please. 👍
WordPress Návod v PDF

LEAVE A REPLY

Please enter your comment!
Please enter your name here