Submit Search
WordPress widget api
2 likes
706 views
Takami Kazuya
2015-06-20 WordBench宮崎勉強会資料
Engineering
Read more
1 of 34
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
More Related Content
PDF
Vue入門
Takeo Noda
PDF
Try Jetpack
Hideaki Miyake
PDF
20120118 titanium
Hiroshi Oyamada
PDF
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
a know
PDF
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
PDF
JavaFX 2.0 - リッチクライアントのためのUI基盤
Yuichi Sakuraba
PDF
プロダクトに 1 から Vue.js を導入した話
Shohei Okada
PDF
はじめてのVue.js
Kei Yagi
Vue入門
Takeo Noda
Try Jetpack
Hideaki Miyake
20120118 titanium
Hiroshi Oyamada
はじめよう JavaFX 2.x(第3回 岡山Javaユーザー会)
a know
From Swing to JavaFX - SwingからJavaFXへのマイグレーションガイド
Yuichi Sakuraba
JavaFX 2.0 - リッチクライアントのためのUI基盤
Yuichi Sakuraba
プロダクトに 1 から Vue.js を導入した話
Shohei Okada
はじめてのVue.js
Kei Yagi
What's hot
(20)
PPT
Ruby on Rails Tutorial Chapter8-10
Sea Mountain
PDF
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
PDF
Scene BuilderでFXML
Yuichi Sakuraba
PDF
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
PDF
Apexデザインパターン
Salesforce Developers Japan
PPTX
Magento meet up Tokyo#1 for Design
Miho Nakano
PPTX
T90 きっと怖くないmvvm & mvpvm
伸男 伊藤
PPT
WordPress×jQueryMobile
Takami Kazuya
PDF
何が変わった JavaFX 2.0
Yuichi Sakuraba
PPTX
Mvpvm pattern
Mami Shiino
PDF
大阪Node学園八時限目 「expressで作るWebアプリ」
Shunsuke Watanabe
PDF
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Kei Yagi
PDF
concrete5デザインカスタマイズに必要なPHPの知識
Hishikawa Takuro
PDF
Form libraries
Atsushi Odagiri
PDF
Knocked out in knockout js
Hiroyuki Tashima
PDF
Vue.js 基礎 + Vue CLI の使い方
Kei Yagi
PDF
I Log On Saa S
totty jp
PDF
Vue Router + Vuex
Kei Yagi
PDF
PHP勉強会 #51
Takako Miyagawa
PPTX
20200304 vuejs
yamamotomsc
Ruby on Rails Tutorial Chapter8-10
Sea Mountain
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
Scene BuilderでFXML
Yuichi Sakuraba
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
Apexデザインパターン
Salesforce Developers Japan
Magento meet up Tokyo#1 for Design
Miho Nakano
T90 きっと怖くないmvvm & mvpvm
伸男 伊藤
WordPress×jQueryMobile
Takami Kazuya
何が変わった JavaFX 2.0
Yuichi Sakuraba
Mvpvm pattern
Mami Shiino
大阪Node学園八時限目 「expressで作るWebアプリ」
Shunsuke Watanabe
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Kei Yagi
concrete5デザインカスタマイズに必要なPHPの知識
Hishikawa Takuro
Form libraries
Atsushi Odagiri
Knocked out in knockout js
Hiroyuki Tashima
Vue.js 基礎 + Vue CLI の使い方
Kei Yagi
I Log On Saa S
totty jp
Vue Router + Vuex
Kei Yagi
PHP勉強会 #51
Takako Miyagawa
20200304 vuejs
yamamotomsc
Ad
Similar to WordPress widget api
(20)
PDF
Wp プラグインapiから理解するword press.share
Yuji Nojima
PDF
はじめてのWord pressプラグイン勉強会
Takahiro Nakahata
PDF
WordPressの使えるプラグイン2013
Takashi Uemura
PDF
WordPressプラグインの作り方
Takami Kazuya
PDF
WordPressプラグイン考察
Takami Kazuya
PPT
Word Press on Movable Type
Hajime Fujimoto
PDF
4時間まったりWordPressテーマ作成講座
Shinichi Nishikawa
KEY
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa
PDF
Word Fes 2015 ライトニングトーク「WordPress+Yii2で簡単データパネル」
清徳 伊藤
PDF
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
Takashi Uemura
KEY
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
Yuji Nojima
PDF
意外と簡単 プラグイン開発超入門
Michinari Odajima
PDF
SaCSS vol.24
jun sugimoto
PDF
SaCSS vol. 24
jun sugimoto
PPTX
案件で使えるプラグイン特集
優也 田島
PPTX
WordBench熊本第3回勉強会
Akinori Tateyama
PDF
Mizuno buddypress-plugin
Ikuko Kanada
PDF
Mizuno buddypress-plugin
Fumito Mizuno
PDF
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
Mignon Style
PDF
落とし穴に落ちないためのWordPress基礎知識
Yoshie Nakayama
Wp プラグインapiから理解するword press.share
Yuji Nojima
はじめてのWord pressプラグイン勉強会
Takahiro Nakahata
WordPressの使えるプラグイン2013
Takashi Uemura
WordPressプラグインの作り方
Takami Kazuya
WordPressプラグイン考察
Takami Kazuya
Word Press on Movable Type
Hajime Fujimoto
4時間まったりWordPressテーマ作成講座
Shinichi Nishikawa
WordPress中級者への道!テンプレートタグはどう動くのか!?
Shinichi Nishikawa
Word Fes 2015 ライトニングトーク「WordPress+Yii2で簡単データパネル」
清徳 伊藤
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
Takashi Uemura
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
Yuji Nojima
意外と簡単 プラグイン開発超入門
Michinari Odajima
SaCSS vol.24
jun sugimoto
SaCSS vol. 24
jun sugimoto
案件で使えるプラグイン特集
優也 田島
WordBench熊本第3回勉強会
Akinori Tateyama
Mizuno buddypress-plugin
Ikuko Kanada
Mizuno buddypress-plugin
Fumito Mizuno
ノンプログラマーのためのWordPressプラグイン作成超入門 | Mignon Style
Mignon Style
落とし穴に落ちないためのWordPress基礎知識
Yoshie Nakayama
Ad
More from Takami Kazuya
(20)
PDF
HTML栄枯盛衰は世の習い
Takami Kazuya
PDF
Google Apps Script 入門
Takami Kazuya
PDF
GoogleAppsScript入門
Takami Kazuya
PDF
Googleデータポータルで見える化に挑戦vol.2
Takami Kazuya
PDF
WordPressで考えるこれからのコンテンツ制作
Takami Kazuya
PDF
WordPressをこれから始める人のためのテーマ講座
Takami Kazuya
PDF
WordPress+AMP
Takami Kazuya
PDF
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016
Takami Kazuya
PDF
WordPress + JSON-LDで構造化するこれからのマークアップ
Takami Kazuya
PDF
jQuery3.0-beta1-point
Takami Kazuya
PDF
プラグイン公開までの道のり
Takami Kazuya
PDF
History api
Takami Kazuya
PDF
JSON-LD schema.org定義によるデータ構造化のススメ
Takami Kazuya
PDF
Miyazaki.js vol.2
Takami Kazuya
PDF
React Facebook JavaScript Library
Takami Kazuya
PDF
Wordpress カスタム投稿
Takami Kazuya
PDF
【WordBench宮崎】第3回・4回アンケート報告
Takami Kazuya
PDF
WordPressテーマ作成
Takami Kazuya
PPTX
EC-CUBEプラグイン制作のポイント
Takami Kazuya
PPT
今から学ぶ!jQuery Mobile!
Takami Kazuya
HTML栄枯盛衰は世の習い
Takami Kazuya
Google Apps Script 入門
Takami Kazuya
GoogleAppsScript入門
Takami Kazuya
Googleデータポータルで見える化に挑戦vol.2
Takami Kazuya
WordPressで考えるこれからのコンテンツ制作
Takami Kazuya
WordPressをこれから始める人のためのテーマ講座
Takami Kazuya
WordPress+AMP
Takami Kazuya
WordPress+JSON-LDで構造化するこれからのマークアップ WordFes Nagoya 2016
Takami Kazuya
WordPress + JSON-LDで構造化するこれからのマークアップ
Takami Kazuya
jQuery3.0-beta1-point
Takami Kazuya
プラグイン公開までの道のり
Takami Kazuya
History api
Takami Kazuya
JSON-LD schema.org定義によるデータ構造化のススメ
Takami Kazuya
Miyazaki.js vol.2
Takami Kazuya
React Facebook JavaScript Library
Takami Kazuya
Wordpress カスタム投稿
Takami Kazuya
【WordBench宮崎】第3回・4回アンケート報告
Takami Kazuya
WordPressテーマ作成
Takami Kazuya
EC-CUBEプラグイン制作のポイント
Takami Kazuya
今から学ぶ!jQuery Mobile!
Takami Kazuya
WordPress widget api
1.
© wordbonch.org WordPress Widget
API WordBench宮崎 ver.1.0.0 【WordBench宮崎勉強会】
2.
© wordbonch.org ⾃自⼰己紹介 2 ⾼高⾒見見 和也(Takami
Kazuya) Twi5er@miiitaka Facebook@miiitaka 株式会社アラタナ フロントエンドエンジニア JavaScriptと友達です。
3.
© wordbonch.org Let’s Programming
!! 3 今回は野良良プラグインを作って 実装してみます。
4.
© wordbonch.org WordPressの基本階層は以下のとおりです。⼤大きく3つのフォルダがあります。 WordPressの基本構造を理理解(主要ディレクトリ) 4 /wp-admin/ 管理理画⾯面で使⽤用するファイルあれこれがある。基本触らない。 /wp-content/ 基本、このフォルダの中をさわりましょう。 /wp-include/ WP全体で使⽤用するJSやCSS、コアファイルがある。これも基本触らない。 / ルート直下は、ログイン関連やRSS関連、コメント、トラックバック、メール送受信⽤用 のファイルなどなど
5.
© 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/ 管理理画⾯面からアップロードしたメディアファイルが保存されている場所。 年年→⽉月でいい感じに保存されています。
6.
© 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 ディレクトリを作る。
7.
© 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^)
8.
© wordbonch.org 何はともあれテーマを作る(外観→テーマ) 8 でた!\(^o^)/
9.
© 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 ) { } }
10.
© 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クラスを継承
11.
© 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クラス(スーパ ークラス)のコンストラク タ呼び出し
12.
© 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 に連想配列列で 登録した項⽬目値が来る
13.
© 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が前回⼊入 ⼒力力した値
14.
© 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が前回⼊入 ⼒力力した値
15.
© 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’); 関数を作ってフックさ せるパターン。
16.
© wordbonch.org さて 16 ここまで記述したらプラグインを 有効にしてみましょう。
17.
© wordbonch.org Widget API:ウィジェット画⾯面 17
追加された!\(^o^)/
18.
© wordbonch.org Widget API:ウィジェット画⾯面 18
けどまだ何も起きない (´・ω・`)
19.
© wordbonch.org まずは初期設定 19 コンストラクタの定義
20.
© 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); }
21.
© wordbonch.org formメソッド 21 formメソッドの定義
22.
© 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属性は配列列にし てくれる。すてき。
23.
© wordbonch.org Widget API:ウィジェット画⾯面確認 23
⼊入⼒力力ボックスが出た! ( ´ ▽ ` )ノ
24.
© wordbonch.org Widget API:ウィジェット画⾯面確認 24
けどまだ保存できない (´・ω・`)
25.
© wordbonch.org updateメソッド 25 updateメソッドの定義
26.
© 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ʼ’] . ʻ‘追加ʼ’; 的な。
27.
© wordbonch.org widgetメソッド 27 widgetメソッドの定義
28.
© 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']; } 登録した情報を出⼒力力し ます。エスケープも忘 れずに。
29.
© wordbonch.org Widget API:表⽰示確認 29
表⽰示された!( ´ ▽ ` )ノ
30.
© 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にウィジェット共 通情報が含まれています。
31.
© 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']; } この部分を追加しました。 投稿を表⽰示してみます。
32.
© wordbonch.org Widget API:表⽰示確認 32
表⽰示された!( ´ ▽ ` )ノ
33.
© wordbonch.org ご清聴ありがとうございました。 33 ありがとうございました。 次回は2ヶ月後の8月開催です。
34.
© wordbonch.org WordPress関数リファレンス/Widgets_API https://codex.wordpress.org/Widgets_API WordPress関数リファレンス/register_widget https://codex.wordpress.org/Function_Reference/register_widget 参考URL 34
Download