Upgrade to Pro — share decks privately, control downloads, hide ads and more …

functions.phpからプラグインへ

Ippei Sumida
February 26, 2021

 functions.phpからプラグインへ

WP ZoomUP 59『はじめてのプラグイン作成』でお話ししたスライドです。

#WordPress #WPZoomUP

Ippei Sumida

February 26, 2021
Tweet

More Decks by Ippei Sumida

Other Decks in Technology

Transcript

  1. Ippei Sumida 2020.02.26
    functions.php͔ΒϓϥάΠϯ΁
    ϓϥάΠϯΛ࡞ͬͯΈΑ͏

    View Slide

  2. ϓϥάΠϯ ςʔϚ
    functions.php

    View Slide

  3. ϓϥάΠϯ޲͖ͳΧελϚΠζ

    ɹɹςʔϚ޲͖ͳΧελϚΠζ

    View Slide

  4. • จࣈͷ૷০

    • ը૾ͷ૷০ʢnot Ճ޻ʣ

    • ϨΠΞ΢τͷௐ੔

    • ςʔϚݻ༗ͷΧελϜϒϩοΫ

    • ςʔϚͷઃఆ

    • ͦͷςʔϚͷΧελϚΠζ
    ςʔϚ޲͖
    ςʔϚʹґଘ

    View Slide

  5. • ؅ཧը໘ͷΧελϚΠζ

    • αΠτઃఆɾػೳͷ௥Ճɾมߋ

    • γϣʔτίʔυ

    • ΧςΰϦ

    • ΧελϜϒϩοΫ

    • REST API

    • ڞ௨ͳද੍ࣔޚ

    • ͦͷαΠτͷΧελϚΠζ
    ϓϥάΠϯ޲͖

    View Slide

  6. ϓϥάΠϯ ςʔϚ
    functions.php
    ςʔϚʹؔΘΔ͜ͱ
    αΠτʹؔΘΔ͜ͱ

    View Slide

  7. ϓϥάΠϯ ςʔϚ
    functions.php
    ςʔϚʹؔΘΔ͜ͱ
    αΠτʹؔΘΔ͜ͱ
    Ͳͬͪʹॻ͍ͯ΋ಈ͘

    View Slide

  8. ͳͥϓϥάΠϯͳͷ͔

    View Slide

  9. ςʔϚʹґଘ

    View Slide

  10. ΧελϚΠζ
    ͠Α͏ʂ

    View Slide

  11. ΧελϚΠζ
    ͠Α͏ʂ
    functions.php
    ࡞੒ɾमਖ਼ˍΞοϓϩʔυ

    View Slide

  12. ΧελϚΠζ
    ͠Α͏ʂ
    functions.php

    View Slide

  13. ΧελϚΠζ
    ͠Α͏ʂ
    functions.php
    ςʔϚA

    View Slide

  14. ςʔϚม͍͑ͨʂ
    functions.php
    ςʔϚA

    View Slide

  15. ςʔϚม͍͑ͨʂ
    functions.php
    ςʔϚB
    functions.php
    ςʔϚA

    View Slide

  16. ςʔϚม͍͑ͨʂ
    functions.php
    ςʔϚB
    functions.php
    ςʔϚA
    ΧελϚΠζ͕ফ͑Δʂ

    View Slide

  17. functions.php
    ίϐʔʂ
    functions.php
    ςʔϚB
    functions.php
    ίϐʔ

    View Slide

  18. functions.php
    ίϐʔʂ
    functions.php
    ςʔϚB
    functions.php
    ίϐʔ
    ςʔϚBݻ༗ͷΧελϚΠζ͕

    ফ͑Δʂ

    View Slide

  19. ΧελϚΠζ
    ՕॴҠ২ʂ
    functions.php
    ςʔϚB
    functions.php
    Ҡ২

    View Slide

  20. ΧελϚΠζ
    ՕॴҠ২ʂ
    functions.php
    ςʔϚB
    functions.php
    Ҡ২
    ΧελϚΠζͨ͠Օॴ͚ͩ

    Ҡ২Ͱ͖Δࣗ৴͋Δʁ

    View Slide

  21. View Slide

  22. ΧελϚΠζͯ͠

    ࡞ͬͨؔ਺

    View Slide

  23. ςʔϚͷؔ਺Λ

    ࢖ͬͯΔ

    View Slide

  24. ΧελϚΠζ
    ͠Α͏ʂ
    plugin.php
    ࡞੒ɾमਖ਼ˍΞοϓϩʔυ
    ϓϥάΠϯC

    View Slide

  25. ΧελϚΠζ
    ͠Α͏ʂ
    plugin.php
    ϓϥ΢ΠϯC

    View Slide

  26. ςʔϚม͍͑ͨʂ
    functions.php
    ςʔϚB
    functions.php
    ςʔϚA
    plugin.php
    ϓϥ΢ΠϯC
    αΠτʹӨڹͳ͠

    View Slide

  27. functions.php͔Β

    ϓϥάΠϯ΁

    View Slide

  28. ྫɿμογϡϘʔυɹɹ
    ɹɹ΢ΟδΣοτ

    View Slide

  29. wp-content/themes/some-theme/functions.php

    View Slide

  30. ϓϥάΠϯ ςʔϚ
    functions.php
    μογϡϘʔυͷ΢ΟδΣοτ͸ςʔϚ͕
    มΘͬͯ΋දࣔ͠ଓ͚ΔʰαΠτͷΧελϚΠζʱ
    ςʔϚʹؔΘΔ͜ͱ
    αΠτʹؔΘΔ͜ͱ

    View Slide

  31. Ͱ΋Ή͔͍ͣ͠ΜͰ͠ΐʁ

    View Slide

  32. ϓϥάΠϯ࡞੒ɺ࣮͸͜Μͳʹ؆୯ʂ
    MajiͰKantan 5εςοϓ
    1.ϓϥάΠϯσΟϨΫτϦΛ࡞Δ

    2.readme.txtΛࢦఆͷϑΥʔϚοτͰͭ͘Δ

    3.[ϓϥάΠϯσΟϨΫτϦ໊].phpʹࢦఆͷϑΥʔϚοτͰίϝϯτΛॻ͘

    4.ίʔυΛॻ͘

    •functions.phpͷίʔυΛΧοτˍϖʔετ͢Δ

    5.ϓϥάΠϯσΟϨΫτϦΛΞοϓϩʔυ͢Δ

    •ߋ৽͍ͯ͠Ε͹ɺςʔϚͷfunctions.php΋Ξοϓϩʔυ͢Δ

    View Slide

  33. 1. ϓϥάΠϯσΟϨΫτϦΛ࡞Δ

    View Slide

  34. wp-content
    plugins
    dashboard-widget
    σΟϨΫτϦΛͭ͘Δʂ


    ੍࡞ɾஶ࡞

    ━━━━━

    ⡹⡲⡼

    View Slide

  35. •wp-content/plugins/ ʹ͓޷Έͷ໊͓લͰ

    •খจࣈͱϋΠϑϯͱ਺ࣈͷ૊Έ߹Θ͕ͤແ೉

    •ඞͣҰҙʹͳΔΑ͏ʹʂʂ
    wp-content
    plugins
    dashboard-widget
    σΟϨΫτϦΛͭ͘Δʂ
    ิ଍

    View Slide

  36. 2. readme.txtΛͭ͘Δ

    View Slide

  37. ެࣜʹαϯϓϧ͋Δ

    View Slide

  38. 3. PHPʹίϝϯτΛॻ͘

    View Slide

  39. wp-content
    plugins
    dashboard-widget
    σΟϨΫτϦͱಉҰ໊ͷPHPϑΝΠϧΛ࡞Δ
    dashboard-widget.php

    View Slide

  40. ࠷௿ݶ͸͜Ε͚ͩʂ

    View Slide

  41. ެࣜʹαϯϓϧ͋Δ

    View Slide

  42. 4. ίʔυΛॻ͘
    લʹ

    View Slide

  43. PHPίʔσΟϯάن໿ΛकΖ͏ʂ
    WordPressʹ͸ίʔσΟϯάن໿ʢ= ॻ͖ํʣ͕͋ΓɺͦΕʹैͬͯ
    ίʔσΟϯά͢Δඞཁ͕͋Γ·͢ɻॻ͖ํ͕౷Ұ͞Εͨίʔυ͸Մಡ
    ੑ͕ൈ܈ʹ্͕Γ·͢ɻʢ※ 3ϲ݄લͷࣗ෼͸ଞਓʣ

    ίʔσΟϯάن໿͸HTML, CSS, JavaScript, PHP͝ͱʹܾ·͍ͬͯ·
    ͢ɻެࣜͷυΩϡϝϯτʹهड़ํ๏͕ެ։͞Ε͍ͯ·͢ɻ

    View Slide

  44. ؓ࿩ٳ୊
    ※ ݸਓͷײ૝Ͱ͢

    View Slide

  45. ϑϨʔϜϫʔΫ ίʔσΟϯάن໿
    Laravel PSR-2
    Symfony PSR-12 (PSR-2ͷ֦ு) ϕʔε
    CakePHP PSR-2
    Yii PSR-2
    ओཁPHPϑϨʔϜϫʔΫͷίʔσΟϯάن໿

    View Slide

  46. PSR
    PHP Standard Recommendation

    View Slide

  47. PHP-FIG
    PHP Framework Interoperability Group

    View Slide

  48. PHPʹؔ͢Δʰ͓࡞๏ʱΛܾΊ͍ͯΔάϧʔϓ
    https://www.php-
    fi
    g.org

    View Slide

  49. ࠷ۙͷPHP͸΄ͱΜͲɺ

    PSR-2͔PSR-12

    View Slide

  50. WordPress͸ʁ

    View Slide

  51. ಠࣗ

    View Slide

  52. View Slide

  53. View Slide

  54. ͳΜͰ΍ʁ

    View Slide

  55. ؓ࿩ٳ୊͓ΘΓ

    View Slide

  56. 4. ίʔυΛॻ͘

    View Slide

  57. wp-content/themes/some-theme/functions.php

    View Slide

  58. wp-content/themes/some-theme/functions.php
    ʘ
    Χοτ! ʗ

    View Slide

  59. wp-content/plugins/dashboard-widget/dashboard-widget.php

    View Slide

  60. ʘ
    ϖʔετ! ʗ
    wp-content/plugins/dashboard-widget/dashboard-widget.php

    View Slide

  61. ׬


    ੍࡞ɾஶ࡞

    ━━━━━

    ⡹⡲⡼

    View Slide

  62. ิ଍

    View Slide

  63. wp-content/plugins/tutorial-widget/tutorial-widget.php
    ҰҙʹͳΔΑ͏ʹʂ
    ※઀಄ࣙʹϓϥάΠϯ໊ೖΕΔͱΑ͍
    ※Ϋϥεͷϝιου໊͸ͷͧ͘

    View Slide

  64. 5. Ξοϓϩʔυ͢Δ
    લʹ

    View Slide

  65. ಈ࡞֬ೝͯ͠Ξοϓϩʔυ͍ͨ͠

    View Slide

  66. wp-env
    @wordpress/env

    View Slide

  67. WordPress։ൃ؀ڥΛ

    αΫοͱ࡞Δ΍΂ʔ΍ͭ
    Hi!

    View Slide

  68. http://localhost:8888

    ID: admin

    PW: password
    ΅͘͸yarn೿ʂ

    View Slide

  69. wp-envͷ͕͜͜ਪ͠ϙΠϯτ
    • ϩʔΧϧʹ͸npmʢyarnʣͱDocker͕͋Ε͹͍͍

    • ෳ਺ϓϩδΣΫτ͋ͬͯ΋ɺผ෺ѻ͍Ͱ͖Δ

    • ʢ࡞੒࣌͸ʣৗʹ·ͬ͞Β

    • ͍ͭͰ΋͜ΘͤΔ

    • Dockerͷϩΰ͔Θ͍͍

    • yarn΋͔Θ͍͍
    υϠΝ!

    View Slide

  70. ࣗಈͰΠϯετʔϧࡁΈ

    ཁΞΫςΟϕʔτ

    View Slide

  71. View Slide

  72. 5. Ξοϓϩʔυ͢Δ

    View Slide

  73. wp-content
    plugins
    dashboard-widget
    σΟϨΫτϦΛ·ΔͬͱΞοϓϩʔυʂ
    dashboard-widget.php

    View Slide

  74. wp-content
    themes
    some-theme
    functions.phpΛίϐϖͯͨ͠ΒςʔϚ΋
    functions.php

    View Slide

  75. ཁΞΫςΟϕʔτ

    View Slide

  76. View Slide

  77. ࢀߟɿ΅͘ͳΒ

    View Slide

  78. View Slide

  79. ͜͏࡞Δ

    View Slide

  80. ͕࣌ؒ͋Ε͹આ໌

    View Slide

  81. Conclusion
    • functions.phpʹ͸ςʔϚͷΧελϚΠζɺ

    ϓϥάΠϯʹ͸αΠτͷΧελϚΠζΛهड़͢Δ

    • ϓϥάΠϯ࡞੒ʹඞཁͳͷ͸ɺͨͬͨͷ5εςοϓ

    • ίʔσΟϯάن໿ΛकΖ͏

    • άϩʔόϧͳ΋ͷʹ͸Ұҙͳ໊લΛ͚ͭΔ

    • wp-env͸ਆɻςʔϚ࡞੒ʹ΋࢖͑ΔΑ

    View Slide

  82. ֯ా Ұฏ
    Web Developer


    Freelance


    @ippey_s
    ͢Έͩɹ͍ͬ΃͍

    View Slide