WP ZoomUP 59『はじめてのプラグイン作成』でお話ししたスライドです。
#WordPress #WPZoomUP
Ippei Sumida 2020.02.26functions.php͔ΒϓϥάΠϯϓϥάΠϯΛ࡞ͬͯΈΑ͏
View Slide
ϓϥάΠϯ ςʔϚfunctions.php
ϓϥάΠϯ͖ͳΧελϚΠζ ɹɹςʔϚ͖ͳΧελϚΠζ
• จࣈͷ০• ը૾ͷ০ʢnot Ճʣ• ϨΠΞτͷௐ• ςʔϚݻ༗ͷΧελϜϒϩοΫ• ςʔϚͷઃఆ• ͦͷςʔϚͷΧελϚΠζςʔϚ͖ςʔϚʹґଘ
• ཧը໘ͷΧελϚΠζ• αΠτઃఆɾػೳͷՃɾมߋ• γϣʔτίʔυ• ΧςΰϦ• ΧελϜϒϩοΫ• REST API• ڞ௨ͳද੍ࣔޚ• ͦͷαΠτͷΧελϚΠζϓϥάΠϯ͖
ϓϥάΠϯ ςʔϚfunctions.phpςʔϚʹؔΘΔ͜ͱαΠτʹؔΘΔ͜ͱ
ϓϥάΠϯ ςʔϚfunctions.phpςʔϚʹؔΘΔ͜ͱαΠτʹؔΘΔ͜ͱͲͬͪʹॻ͍ͯಈ͘
ͳͥϓϥάΠϯͳͷ͔
ςʔϚʹґଘ
ΧελϚΠζ͠Α͏ʂ
ΧελϚΠζ͠Α͏ʂfunctions.php࡞ɾमਖ਼ˍΞοϓϩʔυ
ΧελϚΠζ͠Α͏ʂfunctions.php
ΧελϚΠζ͠Α͏ʂfunctions.phpςʔϚA
ςʔϚม͍͑ͨʂfunctions.phpςʔϚA
ςʔϚม͍͑ͨʂfunctions.phpςʔϚBfunctions.phpςʔϚA
ςʔϚม͍͑ͨʂfunctions.phpςʔϚBfunctions.phpςʔϚAΧελϚΠζ͕ফ͑Δʂ
functions.phpίϐʔʂfunctions.phpςʔϚBfunctions.phpίϐʔ
functions.phpίϐʔʂfunctions.phpςʔϚBfunctions.phpίϐʔςʔϚBݻ༗ͷΧελϚΠζ͕ ফ͑Δʂ
ΧελϚΠζՕॴҠ২ʂfunctions.phpςʔϚBfunctions.phpҠ২
ΧελϚΠζՕॴҠ২ʂfunctions.phpςʔϚBfunctions.phpҠ২ΧελϚΠζͨ͠Օॴ͚ͩ Ҡ২Ͱ͖Δࣗ৴͋Δʁ
ΧελϚΠζͯ͠࡞ͬͨؔ
ςʔϚͷؔΛͬͯΔ
ΧελϚΠζ͠Α͏ʂplugin.php࡞ɾमਖ਼ˍΞοϓϩʔυϓϥάΠϯC
ΧελϚΠζ͠Α͏ʂplugin.phpϓϥΠϯC
ςʔϚม͍͑ͨʂfunctions.phpςʔϚBfunctions.phpςʔϚAplugin.phpϓϥΠϯCαΠτʹӨڹͳ͠
functions.php͔Β ϓϥάΠϯ
ྫɿμογϡϘʔυɹɹɹɹΟδΣοτ
wp-content/themes/some-theme/functions.php
ϓϥάΠϯ ςʔϚfunctions.phpμογϡϘʔυͷΟδΣοτςʔϚ͕มΘͬͯදࣔ͠ଓ͚ΔʰαΠτͷΧελϚΠζʱςʔϚʹؔΘΔ͜ͱαΠτʹؔΘΔ͜ͱ
ͰΉ͔͍ͣ͠ΜͰ͠ΐʁ
ϓϥάΠϯ࡞ɺ࣮͜Μͳʹ؆୯ʂMajiͰKantan 5εςοϓ1.ϓϥάΠϯσΟϨΫτϦΛ࡞Δ2.readme.txtΛࢦఆͷϑΥʔϚοτͰͭ͘Δ3.[ϓϥάΠϯσΟϨΫτϦ໊].phpʹࢦఆͷϑΥʔϚοτͰίϝϯτΛॻ͘4.ίʔυΛॻ͘•functions.phpͷίʔυΛΧοτˍϖʔετ͢Δ5.ϓϥάΠϯσΟϨΫτϦΛΞοϓϩʔυ͢Δ•ߋ৽͍ͯ͠ΕɺςʔϚͷfunctions.phpΞοϓϩʔυ͢Δ
1. ϓϥάΠϯσΟϨΫτϦΛ࡞Δ
wp-contentpluginsdashboard-widgetσΟϨΫτϦΛͭ͘Δʂऴ੍࡞ɾஶ࡞━━━━━⡹⡲⡼
•wp-content/plugins/ ʹ͓Έͷ໊͓લͰ•খจࣈͱϋΠϑϯͱࣈͷΈ߹Θ͕ͤແ•ඞͣҰҙʹͳΔΑ͏ʹʂʂwp-contentpluginsdashboard-widgetσΟϨΫτϦΛͭ͘Δʂิ
2. readme.txtΛͭ͘Δ
ެࣜʹαϯϓϧ͋Δ
3. PHPʹίϝϯτΛॻ͘
wp-contentpluginsdashboard-widgetσΟϨΫτϦͱಉҰ໊ͷPHPϑΝΠϧΛ࡞Δdashboard-widget.php
࠷ݶ͜Ε͚ͩʂ
4. ίʔυΛॻ͘લʹ
PHPίʔσΟϯάنΛकΖ͏ʂWordPressʹίʔσΟϯάنʢ= ॻ͖ํʣ͕͋ΓɺͦΕʹैͬͯίʔσΟϯά͢Δඞཁ͕͋Γ·͢ɻॻ͖ํ͕౷Ұ͞ΕͨίʔυՄಡੑ͕ൈ܈ʹ্͕Γ·͢ɻʢ※ 3ϲ݄લͷࣗଞਓʣίʔσΟϯάنHTML, CSS, JavaScript, PHP͝ͱʹܾ·͍ͬͯ·͢ɻެࣜͷυΩϡϝϯτʹهड़ํ๏͕ެ։͞Ε͍ͯ·͢ɻ
ؓٳ※ ݸਓͷײͰ͢
ϑϨʔϜϫʔΫ ίʔσΟϯάنLaravel PSR-2Symfony PSR-12 (PSR-2ͷ֦ு) ϕʔεCakePHP PSR-2Yii PSR-2ओཁPHPϑϨʔϜϫʔΫͷίʔσΟϯάن
PSRPHP Standard Recommendation
PHP-FIGPHP Framework Interoperability Group
PHPʹؔ͢Δʰ͓࡞๏ʱΛܾΊ͍ͯΔάϧʔϓhttps://www.php-fig.org
࠷ۙͷPHP΄ͱΜͲɺ PSR-2͔PSR-12
WordPressʁ
ಠࣗ
ͳΜͰʁ
ؓٳ͓ΘΓ
4. ίʔυΛॻ͘
wp-content/themes/some-theme/functions.phpʘΧοτ! ʗ
wp-content/plugins/dashboard-widget/dashboard-widget.php
ʘϖʔετ! ʗwp-content/plugins/dashboard-widget/dashboard-widget.php
ऴ੍࡞ɾஶ࡞━━━━━⡹⡲⡼
ิ
wp-content/plugins/tutorial-widget/tutorial-widget.phpҰҙʹͳΔΑ͏ʹʂ※಄ࣙʹϓϥάΠϯ໊ೖΕΔͱΑ͍※Ϋϥεͷϝιου໊ͷͧ͘
5. Ξοϓϩʔυ͢Δલʹ
ಈ࡞֬ೝͯ͠Ξοϓϩʔυ͍ͨ͠
wp-env@wordpress/env
WordPress։ൃڥΛ αΫοͱ࡞ΔʔͭHi!
http://localhost:8888 ID: admin PW: password΅͘yarnʂ
wp-envͷ͕͜͜ਪ͠ϙΠϯτ• ϩʔΧϧʹnpmʢyarnʣͱDocker͕͋Ε͍͍• ෳϓϩδΣΫτ͋ͬͯɺผѻ͍Ͱ͖Δ• ʢ࡞࣌ʣৗʹ·ͬ͞Β• ͍ͭͰ͜ΘͤΔ• Dockerͷϩΰ͔Θ͍͍• yarn͔Θ͍͍υϠΝ!
ࣗಈͰΠϯετʔϧࡁΈཁΞΫςΟϕʔτ
5. Ξοϓϩʔυ͢Δ
wp-contentpluginsdashboard-widgetσΟϨΫτϦΛ·ΔͬͱΞοϓϩʔυʂdashboard-widget.php
wp-contentthemessome-themefunctions.phpΛίϐϖͯͨ͠ΒςʔϚfunctions.php
ཁΞΫςΟϕʔτ
ࢀߟɿ΅͘ͳΒ
͜͏࡞Δ
͕࣌ؒ͋Εઆ໌
Conclusion• functions.phpʹςʔϚͷΧελϚΠζɺ ϓϥάΠϯʹαΠτͷΧελϚΠζΛهड़͢Δ• ϓϥάΠϯ࡞ʹඞཁͳͷɺͨͬͨͷ5εςοϓ• ίʔσΟϯάنΛकΖ͏• άϩʔόϧͳͷʹҰҙͳ໊લΛ͚ͭΔ• wp-envਆɻςʔϚ࡞ʹ͑ΔΑ
֯ా ҰฏWeb DeveloperFreelance@ippey_s͢Έͩɹ͍͍ͬ