【WordPress授業三日目】ウィジェット、カスタムメニュー、ユーザー、PHPの基礎知識・基本
ウィジェット
WordPressで主にサイドバーに表示されるサイト回遊性を高めるコンテンツ群のことをウィジェットと呼ぶ
ウィジェットの設定
左メニュー 「外観」 > 「ウィジェット」
ウィジェットの追加
左側「利用できるウィジェット」から追加したいウィジェットをドラッグし、右側にドロップすることで追加できる
タイトルなども細かい設定も加えられる
カスタムHTMLは広告で使用したりする
ウィジェットの削除
ウィジェットパネルの「削除」をクリック
もしくはウィジェットを「配置できるエリア」にドロップすると消える
ウィジェットの使用停止
「使用停止中のウィジェット」にドロップすることで削除せずに、設定残したまま使用停止できる
●まとめ
管理画面からサイト内の別コンテンツへ誘導するためのパーツ群を操作できる機能
テーマ作成時にウィジェットエリアを決めてウィジェット群を配置することができる
・主な使いどころ
「ヘッダー」「フッター」「サイドバー」等
サイト共通で使用するパーツをウィジットで管理
例外)フロントページ(トップページ)用ウィジットを配置することもある
カスタムメニュー
WordPress内にあらゆるページの中から必要なページを選択してカスタムメニューを作成することが可能
グローバルメニュー、読んでほしい投稿を集めたメニューなど自由に作成できる
カスタムメニューの設定
左メニュー 「外観」 > 「メニュー」
新規カスタムメニューの作成
「新しいメニューを作成しましょう」をクリック
その後、メニュー名を記入
カスタムメニュー項目の追加・編集
左側の「固定ページ」「投稿」「カスタムリンク」「カテゴリー」から追加ページ選択できる
追加ページ選択して、「メニューに追加」すると右側に追加されていく
ウィジェットでメニューを利用
左メニュー 「外観」 > 「ウィジェット」
ナビゲーションメニューをメインサイドバーにドロップすることで、利用可能
●まとめ
メニュー項目を自由に作成できる機能
・作成できる項目
・固定ページ
・投稿
・カスタムリンク(外部ページへのリンク)
・カテゴリ
・主な使いどころ
「グローバルメニュー」「ウィジェット用のメニュー」
ユーザー
様々な権限を与えた複数ユーザーを作成してサイトを運営していくことができる
個人設定
・色変えを使うことでテスト環境と本番環境がわかりやすくなる
・ユーザー名とニックネームは変えたほうがセキュリティ対策になる
新規ユーザーを追加
左メニュー 「ユーザー」 > 「新規作成」
権限グループ
管理者:サイト全体管理者
編集者:コンテンツ管理者(テーマ関連不可)
投稿者:自分の投稿のみ編集可能
寄稿者:ライター(公開権限なしの投稿者)
購読者:コメント投稿、閲覧のみ
●まとめ
権限によって使用できる機能を絞ることができる
ユーザ名はログイン時として使用するのでサイト内に表示する名前は別にすることがおすすめ
サイト内の表示名はニックネームを別に設定して使用
※こうすることでログイン名がばれるセキュリティリスクを減らせる
【WordPress授業二日目】操作方法
WordPressはバージョン代わり入力の仕方がかなり変わった。
Classic editor:古いverのサイト
Block editor:ver5からのサイト
■ブロックエディタの基本
「見出し」「段落」「リスト」ブロックを使用
Enterで新しいブロック作成
Shift + Enterで改行(br要素)を挿入
画像を段落にドラッグアンドドロップで画像挿入
■編集手順
1.下書き保存機能(画面右上)
■公開手順
1.プレビュー(ログインユーザのみ確認可能)
2.プレビュー確認OK
3.公開する
固定ページの属性
●親ページ
左の「文書」 > 「ページ属性」
親ページ指定すると、階層構造を作ることができる
子ページは「ー」をつけて親ページの下に表示される
●順序
自動的にグローバルメニューに固定ページのタイトルが追加されます。
追加されたタイトルの表示順を変更する場合は「順序」を使用する。
左の「文書」 > 「順序」
数値が大きくなるにつれて右に表示される。(初期値は0)
一覧のクイック編集からもページ属性や順序などいじれる
●一覧から一括編集
一括編集したい「固定ページ」の左チェックボックスにチェックを入れ、
左上のドロップダウンリストから「編集」を選択し「適用」ボタン押す。
そこから編集可能
ページ編集キャンセルしたいときは×押すと編集からはずれる
●一覧からごみ箱へ移動
ごみ箱に移動すると、ゴミ箱リンクが表示される
そこから復元可能(完全に削除することも可)
投稿
ブログや商品一覧、最新情報のように量産されるページ
投稿は「カテゴリー」や「タグ」でグループ化できる。
●カテゴリとタグの違い
◇説明
カテゴリー:ジャンルでグループ化
タグ:キーワードでグループ化
◇階層構造
カテゴリー:もてる
タグ:もてない
◇運用しやすい設定
カテゴリー:1投稿に1カテゴリーを設定
タグ:1投稿に3タグを上限に設定
◇例
カテゴリー:アウター、ニュース、コート
タグ:注目、セール
●デフォルトカテゴリー
設定 > 投票設定 >投票用カテゴリーの初期設定
●カテゴリ作成時の注意
投稿の編集画面からも新規カテゴリーを追加できるが、スラッグが指定できない。
●タグ
カテゴリーは必ず1個必要。タグは0個でもOK。
こちらは検索にかけて事前に作ったタグを編集画面で選択する
※プラグインでカテゴリーと同じ感じでチェックボックス選択にできる
投稿一覧
●投稿一覧のページの表示・設定
設定 > 表示設定
ここでホームページと投稿ページ選択する
●投稿を先頭に固定表示
投稿編集画面から「先頭に固定表示」
クイック編集でも設定可能
メディア
●画像サイズ、サムネサイズ
設定 > メディア設定
■メディア:画像の管理
・サムネイル:主に一覧で使用する小さい画像
・サイズ
・トリミングするか?
・中サイズ:ページ内で使用する画像
・大サイズ:ページ内で使用する画像
・(フルサイズ):ページ内で使用する画像
※画像本来の大きさ
運営中に「メディア設定」のサイズを変更しても変更前にアップロードした画像のサイズは変更されません。もし、運営途中でサイズ変更したい場合は
「Regenerate Thumdnails」プラグインを使用してアップロード済み画像のリサイズをする。
「....\xampp\htdocs\wordpress\wp-content」
この中はいじるフォルダ。これ以外はコアファイルなのでいじらない
「....\xampp\htdocs\wordpress\wp-content\uploads」
この中にアップロードした画像データ生成される
リビジョン
変更履歴を「リビジョン」として保存している。
編集画面でリビジョンできる。
コメント
コメント機能は各ページから、また一括でコメント許可しないようにできる
途中でコメント許可しないようにしても、以前までのコメントは残る。
【WordPress授業一日目】概要、インストール
WordPressとは
2003年にブログ作成するWebシステムとして公開される。
その後、バージョンアップし、企業サイトやニュースサイトなど多方面で利用されるCMS(コンテンツマネジメントシステム)として世界的なシェアを占める。
●CMS
Webサイトのコンテンツであるテキストや画像をシステムのルールで管理し、Webページとして表示させる仕組み。
●WordPressの特徴
・PHPとデータベースを使ってシステムを構築
・管理画面を使ってコンテンツの追加・編集・削除
・テーマを使ってデザイン変更
・プラグインを使って機能拡張
・オープンソースのため個人・商用利用問わず無料で使用可能
・シェアが高いため関連する書籍やネット情報が豊富
WordPressのインストール
WordPress用のデータベース領域作成
シェル(コマンドプロンプト)、phpMyadminどちらを使ってもOK。
今回は「wp1」という名前のDB領域を作成する。
1.rootで入る
mysql -u root -p
2.DB領域を作成
CREATE DATABASE wp1;
3.公式からWordPressをダウンロードして展開
4.XAMPPの公開フォルダ「htdocs」内にコピーして配置
データベース情報の設定
上のURLでアクセスし「さあ、始めましょう!」をクリック
●データベース情報を入力
データベース名:wp1
ユーザ名:root
PW:*****
データベースホスト名:localhost
上記の入力が終わったら送信して、「インストール実行」をクリック
サイト基本情報の設定
●サイトの基本情報を入力して「WodPressをインストール」をクリック
※後で変更可能(プリントの9P参考)
サイトのタイトル:練習サイト
ユーザー名:tera
パスワード:**********
メールアドレス:xxxx@xxx
検索エンジンでの表示:チェック
管理画面
http://localhost/wordpress/wp-login.php
上記から管理画面に「ユーザー名」と「パスワード」入れログインする
●公開サイト表示
管理画面左上サイト名にカーソルを乗せた時に表示される
「サイトを表示」をクリックで見れる
●パーマリンク設定
管理画面から新しいページを作成する際、どのようなURLを割り振るのか決めれる
初期設定用のプラグインを有効にする
WP Multibyte Patch:マルチバイト文字対応
・WordPress内で日本語を扱う際に起きる問題をプラグイン修正する
Show Current Template:使用テンプレート確認
・ページを表示する際にに使用したテンプレートファイルを確認する
・公開サイトの管理バーに「テンプレート」の項目が追加される
プラグインは自分で追加していく
おすすめプラグイン↓
https://www.colorfulbox.jp/media/wp-plugin/
テーマ
・左メニューの外観からテーマをインストール・有効化
・新規追加でテーマを追加できる
WordPressの構成
固定ページ、投稿、一覧
上の三つで構成される
・固定ページ:会社概要やアクセスマップのように1ページで完結するページ
・投稿:ブログや商品詳細ページのように同じデザインで量産されるページ
・一覧:最新の投稿や検索結果などの一覧を表示するページ
固定ページ
固定ページ > 固定ページ一覧
編集するページをクリックして様々な情報を編集することができる
「+」のボタンや、「⚙」ボタンで操作
新規追加で固定ページ新規作成
■ブロックエディタの基本
「見出し」「段落」「リスト」ブロックを使用
Enterで新しいブロック作成
Shift + Enterで改行(br要素)を挿入
画像を段落
●公開パネル
・下書きから公開
最初は「下書き」で、何も変更せず「公開」ボタンをクリックすると即座に公開されます。
公開、非公開、パスワード保護 選択できる
※シークレットウインドウで開いてログインしていないブラウザで確認する。
・公開予約
未来の日時を指定すれば自動公開させることが可能
【DB授業十一日目】正規表現
正規表現関数
preg_match:パターンチェック関数
・第1引数:文字列でパターンを指定
'/^[0-9]{3}-[0-9]{4}$/'
・第2引数:確認文字列
&str
・戻り値:パターンとマッチした
・(7|8|9)の「|」はor
●基本構文
^:文字列の始まり
$:文字列の終わり
'/^こんにちは $/' 「こんにちは」のみ
'/こんにちは $/' 「ああああこんにちは」後方一致
'/^こんにちは /' 「こんにちはああああ」前方一致
※文字列の始まりと文字列の終わりは実はなくてもいい
【DB授業十日目】MariaDB+PHP(続き6)
作業手順おさらい
1.DB構築
・DB構築は必ずスクリプトファイルを作成・実行
2.システム専用ユーザの作成
・スクリプトファイルを作成・実行を推奨
・ユーザの作成はシステムユーザでは行われない
※システムユーザはユーザ作成権限なしの場合が多いので
3.システムユーザでテーブルの確認
---------------------------------上記までDB作業--------------------------------------
4.functions.phpを作成
・よく使う自作関数を定義
・h関数:XSS対策「echo時に呼び出す」
・v関数(関数名なんでもOK):デバック用関数
・DB接続用関数:
5.各ページの作成
・DBを操作する場合はSQL文
※まずはシェルでSQL文を実行して望んだ結果が得られることを確認してPHPに持っていく
・ユーザ入力値を使ってSQL文を作成する場合
1.値をとりあえず入れてシェルでSQL文実行確認
・sprintf関数:データ型の確認
・mysqli_real_escape_string:クォートのエスケープ
3.SQL文を確認するため出力して確認
※シェルで作成したSQL文「1」と「3」で出力してSQL文を比較して問題ないことを確認(DBのミスなのか?PHPのミスなのか?判断するため)
4.DBにSQL文を渡して処理を記述
mysqli_query関数:SQL文を実行
※もしSELECT文だったら情報を変数に代入
1.戻り値のテーブル情報を変数に代入
2.テーブル情報を連想配列に変換(mysql_fetch_assoc関数)
3.必要な個所で値を出力(h関数をかけて出力)
◆値の受け渡し
「入力画面」>「確認画面」>「実行画面」
◇ユーザ入力値の受け渡し
フォームを使ってPOSTでの受け渡し(たまにGET)
送信側:HTMLフォーム
受信側:PHPの$_POST($_GET)を使用
◇DBで対象レコードを絞り込むid番号などの識別値
クエリ文字列でのGETでの受け渡し
送信側:リンクに「?値の名前=値&値の名前一覧」
受信側:$_GETを使用
◇確認画面からの実行画面に値を受け渡し
セッションを使って受け渡し
送信側:$_SESSION['部屋の名前'] = 渡したい値
受信側:$変数 = $_SESSION[' 部屋の名前 ']
【DB授業九日目】MariaDB+PHP(続き5)
一日おさらい問題を解いていた。
【DB授業八日目】MariaDB+PHP(続き4)
編集したデータをデータベースに登録
change.php
●PHPの設定を表示させる
●セッション変数を使えるようにする
ユーザ識別用クッキーを発行するので出力処理より前で実行
なるべく上のほうに記述する
文字コードが「UTF8 with BOM」付きだとエラーになる可能性あり
文字コード「UTF8,UTF8N[テラパッドはN付きがなしって意味]」が安全
※「UTF8 with BOM」になっていたら「UTF8」にする
update.php
・ユーザに入力してもらう値は「GET」
今回だと→商品名、価格、在庫など
・ユーザが入力しない値は「SESSION」
今回だと→ID
商品の削除
dekete.php
●1.文字列連結でSQL文作成
クエリ文字列id=の後に悪意ある値指定
1 or item='クレヨン'
受け取った値で作成されるSQL文
DELETE FROM stationery WHERE id=1 or item='クレヨン'
●2.文字列連結でSQL文作成
クォートをエスケープ
クエリ文字列id=の後に悪意ある値指定
1 or item='クレヨン'
DELETE FROM stationery WHERE id=1 or item=\'クレヨン\'
文字列を使った悪意ある値は防げるが、文字列を使わない悪意ある値は防げない
1 or id=5
DELETE FROM stationery WHERE id=1 or id=5
1 or 0=0
第2条件は常にtrueになる値なので全レコード対象の条件となる
UPDATEやDELETEが実行されると全件修正や全件削除になってしまう
●3.文字列連結を使わずにsprintfを使ってSQL文を構築【一番安全】
sprintfを使ってSQL文を構築
条件に%dの数値を使う
※%sだと意味がないので注意
もちろんクォートのエスケープもする
悪意ある値
1 or id=5
DELETE FROM stationery WHERE id=1
1 or 0=0
DELETE FROM stationery WHERE id=1
●SQL文でレコード削除実行