首页 > 解决方案 > 高级自定义字段是否可以内置到自定义 wordpress 主题中,即当用户安装主题时可以立即确定字段?

问题描述

所以说我创建了一些可以通过首页编辑器编辑的自定义字段。

我保存了这些更改,并希望我的主题的用户能够在安装主题后立即看到我所做的所有自定义字段

这样,我可以在整个网站上创建一个带有预定义自定义字段的主题,这样安装主题的用户就可以立即编辑自定义字段。

否则,通过高级自定义字段完成的所有工作都毫无意义,因为当主题被打包时,用户将无法访问存储文件的数据库。我希望我的要求是有道理的!

编辑:如果这根本不可能,那么我会接受它作为答案。如果不可能,那么我需要导出然后导入数据库,以便在他们安装主题后正确地显示在客户端机器上的自定义字段?

标签: wordpresswordpress-theming

解决方案


完全合理的问题,以及 ACF 已经考虑并. 本指南基本上有两个部分,我将在下面总结:

  • 实际的 ACF 插件必须包含在您的主题中,您可以通过以下任一方式完成:
    • 将实际的 ACF PHP 代码与您的主题捆绑在一起(实际的插件文件)
    • 或者,提供指向ACF 插件页面的链接并提示用户安装插件作为主题自述文件的一部分。
  • 包括与您的主题相关的特定自定义字段 - 这是您的问题主要询问的内容。同样,有几种不同的方法可以做到这一点:
    • 作为 ACF 的一项新功能,您可以使用 JSON 文件在主题中注册自定义字段,而不是将配置存储在 SQL 数据库中。这是我个人使用的,因为它非常容易配置(只需在主题的根目录中创建一个 acf-json 文件夹)并允许您使用版本控制(如 GIT)来跟踪自定义字段更改。
    • 如果您喜欢旧方式,您可以在主题的 functions.php 文件中注册您的自定义字段。

我可以提供的一些额外信息:

ACF 值的存储,而不是配置呢?

给定的 Wordpress 安装只有一个“数据库”,ACF 存储用户为给定帖子的自定义字段输入的值的方式是在“wp_postmeta”表中,通过将值与帖子 ID、字段标签(可变)和字段 ID(永久)。

这实际上对作为主题开发人员的您是有益的,因为这意味着如果用户执行诸如安装您的主题之类的操作,输入一堆自定义字段值,意外卸载您的主题或切换到不同的主题,然后想要重新-启用它,不会丢失任何数据。

确保 ACF 与您的主题一起安装

如果您选择不将 ACF 源与您的主题捆绑在一起,而是提示用户通过插件目录手动安装插件,您可能需要在您的主题中进行一些检查以确保他们这样做。您可以在主题代码中的某些战略位置使用类似的东西if(!function_exists('the_field')){ /* Block use of your theme until installed */ }来检查是否安装了 ACF,如果没有安装,请适当处理并提示管理员安装。


推荐阅读