WordPress 複数のカスタム投稿タイプを登録してみる

/ WordPress / Comment[0]
個人的なメモです。

$ ls
functions.php  index.php  style.css


$ vi functions.php
add_action('init', 'add_post_type');

function add_post_type() {
$args = array(
'labels' => array(
'name' => 'ニュース',
'singular_name' => 'ニュース',
'add_new' => '新規追加',
'add_new_item' => 'ニュースの新規追加',
'edit_item' => 'ニュースを編集する',
'new_item' => '新規ニュース',
'all_items' => 'ニュース一覧',
'view_item' => 'ニュースの説明を見る',
'search_items' => '検索する',
'not_found' => 'ニュースが見つかりませんでした。',
'not_found_in_trash' => 'ゴミ箱内にニュースが見つかりませんでした'
),
'public' => true,
'has_archive' => true,
'supports' => array(
'title',
'editor',
'author',
'excerpt'
)
);
register_post_type('news', $args);

$args = array(
'labels' => array(
'name' => '事業事例',
'singular_name' => '事業事例',
'add_new' => '新規追加',
'add_new_item' => '事業事例の新規追加',
'edit_item' => '事業事例を編集する',
'new_item' => '新規事業事例',
'all_items' => '事業事例一覧',
'view_item' => '事業事例の説明を見る',
'search_items' => '検索する',
'not_found' => '事業事例が見つかりませんでした。',
'not_found_in_trash' => 'ゴミ箱内に事業事例が見つかりませんでした'
),
'public' => true,
'has_archive' => true,
'supports' => array(
'title',
'editor',
'author',
'excerpt'
)
);
register_post_type('works', $args);

$args = array(
'labels' => array(
'name' => 'ブログ',
'singular_name' => 'ブログ',
'add_new' => '新規追加',
'add_new_item' => '記事の新規追加',
'edit_item' => 'ブログを編集する',
'new_item' => '新規記事',
'all_items' => '記事一覧',
'search_items' => '検索する',
'not_found' => '記事が見つかりませんでした。',
'not_found_in_trash' => 'ゴミ箱内に記事が見つかりませんでした'
),
'public' => true,
'has_archive' => true,
'supports' => array(
'title',
'editor',
'author',
'excerpt'
)
);
register_post_type('blog', $args);
}
?>

functions.phpに上記コードを書き込むとダッシュボードに出現


index.php/cssはシンプルに
$ vi index.php
<div id="news">
<h1>新着情報</h1>
<dl>
<?php query_posts( array('post_type' => 'news') ); if(have_posts()):?>
<?php while(have_posts()) : the_post();?>
<dd><?php the_time('Y年m月d日') ?></dd>
<dt><a href=""><?php the_title(); ?></a></dt>
<div id="borderline"></div>
<?php endwhile; ?>
<div class="nav-below">
<span class="nav-prev"><?php next_posts_link('« PREV')?></span>
<span class="nav-next"><?php previous_posts_link('NEXT »')?></span>
</div>
<?php else: ?>
<dt>none</dt><dd>none</dd>
<?php endif; wp_reset_query(); ?>
</dl>
</div>

<div id="works">
<h1>事業事例</h1>
<dl>
<?php query_posts( array('post_type' => 'works') ); if(have_posts()):?>
<?php while(have_posts()) : the_post();?>
<dd><?php the_time('Y年m月d日') ?></dd>
<dt><a href=""><?php the_title(); ?></a></dt>
<div id="borderline"></div>
<?php endwhile; ?>
<div class="nav-below">
<span class="nav-prev"><?php next_posts_link('« PREV')?></span>
<span class="nav-next"><?php previous_posts_link('NEXT »')?></span>
</div>
<?php else: ?>
<dt>none</dt><dd>none</dd>
<?php endif; wp_reset_query(); ?>
</dl>
</div>

<div id="blog">
<h1>ブログ</h1>
<dl>
<?php query_posts( array('post_type' => 'blog') ); if(have_posts()):?>
<?php while(have_posts()) : the_post();?>
<dd><?php the_time('Y年m月d日') ?></dd>
<dt><a href=""><?php the_title(); ?></a></dt>
<div id="borderline"></div>
<?php endwhile; ?>
<div class="nav-below">
<span class="nav-prev"><?php next_posts_link('« PREV')?></span>
<span class="nav-next"><?php previous_posts_link('NEXT »')?></span>
</div>
<?php else: ?>
<dt>none</dt><dd>none</dd>
<?php endif; wp_reset_query(); ?>
</dl>
</div>


$ vi style.css
/*
Theme Name: test
*/
#news, #works, #blog {
width: 500px;
height: 200px;
border: 1px solid black;
padding: 10px;
margin: 10px auto 10px;
}

dl dd {
float: left;
width: 10em;
}

dl dt {
margin-left: 15em;
}

div#borderline {
border-bottom: 1px dotted black;
margin: 5px 0 10px;
}

このようにちゃんと個別投稿できるようになりました。
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可