SlideShare a Scribd company logo
1 of 34
Download to read offline
©	
  wordbonch.org	
WordPress  Widget  API
WordBench宮崎
ver.1.0.0	
 【WordBench宮崎勉強会】
©	
  wordbonch.org	
⾃自⼰己紹介
2	
  
⾼高⾒見見  和也(Takami Kazuya)
Twi5er@miiitaka
Facebook@miiitaka
株式会社アラタナ
フロントエンドエンジニア
JavaScriptと友達です。
©	
  wordbonch.org	
Let’s Programming !!
3	
  
今回は野良良プラグインを作って
実装してみます。
©	
  wordbonch.org	
WordPressの基本階層は以下のとおりです。⼤大きく3つのフォルダがあります。
WordPressの基本構造を理理解(主要ディレクトリ)
4	
  
/wp-admin/
管理理画⾯面で使⽤用するファイルあれこれがある。基本触らない。
/wp-content/
基本、このフォルダの中をさわりましょう。
/wp-include/
WP全体で使⽤用するJSやCSS、コアファイルがある。これも基本触らない。
/
ルート直下は、ログイン関連やRSS関連、コメント、トラックバック、メール送受信⽤用
のファイルなどなど
©	
  wordbonch.org	
wp-‐‑‒contentフォルダのさらに中のお話。
WordPressの基本構造を理理解(wp-‐‑‒contentフォルダ)
5	
  
/wp-content/
/wp-content/language/
⾔言語パック
/wp-content/plugin/
インストールしたプラグインが保存されている場所
/wp-content/themes/
各種テーマのテンプレートが保存されている場所
/wp-content/upgrade/
バージョンアップ時に使⽤用。
/wp-content/upload/
管理理画⾯面からアップロードしたメディアファイルが保存されている場所。
年年→⽉月でいい感じに保存されています。
©	
  wordbonch.org	
今回は/wp-‐‑‒content/plugin/にフォルダを作成してプラグインを作ります。
WordPressの基本構造を理理解(今回の主役)
6	
  
/wp-content/
/wp-content/language/
⾔言語パック
/wp-content/plugin/
インストールしたプラグインが保存されている場所
/wp-content/themes/
各種テーマのテンプレートが保存されている場所
/wp-content/upgrade/
バージョンアップ時に使⽤用。
/wp-content/upload/
管理理画⾯面からアップロードしたメディアファイルが保存されている場所。
年年→⽉月でいい感じに保存されています。
widget-plugin
ディレクトリを作る。
©	
  wordbonch.org	
作成したディレクトリ内にディレクトリと同じ名前のPHPファイル(widget-‐‑‒plugin.php)を
作成して以下のコメントを書きます。
widget-‐‑‒plugin.phpに記述
7	
  
<?php	
  
/*	
  
Plugin	
  Name:	
  Widget	
  API	
  PLUGIN	
  
DescripMon:	
  This	
  is	
  a	
  study	
  plugin	
  
Author:	
  Kazuya	
  Takami	
  
Version:	
  0.1	
  
*/	
  
書いたら管理理画⾯面のプラグインメニューを確認しましょう。(^o^)
©	
  wordbonch.org	
何はともあれテーマを作る(外観→テーマ)
8	
  
でた!\(^o^)/
©	
  wordbonch.org	
先程のコメント欄の下に続けて以下のコードを記述します。
Widget  APIの基本
9	
  
class	
  Widget_Plugin	
  extends	
  WP_Widget	
  {	
  
	
  	
  	
  	
  public	
  funcMon	
  __construct()	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  parent::__construct(	
  false,	
  'Widget	
  Plugin	
  Demo’	
  );	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  form(	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  update(	
  $new_instance,	
  $old_instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
}	
  
©	
  wordbonch.org	
先程のコメント欄の下に続けて以下のコードを記述します。
Widget  APIの基本
10	
  
class	
  Widget_Plugin	
  extends	
  WP_Widget	
  {	
  
	
  	
  	
  	
  public	
  funcMon	
  __construct()	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  parent::__construct(	
  false,	
  'Widget	
  Plugin	
  Demo’	
  );	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  form(	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  update(	
  $new_instance,	
  $old_instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
}	
  
WP_Widgetクラスを継承
©	
  wordbonch.org	
先程のコメント欄の下に続けて以下のコードを記述します。
Widget  APIの基本
11	
  
class	
  Widget_Plugin	
  extends	
  WP_Widget	
  {	
  
	
  	
  	
  	
  public	
  funcMon	
  __construct()	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  parent::__construct(	
  false,	
  ‘Widget	
  Plugin	
  Demo’	
  );	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  form(	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  update(	
  $new_instance,	
  $old_instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
}	
  
WP_Widgetクラス(スーパ
ークラス)のコンストラク
タ呼び出し
©	
  wordbonch.org	
先程のコメント欄の下に続けて以下のコードを記述します。
Widget  APIの基本
12	
  
class	
  Widget_Plugin	
  extends	
  WP_Widget	
  {	
  
	
  	
  	
  	
  public	
  funcMon	
  __construct()	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  parent::__construct(	
  false,	
  'Widget	
  Plugin	
  Demo’	
  );	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  form(	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  update(	
  $new_instance,	
  $old_instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
}	
  
管理理画⾯面のウィジェットに
⼊入⼒力力項⽬目などを表⽰示する関数
$instance に連想配列列で
登録した項⽬目値が来る
©	
  wordbonch.org	
先程のコメント欄の下に続けて以下のコードを記述します。
Widget  APIの基本
13	
  
class	
  Widget_Plugin	
  extends	
  WP_Widget	
  {	
  
	
  	
  	
  	
  public	
  funcMon	
  __construct()	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  parent::__construct(	
  false,	
  'Widget	
  Plugin	
  Demo’	
  );	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  form(	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  update(	
  $new_instance,	
  $old_instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
}	
  
管理理画⾯面のウィジェット
で「保存」ボタンを押した
時に動作する関数
$new_instance が今回、
$old_instanceが前回⼊入
⼒力力した値
©	
  wordbonch.org	
先程のコメント欄の下に続けて以下のコードを記述します。
Widget  APIの基本
14	
  
class	
  Widget_Plugin	
  extends	
  WP_Widget	
  {	
  
	
  	
  	
  	
  public	
  funcMon	
  __construct()	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  parent::__construct(	
  false,	
  'Widget	
  Plugin	
  Demo’	
  );	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  form(	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  update(	
  $new_instance,	
  $old_instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
	
  
	
  	
  	
  	
  public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  
	
  	
  	
  	
  }	
  
}	
  
サイト側のウィジェットを
配置した場所に表⽰示される
内容を記述
$new_instance が今回、
$old_instanceが前回⼊入
⼒力力した値
©	
  wordbonch.org	
出来上がったクラスをウィジェットに登録して、フックポイント(widget_̲init)に仕掛けます。
Widget  API:フックポイントの登録
15	
  
add_acMon(	
  'widgets_init',	
  funcMon	
  ()	
  {	
  
	
  	
  	
  	
  register_widget(	
  'Widget_Plugin’	
  );	
  
});	
  
クラス名を登録します。
(無名関数パターン)
funcMon	
  register_widget_plugin	
  ()	
  {	
  
	
  	
  	
  	
  register_widget(	
  'Widget_Plugin’	
  );	
  
}	
  
add_acMon(	
  'widgets_init’,	
  ‘register_widget_plugin’);	
  
関数を作ってフックさ
せるパターン。
©	
  wordbonch.org	
さて
16	
  
ここまで記述したらプラグインを
有効にしてみましょう。
©	
  wordbonch.org	
Widget  API:ウィジェット画⾯面
17	
  
追加された!\(^o^)/
©	
  wordbonch.org	
Widget  API:ウィジェット画⾯面
18	
  
けどまだ何も起きない
(´・ω・`)
©	
  wordbonch.org	
まずは初期設定
19	
  
コンストラクタの定義
©	
  wordbonch.org	
スーパークラスのコンストラクタを呼び出します。
Widget  API:コンストラクタの定義
20	
  
public	
  funcMon	
  __construct()	
  {	
  
	
  	
  	
  	
  $widget_opMons	
  =	
  array(	
  'descripMon'	
  =>	
  'This	
  is	
  a	
  study	
  plugin'	
  );	
  
	
      parent::__construct(	
  false,	
  'Widget	
  Plugin	
  Demo',	
  $widget_opMons);	
  
}	
  
©	
  wordbonch.org	
formメソッド
21	
  
formメソッドの定義
©	
  wordbonch.org	
Widget  API:formメソッド定義
22	
  
public	
  funcMon	
  form(	
  $instance	
  )	
  {	
  
	
  	
  	
  	
  echo	
  '<p>タイトル:';	
  
	
  	
  	
  	
  prina(	
  
	
  	
  	
  	
  	
  	
  	
  	
  '<input	
  type="text"	
  id="%s"	
  name="%s"	
  value="%s">',	
  
	
  	
  	
  	
  	
  	
  	
  	
  $this-­‐>get_field_id(	
  'Mtle'	
  ),	
  
	
  	
  	
  	
  	
  	
  	
  	
  $this-­‐>get_field_name(	
  'Mtle'	
  ),	
  
	
  	
  	
  	
  	
  	
  	
  	
  esc_a5r(	
  $instance['Mtle']	
  )	
  
	
  	
  	
  	
  );	
  
	
  	
  	
  	
  echo	
  '</p>';	
  
}	
  
public	
  funcMon	
  get_field_id(	
  $field_name	
  )	
  {	
  
	
  	
  	
  	
  return	
  'widget-­‐'	
  .	
  $this-­‐>id_base	
  .	
  '-­‐'	
  .	
  $this-­‐>number	
  .	
  '-­‐'	
  .	
  $field_name;	
  
}	
  
widget.php
⼀一意な⽂文字列列を作成し
てくれる。
public	
  funcMon	
  get_field_name($field_name)	
  {	
  
	
  	
  	
  	
  return	
  'widget-­‐'	
  .	
  $this-­‐>id_base	
  .	
  '['	
  .	
  $this-­‐>number	
  .	
  ']['	
  .	
  $field_name	
  .	
  ']';	
  
}	
  
name属性は配列列にし
てくれる。すてき。
©	
  wordbonch.org	
Widget  API:ウィジェット画⾯面確認
23	
  
⼊入⼒力力ボックスが出た!
( ´ ▽ ` )ノ
©	
  wordbonch.org	
Widget  API:ウィジェット画⾯面確認
24	
  
けどまだ保存できない
(´・ω・`)
©	
  wordbonch.org	
updateメソッド
25	
  
updateメソッドの定義
©	
  wordbonch.org	
$new_̲instance  に⼊入⼒力力した値が⼊入っているのでreturnするだけ。
Widget  API:updateメソッド定義
26	
  
public	
  funcMon	
  update(	
  $new_instance,	
  $old_instance	
  )	
  {	
  
	
  	
  	
  	
  return	
  $new_instance;	
  
}	
  
これだけ!( ´ ▽ ` )ノ
⼊入⼒力力した値+何かを保存したい場合には、ここで仕掛けてあげます。
$new_̲instance[ʻ‘titleʼ’]  =  $new_̲instance[ʻ‘titleʼ’]  .  ʻ‘追加ʼ’;  的な。
©	
  wordbonch.org	
widgetメソッド
27	
  
widgetメソッドの定義
©	
  wordbonch.org	
タイトルとコンテンツを出⼒力力するにあたって、他のwidgetと同様の構成にするようにします。
Widget  API:widgetメソッド定義
28	
  
public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  	
  	
  	
  echo	
  $args['before_widget'];	
  
	
  	
  	
  	
  echo	
  $args['before_Mtle'];	
  
	
  	
  	
  	
  echo	
  esc_html(	
  $instance['Mtle']	
  );	
  
	
  	
  	
  	
  echo	
  $args['aher_Mtle'];	
  
	
  	
  	
  	
  echo	
  $args['aher_widget'];	
  
}	
  
登録した情報を出⼒力力し
ます。エスケープも忘
れずに。
©	
  wordbonch.org	
Widget  API:表⽰示確認
29	
  
表⽰示された!( ´ ▽ ` )ノ
©	
  wordbonch.org	
タイトルとコンテンツを出⼒力力するにあたって、他のwidgetと同様の構成にするようにします。
Widget  API:widgetメソッド定義
30	
  
public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  	
  	
  	
  echo	
  $args['before_widget'];	
  
	
  	
  	
  	
  echo	
  $args['before_Mtle'];	
  
	
  	
  	
  	
  echo	
  esc_html(	
  $instance['Mtle']	
  );	
  
	
  	
  	
  	
  echo	
  $args['aher_Mtle'];	
  
	
  	
  	
  	
  echo	
  $args['aher_widget'];	
  
}	
  
引数$argsにウィジェット共
通情報が含まれています。
©	
  wordbonch.org	
Widget  API:widgetメソッド定義
31	
  
public	
  funcMon	
  widget(	
  $args,	
  $instance	
  )	
  {	
  
	
  	
  	
  	
  echo	
  $args['before_widget'];	
  
	
  	
  	
  	
  echo	
  $args['before_Mtle'];	
  
	
  	
  	
  	
  echo	
  esc_html(	
  $instance['Mtle']	
  );	
  
	
  	
  	
  	
  echo	
  $args['aher_Mtle'];	
  
	
  
	
  	
  	
  	
  global	
  $post;	
  
	
  	
  	
  	
  $where	
  =	
  array(	
  'numberposts'	
  =>	
  5	
  );	
  
	
  	
  	
  	
  $posts	
  =	
  get_posts(	
  $where	
  );	
  
	
  	
  	
  	
  foreach(	
  $posts	
  as	
  $post	
  )	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  setup_postdata($post);	
  
	
  	
  	
  	
  	
  	
  	
  	
  esc_html(	
  the_Mtle()	
  );	
  
	
  	
  	
  	
  }	
  
	
  	
  	
  	
  wp_reset_postdata();	
  
	
  	
  	
  	
  echo	
  $args['aher_widget'];	
  
}	
  
この部分を追加しました。
投稿を表⽰示してみます。
©	
  wordbonch.org	
Widget  API:表⽰示確認
32	
  
表⽰示された!( ´ ▽ ` )ノ
©	
  wordbonch.org	
ご清聴ありがとうございました。
33	
  
ありがとうございました。
次回は2ヶ月後の8月開催です。
©	
  wordbonch.org	
WordPress関数リファレンス/Widgets_API
https://codex.wordpress.org/Widgets_API
WordPress関数リファレンス/register_widget
https://codex.wordpress.org/Function_Reference/register_widget
参考URL
34	
  

More Related Content

What's hot

Ruby on Rails Tutorial Chapter8-10
Ruby on Rails Tutorial Chapter8-10Ruby on Rails Tutorial Chapter8-10
Ruby on Rails Tutorial Chapter8-10Sea Mountain
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXShinya Mochida
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMiho Nakano
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm伸男 伊藤
 
WordPress×jQueryMobile
WordPress×jQueryMobileWordPress×jQueryMobile
WordPress×jQueryMobileTakami Kazuya
 
何が変わった JavaFX 2.0
何が変わった JavaFX 2.0何が変わった JavaFX 2.0
何が変わった JavaFX 2.0Yuichi Sakuraba
 
大阪Node学園八時限目 「expressで作るWebアプリ」
大阪Node学園八時限目 「expressで作るWebアプリ」大阪Node学園八時限目 「expressで作るWebアプリ」
大阪Node学園八時限目 「expressで作るWebアプリ」Shunsuke Watanabe
 
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)Kei Yagi
 
concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識Hishikawa Takuro
 
Knocked out in knockout js
Knocked out in knockout jsKnocked out in knockout js
Knocked out in knockout jsHiroyuki Tashima
 
Vue.js 基礎 + Vue CLI の使い方
Vue.js 基礎 + Vue CLI の使い方Vue.js 基礎 + Vue CLI の使い方
Vue.js 基礎 + Vue CLI の使い方Kei Yagi
 
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa Stotty jp
 
Vue Router + Vuex
Vue Router + VuexVue Router + Vuex
Vue Router + VuexKei Yagi
 

What's hot (20)

Ruby on Rails Tutorial Chapter8-10
Ruby on Rails Tutorial Chapter8-10Ruby on Rails Tutorial Chapter8-10
Ruby on Rails Tutorial Chapter8-10
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
Scene BuilderでFXML
Scene BuilderでFXMLScene BuilderでFXML
Scene BuilderでFXML
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
Apexデザインパターン
ApexデザインパターンApexデザインパターン
Apexデザインパターン
 
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for DesignMagento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
 
T90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvmT90 きっと怖くないmvvm & mvpvm
T90 きっと怖くないmvvm & mvpvm
 
WordPress×jQueryMobile
WordPress×jQueryMobileWordPress×jQueryMobile
WordPress×jQueryMobile
 
何が変わった JavaFX 2.0
何が変わった JavaFX 2.0何が変わった JavaFX 2.0
何が変わった JavaFX 2.0
 
Mvpvm pattern
Mvpvm patternMvpvm pattern
Mvpvm pattern
 
大阪Node学園八時限目 「expressで作るWebアプリ」
大阪Node学園八時限目 「expressで作るWebアプリ」大阪Node学園八時限目 「expressで作るWebアプリ」
大阪Node学園八時限目 「expressで作るWebアプリ」
 
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
 
concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識
 
Form libraries
Form librariesForm libraries
Form libraries
 
Knocked out in knockout js
Knocked out in knockout jsKnocked out in knockout js
Knocked out in knockout js
 
Vue.js 基礎 + Vue CLI の使い方
Vue.js 基礎 + Vue CLI の使い方Vue.js 基礎 + Vue CLI の使い方
Vue.js 基礎 + Vue CLI の使い方
 
I Log On Saa S
I Log On Saa SI Log On Saa S
I Log On Saa S
 
Vue Router + Vuex
Vue Router + VuexVue Router + Vuex
Vue Router + Vuex
 
PHP勉強会 #51
PHP勉強会 #51PHP勉強会 #51
PHP勉強会 #51
 
20200304 vuejs
20200304 vuejs20200304 vuejs
20200304 vuejs
 

Similar to WordPress widget api

20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01Yusuke Ando
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義ria1201
 
Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)Akihiro Iwaya
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdkKazuki Nakajima
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revShotaro Suzuki
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugY Watanabe
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittrkenjis
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -Akio Katayama
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -Akio Katayama
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )hiro345
 
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料codeal
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28Kite Koga
 
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>Eucen Stew
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
20120507 zendform
20120507 zendform20120507 zendform
20120507 zendformYusuke Ando
 

Similar to WordPress widget api (20)

20091030cakephphandson 01
20091030cakephphandson 0120091030cakephphandson 01
20091030cakephphandson 01
 
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
 
Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)
 
SaCSS vol.24
SaCSS vol.24SaCSS vol.24
SaCSS vol.24
 
SaCSS vol. 24
SaCSS vol. 24SaCSS vol. 24
SaCSS vol. 24
 
Tech talk salesforce mobile sdk
Tech talk   salesforce mobile sdkTech talk   salesforce mobile sdk
Tech talk salesforce mobile sdk
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
 
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsugSpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
SpringMVCとmixer2で作るWebアプリのキホン 2013-01-24 Spring勉強会 #jsug
 
CodeIgniterによるPhwittr
CodeIgniterによるPhwittrCodeIgniterによるPhwittr
CodeIgniterによるPhwittr
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )15分でCakePHPを始める方法(Nseg 2013-11-09 )
15分でCakePHPを始める方法(Nseg 2013-11-09 )
 
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
20150207コデアルエンジニア学生向けハッカソン就活イベント発表資料
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
WordBech Osaka No.28
WordBech Osaka No.28WordBech Osaka No.28
WordBech Osaka No.28
 
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
20120507 zendform
20120507 zendform20120507 zendform
20120507 zendform
 

More from Takami Kazuya

HTML栄枯盛衰は世の習い
HTML栄枯盛衰は世の習いHTML栄枯盛衰は世の習い
HTML栄枯盛衰は世の習いTakami Kazuya
 
Google Apps Script 入門
Google Apps Script 入門Google Apps Script 入門
Google Apps Script 入門Takami Kazuya
 
GoogleAppsScript入門
GoogleAppsScript入門GoogleAppsScript入門
GoogleAppsScript入門Takami Kazuya
 
Googleデータポータルで見える化に挑戦vol.2
Googleデータポータルで見える化に挑戦vol.2Googleデータポータルで見える化に挑戦vol.2
Googleデータポータルで見える化に挑戦vol.2Takami Kazuya
 
WordPressで考えるこれからのコンテンツ制作
WordPressで考えるこれからのコンテンツ制作WordPressで考えるこれからのコンテンツ制作
WordPressで考えるこれからのコンテンツ制作Takami Kazuya
 
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座Takami Kazuya
 
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016Takami Kazuya
 
WordPress + JSON-LDで構造化するこれからのマークアップ
WordPress + JSON-LDで構造化するこれからのマークアップWordPress + JSON-LDで構造化するこれからのマークアップ
WordPress + JSON-LDで構造化するこれからのマークアップTakami Kazuya
 
jQuery3.0-beta1-point
jQuery3.0-beta1-pointjQuery3.0-beta1-point
jQuery3.0-beta1-pointTakami Kazuya
 
プラグイン公開までの道のり
プラグイン公開までの道のりプラグイン公開までの道のり
プラグイン公開までの道のりTakami Kazuya
 
JSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメJSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメTakami Kazuya
 
React Facebook JavaScript Library
React Facebook JavaScript LibraryReact Facebook JavaScript Library
React Facebook JavaScript LibraryTakami Kazuya
 
Wordpress カスタム投稿
Wordpress カスタム投稿Wordpress カスタム投稿
Wordpress カスタム投稿Takami Kazuya
 
WordPressプラグインの作り方
WordPressプラグインの作り方WordPressプラグインの作り方
WordPressプラグインの作り方Takami Kazuya
 
【WordBench宮崎】第3回・4回アンケート報告
【WordBench宮崎】第3回・4回アンケート報告【WordBench宮崎】第3回・4回アンケート報告
【WordBench宮崎】第3回・4回アンケート報告Takami Kazuya
 
WordPressプラグイン考察
WordPressプラグイン考察WordPressプラグイン考察
WordPressプラグイン考察Takami Kazuya
 
WordPressテーマ作成
WordPressテーマ作成WordPressテーマ作成
WordPressテーマ作成Takami Kazuya
 

More from Takami Kazuya (20)

HTML栄枯盛衰は世の習い
HTML栄枯盛衰は世の習いHTML栄枯盛衰は世の習い
HTML栄枯盛衰は世の習い
 
Google Apps Script 入門
Google Apps Script 入門Google Apps Script 入門
Google Apps Script 入門
 
GoogleAppsScript入門
GoogleAppsScript入門GoogleAppsScript入門
GoogleAppsScript入門
 
Googleデータポータルで見える化に挑戦vol.2
Googleデータポータルで見える化に挑戦vol.2Googleデータポータルで見える化に挑戦vol.2
Googleデータポータルで見える化に挑戦vol.2
 
WordPressで考えるこれからのコンテンツ制作
WordPressで考えるこれからのコンテンツ制作WordPressで考えるこれからのコンテンツ制作
WordPressで考えるこれからのコンテンツ制作
 
WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座WordPressをこれから始める人のためのテーマ講座
WordPressをこれから始める人のためのテーマ講座
 
WordPress+AMP
WordPress+AMPWordPress+AMP
WordPress+AMP
 
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016
 
WordPress + JSON-LDで構造化するこれからのマークアップ
WordPress + JSON-LDで構造化するこれからのマークアップWordPress + JSON-LDで構造化するこれからのマークアップ
WordPress + JSON-LDで構造化するこれからのマークアップ
 
jQuery3.0-beta1-point
jQuery3.0-beta1-pointjQuery3.0-beta1-point
jQuery3.0-beta1-point
 
プラグイン公開までの道のり
プラグイン公開までの道のりプラグイン公開までの道のり
プラグイン公開までの道のり
 
History api
History apiHistory api
History api
 
JSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメJSON-LD schema.org定義によるデータ構造化のススメ
JSON-LD schema.org定義によるデータ構造化のススメ
 
Miyazaki.js vol.2
Miyazaki.js vol.2Miyazaki.js vol.2
Miyazaki.js vol.2
 
React Facebook JavaScript Library
React Facebook JavaScript LibraryReact Facebook JavaScript Library
React Facebook JavaScript Library
 
Wordpress カスタム投稿
Wordpress カスタム投稿Wordpress カスタム投稿
Wordpress カスタム投稿
 
WordPressプラグインの作り方
WordPressプラグインの作り方WordPressプラグインの作り方
WordPressプラグインの作り方
 
【WordBench宮崎】第3回・4回アンケート報告
【WordBench宮崎】第3回・4回アンケート報告【WordBench宮崎】第3回・4回アンケート報告
【WordBench宮崎】第3回・4回アンケート報告
 
WordPressプラグイン考察
WordPressプラグイン考察WordPressプラグイン考察
WordPressプラグイン考察
 
WordPressテーマ作成
WordPressテーマ作成WordPressテーマ作成
WordPressテーマ作成
 

WordPress widget api