WordPress化するときのテンプレートタグまとめ

#HTML→WordPress化のテンプレートタグ忘備録

WordPress化するときにサクッと使えるよう、まとめてみました。

- インクルードタグ
- テンプレートタグ`bloginfo()`
- よく使うテンプレートタグ
- ループ
- 条件分岐
- カスタムヘッダー


##インクルードタグ

`<?php get_header(); ?>`　
header.phpの読み込み

`<?php get_footer(); ?>`
　footer.phpの読み込み

`<?php get_sidebar(); ?>`
 sidebar.phpの読み込み


`<?php comments_template(); ?>`
 comments.phpの読み込み

`<?php get_search_form(); ?>`
検索フォームの読み込み
&nbsp;


`get_header()`,`get_sidebar()`,`get_footer()`はそれぞれのphpファイルを読み込むテンプレートタグ
引数を与えると読み込むファイル名の一部を変更できる。

```php:sidebar-top.php
<?php get_sidebar('top');?>
<!--sidebar-top.phpを読み込む-->
```
&nbsp;

また、`get_template_part()`でもphpファイルを読み込むことができる

```php:sidebar-top.php
<?php get_template_part('header');?>
<!--header.phpを読み込む-->
```


&nbsp;
[WordPress CODEX|インクルードタグ](http://wpdocs.osdn.jp/%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%89%E3%82%BF%E3%82%B0)


##bloginfo()

`bloginfo()`は、サイトの基本情報を出力するテンプレート
&nbsp;

`bloginfo('stylesheet_url')`
テーマのディレクトリ内のstyle.cssまでのURLが自動的に出力される


```php
<?php bloginfo('stylesheet_url'); ?>
```
&nbsp;


```html:例
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('stylesheet_url'); ?>" />
```


&nbsp;

`bloginfo('template_url')`
テーマのディレクトリのURLが出力される

```
<?php bloginfo('template_url'); ?>
```

&nbsp;


相対指定のパスを以下のように書き換えることで画像の読み込みが可能になる。

```html:例
<img src="<?php bloginfo('template_url'); ?>/images/header/site_id.png" alt="サイトID" />
```


&nbsp;




`<?php bloginfo('name');?>`
WordPressの管理画面で設定したブログタイトルを出力

`<?php bloginfo('description');?>`
WordPressの管理画面で設定した説明文を出力

`<?php bloginfo('url'); ?>`
サイトのURLを出力

```php:これでもOK
<?php echo home_url('/');?>
<!--トップページへのリンクを出力-->
```


&nbsp;
[WordPress CODEX|インクルードタグ](http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/bloginfo)



##よく使うテンプレートタグ
`<?php the_title(); ?>`
記事タイトルを表示

`<?php the_content(); ?>`
記事の本文を表示

`<?php the_permalink(); ?>`
記事のパーマリンクを表示

`<?php the_category(); ?>`
記事のカテゴリーを表示（リンク付き）

`<?php the_tags(); ?>`
記事のタグを表示

`<?php the_date(); ?>`
記事の投稿日を表示


`<?php the_time(); ?>`
記事の投稿時間を表示

`<?php the_excerpt(); ?>`
記事の抜粋を表示


&nbsp;
[WordPress CODEX|テンプレートタグ](http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0)


##ループ
投稿や固定ページ、アーカイブなどで記事を処理するための仕組み


```php
<?php
if(have_posts())  :
  while (have_posts())  :
    the_post();
    the_content();
  endwhile;
endif;
?>
```

`have_posts()`は処理すべき記事があるかを判断

`the_post()`は、処理すべき記事をセットする

`the_content`で記事を出力


一連の流れを繰り返すのが**ループ**
&nbsp;


```php:これでもOK
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
    <?php the_content();?>
<?php endwhile; ?>
<?php endif; ?>
```


&nbsp;
[WordPress CODEX|ループ](http://wpdocs.osdn.jp/%E3%83%AB%E3%83%BC%E3%83%97#.E3.83.AB.E3.83.BC.E3.83.97.E3.81.AE.E4.BD.BF.E3.81.84.E6.96.B9)

[WordPress CODEX|ループの使用例](http://wpdocs.osdn.jp/The_Loop_in_Action
)
&nbsp;


##条件分岐

`is_home();`
トップページが表示されているときにifで囲まれたHTMLを表示

```php:
<?php if(is_home()): ?>
  // HTML
<?php endif; ?>
```

`is_single()`
`is_page()`
`is_category()`

開いているページに応じた条件分岐



&nbsp;


##カスタムヘッダー
[外観]>[ヘッダー]の管理画面から、メインイメージを管理できるようにする。

```php:functions.php
<?php
//カスタムヘッダー
add_theme_support( //特定のテーマをサポートすることを通知する関数
  'custom-header', //追加する機能として、カスタムヘッダーを指定
  array(
    'width' => 1080, //横幅
    'height' => 300, //縦幅
    'header-text' => false, //ヘッダーにテキストを表示しない
    'default-image' => '%s/images/top/main_image.png', //デフォルトイメージのURL
  )
  );
```

```php:header.php
<img src="<?php header_image(); ?>" width="<?php echo get_custom_header() ->width; ?>" height="<?php echo get_custom_header() ->height; ?>">
```


&nbsp;
[WordPress CODEX|カスタムヘッダー](http://wpdocs.osdn.jp/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%98%E3%83%83%E3%83%80%E3%83%BC)