SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
プラグイン開発入門
WordBench Nagoya 7月勉強会 2017.7.8
意外と簡単 超
今日やる内容
プラグインとは?
プラグインの基本
フックとは?
コードテスト
公式ディレクトリへの登録
参考サイト・書籍
プラグインとは?
プラグインとは?
WordPress 本体に手を加えることなく、

WordPress に機能を追加する仕組み。
プラグインのメリット
機能の追加・削除が管理画面でできる。
テーマに関係なく利用できる。
自動アップデートに対応。*
*公式ディレクトリに登録されているプラグインの場合。
プラグインのデメリット
有効化しないと使えない。
テーマ毎に適用できない。
プラグインと functions.php
基本的に書く内容は同じ。
汎用度に応じて使い分ける。
プラグインの基本
ファイル構成
my-plugin フォルダ
┕├jsフォルダ
├cssフォルダ
├includesフォルダ
└my-plugin.php
コンフリクトとは?
クラス名や関数名が重複してしまう事。
コンフリクトの回避
公式ディレクトリで検索
接頭辞を付ける
クラス化
ヘッダー
<?php
/*
Plugin Name: (プラグインの名前)
Plugin URI: (プラグインの説明と更新を示すページの URI)
Description: (プラグインの短い説明)
Version: (プラグインのバージョン番号。例: 1.0)
Author: (プラグイン作者の名前)
Author URI: (プラグイン作者の URI)
License: (ライセンス名の「スラッグ」 例: GPL2)
*/
実際に作ってみる
DEMO
ショートコードとは?
ショートコードとは?
固定ページや投稿内で関数を実行できる
仕組み。
ショートコードの定義
add_shortcode(
'ショートコード名',
 '実行する関数名'
)
ショートコードの書き方
[ショートコード名]
または
[ショートコード名][/ショートコード名]
実際に作ってみる
DEMO
フックとは?
フックとは?
WordPress に予め用意されている、

任意のタイミングで処理を追加したり、

標準の処理を変更したりする仕組み。
アクションフック
add_action(
'フック名',
 '実行する関数名',
優先順位(オプション : 10),
引数の数(オプション : 1)
)
フィルターフック
add_filter(
'フック名',
 '実行する関数名',
優先順位(オプション : 10),
引数の数(オプション : 1)
)
実際に作ってみる
DEMO
コードテスト
コードテスト
Plugin Inspector プラグインなどで、

次のようなコードのチェックができます。
廃止予定の WordPress 関数のチェック
安全でない関数のチェック
公式ディレクトリへの登録
ライセンス
プラグインはテンプレートタグやプラ
グイン API という WordPress の機能を
利用しているので、WordPress の派生物
にあたります。
そのため、WordPress と同じ GPLv2 ラ
イセンスが適用されます。
コーディング規約
コーディング規約は、日本語 Codex に
詳細が記載されています。
readme.txt
プラグインを公式ディレクトリに登録する
には、readme.txt を作る必要があります。
GenerateWP というサイトで作成できます。
国際化
国際化をすることによって、各言語に翻訳
することができます。
国際化
__(
'翻訳するテキスト',
 'テキストドメイン'
)
翻訳のみ。
国際化
_e(
'翻訳するテキスト',
 'テキストドメイン'
)
翻訳されたテキストを出力。
公式ディレクトリ

登録の手順
プラグインをダウンロードできる場所
を用意(Github や Website)
アカウントの作成
プラグインの登録申請
Subversion でコミット
参考サイト・書籍
参考サイト
開発者向け情報
プラグインの作成
ファイルヘッダー
プラグイン API
コーディング規約
参考サイト
Plugin Readme Generator
プラグインの公式サイト登録手順 |
てらこや.work
参考書籍
サイトの拡張性を飛躍的に高める
WordPress プラグイン開発のバイブル

Weitere ähnliche Inhalte

Was ist angesagt?

Vue template-parserを作っている話
Vue template-parserを作っている話Vue template-parserを作っている話
Vue template-parserを作っている話Koki Natsume
 
.NET 5 and Windows app dev
.NET 5 and Windows app dev.NET 5 and Windows app dev
.NET 5 and Windows app dev一希 大田
 
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡Rina Fukuda
 
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例TechGardenSchool
 
Front-end package managers
Front-end package managersFront-end package managers
Front-end package managersHayashi Yuichi
 
Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法Ian Lewis
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発takeuchi-tk
 
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化Tatsuya Ishikawa
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)Yasuhiko Yamamoto
 
組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺Gou Sawada
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリYasuhiko Yamamoto
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門Yasuhiko Yamamoto
 
初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!naba0123
 
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」Yasuhiko Yamamoto
 
pytest × TDD テスト駆動開発のススメ
pytest × TDD テスト駆動開発のススメpytest × TDD テスト駆動開発のススメ
pytest × TDD テスト駆動開発のススメiRidge, Inc.
 
JSオジサン openframeworks emscripten
JSオジサン openframeworks emscriptenJSオジサン openframeworks emscripten
JSオジサン openframeworks emscriptenminoru nakanou
 
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法Yasuhiko Yamamoto
 

Was ist angesagt? (20)

Vue template-parserを作っている話
Vue template-parserを作っている話Vue template-parserを作っている話
Vue template-parserを作っている話
 
.NET 5 and Windows app dev
.NET 5 and Windows app dev.NET 5 and Windows app dev
.NET 5 and Windows app dev
 
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
日本で一番PHPのシステムをテストしている手動テスターが思うところ:PHPカンファレンス福岡
 
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
[超初心者向け無料セミナー] 1時間でまるわかり!CakePHP概説&WordPress応用事例
 
Front-end package managers
Front-end package managersFront-end package managers
Front-end package managers
 
LIGでのDocker活用
LIGでのDocker活用LIGでのDocker活用
LIGでのDocker活用
 
Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法Djangoアプリの実践的設計手法
Djangoアプリの実践的設計手法
 
Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発Webエンジニアによるスマートフォンアプリ開発
Webエンジニアによるスマートフォンアプリ開発
 
Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化Friendlyを使ったwindowsアプリテスト自動化
Friendlyを使ったwindowsアプリテスト自動化
 
CSS Living StyleGuide
CSS Living StyleGuideCSS Living StyleGuide
CSS Living StyleGuide
 
.Netconf
.Netconf.Netconf
.Netconf
 
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
わんくま名古屋 #37 (20151114) Windows 10 UWP アプリ開発入門(実践編)
 
組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺組込みソフトウェアの品質の小噺
組込みソフトウェアの品質の小噺
 
無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ無償のVisual studioで作るクライアント アプリ
無償のVisual studioで作るクライアント アプリ
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!初心者でも Windows 10 Mobile アプリを作りたい!
初心者でも Windows 10 Mobile アプリを作りたい!
 
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」第8回業開中心会議 「Windows 10 ユニバーサルアプリの概要」
第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」
 
pytest × TDD テスト駆動開発のススメ
pytest × TDD テスト駆動開発のススメpytest × TDD テスト駆動開発のススメ
pytest × TDD テスト駆動開発のススメ
 
JSオジサン openframeworks emscripten
JSオジサン openframeworks emscriptenJSオジサン openframeworks emscripten
JSオジサン openframeworks emscripten
 
UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法UWP アプリを JavaScript で作る 3つの方法
UWP アプリを JavaScript で作る 3つの方法
 

Ähnlich wie 意外と簡単 プラグイン開発超入門

NetBeans plugin for wordpress
NetBeans plugin for wordpressNetBeans plugin for wordpress
NetBeans plugin for wordpressJunichi Yamamoto
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜Yuji Nojima
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309Nobuhiro Sue
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話Hidenori Goto
 
レスポンシブ対応 をサポートするプラグイン
レスポンシブ対応 をサポートするプラグインレスポンシブ対応 をサポートするプラグイン
レスポンシブ対応 をサポートするプラグインKawaji Masaki
 
Redmine plugin ハンズオン
Redmine plugin ハンズオンRedmine plugin ハンズオン
Redmine plugin ハンズオンHaruyuki Iida
 
WordPress の国際化方法
WordPress の国際化方法WordPress の国際化方法
WordPress の国際化方法Fumito Mizuno
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0Yuki Okamoto
 
WordPress基礎講座4 プラグインの活用
WordPress基礎講座4 プラグインの活用WordPress基礎講座4 プラグインの活用
WordPress基礎講座4 プラグインの活用Akinori Kawamitsu
 
Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Honma Masashi
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~Yabata Tomomitsu
 
12 総合演習Word Pressの利用
12 総合演習Word Pressの利用12 総合演習Word Pressの利用
12 総合演習Word Pressの利用文樹 高橋
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
WordPress サイトの 長期的メンテナンス
WordPress サイトの 長期的メンテナンスWordPress サイトの 長期的メンテナンス
WordPress サイトの 長期的メンテナンスNaoko Takano
 
Prejob wordpress v2_1121
Prejob wordpress v2_1121Prejob wordpress v2_1121
Prejob wordpress v2_1121Shohei Aoyama
 
Prejob wordpress v2_1121
Prejob wordpress v2_1121Prejob wordpress v2_1121
Prejob wordpress v2_1121Shohei Aoyama
 
kintone プラグインハンズオン資料
kintone プラグインハンズオン資料kintone プラグインハンズオン資料
kintone プラグインハンズオン資料安隆 沖
 
Fireworks lover advent calendar 2013
Fireworks lover advent calendar 2013Fireworks lover advent calendar 2013
Fireworks lover advent calendar 2013Kazuma Sekiguchi
 

Ähnlich wie 意外と簡単 プラグイン開発超入門 (20)

NetBeans plugin for wordpress
NetBeans plugin for wordpressNetBeans plugin for wordpress
NetBeans plugin for wordpress
 
Djangoのススメ
DjangoのススメDjangoのススメ
Djangoのススメ
 
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
エンジニアの為のWordPress入門 〜WordPressはWebAppプラットフォームです〜
 
Groovy base gradle_20130309
Groovy base gradle_20130309Groovy base gradle_20130309
Groovy base gradle_20130309
 
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
symfonyで汎用設定値を読み書きするモデル等をプラグインにした話
 
Chef
ChefChef
Chef
 
レスポンシブ対応 をサポートするプラグイン
レスポンシブ対応 をサポートするプラグインレスポンシブ対応 をサポートするプラグイン
レスポンシブ対応 をサポートするプラグイン
 
Redmine plugin ハンズオン
Redmine plugin ハンズオンRedmine plugin ハンズオン
Redmine plugin ハンズオン
 
WordPress の国際化方法
WordPress の国際化方法WordPress の国際化方法
WordPress の国際化方法
 
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
ノンプログラマーのためのWordPressプラグイン開発超入門v1.0
 
WordPress基礎講座4 プラグインの活用
WordPress基礎講座4 プラグインの活用WordPress基礎講座4 プラグインの活用
WordPress基礎講座4 プラグインの活用
 
Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
 
12 総合演習Word Pressの利用
12 総合演習Word Pressの利用12 総合演習Word Pressの利用
12 総合演習Word Pressの利用
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
WordPress サイトの 長期的メンテナンス
WordPress サイトの 長期的メンテナンスWordPress サイトの 長期的メンテナンス
WordPress サイトの 長期的メンテナンス
 
Prejob wordpress v2_1121
Prejob wordpress v2_1121Prejob wordpress v2_1121
Prejob wordpress v2_1121
 
Prejob wordpress v2_1121
Prejob wordpress v2_1121Prejob wordpress v2_1121
Prejob wordpress v2_1121
 
kintone プラグインハンズオン資料
kintone プラグインハンズオン資料kintone プラグインハンズオン資料
kintone プラグインハンズオン資料
 
Fireworks lover advent calendar 2013
Fireworks lover advent calendar 2013Fireworks lover advent calendar 2013
Fireworks lover advent calendar 2013
 

Mehr von Michinari Odajima

Mehr von Michinari Odajima (11)

WordPress のための PHP 超入門
WordPress のための PHP 超入門WordPress のための PHP 超入門
WordPress のための PHP 超入門
 
フック超入門
フック超入門フック超入門
フック超入門
 
コンなご 2015 12-20 LT
コンなご 2015 12-20 LTコンなご 2015 12-20 LT
コンなご 2015 12-20 LT
 
WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門WordPress テーマ作成&PHP超入門
WordPress テーマ作成&PHP超入門
 
WBN 2014/02 LT
WBN 2014/02 LTWBN 2014/02 LT
WBN 2014/02 LT
 
Sass 超入門
Sass 超入門Sass 超入門
Sass 超入門
 
WordBeach 2012 WS PHP入門編
WordBeach 2012 WS PHP入門編WordBeach 2012 WS PHP入門編
WordBeach 2012 WS PHP入門編
 
WordBeach 2012 WS 環境構築編
WordBeach 2012 WS 環境構築編WordBeach 2012 WS 環境構築編
WordBeach 2012 WS 環境構築編
 
WordPressのためのPHP入門
WordPressのためのPHP入門WordPressのためのPHP入門
WordPressのためのPHP入門
 
Wbn1201
Wbn1201Wbn1201
Wbn1201
 
Osc名古屋スライド
Osc名古屋スライドOsc名古屋スライド
Osc名古屋スライド
 

意外と簡単 プラグイン開発超入門