Questo problema può essere risolto in vari modi, tuttavia ti mostriamo la soluzione più completa per noi.
Stampa le impostazioni JavaScript per il riquadro di anteprima.
Fonte
File: wp-includes/class-wp-customize-manager.php
public function customize_preview_settings() { $post_values = $this->unsanitized_post_values( array( 'exclude_changeset' => true ) ); $setting_validities = $this->validate_setting_values( $post_values ); $exported_setting_validities = array_map( array( $this, 'prepare_setting_validity_for_js' ), $setting_validities ); // Note that the REQUEST_URI is not passed into home_url() since this breaks subdirectory installations. $self_url = empty( $_SERVER['REQUEST_URI'] ) ? home_url( '/' ) : esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ); $state_query_params = array( 'customize_theme', 'customize_changeset_uuid', 'customize_messenger_channel', ); $self_url = remove_query_arg( $state_query_params, $self_url ); $allowed_urls = $this->get_allowed_urls(); $allowed_hosts = array(); foreach ( $allowed_urls as $allowed_url ) { $parsed = wp_parse_url( $allowed_url ); if ( empty( $parsed['host'] ) ) { continue; } $host = $parsed['host']; if ( ! empty( $parsed['port'] ) ) { $host .= ':' . $parsed['port']; } $allowed_hosts[] = $host; } $switched_locale = switch_to_locale( get_user_locale() ); $l10n = array( 'shiftClickToEdit' => __( 'Shift-click to edit this element.' ), 'linkUnpreviewable' => __( 'This link is not live-previewable.' ), 'formUnpreviewable' => __( 'This form is not live-previewable.' ), ); if ( $switched_locale ) { restore_previous_locale(); } $settings = array( 'changeset' => array( 'uuid' => $this->changeset_uuid(), 'autosaved' => $this->autosaved(), ), 'timeouts' => array( 'selectiveRefresh' => 250, 'keepAliveSend' => 1000, ), 'theme' => array( 'stylesheet' => $this->get_stylesheet(), 'active' => $this->is_theme_active(), ), 'url' => array( 'self' => $self_url, 'allowed' => array_map( 'esc_url_raw', $this->get_allowed_urls() ), 'allowedHosts' => array_unique( $allowed_hosts ), 'isCrossDomain' => $this->is_cross_domain(), ), 'channel' => $this->messenger_channel, 'activePanels' => array(), 'activeSections' => array(), 'activeControls' => array(), 'settingValidities' => $exported_setting_validities, 'nonce' => current_user_can( 'customize' ) ? $this->get_nonces() : array(), 'l10n' => $l10n, '_dirty' => array_keys( $post_values ), ); foreach ( $this->panels as $panel_id => $panel ) { if ( $panel->check_capabilities() ) { $settings['activePanels'][ $panel_id ] = $panel->active(); foreach ( $panel->sections as $section_id => $section ) { if ( $section->check_capabilities() ) { $settings['activeSections'][ $section_id ] = $section->active(); } } } } foreach ( $this->sections as $id => $section ) { if ( $section->check_capabilities() ) { $settings['activeSections'][ $id ] = $section->active(); } } foreach ( $this->controls as $id => $control ) { if ( $control->check_capabilities() ) { $settings['activeControls'][ $id ] = $control->active(); } } ?> <scripttype="text/javascript">var _wpCustomizeSettings =echowp_json_encode($settings);?>; _wpCustomizeSettingsvalues ={};(function(v){/* * Serialize settings separately from the initial _wpCustomizeSettings * serialization in order to avoid a peak memory usage spike. * @todo We may not even need to export the values at all since the pane syncs them anyway. */foreach($this->settingsas$id=>$setting){if($setting->check_capabilities()){printf("v[%s] = %s;n",wp_json_encode($id),wp_json_encode($setting->js_value()));}}?>})( _wpCustomizeSettingsvalues );script>}
Correlato
Utilizzi
Usi | Descrizione |
---|---|
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::autosaved() |
Ottiene se i dati della revisione autosaved di una modifica devono essere caricati, se esistono. |
wp-includes/l10n.php: restore_previous_locale() |
Ripristina le traduzioni secondo il locale precedente. |
wp-includes/l10n.php: switch_to_locale() |
Cambia le traduzioni in base al locale dato. |
wp-includes/l10n.php: get_user_locale() |
Recupera il locale di un utente. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::get_allowed_urls() |
Ottiene gli URL che possono essere visualizzati in anteprima. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::is_cross_domain() |
Determina se l'amministratore e il frontend sono su domini diversi. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::changeset_uuid() |
Ottiene l'UUID del changeset. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::validate_setting_values() |
Convalida i valori delle impostazioni. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::get_nonces() |
Ottiene i nonces per il Customizer. |
wp-includes/http.php: wp_parse_url() |
Un wrapper per la funzione parse_url() di PHP, che gestisce la coerenza dei valori restituiti tra le varie versioni di PHP. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::unsanitized_post_values() |
Ottiene i valori sporchi delle impostazioni pre-sanitizzate nello stato personalizzato corrente. |
wp-includes/functions.php: wp_json_encode() |
Codifica una variabile in JSON, con alcuni controlli di correttezza. |
wp-includes/capabilities.php: current_user_can() |
Restituisce se l'utente corrente ha la capacità specificata. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::get_stylesheet() |
Recupera il nome del foglio di stile del tema visualizzato in anteprima. |
wp-includes/class-wp-customize-manager.php: WP_Customize_Manager::is_theme_active() |
Controlla se il tema corrente è attivo. |
wp-includes/l10n.php: __() |
Recupera la traduzione di $testo. |
wp-includes/formatting.php: wp_unslash() |
Rimuove gli slash da una stringa o rimuove ricorsivamente gli slash dalle stringhe all'interno di un array. |
wp-includes/formatting.php: esc_url_raw() |
Esegue esc_url() per l'uso del database. |
wp-includes/functions.php: remove_query_arg() |
Rimuove uno o più elementi da una stringa di query. |
wp-includes/link-template.php: home_url() |
Recupera l'URL del sito corrente in cui è accessibile il front-end. |
Changelog
Versione | Descrizione |
---|---|
3.4.0 | Introdotto. |
Sezione recensioni e valutazioni
Ricordati di mostrare questa dichiarazione se ti è stata d'aiuto.