前回はブートストラップのサンプル(offcanvas)を使って、index.phpファイルを作成しました。今回は、そのindex.phpとTwentyFourteenのテンプレートファイルを使って、header.php、footer.php、sidebar.php、index.phpファイルを作成します。
※目次をクリックすると目次の下部にコンテンツが表示されます。
今回作成するレイアウト構成
●前回作成したindex.php(ブートストラップのサンプル(offcanvas))のレイアウト概要
<head>①ヘッド部、メタタグ</head> <body> <div class="navbar navbar-fixed-top navbar-inverse" role="navigation"> ②ナビゲーションメニュー </div><!-- /.navbar --> <div class="container"> <div class="row row-offcanvas row-offcanvas-right"> <div class="col-xs-12 col-sm-9"> <p class="pull-right visible-xs"> <button type="button" class="btn btn-primary btn-xs" data-toggle="offcanvas">Toggle nav</button> </p> <div class="jumbotron"> ③サイトタイトル部分 </div> <div class="row"> ④メインエリアコンテンツ部分 </div><!--/row--> </div><!--/span--> <div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation"> ⑤右サイドバー部 </div><!--/span--> </div><!--/row--> <footer>⑥フッター部</footer> </div><!--/.container--> </body>
上記のうち、ブートストラップ3のgridによる全体レイアウト(class=”col-xs-・・・”の部分)設定と②、③、④の部分を流用します。それ以外の部分はTwentyFourteenのテーマのテンプレートファイルを流用します。
●今回作成するレイアウト、テンプレートファイル構成概要
ブートストラップ3のgridを使ってレスポンシブデザインでレイアウトを構成します。
ここでは、2カラム構成で左側をメイン、右側をサイドバーとして構成します。
スマートフォンなど768px以下の場合(”col-xs-N”)とそれ以上の大きさのデバイス(”col-sm-N”)で各エリアの幅を割合を変えています。
①<head>メタタグ</head> ②<body> ③ナビゲーションメニュー ④<div class="container"> ⑤ ヘッダータイトル部 ⑥ <div class="row row-offcanvas row-offcanvas-right"> ⑦ <div class="col-xs-12 col-sm-9">コンテンツメインエリア</div> ⑧ <div class="col-xs-6 col-sm-3">右サイドバー</div> ⑨ </div><!-- #main --> ⑩ <footer></footer> ⑪</div> ⑫</body>
①~⑥をheader.phpで生成
⑧をsidebar.phpで生成
⑨~⑫をfooter.phpで生成
index.phpで下記を行います
get_header()でheader.php読込
⑦部分(投稿、固定ページ)読込
get_sidebar()でsidebar.php読込
get_footer()でfooter.php読込
header.phpの作成
先頭から<head>タグの終わりまではTwentyFourteenのheader.phpを流用し、ヘッダーメニューやヘッダータイトル部はブートストラップのサンプルを流用して作成します。
①TwentyFourteenのheader.phpをコピーし、先頭からheadタグの終わりまでをそのまま流用。それ以降は削除します。
②前回ブートストラップのサンプルをコピーしたindex.phpのbodyタグから<div class=”jumbotron”>・・・</div>(<div class=”row”>の上まで)までを流用して一部構成を変更して下記コードをheader.phpにコピーします。
①TwentyFourteenのheader.phpをコピーし、先頭からheadタグの終わりまでをそのまま流用。それ以降は削除します。
②前回ブートストラップのサンプルをコピーしたindex.phpのbodyタグから<div class=”jumbotron”>・・・</div>(<div class=”row”>の上まで)までを流用して一部構成を変更して下記コードをheader.phpにコピーします。
<body> <div class="navbar navbar-fixed-top navbar-inverse" role="navigation"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Project name</a> </div> <div class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li class="active"><a href="#">Home</a></li> <li><a href="#about">About</a></li> <li><a href="#contact">Contact</a></li> </ul> </div><!-- /.nav-collapse --> </div><!-- /.container --> </div><!-- /.navbar --> <div class="container"> <p class="pull-right visible-xs"> <button type="button" class="btn btn-primary btn-xs" data-toggle="offcanvas">Toggle nav</button> </p> <div class="jumbotron"> <h1>Hello, world!</h1> <p>This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.</p> </div> <div class="row row-offcanvas row-offcanvas-right">
sidebar.phpの作成
Twenty_Fourteenでは二つのサイドバーを使用していてsidebar.phpとsidebar-content.phpがあります。
sidebar.phpはナビゲーションメニューを表示できるようになっていたりするのですが、よりシンプルなsidebar-content.phpを流用する形で作りなおしました。
①TwentyFourteenのsidebar-content.phpコピーしてsidebar.phpにリネーム
②下記のように修正します。
sidebar.phpはナビゲーションメニューを表示できるようになっていたりするのですが、よりシンプルなsidebar-content.phpを流用する形で作りなおしました。
①TwentyFourteenのsidebar-content.phpコピーしてsidebar.phpにリネーム
②下記のように修正します。
<div class="col-xs-6 col-sm-3 sidebar-offcanvas" id="sidebar" role="navigation"> <?php if ( ! is_active_sidebar( 'sidebar-2' ) ) { return; } ?> <div id="content-sidebar" class="content-sidebar widget-area" role="complement ary"> <?php dynamic_sidebar( 'sidebar-2' ); ?> </div> </div>
footer.phpの作成
TwentyFourteenのfooter.phpをコピーして流用します。
index.phpの修正
1)index.phpのコンテンツ本文を投稿にコピー
今回は使用しませんが、後で使用するのでindex.phpのコンテンツ本文部分をWordPress管理画面で新規投稿として保存しておきます。
index.phpの下記部分をコピーし、新規投稿します
今回は使用しませんが、後で使用するのでindex.phpのコンテンツ本文部分をWordPress管理画面で新規投稿として保存しておきます。
index.phpの下記部分をコピーし、新規投稿します
<div class="row"> <div class="col-6 col-sm-6 col-lg-4"> <h2>Heading</h2> : </div><!--/span--> </div><!--/row-->
2)index.phpの再作成
TwentyFourteenのindex.phpを一部流用して、下記のように再作成します。
<?php get_header(); ?> <div class="col-xs-12 col-sm-9"> <?php if ( is_front_page() && twentyfourteen_has_featured_posts() ) { // Include the featured content template. get_template_part( 'featured-content' ); } ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); get_template_part( 'content', get_post_format() ); endwhile; twentyfourteen_paging_nav(); else : get_template_part( 'content', 'none' ); endif; ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
表示確認