functions.phpに新しいカスタム投稿タイプを登録するのがいちばんカンタンです。
ここでは「bookmark」というカスタム投稿タイプを登録します。もっともミニマルな形だと以下のようなコードになります。
// functions.php
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'bookmark',
array(
'labels' => array(
'name' => __( 'Bookmarks' ),
'singular_name' => __( 'Bookmark' )
),
'public' => true,
'has_archive' => true,
)
);
}
このコードを追加して管理画面をリロードすると新しい投稿タイプのメニューがサイドバーに現れます。そこから記事の投稿ができるようになります。
デフォルトの投稿タイプのテンプレートが使えないのでカスタム投稿タイプ専用のテンプレートを準備します。
archive-bookmark.phpはいわゆるインデックス用のアーカイブページなんかに。single-bookmark.phpは記事を個別に表示するテンプレートです。見ればわかるといった感じなので解説不要かと。
また、カスタム投稿タイプは通常のWPループから記事が取り出せないので以下のようにWP_Queryクラスからパラメータを与えてnewします。オブジェクトを取得してしまえば、後は通常のループでいろいろできます。ループ中のWPタグ(関数)はいつもと同じものが使えます。
<?php
// archive-bookmark.php
// single-bookmark.php
$args = array( 'post_type' => 'bookmark', 'posts_per_page' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
the_title();
echo '<div class="entry-content">';
the_content();
echo '</div>';
endwhile;
?>
ここまでが基本的な構造になります。
デフォルトでは、
/Wordpressのインストールしたディレクトリ/投稿タイプ名/
が基本形(ベース)になります。あとはいつものようにいろいろパーマリンクを変更できます。
ここまでの設定をしてもうまくカスタム投稿タイプが反映されないときは、パーマリンクの設定で更新ボタンを押してください。設定が反映されます。