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)
Cloudflare Meetup Nagano Vol.3
torounit
1
59
僕が考える 「HTML サイトを WordPress にする」話 / 2023-11-05 Kansai WordPress Meetup
torounit
9
7.4k
Cloudflare Pages に入門してみた / 2023-10-14 Cloudflare Meetup Nagano Vol.2
torounit
2
1.6k
ブロックエディタをゴリゴリに使い倒してサイトを作った話 / Kansai WordPress Meetup 2023 09 23
torounit
14
9.9k
ブロックエディターカスタマイズことはじめ #wpshinshu / 2023-06-17 Shinshu WordPress Meetup vol.24
torounit
1
380
FSE時代におけるWEBサイト制作の研究 #wpshinshu / 2023-05-20 Shinshu WordPress Meetup vol.23
torounit
0
420
ブロックエディターを用いたWEBサイト開発とカスタムフィールドのあり方を考える。/ WordCamp Japan 2021
torounit
0
550
ブロックエディターで変わる、WordPress でのウェブサイト開発 / SaCSS Special 26
torounit
4
860
Block Editor カスタマイズ入門 #WPmeetupOsaka / Get started customize for block editor
torounit
12
3.2k
Other Decks in Programming
See All in Programming
SwiftUI移行のためのインプレッショントラッキング基盤の構築
kokihirokawa
0
160
新宿駅構内を三人称視点で探索してみる
satoshi7190
2
120
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
400
「個人開発マネタイズ大全」が教えてくれたこと
bani24884
1
280
Unity Android XR入門
sakutama_11
0
180
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
8
1.5k
クックパッド検索システム統合/Cookpad Search System Consolidation
giga811
0
100
楽しく向き合う例外対応
okutsu
0
710
Jakarta EE meets AI
ivargrimstad
0
580
GoとPHPのインターフェイスの違い
shimabox
2
210
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.2k
はじめての Go * WASM * OCR
sgash708
1
110
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
13k
RailsConf 2023
tenderlove
29
1k
Scaling GitHub
holman
459
140k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.4k
Done Done
chrislema
182
16k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Bash Introduction
62gerente
611
210k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
How to train your dragon (web standard)
notwaldorf
91
5.9k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
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