(2015年5月31日更新)WordPress投稿用テンプレートsingle.phpを作る(WordPressループの使い方)[WordPressテーマ作成の手順9]本日のINDEXhome.phpをコピーしてsingle.phpを作る投稿用のテンプレートについて記事の本文部分をループにするループの基本形ループにパーツテンプレートを埋め込むパーツテンプレートcontent.phpを作る投稿ページ間のリンクを表示するprevious_post_link()next_post_link()スポンサーリンクhome.phpをコピーしてsingle.phpを作る前回作ったhome.phpをコピーし、ファイル名をsingle.phpに変更。このsingle.phpという名のファイルがあれば、WordPressは投稿用ページとして表示する。投稿用のテンプレートについてWordPressは、投稿記事はsingle.phpで表示する。これが無ければindex.phpが使われる。single-[posttype].php([posttype]は任意の名前をつける)が最優先のテンプレートになる。[posttype].phpが無ければsingle.php、どちらも無ければindex.phpが使われる。超初心者のサーバー移転とドメイン移管&ついでにWordPressも!「カスタム投稿タイプ」とは...WordPressは、デフォルトで2つの投稿タイプ(post_type)がある。・投稿(ブログのような、時系列で並べたりカテゴリやタグで分類できる記事。post_typeは「post」)・固定ページ(カテゴリやタグは付けられない。ページの親子関係を指定できる。post_typeは「page」)コレら以外に、自分で好きな投稿タイプを追加できる。それがカスタム投稿タイプ。★例えば、ショップとか製品情報など、違うテンプレートで表示したいモノがある時に使うと便利。★テンプレートでの表示でなく、固定ページの中にパーツとして表示する事もできる。★「カスタム投稿タイプ」は、カテゴリやタグで分類できないが「カスタムタクソノミー」で分類できる。時系列で並べられるし、ページの親子関係も指定できる。「カスタムタクソノミー」とは...WordPressにデフォルトで備わっている「カテゴリ」「タグ」のような分類を、自分で好きな名前で追加できる。これがカスタムタクソノミー。★「カスタムタクソノミー」は、固定ページや投稿など全てのポストタイプに使える(どれか1つにヒモ付けされる)。記事の本文部分をループにするhome.phpをコピーし、ファイル名をsingle.phpに変更したら、single.php内のメインコンテンツ部分に投稿記事を表示するわけなので、ここを編集。footerはパーツテンプレートに分割済み)ここに便利なWordPressの「ループ」を仕込んで、管理画面で書いた投稿記事を表示させる。ループの基本形ループは、該当する記事があれば、あるだけ表示するという繰り返し処理のPHPソース。シンプルなのにオートマティックなWordPressの仕様です。single.phpの場合は、該当する記事は1コなので、1回しか繰り返さないけど、アーカイブページ(カテゴリやタグの一覧ページとか)なら、該当する記事をあるだけ表示する。ループの基本形はこんなかんじ。//ループを終了?>記事を表示する部分を書いた具体例は、ざっとこんなかんじ。<p>記事が見つかりませんでした。?>記事本文を出力するテンプレートタグは「the_content()」(上のソースの18行目)。管理画面で書いた記事は、このテンプレートタグでそっくりそのまま出力される。imgなどを仕込むと、ソースが長く複雑になってしまう。「パーツテンプレート」にして埋め込むほうが、スッキリするし、あとの編集が楽だ。このブログでは「content.php」を別に作って埋め込むことにした。endwhile;endif;?>elseは省略。投稿記事が「無い」ってことは無いから。(single.phpは投稿記事の表示だけだから。覚え書き*パーツテンプレートcontent.phpを作るパーツテンプレートcontent.phpを作っていく。1番最初にHTMLファイルを作った中の、投稿ページ用レイアウト「single.html」をコピーして「content.php」という名前に書き換える。single.phpで記述する外側のボックス(<article>〜</article>など)が重複しないように、その中に入るモノだけ残す。要するに、上のソースの5行目「get_template_part(‘content’);」のところに入れたいものだけを残すのね。あとは、記事の日付・カテゴリ・タイトル・アイキャッチ画像・本文などを「テンプレートタグ」に書き換えるだけでOK。(最初にキチンと投稿用のレイアウト(single.html)を作っておけば、CSS指定も済んでおり、コレだけでOKなわけ。END-->それぞれの「テンプレートタグ」は、home.phpを作った時のモノとほぼ同じ。[WordPressテーマ作成の手順8])もちろん、レイアウトはCSSで大幅に変えている。記事本文表示のテンプレートタグ(the_content())を使っていること(12行目)。div.wrap-col(1〜2と15〜16行目)は、本ブログのグリッドシステムのため。投稿ページ間のリンクを表示するcontent.phpができたので、single.phpで投稿記事が表示できるようになった。ここでもう1つ、WordPressには投稿記事の「隣接記事へのリンク」をさせる便利で素敵なテンプレートタグがあるので、content.phpに追加しておく。未来」ってこと(普通ですな。いつも戸惑うけど...w)。このテンプレートタグは必ずループ内で使う。ないと何も起こらない。(今の状況では、single.phpのループ内に仕込まれているパーツテンプレートcontent.phpに書くからOKというわけ)*上の図は、この時点で最新記事の表示なので「次の記事(未来の記事)」はまだ無いので空欄になっている。本ブログの、上の図の部分のソースはこんなかんじ。本ブログのグリッドシステムによるものです。前の記事へ」が表示され、そのページへのリンクがつく。引数を使って指定する場合、引数は次の5個。「,(カンマ)」で区切って使う。);$formatリンク部分のフォーマット。(下の$link(記事タイトル)を表示)。$linkリンクのテキスト。好きな文言に指定できる。$in_same_termコレだけはBoolean型(trueかfalse)。同じカテゴリーの記事に限定するかどうか。$excluded_terms表示させたくない(除外する)記事のカテゴリID。