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
プラグインやっちまった小咄集
Search
Toro_Unit (Hiroshi Urabe)
March 24, 2017
Programming
0
4.2k
プラグインやっちまった小咄集
WordBench東京 3月勉強会「WordPress プラグイン祭り」での登壇資料です。
Toro_Unit (Hiroshi Urabe)
March 24, 2017
Tweet
Share
More Decks by Toro_Unit (Hiroshi Urabe)
See All by Toro_Unit (Hiroshi Urabe)
ブロックテーマでサイトリニューアルした話 / Toro_Unit / 2025.04.12 @ Shinshu WordPress Meetup
torounit
1
220
Cloudflare Meetup Nagano Vol.3
torounit
1
100
僕が考える 「HTML サイトを WordPress にする」話 / 2023-11-05 Kansai WordPress Meetup
torounit
9
7.6k
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
460
ブロックエディターを用いたWEBサイト開発とカスタムフィールドのあり方を考える。/ WordCamp Japan 2021
torounit
0
570
ブロックエディターで変わる、WordPress でのウェブサイト開発 / SaCSS Special 26
torounit
4
890
Other Decks in Programming
See All in Programming
AHC051解法紹介
eijirou
0
640
Kiroで始めるAI-DLC
kaonash
2
500
私の後悔をAWS DMSで解決した話
hiramax
4
180
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
290
MLH State of the League: 2026 Season
theycallmeswift
0
210
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
130
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
120
ProxyによるWindow間RPC機構の構築
syumai
1
260
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
0
230
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
1k
Trem on Rails - Prompt Engineering com Ruby
elainenaomi
1
100
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
18
9.6k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
Designing Experiences People Love
moore
142
24k
The Pragmatic Product Professional
lauravandoore
36
6.8k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Six Lessons from altMBA
skipperchong
28
4k
Practical Orchestrator
shlominoach
190
11k
Being A Developer After 40
akosma
90
590k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Done Done
chrislema
185
16k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Transcript
ϓϥάΠϯͬͪ·ͬͨখᄉू ຊʹ͋ͬͨϓϥάΠϯͷڪ͍ Toro_Unit / 2017.03.24 @WordBench Tokyo. 1
ࢠᐌɺաࣕෆվɺੋҦաᛘ "ࢠᐌ͘ɺաͪͯվΊ͟ΔɺੋΛաͱҦ͏ɻ" ʰޠʱӴྶެ29 2
$ whoami ͜͡͠ΐ͏͔͍ 3
Toro_Unit ෦ ߛ (͏Β ͻΖ͠) 28͍͞ʹͳΓ·ͨ͠ ϑϦʔϥϯε Frontend Engineer /
Plugin Developer / Web Designer WordBench Nagano Moderator Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit Blog: https://torounit.com 4
ݝদຊࢢ͔Β͖·ͨ͠ɻ1 • WordBenchʹͥͻͲ͏ͧɻ • ࣍ճ 5/13ʢʣͰ͢ʂ • ొஃऀืूதͰ͢ʂ 1 https://commons.wikimedia.org/wiki/File:
130608_Matsumoto_Castle_Matsumoto_Nagano_pref_Japan02bs4.jpg Author: 663highland. License: CC BY 2.5 5
6
Plugins • Custom Post Type Permalinks • Simple Post Type
Permalinks • Responsive Slide • Other... Theme • Vanilla 7
8
WordCamp Kyoto 2017 • 2017.06.24 ~ 25 • ژେֶ ࠃࡍՊֶΠϊϕʔγϣϯ౩
9
Ξοϓσʔτͨ͠Βന͍ը໘ʹͳͬͨ ใࠂ͕͍ͬͺ͍དྷͨࣄ݅ɻ @Custom Post Type Permalinks 1.5.1 10
• ͋ΔͷਂϓϥάΠϯͷΞοϓσʔτΛߦ͏ɻ ͦͯ͠ཌேɾɾɾ 11
12
Why!!!!???? 13
• Travis CI Λར༻ͯ͠ɺPHPUnit ΛΒ͍ͤͯͨΓɺPHPͷจ ๏νΣοΧʔΛΒ͍ͤͯΔɻ • σϓϩΠΛࣗಈԽ͍ͯ͠ΔͷͰɺςετʹ߹֨͠ͳ͍ͱσϓ ϩΠग़དྷͳ͍Α͏ʹͳ͍ͬͯͨɻ 14
Why!!!!???? 15
ݪҼɻ 16
17
18
19
• PHPͷจ๏తʹɺOKɻ • खݩͷ։ൃڥͰಛʹແ͍ɻ • PHPUnit ͰΤϥʔʹͳΒͳ͍ͷͰɺݕग़Ͱ͖ͳ͔ͬͨɻ 20
༷ʑͳϨΠϠʔͰςετΛߦ͏͜ͱେࣄɻ • LintϚδେࣄɻ • PHPUnitᘳͰͳ͍͠ɺ༷ʑͳϨΠϠʔͰςετΛߦ͏ ͜ͱେࣄɻ • PHP_CodeSniffer and WordPress-Coding-Standards
ΛͱΓ ͋͑ͣೖΕΑ͏ɻ • ໘Ͱશ෦ରԠ͠Α͏ɻษڧʹͳΔࣄ݁ߏ͓͓͍Αɻ 21
@see όάΛͲͷΑ͏ʹݟ͚ͭΔ͔ // Speaker Deck 22
ͦͷ΄͔ͬͪ·ͬͨूɻ 23
҆қʹཁΛ΄͍΄͍࣮ 24
ʮ͜Μͳػೳ΄͍͠Ͱ͢ʂʯΛ҆қʹड͚ೖΕΔͱͭΒ͍ʂ 25
• ͕ࣗେͯ͠Θͳ͍ػೳͩͱݕূ͕͍͠ɻ • ʢͦͦԿΛݕূ͖͢ʁʣ • ຊʹదͳઃܭɾ࣮͕͍͠ɻ • ͳͷͰɺΒ͔͢έʔε͕ଟ͍ɻ • ޙʑ͍Ζ͍Ζෛ୲ʹͳΔ
26
͕ࣗओମతʹऔΓΊΔ͔Ͳ͏͔ʁ࣭Λอ্ͭͰେɻ • ͦΕΛ࣮͢ΔͷͰ͋Εɺ͕ࣗඞཁͩͱࢥ্ͬͨͰɻ • ཁΛग़͖ͯͨ͠ਓר͖ࠐΉͷେ͔ɻ 27
get_option( 'key' , default ); 28
͜ͷσϑΥϧτΛม͑ͨ͘ͳͬͨɻʢtrue -> falseʣ ͔͠͠ɺ ֘ͷ Option ͕ଘࡏ͍ͯ͠ͳ͍߹ɺΞοϓσʔτ Ͱڍಈ͕มΘͬͯ͠·͏ɻ ໓ۤࠔͬͨɻ 29
σϑΥϧτͷOptionΛget_optionͰߦ͏ͷෆຯ͍ɻ ͦͦऔಘ࣌ʹ͢Δ͜ͱʁ 30
add_option() Λ༻͍ͯɺDBʹอଘ͢͠ɻ 31
register_activation Ͱͷಈ࡞ڥͷݕূ 32
• ଠޑͰ༗໊ͳਓ੍͕࡞ͨ͠ϓϥάΠϯͰى͖ͨ൵ܶɻ • PHPͷόʔδϣϯ͕5.6ະຬͷڥͰɺϓϥάΠϯ͕ಈ࡞͠ ͳ͍Α͏ʹมߋ͞Ε͍ͯͨɻ • register_activation Ͱ༗ޮԽͰ͖ͳ͍Α͏ʹͳ͍ͬͯͨͷ Ͱɺແͦ͞͏͕ͩɾɾɾɾ 33
• ߋ৽࣌ʹɺregister_activation ൃՐ͠ͳ͍!!! • ͪͳΈʹੲ(3.1ະຬ)ͷ͜ΖൃՐ͍ͯͨ͠Β͍͠ɻ #14915 • PHP5.5ҎԼͷڥͰߋ৽ͨ͠߹ɺ༗ޮʹͳͬͨ··!!! 34
• register_activation ͚ͩͰෆेɻґଘ͢ΔϓϥάΠϯ͕ ͋Δ߹ɺͦΕ͕ఀࢭͨ͠߹ͳͲ͋Δɻ • admin_notices ͰɺΤϥʔৗʹදࣔ͢͠ɻ 35
ͦͦΞοϓσʔτͷݕग़ͭΒ͍ɻ 36
• WordPress ʹɺϓϥάΠϯͷΞοϓσʔτΛݕ͢ΔAPI ͕ಛʹଘࡏ͠ͳ͍ɻ • register_update_hook ఏҊ͞Ε͕ͨɺ࣮͞Εͳ͔ͬ ͨɻ#14912 • ϓϥάΠϯ࡞Δͱ͖ɺϓϥάΠϯͷόʔδϣϯΛ
Option ʹಥͬࠐΜͰ͓͘ͱʹཱͭ͜ͱ͋Δ͔͠Εͳ͍ɻ 37
Singleton ਏ͍ɻ 38
• WP-CLIͰϓϥάΠϯͷͻͳܗΛੜ͍ͯ͠Δ߹ɺϓϥά ΠϯͷϝΠϯͷϑΝΠϧࣗಈతʹinclude͞ΕΔɻ • ϓϥάΠϯ͕࣮ߦ͞Εͨঢ়ଶͰςετ͕͡·Δʂ • ςετ͕ͻ͡ΐʔʹ໘ͳίτʹͳΔɻ 39
ͦͷ Singleton ຊʹඞཁʁ ඞཁͳέʔε͋Δʹ͋Δͣɻ 40
• ͦͦɺϓϥάΠϯͷClassΛϢʔβʔ͕উखʹ͏Α͏ ͳέʔεΛఆ͢Δͷແҙຯɻ • ϢʔβʔαΠυͰɺϓϥάΠϯͷΠϯελϯεΛ৮Β͍ͤͨ Α͏ͳ߹ɺ૭ޱʹͳΔClassͱ͔Λ࡞ͬͨํ͕ྑ͍ɻ • ϢʔβʔଆͰ͜ͷϓϥάΠϯΛΧελϚΠζग़དྷΔΑ͏ʹ… ͬͯͷͦΕͦ͜ɺཁ͕དྷͨΒߟ͑Δ͜ͱɻ 41
Others • plugin_basename Λ͏ͱςετͰࠔΔ͜ͱ͕༗ͬͨΓ͢ Δɻʢςετ࣌ͷWordPressͷwp-contentͷதʹϓϥάΠϯ ͕ଘࡏ͍ͯ͠ͳ͍ͨΊʣ • ϓϥάΠϯҙ֎ʹ࡞Γखͱ͓͖ͯ͠߹͍͕ൃੜ͢Δͷ Ͱɺςετେࣄɻ͕ؔඇਪʹͳͬͨΓͷཧ༝Ͱॻ͖ ͑ΔࡍͳͲҙਤͤ͵όά͕ࠞೖ͢ΔՄೳੑɻ
• ҆қͳ༷มߋɺେࣄΩέϯɻ 42
͠ΜͲ͍ʂ 43
͚Ͳ... ֶͼଟ͍ɻ 44
• ϓϧϦΫΤετ, issue, ποίϛͳͲͰษڧʹͳΔࣄଟ͍ɻ • ʮςετͱ͔Ͳ͏ͯ͠ྑ͍͔ղΒͳ͍Ͱ͎͢ʢʼʻʣʯͱ͔ ݴ͏ͱɺϓϧϦΫ͕དྷͨΓɺϒϩάͷωλʹ͞ΕͨΓ͢Δɻ ϦϦʔε͠ͳ͍ͱɺϚαΧϦ͢ΒඈΜͰ͜ͳ͍ɻ 45
ࣗͰମݧͯͦ͜͠! 46
Let's Release Your Plugin!!! 47
Thanks! Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit Blog: https://torounit.com 48