投稿とカスタム投稿とカスタム分類
WordPress において投稿とはデフォルトの投稿のことで、カスタム投稿は投稿機能の追加分です。カスタム分類というのはカスタム投稿のカテゴリーのことです。
この概念は、いろいろな本やネットにもありますが Codex にある テンプレートファイルの図解 も参考にしながら私なりに調べて実践したメモを残しておきます。
※画像はイメージです。
あらかじめ固定ページで追加したページスラッグが works の場合に使われるファイルは以下の通り。
・アーカイブ(投稿一覧)
投稿 index.php single.php
カスタム投稿 archive-post_works.php / single-post_works.php
・カテゴリー(記事の分類)
投稿 category.php
カスタム分類 taxonomy-cat_works.php
これを利用できるようにするには、function.php に以下の記述を追加します。
function add_custom() { register_taxonomy('cat_works', array('post_works'), array( // 管理画面ラベル名 'label' => '仕事のカテゴリー', 'show_ui' => true, // 分類に親子関係を持たせる 'hierarchical' => true, // アーカイブページの URL を /works/category/分類スラッグ とする 'rewrite' => array( 'slug' => 'works/category', 'with_front' => false) )); register_post_type('post_works', array( // 管理画面ラベル名 'label' => '仕事', // 管理画面の表示位置 'works_position' => 3, // サイト上にも表示する 'public' => true, // タイトル、内容、アイキャッチ画像、カスタムフィールドを使う 'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields'), // アーカイブを持つ 'has_archive' => true, // シングルページの URL を /works/スラッグ とする 'rewrite' => array( 'slug' => 'works', 'with_front' => false) )); } add_action('init', 'add_custom');
注意)この記述を行った後には必ずパーマリンク設定で「変更を保存」をクリックして設定を反映させます。
次に single-post_works.php ファイルを作成して投稿タイプ(仕事)を出力するループを記述します。
<div id="content"> <?php // 投稿・アーカイブページで投稿を出力するループ ?> <?php if (have_posts()) : ?> <strong><?php while (have_posts()) : the_post(); ?></strong> <?php // 記事の内容を出力 ?> <div class="entry-content"> <?php the_title('<h3>', '</h3>'); ?><?php edit_post_link('編集する',' ',' '); ?> <?php the_content(); ?> <?php echo get_the_term_list( $post->ID, 'cat_works','<h4>', ' , ', '</h4>', ''); ?> </div><!--entry-content--> <strong><?php endwhile; ?></strong> <?php else: ?> <p>仕事情報がありません。</p> <?php endif; ?> </div><!--content-->
このコードでは、カスタム分類(カテゴリー)も表示させています。
次回は投稿したらトップページにサムネイル表示させる方法を書いてみます。
今日はここまで。おやすみなさい。zzz…
カテゴリー:WordPress