Reputation: 1
I am using a theme for my Wordpress site:
THEME: https://themeforest.net/item/prague-architecture-and-interior-design-wordpress-theme/19618927
Site: RainProPixel.com
The theme has several post types, but I would like to add more.
I've added a new one called "Training" to "Post-type.php":
<?php
/*
* Portfolio post type.
*/
function register_custom_post_type() {
$services_url_slug = cs_get_option('services_url_slug') ? cs_get_option('services_url_slug') : 'services-item';
$services_category_slug = cs_get_option('services_category_slug') ? cs_get_option('services_category_slug') : 'services-category';
// New Post Type
register_post_type( 'services',
array(
'labels' => array(
'name' => esc_html__( 'Services','prague-plugins'),
'singular_name' => esc_html__( 'Service','prague-plugins')
),
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', ),
'menu_icon' => plugins_url( 'assets/repairing.png' , __FILE__ ),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => $services_url_slug),
)
);
// New Taxonomy
register_taxonomy(
'service-category',
'services',
array(
'label' => esc_html__( 'Categories','prague-plugins'),
'rewrite' => array( 'slug' => $services_category_slug ),
'hierarchical' => true,
)
);
$training_url_slug = cs_get_option('training_url_slug') ? cs_get_option('training_url_slug') : 'training-item';
$training_category_slug = cs_get_option('training_category_slug') ? cs_get_option('training_category_slug') : 'training-category';
register_post_type( 'training',
array(
'labels' => array(
'name' => esc_html__( 'Training','prague-plugins'),
'singular_name' => esc_html__( 'Training','prague-plugins')
),
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', ),
'menu_icon' => plugins_url( 'assets/repairing.png' , __FILE__ ),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => $training_url_slug),
)
);
// New Taxonomy
register_taxonomy(
'training-category',
'training',
array(
'label' => esc_html__( 'Categories','prague-plugins'),
'rewrite' => array( 'slug' => $training_category_slug ),
'hierarchical' => true,
)
);
// New Post Type
$projects_url_slug = cs_get_option('projects_slug') ? cs_get_option('projects_slug') : 'projects-item';
$projects_category_url_slug = cs_get_option('projects_category_slug') ? cs_get_option('projects_category_slug') : 'projects-category';
register_post_type( 'projects',
array(
'labels' => array(
'name' => esc_html__( 'Projects','prague-plugins'),
'singular_name' => esc_html__( 'Project','prague-plugins')
),
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ),
'menu_icon' => plugins_url( 'assets/projects.png' , __FILE__ ),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => $projects_url_slug),
)
);
// New Taxonomy
register_taxonomy(
'projects-category',
'projects',
array(
'label' => esc_html__( 'Categories','prague-plugins'),
'rewrite' => array( 'slug' => $projects_category_url_slug ),
'hierarchical' => true,
)
);
// New Post Type
register_post_type( 'books',
array(
'labels' => array(
'name' => esc_html__( 'Books','prague-plugins'),
'singular_name' => esc_html__( 'Book','prague-plugins')
),
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ),
'menu_icon' => plugins_url( 'assets/agenda.png' , __FILE__ ),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'books-item'),
)
);
// New Taxonomy
register_taxonomy(
'books-category',
'books',
array(
'label' => esc_html__( 'Categories','prague-plugins'),
'rewrite' => array( 'slug' => 'books-category' ),
'hierarchical' => true,
)
);
// New Post Type
register_post_type( 'media',
array(
'labels' => array(
'name' => esc_html__( 'Media','prague-plugins'),
'singular_name' => esc_html__( 'Media item','prague-plugins')
),
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ),
'menu_icon' => plugins_url( 'assets/magazine.png' , __FILE__ ),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'media-item'),
)
);
// New Taxonomy
register_taxonomy(
'media-category',
'media',
array(
'label' => esc_html__( 'Categories','prague-plugins'),
'rewrite' => array( 'slug' => 'media-category' ),
'hierarchical' => true,
)
);
// New Post Type
register_post_type( 'exihibitions',
array(
'labels' => array(
'name' => esc_html__( 'Exihibitions','prague-plugins'),
'singular_name' => esc_html__( 'Exihibition','prague-plugins')
),
'menu_icon' => plugins_url( 'assets/museum.png' , __FILE__ ),
'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail' ),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'exihibitions-item'),
)
);
// New Taxonomy
register_taxonomy(
'exihibitions-category',
'exihibitions',
array(
'label' => esc_html__( 'Categories','prague-plugins'),
'rewrite' => array( 'slug' => 'exihibitions-category' ),
'hierarchical' => true,
)
);
}
add_action( 'init', 'register_custom_post_type', 0);
The post type shows up in my Wordpress Admin Menu:
I can create new posts:
My problem is that other POST TYPES that came with the theme have an additional set of options that I need to be able to edit also, called "Service Options":
Service Options as seen on other post type
The DIV ID for it is called, "service_post_options" and I can't find where that's created on the site.
Does anyone have any clue what I'm missing here to make the new post type match the ones that came with the theme?
Upvotes: 0
Views: 245
Reputation: 299
For creating custom post type:
/ custom posttype /
function my_first_custom_post_type() {
// Set UI labels for Custom Post Type
$labels = array(
'name' => _x( 'Producten', 'Post Type General Name', 'twentythirteen' ),
'singular_name' => _x( 'Producten', 'Post Type Singular Name', 'twentythirteen' ),
'menu_name' => __( 'Producten', 'twentythirteen' ),
'parent_item_colon' => __( 'Parent Producten', 'twentythirteen' ),
'all_items' => __( 'All Producten', 'twentythirteen' ),
'view_item' => __( 'View Producten', 'twentythirteen' ),
'add_new_item' => __( 'Add New Producten', 'twentythirteen' ),
'add_new' => __( 'Add New', 'twentythirteen' ),
'edit_item' => __( 'Edit Producten', 'twentythirteen' ),
'update_item' => __( 'Update Producten', 'twentythirteen' ),
'search_items' => __( 'Search Producten', 'twentythirteen' ),
'not_found' => __( 'Not Found', 'twentythirteen' ),
'not_found_in_trash' => __( 'Not found in Trash', 'twentythirteen' ),
);
// Set other options for Custom Post Type
$args = array(
'label' => __( 'Producten', 'twentythirteen' ),
'description' => __( 'Producten news and reviews', 'twentythirteen' ),
'labels' => $labels,
// Features this CPT supports in Post Editor
'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
// You can associate this CPT with a taxonomy or custom taxonomy.
'taxonomies' => array( 'genres' ),
/* A hierarchical CPT is like Pages and can have
* Parent and child items. A non-hierarchical CPT
* is like Posts.
*/
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
);
// Registering your Custom Post Type
register_post_type( 'Producten', $args );
}
/* Hook into the 'init' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/
add_action( 'init', 'my_first_custom_post_type', 0 );
Here I have created a custom post in the name of "Producten". It worked for me , try it out.
Upvotes: 1