Advertisement
Guest User

Pkilist Demo Type Count Example

a guest
Feb 6th, 2013
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.80 KB | None | 0 0
  1. <?php
  2. /*
  3. Plugin Name: Piklist Demos
  4. Plugin URI: http://piklist.com
  5. Description: Piklist Demos. Creates a Demo post type, Taxonomy, Settings Page and Widget, with Field Examples.
  6. Version: 0.3
  7. Author: Piklist
  8. Author URI: http://piklist.com/
  9. */
  10.  
  11.   add_filter('piklist_post_types', 'piklist_demo_post_types');
  12.   function piklist_demo_post_types($post_types)
  13.   {
  14.     $post_types['piklist_demo'] = array(
  15.       'labels' => piklist('post_type_labels', 'Piklist Demo')
  16.       ,'public' => true
  17.       ,'title' => __('Enter Custom Title')
  18.       ,'supports' => array(
  19.         'title'
  20.       )
  21.       ,'rewrite' => array(
  22.         'slug' => 'piklist-demo'
  23.       )
  24.       ,'capability_type' => 'post'
  25.       ,'edit_columns' => array(
  26.         'title' => __('Demo')
  27.         ,'author' => __('Assigned to')
  28.       )
  29.       ,'hide_meta_box' => array(
  30.         'slug'
  31.         ,'author'
  32.       )
  33.       ,'status' => array(
  34.         'draft' => array(
  35.           'label' => 'New'
  36.           ,'public' => true
  37.         )
  38.         ,'demo' => array(
  39.           'label' => 'Demo'
  40.           ,'public' => true
  41.         )
  42.         ,'lock' => array(
  43.           'label' => 'Lock'
  44.           ,'public' => true
  45.         )
  46.       )
  47.     );
  48.    
  49.     return $post_types;
  50.   }
  51.  
  52.  
  53.   add_filter('piklist_taxonomies', 'piklist_demo_taxonomies');
  54.   function piklist_demo_taxonomies($taxonomies)
  55.   {
  56.     $taxonomies[] = array(
  57.       'post_type' => 'piklist_demo'
  58.       ,'name' => 'piklist_demo_type'
  59.       ,'configuration' => array(
  60.         'hierarchical' => true
  61.         ,'labels' => piklist('taxonomy_labels', 'Demo Type')
  62.         ,'show_ui' => true
  63.         ,'query_var' => true
  64.         ,'rewrite' => array(
  65.           'slug' => 'demo-type'
  66.         )
  67.         ,'show_admin_column' => true
  68.         ,'update_count_callback' => 'piklist_demo_tax_count_callback'
  69.       )
  70.     );
  71.  
  72.     return $taxonomies;
  73.   }
  74.  
  75.  
  76.   function piklist_demo_tax_count_callback($terms, $taxonomy)
  77.   {
  78.     global $wpdb;
  79.    
  80.     foreach ( (array) $terms as $term)
  81.     {
  82.         do_action( 'edit_term_taxonomy', $term, $taxonomy );
  83.  
  84.         $count = $wpdb->get_var("
  85.             SELECT count(object_id)
  86.             FROM $wpdb->term_relationships
  87.             WHERE object_id
  88.             IN (
  89.                 SELECT ID
  90.                 FROM $wpdb->posts
  91.                 WHERE post_type = '" . $taxonomy->object_type[0] . "' AND post_status = 'demo'
  92.             ) AND term_taxonomy_id = '$term'");
  93.  
  94.         $wpdb->update( $wpdb->term_taxonomy, array( 'count' => $count ), array( 'term_taxonomy_id' => $term ) );
  95.         do_action( 'edited_term_taxonomy', $term, $taxonomy );
  96.     }
  97.   }
  98.  
  99.  
  100.  
  101.   add_filter('piklist_admin_pages', 'piklist_demo_admin_pages');
  102.   function piklist_demo_admin_pages($pages)
  103.   {
  104.     $pages[] = array(
  105.       'page_title' => __('Field Demos')
  106.       ,'menu_title' => __('Settings', 'piklist')
  107.       ,'sub_menu' => 'edit.php?post_type=piklist_demo'
  108.       ,'capability' => 'manage_options'
  109.       ,'menu_slug' => 'piklist_demo_fields'
  110.       ,'setting' => 'piklist_demo_fields'
  111.       ,'icon_url' => plugins_url('piklist/parts/img/piklist-icon.png')
  112.       ,'icon' => 'piklist-page'
  113.       ,'single_line' => false
  114.       ,'default_tab' => 'Basic'
  115.     );
  116.  
  117.     return $pages;
  118.   }
  119.  
  120.  
  121.   add_filter('piklist_field_templates', 'piklist_demo_field_templates');
  122.   function piklist_demo_field_templates($templates)
  123.   {
  124.     $templates['piklist_demo'] = '[field_wrapper]
  125.                                    <div id="%1$s" class="%2$s">
  126.                                      [field_label]
  127.                                      [field]
  128.                                      [field_description_wrapper]
  129.                                        <small>[field_description]</small>
  130.                                      [/field_description_wrapper]
  131.                                    </div>
  132.                                  [/field_wrapper]';
  133.  
  134.     return $templates;
  135.   }
  136.  
  137.  
  138.   add_filter('piklist_post_submit_meta_box_title', 'piklist_demo_post_submit_meta_box_title', 10, 2);
  139.   function piklist_demo_post_submit_meta_box_title($title, $post)
  140.   {
  141.     switch ($post->post_type)
  142.     {
  143.       case 'piklist_demo':
  144.         $title = __('Create Demo Post');
  145.       break;
  146.     }
  147.    
  148.     return $title;
  149.   }
  150.  
  151.   add_filter('piklist_post_submit_meta_box', 'piklist_demo_post_submit_meta_box', 10, 3);
  152.   function piklist_demo_post_submit_meta_box($show, $section, $post)
  153.   {
  154.     switch ($post->post_type)
  155.     {  
  156.       case 'piklist_demo':
  157.        
  158.         switch ($section)
  159.         {
  160.           case 'minor-publishing-actions':
  161.           //case 'misc-publishing-actions':
  162.           //case 'misc-publishing-actions-status':
  163.           case 'misc-publishing-actions-visibility':
  164.           case 'misc-publishing-actions-published':
  165.          
  166.             $show = false;
  167.          
  168.           break;
  169.         }
  170.        
  171.       break;
  172.     }
  173.    
  174.     return $show;
  175.   }
  176.  
  177.  
  178. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement