40
WordPress WordPress はじめて はじめて プラグイン作成 プラグイン作成 By By アルパカ@ラボ 遠藤昇司 アルパカ@ラボ 遠藤昇司

WordPressはじめてのプラグイン作成

Embed Size (px)

Citation preview

WordPressWordPress  はじめてはじめてののプラグイン作成プラグイン作成

By By アルパカ@ラボ 遠藤昇司アルパカ@ラボ 遠藤昇司

自己紹介

● アルパカ@ラボ:遠藤昇司● フリーランスのWebデベロッパーです。

http://www.paka3.net/

● 9年近く福岡のシステム会社にてWeb系のシステムエンジニアをしていました。その後は、農業経験(みかん・米・カボス)を3年程してました。

● 現在はCakePHP等のウェブシステム開発Wordpressのカスタマイズ/イラスト制作 +某スーパーのお肉屋さんです。

WordBench大分

● WordPressを中心に様々な情報を交換しながら、多くの方が楽しく学べるグループです。

● ビギナーさんから玄人さんまで、デザイナーさんからプログラマーさんまでとにかく大分で盛り上がっていきましょう!

● Facebookページでも情報発信中です!ぜひご覧ください。https://www.facebook.com/groups/wordbench.oita/

WordPressはホームページ作成のツール

● WordPress は、オープンソースのブログ/CMS プラットフォームです。

現在はバージョン3.9現在はバージョン3.9ウェブページの制作にはかかせないウェブページの制作にはかかせないCMSCMSのひとつのひとつ

http://ja.wordpress.org/http://ja.wordpress.org/

管理ページ管理ページ

公開ページ公開ページ

プラグインは、組み込み拡張パーツ

● WordPressのプラグインとは組み込み式の拡張パーツです。

管理ページ管理ページ

プラグインは、日々たくさんの開発者に作られています。またこれは、無料で配布されています(※有料もあります)

人気ページランキング人気ページランキング

拡張エディタ拡張エディタ(入力補助等)(入力補助等)

お問い合わせページお問い合わせページ(メールフォーム)(メールフォーム)

公式サイト公式サイト

やりたいこと、プラグインでつくってみたい「キミ」ヘ

たいていことは、探した方が早かったりします。

こんな本を買った方がこんな本を買った方がはやいんじゃね??はやいんじゃね??

にゃ〜

自分で作るメリットが何か?を自分で作るメリットが何か?を       よく考えて作りましょう。       よく考えて作りましょう。

プラグインを作成するにあたりプラグインを作成するにあたり

関数ひとつでも、それはプラグインです。

WordPress Codexのプラグイン作成には以下のように書かれています。

WordPress プラグインは PHP 言語で記述された、プログラムないし1つ以上の関数の集まりであり、WordPress ブログに(略)特定の機能やサービスを追加します。

では、はじめてのプラグイン作成では、はじめてのプラグイン作成準備はいかが??準備はいかが??

>>WordPressWordPressローカル環境ローカル環境http://goo.gl/76fYjDhttp://goo.gl/76fYjD

>コードを書くエディタ>コードを書くエディタUTF-8(BOMUTF-8(BOM無し無し))で保存できるソフトで保存できるソフト

*functions.phpはどこだ、どこだ!

現在のテーマフォルダを開いてください。

wordpress本体 themeswp-content twentyfourteen(現在のテーマ)

>> >> >>

functions.php

※もし、functions.phpなかったら自分で作ってもよいです。

※※テーマフォルダのファイルの中からテーマフォルダのファイルの中から「「functionsfunctions.php.php」」 をエディタで開きます をエディタで開きます

プラグインフォルダプラグインフォルダとファイルを作成とファイルを作成

プラグイン作成の流れ。

● 「functions.php」にコードを書く● *動作確認● 「plugins」フォルダに

     プラグインファイルを作成● *管理画面でプラグインを有効化

動作確認動作確認 完成!!完成!!プラグインをプラグインを有効化有効化

functions.phpfunctions.php

現在のテーマ現在のテーマ

WordPressWordPress本体本体

※※BitnamiBitnami WordPress WordPress をお使いの方、WordPress本体はここです。

※ ※Instant WordPressInstant WordPress をお使いの方。

「「themesthemes」フォルダ」フォルダ

「「pluginsplugins」フォルダ」フォルダ

*functions.phpにプログラムを書く

● functions.phpfunctions.phpは– WordPress内で実行プログラムを書くファイル

(プログラミング言語:PHP)– だから<?php //の後に

echo “hello world!”;と書くと…実行されちゃいます。

ここに何を書くかというと・・・

● 「PHP」と「WordPress」の関数(テンプレートタグ)を使ってコードを書きます。

● WordPressの記事等を「フィルターフック」や、保存やメール送信などを「アクションフック」していきます

?? にゃ〜 ????

横文字よくわかんない。。。横文字よくわかんない。。。

結局、結局、何何をどうかけばいいのさ??をどうかけばいいのさ??

ということで、ということで、横文字を説明しても???なので横文字を説明しても???なので

まずは、まずは、すべての記事にすべての記事に、、””Hello!! Hello!! 愛してるよみんな〜!”愛してるよみんな〜!”

っていう文字を入れてみましょう。っていう文字を入れてみましょう。

まずはコードを書いてみましょう!まずはコードを書いてみましょう!

すべての記事の先頭に文字列を追加する

● 今回のコードの作成前、作成後

////関数関数function addtext($content) {function addtext($content) { $str = "<h3>Hello!! $str = "<h3>Hello!! 愛してるよみんな〜!愛してるよみんな〜!</h3>";</h3>"; return $str.$content;return $str.$content;}}

add_filter('the_content','addtext');add_filter('the_content','addtext');

ではまず・・・さっそく書きます。

このコードをfunctions.phpに書いてください。

本文が、関数addtextを通して出力される

「コンテンツ」をフィルターして、自分の作った関数をWordPressに実行してもらうこと

add_filter('the_content','addtextaddtext');the_content

(記事本文)関数addtext()(文字列追加)

WordPressWordPress出力出力

文字が追加文字が追加

WordPressWordPressのプラグインのプラグイン「プラグイン 「プラグイン APIAPI」」

これがこれが「「フィルターフックフィルターフック」」

です。です。

では、プラグインファイルを作成してみる

「プラグイン」フォルダを開きます。

wordpress本体 pluginswp-content>> >>

※※プラグインフォルダにプラグインフォルダに「「addtextaddtext」」新規フォルダを作成新規フォルダを作成addtext

addtext.php

作成した「作成した「addtextaddtext」フォルダ内に」フォルダ内に「「addtext.phpaddtext.php」」新規ファイルを作成新規ファイルを作成

WordPressWordPress本体本体

※※BitnamiBitnami WordPress WordPress をお使いの方、WordPress本体はここです。

※ ※Instant WordPressInstant WordPress をお使いの方。

「「themesthemes」フォルダ」フォルダ

「「pluginsplugins」フォルダ」フォルダ

ファイルにプラグインのヘッダーを書く

● まずファイルを開き、プラグインの情報を記入します。

ヘッダーが存在しない場合、プラグインは有効化も実行もできません。

<?php/*Plugin Name: (プラグインの名前)Plugin URI: (プラグインの説明と更新を示すページの URI)Description: (プラグインの短い説明)Version: (プラグインのバージョン番号。例: 1.0)Author: (プラグイン作者の名前)Author URI: (プラグイン作者の URI)License: (ライセンス名の「スラッグ」 例: GPL2)*/?>

本文が、関数addtextを通して出力される

「コンテンツ」をフィルターして、自分の作った関数をWordPressに実行してもらうこと

add_filter('the_content','addtextaddtext');the_content

(記事本文)関数addtext()(文字列追加)

WordPressWordPress出力出力

文字が追加文字が追加

ヘッダーと関数を記入します。

<?php/*Plugin Name: paka3 AddTextPlugin URI: http://www.paka3.com/wppluginDescription: テキストを末尾に追加するプラグインAuthor: Shoji ENDOVersion: 0.1Author URI:http://www.paka3.com/*/

//関数function addtext($content) { $str = "<h3>Hello!! 愛してるよみんな〜!</h3>"; return $str.$content;}

add_filter('the_content','addtext');

?>

addtext.php

作成した関数作成した関数

ヘッダーヘッダー

※functions.phpに書いていたのは消す

● functions.php→プラグインファイル作成する場合、プラグインファイルを作成した後、functions.phpに書いたコードを消してください。

関数が重複してエラーが発生します。

functions.php

//関数function addtext($content) { $str = "<h3>Hello!! 愛してるよみんな〜!</h3>"; return $str.$content;}

add_filter('the_content','addtext');

作成したプラグインがありますか?

● 管理ページに行き「プラグイン」ページを開く

有効化してみましょう。有効化してみましょう。

以上、完成です。

● 正しく表示されていれば完成です。

WordPressWordPress「プラグイン 「プラグイン APIAPI」」

プラグインAPI

● WordPressには、簡単にWordPress内部の関数・コンテンツをカスタマイズできるプラグインAPIが用意されています。具体的には・・・

アクションフックアクションフック

フィルターフックフィルターフック

フィルターフックは「データ」

● add_filter( フィルターしたいフック名, フックする関数, 実行順番(10), 引数(1) )

フックする関数

フックする関数

保存保存

入力入力

出力出力

呼び呼び出し出し

入力入力

アクションフックは「動作」

●add_action(フィルターしたいアクション, フックする関数, 実行順番(10), 引数(1) );

記事を保存する記事を保存する

メールを送信メールを送信

ヘッダー等をヘッダー等をブラウザに画面表示するブラウザに画面表示する

http://www.paka3.net/wpplugin43/http://www.paka3.net/wpplugin43/

http://www.paka3.net/wpplugin67/http://www.paka3.net/wpplugin67/

WordPressWordPress「ショートコード」「ショートコード」というものもあるよというものもあるよ

「ショートコード」は合い言葉。

ショートコードは、自分で設定できる「合い言葉」。記事本文に”[]”で囲んで書きます。

[ai][ai] 文字列が追加文字列が追加

管理ページ管理ページ 公開ページ公開ページ

////関数関数function addtext() {function addtext() { $str = "<h3>Hello!! $str = "<h3>Hello!! 愛してるよみんな〜!愛してるよみんな〜!</h3>";</h3>"; return $str;return $str;}}

add_shortcode('ai','addtext');add_shortcode('ai','addtext');

ではまず・・・さっそく書きます。

このコードをfunctions.phpに書いてください。

[ai][ai]※※ショートコードショートコード

ショートコードは属性ももてます。

////関数関数function addtext($atts) {function addtext($atts) { $atts = extract( shortcode_atts( array($atts = extract( shortcode_atts( array( 'who' => “ 'who' => “みんな” みんな” ),$atts ));),$atts )); $str = "<h3>Hello!! $str = "<h3>Hello!! 愛してるよ愛してるよ{$who}{$who}〜!〜!</h3>";</h3>"; return $str; return $str;}}add_shortcode('ai','addtext');add_shortcode('ai','addtext');

このコードをfunctions.phpに書いてください。

[ai [ai who=”who=”嫁さん”嫁さん”]]※※ショートコードショートコード

////関数関数function addtext($atts,$content) {function addtext($atts,$content) { $str = "<h3>{$content}</h3>";$str = "<h3>{$content}</h3>"; return $str;return $str;}}

add_shortcode('ai','addtext');add_shortcode('ai','addtext');

ではまず・・・さっそく書きます。

このコードをfunctions.phpに書いてください。

[ai][ai]こんにちは、ラブこんにちは、ラブ&&ピース!!ピース!![/ai][/ai]※※ショートコードショートコード

プラグインAPIをうまく利用しましょう

● 「アクションフック」や「フィルターフック」は思っている以上にたくさんあります。http://adambrown.info/p/wp_hooks/version

● まずは「何をしたいか?」を考えてみましょう。

● ※よかったら私のウェブページも参考にしてね。http://www.paka3.net/wpplugin/

WordPress1日1プラグインやってます。

それでは!それでは!よいよいWordPressWordPressライフを!ライフを!