Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

117
Wykorzystanie możliwości ekranu personalizacji motywu Tomasz Dziuda WordUp Kraków Jesień@2014

description

Moja prelekcja o ekranie personalizacji motywu w ulepszonej wersji przygotowana na WordUp Kraków

Transcript of Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Page 1: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Wykorzystanie możliwości ekranu personalizacji motywu

Tomasz Dziuda

WordUp Kraków Jesień@2014

Page 2: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 3: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 4: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Dlaczego warto z niego korzystać?

Page 5: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Podgląd zmian strony “na żywo”

Page 6: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Łatwa implementacja opcji motywu

Page 7: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Możliwość łatwego przetestowania opcji motywu bez wpływu na wygląd strony

Page 8: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Użytkownik nie musi uczyć się od podstaw sposobu konfiguracji motywu

Page 9: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Zarządzanie widżetami

Page 10: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 11: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 12: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 13: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Panel widżetów pojawi się tylko gdy wyświetlana strona zawiera panele boczne

Page 14: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Ważne pojęcia

Page 15: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Menadżer Personalizacji

Page 16: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Menadżer Personalizacji

Panel

Page 17: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Menadżer Personalizacji

Panel

Sekcja

Page 18: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Menadżer Personalizacji

Panel

Sekcja

Kontrolka

Page 19: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Menadżer Personalizacji

Panel

Sekcja

Kontrolka

Ustawienie

Page 20: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Menadżer Personalizacji

Panel

Sekcja

Kontrolka

Kontekst Ustawienie

Page 21: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Menadżer Personalizacji

Page 22: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Znany szerzej jako $wp_customize

Page 23: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Znany szerzej jako $wp_customize

• Pozwala zarządzać elementami ekranu personalizacji

Page 24: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Znany szerzej jako $wp_customize

• Pozwala zarządzać elementami ekranu personalizacji

• Tworzy automatycznie domyślne sekcje ekranu personalizacji: colors, title_tagline, header_image, background_image, nav, static_front_page

Page 25: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Znany szerzej jako $wp_customize

• Pozwala zarządzać elementami ekranu personalizacji

• Tworzy automatycznie domyślne sekcje ekranu personalizacji: colors, title_tagline, header_image, background_image, nav, static_front_page (o ile są one wspierane przez motyw).

Page 26: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Dodawanie elementów

Page 27: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customizer->add_X( !

!

!

!

!

!

);

Page 28: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customizer->add_X( ‘name’, !

!

!

!

!

);

Page 29: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customizer->add_X( ‘name’, array( ‘setting_1’ => ‘value’, ‘setting_2’ => ‘value’, … ‘setting_N’ => ‘value’ ));

Page 30: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customizer->get_X(‘name’)!

!

!

!

Page 31: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customizer->get_X(‘name’)!

$wp_customizer->remove_X(‘name’)!

!

Page 32: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customizer->get_X(‘name’)!

$wp_customizer->remove_X(‘name’)!

!

X = setting, panel, section, control

Page 33: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Ustawienie

Page 34: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( !!!!!!);

Page 35: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( ‘mytheme_bgcolor’, !!!!!);

Page 36: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( ‘mytheme_bgcolor’, array( ‘default’ => ‘#fff’, !! ));

Page 37: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( ‘mytheme_bgcolor’, array( ‘default’ => ‘#fff’, ‘sanitize_callback’ => ‘sanitize_hex_color’, ! ));

Page 38: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( ‘mytheme_bgcolor’, array( ‘default’ => ‘#fff’, ‘sanitize_callback’ => ‘sanitize_hex_color’, ‘type’ => ‘theme_mod’,! ));

Page 39: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( ‘mytheme_bgcolor’, array( ‘default’ => ‘#fff’, ‘sanitize_callback’ => ‘sanitize_hex_color’, ‘type’ => ‘theme_mod’, ‘transport’ => ‘refresh’ ));

Page 40: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Panele, Sekcje i Kontrolki

Page 41: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_panel( !!!!!);

Page 42: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_panel( ‘panel_name’, !!!!);

Page 43: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_panel( ‘panel_name’, array( ‘priority’ => 10, ‘title’ => ‘My Panel’, ‘description’ => ‘Simple panel description’ ));

Page 44: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 45: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_section( !

!

!

!

!

!

);

Page 46: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_section( 'section_name', !

!

!

!

!

);

Page 47: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_section( 'section_name', array( ‘priority' => 10, ‘title' => ‘My Section', ‘description' => ‘Section description', 'panel' => 'panel_name' ));

Page 48: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_section( 'section_name', array( ‘priority' => 10, ‘title' => ‘My Section', ‘description' => ‘Section description', 'panel' => 'panel_name' ));

Page 49: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 50: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( !

!

!

!

!

!

);

Page 51: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( 'setting_name', !

!

!

!

!

!

);

Page 52: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( 'setting_name', array( 'type' => 'text', ‘section' => ‘section_name', ‘priority' => 10, ‘label' => ‘Option label', 'description' => ‘Option description' ) );

Page 53: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( 'setting_name', array( 'type' => 'text', ‘section' => ‘section_name', ‘priority' => 10, ‘label' => ‘Option label', 'description' => ‘Option description' ) );

Page 54: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 55: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Modyfikacja istniejących elementów

Page 56: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->get_section(‘colors')->description = __( 'Background may only be visible on wide screens.’, ‘twentyfourteen');

Page 57: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->get_setting(‘blogname')->transport!

= 'postMessage';

Page 58: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->remove_control('blogname')

Page 59: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Kontekst

Page 60: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Kontekst określamy tylko dla kontrolek

Page 61: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Kontekst określamy tylko dla kontrolek

• Kontekst działa oddolnie na sekcje i panele

Page 62: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Kontekst określamy tylko dla kontrolek

• Kontekst działa oddolnie na sekcje i panele

• Sekcja bez kontrolek będzie niewidoczna tak samo jak panel bez sekcji

Page 63: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( 'setting_name', array( 'type' => 'text', ‘section' => ‘section_name', ‘priority' => 10, ‘label' => ‘Option label', 'description' => ‘Option description’,!

) );

Page 64: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( 'setting_name', array( 'type' => 'text', ‘section' => ‘section_name', ‘priority' => 10, ‘label' => ‘Option label', 'description' => ‘Option description’, 'active_callback' => 'is_front_page' ) );

Page 65: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Jak wykorzystać kontekst?

Page 66: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Ukrywanie nadmiaru opcji

Page 67: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Ukrywanie nadmiaru opcji

• Opcje dedykowane dla konkretnych podstron

Page 68: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• Ukrywanie nadmiaru opcji

• Opcje dedykowane dla konkretnych podstron

• Określanie zależności pomiędzy opcjami

Page 69: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

function mytheme_show_font_field($control) { ! }

Page 70: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

function mytheme_show_font_field($control) { $option = $control->manager->get_setting(‘mytheme_font');! }

Page 71: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

function mytheme_show_font_field($control) { $option = $control->manager->get_setting(‘mytheme_font');! return $option->value() == 'google';}

Page 72: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Ważne akcje

Page 73: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• customize_register - wykorzystywana do konfiguracji opcji ekranu personalizacji

Page 74: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• customize_register - wykorzystywana do konfiguracji opcji ekranu personalizacji

• wp_head - używana do wyświetlania kodu modyfikującego stronę na bazie opcji motywu

Page 75: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• customize_register - wykorzystywana do konfiguracji opcji ekranu personalizacji

• wp_head - używana do wyświetlania kodu modyfikującego stronę na bazie opcji motywu

• customize_preview_init - może być wykorzystana do wyświetlania kodu potrzebnego jedynie w ekranie personalizacji

Page 76: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

• customize_register - wykorzystywana do konfiguracji opcji ekranu personalizacji

• wp_head - używana do wyświetlania kodu modyfikującego stronę na bazie opcji motywu

• customize_preview_init - może być wykorzystana do wyświetlania kodu potrzebnego jedynie w ekranie personalizacji

• customize_controls_enqueue_scripts - pozwala dodać skrypty i style dla ekranu personalizacji

Page 77: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Rodzaje kontrolek

Page 78: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

text

radio

checkbox

textarea

select

dropdown-pages

Page 79: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

WP_Customize_Color_ControlWP_Customize_Image_Control

Page 80: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

A gdy potrzebujemy więcej kontrolek?

Page 81: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( ‘mytheme_layout_width’, array( 'type' => 'range', 'section' => 'layout', 'label' => ‘Layout width', 'input_attrs' => array( 'min' => 720, 'max' => 1280, 'step' => 1, 'class' => ‘layout-width-control‘ ) ) );

Page 82: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( ‘mytheme_layout_width’, array( 'type' => 'range', 'section' => 'layout', 'label' => ‘Layout width', 'input_attrs' => array( 'min' => 720, 'max' => 1280, 'step' => 1, 'class' => ‘layout-width-control‘ ) ) );

Page 83: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( ‘mytheme_layout_width’, array( 'type' => 'range', 'section' => 'layout', 'label' => ‘Layout width', 'input_attrs' => array( 'min' => 720, 'max' => 1280, 'step' => 1, 'class' => ‘layout-width-control‘ ) ) );

Page 84: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 85: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 86: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 87: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 88: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Choć jest mały problem…

Page 89: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 90: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Własne kontrolki

Page 91: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

class My_Customize_Textarea_Control extends WP_Customize_Control { !!!!!!!!!!!!!!!!!!!}

Page 92: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

class My_Customize_Textarea_Control extends WP_Customize_Control { public $type = 'textarea'; !!!!!!!!!!!!!!!!!!}

Page 93: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

class My_Customize_Textarea_Control extends WP_Customize_Control { public $type = 'textarea'; public function render_content() { ?> !!!!!!!!!!!!!! <?php }}

Page 94: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

class My_Customize_Textarea_Control extends WP_Customize_Control { public $type = 'textarea'; public function render_content() { ?> <label> <?php if(!empty($this->label)) : ?> <span class=“customize-control-title"> <?php echo esc_html( $this->label ); ?> </span> <?php endif; ?> !!!!!!! </label> <?php }}

Page 95: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

class My_Customize_Textarea_Control extends WP_Customize_Control { public $type = 'textarea'; public function render_content() { ?> <label> <?php if(!empty($this->label)) : ?> <span class=“customize-control-title"> <?php echo esc_html( $this->label ); ?> </span> <?php endif; ?> <?php if(!empty($this->description)) : ?> <span class="description customize-control-description”> <?php echo $this->description ; ?> </span> <?php endif; ?> !! </label> <?php }}

Page 96: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

class My_Customize_Textarea_Control extends WP_Customize_Control { public $type = 'textarea'; public function render_content() { ?> <label> <?php if(!empty($this->label)) : ?> <span class=“customize-control-title"> <?php echo esc_html( $this->label ); ?> </span> <?php endif; ?> <?php if(!empty($this->description)) : ?> <span class="description customize-control-description”> <?php echo $this->description ; ?> </span> <?php endif; ?> <textarea rows=“5" cols=“20” <?php $this->link(); ?>> <?php echo esc_textarea($this->value()); ?> </textarea> </label> <?php }}

Page 97: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

class My_Customize_Textarea_Control extends WP_Customize_Control { public $type = 'textarea'; public function render_content() { ?> <label> <?php if(!empty($this->label)) : ?> <span class=“customize-control-title"> <?php echo esc_html( $this->label ); ?> </span> <?php endif; ?> <?php if(!empty($this->description)) : ?> <span class="description customize-control-description”> <?php echo $this->description ; ?> </span> <?php endif; ?> <textarea rows=“5" cols=“20” <?php $this->link(); ?>> <?php echo esc_textarea($this->value()); ?> </textarea> </label> <?php }}

Page 98: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( !!!!!!!!!);

Page 99: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( new My_Customize_Textarea_Control( !!!!!!! ));

Page 100: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( new My_Customize_Textarea_Control( $wp_customize, ‘theme_copyright_text’, !!!!! ));

Page 101: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_control( new My_Customize_Textarea_Control( $wp_customize, ‘theme_copyright_text’, array( 'label' => __(‘Copyright text', 'theme'), 'section' => 'features', 'settings' => ‘theme_copyright_text’, 'priority' => 2 ) ));

Page 102: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Podgląd zmian na żywo

Page 103: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków
Page 104: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( 'portfolio_primary_color', array( 'default' => '#5cc1a9', 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color' ));

Page 105: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

$wp_customize->add_setting( 'portfolio_primary_color', array( 'default' => '#5cc1a9', 'capability' => 'edit_theme_options', 'transport' => 'postMessage', 'sanitize_callback' => 'sanitize_hex_color' ));

Page 106: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

(function($){ !!!!!!!})(jQuery);

Page 107: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

(function($){ wp.customize( 'portfolio_primary_color', function(value) { !! } );})(jQuery);

Page 108: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

(function($){ wp.customize( 'portfolio_primary_color', function(value) { value.bind(function(to) { }); } );})(jQuery);

Page 109: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

(function($){ wp.customize( 'portfolio_primary_color', function(value) { value.bind(function(to) { jQuery('a').css('color', to || '#5cc1a9'); }); } );})(jQuery);

Page 110: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Porada optymalizacyjna

Page 111: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

wp.customize( 'portfolio_primary_color', function(value) { value.bind( function( to ) { !!!!!!!! } );});

Page 112: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

wp.customize( 'portfolio_primary_color', function(value) { value.bind( function( to ) { to = to || '#5cc1a9'; !!!!! } );});

Page 113: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

wp.customize( 'portfolio_primary_color', function(value) { value.bind( function( to ) { to = to || '#5cc1a9'; var new_css = 'a { color: ' + to + '; }'; !!!!! } );});

Page 114: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

wp.customize( 'portfolio_primary_color', function(value) { value.bind( function( to ) { to = to || '#5cc1a9'; var new_css = 'a { color: ' + to + '; }'; if($('#new-css').length) { $('#new-css').remove(); } ! } );});

Page 115: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

wp.customize( 'portfolio_primary_color', function(value) { value.bind( function( to ) { to = to || '#5cc1a9'; var new_css = 'a { color: ' + to + '; }'; if($('#new-css').length) { $('#new-css').remove(); } $(document).find('head') .append($('<style id="new-css">' + new_css + '</style>')); } );});

Page 116: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Kontakt

Lead Developer @ GavickPro

@dziudek

http://dziudek.pl

[email protected]

Page 117: Wykorzystanie możliwości ekranu personalizacji motywu - WordUp Kraków

Pytania ?