こんにちは。fsです。
前回はブログサイトのトップページを作りました。
※参考記事はこちら
↓↓↓↓↓↓↓
今回は個別の投稿を表示させるページを作りたいと思います。
実際に書いたブログを読んでもらうためのページです。
完成のイメージはこちらです。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/be52fece8ebd5ea6db9e56f195e44daf.png?resize=954%2C632&ssl=1)
初心者の方でも作れるように、画像つきで解説していますので安心してお読みいただければと思います。
それではご覧ください。
個別投稿ページの作成
それでは実際にコードを書きながら解説していきます。
個別投稿ページのファイル(single.php)を作る
まずは投稿を表示させるページファイルを作ります。
Start Bootstrapには、個別投稿ページ用のテンプレートファイル(post.html)が用意されているので、このファイル名をsingle.phpに変更します。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/40a6976fb05a8a44a94de72ffa9980e4.png?resize=480%2C582&ssl=1)
ヘッダーとフッター部分はパーツ化したindex.phpと同様に置き換えていきます。
※パーツ化の参考記事はこちら
↓↓↓↓↓↓↓
記事を表示させる
次にトップページでクリックされた記事を表示させるようにループ(while)構文を書いていきます。
これはWordpressで各投稿のデータを取り出すために必要な処理になります。
なので、対象のエリアをこのwhile構文で囲んでいきます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/c605a33ba1cf93aa31774a2bc29a7bcf.png?resize=1024%2C364&ssl=1)
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/ba7ae8a4ae02412e4b939217ec943321.png?resize=652%2C216&ssl=1)
これでループが出来上がったので、一覧画面で作ったタイトルや著者名、時間も引っ張ってこれます。
タイトルの表示
ループ処理を書いたら、実際の投稿タイトルを表示させていきます。
h1タグの部分にテンプレートタグ(the_title)を入れます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/fd51e2c8ab317c57764294ea40de5549.png?resize=1024%2C303&ssl=1)
そうすると投稿タイトルに変わりました。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/31ea7d0ad12ebeac48805d33fe52494b.png?resize=575%2C248&ssl=1)
今回はサブタイトルはいらないので、消してしまいます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/5b34c358620818715d37ed1f3eb411b3.png?resize=1024%2C303&ssl=1)
著者名・日付の表示
次に著者名と日付を追加していきます。
著者名はthe_author、日付はthe_timeのテンプレートタグを使用します。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/cf8241f3486246ce9c69a655b9b47ab7.png?resize=1022%2C436&ssl=1)
これでタイトル部分の連動が完了しました。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/34fc634a0d642a1f852fe90a49dac1e0.png?resize=486%2C294&ssl=1)
本文の追加
次は本文を出力していきます。
まずはデフォルトで入っているの本文部分をカットします。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/cc5fb896bfb6ebe706b2c590e01b2f7a.png?resize=1024%2C825&ssl=1)
そして、本文を表示させるテンプレートタグ(the_content)に置き換えます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/438603421eb9dd14bb019b5344afa327.png?resize=1024%2C396&ssl=1)
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/84e58ec0e5c7d9f81e7324bec9a2d3b4.png?resize=533%2C544&ssl=1)
これで投稿ページができてきたので、最後におまじないを入れていきます。
トップページ作成の時にやったように、ループをif構文で囲います。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/8ae250acc8231d042797cb1e39ca794f.png?resize=898%2C252&ssl=1)
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/268751bdadf1ecc25ddfb5f7a2e08934.png?resize=486%2C116&ssl=1)
個別投稿ページなので記事が見つからないことはないのですが、バグを防ぐため決まり文句として入れておくと良いです。
※あくまでおまじないなので、深く考えなくてもOKです
アイキャッチ画像を入れる
アイキャッチ画像は各記事に紐づく画像のことを言います。
記事を書くとき、投稿に関連する画像も入れたい方も多いので、今回はこれを背景画像として入れていきます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/forest-1072828_1920.jpg?resize=1024%2C576&ssl=1)
WordPressの既存テーマを使うときは投稿記入画面で挿入することができるのですが、自分でテーマ作る場合はその設定を最初からしないといけません。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/9a54e59a898e59a6c10294efbf1e0703.png?resize=281%2C417&ssl=1)
functions.phpでテーマの設定を行う
テーマの設定を行うためにはfunctions.phpという新しいファイルを作る必要があります。
これはWordpressの動作の設定を行うファイルとして認識されます。
テーマの直下にfunctions.phpを作り、アイキャッチ画像をサポートする記述をしていきます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/f59d529217434b1788cf3c4a2dac3f42.png?resize=1018%2C360&ssl=1)
ちょっと複雑ですが、
「作っているテーマにアイキャッチ画像(thumbnails)をサポートする機能を追加してください」
という命令を書いていると理解いただければOKです。
実際に投稿記入画面を開くと、アイキャッチ画像を追加できるようになりました。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/604cdc4a1af9a8b84cadb75d564b3c54.png?resize=281%2C340&ssl=1)
アイキャッチ画像を表示
次はアイキャッチ画像を表示させていきます。
今回はheaderタグの部分に背景画像入れる設定にしているので、その前に処理(ここでもテンプレートタグを使います)を書いていきます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/26c04cb4c2785beda73ff7c6e4d3040a.png?resize=1024%2C237&ssl=1)
画像を取り出す
WordPressに画像を挿入するときは、メディアライブラリという場所に登録されます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/c0b20e9ec46bb0abb542a89ce744a998.png?resize=590%2C283&ssl=1)
そのとき、自動的に各画像に個別のIDが付加されます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/724f6a174a144b7b1b7d0267a6b76cdf.png?resize=833%2C662&ssl=1)
なのでまず、個別の画像のIDを取得する処理を書きます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/dad5ac51646bda093b302bccd08e7ae2.png?resize=1024%2C237&ssl=1)
次に見ている投稿に指定された画像を取り出す処理(IDに紐付ける)を書きます。
※ここでは解像度を上げるため、二つ目のパラメーターで大きさも指定しています
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/b14e122b32e54ceeef2cc07a89de1c0c.png?resize=1024%2C237&ssl=1)
画像を表示させる
画像を取得する処理を書いたら、画像を表示させていきます。
今回は背景画像として挿入しているので、urlの後に取り出した画像のパスを入れていきます。
※$img配列の0番目が画像のパスになっているので、echoメソットで0番目の配列を指定すればOKです
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/25527752420a341660e0081a2824034c.png?resize=1024%2C237&ssl=1)
ページを更新すると、無事アイキャッチ画像が表示されています。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/e554c82e89ac801038002f5ce24dca7e.png?resize=554%2C447&ssl=1)
デフォルトの画像を設置
追加の機能として、アイキャッチ画像を登録しないときのデフォルト表示の設定もしていきたいと思います。
これは、if構文で分岐させていきます。
先ほど作った処理をif構文で囲み、画像が登録されていない場合の処理を書いていきます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/08647ee7d86d251a87e322b589780b42.png?resize=1024%2C305&ssl=1)
デフォルトとして、指定のディレクトリにある画像を取得する処理を書きました。
これでアイキャッチ画像を登録しないで記事を更新すると、このようになります。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/4fa9032439a73b2e869cda283b1fc434.png?resize=575%2C400&ssl=1)
これでアイキャッチ画像の設定は完了です。
追加機能をつける
これで投稿ページがだいぶできてきたので、おまけの機能をつけていきます。
言語設定
言語はWordpressの設定で変更できます(多言語対応)。
それに対応できるようにコードを書き換えます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/b3721a6a1af212a84ad92b37b6b8eb09.png?resize=818%2C140&ssl=1)
bodyタグ
bodyタグの設定も追加していきます。
![](https://i0.wp.com/fsfuyuto.com/wp-content/uploads/2021/11/7e89a242797c5d58cf49c9f8c3b92f35.png?resize=726%2C138&ssl=1)
body_classは、表示されるページによって様々なclassがbody要素に付加され、後々カスタマイズしやすくなるメリットがあります。
wp_body_openはGoogleのタグマネージャーなどを入れるときに役立ちます。
これで個別投稿ページはほぼ完成です。
まとめ 難しいプログラムも楽しく覚えていきましょう
いかがだったでしょうか。
今回は、functions.phpや変数($idや$img)など、少し難しいプログラムをタッチしていきました。
一見複雑そうなプログラムも、このように手を動かしながら作っていくと概要が理解できるようになります。
後は様々なケースを経験していけば、自然と慣れていきます。
以上、Wordpress開発初心者の方の参考になれば幸いです。
最後までお読みいただきありがとうございました。
簡単操作!Macでプログラミングを始めよう!
コメント