Ada beberapa bit di sini yang berlaku, tetapi singkatnya adalah kode ini di 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 mencegah tautan agar tidak berfungsi. Kode berikut kemudian mengirim pesan kembali ke atas dan mengatakannya ke a) gulir kembali ke atas halaman dan b) ubah URL.
Alasan untuk olahpesan di sini adalah karena tidak hanya ada satu iframe, ada dua. Halaman yang Anda klik sebenarnya dimuat di dalam iframe lain dengan pengaturan dari penyesuai ditambahkan ke dalamnya (melalui POST
memang), maka efek fade digunakan untuk memudar yang lama dan memudar di yang baru dengan mulus. Ini mencegah layar menjadi putih dan jelek dan berkedip ketika beralih ke halaman baru.
Juga menghilangkan kebutuhan untuk melakukan pemfilteran dan semacamnya pada kode tema dan berpotensi memodifikasi tampilan halaman. Tema tersebut ditampilkan sebagaimana adanya, tanpa perubahan signifikan pada kontennya.
Kode serupa ada di sana untuk mencegah pengiriman formulir berfungsi sama sekali (hanya tidak melakukan apa-apa) dan sebagainya.
Filter untuk mencegat dan menangani nilai-nilai penyesuai ada di class-wp-customize-setting.php
. The preview()
Fungsi menambahkan filter diperlukan untuk menangani nilai-nilai yang masuk, _preview_filter()
fungsi filter yang. Itu hanya mengambil get_option()
atau get_theme_mod()
panggilan, pemberitahuan ketika mereka seharusnya menjadi opsi yang dimodifikasi, dan mengembalikan nilai yang diubah sebagai gantinya.
/wp-includes/class-wp-customize-manager.php
...