WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

108
Jak tworzyć motywy przyjazne użytkownikom i programistom? Tomasz Dziuda WordUp Gdynia 14.11.2015

Transcript of WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Page 1: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Jak tworzyć motywy przyjazne użytkownikom

i programistom?

Tomasz Dziuda

WordUp Gdynia 14.11.2015

Page 2: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Jak bardzo złożony jest proces tworzenia motywu?

Page 3: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Ćwiczenie

Page 4: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Ćwiczenie

1. Zapoznaj się z wytycznymi oficjalnego repozytoriumhttps://make.wordpress.org/themes/handbook/review/

2. Zrób przegląd motywu kandydującego do repozytoriumhttps://make.wordpress.org/themes/handbook/get-involved/become-a-reviewer/

Page 5: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Ćwiczenie

1. Zapoznaj się z wytycznymi oficjalnego repozytoriumhttps://make.wordpress.org/themes/handbook/review/

2. Zrób przegląd motywu kandydującego do repozytoriumhttps://make.wordpress.org/themes/handbook/get-involved/become-a-reviewer/

Page 6: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 7: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 8: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Warto zapamiętać

Page 9: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Warto zapamiętać

• Stworzenie pierwszego motywu dla szerokiego grona użytkowników nie jest wcale takie proste

• Swoją przygodę z motywami warto zacząć od stworzenia motywu potomnego...

• ... lub skorzystać z rozwiązań takich jak _s

Page 10: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Warto zapamiętać

• Stworzenie pierwszego motywu dla szerokiego grona użytkowników nie jest wcale takie proste

• Swoją przygodę z motywami warto zacząć od stworzenia motywu potomnego...

• ... lub skorzystać z rozwiązań takich jak _s

Page 11: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Warto zapamiętać

• Stworzenie pierwszego motywu dla szerokiego grona użytkowników nie jest wcale takie proste

• Swoją przygodę z motywami warto zacząć od stworzenia motywu potomnego...

• ... lub skorzystać z rozwiązań takich jak _s

Page 12: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Warto zapamiętać

Page 13: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Warto zapamiętać

Warto zobaczyć jak robią to inni: https://wordpress.org/themes/search/child%20theme/

Page 14: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Warto zapamiętać

Warto zobaczyć jak robią to inni: https://wordpress.org/themes/search/child%20theme/

Doing it wrong theme:https://github.com/WPTRT/doingitwrong

Page 15: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Troska o użytkowników

Page 16: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Stopniowy rozwój motywu

Page 17: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 18: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

?

Page 19: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 20: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 21: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 22: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 23: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 24: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Ilustracja stworzona przez Majo statt Senf Źródło: https://pl.wikipedia.org/wiki/Plik:Kaizen-2.svg

Kaizen

How to use Kaizen thinking to design better

Page 25: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Źródło: https://wordpress.org/themes/gk-portfolio/

Page 26: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

“Mam wielu klientów, którzy nie są w stanie dostarczyć mi sensownej ilości treści na swoją stronę”

Powody zakupu motywu potrafią zaskoczyć

Page 27: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Kilka obserwacji dot. rynku motywów

Page 28: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Kilka obserwacji dot. rynku motywów

• Najładniejsze motywy wcale nie sprzedają się najlepiej

• Wsparcie dla popularnych rozszerzeń typu WooCommerce jest bardzo pożądane

• Niszowe tematy przewodnie mogą okazać się dużym niewypałem

Page 29: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Kilka obserwacji dot. rynku motywów

• Najładniejsze motywy wcale nie sprzedają się najlepiej

• Wsparcie dla popularnych rozszerzeń typu WooCommerce jest bardzo pożądane

• Niszowe tematy przewodnie mogą okazać się dużym niewypałem

Page 30: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Kilka obserwacji dot. rynku motywów

• Najładniejsze motywy wcale nie sprzedają się najlepiej

• Wsparcie dla popularnych rozszerzeń typu WooCommerce jest bardzo pożądane

• Niszowe tematy motywów mogą okazać się dużym niewypałem

Page 31: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

USE OF VISUAL COMPOSER

GAVE ME A CANCER

Page 32: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wykorzystanie ekranu personalizacji motywu

Page 33: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Zalety

Page 34: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Zalety

Podgląd zmian

+

Łatwiejsze testowane opcji

Page 35: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Zalety

Każdy motyw

posiada podobny UI

Page 36: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Zalety

Wymuszaprosty UI

Page 37: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wady

Page 38: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wady

Wymuszaprosty UI

Page 39: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wady

WordPress >= 4.6 ??https://make.wordpress.org/core/2015/09/23/

outlining-a-possible-roadmap-for-the-customizer/

Page 40: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wady

active_callback :(

Page 41: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Plik editor-style.css

Page 42: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Plik editor-style.cssfunction my_theme_add_editor_styles() { add_editor_style( 'custom-editor-style.css' ); }

add_action( 'admin_init', 'my_theme_add_editor_styles' );

Warto przejrzeć: https://codex.wordpress.org/Editor_Style

Page 43: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Łatwa migracja konfiguracji widocznej na demo

Page 44: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Posty, podstrony

Widżety

Ustawienia motywu

ThemeForestWordPress.org

Istniejąca instalacja WP

Page 45: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Dedykowany instalator WP

Posty, podstrony TAK

Widżety TAK

Ustawienia motywu TAK

ThemeForestWordPress.org NIE

Istniejąca instalacja WP NIE

Page 46: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Dedykowany instalator WP WXR

Posty, podstrony TAK TAK

Widżety TAK NIE

Ustawienia motywu TAK

NIEdomyślna konfiguracja

motywu rozwiązuje problem

ThemeForestWordPress.org NIE TAK

Istniejąca instalacja WP NIE TAK

Page 47: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Dedykowany instalator WP WXR Własne

rozwiązanie

Posty, podstrony TAK TAK TAK

Widżety TAK NIE TAK

Ustawienia motywu TAK

NIEdomyślna konfiguracja

motywu rozwiązuje problemTAK

ThemeForestWordPress.org NIE TAK TAK

Istniejąca instalacja WP NIE TAK TAK

Page 48: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Źródło: http://tgmpluginactivation.com/

Page 49: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Elastyczne rozwiązania

Page 50: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Slideshow pokazujący wpisy z danego tagu

Źródło: https://codex.wordpress.org/Twenty_Fourteen

Należy zadbać o to by można było zmienić nazwę tagu wybieranego do slideshow

Page 51: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Zaawansowane wykorzystanie hierarchii szablonów w WordPressie

Zobacz: http://wphierarchy.com

Page 52: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Zaawansowane wykorzystanie hierarchii szablonów w WordPressie

category-slug.php

author-5.php

single-photo.php

tag-featured.php

Page 53: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Zaawansowane wykorzystanie hierarchii szablonów w WordPressie

category-slug.php

author-5.php

single-photo.php

tag-featured.php

Page 54: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Dokumentacja

Page 55: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 56: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• Przygotuj się na to, że mało kto ją przeczyta ;)

• Klienci często WordPressa widzą drugi raz na oczy

• Stopniowy rozwój motywu wspomaga tworzenie dokumentacji

• Im mniej dodatkowych wtyczek tym lepiej dla Ciebie i Twojego użytkownika

Page 57: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• Przygotuj się na to, że mało kto ją przeczyta ;)

• Klienci często WordPressa widzą drugi raz na oczy

• Stopniowy rozwój motywu wspomaga tworzenie dokumentacji

• Im mniej dodatkowych wtyczek tym lepiej dla Ciebie i Twojego użytkownika

Page 58: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• Przygotuj się na to, że mało kto ją przeczyta ;)

• Klienci często WordPressa widzą drugi raz na oczy

• Stopniowy rozwój motywu wspomaga tworzenie dokumentacji

• Im mniej dodatkowych wtyczek tym lepiej dla Ciebie i Twojego użytkownika

Page 59: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• Przygotuj się na to, że mało kto ją przeczyta ;)

• Klienci często WordPressa widzą drugi raz na oczy

• Stopniowy rozwój motywu wspomaga tworzenie dokumentacji

• Im mniej dodatkowych wtyczek tym lepiej dla Ciebie i Twojego użytkownika

Page 60: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Testowanie

Page 61: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• https://wordpress.org/plugins/theme-check/

• https://wordpress.org/plugins/theme-mentor/

• https://wordpress.org/plugins/monster-widget/

• https://codex.wordpress.org/Theme_Unit_Test

Niezbędnik

Page 62: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Źródło: http://wptest.io/

Page 63: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Źródło: http://www.wpfill.me/

Page 64: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Źródło: http://www.browsersync.io/

Page 65: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Troska o programistów

Page 66: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wsparcie dla motywów potomnych

Page 67: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

!important EVERYTHING!!

Page 68: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Pamiętaj o function_exists w pliku functions.php

Plik functions.php jako jedyny jest ładowany zarówno z motywu potomnego (jako pierwszy)

i z motywu rodzica (jako drugi).

if( function_exists( 'slug_myfunc' ) ) : function slug_myfunc() { return 'Kto nie czyta slajdów ten używa Joomla!'; } endif;

Page 69: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

<span style=“padding: 20px!important;”>

Page 70: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
Page 71: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Porządek w plikach

Page 72: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

get_template_part

Page 73: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

get_template_part

W przeciwieństwie do require() dobrze współpracuje z motywami potomnymi

Page 74: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

get_template_part

get_template_part('loop', 'index');

Page 75: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

get_template_part

1. motyw-potomny/loop-index.php 2. motyw-rodzic/loop-index.php 3. motyw-potomny/loop.php 4. motyw-rodzic/loop.php

get_template_part('loop', 'index');

Page 76: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

get_template_partNagłówek wpisu

Treść wpisu

Informacje o wpisie

Ikony społecznościowe

Blok o autorze

Page 77: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

get_template_partNagłówek wpisu

Treść wpisu

Informacje o wpisie

Ikony społecznościowe

Blok o autorze

content-info.php content-header.php content-social.php content-author.php

Page 78: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Czytelny kod CSS

Page 79: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

BEM .block__element--modifier

Page 80: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

.header {}

.header__logo {}

.header__logo--beta {}

.header__menu {}

.header__menu--mobile {}

Page 81: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

.header {}

.header__logo {}

.header__logo--beta {}

.header__menu {}

.header__menu--mobile {}

Page 82: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

.header {}

.header__logo {}

.header__logo--beta {}

.header__menu {}

.header__menu--mobile {}

Page 83: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

1) normalize.css body html ...

2) html.css a h1 h2 h3 ul ol ...

3) elements.css .btn .link .field ...

4) components.css .header .content .footer ...

Page 84: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

1) normalize.css body html ...

2) html.css a h1 h2 h3 ul ol ...

3) elements.css .btn .link .field ...

4) components.css .header .content .footer ...

Page 85: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

1) normalize.css body html ...

2) html.css a h1 h2 h3 ul ol ...

3) elements.css .btn .link .field ...

4) components.css .header .content .footer ...

Page 86: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

1) normalize.css body html ...

2) html.css a h1 h2 h3 ul ol ...

3) elements.css .btn .link .field ...

4) components.css .header .content .footer ...

Page 87: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

BEM(+) Porządek w kodzie CSS(+) Wydajne selektory(+) Współpraca z LESS/SASS(+) Wymusza przemyślane tworzenie kodu CSS

(-) WordPress nie jest w pełni kompatybilny z BEM(-) Czasem wygodnie jest złamać reguły BEM(-) Może prowadzić do dużej liczby klas w elemencie

Page 88: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

BEM(+) Porządek w kodzie CSS(+) Wydajne selektory(+) Współpraca z LESS/SASS(+) Wymusza przemyślane tworzenie kodu CSS

(-) WordPress nie jest w pełni kompatybilny z BEM(-) Czasem wygodnie jest złamać reguły BEM(-) Może prowadzić do dużej liczby klas w elemencie

Page 89: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

LESS/SASS// Colors @primary_color: #a3a4a5; @secondary_color: #b4b7b9; @text_color: #777; // Visual @border_radius: 5px; // Spacing @basic_padding: 20px; @basic_margin: 10px;

Page 90: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

LESS/SASS.header {

&__logo { width: 150px; }

&__menu { width: 50%

} }

.content { //...

}

Page 91: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

LESS/SASS

Źródło: https://pl.wordpress.org/plugins/wp-less/

Page 92: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Korzystanie z dostępnych API

Page 93: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

A GDYBY TAK NAPISAĆ WŁASNĄ

WERSJĘ THEME MODS API?

Page 94: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

A GDYBY TAK NAPISAĆ WŁASNĄ

WERSJĘ THEME MODS API?

Page 95: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Źródło: https://codex.wordpress.org/Theme_Modification_API

Page 96: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Lista API dostępnych w WordPressie

https://codex.wordpress.org/WordPress_APIs

Page 97: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Myślenie o przyszłości

Page 98: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wtyczki vs. Motywy

Page 99: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wtyczki vs. Motywy

• Custom Post Type jako plugin

• Shortcodes jako plugin

• Złożone widżety jako plugin

Page 100: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wtyczki vs. Motywy

• Custom Post Type jako plugin

• Shortcodes jako plugin

• Złożone widżety jako plugin

Page 101: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Wtyczki vs. Motywy

• Custom Post Type jako plugin

• Shortcodes jako plugin

• Złożone widżety jako plugin

Page 102: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Brak URLi w opcjach motywu

Page 103: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• WordPress serializuje opcje motywu i treść widżetów

• Serializacja uniemożliwia łatwą zmianę wartości

• Rozwiązanie: http://dziudek.pl/motywy/przechowywanie-nazwy-domeny-w-ustawieniach-motywu

Page 104: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• WordPress serializuje opcje motywu i treść widżetów

• Serializacja uniemożliwia łatwą zmianę wartości

• Rozwiązanie: http://dziudek.pl/motywy/przechowywanie-nazwy-domeny-w-ustawieniach-motywu

Page 105: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

• WordPress serializuje opcje motywu i treść widżetów

• Serializacja uniemożliwia łatwą zmianę wartości

• Jedno z rozwiązań: http://dziudek.pl/motywy/przechowywanie-nazwy-domeny-w-ustawieniach-motywu

Page 106: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Moje prezentacje

http://www.slideshare.net/dziudek

TinyMCE Theme Customizer

Performance REST API ES2015

Page 107: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Lead Developer @

@dziudek

http://dziudek.pl

http://dziudek.github.io/wp-links

http://dziudek.github.io/dev-links

Tomasz Dziuda

Page 108: WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom

Pytania?