SlideShare una empresa de Scribd logo
1 de 27
ゼロからつくるWordPressテーマ#8

   アイキャッチ画像を設置する
     sub topics :変数のスコープ

          【改訂版】


            http://hitsuji.me
目次

 1. アイキャッチ画像とは?
 2. 今回の変更内容
 3. アイキャッチ画像を設置する
          [TOPICS] 変数のスコープについて

 4. まとめと次回予告




ゼロからつくる WordPress テーマ #8   http://hitsuji.me   2
1-1.アイキャッチ画像とは?

アイキャッチ=Eye catch
読者の目を引きつける画像

 記事内の画像、または記事を
   イメージできる画像を表示。


 トップページや、カテゴリ
   ページなどでリスト表示する
   ときによく使われる。


 「サムネイル」とも言う。




ゼロからつくる WordPress テーマ #8   http://hitsuji.me   3
1-2.投稿を構成する要素

 アイキャッチ画像は、投稿を構成する要素の1つ

        投稿#1
                                                       ギャラ
                                 ID                     リー


                タイトル
                                                  タグ


                           コンテンツ
                           (本文)
                                             アイ        カテゴリ
           パーマ
                                            キャッチ
           リンク
                                             画像




ゼロからつくる WordPress テーマ #8      http://hitsuji.me               4
1-3.メディアライブラリ(画像)を構成する要素

画像データのほかにも、様々な要素で構成されている

        画像#1
                                                 タイトル     ID
                             画像サイ
                              ズ(full)
             画像
            データ


                                              キャプ        代替
                           リンク                ション       テキスト
                            URL




ゼロからつくる WordPress テーマ #8           http://hitsuji.me           5
1-4.画像を「投稿に挿入」ボタンを押したときの動き


                               コンテンツ(本文)に、画像を表
                               示するHTMLタグが出力される


                               <img                                     ID番号
                               class="alignleft size-thumbnail wp-image-820”
                               title="hitsuji01_blue"
                               src="http:../hitsuji01_standard.png"
                               alt=”hitsuji icon" width="100" height="100" />

                                                      各要素を反映して出力


                               ID番号は、ダッシュボードに表示されないが
                               内部で記録&管理されている


       投稿に挿入

ゼロからつくる WordPress テーマ #8   http://hitsuji.me                                    6
1-5.「アイキャッチ画像として使用」を押したときの動き


                                       メディアライブラリから、
                                       この記事のサムネイルとして関連づける。

                                       ここでHTMLを出力するわけではない。
                                       ※投稿欄のタイトルを入力しても、
                                       テンプレート内で the_post_title(); を
                                       実行しない限りタイトルが
                                       出力されないのと同じ。


                                                  メディアライブラリ




                           関連づけられた




ゼロからつくる WordPress テーマ #8      http://hitsuji.me                       7
1-6.投稿と記事内画像、アイキャッチ画像の関係



   投稿#1                                           the_post_thumbnail()
                                                  で出力
                                       WP内で
                            アイ
                                       関連づけ
        タイトル               キャッチ
                            画像



                                                           the_post()で
                コンテンツ
                                                           本文と一緒に
                 (本文)
                                                           出力
                 画像への
                 リンク
                             <img>タグのリンク



ゼロからつくる WordPress テーマ #8      http://hitsuji.me                          8
2-1. 今回の変更内容

トップページに、各記事の「アイキャッチ画像」を設置する
                                   (サムネイル画像)




                           アイキャッチ
                           画像設置




              アイキャッチ画像が無いときは、代替画像を挿入

ゼロからつくる WordPress テーマ #8   http://hitsuji.me   9
2-2. 変更のポイント(1) パーツテンプレート
  アイキャッチ画像を表示するテンプレートhome.phpが
  インクルードするパーツ を変更

画像表示しない                                             画像表示する

                       header.php                                  header.php


  index.php                                             home.php    content-
                       content.php
(汎用テンプレート)                                          (トップページ用)      excerpt.php


                           footer.php                              footer.php


                                         この中に画像表示するコードを書く
ゼロからつくる WordPress テーマ #8            http://hitsuji.me                           10
2-3. 変更のポイント(2) 画像出力までのフロー
functions.php
<?php
                                                       アイキャッチ画像の機能ON
add_theme_support('post-thumbnails’ );


                有効化                          有効化

ダッシュボードの投稿画面
アイキャッチ画像を選択可能に                       テンプレートファイル

                                      <?php
                            メディア      if(have_posts()):
                           ライブラリ
                                      while(have_posts()):
                                      the_post();
                                      ・・・
                           画像情報       the_post_thumbnail();   HTML出力
                                      ・・・
                                      ?>



ゼロからつくる WordPress テーマ #8           http://hitsuji.me                   11
2-4. 変更のポイント(3) 代替画像を出力する方法

 アイキャッチ画像の有り/無しを判定して、代替画像を出力する。
 画像サイズはfunctions.phpで定義しておく。

                                                 テンプレートフォルダ


                            NO
    アイキャッチ画像ある?
                                                   代替画像
                 YES




    the_post_thumbnail()で            <img>タグで
          画像出力                       代替画像出力



            functions.phpで定義した同じ画像サイズで出力

ゼロからつくる WordPress テーマ #8     http://hitsuji.me                12
3. アイキャッチ画像を設置する

 1. アイキャッチ画像の機能をONにする
 2. アイキャッチ画像サイズをPHP変数に保存する
 3. アイキャッチ画像サイズを定義する
 4. アイキャッチ画像を出力する
 5. 代替画像を出力する
          グローバルスコープとローカルスコープ
          WPにおける変数スコープ
          サイトのソースを確認

 6. 動作確認
!今回はコード加筆量が多いため、プレゼン資料には一部のみ掲載しています。
詳細はAppendixおよび別途Upするテーマフォルダを参照してください。

ゼロからつくる WordPress テーマ #8   http://hitsuji.me   13
3-1.アイキャッチ画像機能をON
functions.php

 <?php
 add_theme_support('post-thumbnails');




 add_theme_support()
  WordPress関数
  以下に代表される機能を有効化する。
       アイキャッチ画像
       カスタム背景
       カスタムヘッダー
  有効化する機能は、引数で指定する。
       アイキャッチ画像は ’post-thumbnails’ を渡す 。


ゼロからつくる WordPress テーマ #8      http://hitsuji.me   14
3-2.画像サイズをPHP変数に保存する
functions.php
・・・
$hitsuji_app_thumbnails_mid_h = 240;               PHP変数に画像サイズを格納
$hitsuji_app_thumbnails_mid_w = 160;
                                                   他の変数と重複しない範囲で
・・・
                                                   好きな名前をつける


PHP変数について
 PHPプログラムの中で使用する変数
 $から始まる
 変数名は、文字/数字/記号の一部が使える
 他の変数と名前の重複しないように要注意
     WordPressコアが使用している変数名は使用不可($postなど多数)
     通常Prefixを付けて、名前衝突を避ける



ゼロからつくる WordPress テーマ #8       http://hitsuji.me                    15
3-3. アイキャッチ画像サイズを定義
functions.php

・・・
add_image_size( 'app_thumbnails_mid’ ,
   $hitsuji_app_thumbnails_mid_w,
   $hitsuji_app_thumbnails_mid_h );




 add_image_size (画像サイズ名称, 横, 縦);
  WordPress関数
  WP関数で出力する画像サイズを定義できる
  アイキャッチ画像出力時に引数として指定可能




ゼロからつくる WordPress テーマ #8       http://hitsuji.me   16
3-4. アイキャッチ画像出力
content-excerpt.php
                                                   アイキャッチ画像が
 ・・・                                               あれば出力する
 <?php if (has_post_thumbnail()): ?>
     <a href="<?php the_permalink(); ?>">
          <?php the_post_thumbnail('app_thumbnails_mid'); ?></a>
 <?php else: ?>
      代替画像出力(2ページ後で紹介)
 <?php endif; ?>
 ・・・
 has_post_thumbnail()
  WordPress関数
  アイキャッチ画像の有り/無しを判定

 the_post_thumbnail (画像サイズ名称);
  WordPress関数
  アイキャッチ画像のHTML出力
  add_image_size()で定義した画像サイズ名で、サイズ指定できる
ゼロからつくる WordPress テーマ #8       http://hitsuji.me                   17
3-5. 代替画像出力
content-excerpt.php

<?php
global $hitsuji_app_thumbnails_mid_w;              global
global $hitsuji_app_thumbnails_mid_h;              functions.phpで定義した
                                                   変数へアクセス可能にする
?>
・・・
<?php if (has_post_thumbnail()): ?>
     アイキャッチ画像出力(前ページで紹介)
<?php else: ?>
<img class = "myapp_thumbnails_full"
    src="<?php bloginfo('template_url') ?>/img/nophoto.png”
    width ="<?php echo $hitsuji_app_thumbnails_mid_w; ?>”       縦/横サイズの
    height="<?php echo $hitsuji_app_thumbnails_mid_h; ?>”       数値出力
    alt="no photo" />
<?php endif; ?>                                          echo
                                                        変数の値を出力する
                                                        PHP関数

ゼロからつくる WordPress テーマ #8       http://hitsuji.me                     18
3-5-1. 変数のスコープ

  変数のスコープとは
         ある変数を読み/書きできる範囲のこと。
                                               ただし、パーツテンプレートは
  グローバルスコープとは                                 ローカルスコープになる
         (基本的に)PHPブロックに書いた変数のスコープ。
         異なるPHPブロックで、同じ変数にアクセスできる。

  ローカルスコープとは
         (基本的に)関数内に書いた変数のスコープ。
         ローカルスコープとグローバルスコープの変数は、互いにアク
          セスできない。
         ローカルスコープからグローバルスコープの変数にアクセスす
          るときは、global をつける。



ゼロからつくる WordPress テーマ #8   http://hitsuji.me                    19
3-5-2. WordPressテーマファイルでの変数スコープ
    テンプレート、関数ファイル                                                 パーツテンプレート



  functions.php                                              content.php
                                                        <?php
  <?php
   $var = 1;                                            echo $var = 1; ?>   ???

                                                   <?php
                                                参照 global $var;

                           index.php               echo $var;               1が出力
   home.php
                                                   ?>
    <?php                  <?php
     echo $var;             echo $var;
                                                     テンプレートパーツの変数は
         1が出力                   1が出力                 ローカルスコープ。

PHPブロックで使用した変数は                                      グローバルスコープの変数にアクセス
他のテンプレートから読み書きできる。                                   するには、global をアタマにつける。

ゼロからつくる WordPress テーマ #8                 http://hitsuji.me                         20
テンプレートパーツではローカルスコープになる


       パーツテンプレートは、
       WordPress関数の中で読み込まれて解釈される
     (インクルードタグは、WordPress固有の関数)




       パーツテンプレート内のPHPブロックは
       ローカルスコープになる。




ゼロからつくる WordPress テーマ #8   http://hitsuji.me   21
3-5-3. サイトのソースを確認
サイトのソース(トップページ、1件目サマリー出力部分)

・・・
<h3><a href=PAGE-PATH>ロングマン現代英英辞典</a></h3>
<a href="PAGE-PATH">
     <img width="160" height="240” src=”IMG-PATH"
         class="attachment-app_thumbnails_mid wp-post-image”
          alt=“longman" title=”longman" />
</a>                                              クラス自動出力
・・・                                                attachment-サイズ名
                                                     wp-post-image
2件目の記事のサマリーが続く



                            このクラス名を利用してスタイル指定する

※PAGE-PATH,IMG-PATHはそれぞれ具体的なURLが出力される(http://…)

 ゼロからつくる WordPress テーマ #8       http://hitsuji.me                     22
動作確認




                                               各記事で指定した
                                               アイキャッチ画像を
                                               出力できた。

                                               画像が無いときは
                                               代替画像を出力できた。




ゼロからつくる WordPress テーマ #8   http://hitsuji.me               23
4.まとめと次回予告

 まとめ
       アイキャッチ画像有効化するには、
        add_theme_support(‘post-thumbnails’);
       アイキャッチ画像を出力するには、
        the_post_thumbnail();
       パーツテンプレートからグローバルスコープ変数にア
        クセスするときは、アタマにglobalをつける。


 次回予告
       次回は、投稿クエリとループ関数について紹介します。

ゼロからつくる WordPress テーマ #8   http://hitsuji.me    24
Appendix

  WordPress公式ページの関連記事
       http://wpdocs.sourceforge.jp/投稿サムネイル
       http://wpdocs.sourceforge.jp/テンプレートタグ/the_post_thumbnail
       http://codex.wordpress.org/Function_Reference/add_image_size




  編集前後のテンプレート DL url
         編集前
           • http://wordpress.hitsuji.me/wp-
             content/uploads/TrainingOniPhoneDesign_1.0.0.zip
         編集後
           • http://wordpress.hitsuji.me/wp-
             content/uploads/TrainingOniPhoneDesign_1.0.2.zip




ゼロからつくる WordPress テーマ #8            http://hitsuji.me                  25
WP画像関連Tips#1

  WPで用意されている画像サイズ名と、出力サイズ

      画像サイズ名               最大サイズ                      例)出力サイズ
      thumbnail            150 x 150                  150 x 100
      medium               300 x 300                  300 x 200
      large                640 x 640                  600 x 400
      full                 元サイズ                       600 x 400

                                  例)元サイズが600 x 400 の場合




ゼロからつくる WordPress テーマ #8               http://hitsuji.me          26
WP画像関連Tips#2


 set_post_thumbnail_size($width, $height, $crop)
  WordPress関数
  the_post_thumbnail()関数で出力する画像のデフォルトサイズを指定
  縦横比に関わらず、指定サイズに出力するときは、$crop=trueとする

 get_the_post_thumbnail ($post_id, $size, $attr)
  WordPress関数
  投稿記事IDを指定してアイキャッチ画像のHTMLを取得できる
    (the_post_thumbnailはループ内でしか使えない)




ゼロからつくる WordPress テーマ #8   http://hitsuji.me       27

Más contenido relacionado

La actualidad más candente

CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩Chieko Aihara
 
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!Takashi Uemura
 
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!Takashi Uemura
 
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニックWordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニックTakashi Uemura
 
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!Takashi Uemura
 
WordPressテーマ作成
WordPressテーマ作成WordPressテーマ作成
WordPressテーマ作成Takami Kazuya
 
Wordpressで自分好みのテーマを作る
Wordpressで自分好みのテーマを作るWordpressで自分好みのテーマを作る
Wordpressで自分好みのテーマを作るTakashi Uemura
 
WordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまでWordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまでTakashi Uemura
 
Word press34
Word press34Word press34
Word press34BREN
 
What's new! TwentyThirteen + WordPress3.6
What's new! TwentyThirteen + WordPress3.6What's new! TwentyThirteen + WordPress3.6
What's new! TwentyThirteen + WordPress3.6Takashi Uemura
 
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshopWordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshoptakashi ono
 
101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoyatamotsu toyoda
 
concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識Hishikawa Takuro
 
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn SeminarSix Apart
 
これからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしようこれからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしようHishikawa Takuro
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門Yuji Nojima
 
ブログの枠を超える?ためのWordPressカスタマイズ入門
ブログの枠を超える?ためのWordPressカスタマイズ入門ブログの枠を超える?ためのWordPressカスタマイズ入門
ブログの枠を超える?ためのWordPressカスタマイズ入門muracchi
 
第2回こけむさズword press部
第2回こけむさズword press部第2回こけむさズword press部
第2回こけむさズword press部Yuki Suzuki
 

La actualidad más candente (20)

CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
 
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ"doshirouto"を作ったのでこれでテーマを理解しよう!
 
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
 
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニックWordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
WordPressでオリジナルサイトを作るための最初の一歩的なカスタマイズテクニック
 
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
WordPressの常識をくつがえす超簡単テーマ doshirouto2014 を作ったのでこれでテーマを理解しよう!
 
WordPressテーマ作成
WordPressテーマ作成WordPressテーマ作成
WordPressテーマ作成
 
Wordpressで自分好みのテーマを作る
Wordpressで自分好みのテーマを作るWordpressで自分好みのテーマを作る
Wordpressで自分好みのテーマを作る
 
WordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまでWordPress実践 導入からカスタマイズまで
WordPress実践 導入からカスタマイズまで
 
Word press34
Word press34Word press34
Word press34
 
What's new! TwentyThirteen + WordPress3.6
What's new! TwentyThirteen + WordPress3.6What's new! TwentyThirteen + WordPress3.6
What's new! TwentyThirteen + WordPress3.6
 
WordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshopWordBeachDeathMarchWorkshop
WordBeachDeathMarchWorkshop
 
WordBeach @kurudrive
WordBeach @kurudriveWordBeach @kurudrive
WordBeach @kurudrive
 
101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya101210 supreme web adobe seminar Nagoya
101210 supreme web adobe seminar Nagoya
 
concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識concrete5デザインカスタマイズに必要なPHPの知識
concrete5デザインカスタマイズに必要なPHPの知識
 
WordPressとjQuery
WordPressとjQueryWordPressとjQuery
WordPressとjQuery
 
20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar20141119 Movable Type HandsOn Seminar
20141119 Movable Type HandsOn Seminar
 
これからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしようこれからのpre_get_postsの話をしよう
これからのpre_get_postsの話をしよう
 
WordPressプラグイン作成入門
WordPressプラグイン作成入門WordPressプラグイン作成入門
WordPressプラグイン作成入門
 
ブログの枠を超える?ためのWordPressカスタマイズ入門
ブログの枠を超える?ためのWordPressカスタマイズ入門ブログの枠を超える?ためのWordPressカスタマイズ入門
ブログの枠を超える?ためのWordPressカスタマイズ入門
 
第2回こけむさズword press部
第2回こけむさズword press部第2回こけむさズword press部
第2回こけむさズword press部
 

Similar a ゼロからつくるWord pressテーマ第8回

Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php - BREN
 
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマHideki MACHIDA
 
eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜ericsagnes
 
WordPress基礎講座6 テーマの作成実習
WordPress基礎講座6 テーマの作成実習WordPress基礎講座6 テーマの作成実習
WordPress基礎講座6 テーマの作成実習Akinori Kawamitsu
 
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズCSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズrie05
 
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Hideki Hashizume
 
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルbaserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルRyuji Egashira
 
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」タカシ キタジマ
 
WordPressのテンプレートタグを理解する
WordPressのテンプレートタグを理解するWordPressのテンプレートタグを理解する
WordPressのテンプレートタグを理解するYoshinori Kobayashi
 
WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!BREN
 
ウェブサイト/ブログを組み合わせたサイトのテーマ化
ウェブサイト/ブログを組み合わせたサイトのテーマ化ウェブサイト/ブログを組み合わせたサイトのテーマ化
ウェブサイト/ブログを組み合わせたサイトのテーマ化Hajime Fujimoto
 
中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!
中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!
中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!switch3000
 
Movable Type 5のテーマ機能を活用する
Movable Type 5のテーマ機能を活用するMovable Type 5のテーマ機能を活用する
Movable Type 5のテーマ機能を活用するHajime Fujimoto
 
Wordpressスマートフォンテーマ作成
Wordpressスマートフォンテーマ作成Wordpressスマートフォンテーマ作成
Wordpressスマートフォンテーマ作成Yoshie Nakayama
 
2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_templateTom Hayakawa
 
Drupal8でのcsvインポート
Drupal8でのcsvインポートDrupal8でのcsvインポート
Drupal8でのcsvインポートTakafumi Oinuma
 
Theme review-guidelines wckobe2013
Theme review-guidelines wckobe2013Theme review-guidelines wckobe2013
Theme review-guidelines wckobe2013hiratatsuya
 

Similar a ゼロからつくるWord pressテーマ第8回 (20)

Word press 3.5RC2 - パーフェクト functions.php -
Word press 3.5RC2   - パーフェクト functions.php - Word press 3.5RC2   - パーフェクト functions.php -
Word press 3.5RC2 - パーフェクト functions.php -
 
いちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマいちばん簡単なconcrete5テーマ
いちばん簡単なconcrete5テーマ
 
eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜eZ Publish勉強会10月〜Wysiwygエディター〜
eZ Publish勉強会10月〜Wysiwygエディター〜
 
WordPress基礎講座6 テーマの作成実習
WordPress基礎講座6 テーマの作成実習WordPress基礎講座6 テーマの作成実習
WordPress基礎講座6 テーマの作成実習
 
WordPress と Bootstrap
WordPress と BootstrapWordPress と Bootstrap
WordPress と Bootstrap
 
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズCSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
 
Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15Pro aspnetmvc3framework chap15
Pro aspnetmvc3framework chap15
 
baserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアルbaserCMSテーマ制作チュートリアル
baserCMSテーマ制作チュートリアル
 
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
 
Php+Word Press
Php+Word PressPhp+Word Press
Php+Word Press
 
WordPressのテンプレートタグを理解する
WordPressのテンプレートタグを理解するWordPressのテンプレートタグを理解する
WordPressのテンプレートタグを理解する
 
WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!WordPressのCSSを 理解しよう!
WordPressのCSSを 理解しよう!
 
ウェブサイト/ブログを組み合わせたサイトのテーマ化
ウェブサイト/ブログを組み合わせたサイトのテーマ化ウェブサイト/ブログを組み合わせたサイトのテーマ化
ウェブサイト/ブログを組み合わせたサイトのテーマ化
 
中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!
中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!
中級者のためのWordPress講座[第2回]WordPressテーマをカスタマイズしてみよう!
 
Movable Type 5のテーマ機能を活用する
Movable Type 5のテーマ機能を活用するMovable Type 5のテーマ機能を活用する
Movable Type 5のテーマ機能を活用する
 
Wordpressスマートフォンテーマ作成
Wordpressスマートフォンテーマ作成Wordpressスマートフォンテーマ作成
Wordpressスマートフォンテーマ作成
 
2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template2006 07 29_xtc2006_x_cube_template
2006 07 29_xtc2006_x_cube_template
 
Wp html5
Wp html5Wp html5
Wp html5
 
Drupal8でのcsvインポート
Drupal8でのcsvインポートDrupal8でのcsvインポート
Drupal8でのcsvインポート
 
Theme review-guidelines wckobe2013
Theme review-guidelines wckobe2013Theme review-guidelines wckobe2013
Theme review-guidelines wckobe2013
 

Último

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (8)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

ゼロからつくるWord pressテーマ第8回

  • 1. ゼロからつくるWordPressテーマ#8 アイキャッチ画像を設置する sub topics :変数のスコープ 【改訂版】 http://hitsuji.me
  • 2. 目次 1. アイキャッチ画像とは? 2. 今回の変更内容 3. アイキャッチ画像を設置する [TOPICS] 変数のスコープについて 4. まとめと次回予告 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 2
  • 3. 1-1.アイキャッチ画像とは? アイキャッチ=Eye catch 読者の目を引きつける画像  記事内の画像、または記事を イメージできる画像を表示。  トップページや、カテゴリ ページなどでリスト表示する ときによく使われる。  「サムネイル」とも言う。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 3
  • 4. 1-2.投稿を構成する要素 アイキャッチ画像は、投稿を構成する要素の1つ 投稿#1 ギャラ ID リー タイトル タグ コンテンツ (本文) アイ カテゴリ パーマ キャッチ リンク 画像 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 4
  • 5. 1-3.メディアライブラリ(画像)を構成する要素 画像データのほかにも、様々な要素で構成されている 画像#1 タイトル ID 画像サイ ズ(full) 画像 データ キャプ 代替 リンク ション テキスト URL ゼロからつくる WordPress テーマ #8 http://hitsuji.me 5
  • 6. 1-4.画像を「投稿に挿入」ボタンを押したときの動き コンテンツ(本文)に、画像を表 示するHTMLタグが出力される <img ID番号 class="alignleft size-thumbnail wp-image-820” title="hitsuji01_blue" src="http:../hitsuji01_standard.png" alt=”hitsuji icon" width="100" height="100" /> 各要素を反映して出力 ID番号は、ダッシュボードに表示されないが 内部で記録&管理されている 投稿に挿入 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 6
  • 7. 1-5.「アイキャッチ画像として使用」を押したときの動き メディアライブラリから、 この記事のサムネイルとして関連づける。 ここでHTMLを出力するわけではない。 ※投稿欄のタイトルを入力しても、 テンプレート内で the_post_title(); を 実行しない限りタイトルが 出力されないのと同じ。 メディアライブラリ 関連づけられた ゼロからつくる WordPress テーマ #8 http://hitsuji.me 7
  • 8. 1-6.投稿と記事内画像、アイキャッチ画像の関係 投稿#1 the_post_thumbnail() で出力 WP内で アイ 関連づけ タイトル キャッチ 画像 the_post()で コンテンツ 本文と一緒に (本文) 出力 画像への リンク <img>タグのリンク ゼロからつくる WordPress テーマ #8 http://hitsuji.me 8
  • 9. 2-1. 今回の変更内容 トップページに、各記事の「アイキャッチ画像」を設置する (サムネイル画像) アイキャッチ 画像設置 アイキャッチ画像が無いときは、代替画像を挿入 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 9
  • 10. 2-2. 変更のポイント(1) パーツテンプレート アイキャッチ画像を表示するテンプレートhome.phpが インクルードするパーツ を変更 画像表示しない 画像表示する header.php header.php index.php home.php content- content.php (汎用テンプレート) (トップページ用) excerpt.php footer.php footer.php この中に画像表示するコードを書く ゼロからつくる WordPress テーマ #8 http://hitsuji.me 10
  • 11. 2-3. 変更のポイント(2) 画像出力までのフロー functions.php <?php アイキャッチ画像の機能ON add_theme_support('post-thumbnails’ ); 有効化 有効化 ダッシュボードの投稿画面 アイキャッチ画像を選択可能に テンプレートファイル <?php メディア if(have_posts()): ライブラリ while(have_posts()): the_post(); ・・・ 画像情報 the_post_thumbnail(); HTML出力 ・・・ ?> ゼロからつくる WordPress テーマ #8 http://hitsuji.me 11
  • 12. 2-4. 変更のポイント(3) 代替画像を出力する方法  アイキャッチ画像の有り/無しを判定して、代替画像を出力する。  画像サイズはfunctions.phpで定義しておく。 テンプレートフォルダ NO アイキャッチ画像ある? 代替画像 YES the_post_thumbnail()で <img>タグで 画像出力 代替画像出力 functions.phpで定義した同じ画像サイズで出力 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 12
  • 13. 3. アイキャッチ画像を設置する 1. アイキャッチ画像の機能をONにする 2. アイキャッチ画像サイズをPHP変数に保存する 3. アイキャッチ画像サイズを定義する 4. アイキャッチ画像を出力する 5. 代替画像を出力する  グローバルスコープとローカルスコープ  WPにおける変数スコープ  サイトのソースを確認 6. 動作確認 !今回はコード加筆量が多いため、プレゼン資料には一部のみ掲載しています。 詳細はAppendixおよび別途Upするテーマフォルダを参照してください。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 13
  • 14. 3-1.アイキャッチ画像機能をON functions.php <?php add_theme_support('post-thumbnails'); add_theme_support()  WordPress関数  以下に代表される機能を有効化する。  アイキャッチ画像  カスタム背景  カスタムヘッダー  有効化する機能は、引数で指定する。  アイキャッチ画像は ’post-thumbnails’ を渡す 。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 14
  • 15. 3-2.画像サイズをPHP変数に保存する functions.php ・・・ $hitsuji_app_thumbnails_mid_h = 240; PHP変数に画像サイズを格納 $hitsuji_app_thumbnails_mid_w = 160; 他の変数と重複しない範囲で ・・・ 好きな名前をつける PHP変数について  PHPプログラムの中で使用する変数  $から始まる  変数名は、文字/数字/記号の一部が使える  他の変数と名前の重複しないように要注意  WordPressコアが使用している変数名は使用不可($postなど多数)  通常Prefixを付けて、名前衝突を避ける ゼロからつくる WordPress テーマ #8 http://hitsuji.me 15
  • 16. 3-3. アイキャッチ画像サイズを定義 functions.php ・・・ add_image_size( 'app_thumbnails_mid’ , $hitsuji_app_thumbnails_mid_w, $hitsuji_app_thumbnails_mid_h ); add_image_size (画像サイズ名称, 横, 縦);  WordPress関数  WP関数で出力する画像サイズを定義できる  アイキャッチ画像出力時に引数として指定可能 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 16
  • 17. 3-4. アイキャッチ画像出力 content-excerpt.php アイキャッチ画像が ・・・ あれば出力する <?php if (has_post_thumbnail()): ?> <a href="<?php the_permalink(); ?>"> <?php the_post_thumbnail('app_thumbnails_mid'); ?></a> <?php else: ?> 代替画像出力(2ページ後で紹介) <?php endif; ?> ・・・ has_post_thumbnail()  WordPress関数  アイキャッチ画像の有り/無しを判定 the_post_thumbnail (画像サイズ名称);  WordPress関数  アイキャッチ画像のHTML出力  add_image_size()で定義した画像サイズ名で、サイズ指定できる ゼロからつくる WordPress テーマ #8 http://hitsuji.me 17
  • 18. 3-5. 代替画像出力 content-excerpt.php <?php global $hitsuji_app_thumbnails_mid_w; global global $hitsuji_app_thumbnails_mid_h; functions.phpで定義した 変数へアクセス可能にする ?> ・・・ <?php if (has_post_thumbnail()): ?> アイキャッチ画像出力(前ページで紹介) <?php else: ?> <img class = "myapp_thumbnails_full" src="<?php bloginfo('template_url') ?>/img/nophoto.png” width ="<?php echo $hitsuji_app_thumbnails_mid_w; ?>” 縦/横サイズの height="<?php echo $hitsuji_app_thumbnails_mid_h; ?>” 数値出力 alt="no photo" /> <?php endif; ?> echo 変数の値を出力する PHP関数 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 18
  • 19. 3-5-1. 変数のスコープ  変数のスコープとは  ある変数を読み/書きできる範囲のこと。 ただし、パーツテンプレートは  グローバルスコープとは ローカルスコープになる  (基本的に)PHPブロックに書いた変数のスコープ。  異なるPHPブロックで、同じ変数にアクセスできる。  ローカルスコープとは  (基本的に)関数内に書いた変数のスコープ。  ローカルスコープとグローバルスコープの変数は、互いにアク セスできない。  ローカルスコープからグローバルスコープの変数にアクセスす るときは、global をつける。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 19
  • 20. 3-5-2. WordPressテーマファイルでの変数スコープ テンプレート、関数ファイル パーツテンプレート functions.php content.php <?php <?php $var = 1; echo $var = 1; ?> ??? <?php 参照 global $var; index.php echo $var; 1が出力 home.php ?> <?php <?php echo $var; echo $var; テンプレートパーツの変数は 1が出力 1が出力 ローカルスコープ。 PHPブロックで使用した変数は グローバルスコープの変数にアクセス 他のテンプレートから読み書きできる。 するには、global をアタマにつける。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 20
  • 21. テンプレートパーツではローカルスコープになる パーツテンプレートは、 WordPress関数の中で読み込まれて解釈される (インクルードタグは、WordPress固有の関数) パーツテンプレート内のPHPブロックは ローカルスコープになる。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 21
  • 22. 3-5-3. サイトのソースを確認 サイトのソース(トップページ、1件目サマリー出力部分) ・・・ <h3><a href=PAGE-PATH>ロングマン現代英英辞典</a></h3> <a href="PAGE-PATH"> <img width="160" height="240” src=”IMG-PATH" class="attachment-app_thumbnails_mid wp-post-image” alt=“longman" title=”longman" /> </a> クラス自動出力 ・・・  attachment-サイズ名  wp-post-image 2件目の記事のサマリーが続く このクラス名を利用してスタイル指定する ※PAGE-PATH,IMG-PATHはそれぞれ具体的なURLが出力される(http://…) ゼロからつくる WordPress テーマ #8 http://hitsuji.me 22
  • 23. 動作確認 各記事で指定した アイキャッチ画像を 出力できた。 画像が無いときは 代替画像を出力できた。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 23
  • 24. 4.まとめと次回予告  まとめ  アイキャッチ画像有効化するには、 add_theme_support(‘post-thumbnails’);  アイキャッチ画像を出力するには、 the_post_thumbnail();  パーツテンプレートからグローバルスコープ変数にア クセスするときは、アタマにglobalをつける。  次回予告  次回は、投稿クエリとループ関数について紹介します。 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 24
  • 25. Appendix  WordPress公式ページの関連記事  http://wpdocs.sourceforge.jp/投稿サムネイル  http://wpdocs.sourceforge.jp/テンプレートタグ/the_post_thumbnail  http://codex.wordpress.org/Function_Reference/add_image_size  編集前後のテンプレート DL url  編集前 • http://wordpress.hitsuji.me/wp- content/uploads/TrainingOniPhoneDesign_1.0.0.zip  編集後 • http://wordpress.hitsuji.me/wp- content/uploads/TrainingOniPhoneDesign_1.0.2.zip ゼロからつくる WordPress テーマ #8 http://hitsuji.me 25
  • 26. WP画像関連Tips#1  WPで用意されている画像サイズ名と、出力サイズ 画像サイズ名 最大サイズ 例)出力サイズ thumbnail 150 x 150 150 x 100 medium 300 x 300 300 x 200 large 640 x 640 600 x 400 full 元サイズ 600 x 400 例)元サイズが600 x 400 の場合 ゼロからつくる WordPress テーマ #8 http://hitsuji.me 26
  • 27. WP画像関連Tips#2 set_post_thumbnail_size($width, $height, $crop)  WordPress関数  the_post_thumbnail()関数で出力する画像のデフォルトサイズを指定  縦横比に関わらず、指定サイズに出力するときは、$crop=trueとする get_the_post_thumbnail ($post_id, $size, $attr)  WordPress関数  投稿記事IDを指定してアイキャッチ画像のHTMLを取得できる (the_post_thumbnailはループ内でしか使えない) ゼロからつくる WordPress テーマ #8 http://hitsuji.me 27