デザイナーのためのPHP講座 for WordPress (初級)

  • View
    2.533

  • Download
    1

  • Category

    Design

Preview:

DESCRIPTION

WordPressはインストールしたけど、テンプレートタグってなんでああいう風に書くの?や制御文ってイマイチな方向け。

Citation preview

Study of WordPress2011.11.25

By Yu Odagaki

デザイナーのためのPHP 講座

for WordPress

WordPress のインストールをしてみたけれどいまいち構造が掴めない…

そもそも、 WordPress ってどうやって動いているの?

どこから手を付けたらよいのだろう…

な疑問を少しずつ解消していきましょう。

いまいちわかってない後輩

WordPress をインストールして様々な情報を設定すると…

すべてはデータベースに登録されます。

これや・・・これも・・・

これなんかも・・・

当然・・・

これももちろん・・・

とにかくすべてのデータ(情報)はデータベース化されています。

データベースデータベースといってもちゃんと名前があります。

WordPress はこの MySQL というソフトウェアととても親密な関係です。

そもそもデータベースって?

表(テーブル)の集まりです。

WordPress のテーブル一覧( phpMyAdmin というソフトを使ってみています)

WordPress のテーブル一覧( phpMyAdmin というソフトを使ってみています)

この一つ一つがテーブル(表)というもの。

例えば、「 exam_posts 」というテーブルを詳しく見てみると…

中にはこのようなデータがぎっしり詰まっています。

まだまだ横にも縦にも続いています↓→

一件を抜き出してみてみると…

いつぞやの投稿だな…とわかるんです。

投稿内容

投稿タイトル

つまり WordPress は…

MySQL にすべてを預けているわけです。

では、このデータベースから WordPress は適時データを引っぱり出しているわけですが…

何をもって、データ抽出 ( その逆も ) 行っているかといえば…

PHP になります。

例えば、以下の記述…

そのうちの一つを抜き出してみると…

そのうちの一つを抜き出してみると…

<?php echo home_url(); ?>

ホームの… URL ?こんなことが書いています。

結果から言いますと…

ここはこうなります。

ちょっと裏側も含めて説明すると…

home_url();

exam_options というテーブルから

http://hogehoge.com

まず、これは…

ここの値(データ)を取ってこい!

home_url();

http://hogehoge.com

ようは…

これのこと。

では…

<?php echo     home_rul();     ?>

これは??

http://hogehoge.com

home_url();

では…

<?php echo     home_rul();     ?>

これは??

http://hogehoge.com

echo は「書け!」という命令になります。

home_rul();

http://hogehoge.com を書け!ということ。

「書け!」でこうなった。

<?php           ?>

ちなみに…

で囲まれた部分をテンプレートタグ

と呼んだりします。

テンプレートタグには色々な書き方があります。

<?php echo ○○○○();   ?>

<?php ○○○○(); ?>

<?php ○○○○(xxxxxx); ?>

○○○○ には色んな名前があります。

テンプレートタグ

<?php echo ○○○○();   ?>

<?php ○○○○(); ?>

<?php ○○○○(xxxxxx); ?>

?

には色々な書き方があります。

○○○○(xxxxxx);   ○○○○ ();

そもそも下記のような書き方は

ファンクション(関数)と呼ばれています。

先輩 後輩

ブログのタイトル表示したいときはどうしたらいいっすかね?

bloginfo(‘name’) 使えばいいんだよ! ( 怒 )

「○○使えばいいんだよ ( 怒 ) 」と道具のように扱われます。

先輩 後輩

()の中になんか書くやつと書かないやつって何が違うんすかね?

そりゃあ、おめえよ!

<?php ○○○○(); ?>

<?php ○○○○(xxxxxx); ?>

使ったときの効果は一通り。

「 xxxxxxx 」の内容によって違った効果も!!

<?php bloginfo(‘description’);?>

<?php bloginfo(‘name’);?>

<?php bloginfo(‘charset’);?>

それぞれ、上から「ブログの名前」、「ブログの説明」、「ブログで使用している文字コード」

name

discription

charset

「ダッシュボードの一般設定」

「ダッシュボードの表示設定」

もちろん(話は戻りますが)これらのデータも結局、データベースに入っているんですけどね。

後輩

にしてもファンクションって種類多いっすね~

だからこそ調査するスキルも身に付けましょう!!

single_cat_title() って何だろうと思ったら…

ファンクション(関数)をある程度掴んだら、こんどは制御文。

例えば、投稿記事はこのようにどんどん増えていきます…

後輩

記事を出すファンクション使えばいいんだよ!

10 個記事があったら10 回そのファンクションを呼べばいいのか…

後輩

探せば件数分一度に出してくれるファンクションが

あるだろうよ!

残念ながら、そこまで便利なものはありません。

まず…1 件ずつしか投稿データをとってくることができません。

今は5件

このように複数の投稿がある場合、その都度投稿数をチェックするなんてことは当然しません。すぐ増えますし…

最初お伝えした通り、 WordPress のなんやかんやはすべてデータベース(この場合だと M y SQL )に入っています。

やはりそこは便利なファンクションがありまして…

have_posts()

表示するべき投稿があるかどうかを調べてくれます。

そしてこのファンクションは特別なところでしか使用できません。

そしてこのファンクションは特別なところでしか使用できません。

一つ一つ分解して見ていきます①

~もし (if) 、投稿が1つでもあったら (have_posts)

~ の部分をやるよ。

一つ一つ分解して見ていきます②

投稿がある間 (while) ~ の部分をやるよ。

一つ一つ分解して見ていきます③

次の投稿を一件とってくるよ。

一つ一つ分解して見ていきます④

とってきた投稿のタイトル ( 標題 ) を出すよ。

一つ一つ分解して見ていきます⑤

とってきた投稿のコンテンツ ( 本文 ) を出すよ。

しつこいようで復習。

もし、投稿がなかったらなにもやらないよ!でももし、投稿あったら投稿があるだけ

投稿を取り出して、タイトル表示して、内容表示することを

繰り返すよ!

後輩

なんかさっきのままだと読みにくいから直してやったぜ!

もちろん、どっちで書いても動きます。

こんな風に書きなおすこともできます。

if while

先輩 後輩

おめー、何俺が書いたコード勝手に修正してんだよ!(怒)

どっちでも動くからいいじゃないっすかー!

でも、短い方がいいという方もいます。今のところ、読めればどっちでもいいです。

×

ファンクションの使い方とif や while といった制御文の

仕組みを理解すれば WordPress の初級はクリア!

かも…しれません。

後輩

早く、初級を脱したいよ。

Recommended