L'anteprima del Customizer non aggiorna correttamente il valore di get_option()

1 feb 2014, 17:22:09
Visualizzazioni: 768
Voti: 3

Ho un'impostazione in index.php

if(get_option('cb2_blog_home')){
    cb_get_blog_links();
}

Questo codice consente di attivare o disattivare l'indice del blog nella home page. La funzione cb_get_blog_links() visualizza l'elenco dei riepiloghi degli articoli del blog.

Nel customizer, ho una casella di controllo per impostare questo valore cb2_blog_home. Tuttavia, non ha alcun effetto. È come se l'opzione fosse sempre attiva.

Qualche idea sul perché?

All'interno di quella funzione, ci sono diverse variabili che sto impostando anche con il customizer. Tutte funzionano perfettamente.

Ecco il codice completo del customizer. Tutto funziona perfettamente tranne l'impostazione del blog home. L'unica cosa che mi viene in mente è che una è una funzione e le altre sono variabili all'interno della funzione.

function cb_customize_register($wp_customize){

        $wp_customize->add_section('cb_customizer_blog', array(
                'title'    => __('Impostazioni Blog del Tema', 'Theme'),
                'priority' => 120,
        ));

                //Mostra & Nascondi Link Blog in Home
                $wp_customize->add_setting('cb2_blog_home', array(
                        'default'        => '',
                        'capability'     => 'edit_theme_options',
                        'type'           => 'option',
                ));

                $wp_customize->add_control('cb2_blog_home', array(
                        'label'      => __('Abilita Blog Home', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home',
                        'type'   => 'checkbox',
                        'priority' => 125,
                ));

                //Conteggio Post Blog Home
                $wp_customize->add_setting('cb2_blog_home_count', array(
                        'default'        => '3',
                        'capability'     => 'edit_theme_options',
                        'type'           => 'option',
                ));

                $wp_customize->add_control('cb2_blog_home_count', array(
                        'label'      => __('Conteggio Post Blog Home', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home_count',
                        'priority' => 130,
                ));


                //Mostra & Nascondi Titolo Blog Home
                $wp_customize->add_setting('cb2_blog_home_title_hide', array(
                        'default'        => '',
                        'capability'     => 'edit_theme_options',
                        'type'           => 'option',
                ));

                $wp_customize->add_control('cb2_blog_home_title_hide', array(
                        'label'      => __('Nascondi Titolo Blog Home', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home_title_hide',
                        'type'   => 'checkbox',
                        'priority' => 135,
                ));

                //Mostra & Nascondi Autore Blog
                $wp_customize->add_setting('cb2_blog_index_author', array(
                        'default'        => '',
                        'capability'     => 'edit_theme_options',
                        'type'           => 'option',
                ));

                $wp_customize->add_control('cb2_blog_index_author', array(
                        'label'      => __('Nascondi Autore Blog', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_index_author',
                        'type'   => 'checkbox',
                        'priority' => 140,
                ));

            //Mostra & Nascondi Data Blog
            $wp_customize->add_setting('cb2_blog_index_date', array(
                        'default'        => '',
                        'capability'     => 'edit_theme_options',
                        'type'           => 'option',
                ));

                $wp_customize->add_control('cb2_blog_index_date', array(
                        'label'      => __('Nascondi Data Blog', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_index_date',
                        'type'   => 'checkbox',
                        'priority' => 145,
                ));

}

add_action('customize_register', 'cb_customize_register');
5
Commenti

Quando ho testato il tuo codice, l'opzione cb2_blog_home veniva impostata come previsto: 1, se selezionata. vuota, se deselezionata.

Rachel Baker Rachel Baker
1 feb 2014 20:27:42

Rachel, puoi dirmi come sei in grado di verificare i valori delle chiavi nel post?

Scott B Scott B
2 feb 2014 03:13:34

scott-b, stavo controllando i valori nel database. Se inserisco: $temp = get_option('cb2_blog_home'); echo var_dump( $temp ); nell'header.php di un tema, ottengo i valori previsti di $temp = false|true.

Rachel Baker Rachel Baker
2 feb 2014 04:57:05

Questo problema mi sta dando davvero fastidio. I valori nel database sono corretti ma il customizer.php e i risultati sul front end non sempre coincidono.

s_ha_dum s_ha_dum
2 feb 2014 17:38:28

Qualche progresso su quella domanda? Codice di debug disponibile per i lettori successivi in modo che possano provarci?

kaiser kaiser
18 feb 2014 01:20:24
Tutte le risposte alla domanda 1
0

Utilizzi il tipo option per memorizzare le tue impostazioni.

Il Customizer non memorizza i valori predefiniti nel database finché l'utente non fa clic su salva.

@see https://wordpress.stackexchange.com/a/247164/52167

3 feb 2017 20:20:55