Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WordPress テーマ作成再入門
Search
Toro_Unit (Hiroshi Urabe)
May 20, 2017
Technology
3
1k
WordPress テーマ作成再入門
WordBench 長野 vol.9 での登壇資料です。
Toro_Unit (Hiroshi Urabe)
May 20, 2017
Tweet
Share
More Decks by Toro_Unit (Hiroshi Urabe)
See All by Toro_Unit (Hiroshi Urabe)
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
170
ブロックテーマでサイトリニューアルした話 / Toro_Unit / 2025.04.12 @ Shinshu WordPress Meetup
torounit
1
230
Cloudflare Meetup Nagano Vol.3
torounit
1
110
僕が考える 「HTML サイトを WordPress にする」話 / 2023-11-05 Kansai WordPress Meetup
torounit
9
7.7k
Cloudflare Pages に入門してみた / 2023-10-14 Cloudflare Meetup Nagano Vol.2
torounit
2
1.9k
ブロックエディタをゴリゴリに使い倒してサイトを作った話 / Kansai WordPress Meetup 2023 09 23
torounit
15
10k
ブロックエディターカスタマイズことはじめ #wpshinshu / 2023-06-17 Shinshu WordPress Meetup vol.24
torounit
1
420
FSE時代におけるWEBサイト制作の研究 #wpshinshu / 2023-05-20 Shinshu WordPress Meetup vol.23
torounit
0
470
ブロックエディターを用いたWEBサイト開発とカスタムフィールドのあり方を考える。/ WordCamp Japan 2021
torounit
0
580
Other Decks in Technology
See All in Technology
なぜAWSを活かしきれないのか?技術と組織への処方箋
nrinetcom
PRO
4
800
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
3.3k
How to achieve interoperable digital identity across Asian countries
fujie
0
150
神回のメカニズムと再現方法/Mechanisms and Playbook for Kamikai scrumat2025
moriyuya
4
730
AWS 잘하는 개발자 되기 - AWS 시작하기: 클라우드 개념부터 IAM까지
kimjaewook
0
130
CoRL 2025 Survey
harukiabe
0
170
Geospatialの世界最前線を探る [2025年版]
dayjournal
1
220
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
3
210
[Keynote] What do you need to know about DevEx in 2025
salaboy
0
160
LLM時代にデータエンジニアの役割はどう変わるか?
ikkimiyazaki
6
1.3k
Uncle Bobの「プロフェッショナリズムへの期待」から学ぶプロの覚悟
nakasho
2
110
能登半島災害現場エンジニアクロストーク 【JAWS FESTA 2025 in 金沢】
ditccsugii
0
570
Featured
See All Featured
Building an army of robots
kneath
306
46k
Bash Introduction
62gerente
615
210k
Gamification - CAS2011
davidbonilla
81
5.5k
Fireside Chat
paigeccino
40
3.7k
Agile that works and the tools we love
rasmusluckow
331
21k
Balancing Empowerment & Direction
lara
4
690
Facilitating Awesome Meetings
lara
56
6.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
RailsConf 2023
tenderlove
30
1.2k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Transcript
WordPress ςʔϚ࡞࠶ೖ Toro_Unit / 2017.05.20 @ WBNagano vol.9 1
Toro_Unit ෦ ߛ (͏Β ͻΖ͠) • দຊࢢࡏॅ 10 • ϑϦʔϥϯε
• Frontend Engineer / Plugin Developer / Web Designer • WordBench ϞσϨʔλʔ Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit Blog: https://torounit.com 2
Plugins Developer • Custom Post Type Permalinks • Active install:
80,000 + • Downloads: 380,000 + • Simple Post Type Permalinks • Powerful Posts Per Page • Responsive Slide • etc... 3
Theme Developer Vanilla 4
Other Contribution • 4.3 ~ 4.5, 4.7 ίΞߩݙऀ • WordCamp
Kansai 2016 / Tokyo 2016 ࣮ߦҕһ • WordCamp Kansai 2017 ηογϣϯνʔϜ Ϧʔμʔ • Speaker • WordCamp Kansai 2015, 2016 / Tokyo 2015, 2016 • WordBench Tokyo • WordBench Osaka • etc... 5
ςʔϚ࡞ͬͨ͜ͱ͋Δਓ! 6
WordPressͷਪ͍ͯ͠ΔςʔϚͷ࡞ ΓํΛͬͯΔਓ! 7
ʮผʹಈ͍ͯΔ͔Βྑ͘ͳ͍ʁʯ 8
ʮ͍ʁ(Җѹ)ʯ 9
ਪ͞Εͳ͍࡞ΓํΛ͍ͯ͠Δͱɾɾɾ • ϓϥάΠϯ͕ͳΜ͔มͳಈ͖͢Δɾɾɾɻ • ຊͷ௨Γʹ࡞ͬͨͷʹ͏͔͝ͳ͍ɾɾɾɻ • ϦχϡʔΞϧΊͪΌͪ͘Ό͍ͨΜɾɾɾɻ • ηΩϡϦςΟϗʔϧʹͳͬͨΓɾɾɾɻ 10
͋ΔϓϥάΠϯ࡞ऀͷ 11
ඇਪͷ࡞Γํͯ͠ΔςʔϚͰͷςετɺͯ͠ͳ͍͠ɺͰ͖ ͳ͍͠ɺ͢Δؾͳ͍ɻ ͍ͬͯ͏͔Ͳ͏ͬͯςετ͢Ε͍͍ͷΑʁ 12
ʮΑ͘Βͳ͍͚ͲɺͱΓ͋͑ͣಈ͍ͯΔ͔Βɾɾɾʯ ΄ΜͱʹͦΕͰେৎʁ 13
ςʔϚͷ࡞ΓํΛ͓͞Β͍ɻ 14
1. ςϯϓϨʔτͷछྨ 15
σϑΥϧτςʔϚ Twenty Seventeen ΛݟͯΈΑ͏ɻ 16
͙͑ͬ 17
େৎɻ 18
ςʔϚͷ࠷খߏ • index.php • style.css ͜Ε͚ͩʂ 19
͡Ό͊ͳΜͰ͋Μͳʹɾɾɾ 20
ͱ͍͏Θ͚ͰςϯϓϨʔτͷΈΛ͓͞Β͍͠·͠ΐ͏ɻ 21
1-1 ςϯϓϨʔτ֊ 22
ςϯϓϨʔτ֊ͱʁ WordPressͷςϯϓϨʔτ͕બ͞ΕΔΈɻ ݱࡏදࣔ͞Ε͍ͯΔϖʔδͷঢ়ଶʹ߹ΘͤͯςϯϓϨʔτ͕ݕ ࡧ͞ΕΔɻ 23
24
ྫ1 ΧςΰϦʔ ID:2, εϥοά: news ͷ߹ɻ 1. category-news.php 2. category-2.php
3. category.php 4. archive.php 5. index.php ͷॱʹςϯϓϨʔτ͕ݕࡧ͞Εɺݟ͔ͭͬͨͷ͕ద༻͞ΕΔɻ 25
ྫ2 ϒϩάߘͷ߹ɻ 1. single-post.php 2. single.php 3. singular.php 4. index.php
ͷॱʹςϯϓϨʔτ͕ݕࡧ͞Εɺݟ͔ͭͬͨͷ͕ద༻͞Ε Δɻ 26
ৄ͘͠ɺςϯϓϨʔτ֊ - WordPress Codex ຊޠ ൛ WordPress Codex: WordPress ͷΦϯϥΠϯ
υΩϡϝϯτɺWiki. 27
1-2 ςϯϓϨʔτϞδϡʔϧ 28
ڞ௨෦ΛผͷςϯϓϨʔτʹग़དྷΔɻ • header.php : get_header() • footer.php : get_footer() •
sidebar.php :get_sidebar() • searchform.php : get_search_form() • comments.php : comments_template() 29
get_template_part() ΦϦδφϧͷςϯϓϨʔτΛݺͼग़͢ɻ ྫ • get_template_part('template-parts/hoge'); template-parts/hoge.php Λݺͼग़͢ɻ • get_template_part('template-parts/hoge', 'piyo');
template-parts/hoge-piyo.php Λݺͼग़͢ɻ 30
ͷ࠷খߏ • index.php • single.php • page.php • header.php •
footer.php ͔͜͜Βద֦ٓு͍ͯ͘͠ɻ 31
2. CSS ͱ JS ͷಡΈࠐΈ 32
Α͋͘Δτϥϒϧ • ʮͳΜ͔jQuery͕2ճݺͼग़͞ΕͯΔɾɾɾɾʯ 33
͜͏ͯ͠·ͤΜʁ <head> <link href="<?php echo get_stylesheet_uri(); ?>"> <link href="<?php echo
get_template_directory_uri() . '/common.css'; ?>> <?php wp_head();?> </head> <script src="jquery.js"></script> <?php wp_footer();?> </body> • wphead, wpfooter ςʔϚʹඞͣೖΕΔౕɻ 34
ਪ͞ΕΔΓํ header.php <head> <?php wp_head();?> </head> footer.php <?php wp_footer();?> </body>
35
functions.php function my_enqueue_scripts() { //include css wp_enqueue_style( 'my-style', get_stylesheet_uri() );
wp_enqueue_style( 'my-common', get_template_directory_uri() . '/common.css', array( 'my-style' ), '1.0.0' ); //include js wp_enqueue_script( 'my-scripts', get_template_directory_uri() . '/scripts.js', array( 'jquery' ), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' ); 36
wp_enqueue_style ɺwp_enqueue_script Λ͏ͱ WordPress͕ྑ͍ײ͡ʹ CSS Λ JS ಡΈࠐΜͰ͘ΕΔɻ jQuery, underscore,
Backbone.js, masonry WordPress ʹଂ͞Ε͍ͯΔɻ ؔϦϑΝϨϯε/wp enqueue script - WordPress Codex ຊޠ൛ 37
3. σʔλͷແԽ αχλΠζ / Τεέʔϓ 38
͋Γ͕ͪͳϠόΠίʔυ <?php //ΧελϜϑΟʔϧυͷΛऔಘ $hoge = get_post_meta( get_the_ID(), 'hoge', ture );
?> <!-- class ଐੑΛՃ --> <h1 class="<?php echo $hoge;?>"></h1> 39
͠ΧελϜϑΟʔϧυʹෆਖ਼ͳσʔλ͕ೖͬͯΔͱ... ྫ͑ɺ">͜Μʹͪ͜Μʹͪ!! Έ͍ͨͳจࣈྻɻ <h1 class="">͜Μʹͪ͜Μʹͪ!!"></h1> 40
41
͍ʂ 42
ݟ͕ͨյΕΔ͚ͩͳΒ·ͩ͠ෆਖ਼ͳJSͱ͔ΛຒΊࠐ·ΕΔ ڪΕ.... • Ϣʔβʔ͕มͳίʔυΛίϐϖͨ͠߹ɻ • WordPressͷύεϫʔυ͕ྲྀग़߹ɻ • etc... ͍ΘΏΔ XSSͷ੬ऑੑ
43
ਖ਼͘͠σʔλͷແԽΛ͠Α͏ɻ <?php $hoge = get_post_meta( get_the_ID(), 'hoge', ture );?> <div
class="<?php echo esc_attr( $hoge );?>"></div> ෆਖ਼ͳσʔλ͕ೖͬͯେৎɻ <h1 class="">͜Μʹͪ͜Μʹͪ!!"></h1> 44
WordPressʹ༻ҙ͞Ε͍ͯΔαχλΠζͷؔ • esc_html: ௨ৗͷςΩετ • esc_attr: HTMLଐੑ • esc_url: URL/ϝʔϧΞυϨεͳͲ
• esc_textarea: textareaཁૉ • esc_js: ΠϯϥΠϯJS • wp_kses: ಛఆͷHTMLλάΛڐՄ͢Δ߹ 45
4. ϓϥάΠϯςϦτϦʔ 46
• ΞΫηεղੳ • ࠂίʔυ • γΣΞϘλϯ • ΧελϜߘλΠϓ/λΫιϊϛʔ • SEOपΓͷ͍Ζ͍Ζɾɾɾ
47
αΠτΛϦχϡʔΞϧͨ͠Β͖͑ͨ!!! 48
·͍ͣʂ 49
ςʔϚΛม͑Δͱ͍Ζ͍Ζಈ͔ͳ͘ͳΔ… 50
·͍ͣ!!! 51
ςʔϚςϦτϦʔ WEBαΠτͷݟͨɻ ϓϥάΠϯςϦτϦʔ WEBαΠτͷػೳɻ -> ػೳϓϥάΠϯͰʂ 52
ϓϥάΠϯͷ࡞Γํɾɾɾʁ • wckansai2016/plugin-hands-on 53
ϊϯϓϩάϥϚʔͷͨΊͷWordPressϓϥάΠϯ࡞ೖ https://www.slideshare.net/mignonstyle/make-wordpress-plugin 54
αΠτͷ֦ுੑΛඈ༂తʹߴ ΊΔ WordPressϓϥάΠϯ ։ൃͷόΠϒϧ 55
5. ςʔϚͷݕূ 56
ςʔϚνΣοΫϓϥάΠϯ Theme Check — WordPress Plugins 57
58
ߦّͷѱ͍ςʔϚ 59
60
ͪͳΈʹ • WordPressͷཧը໘͔ΒμϯϩʔυͰ͖ΔςʔϚ (ެࣜσ ΟϨΫτϦ ܝࡌςʔϚ)શͯ͜ͷςετ͕௨ͬͯΔɻ • ྑ͘ղΒͳ͍ςʔϚΛ͏͘Β͍ͳΒɺެࣜσΟϨΫτϦ͔ ΒςʔϚΛ୳ͦ͏ɻ 61
6.υΩϡϝϯτ 62
Theme Developer Handbook • ӳޠ͚ͩͲͦ͜·Ͱ͜͠ͱॻ͍ ͯͳ͍ͷͰҙ֎ʹಡΊΔɻ 63
WordPress Codex ຊޠ൛ • ςϯϓϨʔτλάͷ༷ͳͲ͜͜ Ͱ֬ೝɻ 64
_s • WordPress.com ͷӡӦݩͷ Automattic ͕։ൃ͍ͯ͠Δϕʔες ʔϚɻ͜ΕΛϕʔεʹCSSΛՃɺ HTMLΛฤूͯ͠ςʔϚΛ࡞Δͱ͍͏ ํ๏͋Δɻ 65
τϥϒϧ͕ى͖Δલʹਖ਼͍ࣝ͠Λɻ ϓϩάϥϛϯάʹࣗ৴͕ແ͍ͳΒɺͳ͓͞Βɺ͜͏͍ͬͨͷʹै͏͖ɻ 66
ͦͯ͠ 67
WordPress ίϛϡχςΟͷࡒ࢈Λ׆༻͠Α͏ɻ ͜Ε͕ WordPressͷҰ൪ͷڧΈɻ 68
ࠔͬͨΒϑΥʔϥϜͰ࣭ͯ͠ΈΑ͏ɻ • https://ja.wordpress.org/support/ • WordPress ͷެࣜͷαϙʔτϑΥʔ ϥϜɻ • ͪΌΜͱ࣭͢Δͱ݁ߏղ͕ͭ ͘ɻ
• ϑΥʔϥϜΛݕࡧ͢Δͱ͕͑͋ͬ ͨΓ͢Δ͜ͱΑ͋͘Δɻ 69
tips • titleλάΛςʔϚʹॻ͘ͷඇਪʹɻ add_theme_support('title-tag') Λ͍·͠ΐ͏ɻ • ࠷ۙ get_theme_file_uri ͱݴ͏͕ؔՃ͞Εͨɻ •
ςʔϚΧελϚΠβʔ • etc... ·ͩ·ͩԞ͕ਂ͍ɻ 70
more...? 71
ΤϯδχΞͷͨΊͷ WordPress։ൃೖ 72
ϊϯϓϩάϥϚʔͷͨΊͷWordPress ςʔϚ࡞εςοϓΞοϓज़ https://www.slideshare.net/ mignonstyle/wordpress-stepuptips 73
and.. Let's Join WordBench! wordbench.org 74
and... 75
76
WordCamp Kyoto 2017 • 06/24, 25 • ژେֶ ࠃࡍՊֶΠϊϕʔγϣϯ౩ WordCamp
is... ੈքத֤ͰߦΘΕ͍ͯΔ WordPress ͷΧϯϑΝϨϯεɻຊͰ Ұ൪େ͖͍WordPressͷΠϕϯτɻࠓژͱ౦ژʹͯ։࠵ɻ 77
78
͓ΘΓɻ Thanks! Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit WEB Site:
https://torounit.com 79