motywy dla wordpressa - historia prawdziwa - wordup warszawa
TRANSCRIPT
#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
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
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
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
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...
"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."
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/
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/
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
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
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
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
Źródło: https://wphierarchy.com/
Bad news: WordPress ma całkiem sporo podstron
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 ;)
Monster Widget prawdę Ci powie
Źródło: https://pl.wordpress.org/plugins/monster-widget/
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
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
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
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
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');
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
$(document).ready(function() { //... });
Źródło: https://api.jquery.com/ready/
$(document).ready(function() { //... });
$(function() { //... });
Źródło: https://api.jquery.com/ready/
Metoda "jedyna słuszna" ;-)
Wykorzystać potencjał menadżera menu w WordPressie...
... i selektorów CSS3: a[href*="facebook.com"]
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
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
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
if(!function_exists('xyz_function_name')) { function xyz_function_name() { // ... } }
Nawet wbudowane motywy mają z tym problem
Dlaczego?
Plik functions.php z motywu potomnego wczytywany jest PRZED plikiem functions.php z motywu-rodzica
Jak szybko sprawdzić czy nie zapomnieliśmy gdzieś o function_exists?
Tworzymy motyw potomny
Dodajemy w nim kopię pliku functions.php z naszego motywu
Jak szybko sprawdzić czy nie zapomnieliśmy gdzieś o function_exists?
Tworzymy motyw potomny
Dodajemy w nim kopię pliku functions.php z naszego motywu
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 ;-)
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
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
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
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');
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/
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/
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/
Używaj date_i18n zamiast date
Więcej: https://codex.wordpress.org/Function_Reference/date_i18n
wp_enqueue_style('font-awesome', ...
wp_enqueue_style('mytheme-fontawesome', ...
Warto dbać o porządek w bibliotekach
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
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
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
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
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