WordPressを利用していて、制作事例や商品紹介など特定のフォーマットにそって入力するページを作りたい場合便利なのが「カスタム投稿タイプ」です。
具体的には、作りたいフォーマットページ専用の投稿メニューを生成しその内容をその他投稿ページのように出力する機能です。
プラグインで簡単に実現できるのですが、自分で作ったほうが色々設定できて便利なので今回はその方法を。
まずfunctions.phpに下記の内容を追加します。
function works_custom_post_type()
{
$labels = array(
'name' => _x('施工事例', 'post type general name'),
'singular_name' => _x('施工事例一覧', 'post type singular name'),
'add_new' => _x('新規施工事例', 'book'),
'add_new_item' => __('新規施工事例を追加'),
'edit_item' => __('編集'),
'new_item' => __('新規施工事例'),
'view_item' => __('この記事を表示'),
'search_items' => __('検索'),
'not_found' => __('施工事例はありません'),
'not_found_in_trash' => __('ゴミ箱は空です'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 5,
'rewrite' => true,
'supports' => array('title','editor')
);
register_post_type('works',$args);
}
add_action('init', 'works_custom_post_type');
$labelsの内容は適当に変更してください。主に管理画面での各種項目名称になります。
‘supports’ => array(‘title’,'editor’)
この部分は投稿画面の表示項目です。この場合は「タイトル」「記事」の2項目のみ表示となっています。
他にも下記が指定できます。
Excerpt
Trackbacks
Custom Fields
Comments
Revisions
Post Thumnails
Author
Page Attributes
‘menu_position’ => 5,
この項目はメニュー項目の位置です。 「5」は投稿の下に表示されます。
他にも指定はできるようです。
register_post_type(‘works’,$args);
ここではカスタム投稿タイプの名前を指定します。あとで呼び出すときに使用しますので重複の内容に決定してください。
とりあえずコレでカスタム投稿画面が表示されます。
次は実際に表示してみます。
新しくテンプレートファイルを作成しpage.phpの内容をコピー、記事字取得部分を下記に変更します。
<?php
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('post_type=works' . '&paged=' . $paged . '&posts_per_page=3');
?>
<?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
/* 記事の内容をいつものように記述 */
<?php endwhile; ?>
<?php previous_posts_link('<span class = "navi-prev">前のページへ</span>'); ?>
<?php next_posts_link('<span class = "navi-next">次のページへ</span>'); ?>
<?php $wp_query = null; $wp_query = $temp; ?>
これでとりあえず表示できるはずです。
今回は忘備録なので、詳しくは別で調べてね。