Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/11/2016, 04:41
hmedcab
 
Fecha de Ingreso: enero-2014
Mensajes: 101
Antigüedad: 10 años, 10 meses
Puntos: 7
Respuesta: Cambiar varios settings desde un mismo control - Customize Wordpress

Este es el link a la pregunta stackoverflow que os comento.

http://stackoverflow.com/questions/4...stomize-via-js

La traduzco y la copio aquí:

Estoy desarrollando un nuevo Theme de Wordpress y quiero que el administrador pueda cambiar los colores de algunos elementos individualmente y globalmente. Me refiero a que el administrador puede cambiar el color de un elemento en particular o cambiarlos a todos en base a un 'Perfil de color' definido por mi.

He definido todos los settings y controls así:

Código:
function color_customize_register( $wp_customize )
 {
     $wp_customize->add_section( 'theme_color_controls' , array(
         'title'    => __( 'Colors controls', 'starter' ),
         'priority' => 30
     ) );


     $wp_customize->add_setting( 'top_navbar_background_color' , array(
         'default'   => '#000000',
         'transport' => 'postMessage',
     ) );

     $wp_customize->add_setting( 'footer_background_color' , array(
         'default'   => '#000000',
         'transport' => 'refresh',
     ) );


     $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'navbar_color', array(
         'label'    => __( 'Navbar Color', 'starter' ),
         'description' => 'Define top navbar background color.',
         'section'  => 'theme_color_controls',
         'settings' => 'top_navbar_background_color',
     ) ) );

     $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'footer_color', array(
         'label'    => __( 'Footer Color', 'starter' ),
         'description' => 'Define footer background color.',
         'section'  => 'theme_color_controls',
         'settings' => 'footer_background_color',
     ) ) );

     $wp_customize->add_setting(
         'menu_type',
         array(
             'transport' => 'postMessage',
             'default' => 'choice1',
         )
     );

     $wp_customize->add_control(
         'menu_type',
         array(
             'type' => 'select',
             'label' => 'Select your menu type:',
             'section' => 'theme_color_controls',
             'description' => 'Load a color profile.',
             'choices' => array(
                 'choice1' => 'Choice 1',
                 'choice2' => 'Choice 2',
                 'choice3' => 'Choice 3',
                 'choice4' => 'Choice 4',
             ),
         )
     );

 }
 add_action( 'customize_register', 'color_customize_register');

También he puesto en cola el script javascript por el cual al seleccionar el 'select' del 'perfil de color' cambiaría los colores individuales de los elementos:

Código:
( function( $ ) {


  wp.customize( 'menu_type', function( value ) {
    value.bind( function( newval ) {
          DO SOMETHING. 
    } );
  } );

En la parte de 'DO SOMETHINGS' en el archivo JS no soy capaz de asignar un valor a los demás settings. He intentado poner un 'alert' para comprobar si todo va bien hasta entonces y funciona bien, pero desafortunadamente no encontré información acerca de asignar un valor a un setting desde JS.

¿Es posible hacer eso? ¿Cómo se haría?

Gracias por leer.