Guest

Untitled

By: a guest on Mar 19th, 2010  |  syntax: PHP  |  size: 3.56 KB  |  hits: 94  |  expires: Never
download  |  raw  |  embed  |  report abuse
This paste has a previous version, view the difference. Copied
  1. <?php
  2. /*
  3. Plugin Name: Course Post Types
  4. */
  5.  
  6. /* Content Types */
  7.  
  8. add_action('init', 'post_type_courses');
  9.  
  10. function post_type_courses() {
  11.         register_post_type(
  12.                 'course',
  13.                 array('label' => __('Courses'),
  14.                                 'description' => __('Individual course data'),
  15.                         'public' => true,
  16.                         'show_ui' => true,
  17.                                 'register_meta_box_cb' => 'course_meta_boxes',
  18.                         'supports' => array(
  19.                                                         'title',
  20.                                                         'editor',
  21.                                                         'author',
  22.                                     'excerpts',
  23.                                     'custom-fields',
  24.                                     'revisions',)
  25.                            )
  26.                  );
  27.         register_taxonomy_for_object_type('college', 'course');
  28. }
  29.  
  30. /* Taxonomies */
  31.  
  32. add_action('init', 'create_course_series_tax');
  33. register_activation_hook( __FILE__, 'activate_course_series_tax' );
  34.  
  35. function activate_course_series_tax() {
  36.         create_course_series_tax();
  37.         $GLOBALS['wp_rewrite']->flush_rules();
  38. }
  39.  
  40. function create_course_series_tax() {
  41.                 register_taxonomy(
  42.                 'college',
  43.                 'course',
  44.                 array(
  45.                         'label' => __('Colleges'),
  46.                         'singular_label' => __('College'),
  47.                         'hierarchical' => true,
  48.                 )
  49.         );
  50. }
  51.  
  52. /* Custom Fields */
  53.  
  54. add_action( 'save_post', 'save_course_meta_data' );
  55.  
  56. function course_meta_boxes() {
  57.         add_meta_box( 'course_code_meta', __('Course Code'), 'course_code_meta_box', 'course', 'normal', 'high' );
  58.         add_meta_box( 'instructor_meta', __('Instructor'), 'instructor_meta_box', 'course', 'normal', 'high' );
  59. }
  60.  
  61. function course_code_meta_box() {
  62.         global $post;
  63. if ( function_exists('wp_nonce_field') )
  64.         wp_nonce_field('course_code_nonce' . 'course_code');
  65.         <label for="_course_code">Course Code (e.g. ENGL 101)</label>
  66.         <input type="text" name="_course_code"
  67.                 value="<?php echo wp_specialchars(stripslashes(get_post_meta($post->ID, '_course_code', true)), 1); ?>" />
  68. <?php
  69. }
  70.  
  71. function instructor_meta_box() {
  72.         global $post; ?>
  73.         <input type="hidden" name="instructor_nonce" id="instructor_nonce" value="<?php wp_create_nonce('instructor') ?>" />
  74.         <label for="_instructor_name">Name</label>
  75.         <input type="text" name="_instructor_name"
  76.                 value="<?php echo wp_specialchars(stripslashes(get_post_meta($post->ID, '_instructor_name', true)), 1); ?>" />
  77.         <label for="_instructor_email">Email</label>
  78.         <input type="text" name="_instructor_email"
  79.                 value="<?php echo wp_specialchars(stripslashes(get_post_meta($post->ID, '_instructor_email', true)), 1); ?>" />
  80. <?php
  81. }
  82.  
  83. function save_course_meta_data( $post_id ) {
  84.         global $post;
  85.        
  86.         // check nonces
  87.         if ( !wp_verify_nonce( $_POST['instructor_nonce'], 'instructor' ) ||
  88.                         !wp_verify_nonce( $_POST['course_code_nonce'], 'course_code' ) )
  89.                 return $post_id;
  90.        
  91.         // check capabilites
  92.         if ( 'course' == $_POST['post_type'] && !current_user_can( 'edit_post', $post_id ) )
  93.                 return $post_id;
  94.                        
  95.         // save fields
  96.         if (empty($_POST['_course_code'])) {
  97.                 $storedcode = get_post_meta( $post_id, '_course_code', true );
  98.                 delete_post_meta($post_id, '_course_code', $storedcode);
  99.         }
  100.         else
  101.                 update_post_meta($post_id, '_course_code', $_POST['_course_code']);
  102.        
  103.         if (empty($_POST['_instructor_name'])) {
  104.                 $storedname = get_post_meta( $post_id, '_instructor_name', true );
  105.                 delete_post_meta($post_id, '_instructor_name', $storedname);
  106.         }
  107.         else
  108.                 update_post_meta($post_id, '_instructor_name', $_POST['_instructor_name']);
  109.        
  110.         if (empty($_POST['_instructor_email'])) {
  111.                 $storedemail = get_post_meta( $post_id, '_instructor_email', true );
  112.                 delete_post_meta($post_id, '_instructor_email', $storedemail);
  113.         }
  114.         else
  115.                 update_post_meta($post_id, '_instructor_email', $_POST['_instructor_email']);
  116. }
  117. ?>