カスタム投稿タイプの作成は、CPT UIなどのプラグインでもできますが、functions.phpに記述することでプラグインを使わずに作成することも可能です。
タームやタクソノミーといった概念を理解すれば、それほど難しくないかもしれません。
functions.phpでカスタム投稿タイプを新規作成
capability_typeなど権限設定についてはモンキーレンチさんのこちらの記事でまとめていただいていました。
その他詳細はcodexを確認。
公開した記事がトップページにリダイレクトされる場合
プレビューでは記事を表示できるのに、公開して記事にアクセスすると、トップページにリダイレクトされてしまいます。
「設定」>「パーマリンク設定」で保存を押すと、正常にアクセスできるようになる。リライトルールの設定の問題かもしれません。
タームとタクソノミーの設定(カスタム分類)
カスタムタクソノミーのURL(パーマリンク)のコントロール
デフォルトのURL
タクソノミーの一覧ページのURLはデフォルトでこのようになっています。
officetnk.com/{投稿タイプ名}/{タクソノミー名}
officetnk.com/{post_type}/{taxonomy_name}
例えばnews投稿タイプで登録したタクソノミー名が news_category でも、URLでは category にしたい時があります。そういう時はrewriteを設定します。
/{投稿タイプ名}/{タクソノミー名と異なるスラッグ}/
officetnk.com/{投稿タイプ名}/{タクソノミー名と異なるスラッグ}
officetnk.com/{post_type}/{specific_taxonomy_name}
例えば、officetnk.com/news/category とする場合。既に上に埋め込んだgistのコードではそうなっているのですが、 ‘rewrite’ => array(‘slug’ => ‘category’) とすると実現可能です。