カスタム投稿 学習

勉強用なので間違っていたら随時修正していきます。

## カスタム投稿を作成
#### function.phpに記載。

//----------------------------------------------
// カスタム投稿　「旅行日記」
//----------------------------------------------
register_post_type(
  'travel_diary', //カスタム投稿名
  array(
    'label' => '旅行日記', //左のメニューに表示される名前
    'menu_position' => 4, // メニューが表示される位置
    'public' => true, // ダッシュボードに表示･非表示
    'has_archive' => true, // アーカイブ機能の追加
    'exclude_from_search' => true, //
    'supports' => array( // 投稿画面何を挿入するか？↓
      'title',  //　タイトル
      'editor',  // 本文
      'thumbnail', //アイキャッチ
     'revisions'  // リビジョン
    )
  )
);
add_post_type_support( 'travel_diary', 'page-attributes' );//投稿一つひとつにに順序をつける

☆その他参考になるタグ
[テンプレートタグ/get posts](https://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/get_posts#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF)

## タクソノミー（タグ・カテゴリー）追加
#### function.phpに記載。

//----------------------------------------------
// カスタム投稿　「旅行日記」 カテゴリー
//----------------------------------------------
register_taxonomy(
  'td_cat', //カテゴリー名
  'travel_diary', //カスタム投稿の名前
  array(
    'label' => 'カテゴリー', //表示される名前
    'hierarchical' => true, //親子関係の有無
    'query_var' => true , //スラッグ名でアドレスが開けるように
    'show_ui' => true //管理画面で一覧ページを表示
  )
);

//----------------------------------------------
// カスタム投稿　「旅行日記」 タグ
//----------------------------------------------
register_taxonomy(
  'td_tag',
  'travel_diary',
  array(
    'label' => 'タグ',
    'hierarchical' => true,
    'query_var' => true,
    'show_ui' => true
  )
);


##themeにphpを作成
###single-travel_diary.php
<?php get_header(); ?>
<article>
  <div>
  </div>
  <?php
if (have_posts()) : while (have_posts()) : the_post();
      if (in_category('1')) { ?>
    <div class="post-cat-one">
      <?php } else{ ?>
      <div class="post">
        <?php } ?>
        <p class="postmetadata">
          <?php the_category(', '); ?>
        </p>
        <div class="entry">
          <?php the_content(); ?>
        </div>
      </div>
      <?php endwhile; else: ?>
      <p>記事が見つかりませんでした。</p>
      <?php endif; ?>
</article>
<?php get_footer(); ?>

## カスタム投稿の特定のタグがついた記事のみ表示したいとき(html部分に入力)

          $args = array(
          'post_type' => 'travel_diary', //カスタム投稿名
          'numberposts' => 100,//表示記事数
          'orderby' => 'menu_order', // 表示する順番（この場合は管理画面で指定した投稿の順序）
          'order'   => 'ASC', //(昇順で表示する)
              'tax_query' => array(
                  array(
                  'taxonomy' => 'td_tag', //上記で指定したタグの名前
                  'field' => 'slug',
                  'terms' => 'tag_name', //管理画面のタグ登録画面で指定したスラッグを入力
                  'orderby' => 'menu_order'
                  )
              )
          );
                  $customPosts = get_posts($args);
                  if($customPosts) : foreach($customPosts as $post) : setup_postdata( $post );



### 参考になったサイト

[Wordpressでカスタム投稿の特定のタームだけ出力する](https://qiita.com/nagasawaaaa/items/157621e14a41cc1ffc6a)
[テンプレートタグ/get posts](https://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/get_posts#.E3.82.BF.E3.82.AF.E3.82.BD.E3.83.8E.E3.83.9F.E3.83.BC.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF)
[ざっくりWordPressの自作テンプレートの作り方]
(https://qiita.com/kazukichi/items/5126a4fd259d374e99ae)
[WordPress 3.0のカスタム投稿タイプ機能（その2）]
(https://www.h-fj.com/blog/archives/2010/06/15-172024.php)