Questions tagged «theme-customizer»

定制程序是用于暂存WordPress中的更改的框架。设置可以对给定站点中的任何内容进行建模(选项,主题模块,小部件导航菜单,帖子等),并将更改捆绑到更改集中,然后进行预览,另存为草稿,甚至安排时间表。主题和插件都可以扩展定制程序。应该提出与PHP和JS中WordPress中的Customize API有关的问题。

5
如何扩展WP_Customize_Control
我正在寻找一种向自定义实时预览面板添加新控件的方法。我已经看到了如何使用来向面板添加新部分 add_action( 'customize_register'... 我要实现的控件是另一种颜色选择器。在上一篇文章中,我们看到了如何扩展核心类以添加小部件,但是我在这里所缺少的是一个钩子,该钩子使我能够将对象带入范围-WP_Customize_Palette_Control。在 您可以在此处看到代码的开头。这段代码在functions.php我主题的文件中。 谢谢你的帮助。抢 刚刚更新了代码。现在我必须require_once上课。所以现在我没有PHP错误,但是我的新控件HTML没有出现。 <?php require_once( ABSPATH . WPINC . '/class-wp-customize-setting.php' ); require_once( ABSPATH . WPINC . '/class-wp-customize-section.php' ); require_once( ABSPATH . WPINC . '/class-wp-customize-control.php' ); class WP_Customize_Palette_Control extends WP_Customize_Image_Control { public $type = 'palette'; public $removed = ''; public $context; public function enqueue() { //wp_enqueue_script( 'wp-plupload' …

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

5
get_option()vs get_theme_mod():为什么慢一点?
我已经在我的get_theme_mod()各种项目中使用了一段时间。我决定在WordPress v3.4中利用主题自定义API,因为我觉得这是我的客户不可或缺的工具。 一段时间后,我开始注意到我的网站感觉比平时慢了很多,尤其是Customizer花费了很长的时间来加载。通过大量的试验和错误我的调查过程中,我决定尝试切换出type注册我的设置(即当$wp_customize->add_setting()从)theme_mod到option。 完成此操作并换掉所有对的get_theme_mod()调用后get_option(),我注意到使用后一种设置的速度大大提高,这与前端(尤其是后端的Customizer)相比有所提高。我一直在研究WordPress核心,以试图找出答案,但似乎无法识别这种情况下的特殊问题。 社区可能对get_option()执行速度要快得多的任何见解都get_theme_mod()将不胜感激。

2
新的WP_Customize API-它是如何在后台运行的?
我注意到,如果您通过新的“自定义”功能进行更改,则在iframe预览文档中的其他页面上导航时,即使更改尚未保存,更改仍然适用。 看起来WP将临时更改存储在某个位置,并且如果以“自定义”模式查看网站,它将临时更改应用于网站。 但是网站如何知道它处于自定义模式?因为我看不到任何附加在链接上的查询参数或类似内容。


1
如何使用定制程序设置实现选择性刷新?
我正在制作的主题的页面模板中有一个部分,该部分根据用户使用下拉列表控件在定制器中选择的页面显示内容。现在,它仅使用标准的默认刷新传输方式,但是由于那样重装整个iframe很麻烦,我想知道是否有可能使用新的选择性刷新功能。但是我不确定如何实现它。有人知道这是否可行吗? 这是我的页面模板中显示内容的代码: <?php if ((get_theme_mod( 'intro_page' )) != '') { $intro_id = get_theme_mod( 'intro_page' ); $intro_header = get_the_title( $intro_id ); $intro_excerpt = get_the_excerpt( $intro_id ); $intro_link = get_the_permalink( $intro_id ); $intro_linktext = get_post_meta( $intro_id, 'emm_cta_text', true ); echo '<h1>' . esc_html($intro_header) . '</h1>' . '<p>' . esc_html($intro_excerpt) . '</p>'; if( …

2
定制器JS API
好的,我一直在尝试教育自己使用定制工具的JS API动态创建新的面板部分和控件。 几天令人沮丧,我无法通过JS API获得实现此目的的确切方法。 到目前为止,这是我正在做的一些事情,但没有成功: // for Settings api.create( params.id, params.id, params.default, params.args ); // for controls var controlConstructor = api.controlConstructor[params.type]; var control = new controlConstructor(params.id, { params: params, previewer: api.previewer }); api.control.add( params.id, control ); //for Sections var section = new api.Section(params.id, { params: params }); api.section.add( params.id, section …

2
如何在前端的插件中实现WordPress虹膜选择器?
这个问题在这里被问同样的问题,因为我,但没有足够的答案,也没有选择正确的答案,所以我再次问,如果我在一个更连贯的方式问我可能会得到回应希望。 我正在尝试实现在Wordpress主题自定义API窗格中看到的颜色选择器轮,以选择颜色。使用挂钩时,加载脚本和样式工作正常,“ admin_enqueue_scripts”可以工作,但是尝试使用挂钩在前端加载这些脚本,“ wp_enqueue_scripts”不起作用。样式入队,但脚本不入队。 我想避免将文件复制到我的插件中,而不会复制与Wordpress捆绑在一起的文件。必须有一种方法可以使Iris拾色器在我没有看到的前端工作。 对于那些想知道为什么要这样做的人,我正在开发一个插件,该插件在屏幕的侧面添加了一个弹出式面板,可让您对网站进行实时临时样式更改,而无需通过wp-admin登录面板。

2
主题定制器-设置顺序
如果我在一个部分中添加了5个以上的设置,则设置的顺序会变得很奇怪。 例如: // Link color $wp_customize->add_setting( 'tonal_'.$themeslug.'_settings[link_color1]', array( 'default' => $themeOptions['link_color1'], 'type' => 'option', 'sanitize_callback' => 'sanitize_hex_color', 'capability' => 'edit_theme_options', 'transport' => 'postMessage' ) ); $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'tonal_'.$themeslug.'_settings[link_color1]', array( 'label' => __( 'Link color1', 'tonal' ), 'section' => 'colors', 'settings' => 'tonal_'.$themeslug.'_settings[link_color1]', 'choices' => '#ffffff' ) ) ); …

1
Customizer中的“自定义图像”部分
因此,我在定制器中有此定制部分,用于控制主页上的功能产品。所有这些都已注册,依此类推,但我遇到的问题是客户端上载我不知道如何进行更新的功能图片之一。 我正在使用的functions.php代码: // Customiser function themeName_customize_register( $wp_customize ) { $wp_customize->add_setting('feature_product_one', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_two', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', 'transport' => 'refresh', 'height' => 180, 'width' => 160, )); $wp_customize->add_setting('feature_product_three', array( 'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png', …

1
是否可以扩展WP Customize JS方法?
我想知道是否有可能在中扩展匿名api对象 的方法wp-admin/js/customize-control.js。我需要用自己的自定义逻辑覆盖这些方法之一,但是我怀疑这是不可能的,因为它包装在立即调用的函数表达式中: /* globals _wpCustomizeHeader, _wpMediaViewsL10n */ (function( exports, $ ){ // code })( wp, jQuery ); 据我所知,我无法从window对象扩展原型,因为它是匿名执行的,无法从中获得window.wp.customize。知道这样的事情是否可能吗?甚至在.toggle()方法文档/说明中都提到了对此的覆盖:https : //github.com/WordPress/WordPress/blob/master/wp-admin/js/customize-controls.js#L110,但是我我不确定它们是否意味着通过简单地分叉整个JS文件,使WP版本出队并排入您自己的队列,或者它们的含义或其他含义。 注意,似乎应该有可能,wp.customize.{method}.extend({ foo: // replace method foo here })但这仅适用于公共基类/对象,不适用于那些wp-admin/js/customize-control.js

1
获取定制器字段的输入值以进行实时预览
根据法典,这个问题可能是有关主题定制程序的任何教程,您可以使用以下代码获得定制程序字段的值: ( function( $ ) { //Update site background color... wp.customize( 'background_color', function( value ) { value.bind( function( newval ) { $('body').css('background-color', newval ); } ); } ); } )( jQuery ); 问题是您可以在更改该值时获得该值。 我的问题是,如何(以一种理智的方式)在同一回调中检索另一个字段的值。 例如 ( function( $ ) { //Update site background color... wp.customize( 'background_color', function( value ) { …

1
定制程序中的窗口小部件是否可以“一次性使用”(即在添加1个实例后被禁用)?
我每天晚上都在寻求构建自定义的一次性小部件。 一旦将其一个实例添加到“定制程序”的侧边栏面板中,其在“可用小部件”面板上的控件应显示为禁用(或完全消失)。 这是它的外观(请注意右侧视觉上“已禁用”的小部件): 自定义窗口小部件已注册并且全部注册,但我只能使用一次。 眼镜 规模不是问题。可以假设只有1个注册的侧边栏。该方法可以是将小部件的使用限制为每个侧边栏1个或所有注册的侧边栏1个-两者现在都一样好。 后端上的“窗口小部件”页面不是问题。不需要在后端“ 外观 ” 下的“ 小部件”页面上同样良好地工作。它只需要在定制程序中工作。 问题 大约250年前,所有小部件都曾经是“单次使用”的。有谁知道将这些时间带回去并使自定义窗口小部件通过窗口小部件API只能使用1次的合法方法吗? 如果不是这样(我在挖掘了相当数量的核心文件后就假定),我可能会采用基于CSS的方法(指针事件,伪元素覆盖等)。任何一种灵魂都可以通过一种基本方法来帮助我非常有限的Customizer / JavaScript知识,该基本方法是,一旦所述小部件的实例具有被添加/删除到侧边栏面板? 到目前为止我尝试过的 挖掘大量核心文件。 阅读this和this,但是似乎都不可行。 修补了jQuery事件widget-added,widget-updated和widget-synced,但错过了“小部件已删除”事件。 提前感谢吨! 更新:当然,还没有将我的概念证明放在公共回购中。 解 我将下面由kraftner共享的解决方案包装在GitHub上的概念证明插件中。

1
链接到特定的“定制程序”部分
我有一个站点,其中包含一些额外的定制程序部分。有没有一种方法可以直接链接到这些文件,以便在页面加载时打开该节? 就像是 http://mysites.com/wp-admin/customize.php#fonts 屏幕截图http://new.tinygrab.com/96412a96d208cf8ff0cf5803327b2d29e0ca68810e.png

1
如何创建主题定制器“子”面板?
该add_panel()方法是WordPress 4.0的一项很酷的新功能。在我的情况下,我想为主题选项创建一个新面板,这很简单,但是可以在它们的选项面板下创建子面板,例如,一个用于标题,一个用于主体,一个用于页脚?如果是这样,我将如何去做?
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.