カスタムフィールドの光と闇。 または、愛について。

Preview:

Citation preview

カスタムフィールドの光と闇。または、愛について。

2016.2.27@WordBench 山梨

2016.2.27@WordBench Yamanashi vol.2 1

whoamiじこしょうかい

2016.2.27@WordBench Yamanashi vol.2 2

Toro_Unit占部 紘 (うらべ ひろし)

松本市在住のフリーランス

Frontend Engineer / Plugin Developer / Web Designer

Github: @torounitTwitter: @Toro_UnitFacebook: fb.me/torounitBlog: http://www.torounit.com

2016.2.27@WordBench Yamanashi vol.2 3

WordPressとの関わり

• プラグイン作者 (Custom Post Type Permalinks 等) / コア貢献者 (4.3, 4.4) / VCCW / WP-CLI (0.20.2)

• WordCamp Kansai/Tokyo 2015 スピーカー / WordBash /WordBench 長野(手伝って) / etc....

2016.2.27@WordBench Yamanashi vol.2 4

WordBench 長野・松本藩を立ち上げたので遊びにきて

ね。

飯田藩よりWordBench山梨の方が近いって何事

一日歩けば余裕でつくよ?

2016.2.27@WordBench Yamanashi vol.2 5

はい。

2016.2.27@WordBench Yamanashi vol.2 6

カスタムフィールドって皆さんご存じ?

2016.2.27@WordBench Yamanashi vol.2 7

投稿とか、ページとかに、本文や、タイトル以外で徳治の情報をフリーダムに設定できる機能。

2016.2.27@WordBench Yamanashi vol.2 8

ここからいじれます。

2016.2.27@WordBench Yamanashi vol.2 9

2016.2.27@WordBench Yamanashi vol.2 10

なにこれ。

2016.2.27@WordBench Yamanashi vol.2 11

でもプラグインを使ったりすると。

2016.2.27@WordBench Yamanashi vol.2 12

こんなフィールドを作ったり

2016.2.27@WordBench Yamanashi vol.2 13

投稿画面を簡単にカスタマイズ出来る!

ちなみに長崎のキタジマさん作ってる、Smart Custom Fields 使ってます。 ワタクシもコント

リビューターです。

Smart Custom Fields — WordPress Plugins

2016.2.27@WordBench Yamanashi vol.2 14

ちゃんとWordPressの関数もあるよ!• get_post_meta();• update_post_meta();• etc....

2016.2.27@WordBench Yamanashi vol.2 15

すっごーい。(棒)

2016.2.27@WordBench Yamanashi vol.2 16

でも

2016.2.27@WordBench Yamanashi vol.2 17

ちゃんとしらないで使うと地獄をみるよ?

2016.2.27@WordBench Yamanashi vol.2 18

CMS等のカスタマイズを考えるときの僕らの頭の中

2016.2.27@WordBench Yamanashi vol.2 19

2016.2.27@WordBench Yamanashi vol.2 20

現実

2016.2.27@WordBench Yamanashi vol.2 21

wp_posts テーブル

2016.2.27@WordBench Yamanashi vol.2 22

データがない???

2016.2.27@WordBench Yamanashi vol.2 23

ここにあるよ?

2016.2.27@WordBench Yamanashi vol.2 24

wp_postmeta テーブル

2016.2.27@WordBench Yamanashi vol.2 25

ふぁっ!?

2016.2.27@WordBench Yamanashi vol.2 26

これこそがカスタムフィールドの正体。

NoSQLでいいんじゃないか

2016.2.27@WordBench Yamanashi vol.2 27

これがもたらす闇

2016.2.27@WordBench Yamanashi vol.2 28

検索が致命的に遅い!• おまけにこの手の案件は検索機能が要求されたりする• meta_value に index が設定されていない。• 数字、文字列、シリアライズされた配列、オブジェクト、

json、base64エンコードした画像等、文字列に出来るものなら何でも突っ込めるので index をするのは正直難しい。

• プラグインなどの設定なども入ったり、WordPressの標準の2016.2.27@WordBench Yamanashi vol.2 29

つらい!

2016.2.27@WordBench Yamanashi vol.2 30

対策• なんでもカスタムフィールドに出来るけどよく考えよう。• とりあえず、エリアなど特定の値から選ぶものは、カテゴリー・タクソノミー を使おう。こっちにはちゃんと index が張られてる。

• 自分で Table 作るのだってあり。

2016.2.27@WordBench Yamanashi vol.2 31

• そりゃWordPressはPHP書ければ何でも出来るけど、WordPress だからと安易に考えると地獄。何でも出来ることと、手軽に出来ること、目的に沿っていることは結構違う。

• 札束で殴ったり、キャッシュを組んだり、その部分だけWordPressじゃないものにするなど、柔軟に考えよう。

• 「とりあえずWordPress でとりあえずプラグイン入れて…」は地獄の始まり。ちゃんと仕様を整理して、設計しよう!!!

2016.2.27@WordBench Yamanashi vol.2 32

世の中のカスタムフィールドってだいたいこういう実装!

汎用性の高いものには必ず犠牲にしたなにかがあるのよ。

2016.2.27@WordBench Yamanashi vol.2 33

最後に

2016.2.27@WordBench Yamanashi vol.2 34

「WordPressはなんでもできる!」

• PHPで書かれてるしPHPで出来ることなら何でも出来るよ!当たり前!

• cakePHPやLaravelとの悪魔合体とか出来るし、WordPressの機能の呼び出しを止めたりすればWordPressの皮だけ被った別の何かにだって確かに出来る。

2016.2.27@WordBench Yamanashi vol.2 35

それWordPress 使わなくて良いよね?

2016.2.27@WordBench Yamanashi vol.2 36

• 人間だれしも得意なこと、不得意なことある!• 良いとこも悪いところも人それぞれ!

ソフトウェアも同じ!

2016.2.27@WordBench Yamanashi vol.2 37

良いところも悪いところも解った上で、それでも一緒に居たいと思うことが「愛」だと

思うんですよ。

見なかったことにするんじゃ無いんだぞ。

とろゆにさんは彼女募集中です。

2016.2.27@WordBench Yamanashi vol.2 38

CMSは浮気しても良いから!CMSの浮気はエンジニアの甲斐性だから仕方ない。でも。。。WordPress のヒモになるとか、ただ都合の良いCMSとして、なんとなく呼び出すとかはもうやめてあげて!!!

2016.2.27@WordBench Yamanashi vol.2 39

「本当の愛」で向き合ってあげて!

2016.2.27@WordBench Yamanashi vol.2 40

おわり。

2016.2.27@WordBench Yamanashi vol.2 41

Recommended