2018年2月27日火曜日

WP カスタム投稿の設定

初期設定部分
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');

0 件のコメント:

コメントを投稿