プラグインを使う
こっちは調査していないのでわかりません
function.phpに書く
register_post_type()
を使う。これはinitアクションの中から呼び出す必要がある。
使い方はこんな感じ
<?php register_post_type( $post_type, $args ); ?>
$post_type
投稿タイプ名を定義します。最大20文字で大文字や空白はだめ。
$args
引数の配列。
よく使いそうなのをあげてみると、
labels
配列です。
**name:**投稿タイプの一般名、
singular_name:投稿タイプの複数形の名前。新規投稿と、更新の画面に表示される名前。デフォルトは↑のnameと同じになる。これは日本語だと関係ないかも。
menu_name:管理画面の左側のメニューに表示する名前です。デフォルトはnameと同じ。
public
投稿タイプをパブリックにするかとうか。
trueにすると、管理画面とフロント(ユーザー)から利用することができる。
falseにするとフロントエンドと管理画面の両方とも利用できない。管理画面からのみ利用できるようにするには、後述するshow_ui
をtrueにすると、管理画面でだけ利用できるようになる。
show_ui
デフォルトはpublicの引数。publicをfalse、show_uiをtrueにすることで管理画面でだけ利用できるようになる。
has_archive
アーカイブ機能のON、OFF。デフォルトはfalse。
menu_position
この投稿タイプがメニューに表示される位置。デフォルトはnullで、コメントの下に表示されるようです。
↓こんな感じで数字を指定するみたいです。
- 5 - 投稿の下
- 10 - メディアの下
- 15 - リンクの下
- 20 - 固定ページの下
- 25 - コメントの下
- 60 - 最初の区切りの下(コメントの下に区切りがある)
- 65 - プラグインの下
- 70 - ユーザーの下
- 75 - ツールの下
- 80 - 設定の下
- 100 - 二つ目の区切りの下(設定の下に区切りがある)
こんな感じに設定してみました。ニュースを追加します。
// カスタム投稿タイプ ニュース の追加
function create_post_type_news()
{
register_post_type('news',
array(
'labels' => array(
'name' => __('ニュース'),
),
'public' => true,
'show_ui' => true,
'menu_position' => 5,
)
);
}
add_action( 'init', 'create_post_type_news' );