カスタム投稿備忘録

ワードプレスのカスタム投稿を理解する

 

カスタム投稿について、
いまいち分らなかったのですが、
なんとなく分ったので書き記します。

カスタム投稿といっても、
wordpressのカスタム投稿ですが、
これはかなり固有言語が出てくるので、
理解するのに苦労してきました。

 

ワードプレスには普通の投稿はありますが、
それとは違った投稿がカスタム投稿です。

 

カスタム投稿を使うには

タクソノミーだのタームだのと、システム用語があるのでチンプンカンプンでしたが、
それがわかれば、とても便利なツールになります。

 

投稿と固定ページの中間あたりの存在だと思っていただければ、
わかりやすいかもしれません。
どちらかというと投稿なのですが、
投稿とは別のシステムで動いているので、
カスタム投稿という投稿の名前がついていますが、
標準の投稿とは、まるで違います。

 

 

プラグインを使えば簡単にカスタム投稿を加えることが簡単ですが、
functions.phpに以下の内容を追加するだけで、
ダッシュボードにカスタム投稿を追加できます。

 

/*-------------------------------------------*/
/*	カスタム投稿追加(functionsに追加)
/*-------------------------------------------*/

add_action( 'init', 'custum_post_type' );
function custum_post_type() {
    //ここからカスタム投稿追加
    register_post_type( '任意', //カスタム投稿の英記(URLに相当)
        array('labels' =>
                array(
                'name' => __( '投稿の名前' ),
                'singular_name' => __( '投稿の名前' )
                ),
            //投稿タイプの設定
            'public' => true,
            'menu_position' => 5,
            'hierarchicla' => false,
            'has_archive' => true,
            //投稿編集ページの設定
            'supports' => array('title','editor','thumbnail',   //タイトル,編集,アイキャッチ
            'custom-fields','excerpt','author','trackbacks',    //カスタムフィールド,抜粋文&作成者,トラックバック
            'comments','revisions','page-attributes')           //コメント,リビジョン,作成者,表示順のボックス
        )
    );
    /* ここからカテゴリタクソノミーの設定 つまりカテゴリーです*/
    register_taxonomy(
        '任意-cat',  //任意のカスタム英記に-catを加える
        '任意',             // 上記で指定したカスタム投稿名
        array('hierarchical' => false,       // trueだと親子関係が使用可能。falseは親子関係使用不可
            'label' => '任意のカテゴリー',
            'singular_label' => '任意のカテゴリー',
            //カテゴリーの設定
            'public' => true,
            'hierarchical' => true,
        )
    );
  /* ここからタグの設定 */
   register_taxonomy(
        '任意-tag',  //任意のカスタム英記に-tagtを加える
        '任意',         // 上記で指定したカスタム投稿名
        array(
        'label' => '任意タグ',
        'labels' => array(
        'popular_items' => '任意タグ',
        'edit_item' =>'任意タグを編集',
        'add_new_item' => '新規子任意タグを追加',
        'search_items' => '任意を検索',
        ),
        'public' => true,
        'hierarchical' => false,
 
        )
        );
}

コードを見ていただけると分るように、

タクソノミーとはカテゴリーのことで、
タームというタグが加わっています。

 


ただ通常のカテゴリーだとID番号がついていますが、
カスタム投稿にはIDがなくてタクソミーの名前で値を呼び出します。

 

その下のカテゴリーをタグで分けて管理しているという構造だったんですね♪

 

そういうことだとわかれば、
個別な投稿を管理しやすくなりますね。

 

投稿と着く由縁

カスタム投稿はsingle.phpをつかって表示します。
固定ページだとpage.phpですよね。

ただこれだけの違いで投稿と名前がついていたわけです。

 

ちなみにアーカイブは共通ですが、
taxonomy.phpを使えば、
それだけの一覧を表示させることが出来る便利なシステムです。

 

下記はソースは、
表示したいカスタム投稿
表示したいカテゴリー
表示したいタグ一覧をページを作るため一部です。
タイトルとアイキャッチ画像が3つ表示されるようにしています。

 

 


<?php if (( get_post_type() == '任意'))// カスタム投稿タイプ「任意」 : ?>
         <div class="archiveboxwrap">
             <?php
             // ページ数
             $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
             // カスタム投稿タイプ「任意」、カスタムタクソノミー「任意-cat」、ターム(カテゴリ)「任意」、新着3件取得
             query_posts( array(
             'post_type' => '任意',
             'taxonomy' => '任意-cat',
             'term' => '任意タグ',
             'posts_per_page' => 3,
             'paged' => $paged,
             'order' => 'DESC'
             )
             );
             if (have_posts()) :while (have_posts()) :
             the_post();
             ?>
             <div class="archivebox">
             <h4 class="entryTitle"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h4>
                 <div class="thumbImage">
                     <div class="thumbImageInner">
                     <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
                     </div>
                     <div class="moreLink"><a href="<?php the_permalink(); ?>">この記事を読む</a></div>
                 </div>
             </div>
             <?php
             endwhile;
             endif;
             wp_reset_query();
             ?>

ループの中に必要な情報、 例えば

<?php the_content(); ?>

を追加してCSSで装飾すれば、 カスタム投稿専用のページにも作りかえられますし、
日付・タイトル・ページページャーを追加することも可能です。

 

カスタム投稿の結論

 

意外と用語を理解すれば簡単で便利な機能です。
カスタム投稿名=(URL)
タクソノミー=(カテゴリー名、数字は使わない)
ターム=(タグ)
という感じで考えると、理解しやすくなります。

 

これまでプラグインを利用していましたが、
これからはfunctions.phpに追加して、
プラグイン無しでカスタム投稿を利用できそうです♪

こはる写真館

こはる写真館

天城スタジオフォトがギャラリー

天城スタジオフォトがギャラリー
ページの先頭へ