SlideShare a Scribd company logo
Submit Search
Upload
Looking into WordPress Core, WordCamp Russia 2015
Report
Share
Sergey Biryukov
WordPress Developer at Yoast.com
Follow
•
0 likes
•
2,256 views
1
of
37
Looking into WordPress Core, WordCamp Russia 2015
•
0 likes
•
2,256 views
Report
Share
Download Now
Download to read offline
Internet
https://russia.wordcamp.org/2015/
Read more
Sergey Biryukov
WordPress Developer at Yoast.com
Follow
Recommended
Everything You Need to Know About WP_Query, WordCamp Russia 2014 by
Everything You Need to Know About WP_Query, WordCamp Russia 2014
Sergey Biryukov
2.9K views
•
68 slides
Contributing to WordPress, WordCamp Russia 2013 by
Contributing to WordPress, WordCamp Russia 2013
Sergey Biryukov
6.3K views
•
27 slides
i18n for Plugin and Theme Developers, WordCamp Moscow 2016 by
i18n for Plugin and Theme Developers, WordCamp Moscow 2016
Sergey Biryukov
1.3K views
•
30 slides
WordPress.org Under the Hood, WordCamp Moscow 2017 by
WordPress.org Under the Hood, WordCamp Moscow 2017
Sergey Biryukov
819 views
•
30 slides
Вёрстка WordPress тем - WP Kharkiv Meetup #1 by
Вёрстка WordPress тем - WP Kharkiv Meetup #1
dima_kuzovlev
883 views
•
37 slides
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ... by
построение внутренней ссылочной структуры сайта на Drupal 7 (seo). Костин ...
PVasili
907 views
•
24 slides
More Related Content
What's hot
Wordpress theme by
Wordpress theme
Александр Пермяков
6.9K views
•
8 slides
инструкция по оптимизации сайтов на Drupal херени даниэл by
инструкция по оптимизации сайтов на Drupal херени даниэл
PVasili
1.3K views
•
30 slides
Николай Сиварев "Приручая сайты" by
Николай Сиварев "Приручая сайты"
Yandex
384 views
•
31 slides
Как мы ускоряли WebGL / Мстислав Живодков (2GIS) by
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Ontico
424 views
•
35 slides
Изоморфный JavaScript — будущее уже здесь by
Изоморфный JavaScript — будущее уже здесь
CodeFest
2.6K views
•
45 slides
Knockoutjs на примере 2ГИС-Онлайн by
Knockoutjs на примере 2ГИС-Онлайн
2ГИС Технологии
1.4K views
•
80 slides
What's hot
(20)
Wordpress theme by Александр Пермяков
Wordpress theme
Александр Пермяков
•
6.9K views
инструкция по оптимизации сайтов на Drupal херени даниэл by PVasili
инструкция по оптимизации сайтов на Drupal херени даниэл
PVasili
•
1.3K views
Николай Сиварев "Приручая сайты" by Yandex
Николай Сиварев "Приручая сайты"
Yandex
•
384 views
Как мы ускоряли WebGL / Мстислав Живодков (2GIS) by Ontico
Как мы ускоряли WebGL / Мстислав Живодков (2GIS)
Ontico
•
424 views
Изоморфный JavaScript — будущее уже здесь by CodeFest
Изоморфный JavaScript — будущее уже здесь
CodeFest
•
2.6K views
Knockoutjs на примере 2ГИС-Онлайн by 2ГИС Технологии
Knockoutjs на примере 2ГИС-Онлайн
2ГИС Технологии
•
1.4K views
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru) by Ontico
Как мы разрабатываем новый фронтенд / Филипп Нехаев (Tinkoff.ru)
Ontico
•
3.1K views
External Widgets Performance by Ecommerce Solution Provider SysIQ
External Widgets Performance
Ecommerce Solution Provider SysIQ
•
352 views
WordPress Kitchen MeetUp Summer 2015 - Никита Галкин "Каноны современной разр... by WordCamp Kyiv
WordPress Kitchen MeetUp Summer 2015 - Никита Галкин "Каноны современной разр...
WordCamp Kyiv
•
319 views
Codeception UATestingDays by davertmik
Codeception UATestingDays
davertmik
•
688 views
Python и Django – платформа для фрилансера by Alexander Koshelev
Python и Django – платформа для фрилансера
Alexander Koshelev
•
1.5K views
Стабильность WebGL приложений / Кирилл Дмитренко (Яндекс) by Ontico
Стабильность WebGL приложений / Кирилл Дмитренко (Яндекс)
Ontico
•
551 views
Alex baumgertner bem_in_small_projects by Alexander Baumgertner
Alex baumgertner bem_in_small_projects
Alexander Baumgertner
•
6.7K views
практическое использование модуля Panels богуцкий виктор by drupalconf
практическое использование модуля Panels богуцкий виктор
drupalconf
•
1.5K views
Компоненты Фронтенда - HotCode 2013 by Andrey Listochkin
Компоненты Фронтенда - HotCode 2013
Andrey Listochkin
•
422 views
Modules and assembling of JavaScript (in russian) by Mikhail Davydov
Modules and assembling of JavaScript (in russian)
Mikhail Davydov
•
966 views
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса" by Yandex
Сергей Бережной, Варвара Степанова "Как использовать БЭМ! вне Яндекса"
Yandex
•
2.1K views
Kranonit s16 (python). dmitry furzenko by Krivoy Rog IT Community
Kranonit s16 (python). dmitry furzenko
Krivoy Rog IT Community
•
3.3K views
Фронтенд разработка без боли by Anton Piskunov
Фронтенд разработка без боли
Anton Piskunov
•
3.1K views
Автоматизируем тестирование UI с Ruby, Cucumber и Selenium by SQALab
Автоматизируем тестирование UI с Ruby, Cucumber и Selenium
SQALab
•
9K views
Viewers also liked
Моделирование контента в WordPress by
Моделирование контента в WordPress
Anna Ladoshkina
3.4K views
•
19 slides
Практическая доступность с WordPress by
Практическая доступность с WordPress
Anna Ladoshkina
1.5K views
•
24 slides
Managing a Local WordPress Community, WordCamp Europe 2016 by
Managing a Local WordPress Community, WordCamp Europe 2016
Sergey Biryukov
993 views
•
31 slides
Composer и разработка сайтов на WordPress by
Composer и разработка сайтов на WordPress
Anna Ladoshkina
1.2K views
•
23 slides
Ведение бизнеса на основе WordPress by
Ведение бизнеса на основе WordPress
Andrey Ovsyannikov
1.8K views
•
30 slides
Using Composer to create manageable WordPress websites by
Using Composer to create manageable WordPress websites
Anna Ladoshkina
1.2K views
•
37 slides
Viewers also liked
(7)
Моделирование контента в WordPress by Anna Ladoshkina
Моделирование контента в WordPress
Anna Ladoshkina
•
3.4K views
Практическая доступность с WordPress by Anna Ladoshkina
Практическая доступность с WordPress
Anna Ladoshkina
•
1.5K views
Managing a Local WordPress Community, WordCamp Europe 2016 by Sergey Biryukov
Managing a Local WordPress Community, WordCamp Europe 2016
Sergey Biryukov
•
993 views
Composer и разработка сайтов на WordPress by Anna Ladoshkina
Composer и разработка сайтов на WordPress
Anna Ladoshkina
•
1.2K views
Ведение бизнеса на основе WordPress by Andrey Ovsyannikov
Ведение бизнеса на основе WordPress
Andrey Ovsyannikov
•
1.8K views
Using Composer to create manageable WordPress websites by Anna Ladoshkina
Using Composer to create manageable WordPress websites
Anna Ladoshkina
•
1.2K views
i18n for Plugin and Theme Developers, WordCamp Milano 2016 by Sergey Biryukov
i18n for Plugin and Theme Developers, WordCamp Milano 2016
Sergey Biryukov
•
1.3K views
Similar to Looking into WordPress Core, WordCamp Russia 2015
TestGuy - эмулируем вашего тестировщика by
TestGuy - эмулируем вашего тестировщика
davertmik
709 views
•
26 slides
Yii2 by
Yii2
Noveo
662 views
•
32 slides
всплывающее окно при закрытии сайта by
всплывающее окно при закрытии сайта
Olga Pirozhenko
196 views
•
4 slides
WP Kitchen Meetup Spring 2015 - Владимир Самолетов: WordPress auto-install: п... by
WP Kitchen Meetup Spring 2015 - Владимир Самолетов: WordPress auto-install: п...
WordCamp Kyiv
307 views
•
35 slides
WordPress auto-install: просто о сложном by
WordPress auto-install: просто о сложном
Vladimir Samoletov
627 views
•
35 slides
Страх и ненависть в исходном коде by
Страх и ненависть в исходном коде
Kolya Korobochkin
513 views
•
23 slides
Similar to Looking into WordPress Core, WordCamp Russia 2015
(20)
TestGuy - эмулируем вашего тестировщика by davertmik
TestGuy - эмулируем вашего тестировщика
davertmik
•
709 views
Yii2 by Noveo
Yii2
Noveo
•
662 views
всплывающее окно при закрытии сайта by Olga Pirozhenko
всплывающее окно при закрытии сайта
Olga Pirozhenko
•
196 views
WP Kitchen Meetup Spring 2015 - Владимир Самолетов: WordPress auto-install: п... by WordCamp Kyiv
WP Kitchen Meetup Spring 2015 - Владимир Самолетов: WordPress auto-install: п...
WordCamp Kyiv
•
307 views
WordPress auto-install: просто о сложном by Vladimir Samoletov
WordPress auto-install: просто о сложном
Vladimir Samoletov
•
627 views
Страх и ненависть в исходном коде by Kolya Korobochkin
Страх и ненависть в исходном коде
Kolya Korobochkin
•
513 views
Первые шаги после установки WordPress by Darja Kruzhkova
Первые шаги после установки WordPress
Darja Kruzhkova
•
2.7K views
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1) by ZFConf Conference
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf Conference
•
51.1K views
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС) by Ontico
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Ontico
•
2.5K views
Архитектура кода нового 2ГИС Web API или куда мы дели MVC by DevDay
Архитектура кода нового 2ГИС Web API или куда мы дели MVC
DevDay
•
1.1K views
"VUE.JS как реакт с человеческим лицом" Дулецкий Вольдэмар, Evrone by it-people
"VUE.JS как реакт с человеческим лицом" Дулецкий Вольдэмар, Evrone
it-people
•
259 views
Pycon Russia 2013 - Разработка через тестирование в Python и Django by Ilya Shalyapin
Pycon Russia 2013 - Разработка через тестирование в Python и Django
Ilya Shalyapin
•
489 views
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn... by it-people
Илья Шаляпин, Евгений Генералов: Разработка через тестирование в Python и Djn...
it-people
•
1.9K views
Разработка через тестирование в Python и Django #pyconru by JetStyle
Разработка через тестирование в Python и Django #pyconru
JetStyle
•
4.9K views
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript Utils by WordCamp Kyiv
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript Utils
WordCamp Kyiv
•
961 views
Alexander manuhin selenium_php_v2.0 by matroskin1980
Alexander manuhin selenium_php_v2.0
matroskin1980
•
4.4K views
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views... by Viktor Likin
DrupalCamp Kyiv 2011. Views - стандарт вывода списка данных. Расширение Views...
Viktor Likin
•
307 views
Основые безопасности WordPress by Konstantin Kovshenin
Основые безопасности WordPress
Konstantin Kovshenin
•
2.5K views
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type... by Igor Sazonov
Оптимальная архитектура масштабируемого плагина WordPress на Custom Post Type...
Igor Sazonov
•
1.4K views
Web весна 2012 лекция 7 by Technopark
Web весна 2012 лекция 7
Technopark
•
552 views
Looking into WordPress Core, WordCamp Russia 2015
1.
Почему стоит участвовать в
разработке WordPress Сергей Бирюков WordCamp Russia 2015
2.
Обо мне Сергей Бирюков ●
Разработчик ядра WordPress core.trac.wordpress.org ● Локализатор WP в России ru.wordpress.org sergeybiryukov.ru @SergeyBiryukov
3.
Зачем смотреть, как устроен
WordPress?
4.
Как следить за разработкой
WordPress?
5.
● make.wordpress.org/core/ ● wp-svn ●
wp-trac
7.
wp-admin/edit-form-advanced.php wp-admin/includes/meta-boxes.php wp-includes/default-filters.php
8.
grep, ack, cmd-f
и т.д.
9.
PhpStorm 8
10.
PHPXref
11.
Codex
12.
developer.wordpress.org
14.
add_action( 'publish_post' )
15.
add_filter( 'all', function(
$stuff ) { echo '<code>' . current_filter() . '</code>'; return $stuff; });
16.
add_filter( 'gettext', function( $new,
$old, $domain ) { if ( 'Set featured image' === $old ) { if ( 'company' === get_post_type() ) { $new = __( 'Set company logo', 'mydomain' ); } } return $new; }, 10, 3 );
17.
add_filter( 'admin_post_thumbnail_html', function( $output,
$post_id ) { if ( 'company' === get_post_type( $post_id ) ) { $output = str_replace( __( 'Set featured image' ), 'Select / Upload a company logo', $output ); $output = str_replace( __( 'Remove featured image' ), 'Remove company logo', $output ); } return $output; }, 10, 2 );
18.
Для фильтров и
действий важен контекст
19.
apply_filters( 'media_view_strings', $strings,
$post )
20.
remove_post_type_support()
21.
Экран редактирования — одна
большая форма
22.
<textarea name="excerpt" id="attachment_caption"> <?php
echo $post->post_excerpt; ?> </textarea>
23.
Произвольные таксономии
24.
add_action( 'save_post', function(
$post_id, $post ) { // Не забываем проверить nonce и привилегии if ( isset( $_POST['my_tax_ui'] ) ) { // array_map() $terms = $_POST['my_tax_ui']; wp_set_object_terms( $post_id, $terms, 'my_tax' ); } else { wp_delete_object_term_relationships( $post_id, 'my_tax' ); } }, 10, 2 );
26.
<select name="tax_input['my_tax'][]">
27.
add_action( 'save_post', function(
$post_id, $post ) { // Не забываем проверить nonce и привилегии If ( ! isset( $_POST['my_tax_ui'] ) ) { wp_delete_object_term_relationships( $post_id, 'my_tax' ); } }, 10, 2 );
28.
<input type="hidden" name="tax_input['my_tax'][]" value="0" />
30.
add_rewrite_endpoint( 'export', EP_PAGES
) site.com/some-page/export/ site.com/some-page/export/json/
31.
get_query_var( 'export' )
32.
add_filter( 'request', function(
$vars ) { if ( isset( $vars['export'] ) && empty( $vars['export'] ) ) { $vars['export'] = '1'; } return $vars; });
33.
get_query_var( 'export', null
)
34.
Сложные запросы
35.
'tax_query' => array( 'relation'
=> 'AND', array( 'taxonomy' => 'age', 'terms' => array( '5' ), ), array( 'relation' => 'OR', array( 'taxonomy' => 'academic_skills', 'terms' => array( 'reading', 'writing' ), ), array( 'taxonomy' => 'skills', 'terms' => array( 'focus', 'flexibility' ), ), ), )
36.
term_id + taxonomy
= term_taxonomy_id
37.
sergeybiryukov.ru @SergeyBiryukov Спасибо! Вопросы?