function initstart() { register_post_type( 'slug',/* 投稿タイプのslug */ array( 'labels' => array( 'name' => __( '表示名' ), 'singular_name' => __( '表示名' ) ), 'public' => true, 'menu_position' => 8, // ,メニュー表示場所 'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'page-attributes') // 編集時に有効にする項目 ) ); } add_action( 'init', 'initstart' );
カスタム投稿にタクソノミー(カテゴリー)を追加する場合
function initstart() { register_taxonomy( 'slug_cate', // 追加するタクソノミーのslug 'slug', // 追加する投稿タイプのslug array( 'hierarchical' => true, 'update_count_callback' => '_update_post_term_count', 'label' => '表示名', // 表示される名前 'singular_label' => '表示名', // 表示される名前 'public' => true, 'show_ui' => true ) ); } add_action( 'init', 'initstart' );最低限、これだけ設定すれば使用ができるようになります。
実際にはこの二つはひとつのfunctionに書くと思います。
カスタムフィールドの入力エリア追加
function add_post_fields() { add_meta_box( 'slug', 'スラッグ', 'insert_custom_fields', 'slug', 'normal'); } add_action('admin_menu', 'add_post_fields'); // カスタムフィールドの入力エリア function insert_custom_fields() { global $post; if ($post -> post_type == 'slug') { echo '
'; } } // カスタムフィールドの値を保存 function save_custom_fields( $post_id ) { if(!empty($_POST['inputname'])){ update_post_meta($post_id, 'inputname', $_POST['inputname'] ); }else{ delete_post_meta($post_id, 'inputname'); } } add_action('save_post', 'save_custom_fields');
編集時の「投稿の編集」等の文言を変えたい場合
function initstart() { global $wp_post_types; $labels = &$wp_post_types['slug']->labels; $labels->all_items = '投稿一覧'; // 投稿一覧 $labels->add_new = '新規追加'; // 新規追加 $labels->add_new_item = '新規投稿を追加'; // 新規投稿を追加 $labels->edit_item = '投稿の編集'; // 投稿の編集 $labels->search_items = '投稿を検索'; // 投稿を検索 $labels->not_found = '投稿が見つかりませんでした。'; // 投稿が見つかりませんでした。 $labels->not_found_in_trash = 'ゴミ箱内に投稿が見つかりませんでした。'; // ゴミ箱内に投稿が見つかりませんでした。 $labels->featured_image = 'アイキャッチ画像'; // アイキャッチ画像 $labels->set_featured_image = 'アイキャッチ画像を設定'; // アイキャッチ画像を設定 $labels->remove_featured_image = 'アイキャッチ画像を削除'; // アイキャッチ画像を削除 $labels->use_featured_image = 'アイキャッチ画像として使用'; // アイキャッチ画像として使用 } add_action( 'init', 'initstart' );
カスタム投稿一覧表示の時に項目を追加、変更したい場合
function slug_column($columns){ $columns = array( 'title' => 'タイトル', 'slug' => 'スラッグ', 'date' => '日時' ); return $columns; } add_filter( 'manage_edit-slug_columns', 'slug_column');