日本語を記入すると文字化けした話。CommentWordPressオリジナルテーマ作成について語ってみるテスト、弐からの続き。今回はindex.phpの作成編。▼前回までの作成状況とりあえずindex.phpで記事表示するところまで作ることにします。トップページ的な役割をするものなので、single.phpと若干作りが違います。Loopについてループについて簡単に説明します。wordpressにはループというものがあり、これは他のテンプレートタグとは別格の存在です。記事などを表示する為に必須で、ループの中でしか使えないタグ(主にtheから始まるもの)というのがあります。?&gt;ifとwhileがセットになってる文なので、次のように分解することも出来ます。?&gt;&lt;p&gt;ここから繰り返し表示される&lt;/p&gt;:は{に置き換える事も出来ます。elseで記事が存在しない場合の表示も作成出来ます。?&gt;※マルチループとかクエリとかについてはsingle.php編集後に解説予定です。現在、index.phpはテンプレートファイルからXHTML貼り付けただけの状態になってると思います。そこに記事表示に必要なテンプレートタグをガッと埋めていきます。デフォルトテーマのindex.phpとか見ると、PHPソースがごちゃっと入っててウワァと思うかもしれませんがループ入れて表示したいものに応じたタグ入れるだけなのでそう難しくはないです。トップページではコメントやトラックバックURLの表示とかは必要ないので、使わないソースは全部消します。タイトル・日時・本文・カテゴリー・タグを表示することにして、以下のように変更しました。前後記事へのリンクは残して、前後一覧ページへのリンクで使用します。tagが目立ちすぎですが、面倒なのでそのまま・・・この時点でのindex.phpは次のようなソースになっています。フォントサイズ相対指定サンプル&lt;/a&gt;で解説しているものを使用しています。href=&quot;http://tenderfeel.xsrv.jp/html-xhtml/10/&quot;&gt;IEのみに適用させるIF&lt;/a&gt;で解説しています&lt;/p&gt;&lt;p&gt;XML宣言が入っている事に注意してください。?&gt;以下からの解説はこのソースを元にしていますので、ご注意下さい。上で説明したループ入れます。入れる場所は、記事を表示する場所の前後です。このサンプルソースだと、記事をpostというクラス名のDIVタグに入れてるので、ループの開始はdiv#contentとdiv.postの間ということになります。class=&quot;post&quot;&gt;dl.post-tagとdl#pagenaviの間でdiv.postを閉じます。その下でwhile(繰り返し)を閉じて、前後ページへのリンクを外します。ナビゲーションを入れた後、elseで記事が見つからなかった場合の表示を作成。最後にループのif文を閉じます。_e('お探しの記事は見つかりませんでした。the_title()&the_permalink()一覧なので、タイトルは記事へのリンク付きにします。タグはそれぞれ次の通りです。ループ内でのみ使用可能。?&gt;&lt;/a&gt;&lt;/h1&gt;the_title_attribute()は、the_title()よりも綺麗なソースでタイトルを表示するタグです。引数のechoは0にするとPHPソースとして出力します。printf()はPHPの出力整形関数です。printf('フォーマット','フォーマット内に入れたい文字列')という感じの使い方になります。詳しくはPHPのマニュアル見てください。これは次のように書いても同じです。the_time()&the_date()よく投稿日時の表示方法変えたい、という質問を見かけるんでそれもついでに。投稿日の表示これらの関数は、引数を何も書かずにそのまま書いた場合オプションの「日付フォーマット」と「時刻フォーマット」で設定したもので表示されますが、テンプレート内に書いてあるタグに引数が書いてある場合、そちらのフォーマットが優先されます。フォーマットはPHPのdate関数のものがそのまま使えますので、詳しくはマニュアルを参照。管理画面での設定をそのまま反映させるなら次のように書きます。?&gt;&lt;/li&gt;ただしこの場合、同じ日付の記事が並んだ時に投稿日の表示が省略されるので、index.phpには次のように追加しました。the_category()記事が投稿されているカテゴリーを表示します。親カテゴリが存在する場合の親子関係表示方法の指定です。?&gt;index.phpではカンマ区切りにしました。the_content()the_content()は「続きを読む」付きで本文を表示します。the_excerpt()というタグがあります。抜粋を表示するthe_excerpt()を使用した場合に記事の詳細オプションで抜粋が設定されていないと、本文先頭から適当に抜き出して表示します。後の部分は「続きを読む」リンクで非表示(記事へのリンクに変換)にします。引数を何も指定しない場合は(more...)と表示されます。?&gt;index.phpでは次のようにしました。comments_popup_link()アーカイブ系ページの場合、コメント数かコメントの可否の表示が一般的だと思います。comments_popup_link('zero','one','more','CSSclass','none');?&gt;引数は左から、「コメントが0件の時」「コメントが1件の時」「コメントが2件以上の時」「aタグにつけるクラス名」「コメント出来ない時」に表示するテキストです。?&gt;comments_popup_script()をテンプレート(head内とか)に書くと、ポップアップ形式で表示するようになります。ポップアップ表示専用のテンプレート(comments-popup.php)が必要になります。index.phpではカテゴリーの後ろに追加しました。?&gt;&lt;/li&gt;コメントオープン時だけ表示する場合は次のように書きます。the_tags()wordpressのタグ機能は2.3以上から実装されました。幅広いバージョンにも対応させる場合は、function_exists()で関数が存在するかどうか調べた方が良いです。PHPソース形式なので表示はechoかprintが必要。引数を何も指定しない場合は、カンマ区切りで表示されます。index.phpでは定義リストを使用してるので、次のようになります。if文でタグが指定されていない場合に非表示にしています。edit_post_link()あった方が俄然便利な編集リンクを追加します。edit_post_link()タグは、ログイン状態&編集権限を持っている場合に編集ページへのリンクを表示します。index.phpはコメントの後につけました。ログインしてない状態では表示しないので、タグは引数で指定します。posts_nav_link()index.phpやcategory.phpなど、アーカイブ内での前後ページへのナビゲーションリンクを表示します。個別記事へのリンクとは別のタグなので注意。?&gt;posts_nav_link()は前後ページへのナビゲーションリンクをまとめて表示するタグです。引数を何も指定しない状態では、中央を「—」で区切られたリンクが表示されます。タグも指定できるので、画像も使えます。前後どちらか片方だけリンクを表示させるという事も出来ます。next_posts_link()とprevious_posts_link()はそれぞれ前後どちらか一方のリンクを表示します。?&gt;&lt;/li&gt;&lt;/ul&gt;引数の名前とは逆のテキストを入れてるのに注意。以上のタグを入れると記事が表示されるようになります。_e('お探しの記事は見つかりませんでした。?&gt;まだcategory.phpなどのアーカイブ系テンプレートは作ってませんが、カテゴリーページやタグページ等も一応表示されるようになります。基本は以上なので、これに必要なタグを取得選択して追加・削除すれば、他のテンプレートファイルも作れます。次回single.php編につづく。DesignWall.。