カスタム投稿タイプの演習
カスタム投稿タイプ「書籍」の作成
カスタム投稿タイプ「書籍」を作成しましょう。
- スラッグ「book」
- 表示名「書籍」
- アーカイブ機能を利用
- 階層化しない
- titleのラベルを「書名」に。
- supportは「title」のみ利用
書籍にカスタムフィールドを関連付け
カスタム投稿タイプ「書籍」に対応させるフィールドグループ「書籍フィールド」を作成し、
- 著者 (author, テキスト, 必須)
- ISBNコード(isbn, テキスト, 必須)
- 評価(score, range 0~100 , step: 5, 必須)
- ブックレビュー(book_review, テキストエリア, 必須)
のフィールドを設定しましょう。
記事の作成
以下の内容で記事を作成しましょう
タイトル | 著者 | ISBN | 評価 | ブックレビュー |
---|---|---|---|---|
こころ | 夏目漱石 | 9784101010137 | 90 | 「こころ」のブックレビューです。 |
ぼっちゃん | 夏目漱石 | 9784101010038 | 95 | 「ぼっちゃん」のブックレビューです。 |
金閣寺 | 三島由紀夫 | 4101050082 | 100 | 「金閣寺」のブックレビューです。 |
伊豆の踊子 | 川端康成 | 4101001022 | 85 | 「伊豆の踊子」のブックレビューです。 |
走れメロス | 太宰治 | 4101006067 | 80 | 「走れメロス」のブックレビューです。 |
詳解Wordpress | プライム・ストラテジー | 4873116783 | 95 | 「詳解Wordpress」のブックレビューです。 |
プレゼンテーションzen | ガー・レイノルズ | 462106603X | 90 | 「プレゼンテーションzen」のブックレビューです。 |
カスタムタクソノミーの作成
カスタムタクソノミー「書籍カテゴリ」と カスタムタクソノミー「書籍タグ」を作成し、 以下のように設定しましょう。 書籍カテゴリのスラッグはbook_categoryとし、階層化を許可してください。 (書籍カテゴリは、実際には複数設定可能ですが、各書籍について一つだけ設定する運用とします。) 書籍タグのスラッグはbook_tagとしてください。
書名 | 書籍カテゴリ | 書籍タグ |
---|---|---|
こころ | 文学 | 古典, 小説, 純文学 |
ぼっちゃん | 文学 | 古典, 小説, 純文学 |
金閣寺 | 文学 | 古典, 小説, 純文学, 火事, 京都, 寺 |
伊豆の踊子 | 文学 | 古典, 小説, 純文学, 伊豆 |
走れメロス | 文学 | 古典, 小説, 純文学, 又吉直樹, ギリシャ |
詳解Wordpress | プログラミング | PHP, Wordpress, ブログ, 中級 |
プレゼンテーションzen | ビジネス | プレゼンテーション, 外国人著者, セミナー |
カスタム投稿タイプ用テンプレートの作成
カスタム投稿タイプ「book」用のテンプレートを作成してください。
「書籍」アーカイブの作成
カスタム投稿タイプ「book」のアーカイブ用テンプレートを作成してください。
- ヘッダーにカテゴリリンクを表示(ダイナミックサイドバーを利用)
- パンくずリストを表示
- 評価を表示
- レビューへのリンクを表示
アーカイブページの例(デザインは任意のカスタマイズをしてください。)
「書籍」個別記事ページの作成
カスタム投稿タイプ「book」の個別記事ページ用テンプレートを作成してください。
- ヘッダーにカテゴリリンクを表示(ダイナミックサイドバーを利用)
- パンくずリストを表示
- isbn以外の全てのカスタムフィールドを表示
- isbnを利用してAmazonリンクを作成
個別記事ページの例(デザインは任意のカスタマイズをしてください。)
https://www.amazon.co.jp/dp/[isbnコード]
でアマゾンの商品ページへリンクを貼ることが可能です。
カスタムタクソノミー用テンプレートの作成
「書籍カテゴリ」アーカイブの作成
書籍アーカイブページと同様の表示にしましょう。
「書籍カテゴリ-文学」アーカイブの作成
「文学」の書籍カテゴリにのみ、青空文庫の紹介文を表示させてみましょう。
「書籍タグ」アーカイブの作成
書籍アーカイブページと同様の表示にしましょう。
「書籍タグ一覧」の作成
書籍タグ一覧のメニューを作成し、サイドバーに表示しましょう。
書籍タグのターム一覧は
$book_tags = get_terms('book_tag');
で取得することが可能です。
また、タグへのリンクは
<a href="<?php print get_term_link([個々のタームオブジェクト])">
として作成可能です。