Previzualizarea Customizer nu actualizează corect valoarea get_option()

1 feb. 2014, 17:22:09
Vizualizări: 768
Voturi: 3

Am o setare în index.php

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

Acest cod permite activarea sau dezactivarea indexului blogului pe pagina principală. Funcția cb_get_blog_links() afișează lista cu rezumatele articolelor din blog.

Și, în Customizer, am o casetă de bifare pentru a seta această valoare cb2_blog_home. Totuși, nu are niciun efect. Este ca și cum opțiunea ar fi întotdeauna activă.

Aveți idei de ce se întâmplă acest lucru?

În cadrul acelei funcții, sunt mai multe variabile pe care le setez și ele cu Customizer. Toate acelea funcționează perfect.

Iată codul complet al Customizer-ului. Totul funcționează perfect cu excepția setării pentru blogul de pe pagina principală. Singurul lucru la care mă pot gândi este că aceasta este o funcție, în timp ce celelalte sunt variabile în cadrul funcției.

function cb_customize_register($wp_customize){

        $wp_customize->add_section('cb_customizer_blog', array(
                'title'    => __('Setări Blog Temă', 'Theme'),
                'priority' => 120,
        ));

                //Arată și Ascunde Linkurile Blogului pe Pagina Principală
                $wp_customize->add_setting('cb2_blog_home', array(
                        'default'        => '',
                        'capability'     => 'edit_theme_options',
                        'type'           => 'option',
                ));

                $wp_customize->add_control('cb2_blog_home', array(
                        'label'      => __('Activează Blogul pe Pagina Principală', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home',
                        'type'   => 'checkbox',
                        'priority' => 125,
                ));

                //Număr de Articole pe Pagina Principală a Blogului
                $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'      => __('Număr de Articole pe Pagina Principală', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home_count',
                        'priority' => 130,
                ));


                //Arată și Ascunde Titlul Blogului pe Pagina Principală
                $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'      => __('Ascunde Titlul Blogului pe Pagina Principală', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home_title_hide',
                        'type'   => 'checkbox',
                        'priority' => 135,
                ));

                //Arată și Ascunde Autorul Articolelor pe 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'      => __('Ascunde Autorul Articolelor', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_index_author',
                        'type'   => 'checkbox',
                        'priority' => 140,
                ));

            //Arată și Ascunde Data Articolelor pe 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'      => __('Ascunde Data Articolelor', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_index_date',
                        'type'   => 'checkbox',
                        'priority' => 145,
                ));

}

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

Când am testat codul tău, opțiunea cb2_blog_home era setată conform așteptărilor: 1, dacă era bifată. gol, dacă nu era bifată.

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

Rachel, poți să-mi spui cum verifici valorile cheilor în postare?

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

scott-b, verificam valorile din baza de date. Dacă introduc: $temp = get_option('cb2_blog_home'); echo var_dump( $temp ); în header.php al unei teme, afișez valorile așteptate ale lui $temp = false|true.

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

Aceasta mă tot deranjează. Valorile din baza de date sunt corecte, dar rezultatele din customizer.php și partea de front-end nu se potrivesc întotdeauna.

s_ha_dum s_ha_dum
2 feb. 2014 17:38:28

Ai făcut vreun progres la această întrebare? Există cod de depanare disponibil pentru cititorii ulteriori, ca să încerce și ei?

kaiser kaiser
18 feb. 2014 01:20:24
Toate răspunsurile la întrebare 1
0

Folosești tipul option pentru a stoca setările tale.

Customizer nu stochează valorile implicite în baza de date până când utilizatorul apasă pe salvare.

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

3 feb. 2017 20:20:55