Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
WordPress custom post template
// register_post_type ↓
// http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/register_post_type
// taxonomiesは省略しています。追加するかregister_taxonomy()を利用してください。
add_action('init', 'custom_post');
function custom_post(){
$label_arr = array(
// 'name' => '', // 投稿タイプの一般名、通常は複数形。省略すると $post_type_object->label と同じ値になる。
// 'singular_name' => '', // この投稿タイプのオブジェクト 1 個の名前(単数形)。デフォルトは 'name' の値。
// 'menu_name' => '', // メニュー名のテキスト。メニュー項目の名前を決める文字列です。デフォルトは 'name' の値。
// 'name_admin_bar' => '', // 管理バーの「新規追加」ドロップダウンに入れる名前。デフォルトは、'singular_name' があればその値になり、無ければ 'name' の値になる。
// 'all_items' => '', // メニューの「すべての〜」に使うテキスト。デフォルトは 'name' の値。
// 'add_new' => '', // 「新規追加」のテキスト。デフォルトは階層あり/なしどちらの投稿タイプも "Add New"。この文字列を国際化対応にするには、gettext context を使って、投稿タイプをマッチさせてください。例: _x('Add New' => '', 'product');
// 'add_new_item' => '', // 「新規〜を追加」のテキスト。デフォルトは "Add New Post" または "Add New Page"。
// 'edit_item' => '', // 「〜を編集」のテキスト。管理画面で、このラベルはカスタム投稿の編集パネルのメインヘッダーに表示されます。デフォルトは階層なしなら "Edit Post"、階層あり投稿タイプなら "Edit Page"。
// 'new_item' => '', // 「新規〜」のテキスト。デフォルトは階層なしなら "New Post"、階層あり投稿タイプなら "New Page"。
// 'view_item' => '', // 「〜を表示」のテキスト。デフォルトは "View Post" または "View Page"。
// 'search_items' => '', // 「〜を検索」のテキスト。デフォルトは "Search Posts" または "Search Pages"。
// 'not_found' => '', // 「〜が見つかりませんでした」のテキスト。デフォルトは "No posts found" または "No pages found"。
// 'not_found_in_trash' => '', // 「ゴミ箱内に〜が見つかりませんでした」のテキスト。デフォルトは "No posts found in Trash" または "No pages found in Trash"。
// 'parent_item_colon' => '' // 「親〜:」のテキスト。階層あり投稿タイプのときのみ使われる。デフォルトは "Parent Page"。
);
// -------------------------------------------------------------------------
$supports_arr = array(
'title', // タイトル
'editor', // 内容の編集
'author', // 作成者
'thumbnail', // アイキャッチ画像 ※1
'excerpt', // 抜粋
'trackbacks', // トラックバック送信
'custom-fields', // カスタムフィールド
'comments', // コメントの他、編集画面にコメント数のバルーンを表示する
'revisions', // リビジョンを保存する
'page-attributes', // メニューの順序 ※2
'post-formats' // 投稿のフォーマットを追加 ※3
);
// ※1 テーマがpost-thumbnailsをサポートしていること
// ※2 「親〜」オプションを表示するために hierarchical が true であること
// ※3 投稿フォーマットに関しては http://wpdocs.sourceforge.jp/%E6%8A%95%E7%A8%BF%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88
//   totoriを利用している場合、投稿フォーマットはsrc/php/func_settiong.phpで設定
// -------------------------------------------------------------------------
register_post_type('custom_post',array(
'description' => '', // 投稿タイプの簡潔な説明
'public' => true, // 投稿タイプをパブリックにするかどうか。true の場合、管理画面とフロントエンド(ユーザー)の両方から利用可能。
'exclude_from_search' => false, // この投稿タイプの投稿をフロントエンドの検索結果から除外するかどうか。
'publicly_queryable' => true, // フロントエンドで post_type クエリが実行可能かどうか。これは parse_request() の一部として実行される。
'show_ui' => true, // この投稿タイプを管理するデフォルト UI を生成するかどうか。
'show_in_nav_menus' => true, // 管理画面にこの投稿タイプを表示するかどうか。表示するには show_ui が true でなければならない。
'show_in_admin_bar' => false, // この投稿タイプを WordPress の管理バーから使えるようにするかどうか。
'menu_position' => null, // この投稿タイプが表示されるメニューの位置。表示するには show_in_menu が true でなければならない。 ※1
'menu_icon' => null, // このメニューで使用するアイコンの URL、または Dashicons のアイコンの名前。※2
'capability_type' => 'post', // 閲覧/編集/削除の権限を構築する文字列
// // 'capabilities' => '', // この投稿タイプの権限の配列
'map_meta_cap' => null, // WordPress が持つデフォルトのメタ権限処理を使用するかどうか。
'hierarchical' => false, // この投稿タイプが階層を持つ(例:固定ページ)かどうか
// // 'register_meta_box_cb' => , // 編集フォームのメタボックスをセットアップするのに呼び出すコールバック関数を指定する(関数名を文字列で指定)
'has_archive' => true, // この投稿タイプのアーカイブを有効にする。※3
'rewrite' => true, // この投稿タイプのパーマリンクのリライト方法を変更する ※4
'query_var' => false, // この投稿に使用する query_var キーの名前。
'can_export' => true, // この投稿タイプをエクスポート可能かどうか。
'labels' => $label_arr,
'supports' => $supports_arr
));
// ※1 番号
// 5 - 投稿の下
// 10 - メディアの下
// 15 - リンクの下
// 20 - 固定ページの下
// 25 - コメントの下
// 60 - 最初の区切りの下(コメントの下に区切りがある)
// 65 - プラグインの下
// 70 - ユーザーの下
// 75 - ツールの下
// 80 - 設定の下
// 100 - 二つ目の区切りの下(設定の下に区切りがある)
// ※2 https://developer.wordpress.org/resource/dashicons/#tagcloud
// ※3 リライトが有効になっている時は、適切なリライトルールが生成される。rewrite オプションを指定して、使用されるスラッグを変更することもできる。
// ※4 配列内容
// 'slug' => 文字列 パーマリンク構造のスラッグを変更。デフォルトは $post_type の値。翻訳可能であること。
// 'with_front' => 真偽値 Should the permalink structure be prepended with the front base. (例:パーマリンク構造が /blog/ である場合、false ならリンクは /news/、true なら /blog/news/ になる。)デフォルトは true
// 'feeds' => 真偽値 この投稿タイプについてフィードのパーマリンク構造を作成する。デフォルトは has_archive 引数の値
// 'pages' => 真偽値 パーマリンク構造をページ送りに対応させる。デフォルトは true
// 'ep_mask' => 定数 バージョン 3.4 以降 この投稿タイプに endpoint マスクを割り当てる。詳しくは Trac チケット 19275 および Make WordPress Plugins ブログの endpoint を要約した投稿を参照。
// これを指定せず permalink_epmask がセットされていると、permalink_epmask の値が使われる。
// これを指定せず permalink_epmask もセットされていなければ、デフォルトの EP_PERMALINK になる。
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.