Sean Walker
Sean Walker

Reputation: 1

Adding a CUSTOM POST TYPE to a Wordpress site doesn't include all the options the theme has in other POST TYPES

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:

Wordpress Admin Menu

I can create new posts:

Creating A New Post

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.

DIV ID in inspector

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

Answers (1)

Reikyal
Reikyal

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

Related Questions