ひたすらワードプレスのカスタム投稿使った場合のコードメモっていく

#もう自作はだいっきらい。特にカスタム投稿。
結構古いコードもあると思います。間違いも多いと思います。寄せ集めです。
実装はご自分の判断責任で。ミスの指摘は本当に感謝します。。。

##style.css
```css:style.css
/*
Theme Name: テーマの名前
Author: Naoki Shirahige
Author URI: http://naonosuke.com
Description: 詳細。
*/
```

##index.php
・ヘッダーを表示する

```php:index.php
<?php get_header(); ?>
```
・フッターを表示する

```php:index.php
<?php get_footer(); ?>
```
・サイドバーを表示する

```php:index.php
<?php get_sidebar(); ?>
```
---


・ループを開始させる。

```php:index.php
<?php
  $wp_query = new WP_Query();
  $param = array(
      'posts_per_page' => '5', //表示件数を指定
      'post_type' => 'notice', //カスタム投稿タイプを指定
      'post_status' => 'publish', //公開のものだけ
      'orderby' => 'ID', //並び替え
      'order' => 'DESC'
  );
  $wp_query->query($param);
  if($wp_query->have_posts()): while($wp_query->have_posts()) : $wp_query->the_post();
?>
```


・記事の日付を表示したい

```php:index.php
<?php echo get_the_date(); ?>
```


・NEWを表示したい

```php:index.php
<?php
  $days = 7; //表示させたい期間の日数、この場合公開から7日以内
  $today = date_i18n('U');
  $entry = get_the_time('U');
  $kiji = date('U',($today - $entry)) / 86400 ;
  if( $days > $kiji ){
  echo '<span class="news_icon">New!</span>';
  } 
?>
```

・カテゴリを表示したい

```php:index.php
<?php
	if ($terms = get_the_terms($post->ID, 'notice-cat')) {
    foreach ( $terms as $term ) {
      echo esc_html($term->name);
    }
	}
?>
```

・記事タイトルを表示したい

```php:index.php
<?php the_title(); ?>

```

・忘れずループ終了

```php:index.php
<?php endwhile; endif; ?>

```


##header.php

・ホームリンクを表示したい

```php:header.php
<?php echo esc_url( home_url( '/' ) ); ?>
```
```php:header.php
<?php echo esc_url( get_home_url() ); ?>
```

・hrefでひっぱってきたい

```php:header.php
<?php echo get_template_directory_uri(); ?>/〜.css
```

##single.php

・パンくずリストを表示したい

```php:single.php
<?php echo esc_html(get_post_type_object(get_post_type())->label ); ?>
> //これがパンくずの「>」
<?php
if ($terms = get_the_terms($post->ID, 'cat')) {
  foreach ( $terms as $term ) {
    echo esc_html($term->name);
  }
}
?>
```

・ループ開始をする

```php:single.php
<?php if(have_posts()): while(have_posts()): the_post(); ?>

```

・記事タイトルを表示したい

```php:single.php
<?php the_title(); ?>
```

・ポストタイプ(カスタム投稿タイプがある場合)を表示したい

```php:single.php
<?php echo esc_html(get_post_type_object(get_post_type())->label ); ?> >
```

・記事の日付を表示したい

```php:single.php
<?php echo get_the_date(); ?>
```


・？？

```php:single.php
<?php
  if ($terms = get_the_terms($post->ID, 'notice-cat')) {
    foreach ( $terms as $term ) {
      echo esc_html($term->name);
    }
  }
  ?>
```

・サムネイルを表示したい

```php:single.php
<?php the_post_thumbnail(); ?>
```

・記事の内容を表示したい

```php:single.php
<?php the_content(); ?>
```

・ループ終了

```php:single.php
<?php endwhile; endif; ?>
```

##functions.php
```php:functions.php
add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'notice', //noticeがカスタムの名前
        array(
            'labels' => array(
            'name' => __( 'お知らせ' ), //表示する名前
            'singular_name' => __( 'お知らせ' ) 
            ),
            'public' => true, //公開するか
            'menu_position' =>5, //場所の順位
            'supports' => array('title','editor','thumbnail') //何を有効にするか
        )
    );
    register_taxonomy( //カスタムタクソノミー、タグタイプ
        'notice-cat', //（名前）-cat 
        'notice', //カテゴリの名前
        array(
          'hierarchical' => true, 
          'update_count_callback' => '_update_post_term_count',
          'label' => 'お知らせのカテゴリー', //表示する名前
          'singular_label' => 'お知らせのカテゴリー', 
          'public' => true,
          'show_ui' => true
        )
    );
    register_taxonomy( //タグ
        'notice-tag', //(名前)-tag
        'notice', //カテゴリの名前
        array(
            'hierarchical' => false, 
            'update_count_callback' => '_update_post_term_count',
            'label' => 'お知らせのタグ',　//表示する名前
            'singular_label' => 'お知らせのタグ',
            'public' => true,
            'show_ui' => true
        )
    );
　　//続ける場合はそのまま下に追加
);
}
```

・サムネイルを表示できるようにする

```php:functions.php
add_theme_support('post-thumbnails');
```