这里有一些适用的位,但不足之处在于customize-preview.js
:
this.body.on( \'click.preview\', \'a\', function( event ) {
event.preventDefault();
self.send( \'scroll\', 0 );
self.send( \'url\', $(this).prop(\'href\') );
});
事件。preventDefault阻止链接实际工作。然后,以下代码向上发送一条消息,告诉它a)滚动回页面顶部,b)更改URL。
之所以在这里发送消息,是因为不只是一个iframe,还有两个iframe。您单击的页面实际上加载到另一个iframe中,其中添加了自定义程序的设置(通过POST
确实如此),然后使用淡入效果来淡出旧效果,并无缝淡入新效果。这可以防止屏幕在切换到新页面时变白、变丑和闪烁。
还消除了对主题代码进行过滤等操作的需要,并可能修改页面的外观。因此,主题按原样显示,其内容没有重大变化。
存在类似的代码来阻止表单提交工作(它什么都不做)等等。
用于拦截和处理自定义程序值的筛选器位于class-wp-customize-setting.php
. 这个preview()
函数添加处理传入值所需的过滤器_preview_filter()
功能是该过滤器。它只需要get_option()
或get_theme_mod()
调用,通知何时应该修改选项,并返回修改后的值。