Upload
-
View
2.534
Download
1
Embed Size (px)
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 の初級はクリア!
かも…しれません。
後輩
早く、初級を脱したいよ。