元素API参考
这是对我们的Element API所提供的内容的深度技术总结。
元素定义
元素被注册到这个函数中:
函数cs_register_element($type, $options)
美元的类型
必须是唯一的元素名。请使用前缀以避免命名冲突。如。my-plugin-my-element
选择美元
提供定义的所有详细信息。它应该是一个标记了键的数组基地选择在下面。
基地选择
标题 |
✔ | 字符串 |
在库中和检查元素时显示的本地化标题 |
值 |
✔ | 数组 |
看到定义值在下面。 |
构建器 |
函数 |
函数在加载构建器时更新定义。这为大型控制列表提供了更好的性能,因为它们不需要在前端填充。 | |
风格 |
函数 |
返回字符串样式模板的函数。 | |
装饰 |
函数 |
在运行呈现函数之前更新数据的函数。注入额外的属性很有用。 | |
渲染 |
✔ | 函数 |
函数接受包含所有元素数据的单个参数。是否应该返回带有元素标记的字符串 |
选项 |
数组 |
看到元素定义选项在下面。 | |
图标 |
字符串 |
作为字符串内联SVG。 | |
活跃的 |
保龄球 |
如果元素不能正确呈现,则设置为false。例如,如果元素需要WooCommerce,您可以通过class_exists('WC_API') . |
|
关键 | 要求 | 类型 | 描述 |
---|
构建器选项
这些都是可选的,但您需要提供一些组合,否则检查器将为空。这些键中的任何一个都可以添加到顶层,但是我们建议从构建器
回调函数。方法的结果很可能是构建器回调函数返回的结果cs_compose_controls
函数,该函数提供如下所述形状的数组。看到组合控制
control_nav |
数组 |
关联数组,其中键描述控件导航项,值是要在检查器导航中显示的本地化标题 |
控制 |
数组 |
顶级控件的数组。控件中的每个控件都应该与控件导航相关联集团 参数。看到控制在下面。 |
controls_std_content |
数组 |
控件下面显示的顶级控件内容当高级模式关闭时,导航菜单项。 |
controls_std_design_setup |
数组 |
控件下面显示的顶级控件设计当高级模式关闭时,导航菜单项。 |
controls_std_design_colors |
数组 |
控件下面显示的顶级控件颜色当高级模式关闭时,导航菜单项。 |
关键 | 类型 | 描述 |
---|
样品控制导航
数组(“main_group ' => __( ' 集团”、“your-text-domain”),“main_group:设置 ' => __( ' 设置”、“your-text-domain”),“main_group:设计 ' => __( ' 设计”、“your-text-domain”))
元素定义选项
alt_breadcrumb |
字符串 |
提供一个可选的本地化字符串以显示在检查器导航面包屑中。对于名称较长的元素很有用。 |
label_key |
字符串 |
设置为元素的一个值的键。它将使用该值作为观察器中显示的标签,并在双击重命名元素时使用。 |
孩子 |
保龄球 |
设置为真正的 要指示此元素将被渲染为另一个元素的子元素。 |
图书馆 |
bool |数组 |
设置为假 防止该元素出现在元素库中。设置为数组('content') 元素只会在内容构建器和全局块构建器中显示(而不是Pro header或Footers)。 |
valid_children |
数组 |
一个字符串数组,包含可作为该元素的直接子元素放置的元素名称。设置为数组('*') 接受任何类似于Column的子元素。这并不启用拖放。 |
index_labels |
保龄球 |
设置为真正的 使标签在创建时具有数值索引。如。“第1节”、“第2节” |
empty_placeholder |
保龄球 |
设置为false可以在此元素没有任何内容时禁用占位符样式。 |
default_children |
数组 |
提供一个元素数组,当创建该元素时,这些元素应该自动创建为子元素。 |
add_new_element |
数组 |
提供当您在该元素的可排序控件中单击“Add New”时将创建的元素的数据。 |
内联 |
数组 |
传递一个关联数组以启用内联编辑。看到内联编辑下面 |
fallback_content |
字符串 |
如果元素没有任何子元素,则前端将使用此内容。最显著的是用来防止空列倒塌。 |
empty_preview_min_height |
int |
如果一个元素的高度为零,它将显示为空占位符。您可以将其设置为更大的数字以调用占位符,即使您的元素具有高度。这对于基本标记只有几个像素高但仍然为空的元素很有用。 |
is_draggable |
保龄球 |
设置为false以防止用户在预览中提起该元素。 |
缓存 |
保龄球 |
设置为false以防止呈现系统缓存标记。对于与第三方api集成的元素很有用 |
render_children |
保龄球 |
设置为true指示呈现系统使用父标记呈现此元素的子元素。这样做的性能较低,但对于像Map这样的情况很有用,因为标记依赖于父元素。 |
关键 | 类型 | 描述 |
---|
内联编辑
下面是如何配置来自Tabs元素的内联编辑的示例。
'inline' => array('tab_label_content' => array('selector' => '.)X-tabs-list button span'), 'tab_content' => array('selector' => '。X-tabs-panel '))
的选择器
表示双击目标。当用户开始编辑时,它将用相关的键(tab_label_content
).您可以设置选择器
来根
要使基本元素成为双击目标。
附加定义函数
函数cs_unregister_element($name)
可以用来取消注册最初注册在美元的名字
.
函数cs_get_element($name)
检索最初注册的元素定义的实例美元的名字
定义值
每个元素都需要值。这些存储数据稍后将在Element的控件中进行自定义。
单一值。
函数cs_value($default = null, $ designated = 'all', $protected = false)
每个值都有一个美元的违约
它是创建元素时使用的初始值。
的美元指定
确定系统将如何呈现此值。
- markup '——当这个值发生变化时,它向服务器发出一个HTTP请求,请求服务器更新属性,并为构建器预览获取新的标记。就性能而言,这是最昂贵的,但最通用的,因为它调用自定义PHP代码。
attr
当这个值发生变化时,它会立即更新DOM中的值。风格
-我们将在后面讨论这个,但是我们的构建器允许你提供一个样式模板来输出生成的CSS。当具有此名称的值更改时,将重新计算生成的CSS。所有
-当这个值改变时,它会导致元素从服务器获取新的标记而且再次渲染生成的CSS。
当美元的保护
设置为真正的
它将变量标记为“content”。这意味着在粘贴元素样式或应用预设时,默认情况下它不会被覆盖。
例子
'values' => array('my_element_content' => cs_value('Initial Text', 'markup', true)'my_element_attribute' => cs_value(false, 'attr'), 'my_element_feature_enabled' => cs_value(false), //使用'all'指定'my_element_margin' => cs_value('0em', 'style'))
定义可重用值
函数cs_define_values($key, $values)
如果要创建一组共享值的元素,则此函数非常有用。在注册元素以定义日后可重用的值之前调用此函数。的美元的关键
当您想要回忆您的值时使用的名称吗cs_values
或cs_compose_values
.集美元的价值
的结果分配键的关联数组cs_value
调用。
例子
Cs_define_values ('my-feature', array('my_feature_enabled' => cs_value(false), //使用'all'指定'my_feature_margin' => cs_value('0em', 'style'),);
组合值
函数cs_compose_values() //接受无限参数
的cs_compose_values
函数接受无限参数。每个都可以是字符串
或者一个数组
.如果传递一个字符串,函数将检索通过存储的值cs_define_values
在给定的键下。如果传入一个数组,它将把这些值合并到列表中。这个函数将允许您创建利用预定义功能的元素。
例子
'values' => cs_compose_values('my_element_content' => cs_value('Initial Text', 'markup', true), 'my-feature', //在前面的示例'omega'中定义//自定义的自定义控件)
给定义值加上前缀
函数cs_values($values, $key_prefix = ")
通过传递一个字符串作为第一个参数,该函数允许您获取存储在cs_define_values
.作为第一个参数的数组假定您传递的是一个值的关联数组。
的key_prefix美元
参数用于给列表中的每个值加上前缀。下面的示例展示了如何检索本机文本元素的值并为元素添加前缀。原生card元素是组合多个值(以及控件)的一个很好的例子。
例子
Cs_values ('text-headline', 'my_element_text')
个人控制
在本节中,我们将介绍所有不同的控件类型、可用选项以及可以使用它们的帮助函数。
控制参数
控件是包含下列键的数组
关键 |
✔ | 字符串 |
将映射到此控件的值的名称。如果使用,则不需要键 代替。 |
键 |
✔ | 数组 |
有些控件类型允许映射多个值。 |
类型 |
✔ | 字符串 |
控件类型。使用控制参考在下面。 |
集团 |
字符串 |
顶层控件需要。设置控件导航组,此控件应显示在该导航组下。 | |
标签 |
字符串 |
描述此控件的本地化字符串。允许模板。如。“{{前缀}}保证金” 将填充前缀 从传入的东西label_vars . |
|
label_vars |
数组 |
在Label中填充模板字符串的键值对。在为标准模式修改控件或创建自己的部分时,这种技术非常有用。 | |
label_prefix |
字符串 |
简写设置label_prefix 在label_vars |
|
条件 |
数组 |
确定此控件是否可见的单一条件。 | |
条件 |
数组 |
多个条件来确定此控件是否应该可见。将取代条件 . |
|
选项 |
数组 |
与控件类型对应的选项数组。 | |
关键 | 要求 | 类型 | 描述 |
---|
控制参考
- 没有键的控件只输出单个值
- 键
|值
在传递单数键时,指示使用哪个键 - 键
?
是可选的。 - 尖括号表示必须使用一个括起来的字符串。例如
<行|列>
你必须提供行
或列
. - Options中的每一行都是可以映射到此控件的单个选项。如果一个选项引用另一个控件,这意味着您可以为命名控件传递一个选项数组。
对齐 | 对齐 |
✔ | ✔ | Icon_direction:字符串<行|列> 轴:字符串<主|交叉> |
|
纵横比 | 纵横比 |
✔ | 宽度 高度 |
占位符:STR "16:9" |
|
丙氨酸 | 丙氨酸 |
id 类 风格 |
|||
边境 | 边境 |
宽度 风格 颜色 alt_color吗? |
Always_linked: bool 宽度:[单元滑块选项] 颜色:[颜色选项] |
||
边界半径 | 这个特性 |
(见尺寸) |
|||
盒阴影 | 不必 |
维 颜色吗? alt_color吗? |
X_offset: [slider] Y_offset: [slider] 模糊:[滑动条] Spread:[单位-输入] 颜色:[颜色] |
||
复选框列表 | checkbox-list |
✔ | ✔ | 变量1 | 列表:[{key: str, label: str, full: bool}] |
选择(多) | choose-multi |
✔ | ✔ | 选项:[{值:str,标签:str,图标:str}] 分隔符:STR |
|
选择(单) | 选择单 |
✔ | ✔ | 选项:[{值:str,标签:str,图标:str}] Off_value: STR |
|
代码编辑器 | 代码编辑器 |
✔ | ✔ | 占位符:STR 模式: Button_label: STR Header_label: STR Disable_input_preview: bool |
|
颜色 | 颜色 |
✔ | ✔ | 价值 alt吗? |
Output_format: STR 标签:STR Alt_label: STR 动态:bool |
日期/时间 | 日期-时间 |
✔ | ✔ | ||
维 | 维 |
标签:{上:str,右:str,下:str,左:str} 顶部:[滑块] 右:[滑动条] 底部:[滑块] 左:[滑动条] |
|||
Flex | flex |
✔ | |||
Flex布局 | flexbox |
布局 证明 对齐 包装吗? |
Allow_reverse: bool |
||
字体 | 字体类型 |
✔ | |||
字体样式 | 字体样式 |
✔ | |||
字体粗细 | 粗细 |
✔ | 价值 font_family 2 |
||
图标选择器 | 图标 |
✔ | ✔ | 价值 alt吗? |
标签:STR Alt_label: STR |
集团 | 集团 |
✔ | 没有一个3. | ||
图像 | 图像 |
✔ | img_source |值 身高吗? 宽度? 4is_retina吗? 5has_link吗? has_info吗? alt_text吗? |
Alt_text_placeholder: STR |
|
图片来源 | 图片来源 |
✔ | |||
链接 | 链接 |
url link_text吗? has_info吗? new_tab吗? nofollow吗? |
|||
保证金 | 保证金 |
看到尺寸 | |||
菜单 | 菜单 |
||||
数量 | 数量 |
✔ | ✔ | 占位符:STR Monospace: bool |
|
填充 | 填充 |
看到尺寸 | |||
比 | 比 |
✔ | 占位符:STR |
||
选择 | 选择 |
✔ | 选项:[{值:str,标签:str}] |
||
可分类的 | 可分类的 |
没有钥匙6 | 元素:元素名称 add_label: str 容量:int 楼层:int |
||
文本 | 文本 |
✔ | ✔ | 占位符:STR Monospace: bool |
|
文本对齐 | text-align |
✔ | |||
文本装饰 | 文字修饰 |
✔ | |||
文本编辑器 | 的文本编辑器 |
✔ | |||
文本格式 | 文本格式 |
font_family font_weight font_size letter_spacing line_height |
|||
文本的影子 | 文本阴影 |
价值维度| 颜色吗? alt_color吗? |
|||
文本样式 | 文本样式 |
font_style吗? text_align吗? text_decoration吗? text_transform吗? text_color吗? alt_color吗? |
颜色:[颜色] |
||
文本转换 | 首字母 |
✔ | |||
文本区域 | 文本区域 |
✔ | 占位符:STR Monospace: bool |
||
单位 | 单位 |
✔ | ✔ | Unit_mode: STR <距离|角度> Available_units:[值…]] Valid_keywords:[值…]] 禁用:bool Fallback_value: STR |
|
单位滑块 | unit-slider |
✔ | Unit_mode: STR <距离|角度> Available_units:[值…]] Valid_keywords:[值…]] 禁用:bool Fallback_value: STR 范围:{px: {min: 0, Max: 100, step: 1} Min:数值 Max:数量 步骤:编号 |
||
小部件区域 | widget-area |
✔ | |||
的名字 | 标识符 | 2级 | 3级 | 键 | 选项 |
---|
注:
- 复选框列表-这些键是可变的,取决于你映射的项目。
- 字体粗细-这需要参考
font_family
但是它不会直接修改值。 - 集团-群组控制不接受
键
或选项
.顶级水平控制
属性将允许您传递要在组内显示的控件列表。 - 图像-
宽度
而且高度
是可选的,但必须同时声明两者还是两者都不声明 - 图像-
is_retina
只有当宽度
而且高度
被映射。 - 可分类的-参见下面的分类部分。没有使用键
组例子
你可以添加集团
的子控件集团
创造第三层。这些控件不支持标签,可以映射的控件类型更受限制。
组例(第二层)
数组(“类型”= >“集团”,“标签 ' => __( ' 功能控制”、“text-domain),控制' = >阵列(阵列('重要' = > ' element_content ', '类型' = > '文本','标签 ' => __( ' 内容”、“text-domain”)),阵列('重要' = > ' element_color ', '类型' = > '颜色','标签 ' => __( ' 颜色,text-domain))))
组例(第三层)
数组(“类型”= >“集团”,“标签 ' => __( ' 功能控制”、“text-domain),控制' = >阵列(阵列(“类型”= >“集团”,“标签 ' => __( ' 前/后”、“text-domain”),“控制' = >阵列(数组('重要' = > ' element_content_before ', '类型' = > '文本',),阵列('重要' = > ' element_content_after ', '类型' = > '文本 ', ), ) ), 阵列('重要' = > ' element_color ', '类型' = > '颜色','标签 ' => __( ' 颜色,text-domain))))
复选框列表示例
下面是复选框列表控件的一个示例。的完整的
选项告诉复选框跨越控制区域的全部宽度,而不是一半大小。
数组(“钥匙”= >阵列(“checkbox_a”= >“some_element_value”,“checkbox_b”= >“another_element_value”,“checkbox_c”= >“one_more_element_value”,),“类型”= >“checkbox-list”,“选择”= >阵列(“列表”= >数组(数组(“关键”= >“checkbox_a”,”标签 ' => __( ' 启用”、“__x__”)),阵列(“关键”= >“checkbox_b”,”标签 ' => __( ' 使B”、“__x__”)),阵列(“关键”= >“checkbox_c”,”标签 ' => __( ' 使C”、“__x__”),“满' = >真的 ), ), ), )
组合控制
函数cs_compose_controls() //无限参数
调用cs_compose_controls
无限的争论。参数的每个参数必须是与已注册部分关联的字符串,或坚持构建器选项上面的参数。该函数将多组控件组合为构建器中使用的单个输出。这允许利用部分和组织只应该在高级模式关闭时出现的标准控件。
注册控件分部
函数cs_register_control_partial($name, $ Function)
要创建自己的控件部分,请调用cs_register_control_partial
与美元的名字
设置为您最终将在调用中引用的键cs_compose_controls
或cs_partial_controls
.集$函数
将返回有效的函数构建器选项.
例子
函数my_plugin_control_partial($settings = array()) {$group = = isset($settings['group']) ?$settings['group']: $group_title = isset($settings['group_title']) ?设置[' group_title美元 '] : __( ' 功能”、“my-plugin”);$group_setup = "$group:setup";$group_design = "$group:setup";返回数组(' control_nav ' = >阵列(组= > group_title美元,美元group_setup = > __(‘设置’,‘my-plugin’),$ group_design = > __(“设计”、“my-plugin”)),“控制”= >数组 ( /* */), );} cs_register_control_partial('my-plugin-control-partial', 'my_plugin_control_partial');
使用控制部分
函数cs_partial_controls($name, $settings = array())
调用cs_partial_controls
并将结果作为参数传递cs_compos_controls
添加注册为的部分美元的名字
到您的控制列表。的美元的设置
数组传递给部分,以允许对结果控件进行自定义。
例子
cs_compose_controls(cs_partial_controls('my-plugin-control-partial', array('group' => 'Element -group', 'group_title' => __('Element', 'text-domain')), cs_partial_controls('omega'))
利用通用控件类型
函数cs_control($type, $key_prefix = ", $control = array())
的cs_control
函数返回一个数组,该数组描述各种常用控件类型。它会自动为你映射一个或多个键和荣誉key_prefix美元
在那些钥匙前面。使用下表查看允许的美元的类型
论点。您可以设置控制参数,如集团
,条件(年代)
,选项
通过传递它们美元的控制
.设置也可以传递到美元的控制
调整输出。
保证金 |
保证金 | {key_prefix} _margin |
没有一个 |
填充 |
填充 | {key_prefix} _padding |
没有一个 |
这个特性 |
边界半径 | {key_prefix} _border_radius |
没有一个 |
边境 |
边境 | {key_prefix} _border_width {key_prefix} _border_style {key_prefix} _box_shadow_color {key_prefix} _box_shadow_alt_color |
alt_color —设置为真正的 映射Alt颜色键并使控件显示。 |
不必 |
盒阴影 | {key_prefix} _box_shadow_dimensions {key_prefix} _box_shadow_color {key_prefix} _box_shadow_alt_color |
alt_color —设置为真正的 映射Alt颜色键并使控件显示。 |
flexbox |
Flexbox | {key_prefix} _ {layout_pre} _flex_direction {key_prefix} _ {layout_pre} _flex_wrap {key_prefix} _ {layout_pre} _flex_justify {key_prefix} _ {layout_pre} _flex_align {key_prefix} _flex |
no_self —设置为真正的 排除Self Flex控件和键。layout_pre -一个用于布局伸缩属性的附加键前缀。如果省略key_prefix美元 将会被使用。 |
文本阴影 |
文本的影子 | {key_prefix} _text_shadow_dimensions {key_prefix} _text_shadow_color {key_prefix} _text_shadow_alt_color |
alt_color —设置为真正的 映射Alt颜色键并使控件显示。 |
文本格式 |
文本格式 | {key_prefix} _font_family {key_prefix} _font_weight {key_prefix} _font_size {key_prefix} _line_height {key_prefix} _letter_spacing {key_prefix} _font_style {key_prefix} _text_align {key_prefix} _text_decoration {key_prefix} _text_transform {key_prefix} _text_color {key_prefix} _text_alt_color |
alt_color —设置为真正的 映射Alt颜色键并使控件显示。no_font_family ,no_font_weight ,no_font_size ,no_line_height ,no_letter_spacing ,no_font_style ,no_text_align ,no_text_decoration ,no_text_transform ,no_text_color -把这些设置为假 以防止各自的键和控件被映射。 |
美元的类型 |
的名字 | 映射的键 | 设置 |
---|
所有这些都包括{{前缀}}
在他们的标签里,所以你可以通过label_prefix
作为的参数美元的控制
进一步描述应该如何使用该控件。
修改多次使用的控件
函数cs_amend_control($control, $update)
使用cs_amend_control
对已定义一次的控件进行调整,但需要在其他地方使用额外的时间(对标准控件有用)进行轻微调整。的美元的控制
论点是原始的,并且美元更新
是要合并的更改。这与array_merge
因为它处理更新控件的附加层选项
参数。
例子
$base_control = array(/*…其他控制参数…* /”标签 ' => __( ' 我控制”、“your-text-domain '));$updated_control = cs_amend_control($base_control, array('label' => __('Different label', 'your-text-domain'));
记住常用选项
函数cs_remember($key, $value)
这只能在构建器回调中使用,但它允许您存储常用的数据位。例如,如果您有一个本地化选项列表,您可能需要添加到多个元素上,您可以像这样存储它。
例子
cs_remember (my-element-choices,数组(数组('价值' = > '一',”标签 ' => __( ' 一个”、“your-text-domain”)),阵列(“价值”= >“两个”,“标签 ' => __( ' 两个”、“your-text-domain”)),阵列(“价值”= >“三”,“标签 ' => __( ' 三,your-text-domain)),阵列(“价值”= >“四”,“标签 ' => __( ' 四”、“your-text-domain ' ) ), ) );
回忆常用选项
函数cs_recall($key)
在前面的示例基础上,我们还可以回忆存储的选项。记住,它只能在构建器回调中使用。
例子
//在你的控件数组列表中('key' => 'my_element_value', 'type' => 'select', 'label' => __('select Something', 'your-text-domain'), 'options' => array('choices' => cs_recall('my-element-choices'))))
控制条件
映射控件时,可以设置条件
或条件
来确定控件何时应该可见。这主要用于在启用附加控件后显示它们。每个条件都有以下属性:
关键
-我们正在观察的值的字符串标识符人事处
-用于此比较的运算符类型。参见下面的操作表价值
-用于检查条件的值。或
—设置为真正的
为该条件启用OR逻辑。看到使用OR逻辑在下面。
= = |
检查当前保存的内容关键 是等于我们的条件价值 . |
任何 |
|
=! |
检查当前保存的内容关键 是不等于我们的条件价值 . |
||
在 |
检查当前保存的内容关键 存在在数组 作为条件的值价值 |
||
不是在 |
检查当前保存的内容关键 不存在在数组 作为条件的值价值 |
||
空 |
检查当前是否保存在关键 是被认为是空属性1用于CSS输出的目的。 |
||
非空 |
检查当前是否保存在关键 不是被认为是空属性1用于CSS输出的目的。 |
||
操作符 | 描述 | 值类型 | 描述 |
---|
- 空字符串、任何单位为零的CSS值和关键字
没有一个
都被认为是空的。
速记
相等运算符是最常用的,因此被用作速记。下面两个条件是相同的。
数组(“关键”= >“my_value”,“价值”= >“应该这”,“op ' => '==' ) 阵列(' my_value ' = > '应该这')
使用OR逻辑
默认情况下,会应用多个条件和逻辑。这意味着它们必须都为真,才能使控件可见。的方法,可以在各个控件上重写此设置或
参数真正的
.当启用时,如果紧随其后的条件为真,则该条件将自动被认为为真。以下示例被认为是true,当feature_enabled
是真正的
,要么some_value
是列表中的值(一个
,两个
)或another_value
是十个
.
例子
'conditions' => array(array('feature_enabled' => true), array('key' => 'some_value', 'op' => 'IN', 'value' => array('one', 'two')'或' = > true),数组(“关键”= >“another_value”,“op ' = > ' !=', 'value' => 'ten'),)
风格模板
当你设置风格
注册你的Element定义时,你需要返回一个字符串样式的模板。它使用类似于CSS的语法来基于元素值的状态创建动态样式。
基础知识
可以在选择器和属性值中使用变量。变量不能作为属性名的一部分使用。可用变量对应于已使用指定注册的值风格
或所有
.引用当前元素的类名的附加变量可用为_el美元
.下面的例子展示了一些属性的样式。每个属性值变量都被映射为一个元素值。
例子
.$_el {margin: $my_element_base_margin;填充:my_element_base_padding美元;} .$_el .thing {margin: $my_element_thing_margin;填充:my_element_thing_padding美元;}
条件
通常情况下,除非满足条件,否则您会希望排除样式。这是可能的@ if
而且@unless
指令。当使用@ if
如果表达式求值为,则显示所包含的样式真正的
——与@unless
它期望条件是假
.
.$_el {@if $feature_enabled == 'on' {margin: $my_element_feature_margin;填充:my_element_feature_padding美元;@unless feature_min_width美元? ?{min-width: $feature_min_width;}}}
= = |
计算结果为真正的 当操作数为平等的彼此之间。 |
=! |
计算结果为真正的 当操作数为不平等的彼此之间。 |
> |
计算结果为真正的 当左操作数为大于右边。 |
> = |
计算结果为真正的 当左操作数为大于或等于右边。 |
< |
计算结果为真正的 当左操作数为不到右边。 |
<= |
计算结果为真正的 当左操作数为小于或等于右边。 |
|| |
计算结果为真正的 当左边的任何一个或考虑正确的表达式(或值)真正的 |
|| |
计算结果为真正的 当两者都离开和考虑正确的表达式(或值)真正的 |
?? |
一元运算。只应用于一个值,如:$ some_value ? ? .如果该值被认为为空,则返回true。1 |
操作符 | 描述 |
---|
- 空字符串、任何单位为零的CSS值和关键字
没有一个
都被认为是空的。
记住
- 这与典型的后处理程序(SASS、LESS、PostCSS)不同,我们也不打算添加对CSS后处理的支持。
- 这不是一个功能完整的表达式解析器。你不能用括号来确定运算顺序。组合条件的最佳方法可能是将一组属性封装在多个中
@ if
/@unless
语句。 - 普通CSS总是有效的。
- 样式模板条件与控制条件不同
- API的这一部分将来可能会发生变化。生成的输出是我们观察到的可以更优化前端性能的领域。当这种优化发生时,语法可能会轻微改变。任何破坏性的更改都将在我们的发布说明中清楚地标注出来。
PHP的样式模板
如果浏览我们的部分模板,您会注意到它们是使用对象缓冲的PHP函数。请记住,这个PHP实际上没有任何元素数据。我们正在构建一个模板,其中包含应用于以后元素的规则。使用PHP有助于设置键前缀和调用cs_get_partial_style
.
分音
函数cs_get_partial_style($name, $settings = array())
此函数用于获取注册的预定义样式模板部分的字符串美元的名字
.的美元的设置
参数用于指示部分可以进行的各种调整。
创建样式部分
这是通过cs_get_partial_style_美元的名字
钩。
例子
函数my_style_partial($settings = array()) {return ";} add_filter('cs_get_partial_style_my_style_partial', 'my_style_partial');
呈现
函数的函数渲染
参数接受元数据
它包含元素值并应该返回一个字符串。
例子
函数my_element_render($data) {extract($data);$atts = cs_atts(array('class' => cs_attr_class($mod_id, 'my-element'), 'data-my-attribute' => $custom_attribute));ob_start ();?> > < ?PHP echo $data['content'];? /div>
渲染视图部分
函数cs_get_partial_view($name, $data = array())
在渲染函数中,调用cs_get_partial_view
与美元的名字
您希望呈现的部分,将返回带有该部分标记的字符串。的元数据
数组用于传递元素的数据元数据
参数)。下面的例子是原生Button元素。
例子
函数x_element_render_button($data){返回cs_get_partial_view('anchor', $data);}
准备部分数据
提取和前缀数据
有时需要修改传入部分的数据。例如,如果您想多次使用某个部分,或者需要重命名某些键,您可以使用cs_extract
.
函数cs_extract($data, $find = array())
通过元数据
从你的渲染函数(或操作它首先调用socs_without
和/或array_merge
)并具体说明您想在美元找到
数组中。下面是一个使用的例子cs_extract
检索带有。前缀的值headline_one
/headline_two
将这些键重命名为文本
为了渲染局部。注意如何cs_extract
调用与to的调用并行工作cs_values
.
例子
Cs_register_element (array('values' => cs_compose_values(array(//其他值),cs_values('text-headline', 'headline_one'), cs_values('text-headline', 'headline_two'),), 'builder' => 'my_element_builder', //不包括在本例'render' => 'my_element_render'));函数my_element_render($data) {$headline_one_markup = cs_get_partial_view('text', cs_extract($data, array('headline_one' => 'text')));$headline_two_markup = cs_get_partial_view('text', cs_extract($data, array('headline_two' => 'text')));/ /……继续呈现。应该返回一个字符串。}
删除数据
函数cs_without($data, $keys)
这个函数只返回元数据
中找到的键/值对美元的钥匙
数组中。
例子
//删除一些特定于顶层元素的数据。$cleaned = cs_without($data, array('mod_id', 'id', 'class', 'style'))
延迟视图部分
函数cs_defer_partial($name, $data = array(), $priority = 100)
有时您希望在站点标记的末尾输出部分标记,而不是内联输出。这对于模式和画布外元素很有用。你可以打电话cs_defer_partial
与美元的名字
你注册的部分,它会在内部使用一个函数叫做x_set_view
它缓存HTML并将其输出到特定的钩子上。在本例中,它将在x_before_site_end
钩。这比收盘高了几层身体< / >
标记,其中X和Pro输出所有延迟标记。当使用其他主题的基石时,这将相当于wp_footer
钩。
的元数据
论证是相同的cs_get_partial_view
函数。您可以调整美元的优先级
时使用x_before_site_end
钩。下面的例子来自Content Area Modal元素,添加了一些注释。
例子
函数x_element_render_content_area_modal($data){//添加一些ARIA属性(参见本文后面的ARIA属性部分)$data = array_merge($data, cs_make_aria_atts('toggle_anchor', array('controls' => 'modal', 'haspopup' => 'true', 'expanded' => 'false', 'label' => __('Toggle modal Content', '__x__'),) $data['id'], $data['mod_id']);//延迟模式输出到站点页脚。Cs_defer_partial ('modal', cs_extract($data, array('modal' => ")));//输出内联切换使用锚的部分返回cs_get_partial_view('anchor', cs_extract($data, array('toggle_anchor' => 'anchor', 'toggle' => "));}
创建视图分部
这是通过cs_get_partial_view_美元的名字
钩。
例子
函数my_view_partial($data = array()) {return ";} add_filter('cs_get_partial_view_my_view_partial', 'my_view_partial');
助手
属性
函数cs_atts($atts, $echo = false)
接受一个关联数组(丙氨酸美元
)并将它们组合成单个转义字符串,可以在HTML标记中输出。
例子
$ att = cs_atts(“id”= >“我的身份证”,“风格”= >“颜色:白色;”);$html = "Content
类输出
函数cs_attr_class() //无限的字符串参数
将多个字符串组合成单个CSS类名。传递任意数量的参数。它们可以是字符串或字符串数组。它将自动删除任何为空的值。
例子
$feature_a = ";$feature_b = array(", 'feature-b');$classes = cs_attr_class($mod_id, 'my-element', $feature_a, $feature_b);// $classes === "e123-1 my-element feature-b"
ARIA属性
一些本机视图部分寻找额外的数据来填充aria属性。我们可以把这个数据附加到cs_make_aria_atts
函数。
例子
函数my_element_with_toggle_render($data) {$data = array_merge($data, cs_make_aria_atts('toggle_anchor', array('controls' => 'dropdown', 'haspopup' => 'true', 'expanded' => 'false', 'label' => __('Toggle dropdown Content', '__x__'),), $data['id'], $data['mod_id']);//继续渲染元素}
类的代码是理解如何使用此函数的最好方法内容区下拉菜单,内容区模态,画布外内容区元素。
常见问题解答
我如何使一个元素像[自然元素]?
自由复制和粘贴从我们的原生元素自由!本机部分并不是公共API中有文档记录的部分,但是欢迎您重用在元素中找到的任何内容。
什么是_region
价值吗?
这在内部用于跟踪元素所在的“区域”。以下是这些区域及其含义
前
,左
,正确的
,底
-元素是专业标题栏中相应区域的条或条的后代。
页脚
-元素是专业页脚中的条或条的后代
内容
元素位于全局块的内容生成器中创建的内容的主要区域
如果希望根据输出位置稍微更改元素行为,则引用此值非常有用。
如何让我的渲染函数在预览区表现不同?
$is_preview = did_action('cs_element_rendering');
如果您想稍微调整预览和前端的行为,这在渲染函数中很有用。
如何将元素转换为拖放容器?
因为这需要额外的客户端(React Components)代码,所以我们目前没有提供将元素定义为拖放容器的方法。
总结
我们已经深入研究了Element API必须提供的所有功能,讨论了特定选项和本机元素中使用的大多数功能。在构建自己的元素时,可以随意复制和粘贴本机元素中的代码部分。有关Element API的更多详细介绍,请参见API底漆.
看到不准确的地方了吗?让我们知道