Obowiązuje tutaj kilka bitów, ale w skrócie jest to następujący 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 uniemożliwia faktyczne działanie łączy. Poniższy kod wysyła następnie wiadomość w górę z informacją, że: a) przewiń z powrotem na górę strony i b) zmień adres URL.
Powodem przesyłania wiadomości jest to, że nie ma tylko jednego elementu iframe, są dwa. Strona, na którą kliknąłeś, jest w rzeczywistości ładowana do innego elementu iframe z dodanymi do niego ustawieniami konfiguratora (za pomocą POST
rzeczywiście), a następnie efekt zanikania jest używany do wygaszania starego i płynnego wprowadzania nowego. Zapobiega to białemu i brzydkiemu ekranowi i miganiu po przejściu na nową stronę.
Eliminuje również konieczność filtrowania kodu motywu i potencjalnie modyfikowania wyglądu strony. Temat jest więc wyświetlany bez zmian, bez znaczących zmian w jego treści.
Podobny kod istnieje, aby w ogóle uniemożliwić przesyłanie formularzy (po prostu nic nie robi) i tak dalej.
Filtr przechwytujący i dostosowujący wartości dostosowania jest włączony class-wp-customize-setting.php
. preview()
Funkcja dodaje filtry potrzebne do obsługi wartości przychodzące The _preview_filter()
funkcją jest to, że filtr. Po prostu bierze wywołania get_option()
lub get_theme_mod()
, zauważa, kiedy mają być modyfikowane opcje, i zwraca zmodyfikowane wartości.
/wp-includes/class-wp-customize-manager.php
...