You are here: Home » php » wordpress公式Twenty Sixteen page.phpの説明

wordpress公式Twenty Sixteen page.phpの説明

なすび

twentysixteenのpage.phpの中身の説明です。

phpとテンプレートタグについてです。

 

スポンサーリンク

page.phpの中の説明

twentysixteenのpage.phpの中身は以下のようになってます。

 

 

get_header();でheader.phpを読み込んでます。

スポンサーリンク

twentysixteenのpage.phpのループ

 

phpのwhile文(繰り返すループ文)です。

 

whileの基本的な構文

while (条件式){
実行する処理1;
実行する処理2;
}

純粋なphpの場合は (条件式)で比較演算子や関数を使ってtrue(真)またはfalse(偽)を判定してます。しかし、wordpressの場合は少し高度 ややこしくなります。

 

上の記述の

の場合 have_posts()で  wp-includes/query.php にあるクラスのWP_Query のループ(この場合ループ内に記事があるかどうか)できるのものがあるかどうかを判定して、trueかfalseををかえす仕組みです。ループの最後に wordpressのコアにあるrewind posts()というタグが自動でループを巻き戻して先頭に順番を戻します。

 

  •  query.php にある WP_QueryクラスはWordPressの大事な部分(カテゴリーアーカイブ、年月別アーカイブ、フィード、検索など)で様々な機能を簡単に使いやすいように組み込まれてます(記述はややこしいけど)。いつかこのブログでも解説すると思います。

 

the_post() で次の記事に進んで、次の記事を取得してます。

 

while ( have_posts() ) : the_post();の要約

have_posts()で記事があるかどうかを判定して、the_pots()で記事を取得を、while文で繰り返しなさいという記述です。

 

 

while ( have_posts() ) : the_post();の出力内容

上のwhile文で条件を決めて、次の記述で出力する内容を決めてます。

 

 

get_template_part();は (); の中の引数に指定したテンプレートを読み込んでくれます。しかし、header.php sidebar.php footer.php 以外のオリジナルテンプレートによく使うタグです。

 

一つ目の引数で

「テンプレート部品/コンテンツ」

とあるので、template-parts フォルダにある content.phpを読み込めという意味です。

二つ目の引数 ‘page’は

content-page.php が同じフォルダ内にある場合、content.php より先にcontent-page.phpを読み込みます。無ければ content.phpを読み込みます。

 

 

次に if文 で条件分岐してます。

 

comments_open(); は簡単に言えばコメントが許可されているかどうかを判定します。

 

get_comments_number は記事に対するコメント数の合計を表示してます。

この二つ真ん中に || の理論演算子の論理和があるので、comments_open() と get_comments_number() の二つのどちらかがtrueの場合trueです。

しかし、page.phpは固定ページの役割なので、コメントは受けつけないようになってます。

 

comments_template();のタグでcomments.phpを探してほとんどの場合コメントフォームを表示してます。投稿 と 固定ページ での表示に使用します。そのあと while文なので、endwhile;でループを終了してます。

 

固定ページでコメントを受け付ける方法

固定ページでコメントを受け付ける際は、固定ページ一覧⇒コメントを許可したいページの横のチェックマークをクリック⇒一括編集のプルダウンにある編集ボタンをクリック⇒コメントの項目が出てくるので、許可をクリック⇒更新でコメントを受け付けることができます。

 

 

 

get_sidebar( ‘コンテンツ底’);

はget_sidebarなのでsidebar.phpなどのウィジェットを読み込みます。この場合、sidebar-content-bottom.phpというファイルを読み込みんで、記事下のウィジェットを二つ表示するようになってます。

 

 

上と同じようにsidebar.phpをそのままサイドバー表示してます。

 

get_footer();でfooter.phpを読み込んでます。

スポンサーリンク

コメントを残す