ouun/kirki-module-sync_controls

Kirki WordPress 插件的同步模块。

v1.0.2 2020-06-23 15:28 UTC

This package is auto-updated.

Last update: 2024-09-24 01:05:40 UTC


README

此模块允许为控件设置一个主控件。例如,您添加一个颜色控件,其值应与其主控件相同,直到用户决定覆盖它。这基本上就是本模块要做的。

要求

  • Kirki 框架 >=4.0
  • WordPress >= 4.6

支持哪些控件

迄今为止,此模块已与以下 Kirki 控件进行了测试,并且也应与其他控件兼容:

如何设置同步

通常,多个控件可以具有相同的“主控件”。只需在每个控件的 input_attrs 参数中定义 sync-master 即可。

'input_attrs' => [
  'sync-master' => 'primary_color'
 ]

例如,上面的 primary_color 是主设置 ID。

特殊情况:多颜色字段

使用: https://github.com/kirki-framework/field-multicolor

Kirki 多颜色字段在内部设置了多个控件。您可以选择一次性为所有颜色设置一个主控件,或者分别设置。

为所有颜色控件设置主控件

您可以将上述示例应用于多颜色字段。因此,该字段中的每个颜色控件都将同步到主控件 primary_color,直到其值被覆盖。

'input_attrs' => [
  'sync-master' => 'primary_color'
 ]

设置单个主控件

假设您已按以下方式设置颜色控件:

'choices'   => [
  'color_1'   => esc_attr__( 'First Color', 'example' ),
  'color_2'   => esc_attr__( 'Second Color', 'example' ),
  'color_3'   => esc_attr__( 'Another Color', 'example' ),
],

因此,您可以分别为每个 choices 定义同步主控件。

'input_attrs' => [
  '{{ CHOICE ID }}' => [
    'sync-master' => '{{ MASTER ID }}',
  ],
  'color_2' => [
    'sync-master' => 'colors[primary]',
  ],
  'color_3' => [
    'sync-master' => 'colors[secondary]',
  ],
],

您甚至可以为主控件定义所有控件,并为 color_2 例外。

'input_attrs' => [
  'sync-master' => 'colors[primary]',
  'color_2' => [
    'sync-master' => 'colors[secondary]',
  ],
],

color_1color_3 将具有相同的 colors[primary] 主控件。 color_2 将与 colors[secondary] 同步。

特殊情况:字体字段

使用: https://github.com/kirki-framework/field-typography

字体字段也设置了多个控件。

  • 'font-family'
  • 'font-weight'
  • 'font-style'
  • 'font-size'
  • 'line-height'
  • 'letter-spacing'
  • 'word-spacing'
  • 'text-transform'
  • 'text-align'
  • 'margin-top'
  • 'margin-bottom'
  • 'color'

目前,您需要分别定义您想要同步的每个控件。

'input_attrs' => [
  'font-family' => [
    'data-sync-master' => 'another_typo_control[font-family]',
  ],
  'font-weight' => [
    'data-sync-master' => 'another_typo_control[font-weight]',
  ],
],

同步指示器

具有主控件同步定义的控件会在标签后附加一个指示器。单击后,它会将焦点置于主控件,如果处于同步状态,则标签为 AUTO,如果值被覆盖,则标签为 'CUSTOM'。