Top Banner
Motywy dla WordPressa: Historia prawdziwa Tomasz Dziuda WordUp Warszawa 18. listopada 2016
106

Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Jan 21, 2017

Download

Technology

Tomasz Dziuda
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Motywy dla WordPressa: Historia prawdziwa

Tomasz Dziuda

WordUp Warszawa 18. listopada 2016

Page 2: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

#takbylo

Źródło: https://themes.trac.wordpress.org/query?priority=new+theme&priority=&status=new&keywords=!~buddypress&col=id&col=summary&col=status&col=time&col=changetime&col=reporter&report=2&order=time

Page 3: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przyczyna tej sytuacji

Page 4: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przyczyna tej sytuacji

Przegląd motywu jest dość czasochłonny

Brakuje wolontariuszy

Twórcy motywów odkryli, że oficjalne repozytorium to alternatywna droga dotarcia do potencjalnych klientów

Page 5: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przyczyna tej sytuacji

Przegląd motywu jest dość czasochłonny

Brakuje wolontariuszy

Twórcy motywów odkryli, że oficjalne repozytorium to alternatywna droga dotarcia do potencjalnych klientów

Page 6: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przyczyna tej sytuacji

Przegląd motywu jest dość czasochłonny

Brakuje wolontariuszy

Twórcy motywów odkryli, że oficjalne repozytorium to alternatywna droga dotarcia do potencjalnych klientów

Page 7: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przyczyna tej sytuacji

Przegląd motywu jest dość czasochłonny

Brakuje wolontariuszy

Twórcy motywów odkryli, że oficjalne repozytorium to alternatywna droga dotarcia do potencjalnych klientów

Ale przede wszystkim...

Page 8: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

"Ech, coraz więcej amatorów pcha się do zabawy. Mam nadzieję, że przejdzie ta nowelizacja ustawy i tworzenie motywów dla WordPressa będzie można czynić tylko z licencją, bo serio niektórzy nie mają ani doświadczenia ani wyobraźni i na przykład pakują 5MB JS-a do motywu."

Page 9: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przejrzałem kod 21 motywów oczekujących na review

Metoda:

Page 10: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przyjrzyjmy się błędom developerów...

Page 11: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przyjrzyjmy się błędom developerów...

... i nauczmy się ich unikać

Page 12: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Panie kto by się tam przejmował licencjami?

Page 13: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Twórcy motywów nie rozumieją do końca idei GPL

Page 14: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

100% GPL istnieje na ThemeForest

Page 15: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Wszystkie dodatki do motywu powinny być na licencji zgodnej z GPL

Page 16: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

ZdjęciaDomena publiczna lub licencja CC0

https://unsplash.com/ https://pixabay.com/en/

https://www.pexels.com/ http://www.publicdomainpictures.net/

http://littlevisuals.co/ http://nos.twnsnd.co/

Page 17: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

WideoDomena publiczna lub licencja CC0

http://www.wedistill.io/

https://videos.pexels.com/

https://vimeo.com/creativecommons

https://pixabay.com/en/videos/

http://www.coverr.co/

Page 18: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Fonty, skrypty, CSSMIT, GPL, LGPL, ISC, Apache, SIL, WTFPL

Page 19: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Fun fact: Apache a GPL

Page 20: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Fun fact: Apache a GPL

Licencja Apache nie jest zgodna z GPL v.2...

... ale jest zgodna z GPL v.3...

... choć tylko w jedną stronę ;-)

https://www.apache.org/licenses/GPL-compatibility.html

Page 21: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Fun fact: Apache a GPL

Licencja Apache nie jest zgodna z GPL v.2...

... ale jest zgodna z GPL v.3...

... choć tylko w jedną stronę ;-)

https://www.apache.org/licenses/GPL-compatibility.html

Page 22: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Fun fact: Apache a GPL

Licencja Apache nie jest zgodna z GPL v.2...

... ale jest zgodna z GPL v.3...

... choć tylko w jedną stronę ;-)

https://www.apache.org/licenses/GPL-compatibility.html

Page 23: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Fun fact: Apache a GPL

Licencja Apache nie jest zgodna z GPL v.2...

... ale jest zgodna z GPL v.3...

... choć tylko w jedną stronę ;-)

https://www.apache.org/licenses/GPL-compatibility.html

Page 24: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

To WordPress ma stronę załącznika?!

Page 25: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Źródło: https://wphierarchy.com/

Bad news: WordPress ma całkiem sporo podstron

Page 26: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Warto sprawdzićStronę wyszukiwarki (w tym dla frazy bez wyników)

Stronę błędu 404

Stronę archiwum (dzienne, miesięczne, roczne)

Stronę załącznika

Stronę autora

Stronę aktywacji autora w Multisite ;)

Page 27: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Natywne widżety?

Page 28: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 29: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Monster Widget prawdę Ci powie

Źródło: https://pl.wordpress.org/plugins/monster-widget/

Page 30: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Responsywność to standard... ;-)

Page 31: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Zepsute nagłówki

Page 32: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

?

Problem przewijania w poziomie

Page 33: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Niedostępne submenu

Page 34: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kilka spostrzeżeń

Page 35: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kilka spostrzeżeń• Menu to najczęściej popsuty element stron

responsywnych

• Największe problemy pojawiają się przy przejściu poniżej rozdzielczości tabletowych

• Płynny layout nie zawsze ma sens

• Należy pamiętać o dużych elementach w treści wpisów

Page 36: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kilka spostrzeżeń• Menu to najczęściej popsuty element stron

responsywnych

• Największe problemy pojawiają się przy przejściu poniżej rozdzielczości tabletowych

• Płynny layout nie zawsze ma sens

• Należy pamiętać o dużych elementach w treści wpisów

Page 37: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kilka spostrzeżeń• Menu to najczęściej popsuty element stron

responsywnych

• Największe problemy pojawiają się przy przejściu poniżej rozdzielczości tabletowych

• Płynny layout nie zawsze ma sens

• Należy pamiętać o dużych elementach w treści wpisów

Page 38: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kilka spostrzeżeń• Menu to najczęściej popsuty element stron

responsywnych

• Największe problemy pojawiają się przy przejściu poniżej rozdzielczości tabletowych

• Płynny layout nie zawsze ma sens

• Należy pamiętać o dużych elementach w treści wpisów

Page 39: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Zbędne zmienne

Page 40: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 41: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

$config = andorra_get_options('andorra_theme_options');

$config['theme_color']

Page 42: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Nieumiejętne wykorzystanie ekranu personalizacji

Page 43: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 44: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Nikt nie broni nam używać/usuwać istniejących sekcji Ekranu Personalizacji

Ani modyfikować im nazw:

$wp_customize->get_section('colors')->title = __('Custom Colors', 'xyz');

Page 45: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

W sumie 54 pola na kolory ;-)

Page 46: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Motyw powinien używać 2-3 bazowych kolorów

Pozostałe kolory powinny być wyliczone na podstawie bazowych kolorów

https://gist.github.com/stephenharris/5532899

Page 47: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

"Błąd" w JavaScript, którzy robią prawie wszyscy

Ja też go robiłem ;-) #wstydliwewyznania

Page 48: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

$(document).ready(function() { //... });

Źródło: https://api.jquery.com/ready/

Page 49: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

$(document).ready(function() { //... });

$(function() { //... });

Źródło: https://api.jquery.com/ready/

Page 50: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Tworzenie linków do serwisów społecznościowych

Page 51: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Metoda "na dużo opcji"

Page 52: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Metoda "Zrób to sam"

Page 53: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Metoda "na widżet"

Page 54: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Metoda "jedyna słuszna" ;-)

Wykorzystać potencjał menadżera menu w WordPressie...

... i selektorów CSS3: a[href*="facebook.com"]

Page 55: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Stylowanie ekranu personalizacji

Page 56: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 57: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Problemy

Page 58: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Problemy

Użytkownik musi nauczyć się nowego UI

Z reguły nie jest wcale ładniej ani wygodniej

Aktualizacje WordPressa mogą powodować problemy z istniejącym stylowaniem

Page 59: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Problemy

Użytkownik musi nauczyć się nowego UI

Z reguły nie jest wcale ładniej ani wygodniej

Aktualizacje WordPressa mogą powodować problemy z istniejącym stylowaniem

Page 60: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Problemy

Użytkownik musi nauczyć się nowego UI

Z reguły nie jest wcale ładniej ani wygodniej

Aktualizacje WordPressa mogą powodować problemy z istniejącym stylowaniem

Page 61: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Zapomniane function_exists w functions.php

Page 62: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

if(!function_exists('xyz_function_name')) { function xyz_function_name() { // ... } }

Page 63: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

if(!function_exists('xyz_function_name')) { function xyz_function_name() { // ... } }

Nawet wbudowane motywy mają z tym problem

Page 64: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Dlaczego?

Plik functions.php z motywu potomnego wczytywany jest PRZED plikiem functions.php z motywu-rodzica

Page 65: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Jak szybko sprawdzić czy nie zapomnieliśmy gdzieś o function_exists?

Page 66: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Jak szybko sprawdzić czy nie zapomnieliśmy gdzieś o function_exists?

Tworzymy motyw potomny

Dodajemy w nim kopię pliku functions.php z naszego motywu

Page 67: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Jak szybko sprawdzić czy nie zapomnieliśmy gdzieś o function_exists?

Tworzymy motyw potomny

Dodajemy w nim kopię pliku functions.php z naszego motywu

Page 68: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Jak szybko sprawdzić czy nie zapomnieliśmy gdzieś o function_exists?

Tworzymy motyw potomny

Dodajemy w nim kopię pliku functions.php z naszego motywu

Usuwamy błędy do skutku ;-)

Page 69: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Brak podstawowych optymalizacji

Page 70: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Nadmiarowe zapytania do serwera

Page 71: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kiedy rozdzielanie plików JS ma sens?

Page 72: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kiedy rozdzielanie plików JS ma sens?

Pliki, które będą nadpisane przez użytkownika

Pliki z funkcjami używanymi na konkretnych podstronach

Duże pliki, których ładowanie jest opcjonalne

Page 73: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kiedy rozdzielanie plików JS ma sens?

Pliki, które będą nadpisane przez użytkownika

Pliki z funkcjami używanymi na konkretnych podstronach

Duże pliki, których ładowanie jest opcjonalne

Page 74: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Kiedy rozdzielanie plików JS ma sens?

Pliki, które będą nadpisane przez użytkownika

Pliki z funkcjami używanymi na konkretnych podstronach

Duże pliki, których ładowanie jest opcjonalne

Page 75: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Wczytywanie niepotrzebnych danych

wp_enqueue_style ('body-font', '//fonts.googleapis.com/css?family='. urlencode($options['google_font_body']) .':400,400italic,700,700italic&subset=latin,greek-ext,cyrillic,latin-ext,greek,cyrillic-ext,vietnamese');

Page 76: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Zapominanie o zaletach CDN

Bootstrap

Font Awesome

html5 shiv

Modernizr

Page 77: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Nie ufasz CDN?

Page 78: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Nie ufasz CDN?

Zastosuj SRI (SubResource Integrity):

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

Do wygenerowania na: https://www.srihash.org/

Page 79: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Nie ufasz CDN?

Zastosuj SRI (SubResource Integrity):

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

Do wygenerowania na: https://www.srihash.org/

Page 80: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Nie ufasz CDN?

Zastosuj SRI (SubResource Integrity):

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

Do wygenerowania na: https://www.srihash.org/

Page 81: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Drobiazgi warte uwagi

Page 82: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Używaj date_i18n zamiast date

Więcej: https://codex.wordpress.org/Function_Reference/date_i18n

Page 83: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

WordPress posiada funkcję santize_hex_color

Page 84: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

WordPress posiada funkcję santize_hex_color

i funkcję santize_hex_color_no_hash też ;-)

Page 85: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

wp_enqueue_style('font-awesome', ...

wp_enqueue_style('mytheme-fontawesome', ...

Warto dbać o porządek w bibliotekach

Page 86: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Czasem trzeba powołać się na klauzulę sumienia

Page 87: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 88: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 89: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 90: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 91: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 92: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 93: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa
Page 94: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Inne ciekawe techniki autorów motywów

Page 95: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Robienie sobie z wolontariuszy działu QA

Page 96: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Po co używać Theme Check za każdym razem?

Page 97: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Wybiórcze nanoszenie poprawek

Page 98: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Podsumowanie

Page 99: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przed wysłaniem motywu na oficjalne repozytorium:

Page 100: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przed wysłaniem motywu na oficjalne repozytorium:

Daj komuś z zespołu kod do analizy

Przetestuj motyw z użytkownikami WordPressa

Wypracuj własną procedurę sprawdzania jakości

Postaw na sukcesywne ulepszanie motywu

Sprawdzaj motywy innych developerów

Page 101: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przed wysłaniem motywu na oficjalne repozytorium:

Daj komuś z zespołu kod do analizy

Przetestuj motyw z użytkownikami WordPressa

Wypracuj własną procedurę sprawdzania jakości

Postaw na sukcesywne ulepszanie motywu

Sprawdzaj motywy innych developerów

Page 102: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przed wysłaniem motywu na oficjalne repozytorium:

Daj komuś z zespołu kod do analizy

Przetestuj motyw z użytkownikami WordPressa

Wypracuj własną procedurę sprawdzania jakości

Postaw na sukcesywne ulepszanie motywu

Sprawdzaj motywy innych developerów

Page 103: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przed wysłaniem motywu na oficjalne repozytorium:

Daj komuś z zespołu kod do analizy

Przetestuj motyw z użytkownikami WordPressa

Wypracuj własną procedurę sprawdzania jakości

Postaw na sukcesywne ulepszanie motywu

Sprawdzaj motywy innych developerów

Page 104: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Przed wysłaniem motywu na oficjalne repozytorium:

Daj komuś z zespołu kod do analizy

Przetestuj motyw z użytkownikami WordPressa

Wypracuj własną procedurę sprawdzania jakości

Postaw na sukcesywne ulepszanie motywu

Sprawdzaj motywy innych developerów

Page 105: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

Pytania?

Page 106: Motywy dla WordPressa - historia prawdziwa - WordUp Warszawa

WWW: http://dziudek.pl

E-mail: [email protected]

Twitter: @dziudek