SlideShare une entreprise Scribd logo
1  sur  123
Télécharger pour lire hors ligne
Wykorzystanie możliwości 
ekranu personalizacji motywu 
Tomasz Dziuda 
WordCamp Polska @ Warszawa 2014
Tomasz Dziuda 
Lead Developer @ 
@dziudek 
http://dziudek.pl 
dziudek@gavick.com
Dlaczego warto z niego 
korzystać?
Podgląd zmian strony “na żywo”
Łatwa implementacja opcji motywu
Możliwość łatwego przetestowania opcji motywu 
bez wpływu na wygląd strony
Użytkownik nie musi uczyć się od podstaw 
sposobu konfiguracji motywu
Zarządzanie widżetami
Panel widżetów pojawi się 
tylko gdy wyświetlana strona 
zawiera panele boczne
4 porady życiowe 
dla Was ode mnie
Przyrost liczby opcji powoduje wykładniczy 
wzrost szans na pytania od klienta 
1 
0 
Liczba opcji
Oddanie pełnej kontroli użytkownikowi nad 
kolorami, prawie zawsze kończy się tragicznie
Kokpit przyjmie wszystko, użytkownik 
niekoniecznie
Rozwiązania zaimplementowane w oficjalnym 
API działają lepiej
Ważne pojęcia
Menadżer Personalizacji
Menadżer Personalizacji 
Panel
Menadżer Personalizacji 
Panel 
Sekcja
Menadżer Personalizacji 
Panel 
Sekcja 
Kontrolka
Menadżer Personalizacji 
Panel 
Sekcja 
Kontrolka 
Ustawienie
Menadżer Personalizacji 
Panel 
Sekcja 
Kontrolka 
Kontekst Ustawienie
Menadżer Personalizacji
• Znany szerzej jako $wp_customize
• Znany szerzej jako $wp_customize 
• Pozwala zarządzać elementami ekranu personalizacji
• 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
• 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).
Dodawanie elementów
$wp_customizer->add_X( 
! 
! 
! 
! 
! 
! 
);
$wp_customizer->add_X( 
! 
! 
! 
! 
! 
! 
); 
X = setting, panel, section, control
$wp_customizer->add_X( 
‘name’, 
! 
! 
! 
! 
! 
); 
X = setting, panel, section, control
$wp_customizer->add_X( 
‘name’, 
array( 
‘setting_1’ => ‘value’, 
‘setting_2’ => ‘value’, 
… 
‘setting_N’ => ‘value’ 
) 
); 
X = setting, panel, section, control
$wp_customizer->get_X(‘name’) 
!
$wp_customizer->get_X(‘name’) 
! 
$wp_customizer->remove_X(‘name’)
Ustawienie
$wp_customize->add_setting( 
! 
! 
! 
! 
! 
! 
);
$wp_customize->add_setting( 
‘mytheme_bgcolor’, 
! 
! 
! 
! 
! 
);
$wp_customize->add_setting( 
‘mytheme_bgcolor’, 
array( 
‘default’ => ‘#fff’, 
! 
! 
) 
);
$wp_customize->add_setting( 
‘mytheme_bgcolor’, 
array( 
‘default’ => ‘#fff’, 
‘sanitize_callback’ => ‘sanitize_hex_color’, 
! 
) 
);
$wp_customize->add_setting( 
‘mytheme_bgcolor’, 
array( 
‘default’ => ‘#fff’, 
‘sanitize_callback’ => ‘sanitize_hex_color’, 
‘type’ => ‘theme_mod’, 
! 
) 
);
$wp_customize->add_setting( 
‘mytheme_bgcolor’, 
array( 
‘default’ => ‘#fff’, 
‘sanitize_callback’ => ‘sanitize_hex_color’, 
‘type’ => ‘theme_mod’, 
‘transport’ => ‘refresh’ 
) 
);
Sekcja sekcji panelem
$wp_customize->add_panel( 
! 
! 
! 
! 
! 
);
$wp_customize->add_panel( 
‘panel_name’, 
! 
! 
! 
! 
);
$wp_customize->add_panel( 
‘panel_name’, 
array( 
‘priority’ => 10, 
‘title’ => ‘My Panel’, 
‘description’ => ‘Simple panel description’ 
) 
);
$wp_customize->add_section( 
! 
! 
! 
! 
! 
! 
);
$wp_customize->add_section( 
'section_name', 
! 
! 
! 
! 
! 
);
$wp_customize->add_section( 
'section_name', 
array( 
‘priority' => 10, 
‘title' => ‘My Section', 
‘description' => ‘Section description', 
'panel' => 'panel_name' 
) 
);
$wp_customize->add_section( 
'section_name', 
array( 
‘priority' => 10, 
‘title' => ‘My Section', 
‘description' => ‘Section description', 
'panel' => 'panel_name' 
) 
);
$wp_customize->add_control( 
! 
! 
! 
! 
! 
! 
);
$wp_customize->add_control( 
'setting_name', 
! 
! 
! 
! 
! 
! 
);
$wp_customize->add_control( 
'setting_name', 
array( 
'type' => 'text', 
‘section' => ‘section_name', 
‘priority' => 10, 
‘label' => ‘Option label', 
'description' => ‘Option description' 
) 
);
$wp_customize->add_control( 
'setting_name', 
array( 
'type' => 'text', 
‘section' => ‘section_name', 
‘priority' => 10, 
‘label' => ‘Option label', 
'description' => ‘Option description' 
) 
);
Modyfikacja istniejących 
elementów
$wp_customize->get_section(‘colors')->description = 
__( 
'Background may only be visible on wide screens.’, 
‘twentyfourteen' 
);
$wp_customize->get_setting(‘blogname')->transport 
! 
= 'postMessage';
$wp_customize->remove_control('blogname')
Kontrolka kontrolce 
kontrolką - czyli 
Kontekst
• Kontekst określamy tylko dla kontrolek
• Kontekst określamy tylko dla kontrolek 
• Kontekst działa oddolnie na sekcje i panele
• 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
$wp_customize->add_control( 
'setting_name', 
array( 
'type' => 'text', 
‘section' => ‘section_name', 
‘priority' => 10, 
‘label' => ‘Option label', 
'description' => ‘Option description’, 
! 
) 
);
$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' 
) 
);
Jak wykorzystać 
kontekst?
• Ukrywanie nadmiaru opcji
• Ukrywanie nadmiaru opcji 
• Opcje dedykowane dla konkretnych 
podstron
• Ukrywanie nadmiaru opcji 
• Opcje dedykowane dla konkretnych 
podstron 
• Określanie zależności pomiędzy opcjami
function mytheme_show_font_field($control) { 
! 
}
function mytheme_show_font_field($control) { 
$option = $control->manager->get_setting(‘mytheme_font'); 
! 
}
function mytheme_show_font_field($control) { 
$option = $control->manager->get_setting(‘mytheme_font'); 
! 
return $option->value() == 'google'; 
}
Ważne akcje
• customize_register - wykorzystywana do 
konfiguracji opcji ekranu personalizacji
• customize_register - wykorzystywana do 
konfiguracji opcji ekranu personalizacji 
• wp_head - używana do wyświetlania kodu 
modyfikującego stronę na bazie opcji motywu
• 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_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
Rodzaje kontrolek
text 
radio 
checkbox 
textarea 
select 
dropdown-pages
WP_Customize_Image_Control WP_Customize_Color_Control
A gdy potrzebujemy 
więcej kontrolek?
$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‘ 
) 
) 
);
$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‘ 
) 
) 
);
$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‘ 
) 
) 
);
Choć jest mały 
problem…
źródło: http://caniuse.com/#search=date
Własne kontrolki
class My_Customize_Textarea_Control extends WP_Customize_Control { 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
}
class My_Customize_Textarea_Control extends WP_Customize_Control { 
public $type = 'textarea'; 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
}
class My_Customize_Textarea_Control extends WP_Customize_Control { 
public $type = 'textarea'; 
public function render_content() { 
?> 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
! 
<?php 
} 
}
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 
} 
}
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 
} 
}
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 
} 
}
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 
} 
}
$wp_customize->add_control( 
! 
! 
! 
! 
! 
! 
! 
! 
! 
);
$wp_customize->add_control( 
new My_Customize_Textarea_Control( 
! 
! 
! 
! 
! 
! 
! 
) 
);
$wp_customize->add_control( 
new My_Customize_Textarea_Control( 
$wp_customize, 
‘theme_copyright_text’, 
! 
! 
! 
! 
! 
) 
);
$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 
) 
) 
);
Podgląd zmian na żywo
$wp_customize->add_setting( 
'portfolio_primary_color', 
array( 
'default' => '#5cc1a9', 
'capability' => 'edit_theme_options', 
'transport' => 'postMessage', 
'sanitize_callback' => 'sanitize_hex_color' 
) 
);
$wp_customize->add_setting( 
'portfolio_primary_color', 
array( 
'default' => '#5cc1a9', 
'capability' => 'edit_theme_options', 
'transport' => 'postMessage', 
'sanitize_callback' => 'sanitize_hex_color' 
) 
);
(function($){ 
! 
! 
! 
! 
! 
! 
! 
})(jQuery);
(function($){ 
wp.customize( 
'portfolio_primary_color', 
function(value) { 
! 
! 
} 
); 
})(jQuery);
(function($){ 
wp.customize( 
'portfolio_primary_color', 
function(value) { 
value.bind(function(to) { 
}); 
} 
); 
})(jQuery);
(function($){ 
wp.customize( 
'portfolio_primary_color', 
function(value) { 
value.bind(function(to) { 
jQuery('a').css('color', to || '#5cc1a9'); 
}); 
} 
); 
})(jQuery);
Porada optymalizacyjna
wp.customize( 
'portfolio_primary_color', 
function(value) { 
value.bind( function( to ) { 
! 
! 
! 
! 
! 
! 
! 
! 
} 
); 
});
wp.customize( 
'portfolio_primary_color', 
function(value) { 
value.bind( function( to ) { 
to = to || '#5cc1a9'; 
! 
! 
! 
! 
! 
} 
); 
});
wp.customize( 
'portfolio_primary_color', 
function(value) { 
value.bind( function( to ) { 
to = to || '#5cc1a9'; 
var new_css = 'a { color: ' + to + '; }'; 
! 
! 
! 
! 
! 
} 
); 
});
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(); 
} 
! 
} 
); 
});
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>')); 
} 
); 
});
Pytania ?
Prezentacja ta dostępna jest na licencji GPL: 
! 
http://www.gnu.org/copyleft/gpl.html

Contenu connexe

En vedette

WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1Mariusz Szatkowski
 
Advanced Custom Fields - gdy standardowe wpisy to za mało
Advanced Custom Fields - gdy standardowe wpisy to za małoAdvanced Custom Fields - gdy standardowe wpisy to za mało
Advanced Custom Fields - gdy standardowe wpisy to za małoBartosz Romanowski
 
Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Tomasz Dziuda
 
Gdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyGdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyArkadiusz Stęplowski
 
WordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świataWordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świataArkadiusz Stęplowski
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayTomasz Dziuda
 
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego blogaUnikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego blogaBartosz Romanowski
 
Jak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp Łódź
Jak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp ŁódźJak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp Łódź
Jak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp ŁódźEwelina Muc
 
Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Tomasz Dziuda
 

En vedette (11)

WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
WordPress 2015 - Wróżby, kabały, przepowiednie - WordUp Trójmiasto #1
 
Advanced Custom Fields - gdy standardowe wpisy to za mało
Advanced Custom Fields - gdy standardowe wpisy to za małoAdvanced Custom Fields - gdy standardowe wpisy to za mało
Advanced Custom Fields - gdy standardowe wpisy to za mało
 
Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0
 
Gdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressyGdzie są umiejscowione polskie wordpressy
Gdzie są umiejscowione polskie wordpressy
 
WordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świataWordCamp 2016 Najdłuższe wdrożenie świata
WordCamp 2016 Najdłuższe wdrożenie świata
 
Jak wkurzyć użytkownika
Jak wkurzyć użytkownikaJak wkurzyć użytkownika
Jak wkurzyć użytkownika
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego blogaUnikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
Unikaj falstartów - o czym warto pamiętać przed uruchomieniem nowego bloga
 
Jak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp Łódź
Jak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp ŁódźJak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp Łódź
Jak zbudować szablon WordPress od podstaw na Bootstrap 3 - WordUp Łódź
 
Jak zarabiać na WordPressie
Jak zarabiać na WordPressieJak zarabiać na WordPressie
Jak zarabiać na WordPressie
 
Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Dokąd zmierza WordPress?
Dokąd zmierza WordPress?
 

Similaire à Wykorzystanie możliwości ekranu personalizacji motywu - WordCamp Polska

WordPress 4.0 - co nowego dla programistów?
WordPress 4.0 - co nowego dla programistów?WordPress 4.0 - co nowego dla programistów?
WordPress 4.0 - co nowego dla programistów?Tomasz Dziuda
 
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceMotywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceTomasz Dziuda
 
Poznaj wp-config.php "Ukryte" możliwości.
Poznaj wp-config.php  "Ukryte" możliwości.Poznaj wp-config.php  "Ukryte" możliwości.
Poznaj wp-config.php "Ukryte" możliwości.Marcin Jóźwiak
 
Thymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarka
Thymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarkaThymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarka
Thymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarkaMaciej Ziarko
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomTomasz Dziuda
 
CSS Workflow, czyli jak pracować z CSS-em?
CSS Workflow, czyli jak pracować z CSS-em?CSS Workflow, czyli jak pracować z CSS-em?
CSS Workflow, czyli jak pracować z CSS-em?WordCamp Polska
 

Similaire à Wykorzystanie możliwości ekranu personalizacji motywu - WordCamp Polska (6)

WordPress 4.0 - co nowego dla programistów?
WordPress 4.0 - co nowego dla programistów?WordPress 4.0 - co nowego dla programistów?
WordPress 4.0 - co nowego dla programistów?
 
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceMotywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
 
Poznaj wp-config.php "Ukryte" możliwości.
Poznaj wp-config.php  "Ukryte" możliwości.Poznaj wp-config.php  "Ukryte" możliwości.
Poznaj wp-config.php "Ukryte" możliwości.
 
Thymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarka
Thymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarkaThymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarka
Thymeleaf - szablony, które bez przetworzenia zrozumie twoja przeglądarka
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
 
CSS Workflow, czyli jak pracować z CSS-em?
CSS Workflow, czyli jak pracować z CSS-em?CSS Workflow, czyli jak pracować z CSS-em?
CSS Workflow, czyli jak pracować z CSS-em?
 

Plus de Tomasz Dziuda

Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaTomasz Dziuda
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Tomasz Dziuda
 
Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinTomasz Dziuda
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendiumTomasz Dziuda
 
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówJak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówTomasz Dziuda
 
Jak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaJak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaTomasz Dziuda
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoTomasz Dziuda
 
REST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp WarszawaREST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp WarszawaTomasz Dziuda
 
Contributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywówContributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywówTomasz Dziuda
 
Electron + WordPress = ❤
Electron + WordPress = ❤Electron + WordPress = ❤
Electron + WordPress = ❤Tomasz Dziuda
 
Jak nadążyć za światem front endu
Jak nadążyć za światem front enduJak nadążyć za światem front endu
Jak nadążyć za światem front enduTomasz Dziuda
 
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławTomasz Dziuda
 
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaMotywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaTomasz Dziuda
 
Motywy Wordpressa Historia Prawdziwa
Motywy Wordpressa Historia PrawdziwaMotywy Wordpressa Historia Prawdziwa
Motywy Wordpressa Historia PrawdziwaTomasz Dziuda
 
Webinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsWebinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsTomasz Dziuda
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Tomasz Dziuda
 
Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Tomasz Dziuda
 
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaTomasz Dziuda
 
WordUp Wrocław #3 2015
WordUp Wrocław #3 2015WordUp Wrocław #3 2015
WordUp Wrocław #3 2015Tomasz Dziuda
 

Plus de Tomasz Dziuda (20)

Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp Warszawa
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
 
Trello w praktyce
Trello w praktyceTrello w praktyce
Trello w praktyce
 
Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp Lublin
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendium
 
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówJak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
 
Jak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaJak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane koszta
 
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp TrójmiastoREST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
 
REST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp WarszawaREST API - teoria i praktyka - WordUp Warszawa
REST API - teoria i praktyka - WordUp Warszawa
 
Contributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywówContributor Day - WordCamp Lublin 2017 - przegląd motywów
Contributor Day - WordCamp Lublin 2017 - przegląd motywów
 
Electron + WordPress = ❤
Electron + WordPress = ❤Electron + WordPress = ❤
Electron + WordPress = ❤
 
Jak nadążyć za światem front endu
Jak nadążyć za światem front enduJak nadążyć za światem front endu
Jak nadążyć za światem front endu
 
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET Wrocław
 
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp WarszawaMotywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
 
Motywy Wordpressa Historia Prawdziwa
Motywy Wordpressa Historia PrawdziwaMotywy Wordpressa Historia Prawdziwa
Motywy Wordpressa Historia Prawdziwa
 
Webinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsWebinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administrators
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
 
Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?
 
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
 
WordUp Wrocław #3 2015
WordUp Wrocław #3 2015WordUp Wrocław #3 2015
WordUp Wrocław #3 2015
 

Wykorzystanie możliwości ekranu personalizacji motywu - WordCamp Polska