2014 01-11-tdc-6th-anniversary

145
TDC 6th Anniversary WordPressワークショップ WordPressで 効率的な開発を

Upload: chieko-aihara

Post on 20-Jun-2015

992 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 2014 01-11-tdc-6th-anniversary

TDC 6th AnniversaryWordPressワークショップ

WordPressで  効率的な開発を

Page 2: 2014 01-11-tdc-6th-anniversary

自己紹介

Page 3: 2014 01-11-tdc-6th-anniversary

自己紹介

2011年WordBench東京スピーカー2013年WordBenchしずおかスピーカー

フリーランスでの活動の後、WordPressのインテグレーションサービスを提供するプライム・ストラテジー株式会社のWordPressエンジニアに。

相原 知栄子(うぇぶるじょん)

WordBench千葉

Page 4: 2014 01-11-tdc-6th-anniversary

BOOKS(共著)

自己紹介

Page 5: 2014 01-11-tdc-6th-anniversary

@Webourgeon_com

http://webourgeon.com/

Chieko.Aihara.Bokettch

自己紹介

Page 6: 2014 01-11-tdc-6th-anniversary

自己紹介

http://wordpress.org/plugins/stop-the-bokettch/

Page 7: 2014 01-11-tdc-6th-anniversary

プライム・ストラテジー

Page 8: 2014 01-11-tdc-6th-anniversary

WordPressのインテグレーションサービスを提供

プライム・ストラテジーは世界に52社ある

「WordPressコンサルタント」のうちの1社

Page 9: 2014 01-11-tdc-6th-anniversary
Page 10: 2014 01-11-tdc-6th-anniversary

今日お話すること

Page 11: 2014 01-11-tdc-6th-anniversary

1.WordPressとは

2.WordPressでの開発

3.WordPressハンズオン

今日のアジェンダ

Page 12: 2014 01-11-tdc-6th-anniversary

WordPressとは

Page 13: 2014 01-11-tdc-6th-anniversary

WordPressとは

?なぜWordPressを使うのか?

Page 14: 2014 01-11-tdc-6th-anniversary

みんなが使っているから

WordPressとは

Page 15: 2014 01-11-tdc-6th-anniversary

YES

WordPressとは

Page 16: 2014 01-11-tdc-6th-anniversary

どういうことかというと

WordPressとは

Page 17: 2014 01-11-tdc-6th-anniversary

世界最大シェアのオープンソースCMSソフトウェア

WordPressとは

Page 18: 2014 01-11-tdc-6th-anniversary

2014.01.08 22:40 頃

http://en.wordpress.com/stats/

WordPressとは

Page 19: 2014 01-11-tdc-6th-anniversary

WordPressとは

Page 20: 2014 01-11-tdc-6th-anniversary

All Website 21.0%CMS 59.8%

トップ 1000万サイト

WordPressとは

All Website 21.2%CMS 60.0%

2014.01.08

2014.01.11

http://w3techs.com/technologies/overview/content_management/all

Page 21: 2014 01-11-tdc-6th-anniversary

GPL

WordPressとは

Page 22: 2014 01-11-tdc-6th-anniversary

PHP&

MySQL

WordPressとは

Page 23: 2014 01-11-tdc-6th-anniversary

プラグインWordPressとは

http://wordpress.org/plugins/

Page 24: 2014 01-11-tdc-6th-anniversary

テーマWordPressとは

http://wordpress.org/themes/

Page 25: 2014 01-11-tdc-6th-anniversary

WordPressとは

Page 26: 2014 01-11-tdc-6th-anniversary

プラグイン

WordPressとは

Page 27: 2014 01-11-tdc-6th-anniversary

プラグイン テーマ

WordPressとは

Page 28: 2014 01-11-tdc-6th-anniversary

プラグイン テーマ

コミニュティ

WordPressとは

Page 29: 2014 01-11-tdc-6th-anniversary

プラグイン テーマ

コミニュティ 開発情報

WordPressとは

Page 30: 2014 01-11-tdc-6th-anniversary

プラグイン テーマ

コミニュティ 開発情報

WordPressとは

Page 31: 2014 01-11-tdc-6th-anniversary

開発コストの削減

WordPressとは

Page 32: 2014 01-11-tdc-6th-anniversary

WordPressとは

CMS・アプリケーションプラットフォームとして

開発コストの削減

Page 33: 2014 01-11-tdc-6th-anniversary

WordPressとは

それだけ?

Page 34: 2014 01-11-tdc-6th-anniversary

WordPressとは

ではありません

Page 35: 2014 01-11-tdc-6th-anniversary

WordPressとSEO

WordPressとは

SEOプラグイン

Page 36: 2014 01-11-tdc-6th-anniversary

WordPressとSEO

WordPressとは

(意訳)

ワードプレスを選ぶことは、非常に良い選択です。

なぜなら、ワードプレスは、SEOに関する多くの問題を自動的に解決してくれて、

SEO(サーチエンジン最適化)の手法の80%~90%に対応するように作られているから

です。

WordPress is a great choice

WordPress automatically solves a ton of SEO issues.

WordPress takes care of 80-90% of

(the mechanics of)

Search Engine Optimization (SEO)

WordCamp San Francisco 2009  Matt Cutts

Page 37: 2014 01-11-tdc-6th-anniversary

WordPressとソーシャル

WordPressとは

Page 38: 2014 01-11-tdc-6th-anniversary

WordPressとデバイス

WordPressとは

レスポンシブデバイス切り替えhttp://wpbk2.azurewebsites.net/ http://wpbk2.azurewebsites.net/blog/

Page 39: 2014 01-11-tdc-6th-anniversary

WordPress3.8 WordPressとは

Page 40: 2014 01-11-tdc-6th-anniversary

WordPressとは

WordPress3.8

Page 41: 2014 01-11-tdc-6th-anniversary

WordPressとは

WordPress3.8

管理画面もレスポンシブに

Page 42: 2014 01-11-tdc-6th-anniversary

WordPressとは

事例紹介

Page 43: 2014 01-11-tdc-6th-anniversary

WordPressとは

事例紹介

カスタマイズした投稿画面

Page 44: 2014 01-11-tdc-6th-anniversary

WordPressとは

事例紹介

マルチデバイス対応

キャッシュ更新性

自動化

Page 45: 2014 01-11-tdc-6th-anniversary

WordPressとは

WP SiteManager

SEO + SNS + デバイス切り替え + キャッシュ + α

Page 46: 2014 01-11-tdc-6th-anniversary

WordPressでの開発

Page 47: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

Page 48: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

管理画面

設定

Page 49: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

管理画面

コアファイル カスタマイズ

Page 50: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

管理画面

コアファイル

設定

Page 51: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

管理画面

コアファイル

設定

Page 52: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

管理画面

コアファイル

設定

カスタマイズ

Page 53: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

wp-content

プラグイン テーマ

Page 54: 2014 01-11-tdc-6th-anniversary

WordPressのファイル構成WordPressでの効率的な開発

wp-content

プラグイン テーマ

PHP

HTMLCSSPHP

Page 55: 2014 01-11-tdc-6th-anniversary

テーマWordPressでの効率的な開発

Twenty Fourteen

Page 56: 2014 01-11-tdc-6th-anniversary

http://codex.wordpress.org/Image:Template_Hierarchy.png

WordPressでの効率的な開発

テーマ テンプレート階層

Page 57: 2014 01-11-tdc-6th-anniversary

WordPressでの効率的な開発

style.css index.php

テンプレート階層テーマ

Page 58: 2014 01-11-tdc-6th-anniversary

テーマWordPressでの効率的な開発

/* Theme Name: WebourgeonTheme URI: http://webourgeon.com/Description: サンプルテーマAuthor: うぇぶるじょんAuthor URI: http://webourgeon.com/Version: 1.0*/

style.css

テーマとして認識

Page 59: 2014 01-11-tdc-6th-anniversary

テーマWordPressでの効率的な開発

http://codex.wordpress.org/Template_Tags

the_content()

get_the_date()

wp_list_categories()

記事本文を出力

カテゴリーリストをリンク付きで出力

=>

=>

=> 記事が書かれた日を取得

テンプレートタグ

Page 60: 2014 01-11-tdc-6th-anniversary

テーマWordPressでの効率的な開発

the_content()

get_the_date()

wp_list_categories()

記事本文を出力

カテゴリーリストをリンク付きで出力

=>

=>

=> 記事が書かれた日を取得

テーマ テンプレートタグ

http://codex.wordpress.org/Template_Tags

Page 61: 2014 01-11-tdc-6th-anniversary

テーマWordPressでの効率的な開発

get_header()

get_footer()

get_templatepart()

=>

=>

=>

テーマ インクルードタグ

header.php

footer.php

ヘッダー、サイドバー、フッター以外のテンプレートパーツ

モジュール化

Page 62: 2014 01-11-tdc-6th-anniversary

テーマWordPressでの効率的な開発

is_single()

is_page()

is_category()

=>

=>

=>

テーマ 条件分岐タグ

個別投稿

固定ページ

is_admin()

カテゴリーアーカイブ

=> 管理画面

Page 63: 2014 01-11-tdc-6th-anniversary

WordPressでの効率的な開発

=>

http://codex.wordpress.org/Template_Tags

あるものは使う

Page 64: 2014 01-11-tdc-6th-anniversary

WordPressでの効率的な開発

=>

http://codex.wordpress.org/Template_Tags

あるものは使う効率

安全

Page 65: 2014 01-11-tdc-6th-anniversary

テーマWordPressでの効率的な開発

<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <?php the_title(); ?> <?php the_content(); ?> <?php endwhile; ?><?php endif; ?>

WordPressループ

記事表示の基本

投稿データがあるか

投稿データを$postにセット

Page 66: 2014 01-11-tdc-6th-anniversary

functions.phpWordPressでの効率的な開発

if ( ! isset( $content_width ) ) { $content_width = 700;

}

Page 67: 2014 01-11-tdc-6th-anniversary

functions.phpWordPressでの効率的な開発

//アイキャッチ画像add_theme_support( 'post-thumbnails' );

set_post_thumbnail_size( 200, 200, true );

Page 68: 2014 01-11-tdc-6th-anniversary

functions.phpWordPressでの効率的な開発

// カスタムメニューregister_nav_menus( array ( 'utility' => 'ユーティリティナビ', 'global' => 'グローバルナビ', 'footer' => 'フッターナビ' ) );

Page 69: 2014 01-11-tdc-6th-anniversary

プラグインfunctions.php

WordPressでの効率的な開発

Page 70: 2014 01-11-tdc-6th-anniversary

プラグインfunctions.php

WordPressでの効率的な開発

Page 71: 2014 01-11-tdc-6th-anniversary

プラグインfunctions.php

WordPressでの効率的な開発

テーマ固有の機能

Page 72: 2014 01-11-tdc-6th-anniversary

プラグインfunctions.php

WordPressでの効率的な開発

テーマ固有の機能 テーマを変えても有効

Page 73: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

ファイルの実行順序http://www.warna.info/archives/279/

Page 74: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

1.初期化

WordPressが動作する前提としての必要な前処理や設定・ファイルの読込

wp-config.php wp-settings.php

Page 75: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

1.初期化 実行環境の均一化

WordPress関数の読み込み

データベース接続

プラグイン読み込み

functions.php読み込み

Page 76: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

2.解析

アクセスされたURLをもとに、WordPressの内部パラメータに変換、表示条件を導き出す。

wp-includes/class-wp.php

Page 77: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

2.解析

m, p, posts, w, cat, withcomments, withoutcomments, s, search, exact, sentence, debug, calendar, page, paged, more, tb, pb, author, order, orderby, year, monthnum, day, hour, minute, second, name, category_name, tag, feed, author_name, static, pagename, page_id, error, comments_popup, attachment, attachment_id, subpost, subpost_id, preview, robots, taxonomy, term, cpage, post_type

パラメーターは46個

Page 78: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

2.解析

m, p, posts, w, cat, withcomments, withoutcomments, s, search, exact, sentence, debug, calendar, page, paged, more, tb, pb, author, order, orderby, year, monthnum, day, hour, minute, second, name, category_name, tag, feed, author_name, static, pagename, page_id, error, comments_popup, attachment, attachment_id, subpost, subpost_id, preview, robots, taxonomy, term, cpage, post_type

パラメーターは46個

URLにパラメーターと同じ名前のものがあると404エラーになりやすい

Page 79: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

2.解析

リライトルール

[" category/(.+?)/?$ "] => "index.php?category_name=$matches[1]"

デフォルト以外のパーマリンクではURLをパラメーターに変換

Page 80: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

3.抽出

内部パラメーターをもとに、データベースのSQL文を生成し、条件にあった記事データを取得する

wp-includes/query.php

Page 81: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

3.抽出 SQLの生成とデータベースからの記事取得

テンプレートで使用できるグローバル変数($post)などを利用できるように

Page 82: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

4.表示

テーマのテンプレートファイルを用いて、Webページを表示する

wp-includes/template-loader.php

Page 83: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

4.表示抽出条件をもとに、表示するテンプレートを決定し、読み込む

テンプレートを用いて、Webページを出力

Page 84: 2014 01-11-tdc-6th-anniversary

WordPressの動作原理

WordPressでの効率的な開発

理解することで適切な開発が行える

Page 86: 2014 01-11-tdc-6th-anniversary

WordPressのデータ構造

WordPressでの効率的な開発

コメント

コメント属性

設定

記事

カスタムフィールド

リンク

カテゴリー紐付け

ユーザー属性

カテゴリー

カテゴリーhttp://codex.wordpress.org/Image:WP3.0-ERD.pnghttp://wpdocs.sourceforge.jp/データベース構造

Page 87: 2014 01-11-tdc-6th-anniversary

WordPressコーディングルール

WordPressでの効率的な開発

WordPress Coding Standardshttp://codex.wordpress.org/WordPress_Coding_Standards

Page 88: 2014 01-11-tdc-6th-anniversary

つかえるものはつかう

効率的な開発

WordPressでの効率的な開発

Page 89: 2014 01-11-tdc-6th-anniversary

共通のルール

WordPressでの効率的な開発

デザイナー コーダー 

  PHP開発者

Page 90: 2014 01-11-tdc-6th-anniversary

ハンズオン

Page 91: 2014 01-11-tdc-6th-anniversary

WordPressの準備はよろしいですか? 

WordPressハンズオン

Page 92: 2014 01-11-tdc-6th-anniversary

最も単純なテーマを作ってみましょう

WordPressハンズオン

Page 93: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

wp-content/themes/bokettch

style.css

index.php

Page 94: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

style.csscharset "utf-8";/*Theme Name: BokettchTheme URI: http://webourgeon.com/Description: サンプルテーマAuthor: ぼけっちAuthor URI: http://webourgeon.com/Version: 1.0*/

Page 95: 2014 01-11-tdc-6th-anniversary

index.php

WordPressハンズオン

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>テーマ</title> </head> <body> <h1>テーマサンプル</h1> </body></html>

Page 96: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

Page 97: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

Page 98: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

有効化して表示確認してみましょう

Page 99: 2014 01-11-tdc-6th-anniversary

WordPressループでコンテンツを表示

WordPressハンズオン

<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <h1><?php the_title(); ?></h1> <?php the_content(); ?> <?php endwhile; ?><?php endif; ?>

Page 100: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

表示確認してみましょう

Page 101: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

wp_head   wp_footer

わすれちゃいけない

Page 102: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>テーマ</title> <?php wp_head(); ?> </head> <body><?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <h1><?php the_title(); ?></h1> <?php the_content(); ?> <?php endwhile; ?><?php endif; ?>

<?php wp_footer(); ?> </body></html>

Page 103: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

http://wordpress.org/plugins/theme-check/

Theme-Check

Page 104: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

http://wordpress.org/plugins/theme-check/

Debug Bar http://wordpress.org/plugins/debug-bar/

Page 105: 2014 01-11-tdc-6th-anniversary

プラグインを作ってみましょう

WordPressハンズオン

Page 106: 2014 01-11-tdc-6th-anniversary

テーマ作成の時を思い出してください 

WordPressハンズオン

wp_head   wp_footer

Page 107: 2014 01-11-tdc-6th-anniversary

テーマ作成の時を思い出してください 

WordPressハンズオン

wp_head   wp_footerフック

Page 108: 2014 01-11-tdc-6th-anniversary

WordPressハンズオン

WordPressは、プラグインをWordPress 本体に “引っ張り込む (hook into)” ためのフックを用意している

WordPress Codex プラグインAPI

Page 109: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

実行中の特定のポイントもしくは特定のイベント発生時に WordPress のコアが起動させる

投稿の公開テーマの変更管理画面の表示

Page 110: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

動作原理のそれぞれのフェィズでどんなアクションフックがあるでしょうか

Page 111: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

1.初期化 plugins_loaded => プラグインの読込完了直後 setup_theme => 翻訳ファイルの読込直前 after_setup_theme => テーマのfunctions.php読込直後 init => 初期化完了時

Page 112: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

2.解析 parse_request => 内部パラメータへの変換直後

send_headers => レスポンスヘッダー送信直後

Page 113: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

3.抽出 pre_get_posts => SQL文を生成する直前

posts_selection => データベースアクセスの直前 wp => グローバル変数設定直後

Page 114: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

4.表示 template_redirect => テンプレートファイル選択直前

wp_head => headタグ出力中

wp_footer => bodyタグ出力直前 shutdown => WordPress実行終了時

Page 115: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

さっそく使ってみましょう

Page 116: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

まずは表示させるだけのプラグイン

Page 117: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

プラグインとして認識させる

Page 118: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

プラグインとして認識させる

wp-content/plugins/hello-bokettch

Page 119: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

<?php/** * @package Hello_Bokettch * @version 0.1 *//*Plugin Name: Hello BokettchPlugin URI: http://webourgeon.com/Description: ただなにか出すだけのプラグインAuthor: WebourgeonVersion: 0.1Author URI: http://webourgeon.com/*/

hello-bokettch.php

他とかぶらない名前

Page 120: 2014 01-11-tdc-6th-anniversary

アクションフック

WordPressハンズオン

function hello_bokettch() {

echo 'ことしはボケない';

}add_action('wp_footer','hello_bokettch');

Page 121: 2014 01-11-tdc-6th-anniversary

head にstyleを追加してみましょう 

WordPressハンズオン

Page 122: 2014 01-11-tdc-6th-anniversary

WordPressハンズオンfunction hello_bokettch() {

echo '<p id="hello-bokettch">ことしはボケない!!</p>';

}add_action('wp_footer','hello_bokettch');

function hello_bokettch_style() { echo ' <style type="text/css"> #hello-bourgeon { font-size: 30px; font-weight: bold; color: red; text-align: center; } </style> ';}

add_action( 'wp_head', 'hello_bokettch_style' );

Page 123: 2014 01-11-tdc-6th-anniversary

フィルターフック

WordPressハンズオン

データベースに追加する前やブラウザのスクリーンに送り出す前にさまざまなタイプのテキストを改造するために WordPress が起動させるフック

Page 124: 2014 01-11-tdc-6th-anniversary

フィルターフック

WordPressハンズオン

the_content

Page 125: 2014 01-11-tdc-6th-anniversary

フィルターフック

WordPressハンズオン

function content_bokettch ( $content ){ $target = '/(。|ボケ|ぼけ|ぼけっち)/'; $bokketch = '「ぼけっち~!」'; $content = preg_replace( $target ,$bokketch, $content ); return $content;}add_filter('the_content', 'content_bokettch');

Page 126: 2014 01-11-tdc-6th-anniversary

フィルターフック

WordPressハンズオン

表示してみましょう

Page 127: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

[gallery]

Page 128: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

定型文

投稿エディタに直接書けない テンプレートタグや PHPコードなど

Page 129: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

ショートコードを使うプラグイン 

Contact Form 7

Trust Form

Simple Map

Page 130: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

アドセンス

関連記事

などもいいね

Page 131: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

add_shortcode('bokketch', 'bokketch_shortcode');

function bokketch_shortcode() {

return '<p>お鍋こがしました(́;ω;`)ウッ…</p>'; }

Page 132: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

[bokketch]

Page 133: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

できましたか?

Page 134: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

ショートコードは属性も持てる

[gallery id="123" size="medium"]

Page 135: 2014 01-11-tdc-6th-anniversary

ショートコード  

WordPressハンズオン

囲み型ショートコード[caption]My Caption[/caption]

Page 137: 2014 01-11-tdc-6th-anniversary

管理画面に表示 

WordPressハンズオン

function add_bokketch_admin_menu() { add_options_page('Bokketch Admin Menu 設定', 'Bokketch Admin Menu', 'manage_options', 'bokketch_admin_menu.php', 'bokketch_admin_menu_page' );}add_action('admin_menu', 'add_bokketch_admin_menu');

function bokketch_admin_menu_page() { echo 'とりあえず管理画面になんか表示'; }

Page 138: 2014 01-11-tdc-6th-anniversary

管理画面に表示 

WordPressハンズオン

function add_bokketch_admin_menu() { add_options_page('Bokketch Admin Menu 設定', 'Bokketch Admin Menu', 'manage_options', 'bokketch_admin_menu.php', 'bokketch_admin_menu_page' );}add_action('admin_menu', 'add_bokketch_admin_menu');

function bokketch_admin_menu_page() { echo 'とりあえず管理画面になんか表示'; }

page_title

Page 139: 2014 01-11-tdc-6th-anniversary

管理画面に表示 

WordPressハンズオン

function add_bokketch_admin_menu() { add_options_page('Bokketch Admin Menu 設定', 'Bokketch Admin Menu', 'manage_options', 'bokketch_admin_menu.php', 'bokketch_admin_menu_page' );}add_action('admin_menu', 'add_bokketch_admin_menu');

function bokketch_admin_menu_page() { echo 'とりあえず管理画面になんか表示'; }

page_title menu_title

Page 140: 2014 01-11-tdc-6th-anniversary

管理画面に表示 

WordPressハンズオン

function add_bokketch_admin_menu() { add_options_page('Bokketch Admin Menu 設定', 'Bokketch Admin Menu', 'manage_options', 'bokketch_admin_menu.php', 'bokketch_admin_menu_page' );}add_action('admin_menu', 'add_bokketch_admin_menu');

function bokketch_admin_menu_page() { echo 'とりあえず管理画面になんか表示'; }

page_title menu_titleaccess_level/capability

Page 141: 2014 01-11-tdc-6th-anniversary

管理画面に表示 

WordPressハンズオン

function add_bokketch_admin_menu() { add_options_page('Bokketch Admin Menu 設定', 'Bokketch Admin Menu', 'manage_options', 'bokketch_admin_menu.php', 'bokketch_admin_menu_page' );}add_action('admin_menu', 'add_bokketch_admin_menu');

function bokketch_admin_menu_page() { echo 'とりあえず管理画面になんか表示'; }

page_title menu_titleaccess_level/capability file

Page 142: 2014 01-11-tdc-6th-anniversary

管理画面に表示 

WordPressハンズオン

function add_bokketch_admin_menu() { add_options_page('Bokketch Admin Menu 設定', 'Bokketch Admin Menu', 'manage_options', 'bokketch_admin_menu.php', 'bokketch_admin_menu_page' );}add_action('admin_menu', 'add_bokketch_admin_menu');

function bokketch_admin_menu_page() { echo 'とりあえず管理画面になんか表示'; }

page_title menu_titleaccess_level/capability file function

Page 143: 2014 01-11-tdc-6th-anniversary

Fb admins

WordPressハンズオン

この後はWordPressの教科書にのっている

などを作ってみると理解が進むかも。。

Page 144: 2014 01-11-tdc-6th-anniversary

プラグインとの関わり方

http://wordbench.org/2013/12/07/wordbench-tokyo-201312-report/

WordBench 東京12月: プラグインについて話そう!振り返りレポート

Page 145: 2014 01-11-tdc-6th-anniversary

ありがとうございました