お店情報ページの作成 single.php の場合

お店情報ページの作成 single.php の場合

お店情報は、投稿画面で作成して増やしていくので
single.php を作成します

まず、以前作成したお店情報のページをコピーします

ただし、投稿表示画面のファイル名が
single.php
であることに注意してください

今回は、別のディレクトリからコピーしました

1
cp ../../../../shop.html single.php

画面の状態を確認するには
ダッシュボードから記事の投稿画面で
変更をプレビュー
でみるとわかります

ただし、今のソースのままだと
wordpress の内容は反映されません

このため、ソースを書き換えていきます

まず、wordpress のヘッダーとフッターになるように
テンプレに変更します

ヘッダー部分には

1
<?php get_header(); ?>

フッター部分には

1
<?php get_footer(); ?>

とします

次に、記事があるかないかを判定します
もし、ないのなら
記事がありません
と表示するようにします

このため、本文を判定で囲みます

1
<?php if(have_posts()): while(have_posts()): the_post(); ?>

1
<?php get_header(); ?>

の下へ書き

1
2
3
<?php endwhile;   else: ?>
  <p>記事はありません</p>
<?php endif; ?>

1
<?php get_footer(); ?>

の上に書きます

have_posts() は記事があるかを判定

the_post() は次の記事の取得です

この条件式の解説には
WordPressテーマの「while (have_posts()) : the_post();」の意味は?

がわかりやすいと思います

次にタイトルを wordpress の投稿で入力した
タイトルになるようにします

1
<h2>ティーセット</h2>

1
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>

へ変更します

これで投稿一覧の中から
hello world を選び
変更をプレビューすると

タイトルが Hello world になります

single2

the_title() は タイトルを表示します

the_permalink() は記事へのリンクになります

次に、お店のランチメニューの紹介を書く場所を
編集します

1
<p>忙しい喧騒を離れ、午後はゆっくりとお茶を飲みたいときにおすすめです</p>

の部分には投稿本文を反映できるようにします

投稿内容を表示するには

1
<?php the_content(); ?>

とします

これで保存し、再度変更をプレビューすると
hello world の記事に内容が変わります

single3

今回の single.php のソースは以下のようになります

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php get_header(); ?>
 
<?php if(have_posts()): while(have_posts()): the_post(); ?>
 
  <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
  <h3>午後の緩やかな時間を本とともに</h3>
  <?php the_content(); ?>
  <img src="image/tee.jpg" alt="" width="300" height="300">
 
<h3>ギャラリー</h3>
<img src="image/food.jpg" alt="" width="300" height="300">
 
  <h3>メニュー</h3>
  <div data-role="collapsible">
    <h3>私のおすすめメニュー</h3>
    <p>イカスミパスタ</p>
  </div>
 
<h3>店舗情報</h3>
  <table data-role="table" data-mode="reflow" class="ui-responsive">
    <thead>
      <tr>
        <th>店名</th>
        <th>定休日</th>
        <th>価格</th>
        <th>住所</th>
        <th>電話番号</th>
        <th>HP</th>
        <th>アクセス</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>○○のお店</td>
        <td>日曜日</td>
        <td>ランチ1000円</td>
        <td>東京都</td>
        <td>000-000-0000</td>
        <td>http://example.co.jp</td>
        <td>○○駅○版口から徒歩</td>
      </tr>
    </tbody>
  </table>
<h3>周辺地図</h3>
  <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3241.7481415393895!2d139.74543744402948!3d35.65857638920314!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x60188bbd9009ec09%3A0x481a93f0d2a409dd!2z5p2x5Lqs44K_44Ov44O8!5e0!3m2!1sja!2sjp!4v1436313888247" width="600" height="450" frameborder="0" style="border:0" allowfullscreen></iframe>
  <?php endwhile;   else: ?>
    <p>記事はありません</p>
  <?php endif; ?>
 
 
<?php get_footer(); ?>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です