Có một vài bit ở đây áp dụng, nhưng thiếu của nó là mã này trong customize-preview.js
:
this.body.on( 'click.preview', 'a', function( event ) {
event.preventDefault();
self.send( 'scroll', 0 );
self.send( 'url', $(this).prop('href') );
});
Event.preventDefault ngăn các liên kết thực sự hoạt động. Đoạn mã sau sẽ gửi một thông báo ngược lên trên để thông báo cho a) cuộn trở lại đầu trang và b) thay đổi URL.
Lý do cho việc nhắn tin ở đây là vì không chỉ có một iframe, có hai. Trang bạn đã nhấp thực sự được tải bên trong iframe khác với các cài đặt từ tùy biến được thêm vào nó (thông qua POST
thực tế), sau đó hiệu ứng mờ dần được sử dụng để làm mờ dần cái cũ và mờ dần trong cái mới. Điều này ngăn màn hình trở nên trắng và xấu và nhấp nháy khi chuyển sang trang mới.
Cũng loại bỏ sự cần thiết phải lọc và như vậy trên mã chủ đề và có khả năng sửa đổi giao diện của trang. Do đó, chủ đề được hiển thị như là, không có thay đổi đáng kể cho nội dung của nó.
Mã tương tự tồn tại ở đó để ngăn chặn việc gửi biểu mẫu hoạt động hoàn toàn (nó chỉ không làm gì cả) và vv.
Bộ lọc để chặn và xử lý các giá trị tùy biến nằm trong class-wp-customize-setting.php
. Các preview()
chức năng bổ sung thêm các bộ lọc cần thiết để xử lý các giá trị đến, các _preview_filter()
chức năng là bộ lọc đó. Nó chỉ đơn giản là nhận get_option()
hoặc get_theme_mod()
gọi, thông báo khi chúng được coi là tùy chọn sửa đổi và trả về các giá trị được sửa đổi thay thế.
/wp-includes/class-wp-customize-manager.php
...