wordpress 4.0 - co nowego dla programistów?

67
WordPress 4.0 Co nowego dla programistów? Tomasz Dziuda @ WordPress 4.0 Release Party

Upload: tomasz-dziuda

Post on 17-Jun-2015

1.272 views

Category:

Technology


2 download

DESCRIPTION

Lista najważniejszych zmian dla programistów, które pojawiły się w WordPressie w wersji 4.0

TRANSCRIPT

Page 1: WordPress 4.0 - co nowego dla programistów?

WordPress 4.0Co nowego dla programistów?

!Tomasz Dziuda @ WordPress 4.0 Release Party

Page 2: WordPress 4.0 - co nowego dla programistów?

Prezentacja bazuje na porównaniu kodu WP 3.9.2 i WP 4.0.0 RC

Page 3: WordPress 4.0 - co nowego dla programistów?

Najważniejsze zmiany

Page 4: WordPress 4.0 - co nowego dla programistów?

Zmiany w ekranie personalizacji

Page 5: WordPress 4.0 - co nowego dla programistów?

Panele

Panel

Sekcja

Kontrolka

Kontrolka

Kontrolka

Sekcja

Page 6: WordPress 4.0 - co nowego dla programistów?

Panele

• Nowa klasa WP_Customize_Panel!

• Klasa WP_Customize_Section - ma nowe pole $panel

Page 7: WordPress 4.0 - co nowego dla programistów?

Nowe metody klasy WP_Customize_Manager

Page 8: WordPress 4.0 - co nowego dla programistów?

Nowe metody klasy WP_Customize_Manager

get_panel($id)

!

!

!

Page 9: WordPress 4.0 - co nowego dla programistów?

Nowe metody klasy WP_Customize_Manager

get_panel($id)

add_panel($id, $args)

!

!

Page 10: WordPress 4.0 - co nowego dla programistów?

Nowe metody klasy WP_Customize_Manager

get_panel($id)

add_panel($id, $args)

remove_panel($id)

!

Page 11: WordPress 4.0 - co nowego dla programistów?

Nowe metody klasy WP_Customize_Manager

get_panel($id)

add_panel($id, $args)

remove_panel($id)

containers()

Page 12: WordPress 4.0 - co nowego dla programistów?

Nowe metody klasy WP_Customize_Manager

get_panel($id)

add_panel($id, $args)

remove_panel($id)

containers()

panels()

Page 13: WordPress 4.0 - co nowego dla programistów?

Tworzenie nowego panelu

$wp_customize->add_panel( ‘test_panel', array( 'priority' => 10, 'capability' => 'customize', 'theme_supports' => '', 'title' => ‘Test Panel', 'description' => ‘Simple test panel',));

Page 14: WordPress 4.0 - co nowego dla programistów?

Tworzenie nowego panelu

$wp_customize->add_section( ‘test_section', array( 'priority' => 10, 'capability' => 'customize', 'theme_supports' => '', 'title' => ‘Test Section', 'description' => ‘Simple test section', 'panel' => ‘test_panel',));

Page 15: WordPress 4.0 - co nowego dla programistów?

Tworzenie nowego panelu

Page 16: WordPress 4.0 - co nowego dla programistów?

Opisy opcji

$wp_customize->add_control( 'option', array( 'label' => __(‘Option label’, ‘theme-slug’), 'section' => 'content', 'type' => 'select', 'description' => ‘Option description', 'choices' => array( '0' => __(‘Enabled', ‘theme-slug'), '1' => __('Disabled', ‘theme-slug'), '2' => __('Automatic', ‘theme-slug'), ),));

Pole description istnieje od teraz nie tylko w sekcjach ale i w kontrolkach:

Page 17: WordPress 4.0 - co nowego dla programistów?

Nowe rodzaje kontrolekNowe rodzaje to: textarea oraz każda możliwa wartość

atrybutu type dla elementu input !!!!!!!!

Istniejące: text, checkbox, radio, select, dropdown-pages

Page 18: WordPress 4.0 - co nowego dla programistów?

Atrybuty dla pól <input>

$wp_customize->add_control('content_width', array( 'label' => __( 'Layout width', 'twentyfourteen' ), 'section' => 'layout', 'type' => 'range', 'input_attrs' => array( 'min' => 720 , 'max' => 1600 )));

Page 19: WordPress 4.0 - co nowego dla programistów?

Ukrywanie kontrolek

Możemy wyświetlić kontrolkę tylko na stronie głównej podglądu korzystając z własnej funkcji:

function theme_slug_show_control() { return is_home();}

Page 20: WordPress 4.0 - co nowego dla programistów?

Ukrywanie kontrolek

$wp_customize->add_control('content_width', array( 'label' => __( 'Layout width', 'twentyfourteen' ), 'section' => 'layout', 'type' => 'range', 'input_attrs' => array( 'min' => 720 , 'max' => 1600 ), ‘active_callback' => ‘theme_slug_show_control’));

Page 21: WordPress 4.0 - co nowego dla programistów?

Ukrywanie kontrolek

Tworząc własną klasę kontrolki można po prostu nadpisać funkcję active_callback

class WP_Customize_Control

Page 22: WordPress 4.0 - co nowego dla programistów?

Nowe funkcje

Page 23: WordPress 4.0 - co nowego dla programistów?

Nowe funkcje

is_customize_preview()!

!

Page 24: WordPress 4.0 - co nowego dla programistów?

Nowe funkcje

is_customize_preview()!

is_widget_rendered(widget_id)!

Page 25: WordPress 4.0 - co nowego dla programistów?

Nowe funkcje

is_customize_preview()!

is_widget_rendered(widget_id)!

is_sidebar_rendered(sidebar_id)

Page 26: WordPress 4.0 - co nowego dla programistów?

Zmiany w TinyMCENowa wtyczka wpautoresize

Od teraz edytor automatycznie się skaluje więc powyższy element zniknął

Page 27: WordPress 4.0 - co nowego dla programistów?

Zmiany w TinyMCENowa wtyczka colorpicker

Page 28: WordPress 4.0 - co nowego dla programistów?

Zmiany w TinyMCE

Nowa funkcja get_editor_stylesheets()

Funkcja ta zwraca nam listę plików CSS załadowanych w edytorze TinyMCE

Page 29: WordPress 4.0 - co nowego dla programistów?

Zmiany w TinyMCE

Nowy filtr wp_editor_settings pozwala zmodyfikować ustawienia edytora. !Przyjmuje dwa argumenty: !$settings - tablica ustawień edytora $editor_id - identyfikator edytora

Page 30: WordPress 4.0 - co nowego dla programistów?

Zmiany w TinyMCE

W funkcji wp_editor możemy w parametrze tinymce określić

opcję wp_autoresize_on

Page 31: WordPress 4.0 - co nowego dla programistów?

Wielokrotne ORDER BY

Page 32: WordPress 4.0 - co nowego dla programistów?

Wielokrotne ORDER BY

w get_posts i WP_Query można od teraz sortować elementy według wielu kryteriów naraz z różnym sposobem sortowania

Page 33: WordPress 4.0 - co nowego dla programistów?

Wielokrotne ORDER BY

w get_posts i WP_Query można od teraz sortować elementy według wielu kryteriów naraz z różnym sposobem sortowania!

argument orderby podajemy jako tablicę postaci pole => sposób sortowania

Page 34: WordPress 4.0 - co nowego dla programistów?

Wielokrotne ORDER BY$posts = get_posts(array( 'orderby' => 'author', 'order' => ‘DESC'));!$titles = wp_list_pluck($posts, ‘post_title');!!!!!!!!!!

Page 35: WordPress 4.0 - co nowego dla programistów?

Wielokrotne ORDER BY$posts = get_posts(array( 'orderby' => 'author', 'order' => ‘DESC'));!$titles = wp_list_pluck($posts, ‘post_title');!Zwróci nam: !Array( [0] => Hello world! [1] => Draft [2] => A lorem ipsum dolor [3] => BB Lorem ipsum dolor [4] => CCCC Lorem ipsum)

Page 36: WordPress 4.0 - co nowego dla programistów?

Wielokrotne ORDER BY$posts = get_posts(array( 'orderby' => ‘author post_title’, 'order' => ‘DESC'));!$titles = wp_list_pluck($posts, ‘post_title');!Zwróci nam: !Array( [0] => Hello world! [1] => Draft [2] => CCCC Lorem ipsum [3] => BB Lorem ipsum dolor [4] => A lorem ipsum dolor)

Page 37: WordPress 4.0 - co nowego dla programistów?

Wielokrotne ORDER BY$posts = get_posts(array( 'orderby' => array( 'author' => 'DESC', 'post_title' => ‘ASC' )));!$titles = wp_list_pluck($posts, ‘post_title');!Zwróci nam: !Array( [0] => A lorem ipsum dolor [1] => BB Lorem ipsum dolor [2] => CCCC Lorem ipsum [3] => Draft [4] => Hello world!)

Page 38: WordPress 4.0 - co nowego dla programistów?

like_escape jest passé

• Należy używać wpdb::esc_like

• powinno się jej używać przed wywołaniami metod wpdb::prepare i wpdb::esc_sql

Page 39: WordPress 4.0 - co nowego dla programistów?

Nowy wygląd wyszukiwarki wtyczek

Page 40: WordPress 4.0 - co nowego dla programistów?

Tworzenie ikony dla wtyczki

Wytyczne dla tworzonych ikon: !

http://make.wordpress.org/core/2014/08/21/introducing-plugin-icons-in-the-plugin-installer/

Ikona powinna znaleźć się w katalogu assets jako: !!

assets/icon-256x256.(png|jpg)!

assets/icon-128x128.(png|jpg)!

assets/icon.svg

Page 41: WordPress 4.0 - co nowego dla programistów?

Inne warte uwagi zmiany

Page 42: WordPress 4.0 - co nowego dla programistów?

Lepsze wsparcie SSL

• Cookies ustawiane przez WordPressa mają teraz ustawiany parametr secure.

• Dzięki temu cookies utworzone po HTTPS nie zadziałają po HTTP i na odwrót.

Page 43: WordPress 4.0 - co nowego dla programistów?

Zmiany w current_user_can

Page 44: WordPress 4.0 - co nowego dla programistów?

Zmiany w current_user_can

edit_theme_options = customize !

!

!

Page 45: WordPress 4.0 - co nowego dla programistów?

Zmiany w current_user_can

edit_theme_options = customize!!

install_themes = upload_themes !

Page 46: WordPress 4.0 - co nowego dla programistów?

Zmiany w current_user_can

edit_theme_options = customize!!

install_themes = upload_themes!!

install_plugins = upload_plugins

Page 47: WordPress 4.0 - co nowego dla programistów?

Nowa opcja w wp_dropdown_categories

• “option_none_value” - określa wartość ustawianą dla opcji odpowiadającego nie wybraniu kategorii (domyślnie -1)

Page 48: WordPress 4.0 - co nowego dla programistów?

Nowa funkcja attachment_url_to_postid

• Argument: $url

• zwraca ID posta na podstawie podanego URL-a załącznika

Page 49: WordPress 4.0 - co nowego dla programistów?

Nowa funkcja get_comments_number_text

• Argumenty: $zero, $one, $more

• Działa w zasadzie tak samo jak comments_number tylko zwraca rezultat zamiast go bezpośrednio wypisywać

Page 50: WordPress 4.0 - co nowego dla programistów?

wp_list_pluck ma nowy argument $index_key

W WordPressie 3.9.2: !$posts = get_posts();$post_titles = wp_list_pluck($posts, ‘post_title');!!!!!!

Page 51: WordPress 4.0 - co nowego dla programistów?

wp_list_pluck ma nowy argument $index_key

W WordPressie 3.9.2: !$posts = get_posts();$post_titles = wp_list_pluck($posts, ‘post_title');!Zwróci nam: !Array ( [0] => Draft [1] => Hello world!)

Page 52: WordPress 4.0 - co nowego dla programistów?

wp_list_pluck ma nowy argument $index_key

W WordPressie 4.0 dzięki nowemu argumentowi $index_key: !$posts = get_posts();$post_titles = wp_list_pluck($posts, ‘post_title’, ‘ID’);!!!!!!!!!

Page 53: WordPress 4.0 - co nowego dla programistów?

wp_list_pluck ma nowy argument $index_key

W WordPressie 4.0 dzięki nowemu argumentowi $index_key: !$posts = get_posts();$post_titles = wp_list_pluck($posts, ‘post_title’, ‘ID’);!Możemy otrzymać tablicę z indeksami równymi ID postów: !Array ( [5] => Draft [1] => Hello world!)!

Page 54: WordPress 4.0 - co nowego dla programistów?

wp_list_pluck ma nowy argument $index_key

W WordPressie 4.0 dzięki nowemu argumentowi $index_key: !$posts = get_posts();$post_titles = wp_list_pluck($posts, ‘post_title’, ‘ID’);!Możemy otrzymać tablicę z indeksami równymi ID postów: !Array ( [5] => Draft [1] => Hello world!)!W wypadku gdy pole nie istnieje, element trafi na koniec tablicy.

Page 55: WordPress 4.0 - co nowego dla programistów?

Nowy filtr wp_list_comments_args

• Argument: $args

• pozwala przetworzyć argumenty dla funkcji wp_list_comments

Page 56: WordPress 4.0 - co nowego dla programistów?

Nowy filtr term_search_min_chars

• Argumenty: $chars, $taxonomy_object, $search

• określa liczbę znaków potrzebną do aktywowania podpowiadania w tagach (domyślnie: 2 znaki)

Page 57: WordPress 4.0 - co nowego dla programistów?

Nowy filtr wp_title_parts

• pozwala filtrować elementy tytułu

• Jako argument otrzymuje explode($t_sep, $title)

Page 58: WordPress 4.0 - co nowego dla programistów?

Ciekawostki

Page 59: WordPress 4.0 - co nowego dla programistów?

Thickbox po otwarciu popupa dodaje klasę modal-open w <body>

Page 60: WordPress 4.0 - co nowego dla programistów?

Zrezygnowano z funkcji extract

function shortcode_func($atts) { $a = shortcode_atts(array( 'foo' => 'something', 'bar' => 'something else', ), $atts ); !}!add_shortcode('shortcode', 'shortcode_func');

Page 61: WordPress 4.0 - co nowego dla programistów?

Zrezygnowano z funkcji extract

function shortcode_func($atts) { $a = shortcode_atts(array( 'foo' => 'something', 'bar' => 'something else', ), $atts ); extract($a); return "foo = “.$foo;}!add_shortcode('shortcode', 'shortcode_func');

Page 62: WordPress 4.0 - co nowego dla programistów?

Zrezygnowano z funkcji extract

function shortcode_func($atts) { $a = shortcode_atts(array( 'foo' => 'something', 'bar' => 'something else', ), $atts ); return "foo = ".$a[‘foo’];}!add_shortcode('shortcode', 'shortcode_func');

Page 63: WordPress 4.0 - co nowego dla programistów?

Trudniej stracić zmiany wprowadzone w ekranie personalizacji…

Page 64: WordPress 4.0 - co nowego dla programistów?

… oraz przy zarządzaniu menu

Page 65: WordPress 4.0 - co nowego dla programistów?

Nowe Dashicons

dashicons-grid-viewdashicons-carrot

dashicons-calendar-alt dashicons-index-card

Page 66: WordPress 4.0 - co nowego dla programistów?

Pytania?

Page 67: WordPress 4.0 - co nowego dla programistów?

• @dziudek

[email protected]

• wp.dziudek.pl

Kontakt