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');