设置API与主题自定义程序


20

什么时候使用设置API,什么时候使用主题定制器更好?

整个上午都在Google上搜索过,所以我找不到关于此问题的任何经过深思熟虑的最新指南。虽然还为时过早,但我认为主题定制器是引入更多类似Squarespace的编辑功能的暗示性第一步。有谁知道有计划退出设置API以支持主题定制程序的计划吗?我们是否应该慢慢地朝着它前进,还是最好还是坚持使用设置API?他们可以并肩生活吗?如果可以,责任分工在哪里?

Answers:


21

问题的前提是有缺陷的。该定制API是不是一个选项 API,而是一个选项预览 API。Customizer API依赖于Settings APITheme Mods API来注册通过两个API之一添加的现有设置的控件。

Customizer不能(也不能)定义/注册尚未通过Settings API或Theme Mods API 注册的设置。换句话说:Customizer API不是直接向数据库添加设置或直接从数据库检索设置的API;相反,Customizer API 使用 Settings API或Theme Mods API将设置保存到数据库或从中检索设置。

因此,Customizer API不能替代现有的选项API之一;相反,它是设置页面的替代方法。Customizer不在乎设置是通过Settings API还是Theme Mods API注册的,此类设置可以在Customzer中进行混合和匹配。实际上,在大多数情况下,此类设置混合和匹配的:自定义标头和自定义背景是主题模块,而网站标题和说明是设置API。

为了确切地了解如何通过Customizer API注册设置和控件,我建议阅读Otto的优秀教程:

因此,问题既不针对指定的API,也不针对指定的API。适当的一个或一个问题是:

  • 使用任何设置API 主题MODS的API注册现有设置通过预览定制API
  • 使用任何定制API 一个自定义主题设置页面,允许用户配置主题选项

谢谢Chip。我仍然不是100%跟着您,但是您给了我足够的力量去进一步研究这个问题。我认为我的困惑源于功能的重叠和名称的相似性。是否有页面清楚地记录(以更抽象的方式)不同API的用例?我浏览法典并没有多大运气。它只是专注于应用API的基本要素。
Dre

我添加了更多内容,以尝试更深入地解释。另请参见,特别是指向Otto的Customizer教程的链接。我认为它们将有助于澄清问题。
Chip Bennett

您先生是一位绅士。
Dre

5

有时可能会很简单:Settings API 不是主题定制器。对于不同的任务,两者都是不同的东西。

设定API

您是在编写插件还是主题不包含不需要任何视觉反馈的选项?使用此选项。

主题定制器

您需要具有用户应该能够看到的视觉效果的选项吗?使用此选项。


这是我的初步结论。但是,两者之间在功能上有很多重叠,这导致了最初的问题。此外,从用户体验的角度来看,根据是否可见将主题选项分为两个位置的想法令我感到困扰。这并不是说我不同意您的观点;我只是在此阶段征求意见。整个主题本身有点模糊。也许从头开始制定一些明确的指导将是有益的。感谢您的输入!
德雷(Dre)

@Dre猜猜您看错了一点:如果您甚至只有一个需要视觉反馈的选项,请使用ThemeCustomizer。因此,经验法则是:主题->主题定制程序| 插件->设置API。
凯撒

通常,所有主题定义的选项都应具有呈现效果。:)这表示:定制API要求任一所述设置API 所述主题MODS的API以便存在。自定义API并不是这两种API之一的替代方案,而是自定义主题设置页面的替代方案。
Chip Bennett

你们对定制器是否有任何回避问题?在3.5.1和3.6(trunk)中,这对我来说都显得很气质。我发现标题和关闭/保存按钮通常只是无法正确响应单击,有时不得不多次单击(在主干中更是如此)。这在FF和Chrome中都适用。
t31os 2013年

@ t31os以前有此问题,但没有保持一致。但是已经有一段时间没有尝试了。我建议console.log()您执行所有操作,以便了解触发了什么和中断了什么。JavaScript调试并不容易...
kaiser
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.