90
Jak tworzyć motywy przyjazne użytkownikom i programistom? Tomasz Dziuda WordUp Wrocław #4 16.10.2015

WordUp Wrocław #3 2015

Embed Size (px)

Citation preview

Page 1: WordUp Wrocław #3 2015

Jak tworzyć motywy przyjazne użytkownikom

i programistom?

Tomasz Dziuda

WordUp Wrocław #4 16.10.2015

Page 2: WordUp Wrocław #3 2015

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

Page 3: WordUp Wrocław #3 2015

Ćwiczenie

Page 4: WordUp Wrocław #3 2015

Ćwiczenie

1. Zapoznaj się z wytycznymi oficjalnego repozytorium

2. Zrób przegląd motywu kandydującego do repozytorium

Page 5: WordUp Wrocław #3 2015

Ćwiczenie

1. Zapoznaj się z wytycznymi oficjalnego repozytorium

2. Zrób przegląd motywu kandydującego do repozytorium

Page 6: WordUp Wrocław #3 2015
Page 7: WordUp Wrocław #3 2015
Page 8: WordUp Wrocław #3 2015

Warto zapamiętać

Page 9: WordUp Wrocław #3 2015

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 Wrocław #3 2015

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 Wrocław #3 2015

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 Wrocław #3 2015

Troska o użytkowników

Page 13: WordUp Wrocław #3 2015

Stopniowy rozwój motywu

Page 14: WordUp Wrocław #3 2015

• Lista testów każdego elementu strony stale się wydłuża (różne przeglądarki, responsywność, dostępność)

• Bardziej złożone motywy mają więcej kombinacji i zależności pomiędzy poszczególnymi komponentami

• Nie wiadomo czy motyw się przyjmie na rynku

• Twój motyw nie musi być od razu doskonały

Page 15: WordUp Wrocław #3 2015

• Lista testów każdego elementu strony stale się wydłuża (różne przeglądarki, responsywność, dostępność)

• Bardziej złożone motywy mają więcej kombinacji i zależności pomiędzy poszczególnymi komponentami

• Nie wiadomo czy motyw się przyjmie na rynku

• Twój motyw nie musi być od razu doskonały

Page 16: WordUp Wrocław #3 2015

• Lista testów każdego elementu strony stale się wydłuża (różne przeglądarki, responsywność, dostępność)

• Bardziej złożone motywy mają więcej kombinacji i zależności pomiędzy poszczególnymi komponentami

• Nie wiadomo czy motyw się przyjmie na rynku

• Twój motyw nie musi być od razu doskonały

Page 17: WordUp Wrocław #3 2015

• Lista testów każdego elementu strony stale się wydłuża (różne przeglądarki, responsywność, dostępność)

• Bardziej złożone motywy mają więcej kombinacji i zależności pomiędzy poszczególnymi komponentami

• Nie wiadomo czy motyw się przyjmie na rynku

• Twój motyw nie musi być od razu doskonały

Page 18: WordUp Wrocław #3 2015

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

Page 19: WordUp Wrocław #3 2015

“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 20: WordUp Wrocław #3 2015

Kilka obserwacji dot. rynku motywów

Page 21: WordUp Wrocław #3 2015

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 22: WordUp Wrocław #3 2015

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 23: WordUp Wrocław #3 2015

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 24: WordUp Wrocław #3 2015

USE OF VISUAL COMPOSER

GAVE ME A CANCER

Page 25: WordUp Wrocław #3 2015

Wykorzystanie ekranu personalizacji motywu

Page 26: WordUp Wrocław #3 2015

Zalety

Page 27: WordUp Wrocław #3 2015

Zalety

Podgląd zmian

+

Łatwiejsze testowane opcji

Page 28: WordUp Wrocław #3 2015

Zalety

Każdy motyw

posiada podobny UI

Page 29: WordUp Wrocław #3 2015

Zalety

Wymuszaprosty UI

Page 30: WordUp Wrocław #3 2015

Wady

Page 31: WordUp Wrocław #3 2015

Wady

Wymuszaprosty UI

Page 32: WordUp Wrocław #3 2015

Wady

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

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

Page 33: WordUp Wrocław #3 2015

Wady

active_callback :(

Page 34: WordUp Wrocław #3 2015

Plik editor-style.css

Page 35: WordUp Wrocław #3 2015

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 36: WordUp Wrocław #3 2015

Łatwa migracja konfiguracji widocznej na demo

Page 37: WordUp Wrocław #3 2015

Posty, podstrony

Widżety

Ustawienia motywu

ThemeForestWordPress.org

Istniejąca instalacja WP

Page 38: WordUp Wrocław #3 2015

Dedykowany instalator WP

Posty, podstrony TAK

Widżety TAK

Ustawienia motywu TAK

ThemeForestWordPress.org NIE

Istniejąca instalacja WP NIE

Page 39: WordUp Wrocław #3 2015

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 40: WordUp Wrocław #3 2015

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 41: WordUp Wrocław #3 2015

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

Page 42: WordUp Wrocław #3 2015

Elastyczne rozwiązania

Page 43: WordUp Wrocław #3 2015

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 44: WordUp Wrocław #3 2015

Zaawansowane wykorzystanie hierarchii szablonów w WordPressie

Zobacz: http://wphierarchy.com

Page 45: WordUp Wrocław #3 2015

Zaawansowane wykorzystanie hierarchii szablonów w WordPressie

category-slug.php

author-5.php

single-photo.php

tag-featured.php

Page 46: WordUp Wrocław #3 2015

Zaawansowane wykorzystanie hierarchii szablonów w WordPressie

category-slug.php

author-5.php

single-photo.php

tag-featured.php

Page 47: WordUp Wrocław #3 2015

Dokumentacja

Page 48: WordUp Wrocław #3 2015
Page 49: WordUp Wrocław #3 2015

• 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 50: WordUp Wrocław #3 2015

• 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 51: WordUp Wrocław #3 2015

• 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 52: WordUp Wrocław #3 2015

• 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 53: WordUp Wrocław #3 2015

Testowanie

Page 54: WordUp Wrocław #3 2015

• 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 55: WordUp Wrocław #3 2015

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

Page 56: WordUp Wrocław #3 2015

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

Page 57: WordUp Wrocław #3 2015

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

Page 58: WordUp Wrocław #3 2015

Troska o programistów

Page 59: WordUp Wrocław #3 2015

Wsparcie dla motywów potomnych

Page 60: WordUp Wrocław #3 2015

!important EVERYTHING!!

Page 61: WordUp Wrocław #3 2015

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 62: WordUp Wrocław #3 2015

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

Page 63: WordUp Wrocław #3 2015
Page 64: WordUp Wrocław #3 2015

Porządek w plikach

Page 65: WordUp Wrocław #3 2015

get_template_part

Page 66: WordUp Wrocław #3 2015

get_template_part

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

Page 67: WordUp Wrocław #3 2015

get_template_part

get_template_part('loop', 'index');

Page 68: WordUp Wrocław #3 2015

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 69: WordUp Wrocław #3 2015

get_template_partNagłówek wpisu

Treść wpisu

Informacje o wpisie

Ikony społecznościowe

Blok o autorze

Page 70: WordUp Wrocław #3 2015

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 71: WordUp Wrocław #3 2015

Czytelny kod CSS(LESS/SASS)

Page 72: WordUp Wrocław #3 2015

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

Page 73: WordUp Wrocław #3 2015

LESS/SASS.header {

&__logo { width: 150px; }

&__menu { width: 50%

} }

.content { //...

}

Page 74: WordUp Wrocław #3 2015

LESS/SASS

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

Page 75: WordUp Wrocław #3 2015

Korzystanie z dostępnych API

Page 76: WordUp Wrocław #3 2015

A GDYBY TAK NAPISAĆ WŁASNĄ

WERSJĘ THEME MODS API?

Page 77: WordUp Wrocław #3 2015

A GDYBY TAK NAPISAĆ WŁASNĄ

WERSJĘ THEME MODS API?

Page 78: WordUp Wrocław #3 2015

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

Page 79: WordUp Wrocław #3 2015

Lista API dostępnych w WordPressie

https://codex.wordpress.org/WordPress_APIs

Page 80: WordUp Wrocław #3 2015

Myślenie o przyszłości

Page 81: WordUp Wrocław #3 2015

Wtyczki vs. Motywy

Page 82: WordUp Wrocław #3 2015

Wtyczki vs. Motywy

• Custom Post Type jako plugin

• Shortcodes jako plugin

• Złożone widżety jako plugin

Page 83: WordUp Wrocław #3 2015

Wtyczki vs. Motywy

• Custom Post Type jako plugin

• Shortcodes jako plugin

• Złożone widżety jako plugin

Page 84: WordUp Wrocław #3 2015

Wtyczki vs. Motywy

• Custom Post Type jako plugin

• Shortcodes jako plugin

• Złożone widżety jako plugin

Page 85: WordUp Wrocław #3 2015

Brak URLi w opcjach motywu

Page 86: WordUp Wrocław #3 2015

• 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 87: WordUp Wrocław #3 2015

• 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 88: WordUp Wrocław #3 2015

• 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 89: WordUp Wrocław #3 2015

Lead Developer @

@dziudek

http://dziudek.pl

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

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

Tomasz Dziuda

Page 90: WordUp Wrocław #3 2015

Pytania?