Burada geçerli olan birkaç bit var, ancak kısa kısmı şu kod 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 bağlantıların gerçekten çalışmasını engeller. Aşağıdaki kod daha sonra a) sayfanın en üstüne kaydırın ve b) URL'yi değiştirin.
Buradaki mesajlaşmanın nedeni, sadece bir iframe olmadığı için iki tane var. Tıkladığınız sayfa aslında, özelleştiricinin ayarları eklenmiş olarak ( POST
gerçekten de) başka bir iframe içine yüklenir , daha sonra eski olanın solması ve yenisinde sorunsuz bir şekilde solması için bir solma efekti kullanılır. Bu, yeni sayfaya geçtiğinde ekranın beyaz ve çirkinleşmesini ve yanıp sönmesini önler.
Ayrıca tema kodunda filtreleme ve benzeri şeyler yapma ihtiyacını ortadan kaldırır ve sayfanın görünümünü değiştirebilir. Tema böylece içeriğinde önemli değişiklikler yapılmadan olduğu gibi görüntülenir.
Form gönderme işleminin hiç çalışmasını (hiçbir şey yapmaz) ve benzerlerini önlemek için benzer bir kod vardır.
Özelleştirici değerlerini yakalamak ve işlemek için filtre var class-wp-customize-setting.php
. preview()
Fonksiyonu, gelen değerlerini işlemek için gereken filtreleri ekler _preview_filter()
işlevi olduğunu filtredir. Basitçe, get_option()
veya get_theme_mod()
çağrılarını alır, değiştirilen seçeneklerin ne zaman olması gerektiğini fark eder ve bunun yerine değiştirilen değerleri döndürür.
/wp-includes/class-wp-customize-manager.php
...