El preview del Customizer no actualiza correctamente el valor de get_option()

1 feb 2014, 17:22:09
Vistas: 768
Votos: 3

Tengo un ajuste en index.php

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

Este código permite activar o desactivar el índice de blog en la página de inicio. La función cb_get_blog_links() muestra la lista de resúmenes de publicaciones del blog.

Y, en el personalizador, tengo una casilla de verificación para establecer este valor cb2_blog_home. Sin embargo, no tiene efecto. Es como si la opción siempre fuera verdadera.

¿Alguna idea de por qué?

Dentro de esa función, hay varias variables que también estoy configurando con el personalizador. Todas funcionan perfectamente.

Aquí está el código completo del personalizador. Todo funciona perfectamente excepto el ajuste del blog en la página de inicio. Lo único que se me ocurre es que uno es una función y los otros son variables dentro de la función.

function cb_customize_register($wp_customize){

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

                //Mostrar y Ocultar Enlaces de Blog en Inicio
                $wp_customize->add_setting('cb2_blog_home', array(
                        'default'        => '',
                        'capability'     => 'edit_theme_options',
                        'type'           => 'option',
                ));

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

                //Conteo de Publicaciones del Blog en Inicio
                $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'      => __('Conteo de Publicaciones del Blog en Inicio', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home_count',
                        'priority' => 130,
                ));


                //Mostrar y Ocultar Título del Blog en Inicio
                $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'      => __('Ocultar Título del Blog en Inicio', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_home_title_hide',
                        'type'   => 'checkbox',
                        'priority' => 135,
                ));

                //Mostrar y Ocultar Autor en el 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'      => __('Ocultar Autor del Blog', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_index_author',
                        'type'   => 'checkbox',
                        'priority' => 140,
                ));

            //Mostrar y Ocultar Fecha en el 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'      => __('Ocultar Fecha del Blog', 'Theme'),
                        'section'    => 'cb_customizer_blog',
                        'settings'   => 'cb2_blog_index_date',
                        'type'   => 'checkbox',
                        'priority' => 145,
                ));

}

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

Cuando probé tu código, la opción cb2_blog_home se establecía como se esperaba: 1, si estaba marcada. Vacío, si no estaba marcada.

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

Rachel, ¿puedes decirme cómo verificas los valores de las claves en la publicación?

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

scott-b, estaba verificando los valores en la base de datos. Si ingreso: $temp = get_option('cb2_blog_home'); echo var_dump( $temp ); en el header.php de un tema, me muestra los valores esperados de $temp = false|true.

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

Este problema me ha estado molestando. Los valores en la base de datos son correctos pero el customizer.php y los resultados en el front end no siempre coinciden.

s_ha_dum s_ha_dum
2 feb 2014 17:38:28

¿Algún progreso en esa pregunta? ¿Código de depuración disponible para que lectores posteriores puedan intentarlo?

kaiser kaiser
18 feb 2014 01:20:24
Todas las respuestas a la pregunta 1
0

Utilizas el tipo option para almacenar tus configuraciones.

El Personalizador no guarda tus valores predeterminados en la base de datos hasta que el usuario haga clic en guardar.

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

3 feb 2017 20:20:55