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 テーマ開発・ウェブサイト制作の勘所 #wpshinshu / ...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Toro_Unit (Hiroshi Urabe)
July 27, 2019
Technology
0
210
令和時代の WordPress テーマ開発・ウェブサイト制作の勘所 #wpshinshu / 2019-07-27 Shinshu WordPress Meetup vol.14
Shinshu WordPress Meetup vol.14 登壇資料です
Toro_Unit (Hiroshi Urabe)
July 27, 2019
Tweet
Share
More Decks by Toro_Unit (Hiroshi Urabe)
See All by Toro_Unit (Hiroshi Urabe)
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
230
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
510
ブロックテーマとこれからの WordPress サイト制作 / nishinomiya.dev@2025-12-21
torounit
1
260
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
780
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
680
ブロックテーマでサイトリニューアルした話 / Toro_Unit / 2025.04.12 @ Shinshu WordPress Meetup
torounit
1
300
Cloudflare Meetup Nagano Vol.3
torounit
1
160
僕が考える 「HTML サイトを WordPress にする」話 / 2023-11-05 Kansai WordPress Meetup
torounit
9
8k
Cloudflare Pages に入門してみた / 2023-10-14 Cloudflare Meetup Nagano Vol.2
torounit
2
2.1k
Other Decks in Technology
See All in Technology
Exadata Fleet Update
oracle4engineer
PRO
0
1.3k
AIエージェントで変わる開発プロセス ― レビューボトルネックからの脱却
lycorptech_jp
PRO
2
840
脱・コピペ!自分で調べて書くK8sマニフェスト
devops_vtj
0
100
AI活用を"目的"にしたら、データの本質が見えてきた - Snowflake Intelligence実験記 / chasing-ai-finding-data
pei0804
0
870
大規模な組織におけるAI Agent活用の促進と課題
lycorptech_jp
PRO
5
7.5k
Agentic Codingの実践とチームで導入するための工夫
lycorptech_jp
PRO
0
370
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ Designing for Reversible Decisions
soudai
PRO
8
1.5k
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
1
440
AWS CDK の目玉新機能「Mixins」とは / cdk-mixins
gotok365
2
310
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
22k
男(監査)はつらいよ - Policy as CodeからAIエージェントへ
ken5scal
5
700
どこで打鍵するのが良い? IaCの実行基盤選定について
nrinetcom
PRO
2
110
Featured
See All Featured
Believing is Seeing
oripsolob
1
68
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
760
Everyday Curiosity
cassininazir
0
150
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
The Spectacular Lies of Maps
axbom
PRO
1
580
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
140
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.7k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
SEO for Brand Visibility & Recognition
aleyda
0
4.3k
Transcript
ྩ࣌ͷ WordPress ςʔϚ։ൃɾ ΣϒαΠτ੍࡞ͷצॴ Toro_Unit @Shinshu WP Meetup vol.14 1
$ whoami 2
Toro_Unit ෦ ߛ (͏Β ͻΖ͠) • Frontend Engineer • WordPress
Plugin and Theme Developer Github: @torounit Twitter: @Toro_Unit 3
Contribution • WordPress 4.3 / 4.4 / 4.7 / 5.0
/ 5.1 / 5.2 • WordCamp Osaka 2019 • WordCamp Osaka 2018 Speaker. • etc... 4
Plugins and Themes • Custom Post Type Permalinks • Advanced
Posts Blocks • Simple Post Type Permalinks • Powerful Posts Per Page (PPPP) • Vanilla • and more... 5
ྩݩ5݄8 WordPress 5.2 “δϟί” 6
ςʔϚपΓͷมߋ wp_body_open() ͷಋೖɻ wp_head, wp_footer ͷؒɻ ͍ํ <body <?php body_class();?>>
<?php wp_body_open();?> <body> ͷԼʹు͖ग़͢HTMLͳͲΛग़ྗ͢ΔͨΊͷϞϊɻ Plugin ͳͲ͕ Facebook SDK ͳͲΛग़ྗ͢ΔͨΊʹ͏ɻ 7
ϒϩοΫΤσΟλʔ • WordPress 5.2 Ͱ Gutenberg 5.3 ͕Ϛʔδ͞Ε͍ͯΔ • ΧελϜϒϩοΫͳͲͷ։ൃͷݟ͜ͷͰͦΕͳΓʹ
ཷ·͖ͬͯͨɻ 8
࠷ۙ͜Μͳײ͡ͰςʔϚɾWEBαΠτ ࡞ͬͯ·͢ɻ 9
1. gutenberg-starter-theme ΛϕʔεʹΧελϚΠζɻ 2. editor-style ͪΌΜͱ࡞Δɻ 3. ΧελϜϑΟʔϧυۃྗΘͣɺΧελϜϒϩοΫΛ࡞ ͢Δ͜ͱͰରԠɻ 4.
ςʔϚʹɺՄೳͳݶΓʮαΠτͷݟͨʯҎ֎ͷࣄΛ͞ ͤͳ͍ɻ 5. ςʔϚ͕ಛఆͷϓϥάΠϯʹґଘ͢Δ͜ͱ͋ͬͯͳΒͳ ͍ɻ 10
1. gutenberg-starter-theme ΛϕʔεʹΧε λϚΠζɻ WordPress/gutenberg-starter-theme: A simple theme for testing
Gutenberg. Github ʹެ։͞Ε͍ͯΔɺGutenberg Λςετ͢ΔͨΊͷςʔ Ϛɻ શ෦1͔ΒࣗͰ࡞Δͱ࣮֬ʹ͍Ζ͍Ζ࿙ΕΔͷͰɺ͔͜͜Βɺ ඞཁͳ͍ͷҾ͖ࢉͨ͠Γɺ͠ࢉͨ͠Γɻ 11
2. editor-style ͪΌΜͱ࡞Δɻ • ϒϩοΫΤσΟλʔΛ༻͍Δ͜ͱͰɺίϯςϯπͷฤूͷࣗ ༝͕͕͋ͬͨɻ͔͠͠ฤूը໘ͱදࣔ໘ͰผͷελΠϧ͕ ͍͋ͨͬͯͨΒ͋Μ·Γҙຯ͕ແ͍ͷͰɺeditor-style ͬ͠ ͔Γ࡞Δɻ •
ͪΌΜͱઃܭ͞Ε͍ͯΔCSSͰ͋ΕɺςʔϚͰ͍ͬͯΔ CSSͦͷ··ಡΈࠐΜͰΑ͍ͣɻ 12
add_theme_support( 'editor-styles' ); add_editor_style( 'editor-style.css' ); • gutenberg-starter-theme ʹద༻͞Ε͍ͯͳ͍ͷͰɺ ҙɻ
13
editor-styleɹͷྫɻ @charset "UTF-8"; @import 'variable.css'; //ม @import '_elements.css'; //HTMLཁૉ @import
'_accessibility.css'; @import 'components/blocks/snow-monkey-blocks/_smb-box.css'; @import 'components/blocks/snow-monkey-blocks/_smb-balloon.css'; @import 'components/blocks/advanced-posts-block/_post.css'; @import 'components/blocks/advgb/_summary.css'; @import 'components/blocks/_image.css'; @import 'components/blocks/_button.css'; @import 'components/blocks/_table.css'; @import 'components/blocks/_column.css'; 14
//σϑΥϧτͩͱɺ610px ͔͠ͳ͍ΤσΟλͷԣ෯Λมߋ .wp-block { max-width: 1024px !important; } .wp-block[data-align="wide"] {
max-width: 1200px !important; } .wp-block[data-align="full"] { max-width: none !important; } 15
3. ΧελϜϑΟʔϧυۃྗΘͣΧ ελϜϒϩοΫΛ࡞͢Δ͜ͱͰରԠ 16
HTMLͷմΧελϜϒϩοΫΛ࡞Γ·͘Δɻ • Simple Definition List Blocks dl dt dd Λѻ͏ͨΊͷϒϩοΫɻ
• Advanced Posts Blocks WordPress ͷߘΛ༷ʑͳ݅Ͱग़ྗͰ͖ΔϒϩοΫɻ 17
ίϯςϯπͷHTMLͷ੍ޚΤσΟλͷࣄɻςʔϚͷࣄͰͳ͍ɻ 18
ΧελϜϑΟʔϧυͷ͍Ͳ͜Ζɻ • ΧελϜ ϑΟʔϧυ ɻσʔλΛೖΕΔശɻͦͦσβΠϯͷ߹Ͱ૿ݮ͢ ΔͷͰແ͍ɻ • ςʔϚग़ྗํ๏͕มΘͬͯ ( ex.
RSS / WP-API ʣऔಘ͢Δ͖ͷɺϓ ϥάΠϯͰ࣮͖͢ɻ • ࠜຊతʹɺίϯςϯπຊจཝʹಥͬࠐΉͷ͕ WordPress ͷઃܭɻ • ίϯςϯπ (จষɺهࣄͰհ͢ΔϞϊʹؔ͢Δσʔλ) ͳͲͷHTMLΛίϯ τϩʔϧ͢ΔͨΊ͚ͩʹΧελϜϑΟʔϧυΛ༻͍Δ͖Ͱͳ͍ɻ • هࣄʹਵ͢ΔϝλσʔλɺͷՁ֨ͳͲͷεΩʔϚͳͲʹͷΈ༻͍Δɻ 19
Ձ֨ɺਤͷ࠲ඪͳͲɺΧελϜϑΟʔϧυʹσʔλΛอଘͭͭ͠ɺදࣔ ͍͍ͨ͋͠ɺͦͷΑ͏ͳΧελϜϒϩοΫΛ࡞ɻ attributes: { author: { type: 'string', source: 'meta',
meta: 'author' }, }, ΧελϜϒϩοΫͷσʔλͷऔಘઌΛΧελϜϑΟʔϧυʹ͢Δ͜ͱ͕ग़དྷΔɻ Attributes | Block Editor Handbook | WordPress Developer Resources 20
ʮϦχϡʔΞϧςʔϚͷมߋͰͿͬ ͱΜͩΒࠔΔͷϓϥάΠϯʯ Plugin Territory – WordPressͷͦͷॲཧςʔϚͰΔ͖͔ϓϥάΠϯͰΔ͖͔ʁ | Firegoby 21
ςʔϚͷมߋͰίϯςϯπ͕ͿͬඈͿ ͜ͱ͍͚͋ͬͯͳ͍ɻ 22
ςʔϚ͕มߋ͞ΕΔέʔε • AMP ϓϥάΠϯɻಠࣗͷςʔϚػߏΛ࣋ͭɻ • ࠷ۙগͳ͍͕ɺϞόΠϧઐ༻ςʔϚ 23
<article> <h1><?php the_title();?></h1> <?php the_content();?> <?php wp_link_pages();?> </article> Ͱɺίϯςϯπ͕͖ͪΜͱશͯు͖ग़͞ΕΔΑ͏ʹ͢Δͷ͕ཧ ɻ
get_post_metaɺɺACF ͷ get_field ͳͲجຊతʹɺςʔ ϚͰ༻͍Δ͖Ͱͳ͍ɻ 24
ΧελϜϑΟʔϧυͷΛग़ྗ͍ͨ͠ͷͰ͋Εɺ add_filter( 'the_content', function( $content ) { ob_start(); ?> <div>
<?php get_post_meta( get_the_ID(), 'key', true );?> </div> <?php $append = ob_get_clean(); return $content.$append; } ); 25
4. ςʔϚʹɺՄೳͳݶΓʮαΠτͷݟͨʯ Ҏ֎ͷࣄΛͤ͞ͳ͍ɻ • ςʔϚͰΰϦΰϦHTMLͱ͔Λॻ͖ग़ͨ͠Β͍͍ͩͨԫ৴ ߸ɻ • ΧελϜϒϩοΫΛ࣮ -> ͦͷ
CSS ΛςʔϚͰ࣮ͱ͍͏ ͷ͕ྲྀΕͱͯ͠ྑͦ͞͏ɻ 26
ςʔϚʹͤΔ͖ཁૉ • ϔομʔɾϑολʔɾαΠυόʔͳͲͷϨΠΞτ෦ͷ࣮ ɻ • CSSͰͷ০ • ϔομʔը૾ɺεϥΠυγϣʔͳͲɺϏδϡΞϧ͕ϝΠϯͳ ͷɻଘࡏ͠ͳͯ͘ɺ࠷ݶͷίϯςϯπͷఏڙʹࢧোͷ ແ͍ͷɻ
27
5.ςʔϚ͕ಛఆͷϓϥάΠϯʹґଘ͢Δ͜ͱ ͋ͬͯͳΒͳ͍ɻ • ϓϥάΠϯΛఀࢭͨ͠ͱ͖ʹɺςʔϚ͕Τϥʔʹͳ͍͚ͬͯͳ ͍ɻ • ຊମޓੑΛकΔ͕ɺϓϥάΠϯ࡞ऀͷํ࣍ୈɻ • PHPͷόʔδϣϯΞοϓʹϓϥάΠϯ͕͍͍͚ͭͯͳ͍έʔε ɻ
• ϓϥάΠϯ͕ఀࢭͯ͠ɺ80%Ґͷঢ়ଶͰػೳ͢ΔΑ͏ʹ࡞Δɻ 28
• 5.2ͰՃ͞ΕͨαΠτϔϧεػೳͰɺΛىͨ͜͠ϓϥ άΠϯΛఀࢭͨ͠ঢ়ଶͰϩάΠϯग़དྷΔػೳ͕Ճ͞Εͨ ͕ɺͦͷ߹ͷσόοάࠔʹɻ 29
WordPress ͷ ڧΈ֦ுੑɾɾɾʁ • WordPress ͷڧΈɺ๛ͳϓϥάΠϯͱ֦ுੑͩͱ͔ݴΘΕΔ ͜ͱ͋ΔΑ͏ͳɻ • ϓϥάΠϯɺಠࣗఆٛͷΧελϜϑΟʔϧυʹରԠ͍ͯ͠ͳ ͍ɻ
• ެࣜϨϙδτϦܝࡌςʔϚͱಉ͡Α͏ʹςʔϚΛ࡞͍ͬͯ͘͜ͱ ॏཁɻ • Theme Developer Handbook ͕ۭ݀͘΄Ͳಡ͏΄Μͱʹɻ 30
ahmadawais/create-guten-block ΧελϜϒϩοΫϓϥάΠϯͷ։ൃڥΛαΫοͱ࡞ΔϠπɻ WordPress/gutenberg-examples ϒϩοΫͷαϯϓϧɺνϡʔτϦΞϧɻ 31
JS ͍͠ɾɾɾʁ • ҰੲલΑΓใଟ͍ɻ։ൃڥͷඋ؆୯ɻ؆୯ͳΧελϜϒϩοΫΛ࡞ ΕΔ͘Β͍ͷ React ྗͳΒׂͱ͙͢ʹʹ͚ͭΒΕΔͷͰɺϏϏΒͣʹ৮ͬͨ ํ͕ྑ͍ɻ • ʮReact
ͰΰϦΰϦΞϓϦέʔγϣϯΛ࡞ΔʯΈ͍ͨͳͱ͜Ζ·Ͱཁٻ͞Ε ͳ͍ɻ • ͪΐͬͱͨ͠HTMLͷίϯϙʔωϯτΛ࡞ΕΔ͚ͩͰ͔ͳΓ͍উख͕มΘΔɻ • WordPress ͰαΠτΛ࡞ΔݶΓɺͲʔ͍͔ͤͭ JS ͱྑ͘ͳΒͳ͚Ε͍͚ ͳ͍͕དྷΔɻ͖͋ΒΊͯ JS ͱ React ͬͱ͜ɻ 32
Thanks! Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit Blog: https://torounit.com 33