允许最终用户更改主题的字体可能是一项令人生畏的任务,尤其是当您想在自定义管理面板、元框甚至主题定制器中提供此选项时。今天,我将讨论如何通过 Titan Framework 添加自定义 font
类型选项。
Titan 框架中的字体类型选项
font
类型选项是 Titan Framework 中功能最通用的选项之一。它不仅可以让您更改字体,而且还是一个完整的字体样式选择器。凭借一整套功能丰富的选项,您可以在其中选择网络安全字体和 Google WebFonts。应用您想要的多种样式,例如颜色、字母间距、阴影、行高等。最终用户还可以查看字体及其样式的预览。该选项的外观如下:
您可以在上图中看到字体设置的详细程度。这可以通过该选项支持的一大堆设置参数来实现。有一些强制参数和可选参数。首先,我们来看看必填项:
-
名称:(字符串)定义
font
类型选项的显示名称。 - id:(字符串)此参数分配一个唯一的名称,有助于获取值。
- desc:(字符串)显示简短描述。
现在您应该使用的一些可选参数是:
-
默认:(布尔值)在
font
类型选项中,此参数的行为略有不同。它占用一个数组,其中包含您要使用的一些默认字体和样式(稍后会详细介绍)。 - css:(字符串)当您在管理页面和/或主题定制器部分中添加此选项时,此参数会自动生成 CSS(稍后会详细介绍)。
最后,有一长串某些基于检查的参数,其默认值设置为 true
。让我们为它们命名,并了解如果设置为 false
,它们的行为方式。
-
show_font_family:(布尔值)如果此参数设置为
false
,则字体系列部分会消失。 -
show_color:(布尔值)如果此参数设置为
false
,则不会显示调色板。 -
show_font_size:(布尔值)如果此参数设置为
false
,则字体大小选项消失。 -
show_font_weight:(布尔值)如果此参数设置为
false
,则 font-weight 选项消失。 -
show_font_style:(布尔值)如果此参数设置为
false
,则字体样式设置将消失。 -
show_line_height:(布尔值)如果此参数设置为
false
,则无法更改行高。 -
show_letter_spacing:(布尔值)如果此参数设置为
false
,则您无法编辑 letter_spacing。 -
show_text_transform:(布尔值)如果此参数设置为
false
,文本转换选项就会消失。 -
show_font_variant:(布尔值)如果此参数设置为
false
,则不会出现 font-variant 字段。 -
show_preview:(布尔值)如果此参数设置为
false
,您将看不到字体的实时预览。 -
show_websafe_fonts:(布尔值)如果此参数设置为
false
,网络安全字体列表将会消失。 -
show_google_fonts:(布尔值)如果此参数设置为
false
,则不会显示 Google 字体。 - include_fonts:(混合)这是一个正则表达式字符串,指定您要添加的字体。
-
enqueue:(布尔值)如果设置为
false
,则 Google 字体(如果使用)将不会自动排队。
字体类型选项的可用容器
您可以在其中添加 font
类型选项:
- 管理面板
- 管理选项卡
- 元盒子
- 主题定制器部分
本文的范围不是这些容器的创建。如果你想了解的话可以参考我之前的文章。
添加此选项类型的总体过程保持不变:
- 首先通过
getInstance()
函数获取一个唯一实例。 - 然后通过
createOption()
函数添加一个选项。 - 最后,通过
getOption()
函数获取保存的值。
让我们在管理面板中创建此选项。
在管理面板内创建字体类型选项
声明示例
这是代码:
登录后复制
获取保存值的过程与之前的文章中讨论的过程几乎相同。在第 #3 行中,使用了 getInstance()
函数,该函数使用一个唯一参数,最好是您的主题名称(即 neat
中这个案例)。接下来,我使用了 getOption()
函数(第 6 行),该函数通过 ID aa_font
获取值,然后将其保存在新变量 $aa_font_array
。
之前,我们确定 font
类型选项会占用一组参数设置,即使我们实际上没有定义它们,因为它们的默认值设置为 true
。因此,在前端显示检索到的值之前,让我打印这个完整的参数数组。
为此,我对变量 $aa_font_array
使用了 var_dump()
函数(第 #16 行)。让我们看看这个数组是如何打印的:
在上面的屏幕截图中,列出了数组每个元素的详细描述。它清楚地解释了如何设置 Titan Framework 中的 font
类型选项。
现在这部分只是一个额外的事情 - 我们的主要目标是更改默认字体设置并在前端打印它。
将第 16 行替换为以下代码行: