G2A Many GEOs
SHARE
TWEET

custom-type.php

danfolt Jul 4th, 2013 176 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. if ( function_exists( 'add_theme_support' ) ) {
  4.         add_theme_support( 'post-thumbnails' );
  5.         set_post_thumbnail_size( 280, 210, true ); // Normal post thumbnails
  6.         add_image_size( 'screen-shot', 720, 540 ); // Full size screen
  7. }
  8.  
  9. add_action('init', 'custom_register');  
  10.  
  11. function custom_register() {  
  12. register_post_type(
  13.         'portfolio', array(
  14.                 'label' => 'Portfolio',
  15.                 'description' => '',
  16.                 'public' => true,
  17.                 'show_ui' => true,
  18.                 'show_in_menu' => true,
  19.                 'map_meta_cap' => true,
  20.                 'capability_type' => 'post',
  21.                 'hierarchical' => true,
  22.                 'rewrite' => array(
  23.                         'slug' => 'portfolio'),
  24.                 'query_var' => true,
  25.                 'exclude_from_search' => false,
  26.                 'menu_position' => 25,
  27.                 'supports' => array(
  28.                         'title',
  29.                         'editor',
  30.                         'custom-fields',
  31.                         'revisions',
  32.                         'thumbnail',
  33.                         'comments',
  34.                         'author',
  35.                         'page-attributes',),
  36.                 'taxonomies' => array(
  37.                         'styles',),
  38.                 'labels' => array (
  39.                         'name' => 'Portfolios',
  40.                         'singular_name' => 'Portfolio',
  41.                         'menu_name' => 'Portfolios',
  42.                         'add_new' => 'Add Portfolio',
  43.                         'add_new_item' => 'Add New Portfolio',
  44.                         'edit' => 'Edit',
  45.                         'edit_item' => 'Edit Portfolio',
  46.                         'new_item' => 'New Portfolio',
  47.                         'view' => 'View Portfolio',
  48.                         'view_item' => 'View Portfolio',
  49.                         'search_items' => 'Search Portfolios',
  50.                         'not_found' => 'No Portfolios Found',
  51.                         'not_found_in_trash' => 'No Portfolios Found in Trash',
  52.                         'parent' => 'Parent Portfolio',),
  53.         )
  54. );      
  55. register_post_type(
  56.         'blacklist', array(
  57.                 'label' => 'Blacklist',
  58.                 'description' => '',
  59.                 'public' => true,
  60.                 'show_ui' => true,
  61.                 'show_in_menu' => true,
  62.                 'map_meta_cap' => true,
  63.                 'capability_type' => 'post',
  64.                 'hierarchical' => true,
  65.                 'rewrite' => array(
  66.                         'slug' => 'blacklist'),
  67.                 'query_var' => true,
  68.                 'exclude_from_search' => false,
  69.                 'menu_position' => 25,
  70.                 'supports' => array(
  71.                         'title',
  72.                         'editor',
  73.                         'custom-fields',
  74.                         'revisions',
  75.                         'thumbnail',
  76.                         'comments',
  77.                         'author',
  78.                         'page-attributes',),
  79.                 'taxonomies' => array(
  80.                         'styles',),
  81.                 'labels' => array (
  82.                         'name' => 'Blacklist',
  83.                         'singular_name' => 'Blacklist',
  84.                         'menu_name' => 'Blacklist',
  85.                         'add_new' => 'Add Blacklist',
  86.                         'add_new_item' => 'Add New Blacklist',
  87.                         'edit' => 'Edit',
  88.                         'edit_item' => 'Edit Blacklist',
  89.                         'new_item' => 'New Blacklist',
  90.                         'view' => 'View Blacklist',
  91.                         'view_item' => 'View Blacklist',
  92.                         'search_items' => 'Search Blacklist',
  93.                         'not_found' => 'No Blacklist Found',
  94.                         'not_found_in_trash' => 'No Blacklist Found in Trash',
  95.                         'parent' => 'Parent Blacklist',),
  96.         )
  97. );
  98. register_post_type(
  99.         'applicant', array(
  100.                 'label' => 'Applicants',
  101.                 'description' => '',
  102.                 'public' => true,
  103.                 'show_ui' => true,
  104.                 'show_in_menu' => true,
  105.                 'map_meta_cap' => true,
  106.                 'capability_type' => 'post',
  107.                 'hierarchical' => true,
  108.                 'rewrite' => array(
  109.                         'slug' => ''),
  110.                 'query_var' => true,
  111.                 'exclude_from_search' => false,
  112.                 'menu_position' => 25,
  113.                 'supports' => array(
  114.                         'title',
  115.                         'editor',
  116.                         'custom-fields',
  117.                         'revisions',
  118.                         'thumbnail',
  119.                         'author',
  120.                         'comments',
  121.                         'page-attributes',),
  122.                 'taxonomies' => array(
  123.                         'styles',),
  124.                 'labels' => array (
  125.                         'name' => 'Applicants',
  126.                         'singular_name' => 'Applicant',
  127.                         'menu_name' => 'Applicants',
  128.                         'add_new' => 'Add Applicant',
  129.                         'add_new_item' => 'Add New Applicant',
  130.                         'edit' => 'Edit',
  131.                         'edit_item' => 'Edit Applicant',
  132.                         'new_item' => 'New Applicant',
  133.                         'view' => 'View Applicant',
  134.                         'view_item' => 'View Applicant',
  135.                         'search_items' => 'Search Applicants',
  136.                         'not_found' => 'No Applicants Found',
  137.                         'not_found_in_trash' => 'No Applicants Found in Trash',
  138.                         'parent' => 'Parent Applicant',),
  139.         )
  140. );
  141. register_post_type(
  142.         'employer', array(
  143.                 'label' => 'Employers',
  144.                 'description' => '',
  145.                 'public' => true,
  146.                 'show_ui' => true,
  147.                 'show_in_menu' => true,
  148.                 'map_meta_cap' => true,
  149.                 'capability_type' => 'post',
  150.                 'hierarchical' => true,
  151.                 'rewrite' => array(
  152.                         'slug' => 'employer'),
  153.                 'query_var' => true,
  154.                 'exclude_from_search' => false,
  155.                 'menu_position' => 25,
  156.                 'supports' => array(
  157.                         'title',
  158.                         'editor',
  159.                         'custom-fields',
  160.                         'revisions',
  161.                         'thumbnail',
  162.                         'author',
  163.                         'comments',
  164.                         'page-attributes',),
  165.                 'taxonomies' => array(
  166.                         'styles',),
  167.                 'labels' => array (
  168.                         'name' => 'Employers',
  169.                         'singular_name' => 'Employer',
  170.                         'menu_name' => 'Employers',
  171.                         'add_new' => 'Add Employer',
  172.                         'add_new_item' => 'Add New Employer',
  173.                         'edit' => 'Edit',
  174.                         'edit_item' => 'Edit Employer',
  175.                         'new_item' => 'New Employer',
  176.                         'view' => 'View Employer',
  177.                         'view_item' => 'View Employer',
  178.                         'search_items' => 'Search Employers',
  179.                         'not_found' => 'No Employers Found',
  180.                         'not_found_in_trash' => 'No Employers Found in Trash',
  181.                         'parent' => 'Parent Employer',),
  182.         )
  183. );
  184. }
  185.  
  186. // custom taxonomy for portfolio blacklist employer and applicant
  187. register_taxonomy('job-type', array('portfolio', 'blacklist', 'employer', 'applicant'),  array(
  188.                 'label' => __('Job Category'),
  189.                 'singular_label' => __('Job Category'),
  190.                 'hierarchical' => true,
  191.                 'query_var' => 'job-type',
  192.                 'rewrite' => false,
  193.                 'public' => true,
  194.                 'show_ui' => true,
  195.                 'show_in_nav_menus' => false,
  196.         ));
  197.        
  198. // custom taxonomy for portfolio blacklist employer and applicant
  199. register_taxonomy('province', array('portfolio', 'blacklist', 'employer', 'applicant'),  array(
  200.                 'label' => __('Provincia'),
  201.                 'singular_label' => __('Provincia'),
  202.                 'hierarchical' => true,
  203.                 'query_var' => 'province',
  204.                 'rewrite' => false,
  205.                 'public' => true,
  206.                 'show_ui' => true,
  207.                 'show_in_nav_menus' => false,
  208.         ));
  209.        
  210. // custom taxonomy for portfolio blacklist employer and applicant
  211. register_taxonomy('location', array('portfolio', 'blacklist', 'employer', 'applicant'),  array(
  212.                 'label' => __('Location'),
  213.                 'singular_label' => __('Location'),
  214.                 'hierarchical' => true,
  215.                 'query_var' => 'location',
  216.                 'rewrite' => false,
  217.                 'public' => true,
  218.                 'show_ui' => true,
  219.                 'show_in_nav_menus' => false,
  220.         ));
  221.  
  222.  
  223. add_filter( 'map_meta_cap', 'my_map_meta_cap', 10, 4 );
  224.  
  225. function my_map_meta_cap( $caps, $cap, $user_id, $args ) {
  226.  
  227.         /* If editing, deleting, or reading a portfolio, get the post and post type object. */
  228.         if ( 'edit_portfolio' == $cap || 'delete_portfolio' == $cap || 'read_portfolio' == $cap ) {
  229.                 $post = get_post( $args[0] );
  230.                 $post_type = get_post_type_object( $post->post_type );
  231.  
  232.                 /* Set an empty array for the caps. */
  233.                 $caps = array();
  234.         }
  235.  
  236.         /* If editing a portfolio, assign the required capability. */
  237.         if ( 'edit_portfolio' == $cap ) {
  238.                 if ( $user_id == $post->post_author )
  239.                         $caps[] = $post_type->cap->edit_posts;
  240.                 else
  241.                         $caps[] = $post_type->cap->edit_others_posts;
  242.         }
  243.  
  244.         /* If deleting a portfolio, assign the required capability. */
  245.         elseif ( 'delete_portfolio' == $cap ) {
  246.                 if ( $user_id == $post->post_author )
  247.                         $caps[] = $post_type->cap->delete_posts;
  248.                 else
  249.                         $caps[] = $post_type->cap->delete_others_posts;
  250.         }
  251.  
  252.         /* If reading a private portfolio, assign the required capability. */
  253.         elseif ( 'read_portfolio' == $cap ) {
  254.  
  255.                 if ( 'private' != $post->post_status )
  256.                         $caps[] = 'read';
  257.                 elseif ( $user_id == $post->post_author )
  258.                         $caps[] = 'read';
  259.                 else
  260.                         $caps[] = $post_type->cap->read_private_posts;
  261.         }
  262.  
  263.         /* Return the capabilities required by the user. */
  264.         return $caps;
  265. }
  266.  
  267.  
  268. add_action("admin_init", "portfolio_meta_box");  
  269.  
  270.  
  271. function portfolio_meta_box(){  
  272.     add_meta_box("projInfo-meta", "Project Options", "portfolio_meta_options", "portfolio", "side", "low");  
  273. }  
  274.  
  275.  
  276. function portfolio_meta_options(){  
  277.         global $post;  
  278.         if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id;
  279.         $custom = get_post_custom($post->ID);  
  280.         $link = $custom["projLink"][0];  
  281. ?>  
  282.     <label>Link:</label><input name="projLink" value="<?php echo $link; ?>" />  
  283. <?php  
  284.     }  
  285.    
  286. add_action('save_post', 'save_project_link');
  287.  
  288. function save_project_link(){  
  289.     global $post;  
  290.    
  291.     if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ){
  292.                 return $post_id;
  293.         }else{
  294.         update_post_meta($post->ID, "projLink", $_POST["projLink"]);
  295.     }
  296. }  
  297.  
  298. add_filter("manage_edit-portfolio_columns", "project_edit_columns");  
  299.  
  300. function project_edit_columns($columns){  
  301.         $columns = array(  
  302.             "cb" => "<input type=\"checkbox\" />",  
  303.             "title" => "Project",  
  304.             "description" => "Description",  
  305.             "link" => "Link",  
  306.             "type" => "Type of Project",  
  307.         );  
  308.  
  309.         return $columns;  
  310. }  
  311.  
  312. add_action("manage_posts_custom_column",  "project_custom_columns");
  313.  
  314. function project_custom_columns($column){  
  315.         global $post;  
  316.         switch ($column)  
  317.         {  
  318.             case "description":  
  319.                 the_excerpt();  
  320.                 break;  
  321.             case "link":  
  322.                 $custom = get_post_custom();  
  323.                 echo $custom["projLink"][0];  
  324.                 break;  
  325.             case "type":  
  326.                 echo get_the_term_list($post->ID, 'project-type', '', ', ','');  
  327.                 break;  
  328.         }  
  329. }  
  330.  
  331. ?>
RAW Paste Data
Ledger Nano X - The secure hardware wallet
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top