Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@nomaharu2013

カスタム投稿 学習

More than 3 years have 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)

3
Help us understand the problem. What is going on with this article?
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.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?