Elevenテーマの各テンプレートについて解説しています。確認バージョンは3.2.1です。(header.php):その2」の続きです。id="main">まで)に対応しています。テンプレートのソースコードは次のとおりです。この回で説明するのは青色で示す部分です。id="main">1.body要素のclass属性値の出力body_class()でbody要素のclass属性を設定します。?>>メインページでは次のような出力になります。right-sidebar">記事ページでは次のような出力になります。right-sidebar">body_class()はwp-includes/post-template.phpに実装されています。'"';}中で起動されているget_body_class()も同じファイルに実装されています(長いので掲載は割愛)。次の部分でブログタイトルとキャッチフレーズを出力します。</hgroup>esc_url()でラップされているhome_url()は、wp-includes/link-template.phpに実装されています。$scheme);}中で起動されているget_home_url()も同じファイルに実装されていて、中ではget_option()またはget_blog_option()の値を利用しています。プロトコル(http/https)は、is_ssl()とis_admin()で決定しています。is_ssl()はセキュアなアクセスである場合に実行し、プロトコル(http/https)を振り分けます。);}esc_url()はURLに含まれる文字列をURIエンコードする役割があり、wp-includes/formatting.phpに実装されています。esc_attr()は属性値として設定する文字列をエスケープする役割があり、同じファイルに実装されています。)でブログ名をa要素のtitle属性に設定します。)はキャッチフレーズを出力します。get_bloginfo()とbloginfo()は既出のため、解説は省略します。以下の部分でヘッダ画像を出力します。記事ページではアイキャッチ画像を表示することもできます。アイキャッチ画像の詳細については別途エントリーしたいと思います。?>get_header_image()は画像のURLを収集する役割があり、変数$header_imageに次のようなURLを設定します。http://user-domain/wp/wp-content/themes/twentyeleven/images/headers/trolley.jpgget_header_image()はwp-includes/theme.phpに実装されています。);}HEADER_IMAGEはテーマのfunctions.phpのtwentyeleven_setup()に定義されています(ただし値は空)。);get_theme_mod()はテーマのオプションを取得する関数で、後述します。remove-headerの判定は、「外観」→「ヘッダー」で「ヘッダー画像を削除」をクリックした場合に実行されるものと思われます(間違っていたらすいません)。is_random_header_image()は同じ管理画面で「ランダム」を選択している場合に実行される関数で、wp-includes/theme.phpに実装されています。return時のesc_url_raw()は、esc_url()をラップした関数で、wp-includes/formatting.phpに実装されています。);}話を戻して、変数$header_imageに値が設定されていれば(=ヘッダ画像のURLがあれば)、home_url()とesc_url()を組み合わせて、ブログのメインページのリンクを出力します。?>リンクのコンテンツの出力部分は以下です。?>次の4つの条件を満たす場合、get_the_post_thumbnail()でアイキャッチ画像を出力します。Elevenテーマで用意されている画像を表示します。/>header_image()はget_header_image()をechoする関数で、wp-includes/theme.phpに実装されています。次の部分で検索フォームを出力します。?>デフォルトの状態ではページの右上に検索フォームを表示しますが、get_header_textcolor()の結果が「blank」であればdiv要素を挿入して、検索フォームをナビゲーションの右側に出力するようになっています。デフォルト状態の検索フォーム「blank」の場合の検索フォームget_header_textcolor()はHEADER_TEXTCOLORの値を出力する関数で、wp-includes/theme.phpに実装されています。$default);}HEADER_TEXTCOLORは、テーマのfunctions.phpのtwentyeleven_setup()に定義されています。);twentyeleven_setup()は、functions.phpにある「after_setup_them」フックポイントで起動されます。value)を取得する関数のようです。キーと値はテーマを切り替えたときにwp_optionsテーブルに保存されるようです。);}get_theme_mods()も同じファイルに実装されています。$mods;}get_theme_mods()は取得関数ですが、オプションの設定はadd_option()、更新はupdate_option()、またオプションの削除関数としてremove_theme_mods()があります。add_option()とupdate_option()はwp-includes/functions.phpに実装されています。テーマの切り替えなどを行うと、これらの関数が実行されるようです。最後に、次の部分でナビゲーションを出力します。-->以下は出力例です。-->wp_nav_menu()はナビゲーションメニューを出力するための関数で、wp-includes/nav-menu-template.phpに実装されています(掲載は割愛)。wp_nav_menu()には色々なオプションがありますが、詳細は別途エントリーしたいと思います。Elevenテーマでは、テーマ内で使用する場所(ロケーション)を示す「theme_location」のみを設定しています。「theme_location」の値「primary」は、functions.phpにregister_nav_menu()で設定しています。);functions.phpにregister_nav_menu()を追加していけば、ロケーションのバリエーションを増やすことができます。);register_nav_menu()で複数のロケーションをまとめて設定することもできます。);肝心のメニューの内容は、管理画面の「外観」→「メニュー」で設定します。デフォルト状態では何も設定されていないので、先程の「フッターメニュー」用のメニュー内容を作りたい場合は、「メニューの名前」に「フッター」など任意の名称を入力して「メニューを作成」をクリック。作成すると左側にメニュー項目として「カスタムリンク」「固定ページ」「カテゴリー」などがアクティブになり、同時に「register_nav_menus」に対応する「テーマの場所(ロケーション)」も表示されます。あとはそれぞれのロケーションに作成したメニューを作って「保存」をクリックします。フッターメニューは、テーマの「フッター」に次の記述すれば表示されます。*必須(非表示)URL(U):情報を保存する?コメントへの返信ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。すべてのご質問にはお答えできない可能性があります。Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。