Help us understand the problem. What is going on with this article?

カスタム投稿 学習

More than 1 year has passed since last update.

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

カスタム投稿を作成

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

タクソノミー(タグ・カテゴリー)追加

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(); ?>



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

<?php } else{ ?>

<?php } ?>


<?php the_category(', '); ?>



<?php the_content(); ?>


<?php endwhile; else: ?>

記事が見つかりませんでした。


<?php endif; ?>

<?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でカスタム投稿の特定のタームだけ出力する
テンプレートタグ/get posts
ざっくりWordPressの自作テンプレートの作り方
WordPress 3.0のカスタム投稿タイプ機能(その2)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした