Slide 1

Slide 1 text

͸͡ΊͯͷϓϥάΠϯͷͭ͘Γ͔ͨ Toro_Unit @2017.12.02 / WordBench Nagano vol 14. 1

Slide 2

Slide 2 text

$ whoami ͜͡͠ΐ͏͔͍ 2

Slide 3

Slide 3 text

Toro_Unit ઎෦ ߛ (͏Β΂ ͻΖ͠) ϑϦʔϥϯε Frontend Engineer / Web Designer Plugin and Theme Developer Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit Blog: https://torounit.com 3

Slide 4

Slide 4 text

Plugins. • Custom Post Type Permalinks • Active installations: 90,000+ • Downloads: 450,000 + • Simple Post Type Permalinks • Powerful Posts Per Page (PPPP) • Responsive Slide • and more... 4

Slide 5

Slide 5 text

Vanilla — Free WordPress Themes 5

Slide 6

Slide 6 text

Contribution • WordBench ௕໺ ϞσϨʔλʔ • WordCamp Kyoto 2017 / Kansai 2016 / Tokyo 2016 • WordCamp Tokyo 2017 Speaker • WordBench.org • VCCW Team • etc... 6

Slide 7

Slide 7 text

WordPress Plugins • WordPress Λ֦ு͢Δػೳɻ • ެࣜϨϙδτϦʹ͸ɺ50000 Ҏ্ͷ ϓϥάΠϯ͕ܝࡌ͞Ε͍ͯΔɻ(؅ཧ ը໘͔ΒΠϯετʔϧग़དྷΔ΍ͭ) 7

Slide 8

Slide 8 text

΋ͪΖΜࣗ࡞Ͱ͖Δɻ 8

Slide 9

Slide 9 text

ࣗ࡞͢ΔϝϦοτ • ϓϥάΠϯʹͨ͠ํ͕ɺ࢖͍ճ͕͠༰қɻ • ςʔϚͷfunctions.php ʹॻ͘ͱͪ͝Όͪ͝Ό͢Δ͠ɺςʔϚ Λม͑Δͱͦͷػೳ͕ࢮ͵ɻࡶͳ࡞ΓํΛͯ͠ΔͱαΠτ͕ յΕΔɻ 9

Slide 10

Slide 10 text

ϓϥάΠϯͷͭ͘Γ͔ͨ 10

Slide 11

Slide 11 text

1. PHP ϑΝΠϧΛ࡞੒ͯ͠ɺwp-content/plugins ʹ഑ஔɻ • plugins ௚Լʹ php ϑΝΠϧΛஔ͍ͯ΋OK͕ͩɺϓϥάΠϯͷϑΝΠϧ͕૿͑ͨΓ͢ΔͷͰɺσΟϨΫτϦΛ࡞ͬͯͦͷதʹ ೖΕͨ΄͏͕Θ͔Γ΍͍͢ɻ 11

Slide 12

Slide 12 text

2.PHPϑΝΠϧͷઌ಄ʹίϝϯτΛهड़

Slide 13

Slide 13 text

13

Slide 14

Slide 14 text

Ͱ͖ͨɻ 14

Slide 15

Slide 15 text

͓ΘΓ 15

Slide 16

Slide 16 text

ͱ͍͏Θ͚ʹ΋͍͔ͳ͍ͷͰ 16

Slide 17

Slide 17 text

ϓϥάΠϯΛ࢖ͬͯɺWordPress ΛΧ ελϚΠζ͢Δɻ 17

Slide 18

Slide 18 text

Action Hooks Filter Hooks 18

Slide 19

Slide 19 text

ΞΫγϣϯϑοΫɾϑΟϧλʔϑοΫ • WordPress ͷಈ࡞Λมߋ͢ΔͨΊͷAPI • ΞΫγϣϯϑοΫ͸ɺಈ࡞Λ௥Ճ͢Δɻ(දࣔͨ͠ΓɺDBʹ อଘͨ͠Γ) • ϑΟϧλʔϑοΫ͸ɺ஋Λมߋ͢Δɻ 19

Slide 20

Slide 20 text

ϑΟϧλʔϑοΫͷྫ function sugoi_titie( $title ) { return '͍ͧ͢͝ʔ:' . $title; } add_filter( 'the_title', 'sugoi_titie' ); 20

Slide 21

Slide 21 text

21

Slide 22

Slide 22 text

ΞΫγϣϯϑοΫͷྫ function sptp_admin_notices() { $message = '͍ͧ͢͝ʔɻ'; printf( '

%s

', $message ); } add_action( 'admin_notices', 'sptp_admin_notices'); 22

Slide 23

Slide 23 text

23

Slide 24

Slide 24 text

ϑοΫͷҰཡ 2700 ݸ͘Β͍͋Δɻ • wpdocs.osdn.jp/ϓϥάΠϯ_API/ΞΫγϣϯϑοΫҰཡ • wpdocs.osdn.jp/ϓϥάΠϯ_API/ϑΟϧλʔϑοΫҰཡ • developer.wordpress.org/reference/hooks/ 24

Slide 25

Slide 25 text

Shortcode API 25

Slide 26

Slide 26 text

γϣʔτίʔυͱ͸ɻ [gallery]ɹ౳ɺͷ[]ͰғΘΕͨϞϊɻίϨΛهࣄ಺ʹهड़͢Δͱ ͦͷγϣʔτίʔυʹม׵͞ΕΔɻ Contact Form 7 ͷϑΥʔϜ΋ίϨΛ࢖ͬͯઃஔɻ [contact-form-7 id="1" title="͓໰͍߹ΘͤϑΥʔϜ"] 26

Slide 27

Slide 27 text

function sugoi_shortcode( $atts ) { $param = shortcode_atts( array( 'count' => 1, ), $atts ); return str_repeat( '͍͢͝', $param['count'] ); } add_shortcode( 'sugoi', 'sugoi_shortcode' ); 27

Slide 28

Slide 28 text

28

Slide 29

Slide 29 text

29

Slide 30

Slide 30 text

WordCamp Kansai ϋϯζΦϯ΍Γ·ͨ͠ɻ ʮ͜ͷهࣄ͸˓෼ͰಡΊ·͢ʯϓϥάΠ ϯΛγϣʔτίʔυͰ࡞Δɻ wckansai2016/plugin-hands-on 30

Slide 31

Slide 31 text

ଞʹ΋༷ʑͳAPI WordPress API - WordPress Codex ೔ຊޠ൛ μογϡϘʔυ΢ΟδΣοτ API/σʔλϕʔε API/HTTP API/ ϑΝΠϧϔομʔ API/ϑΝΠϧγεςϜAPI/ϝλσʔλ API/ Options API/ϓϥάΠϯ API/ΫΠοΫλάAPI/Rewrite API/ Settings API/γϣʔτίʔυ API/Theme Modification API/ Theme Customization API/Transients API/WordPress ΢Ο δΣοτ API 31

Slide 32

Slide 32 text

WP-CLI Λ࢖͏ͱϓϥάΠϯͷͻͳܗΛαΫοͱ ࡞ΕΔ $ wp scaffold plugin my-plugin-name 32

Slide 33

Slide 33 text

Plugin Handbook ެࣜͷϓϥάΠϯͷυΩϡϝϯτɻӳޠ ͚ͩͲɺίʔυͷαϯϓϧͳͲ΋ଟ͍ͷ ͰͳΜͱ͔ͳΔɻ https://developer.wordpress.org/ plugins/ 33

Slide 34

Slide 34 text

ͱΓ͋͑ͣ • ීஈ࢖͍ճ͍ͯ͠ΔίʔυΛϓϥάΠϯʹ͢Δͱ͜Ζ͔Βε λʔτͯ͠ΈΑ͏ɻ • ϑοΫͱɺγϣʔτίʔυ͕࢖͑Δ͚ͩ΋ීஈͷαΠτ੍࡞ ʹ͍ͩͿ໾ཱͭɻ 34

Slide 35

Slide 35 text

ͭ·͍ͮͨΒ • αϙʔτϑΥʔϥϜͰฉ͍ͯΈΔɻ • ਓͷίʔυΛಡΜͰΈΔɻ • WordBench ͱ͔Ͱฉ͍ͯΈΔɻ 35

Slide 36

Slide 36 text

ࢀߟॻ੶ αΠτͷ֦ுੑΛඈ༂తʹߴΊΔ WordPressϓϥάΠϯ։ൃͷόΠϒϧ 36

Slide 37

Slide 37 text

Thanks! Github: @torounit Twitter: @Toro_Unit Facebook: fb.me/torounit Blog: https://torounit.com 37