Advertisement
martcol

CPT Plugin

Apr 2nd, 2013
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /*
  3. Plugin Name: Listings
  4. Plugin URI: http://martcol.co.uk/
  5. Description: Declares a plugin that will create a custom post type displaying Neighbourgood Listings.
  6. Version: 1.0
  7. Author: Martin Coleman on the back of the WP Generator
  8. Author URI: http://martcol.co.uk/
  9. License: GPLv2
  10. */
  11. //Custom Post Type for Listing
  12.  
  13. if ( ! function_exists('nbrgd_listing') ) {
  14.  
  15. // Register Custom Post Type
  16. function nbrgd_listing() {
  17.     $labels = array(
  18.         'name'                => _x( 'Listings', 'Post Type General Name', 'text_domain' ),
  19.         'singular_name'       => _x( 'Listing', 'Post Type Singular Name', 'text_domain' ),
  20.         'menu_name'           => __( 'NBRGD Listing', 'text_domain' ),
  21.         'parent_item_colon'   => __( 'Parent Organisation', 'text_domain' ),
  22.         'all_items'           => __( 'Listings', 'text_domain' ),
  23.         'view_item'           => __( 'View Listings', 'text_domain' ),
  24.         'add_new_item'        => __( 'Add New Listing', 'text_domain' ),
  25.         'add_new'             => __( 'New Listing', 'text_domain' ),
  26.         'edit_item'           => __( 'Edit Listing', 'text_domain' ),
  27.         'update_item'         => __( 'Update Listing', 'text_domain' ),
  28.         'search_items'        => __( 'Search Listings', 'text_domain' ),
  29.         'not_found'           => __( 'Listings Not Found', 'text_domain' ),
  30.         'not_found_in_trash'  => __( 'No Listings in Trash', 'text_domain' ),
  31.     );
  32.  
  33.     $args = array(
  34.         'label'               => __( 'Listing', 'text_domain' ),
  35.         'description'         => __( 'Neighbourgood Listing', 'text_domain' ),
  36.         'labels'              => $labels,
  37.         'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'trackbacks', 'custom-fields', 'page-attributes', ),
  38.         'taxonomies'          => array( 'post_type', 'organisation', 'organisation_sub', 'region' ),//, 'region', 'sub_type' 'category',
  39.         'hierarchical'        => true,
  40.         'public'              => true,
  41.         'show_ui'             => true,
  42.         'show_in_menu'        => true,
  43.         'show_in_nav_menus'   => true,
  44.         'show_in_admin_bar'   => true,
  45.         'menu_position'       => 10,
  46.         'menu_icon'           => '/img/icon.img',
  47.         'can_export'          => true,
  48.         'has_archive'         => true,
  49.         'exclude_from_search' => false,
  50.         'publicly_queryable'  => true,
  51.         'capability_type'     => 'post',
  52.     );
  53.  
  54.     register_post_type( 'listing', $args );
  55. }
  56.  
  57. // Hook into the 'init' action
  58. add_action( 'init', 'nbrgd_listing', 0 );
  59.  
  60. }
  61. // Register Custom Taxonomy
  62. if ( ! function_exists('custom_taxonomy_listing') ) {
  63.  
  64. // Register Custom Taxonomy
  65. function custom_taxonomy_listing()  {
  66.     $labels = array(
  67.         'name'                       => _x( 'Organisation Types', 'Taxonomy General Name', 'text_domain' ),
  68.         'singular_name'              => _x( 'Organisation Type', 'Taxonomy Singular Name', 'text_domain' ),
  69.         'menu_name'                  => __( 'Organisation Type', 'text_domain' ),
  70.         'all_items'                  => __( 'All Organisation Types', 'text_domain' ),
  71.         'parent_item'                => __( 'Parent Organisation Type', 'text_domain' ),
  72.         'parent_item_colon'          => __( 'Parent Organisation', 'text_domain' ),
  73.         'new_item_name'              => __( 'New Organisation Type', 'text_domain' ),
  74.         'add_new_item'               => __( 'Add New Organisation Type', 'text_domain' ),
  75.         'edit_item'                  => __( 'Edit Organisation Type', 'text_domain' ),
  76.         'update_item'                => __( 'Update Organisation Type', 'text_domain' ),
  77.         'separate_items_with_commas' => __( 'Separate Organisation Types with commas', 'text_domain' ),
  78.         'search_items'               => __( 'Search Organisation Type', 'text_domain' ),
  79.         'add_or_remove_items'        => __( 'Add or remove Organisation Type', 'text_domain' ),
  80.         'choose_from_most_used'      => __( 'Choose from the most used Organisation Type', 'text_domain' ),
  81.     );
  82.  
  83.     $args = array(
  84.         'labels'                     => $labels,
  85.         'hierarchical'               => true,
  86.         'public'                     => true,
  87.         'show_ui'                    => true,
  88.         'show_admin_column'          => true,
  89.         'show_in_nav_menus'          => true,
  90.         'show_tagcloud'              => true,
  91.     );
  92.  
  93.     register_taxonomy( 'organisation', 'listing', $args );
  94.  
  95.     $labels = array(
  96.         'name'                       => _x( 'Organisation Sub-Types', 'Taxonomy General Name', 'text_domain' ),
  97.         'singular_name'              => _x( 'Organisation Sub-Type', 'Taxonomy Singular Name', 'text_domain' ),
  98.         'menu_name'                  => __( 'Organisation Sub-Type', 'text_domain' ),
  99.         'all_items'                  => __( 'All Organisation Sub-Types', 'text_domain' ),
  100.         'parent_item'                => __( 'Parent Organisation Sub-Type', 'text_domain' ),
  101.         'parent_item_colon'          => __( 'Parent Organisation', 'text_domain' ),
  102.         'new_item_name'              => __( 'New Organisation Sub-Type', 'text_domain' ),
  103.         'add_new_item'               => __( 'Add New Organisation Sub-Type', 'text_domain' ),
  104.         'edit_item'                  => __( 'Edit Organisation Sub-Type', 'text_domain' ),
  105.         'update_item'                => __( 'Update Organisation Sub-Type', 'text_domain' ),
  106.         'separate_items_with_commas' => __( 'Separate Organisation vTypes with commas', 'text_domain' ),
  107.         'search_items'               => __( 'Search Organisation Sub-Type', 'text_domain' ),
  108.         'add_or_remove_items'        => __( 'Add or remove Organisation Sub-Type', 'text_domain' ),
  109.         'choose_from_most_used'      => __( 'Choose from the most used Organisation Sub-Type', 'text_domain' ),
  110.     );
  111.  
  112.     $args = array(
  113.         'labels'                     => $labels,
  114.         'hierarchical'               => true,
  115.         'public'                     => true,
  116.         'show_ui'                    => true,
  117.         'show_admin_column'          => true,
  118.         'show_in_nav_menus'          => true,
  119.         'show_tagcloud'              => true,
  120.     );
  121.  
  122.     register_taxonomy( 'organisation_sub', 'listing', $args );
  123.  
  124.  
  125.     $labels = array(
  126.         'name'                       => _x( 'Regions', 'Taxonomy General Name', 'text_domain' ),
  127.         'singular_name'              => _x( 'Region', 'Taxonomy Singular Name', 'text_domain' ),
  128.         'menu_name'                  => __( 'Region', 'text_domain' ),
  129.         'all_items'                  => __( 'All Regions', 'text_domain' ),
  130.         'parent_item'                => __( 'Parent Organisation Sub-Type', 'text_domain' ),
  131.         'new_item_name'              => __( 'New Region', 'text_domain' ),
  132.         'add_new_item'               => __( 'Add New Region', 'text_domain' ),
  133.         'edit_item'                  => __( 'Edit Region', 'text_domain' ),
  134.         'update_item'                => __( 'Update Region', 'text_domain' ),
  135.         'separate_items_with_commas' => __( 'Separate Regions with commas', 'text_domain' ),
  136.         'search_items'               => __( 'Search Regions', 'text_domain' ),
  137.         'add_or_remove_items'        => __( 'Add or remove Region', 'text_domain' ),
  138.         'choose_from_most_used'      => __( 'Choose from the most used Region', 'text_domain' ),
  139.     );
  140.  
  141.     $args = array(
  142.         'labels'                     => $labels,
  143.         'hierarchical'               => true,
  144.         'public'                     => true,
  145.         'show_ui'                    => true,
  146.         'show_admin_column'          => true,
  147.         'show_in_nav_menus'          => true,
  148.         'show_tagcloud'              => true,
  149.     );
  150.  
  151.     register_taxonomy( 'region', 'listing', $args );
  152. }
  153.  
  154.  
  155.  
  156. // Hook into the 'init' action
  157. add_action( 'init', 'custom_taxonomy_listing', 0 );
  158.  
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement