Как опубликовать свою тему в директорию wordpress

Post on 15-Apr-2017

448 Views

Category:

Internet

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Как опубликоватьсвою тему в директориюWordPress

Дмитрий Майоров / www.themepatio.com

WordCamp Moscow 2016

themepatio.com/themes/maker

Зачем это делать?

Зачем выпускать тему

- Обратная связь

- Прокачать свои навыки

- Делиться хорошо

1. GPL

Принципы лицензии

- Использовать для любых целей

- Изучать исходный код

- Изменять исходный код

- Распространять без ограничений

Как сделать тему GPL-friendly?

/*Theme Name: MakerAuthor: ThemePatioText Domain: makerLicense: GNU GPL v2 or laterLicense URI: http://www.gnu.org/licenses/gpl-2.0.html

Указать лицензию в style.css

=== Maker ===Contributors: iamdmitrymayorovVersion: 0.2.0License: GNU GPL v2 or laterLicense URI: http://www.gnu.org/licenses/gpl-2.0.htmlTags: black, gray, red, white, dark, light,

Указать лицензию в readme.txt

TypiconsAuthor: Stephen HutchingsLicense: SIL (http://scripts.sil.org/OFL)URL: http://typicons.com/

Используйте GPL ресурсы

Chair & TableAuthor: Jordan SanchezLicence: CC0 1.0URL: https://unsplash.com/photos/KyB-Eo4xS_c

Используйте GPL картинки

Проверить совместимостьwww.gnu.org/licenses/license-list.en.html

#GPLCompatibleLicenses

2. Не начинайте с нуля

Underscores (_s)underscores.me

Componentscomponents.underscores.me

3. Требования

<head>...<script src=’theme.js’></script>...</head>

3.1 Не встраивайте стили и скрипты

wp_enqueue_script( ‘maker-custom’, get_template_directory_uri() .‘theme.js’,);

functions.php

wp_enqueue_script( ‘jquery’ );

functions.php

Список библиотек и инструментовв ядре WordPressdeveloper.wordpress.org/reference/functions/

wp_enqueue_script/

3.2 Используйте префиксы

- Функции

- Классы

- События и фильтры

- Глобальные переменные

- Записи в БД

function output() { // Код функции.}

Плохой пример

function maker_entry_meta() { // Код функции.}

Хороший пример

3.3 Валидация ввода, экранирование вывода

5 000 000 / 50 = 100 000 руб/м2

договорн. / 50 = ?

sanitize_text_field( $input )

Валидация ввода

$wp_customize->add_setting( ‘footer’, array( ‘sanitize_callback’ => ‘sanitize_text_field’,) );

Валидация ввода

esc_html( $output );

Экранирование вывода

// Get the data.$prefix_name = get_theme_mod( ‘footer’ );

// Escape as a late as possible and display.echo esc_html( $prefix_name );

Экранирование вывода

Подробнееcodex.wordpress.org/Data_Validation

3.4 Переводимые строки

echo ‘Комментарии’;

Шаблон для клиента

echo __( ‘Comments’, ‘themeslug’ );

Тема для директории

_e( ‘Comments’, ‘themeslug’ );

Тема для директории

esc_html_e( ‘Comments’, ‘themeslug’ );

Тема для директории

Подробнее об I18Ncodex.wordpress.org/I18n_for_WordPress_Developers

3.5 Территория тем и плагинов

Подробнее о требованияхmake.wordpress.org/themes/handbook/

review/required

4. Учитесь у других

4.1. Изучайте стандартные темы

5. Тестирование

define( ‘WP_DEBUG’, true );

5.1 wp-config.php

5.2 Theme Checkwordpress.org/plugins/theme-check

5.3 Codesniffer with WPCSgithub.com/WordPress-Coding-Standards/

WordPress-Coding-Standards

5.4 Theme Unit Testcodex.wordpress.org/Theme_Unit_Test

5.5 Monster Widgetwordpress.org/plugins/theme-check

5.6 Настоящий контент

6. Учавствуйте в проверке тем

7. Не усложняйте

Вопросы?Дмитрий Майоров / www.themepatio.com

WordCamp Moscow 2016

top related