12 総合演習word pressの利用
DESCRIPTION
WordPressの利用TRANSCRIPT
PHP講座(12)!WordPressの利用、およびCMSの紹介
この授業ではPHPで作られた代表的なCMSであるWordPressを紹介します。 また、各種CMSおよびフレームワークを比較してみることで、その欠点および利点を紹介します。
WordPressとは?
10.4.18 (C) 株式会社破滅派
2
PHP+MySQLで動くブログ用のツール。 世界的に使われており、毎年何百万件もダウンロードされている。
1. ユーザーが多いので、情報も多い
2. ドキュメントが神がかっている
3. プラグイン、テーマが多い
4. 更新が頻繁にある
5. PHPだけで作られているので、初心者でもいじりやすい
6. だいたいどこのサーバでも動く
7. オープンソースなので、商用で使っても問題ない
WordPressをインストールしてみる
10.4.18 (C) 株式会社破滅派
3
1. ダウンロードする
2. サーバにあげる
3. MySQLとの接続情報を入力する
4. 終わり
他のCMSを使ってみる
10.4.18 (C) 株式会社破滅派
4
1. Xoops いわゆるCMS。かなり汎用的な用途で使える。 SNSもECサイトもブログも全部含んだサイトを作ることもできる。
2. OpenPNE 日本発のSNS作成用アプリケーション。mixiとそっくり。
3. EC Cube 日本発のECサイト構築用オープンソースアプリ。
4. limeSurvey アメリカの大学生が作ったアンケート作成用CMS。微妙に日本語化されている。
CMSなどパッケージを利用するときのコツ
10.4.18 (C) 株式会社破滅派
5
どのソフトも、何らからの目的があって作られています。 その目的にかなっているときに、一番効率を発揮します。
1. 理想とするPHPプログラムとそのパッケージソフトはどれぐらい近しいものか?
2. 自分はそのパッケージを使うために、どれぐらいの学習コストを必要とするか?
3. 案件の規模、カスタマイズ要件などを想定して、そのパッケージを利用できるか?
パッケージを利用する際は、これらを総合的に判断して利用します。
ex.
物販サイトを制作することになった。 ↓ 基本的な要件はEC Cubeがほとんど満たしているが、カスタマイズ要件がある。 ↓ EC CubeはSmartyというテンプレートエンジンを採用している。これを学習する必要がある。
WordPressをブログ以外で使うときの利点
10.4.18 (C) 株式会社破滅派
6
1. 基本的なユーザ機能がついている
2. 管理画面がある
3. データベース接続オブジェクトがある
4. ドキュメントが豊富なので、わからないことがあってもググれば済む
5. 純粋なPHPなので、どうしても解決できないことがあれば、PHPでなんとかなる(←重要)
WordPressはPHPを学び始めた人にとって、もっとも取っ付きやすいアプリケーションです。
WordPressに組み込まれている機能の例
10.4.18 (C) 株式会社破滅派
7
【注意点】 人の作った物ばかり使っていると、いつしか自分では何もできない人間になってしまいがちです。 アプリケーションの構造を理解する意味でも、たまには車輪の再発名も悪くありません。
<?php //現在のユーザの取得 get_currentuserinfo (); echo $user_level; //ユーザーの権限レベルを出力
//データベースオブジェクトの利用 $req = $wpdb-‐>get_resut($sql); var_dump($req); //データベースの返り値を連想配列で 取得
?>
このクオリティの管理画面は生半可な努力では作れません。
WordPressプラグインを作ってみよう
10.4.18 (C) 株式会社破滅派
8
WordPressには「フック」という概念があります。 これはWordPressが行う処理にプログラムを割り込ませる場所を準備しているということになります。
<?php //フィルターフック使い方 add_filter(“フィルタ名”, “関数名”); //ユーザーの権限レベルを出力 add_action(“アクション名”, “関数名”);
?>
ためしに投稿に含まれる全角カナをすべて半角カナに変えるプラグインを作ってみましょう。
一昔前の携帯サイトではよくありました。
パッケージで実現できないもの
10.4.18 (C) 株式会社破滅派
9
現在、CMSなどのパッケージソフトは多岐にわたりますが、中には対応しきれない案件というものがあります。
そういう場合は仕方がないので、がんばって作りましょう。
• CakePHPやSymfonyなどのフレームワークを利用して、開発工数の削減をはかる
• テンプレートエンジンSmartyを利用して、デザイナーとの連携をはかる
• 別のプログラム言語で動いているアプリケーションをPHPに移植する。
できること