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
MW WP Form について語り尽くす
Search
Takashi Kitajima
May 21, 2017
Technology
0
2.9k
MW WP Form について語り尽くす
WordBench Fest.山口 -Spring WP Fever- 2017/05/20
Takashi Kitajima
May 21, 2017
Tweet
Share
More Decks by Takashi Kitajima
See All by Takashi Kitajima
Snow Monkey&unitone から見た WordPress エディターの変遷
inc2734
0
99
Snow Monkey CM
inc2734
0
62
メンテナンス性を考慮した CSS 設計
inc2734
0
280
Snow Monkey とは
inc2734
0
1k
WordPress_テーマのつくりかた.pdf
inc2734
4
470
受託開発者だった僕が WordPress の有料テーマ開発者になって学んだこと
inc2734
1
900
Snow Monkey(WordPress) による web コンテンツ制作の新しいカタチ【ビジネスパーソン向け】
inc2734
0
71
Snow Monkey とコミュニティ
inc2734
0
560
Snow Monkey における私の技術的偏愛
inc2734
0
520
Other Decks in Technology
See All in Technology
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
1
120
Storybook との上手な向き合い方を考える
re_taro
5
770
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.2k
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.9k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
710
AI前提のサービス運用ってなんだろう?
ryuichi1208
8
1.4k
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.6k
インフラとバックエンドとフロントエンドをくまなく調べて遅いアプリを早くした件
tubone24
1
430
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
390
生成AIが変えるデータ分析の全体像
ishikawa_satoru
0
170
The Rise of LLMOps
asei
9
1.8k
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
693
190k
Happy Clients
brianwarren
98
6.7k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Making Projects Easy
brettharned
115
5.9k
A Tale of Four Properties
chriscoyier
156
23k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Building Your Own Lightsaber
phodgson
103
6.1k
How STYLIGHT went responsive
nonsquared
95
5.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Transcript
.881'PSNʹ͍ͭͯޠΓਚ͘͢ 8PSE#FODI'FTUࢁޱ4QSJOH81'FWFS
ϞϯΩʔϨϯν IUUQTJODPSH ΩλδϚλΧγ !JOD ϑϦʔϥϯε 8FCσβΠφʔϓϩάϥϚʔ
8PSE1SFTTϓϥάΠϯ .881'PSNɺ4NBSU$VTUPN'JFMET 8PSE1SFTTςʔϚ )BCBLJSJɺ.JNJ[VLV 4BTT$44ϑϨʔϜϫʔΫ #BTJT
8PSE1SFTTίϛϡχςΟͱͷؔΘΓ 8PSE$BNQ5PLZP࣮ߦҕһ 8PSE$BNQ5PLZP-5 8PSE$BNQ,BOTBJ࣮ߦҕһϋϯζΦϯ 8PSE$BNQ,BOTBJ࣮ߦҕһεϐʔΧʔ
8PSE$BNQ5PLZPεϐʔΧʔ FUD
ຊʹ͑ΔςʔϚͱͲͷΑ͏ͳ ͷ͔Λߟ͑ଓ͚ͨ݁Ռ ΩλδϚλΧγ!JOD IUUQTHJUIVCDPNJODNJNJ[VLV
.881'PSNͱ
.881'PSNͱ w ͓͍߹ΘͤϑΥʔϜ࡞ϓϥάΠϯ w ֬ೝը໘Λ͞Ή͜ͱ͕Ͱ͖Δ w μϯϩʔυɿ w
ΞΫςΟϒΠϯετʔϧɿ
$POUBDU'PSN w μϯϩʔυɿ w ΞΫςΟϒΠϯετʔϧɿ
https://nondesu.jp/
IUUQTXQEPSH
IUUQTXQEPSH
.881'PSNͷجຊػೳ
ೖྗը໘c֬ೝը໘cྃը໘ 63-ͷઃఆ ͍߹Θͤͷσʔλϕʔεอଘ ͍߹Θͤσʔλͷάϥϑදࣔ ๛ͳόϦσʔγϣϯϧʔϧ
.881'PSNͷ࣮ߦϓϩηε
༁ϑΝΠϧͷಡΈࠐΈ ֤ೖྗϑΟʔϧυͷಡΈࠐΈ ֤όϦσʔγϣϯϧʔϧͷಡΈࠐΈ .881'PSNΛཧ͢ΔΧελϜߘλΠϓΛొ ϝΠϯίϯτϩʔϥʔಡΈࠐΈ
ςϯϓϨʔτͷಡΈࠐΈલ UFNQMBUF@JODMVEF ߘσʔλɾςϯϓϨʔτʹ.881'PSNΛ࣮ߦ͢ΔͨΊͷγϣʔτίʔυ <NXGPSN@GPSNLFZ>ɺ<NXGPSN> ͕ଘࡏ͢Δ͔νΣοΫ ଘࡏ͠ͳ͔ͬͨΒ͜͜Ͱ.881'PSNʹؔ͢Δॲཧऴྃ γϣʔτίʔυΛͱʹͦͷϑΥʔϜͷઃఆΛऔಘ ૹ৴σʔλΛ%#ʹҰ࣌తʹอଘ 5SBOTJFOU"1* $PPLJF ϖʔδΩϟογϡΛແޮʹ͢ΔͨΊͷ)551ϔομʔΛग़ྗ ૹ৴σʔλ͕ਖ਼͍͔͠νΣοΫ $43'ରࡦͱͯ͠ૹ৴σʔλʹؚ·ΕΔτʔΫϯΛνΣοΫ ૹ৴σʔλʹର͠όϦσʔγϣϯνΣοΫΛ࣮ߦ ૹ৴σʔλɺόϦσʔγϣϯ݁ՌΛݩʹͲͷը໘Λදࣔ ϦμΠϨΫτ ͢Δ͔Λܾఆ 1045࣌ɺ͘͠ϦμΠϨΫτઌ͕ݱࡏͷ63-ͱҟͳΕϦμΠϨΫτΛ࣮ߦ ॳظԽɾجຊॲཧ ը໘දࣔͷͨͼʹ࣮ߦ Wݱࡏ
લड़ͷॳظԽॲཧΛ࣮ߦ ࠷ॳʹදࣔ͢Δ͖ը໘ೖྗը໘ͳͷͰϦμΠϨΫτߦΘΕͳ͍ ֤ೖྗϑΟʔϧυͷγϣʔτίʔυΛొ BEE@TIPSUDPEF ϖʔδදࣔ
UIF@DPOUFOU 8PSE1SFTTͷը໘ද͕࣮ࣔߦɺ.881'PSNͷγϣʔτίʔυͷ࣮ߦ͕ߦΘΕɺ ϑΥʔϜ͕දࣔ͞ΕΔ ֬ೝϘλϯԡԼ ݱࡏදࣔதͷը໘ʹ1045 ૹ৴ϘλϯԡԼ ݱࡏදࣔதͷը໘ʹ1045 ೖྗը໘ 1045 Wݱࡏ
લड़ͷॳظԽॲཧΛ࣮ߦ @1045ʹ8PSE1SFTTͷϦΫΤετ RVFSZ@WBST ͱಉ໊ͷΩʔؚ͕·Ε͍ͯΔ߹ɺ ͦͷRVFSZ@WBSTΛআ ϑΝΠϧͷΞοϓϩʔυ͕͋Δ߹ɺϦμΠϨΫτͷલʹҰ࣌σΟϨΫτϦʹอଘ
όϦσʔγϣϯΤϥʔͳ͠ ֬ೝը໘ϦμΠϨΫτ όϦσʔγϣϯΤϥʔ͋Γ όϦσʔγϣϯΤϥʔը໘ϦμΠϨΫτ ೖྗը໘⒌ ϦμΠϨΫτ IUUQFYBNQMFDPN OBNFࢁాଠ ໊͓લɿ<NXGPSN@UFYUOBNFlOBNFz> Wݱࡏ
લड़ͷॳظԽॲཧΛ࣮ߦ όϦσʔγϣϯΤϥʔͳ͠ ͦͷ··֬ೝը໘Λදࣔ όϦσʔγϣϯΤϥʔ͋Γ όϦσʔγϣϯΤϥʔը໘ϦμΠϨΫτ
֤ೖྗϑΟʔϧυͷγϣʔτίʔυΛొ BEE@TIPSUDPEF ϖʔδදࣔ UIF@DPOUFOU 8PSE1SFTTͷը໘ද͕࣮ࣔߦɺ.881'PSNͷγϣʔτίʔυͷ࣮ߦ͕ߦΘΕɺ ϑΥʔϜ͕දࣔ͞ΕΔ %#ʹҰ࣌తʹอଘͨ͠ૹ৴σʔλΛআ XQ@GPPUFS ΔϘλϯԡԼ ݱࡏදࣔதͷը໘ʹ1045 ૹ৴ϘλϯԡԼ ݱࡏදࣔதͷը໘ʹ1045 ֬ೝը໘ 1045 Wݱࡏ
લड़ͷॳظԽॲཧΛ࣮ߦ @1045ʹ8PSE1SFTTͷϦΫΤετ RVFSZ@WBST ͱಉ໊ͷΩʔؚ͕·Ε͍ͯΔ ߹ɺͦͷRVFSZ@WBSTΛআ όϦσʔγϣϯΤϥʔͳ͠
ϝʔϧͷૹ৴ॲཧΛ࣮ߦ ྃը໘ϦμΠϨΫτ όϦσʔγϣϯΤϥʔ͋Γ όϦσʔγϣϯΤϥʔը໘ϦμΠϨΫτ ֬ೝը໘⒌ ϦμΠϨΫτ Wݱࡏ
લड़ͷॳظԽॲཧΛ࣮ߦ όϦσʔγϣϯΤϥʔͳ͠ ͦͷ··ྃը໘Λදࣔ όϦσʔγϣϯΤϥʔ͋Γ όϦσʔγϣϯΤϥʔը໘ϦμΠϨΫτ
֤ೖྗϑΟʔϧυͷγϣʔτίʔυΛొ BEE@TIPSUDPEF ϖʔδදࣔ UIF@DPOUFOU 8PSE1SFTTͷը໘ද͕࣮ࣔߦɺ.881'PSNͷγϣʔτίʔυͷ࣮ߦ͕ߦΘΕɺ ྃը໘ϝοηʔδ͕දࣔ͞ΕΔ %#ʹҰ࣌తʹอଘͨ͠ૹ৴σʔλΛআ XQ@GPPUFS ྃը໘ Wݱࡏ
લड़ͷॳظԽॲཧΛ࣮ߦ όϦσʔγϣϯΤϥʔ͋Γ ͦͷ··όϦσʔγϣϯΤϥʔը໘Λදࣔ ֤ೖྗϑΟʔϧυͷγϣʔτίʔυΛొ BEE@TIPSUDPEF
ϖʔδදࣔ UIF@DPOUFOU 8PSE1SFTTͷը໘ද͕࣮ࣔߦɺ.881'PSNͷγϣʔτίʔυͷ࣮ߦ͕ߦΘΕ ϑΥʔϜ͕දࣔ͞ΕΔ %#ʹҰ࣌తʹอଘͨ͠ૹ৴σʔλΛআ XQ@GPPUFS όϦσʔγϣϯΤϥʔը໘ Wݱࡏ
ͳΜͰ@4&44*0/ΛΘͳ͍ͷʁ $PMVNO
w ϑΥʔϜͷૹ৴σʔλΛ࣋ͪճΔํ๏ओʹͭ ೖྗը໘ͰೖྗϑΟʔϧυɺ֬ೝը໘Ͱ IJEEFOϑΟʔϧυ͍1045Ͱ࣋ͪճΔ ૹ৴͞ΕͨσʔλΛ@4&44*0/ʹอଘͯ͠ ࣋ͪճΔ
w 1045Ͱ࣋ͪճΔํ๏ը໘ભҠͷίϯτϩʔϧ͕໘ͳͷ ͱɺϦϩʔυͨ͠ͱ͖ʹʮ࠶ૹ৴͠·͔͢ʁʯతͳϒϥβΞ ϥʔτ͕ग़Δͷ͕͏ͬͱ͏͍͠ w @4&44*0/Λ͏ͷ͕Ұൠతͳํ๏ͩͱࢥ͏͕ɺڥʹΑͬͯ ಈ͔ͳ͍͜ͱ͕͋ͬͨΓɺεέʔϧΞτ͢Δͱ͖ʹ໘ w ͪͳΈʹ8PSE1SFTTຊମ@4&44*0/Λ͍ͬͯͳ͍ w
.881'PSNͱͱ@4&44*0/Λ͍͕ͬͯͨɺ্هͷ Α͏ͳ͜ͱ͕ؾʹͳΓɺ5SBOTJFOU"1* Ұ࣌తͳσʔλΛ%# ʹΩϟογϡ͢Δػೳ ͰٖࣅతʹηογϣϯػೳతͳͷΛ ࡞ΓɺͦΕΛ͏Α͏ʹมߋ
ϝʔϧૹ৴ॲཧͲ͏Δͷʁ $PMVNO
w ͱͱࣗ࡞͍ͯͨ͠ɻNC@TFOE@NBJM w Ͱࣗલڥͱ͔ΊΜͲ͍͘͞͠ةݥ w 8PSE1SFTTͷXQ@NBJM Λ͏ͷ͕٢
XQ@NBJM UP TVCKFDU NFTTBHF IFBEFST BUUBDINFOUT
ϑοΫΛͬͨ .881'PSNͷΧελϚΠζ
ϝʔϧૹ৴࣌ͷϑΟϧλʔϑοΫ w NXGPSN@BVUP@NBJM@SBX@NXXQGPSNYYY \OBNF^มલͷࣗಈฦ৴ϝʔϧΛॻ͖͑ΔϑοΫ w NXGPSN@BVUP@NBJM@NXXQGPSNYYY \OBNF^มޙͷࣗಈฦ৴ϝʔϧΛॻ͖͑ΔϑοΫ w NXGPSN@BENJO@NBJM@SBX@NXXQGPSNYYY \OBNF^มલͷཧऀѼϝʔϧΛॻ͖͑ΔϑοΫ
w NXGPSN@BENJO@NBJM@NXXQGPSNYYY \OBNF^มޙͷཧऀѼϝʔϧΛॻ͖͑ΔϑοΫ
ϝʔϧૹ৴࣌ͷΞΫγϣϯϑοΫ w NXGPSN@CFGPSF@TFOE@BENJO@NBJM@NXXQGPSNYYY ཧऀѼϝʔϧૹ৴લͷϑοΫ w NXGPSN@CFGPSF@TFOE@SFQMZ@NBJM@NXXQGPSNYYY ࣗಈฦ৴ϝʔϧૹ৴લͷϑοΫ w NXGPSN@BGUFS@TFOE@NXXQGPSNYYY ཧऀѼϝʔϧɺࣗಈฦ৴ϝʔϧૹ৴ޙͷϑοΫ
ಠࣗόϦσʔγϣϯϧʔϧͷՃ w ຊจϨϕϧ w ຊจϨϕϧ w ຊจϨϕϧ w ຊจϨϕϧ w
ຊจϨϕϧ class MW_Validation_Rule_Foo extends MW_Validation_Rule { protected $name = ‘foo’; public function rule( $key, array $options = array() ) { if ( ΤϥʔʹͳΔ݅ ) { return ‘Τϥʔϝοηʔδ’; } } public function admin( $key, $value ) { ?> <label> <input type="checkbox" <?php checked( $value[$this->getName()], 1 ); ?> name="<?php echo MWF_Config::NAME; ?>[validation][<?php echo $key; ?>][<?php echo esc_attr( $this->getName() ); ?>]" value="1" /> όϦσʔγϣϯϧʔϧ໊ </label> <?php } } // ͜Εকདྷతʹෆཁʹ͢Δ༧ఆ add_filter( 'mwform_validation_rules', function( $validation_rules ) { $validation_rules[‘foo’] = new MW_Validation_Rule_Foo(); return $validation_rules; } );
ಠࣗೖྗϑΟʔϧυͷՃ w ͪ͜ΒϑοΫෆཁͰɺ .8@81@'PSN@"CTUSBDU@'PSN@'JFMEΫϥεΛܧঝ͠ ͨΫϥεΛ࡞ΓJODMVEF͢Δ͚ͩͰՃ͞Ε·͢ w ίʔυ͕ͯ͘αϯϓϧ͕ࡌͤΒΕͳ͍ͷͰ͜͜Λ͝ࢀ র͍ͩ͘͞ʜ IUUQTHJUIVCDPNJODNXXQGPSNCMPC NBTUFSDMBTTFTGPSNpFMET
ΧελϜϝʔϧλάͷՃ w ϝʔϧૹ৴࣌ʹΦϦδφϧͷʮϝʔϧλάʯΛఆٛ͢Δػೳ w ྫ͑ϝʔϧ༰ͷઃఆͰ\TFOE@EBUFUJNF^ͱͨ͠ͱ͖ʹૹ ৴࣌ʹม͞Εͯϝʔϧૹ৴ͤ͞Δͱ͍͏͜ͱ͕Մೳ add_filter( 'mwform_custom_mail_tag', function( $value,
$key, $inserted_inquiry_id ) { if ( $key === 'send_datetime' ) { return date( 'Y/m/d l H:i:s' ); } return $value; }, 10, 3 );
ϑΥʔϜ༰ͷܗΛఆٛ͢Δ w $POUBDU'PSNϑΥʔϜ࡞࣌ʹϑΥʔϜͷܗ͕ೖྗ͞ Ε͍ͯ·͕͢.881'PSNͦ͏ͳ͍ͬͯ·ͤΜ w ඞཁͳํϑοΫͰՃͰ͖·͢ /** * ςʔϚ inc/mw-wp-form-default-content.php
Λܗͱͯ͠ར༻͢Δαϯϓϧ */ add_filter( 'mwform_default_content', function( $content ) { ob_start(); get_template_part( 'inc/mw-wp-form-default-content' ); return ob_get_clean(); } );
ϚωλΠζ
ΞυΦϯൢച .881'PSNʹؔ͢Δػೳ։ൃґཔ
ΞυΦϯൢച
͍·ൢച͍ͯ͠Δͷ w .881'PSN(FOFSBUPS ϑΥʔϜ࡞ΛΤσΟλܗࣜͰͳ͘(6*ܗࣜʹมߋ͢Δ σβΠϯͷఏڙɻεΩϯػೳͰସՄೳ ԁ ੫ൈ w
.881'PSN$"15$)" ΩϟϓνϟೝূϑΟʔϧυΛՃ͢Δ ԁ ੫ൈ
ͱͱൢച͍ͯͨ͠ͷ w .881'PSN4UBOEBSE ϑΥʔϜ࡞࣌ʹϑΥʔϜͷܗ͕ೖྗ͞ΕΔΑ͏ʹͳΔ σβΠϯͷఏڙɻεΩϯػೳͰସՄೳ ԁ ੫ൈ
w )5.-ܗࣜͷܗΛఏڙ͢Δܗͩͱ)5.-ߏΛม͑ Δ͜ͱ͕Ͱ͖ͳ͍ͷͰσβΠϯεΩϯͷ࡞ʹ੍ݶ͕ Ͱ͖ͯ͠·͏ w .881'PSN4UBOEBSEΛΊͯɺϢʔβʔ͕)5.- Λҙࣝ͠ͳ͍ܗͰϑΥʔϜ࡞εΩϯͷબ͕Ͱ͖ Δ.881'PSN(FOFSBUPSΛൢച
w ػೳ͕ҧ͏ͷͷɺ࠷ऴతʹϢʔβʔʹఏڙ͢ΔՁ )5.-$44͕ॻ͚ͳͯͬͨ͘ϑΥʔϜ͕࡞Ͱ ͖Δ ΄΅ಉ͡ w ֹ͕ۚഒʹͳΔͷͰൢചݸݮΔͷͰʜ
w ൢചݸʹӨڹͳ͘ɺՁ֨ͷΞοϓʹൺྫͯ͠ച Γ্͛Ξοϓ w (6*ػೳͷఏڙͱ͍͏৽͍͠ՃՁͷՃ͋ͬͨ ͷͷ ಛผ҆͘͠ͳͯ͘ചΕΔͷചΕΔ w ͨͱ͑҆ͨ͘͠΄͏͕ൢചݸ͕૿͑Δͷͩͱͯ͠ɺ ಉ͡ചΓ্͛Λ͋͛Δʹֹۚʹൺྫͨ͠ݸΛചΒͳ
͍ͱ͍͚ͳ͍ͷͰ҆͘͢Ε͍͍ͱ͍͏ͷͰͳ͍ ԁചΓ্͛Δʹ ԁͳΒݸͰ͍͍͕ ԁͳΒݸͷൢച͕ඞཁ
.881'PSNʹؔ͢Δػೳ։ൃґཔ
w ࣄۀചΓ্͛ͷ͍͍ͩͨʙ͘Β͍ .881'PSNΛؚΊαΠτશମͷ։ൃͱ͔͖͋ͬͯͬͪΓΘ͚Εͳ͍ ͷ͋ΔͷͰ͓͓Αͦ w .881'PSNʹؔ͢ΔґཔίϛϡχςΟͳͲͰͱ ͱΓ߹͍ͷํ͔Βͷґཔׂ͕͍͍ͩͨɺશવ໘ࣝ ͷͳ͍ํ͔Βͷґཔׂ͕͍͍ͩͨ w
໘ࣝͷͳ͍ํ͔Βͷґཔ୯ൃɾ୯ػೳͷ߹͕ଟ͍ɻ ͦͷͨΊ͔ґཔ͔Βೲ·Ͱϝʔϧ͚ͩͰ݁͢Δ͜ ͱ͕΄ͱΜͲ
ࠓޙͷల։
ΞυΦϯൢച w ചΓ্্͕͛ΓͤͣԼ͕Γͤͣͳঢ়ଶ͕ଓ͍͍ͯΔ w ݱঢ়ϚʔέςΟϯάͷྨҰ͍ͯ͠ͳ͍ͷͰϦεςΟϯά ࠂͷӡ༻͘Β͍ͯ͠Έ͍ͨͷͰ͕͋͢ͱԿΛ͢Εྑ͍ͷ Ͱ͠ΐ͏ʜʢ࣮ w ෛۀʹൺΔͱ΄΅ख͕͔͔Βׂ͕ͣྑ͍ͷͰ৳͍ͯ͠ ͖͍ͨ
ࠓߟ͍͑ͯΔͷ(FOFSBUPSͷεΩϯՃ*NQPSUFSɾ&YQPSUFSͷ։ൃ w ෛ͕ࣄۀͷओମͳͷͰͳ͔ͳׂ͔͕͚࣌ؒͳ͍ͷ͕
.881'PSNຊମ w ίʔυ͕͋·Γ͔͚ͳ͍ͱ͖͔Βʙ͘Β͍։ൃ͠ଓ͚͍ͯΔ ͨΊٕज़తෛ࠴͕݁ߏ͋ΔɻͰޙํޓੑͷ͜ͱΛߟ͑Δͱม ߋ͕͔ͬͨ͠Γɺ͏ϜϦͳ෦ଟ͍ w ࠓճ࣮ߦϓϩηεΛจࣈىͯ͜͠͠ɺॲཧ͕ൿͷλϨతʹ݁ߏ ෳࡶԽͯ͠ΔͳͱࢥͬͨͷͰɺ͏গ͠γϯϓϧͳํͰϦϑΝΫ λϦϯάΛ͡Ί͍ͯ·͢ɻͰޙํޓੑʜ IUUQTHJUIVCDPNJODNXXQGPSNUSFFGFBUVSF
SFGBDUPSJOH w (JU)VCͰެ։͍ͯ͠ΔͷͰɺJTTVFɾϓϧϦΫେܴͰ͢ʂ IUUQTHJUIVCDPNJODNXXQGPSN