SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
WordBech Osaka No.28
Report
Kite Koga
Follow
CEO, designer, web developer at KITERETZ inc.
Apr. 22, 2014
•
0 likes
•
1,964 views
1
of
60
WordBech Osaka No.28
Apr. 22, 2014
•
0 likes
•
1,964 views
Download Now
Download to read offline
Report
Engineering
Kite Koga
Follow
CEO, designer, web developer at KITERETZ inc.
Recommended
WordPressで提供するWeb API
Yuko Toriyama
7.1K views
•
25 slides
Magento meet up Tokyo#1 for Design
Miho Nakano
4.1K views
•
33 slides
Head First XML Layout on Android
Yuki Anzai
6.5K views
•
36 slides
Word press34
BREN
8.9K views
•
18 slides
jQuery Mobile 概要
トモロヲ いちがみ
1.8K views
•
29 slides
Rails初心者レッスン lesson3 3edition
Satomi Tsujita
941 views
•
14 slides
More Related Content
What's hot
WordPressでログイン必須のコンテンツを作ったときに気付いたこと
雄一郎 安倍
2.4K views
•
18 slides
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara
8K views
•
101 slides
WordPressとjQuery
Seto Takahiro
3.3K views
•
99 slides
Launch a Web Service in 3 Days Using WordPress
Kite Koga
81.8K views
•
43 slides
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
hokori matu
74.7K views
•
111 slides
jQuery Mobile入門
Shumpei Shiraishi
7.9K views
•
117 slides
What's hot
(12)
WordPressでログイン必須のコンテンツを作ったときに気付いたこと
雄一郎 安倍
•
2.4K views
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara
•
8K views
WordPressとjQuery
Seto Takahiro
•
3.3K views
Launch a Web Service in 3 Days Using WordPress
Kite Koga
•
81.8K views
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
hokori matu
•
74.7K views
jQuery Mobile入門
Shumpei Shiraishi
•
7.9K views
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
•
1.5K views
⑯jQueryをおぼえよう!その2
Nishida Kansuke
•
21.5K views
jQuery Mobileカスタマイズ自由自在
yoshikawa_t
•
14.3K views
iOS の通信における認証の種類とその取り扱い
niwatako
•
9.7K views
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
•
9.1K views
Wordpressで自分好みのテーマを作る
Takashi Uemura
•
2.3K views
Viewers also liked
Escuela pública de tod@s para tod@s (preguntas)
Michael Harris
434 views
•
17 slides
Catalogo fusion
MKTPG y Grupo Publicitario HA
482 views
•
27 slides
Dia Do Consumidor
Fernanda Gonçalves
309 views
•
12 slides
Resgatedeumcarroem Portugal
gueste750be
163 views
•
12 slides
Contábeis Aula 2.1 seminário 1 txt 1 O bom cidadão corporativo coloca o luc...
Fábio Nogueira, PhD
227 views
•
3 slides
TRABAJO DE LA UNIDAD 3
Maria Patricia
237 views
•
15 slides
Viewers also liked
(20)
Escuela pública de tod@s para tod@s (preguntas)
Michael Harris
•
434 views
Catalogo fusion
MKTPG y Grupo Publicitario HA
•
482 views
Dia Do Consumidor
Fernanda Gonçalves
•
309 views
Resgatedeumcarroem Portugal
gueste750be
•
163 views
Contábeis Aula 2.1 seminário 1 txt 1 O bom cidadão corporativo coloca o luc...
Fábio Nogueira, PhD
•
227 views
TRABAJO DE LA UNIDAD 3
Maria Patricia
•
237 views
Leerlijn 1: academisch
jorisvb
•
429 views
Evolução da Geografia
guestbb4169
•
3.3K views
Prova UPE - 2013 [primeiro dia]
Diógenes de Oliveira
•
524 views
Guíabuenaspracticas
Michael Harris
•
529 views
Cartilha bullying
Mônix Sousa
•
384 views
adobe flash cs6
CristianDavidRojas
•
710 views
Presentación pérez tornero
amelialuissi
•
691 views
Imagen Americo y campaña arranque
MKTPG y Grupo Publicitario HA
•
410 views
Reflexiooon
Maka Alarcón Navarro
•
175 views
Conversação em português - O Clima
Lindalva Santos
•
1.1K views
Primera unidad ebc
rgarnica
•
793 views
Proyeccion P.F.P. Variete Gae
LoqueCeve
•
226 views
NOUS Gestão de conhecimento e colaboração em projetos - Simbiozi
Simbiozi
•
693 views
Mural de los días nacionales
comeniusclaracampoamor
•
220 views
Similar to WordBech Osaka No.28
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
タカシ キタジマ
10.4K views
•
27 slides
CodeIgniterによるPhwittr
kenjis
9.3K views
•
25 slides
ゼロからつくるWord pressテーマ第6回
Hitsuji
3.9K views
•
27 slides
WordPress と Bootstrap
株式会社ガリレオ(開発グループ)
698 views
•
18 slides
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
Takashi Uemura
22.3K views
•
46 slides
Yurufuwa007
regret raym
2.7K views
•
51 slides
Similar to WordBech Osaka No.28
(20)
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
タカシ キタジマ
•
10.4K views
CodeIgniterによるPhwittr
kenjis
•
9.3K views
ゼロからつくるWord pressテーマ第6回
Hitsuji
•
3.9K views
WordPress と Bootstrap
株式会社ガリレオ(開発グループ)
•
698 views
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
Takashi Uemura
•
22.3K views
Yurufuwa007
regret raym
•
2.7K views
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
•
1.2K views
Ci tutorial
Kazuaki Ueda
•
2K views
なんでCSSすぐ死んでしまうん
Hayato Mizuno
•
79.7K views
Wp html5
regret raym
•
1.2K views
リリース直前WordPress3.5をみてみよう
Seto Takahiro
•
826 views
WordBeachDeathMarchWorkshop
takashi ono
•
1.5K views
Web制作のアレコレ
regret raym
•
1.2K views
20091030cakephphandson 01
Yusuke Ando
•
1.3K views
初めてのPadrino
Takeshi Yabe
•
7.3K views
Native x Webでいいとこどり開発 ~ピグトーク~
Kazunari Hara
•
1.5K views
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
Takashi Uemura
•
10.4K views
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
Mignon Style
•
5.1K views
Oktopartial Introduction
Takeshi AKIMA
•
56.1K views
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Hiroaki Wakamatsu
•
2.1K views
More from Kite Koga
Frasco: Jekyll Starter Project
Kite Koga
1.7K views
•
14 slides
Dockerize WordPress on Mac/Windows
Kite Koga
2.6K views
•
29 slides
正解のないデザインについて、それでも正解について考えてみる - Think of the answer of Design -
Kite Koga
831 views
•
32 slides
海外の WordCamp に登壇してきました
Kite Koga
1.6K views
•
16 slides
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
Kite Koga
2.1K views
•
27 slides
Wocker: Create a WordPress Development Environment in Seconds
Kite Koga
1.8K views
•
27 slides
More from Kite Koga
(16)
Frasco: Jekyll Starter Project
Kite Koga
•
1.7K views
Dockerize WordPress on Mac/Windows
Kite Koga
•
2.6K views
正解のないデザインについて、それでも正解について考えてみる - Think of the answer of Design -
Kite Koga
•
831 views
海外の WordCamp に登壇してきました
Kite Koga
•
1.6K views
量子コンピュータと量子暗号 Quantum Computer & Quantum Cryptography
Kite Koga
•
2.1K views
Wocker: Create a WordPress Development Environment in Seconds
Kite Koga
•
1.8K views
WordPress の今とこれから ー CMS大阪夏祭り2015 ー
Kite Koga
•
2.3K views
Gulp WordPress @Grand-Frontend-Osaka 2015 Summer
Kite Koga
•
2.2K views
WordCamp Kansai 2015
Kite Koga
•
969 views
Wocker & WordCamp Kansai 2015
Kite Koga
•
723 views
Wocker 秒速で WordPress 開発環境を構築する
Kite Koga
•
8.5K views
Wocker @WordBench Osaka No.41
Kite Koga
•
2.3K views
Introduction of Umania
Kite Koga
•
934 views
Vagrant-concrete5
Kite Koga
•
1.4K views
Webデザイナーが身に付けておきたい定番スキル ー WordPress 初級・導入編 ー
Kite Koga
•
1.2K views
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
Kite Koga
•
1.1K views
WordBech Osaka No.28
1.
2014.04.19
2.
本日のテーマ ● テーマ作成する前に知っておくべき WordPress
の本質 ● アクションフック・フィルターフックについて ● クライアントワークで使える設定、プラグイン、カスタマイズ ● ブラウザだけで WordPress の開発環境を構築 2
3.
俺の話を聞け、 5分だけでもいい! 3
4.
KITE|カイト Web Designer /
Programmer / Web Director / Graphic Designer / Art Director / Creative Director... 4
5.
KITE|カイト Web Designer /
Programmer / Web Director / Graphic Designer / Art Director / Creative Director... 4 いろいろやってます!
6.
5
7.
SNS > 名刺 6 最近思うこと
8.
SNS Facebook ! ! Kaito Koga https://www.facebook.com/kaito.koga.9 Twitter ! ! KITE@ixkaito https://twitter.com/ixkaito 7
9.
SNS Facebook ! ! Kaito Koga https://www.facebook.com/kaito.koga.9 Twitter ! ! KITE@ixkaito https://twitter.com/ixkaito 7 今すぐアクセス!!
10.
テーマ作成する前に 知っておくべき WordPress の本質 8
11.
WordPress のイメージ図 9 データベース WordPress コアファイル テーマ プラグイン
12.
➡ 喩えるなら、缶コーヒーの自動販売機 ➡ 喩えるなら、挽きたてコーヒーを提供する喫茶店 静的サイトと動的サイトの違い ●
静的サイト ➡ 実体のあるファイルへの参照 ● 動的サイト(WordPress) ➡ ユーザーのリクエストに応じてサーバーが表示結果を返す 10
13.
WordPressはどのように ユーザーのリクエストに 応じているのか? 11
14.
= WordPressはどのように ユーザーのリクエストに 応じているのか? 11 あるページを表示しようとするとき、 どのテンプレートが使われるのか?
15.
12 どのページ? フロントページ 個別投稿ページ アーカイブページ home.php single.php archive.php index.php ・ ・ ・ テンプレート階層
16.
13 http://wpdocs.sourceforge.jp/テンプレート階層
17.
アクションフック フィルターフック について 14
18.
もう一度 WordPress のイメージ図 15 データベース WordPress コアファイル テーマ
プラグイン
19.
16 どのページ? フロントページ 個別投稿ページ アーカイブページ home.php single.php archive.php index.php ・ ・ ・ もう一度テンプレート階層
20.
テーマ作成時は WordPress のコアファイルを 一切弄る必要がない 17
21.
18 むしろ WordPress のコアファイルを 絶対にカスタマイズするな!
22.
WordPress 本体機能の 追加・削除は どうするの? 19
23.
プラグインAPI ● アクション(フック) 特定のポイントもしくは特定のイベント発生時に WordPress のコアが起動させるフック 例:ログイン、投稿の公開、テーマの変更 ●
フィルター(フック) データベースに追加する前やブラウザのスクリーンに送り出す 前にさまざまなタイプのテキストを改造するために WordPress が起動させるフック 20
24.
プラグインAPIのイメージ図 21 アクション/フィルター WP 関数 WP 関数
25.
プラグインAPIのイメージ図 21 アクション/フィルター WP 関数 WP 関数 My 関数
26.
プラグインAPIのイメージ図 21 アクション/フィルター WP 関数 My 関数
27.
22 http://wpdocs.sourceforge.jp/プラグイン_API/アクションフック一覧
28.
23 http://wpdocs.sourceforge.jp/プラグイン_API/フィルターフック一覧
29.
クライアントワークで 使える設定、プラグイン、 カスタマイズ 24
30.
プラグイン 25
31.
26
32.
27
33.
28
34.
29
35.
30
36.
31
37.
32
38.
33
39.
34
40.
35
41.
36
42.
37
43.
38
44.
39
45.
40
46.
41
47.
42
48.
43
49.
スニペット 44
50.
サイトを見るときに ツールバーを非表示する add_filter('show_admin_bar', '__return_false'); 45
51.
クライアント確認用ユーザー:preview $user = new
WP_User( 'preview' ); $user->add_cap( 'read_private_posts'); // 非公開投稿の閲覧権限を追加 $user->add_cap( 'read_private_pages'); // 非公開固定ページの閲覧権限を追加 ! function preview_user_redirect() { global $current_user; get_currentuserinfo(); ! if($current_user->user_login === 'preview'){ $url = home_url(); header('Location: '.$url); exit; } } add_action( 'admin_init', 'preview_user_redirect' ); 46 目的: 非公開記事・固定ページのクライアント確認 事前準備: クライアント確認用に「preview」ユーザーを作成 効果: 「preview」ユーザーでログイン後、 ダッシュボードを表示させず、サイトトップを表示 備考: 「preview」ユーザーを別の名前にしたい場合は、 new WP_User( 'preview' )と$current_user->user_login === 'preview' を適意変更
52.
アドミンバーメニュー非表示 function remove_admin_bar_menus( $wp_admin_bar
) { $wp_admin_bar->remove_node('wp-logo'); // WordPress ロゴ $wp_admin_bar->remove_node('comments'); // コメント $wp_admin_bar->remove_node('new-content'); // 新規 $wp_admin_bar->remove_node('new-post'); // 新規 - 投稿 $wp_admin_bar->remove_node('new-media'); // 新規 - メディア $wp_admin_bar->remove_node('new-page'); // 新規 - 固定ページ $wp_admin_bar->remove_node('new-user'); // 新規 - ユーザー $wp_admin_bar->remove_node('search'); // 検索 $wp_admin_bar->remove_node('edit-profile'); // プロフィールを編集 $wp_admin_bar->remove_node('user-info'); // ユーザー情報 } add_action( 'admin_bar_menu', 'remove_admin_bar_menu', 99 ); 47
53.
ダッシュボードウィジェット非表示 function remove_dashboard_widgets() {
global $wp_meta_boxes; unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); // 概要 unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); // アクティビティ unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 被リンク unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // クイック投稿 unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']); // 最近の下書き unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // WordPressブログ unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); // WordPressフォーラム } add_action('wp_dashboard_setup', 'remove_dashboard_widgets'); 48
54.
サイドメニュー非表示 function remove_admin_side_menus ()
{ ! global $menu, $user_level; ! $restricted = array( __('ダッシュボード'), __('投稿'), __('メディア'), __('固定ページ'), __('コメント'), __('外観'), __('プラグイン'), __('ユーザー'), __('ツール'), __('設定') ); end ($menu); while (prev($menu)){ $value = explode(' ',$menu[key($menu)][0]); if(in_array($value[0] != NULL?$value[0]:"" , $restricted)) {unset($menu[key($menu)]);} } } add_action('admin_menu', 'remove_admin_side_menus'); 49
55.
投稿一覧画面で 他ユーザーの投稿を非表示 function exclude_others_posts( $wp_query
) { if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) ) { $post_type = get_post_type_object( $_REQUEST['post_type'] ); $cap_type = $post_type->cap->edit_other_posts; } else { $cap_type = 'edit_others_posts'; } ! if ( is_admin() && $wp_query->is_main_query() && ! $wp_query->get( 'author' ) && ! current_user_can( $cap_type ) ) { $user = wp_get_current_user(); $wp_query->set( 'author', $user->ID ); } } add_action( 'pre_get_posts', 'exclude_others_posts' ); 50
56.
投稿時タイトル必須 function require_title() { ?> <script
type="text/javascript"> jQuery(document).ready(function($){ if('post' == $('#post_type').val()){ $("#post").submit(function(e){ if('' == $('#title').val()) { alert('タイトルを入力してください!'); $('#ajax-loading').css('visibility', 'hidden'); $('#publish').removeClass('button-primary-disabled'); $('#title').focus(); return false; } }); } }); </script> <?php } add_action( 'admin_head-post-new.php', 'require_title' ); 51
57.
img タグの width と
height 属性を削除 function remove_img_wh( $html ) { $html = preg_replace( '/(width|height)="d*"s/', "", $html ); return $html; } add_filter( 'post_thumbnail_html', 'remove_img_wh', 10 ); add_filter( 'image_send_to_editor', 'remove_img_wh', 10 ); 52
58.
投稿画面カテゴリー順序固定 function category_checked_notop( $args,
$post_id = null ) { $args['checked_ontop'] = false; return $args; } add_action( 'wp_terms_checklist_args', 'category_checked_notop' ); 53
59.
サイトとビジュアルエディタの スタイルを同期 add_editor_style('style.css'); // ビジュアルエディタのスタイルシートにテーマの
style.css を追加 ! function visual_editor_style($initArray){ global $current_screen; switch ($current_screen->post_type) { // 投稿ページ case 'post': // ビジュアルエディタに事前準備と同じ class を追加 $initArray['body_class'] = 'post-content'; break; // 固定ページ(投稿タイプごとに変更可能) case 'page': $initArray['body_class'] = 'post-content'; break; } ! return $initArray; } add_filter('tiny_mce_before_init', 'visual_editor_style'); 54 目的: ビジュアルエディタをサイトと同じスタイルで表示 事前準備: テーマテンプレートでは、投稿されたコンテンツ部分(通常:the_content();)を特定の class で囲み、 スタイルシートではそちらにスタイルを指定する 例: .post-content h1{ font-size: 24px; color: #f00; } .post-content p{ font-size: 12px; color: #999; } メリット: editor-style.css 使用時と違い、style.css を編集すると、ビジュアルエディタにも反映される
60.
おしまい 55