20201105授業メモ
授業内容
授業メモ
wordpress snipet
→コードの予測変換機能
これは必須
〇PHPでオブジェクトを使用する方法
◇クラスを作成して利用
class クラス名(頭文字大文字)
//スタティックプロパティ:アクセス修飾子 プロパティ名
public static プロパティ名
protected static プロパティ名
private static プロパティ名
//メソッド:アクセス修飾子 メソッド定義
public static function メソッド名(引数){
//メソッド処理
return 戻り値;
}
}
◇クラスを利用する場合はインスタンス化する
$変数=new クラス名();
◇インスタンス内のプロパティ利用
$変数(インスタンス)->プロパティ名;
◇インスタンス内のメソッド利用
$変数(インスタンス)->メソッド名(引数);
◇クラスのプロパティを利用
$変数(インスタンス)::プロパティ名;
〇テンプレートタグの違い
DBから必要なデータを取得して利用する
1.the_〇〇()
・DBから値を取得して出力する
・echo不要
・ものによってはHTMLタグ込みで出力してくれる
但しタグのカスタマイズがしづらい
・サニタイズをして出力してくれている
2.get_the_〇〇()
・DBから値を取得する
・echoしないと出力されない
・出力時にサニタイズしなければならない
----------------------以下--------------------------------------------------
C:\Users\ica\Desktop\xampp\htdocs\mdn01\wp-content\themes\codelearningtheme
のindex.php
?>
<?php
// ■オブジェクトとは
echo '<h1>最初のコード</h1>';
function return_price()
{
global $date;
// globalキーワード付きで変数名を指定するとその変数はグローバルスコープ(今回は関数外)
// にある変数を参照しにいくようになる。
if ($date >= 20191001) {
$price = 1240;
} else {
$price = 1200;
}
return $price;
}
$date = date('Ymd');
// date関数:日付の書式を取得
// Y:4桁年
// m:2桁月
// d:2桁日
//2020年11月5日の場合は「'20201105'」
$price = return_price();
echo $price;
echo '<h1>2番目のコード</h1>';
// プログラムの世界には値や処理をまとめて
// オブジェクトとして管理するという概念がある
// このオブジェクトをPHPで実装するときは「class」を使用する。
// 「class」キーワードを使ってクラスを作成
// クラス名は命名規則に従っていれば好きにつけて良い
// 但し暗黙のルールとしてクラス名は頭文字大文字
class Price
{
// クラス内の変数は「プロパティ」
protected $price;
public $date;
// アクセス修飾子:参照できる範囲
// public:どこからでも参照可能
// protected:同一クラス内と継承クラスから参照可能
// private:同一クラス内のみ
// クラス内の処理は「メソッド」
public function return_price()
{
if ($this->date >= 20191001) {
// $this:自分自身(Priceインスタンス)
$this->price = 1240;
} else {
$this->price = 1200;
}
return $this->price;
}
}
$price = new Price;
// Priceクラスのインスタンス(クラスのコピー)を生成
// Price():コンストラクタの呼出し
// ※教科書は()を省略→()は必ず書いたほうが良い
// 出来上がったインスタンスを変数priceに代入
$price->date = date('Ymd');
// 左辺:$priceと紐づけられているインスタンス内のdateプロパティ
// 右辺:本日の日付文字列を取得
// まとめ:インスタンス内のdateプロパティに本日の日付文字列を代入
echo $price->return_price();
// インスタンス内のreturn_priceメソッドの呼出し
// 返り値の価格をechoで出力
// $price->price = 1000;
// protectedされた変数はクラス外から利用できない
// ※クラス外から
?>
<?php
// 定数の定義
// define('定数名', 値);
// define('NAME', 'サイトウ');
// echo NAME . '氏';
// 再代入はエラー
$img = wp_get_attachment_image_src(151);
// echo '<pre>';
// var_dump($img);
// echo '</pre>';
// 部屋の名前が「条件名」
// 部屋の値が「条件に対する値」
// posts_per_pageは「何件分取得?」
// category_nameは「何カテゴリー?」
// orderbyは「並べ替えどうする?」
// まとめ
// 変数argsには連想配列でレコード取得の条件を作成
$args = [
'posts_per_page' => 5,
'category_name' => 'bookreview',
'orderby' => 'date',
];
// get_postsはDBからページ情報を取得する関数
// 引数:連想配列で指定した条件
//
$posts_array = get_posts($args);
// echo '<pre>';
// var_dump($posts_array);
// echo '</pre>';
?>
<?php
// WordPressの世界で「ループ」といったときは主にDBから取得したページの情報を
// ページの数ぶん繰り返し処理することをいう
// ■have_posts()
// DBから取得したデータのポインタの位置にレコードがあるかを真偽値で示す。
// 戻り値:レコードがある「true」ない「false」
// 最後まで進んで「false」を返す際にポインタ位置を先頭に戻す。
// ■the_post()
// ポインタのレコード(ページ取得)をWordPressが用意している$postにセットするポインタ位置
を次に移動
// WordPress内で暗黙的に用意されている変数が幾つかあるので注意
// 例:$post等
while (have_posts()) : the_post();
echo '<pre>';
var_dump($posts);
echo '</pre>';
?>
?>
------------------以下index.phpを削除して修正したもの-----------------------------
?>
<?php
$postdata = get_post(1);
// var_dump($postdata);
echo $postdata->post_title;
echo '<br>';
echo $postdata->post_date;
echo '<br>';
echo $postdata->post_name;
echo '<br>';
echo $postdata->comment_count;
echo '<br>';
echo '<h1>ここからカテゴリについて</h1>';
$cat = get_the_category(1);
// echo '<pre>';
// var_dump($cat);
// echo '</pre>';
echo $cat[0]->cat_name;
echo '<h1>ここから型変換について</h1>';
$val = 10;
var_dump($val);
echo '<pre>';
var_dump($posts);
echo '</pre>';
?>
?>
*1:string)$val);
// 「(データ型)値」と記述する事で明示的に型変換することができる
// 明示的型変換を「キャスト」と呼ぶ
echo '<h1>テンプレートタグ</h1>';
echo '<h2>the_〇〇</h2>';
the_category();
echo '<h2>get?_the_〇〇</h2>';
// $cat=get_the_
echo '<h1>ここからwhile文</h1>';
while (have_posts(