WordPress为主题开发人员提供定制器API。这是一组干净,面向对象的方法集,可促进创建一致的自定义接口。在自定义面板上,用户可以轻松地进行更改并进行实时浏览,而无需与PHP或CSS代码混乱。
>使用Customizer API开发主题选项,同时是一个直接且合乎逻辑的过程,涉及编写一定数量的重复代码。为了减少构建功能和安全定制选项所需的一些步骤,Aristeides Stathopoulos一直在开发免费的开源插件Kirki。在这篇文章中,我将展示如何将Kirki集成到您的WordPress主题中,以及如何使用它来构建一些定制器选项。
钥匙要点
Kirki通过提供更简单的语法和高级功能来增强WordPress Customizer API,从而使开发人员可以使用更少的代码编写更多。
>
>如果您希望将Kirki作为库中包含在主题中,请按照以下概述的步骤操作。
通过将此行添加到functions.php(确保您调整到Kirki文件夹的路径以匹配您的主题的文件结构),将此行添加到functions.php(确保将此行添加到functions.php中)使您的主题“谈话”与Kirki进行“交谈”。
添加一个函数以包含Kirki配置选项,然后将其连接到Kirki/Config Felter。这取决于您要添加到此功能的内容。在这篇文章中,让我们通过添加代码Kirki需求以“了解”其新位置,即主题文件夹而不是插件文件夹。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
定制器选项现场直播,该部分位于面板内部。在本文的演示项目中,我使用本机定制方法将所有部分分组在专用面板中,例如so。
><span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
接下来,通过将此代码放置在上一个ADD_PANEL自定义方法下方,分别将此代码放置在网站文本颜色,站点布局和页脚文本选项中添加部分。
<span>function superminimal_customizer_config() { </span> <span>$args = array( </span> <span>// Only use this if you are bundling the plugin with your theme </span> <span>'url_path' => get_stylesheet_directory_uri() . '/inc/kirki/', </span> <span>); </span> <span>return $args; </span> <span>} </span> <span>add_filter( 'kirki/config', 'superminimal_customizer_config' );</span>
现在,您准备添加第一个Kirki驱动的选项。
>>您所有与选项相关的代码都将放置在功能中。然后通过Kirki/Fields滤波器过滤此功能。
<span>function superminimal_demo_panels_sections( $wp_customize ) { </span> <span>/** </span><span> * Add Panel </span><span> */ </span> <span>$wp_customize->add_panel( 'sitepoint_demo_panel', array( </span> <span>'priority' => 10, </span> <span>'title' => __( 'SitePoint Demo Panel', 'superminimal' ), </span> <span>'description' => __( 'Kirki integration for SitePoint demo', 'superminimal' ), </span> <span>) ); </span> <span>//More code to come </span> <span>} </span> <span>add_action( 'customize_register', 'superminimal_demo_panels_sections' );</span>
>让您给您的WordPress主题用户一种更简单的更改文本颜色的方法。 Kirki很快就完成了。在返回$字段上方的Superminimal_demo_fields()函数中添加以下代码片段;陈述。
<span>/** </span><span> * Add a Section for Site Text Colors </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_text_colors', array( </span> <span>'title' => __( 'Site Text Colors', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Site Layout </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_site_layout', array( </span> <span>'title' => __( 'Site Layout', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Footer Text </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_footer_text', array( </span> <span>'title' => __( 'Footer Text', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) );</span>
>让我们分解$ fields [] array。
>
>站点布局选项
Kirki提供了许多复杂的定制器控件。 我最喜欢的是无线电图像控件。
>将代码放在上面的$ fields []阵列代码段之后。请注意,如何将输出参数添加到代码中。之所以如此,是因为每个无线电图像输入的值不是CSS属性值。
>您可以通过本机Customizer get_theme_mod方法从superminimal_layout设置提取值的方式。然后,您将该值用作模板文件中合适的HTML元素的类属性值。最后,这只是编写适当的CSS的问题,以实现您的样式表中的.fullwidth,Sidebar-Left和.sidebar-Right类的所需布局。
>查看如何在SuperMinimal Demo主题中实现布局选项的详细信息。
>您遇到过多少次WordPress主题用户,要求您帮助他们更换主题的页脚区域中的任何开发人员?添加一个选项,让用户轻松地管理自定义器的页脚文本需要几分钟的时间。这是代码。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
上面的代码输出一个文本方面,用户可以在其中编写版权通知,信用等。
>>提取并显示在文本中心中输入的文本,请在footer.php中使用本机定制方法get_theme_mod,如下所示。
<span>function superminimal_customizer_config() { </span> <span>$args = array( </span> <span>// Only use this if you are bundling the plugin with your theme </span> <span>'url_path' => get_stylesheet_directory_uri() . '/inc/kirki/', </span> <span>); </span> <span>return $args; </span> <span>} </span> <span>add_filter( 'kirki/config', 'superminimal_customizer_config' );</span>
如何添加条件选项
>在这方面,Kirki提供了什么?
>将上面的摘要添加到TextArea控件的代码中,可确保Superminimal_reveal_footer_text Control的值在自定义器中显示TextAarea控件之前等于1。让我们将superminimal_reveal_footer_text控件添加到superminimal_demo_fields()函数。
<span>function superminimal_demo_panels_sections( $wp_customize ) { </span> <span>/** </span><span> * Add Panel </span><span> */ </span> <span>$wp_customize->add_panel( 'sitepoint_demo_panel', array( </span> <span>'priority' => 10, </span> <span>'title' => __( 'SitePoint Demo Panel', 'superminimal' ), </span> <span>'description' => __( 'Kirki integration for SitePoint demo', 'superminimal' ), </span> <span>) ); </span> <span>//More code to come </span> <span>} </span> <span>add_action( 'customize_register', 'superminimal_demo_panels_sections' );</span>
> superminimal_reveal_footer_text控件是一个复选框,默认情况下将其设置为0,即未经检查。这样可以防止文本框架显示。
<span>/** </span><span> * Add a Section for Site Text Colors </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_text_colors', array( </span> <span>'title' => __( 'Site Text Colors', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Site Layout </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_site_layout', array( </span> <span>'title' => __( 'Site Layout', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) ); </span> <span>/** </span><span> * Add a Section for Footer Text </span><span> */ </span> <span>$wp_customize->add_section( 'superminimal_footer_text', array( </span> <span>'title' => __( 'Footer Text', 'superminimal' ), </span> <span>'priority' => 10, </span> <span>'panel' => 'sitepoint_demo_panel', </span> <span>'description' => __( 'Section description.', 'superminimal' ), </span> <span>) );</span>
>仅在选中复选框后,即通过将其值从0更改为1,即文本中心出现在Customizer中。
>自定义器带有功能强大的JavaScript API,可在预览区域添加AJAX功能。这种增强功能使用户可以实时检查其修改,而无需等待整个Customizer预览页面刷新。
>我们可以通过在$ fields []数组中添加一些方便的参数来实现Kirki的相同结果。
例如,要将Ajaxified Live预览添加到SuperMinimal_body_color设置中,请将以下片段附加到适当的$ fields []数组。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
就是这样,然后尝试在Superminimal_footer_text部分中的Textarea中写入一些内容。您很快就会注意到预览屏幕中的相应页脚文本在没有完整的页面重新加载的情况下进行了相应的更改。凉爽的!
带有无线电图像控制的Ajax Live Preview
>在某些情况下,CSS和HTML都不适合启用Ajax Live Preview的函数参数。一个很好的例子是为更改站点布局的设置。使用CSS作为函数参数的值没有意义,因为所讨论的设置不会存储任何CSS属性值。同样,使用HTML并不能完全削减它。实际上,它最终只会在预览页面上吐出<span>function superminimal_customizer_config() { </span> <span>$args = array( </span> <span>// Only use this if you are bundling the plugin with your theme </span> <span>'url_path' => get_stylesheet_directory_uri() . '/inc/kirki/', </span> <span>); </span> <span>return $args; </span> <span>} </span> <span>add_filter( 'kirki/config', 'superminimal_customizer_config' );</span>
,
sidebar-left >或好消息是,您可以插入自定义的JavaScript函数名称作为函数参数的值,并且它有效! >您需要加入自定义功能生存的JavaScript文件并将其挂接到customize_preview_init Action Hook。 最后,编写使用本机Customizer JavaScript API处理实时预览的JavaScript函数。
<span>if ( ! class_exists( 'Kirki' ) ) { </span> <span>include_once( dirname( __FILE__ ) . '/inc/kirki/kirki.php' ); </span><span>}</span>
资源
>深入研究本文中讨论的代码的详细信息,请随时从Github下载超级演示主题。
我期待您的反馈!
经常询问有关快速WordPress定制器选项开发的问题
什么是Kirki?如何使WordPress开发受益?
中使用实时预览功能。要使用此功能,您需要在控制配置中添加“传输”选项。 “传输”选项指定了预览中如何反映对控件的变化。通过将此选项设置为“ postmessage”,您可以为控件启用实时预览。
是的,kirki旨在与任何人一起使用WordPress主题。但是,要充分利用Kirki的功能,您的主题需要支持WordPress定制器。大多数现代WordPress主题都支持定制器,因此对于大多数用户而言,这不是一个问题。
>>使用kirki添加新面板涉及添加一个新面板主题函数的代码很少。php文件。该代码指定面板的ID,标题,描述和优先级。一旦添加,面板将出现在WordPress Customizer中,您可以向其添加部分和控件。
>>如何使用Kirki? 🎜> Kirki提供了一个排版控件,可让您自定义主题中的版式。此控件提供了设置字体系列,变体,大小,线高,字母间距和颜色的选项。您还可以将Google字体添加到控件中,使您可以访问各种字体。
如何更新Kirki?
以上是kirki的快速WordPress定制选项的详细内容。更多信息请关注PHP中文网其他相关文章!