codex和Twenty14主题代码之间似乎存在一些冲突,关于哪个操作要挂钩以加载您的实时预览。js(例如:customizer.js)
在2144主题中,实时预览处理程序customizer。js,使用customize_preview_init:
function twentyfourteen_customize_preview_js() {
wp_enqueue_script( \'twentyfourteen_customizer\', get_template_directory_uri() . \'/js/customizer.js\', array( \'customize-preview\' ), \'20131205\', true );
}
add_action( \'customize_preview_init\', \'twentyfourteen_customize_preview_js\' );
然而,在法典中
this answer, 我们建议使用
customize_controls_enqueue_scripts3-创建一个连接到“customize\\u controls\\u enqueue\\u scripts”的操作,该操作将js文件排入队列
当我使用该方法排队时。js附加到父DOM(customizer控件窗口本身),而不是预览iframe(chrome开发预览中的“About”文档),如下面的屏幕截图所示。
最合适的回答,由SO网友:Otto 整理而成
正如名称本身所述,其中一个钩子指向自定义控件,另一个钩子指向自定义预览。它们是不一样的,事实上,你可以出于不同的目的同时使用它们。
如果您正在挂接JS代码以影响自定义程序中的控件,那么您应该使用customize_controls_enqueue_scripts
.
如果您将JS代码挂接到预览框架中,并可能通过postMessage从控件接收事件,从而能够快速动态更改预览框架的内容,那么您可以使用customize_preview_init
.
2014年实际上两者都使用。第一个用于向customizer中的自定义控件添加特色内容建议脚本。第二个用于预览框架中的所有postMessage代码。
具体来说,customize\\u preview\\u init挂钩是从wp_loaded
自定义程序is\\u preview()返回true,is\\u admin()返回false时的操作。。。因此,只有在预览窗口中,而不是在管理方面。。。这是您希望将仅调整预览帧的脚本排入队列的位置。