Untitled

Uploaded anonymously on April 22, 2013, 7:11 pm

     



  1. if ( function_exists('register_sidebar') ) {
  2.  
  3.   register_sidebar(array(
  4.  
  5.     'name' => 'Scoreboard Widget Area',
  6.  
  7.     'before_widget' => '',
  8.  
  9.     'after_widget' => '',
  10.  
  11.     'before_title' => '',
  12.  
  13.     'after_title' => '',
  14.  
  15.   ));
  16.  
  17. }
  18.  
  19.  
  20. SECOND PART
  21.  
  22. /////////////////////////////////////
  23.  
  24. // Register Scores
  25.  
  26. /////////////////////////////////////
  27.  
  28.  
  29.  
  30. add_action( 'init', 'create_scores' );
  31.  
  32. function create_scores() {
  33.  
  34.   register_post_type( 'scoreboard',
  35.  
  36.     array(
  37.  
  38.       'labels' => array(
  39.  
  40.         'name' => __( 'Scores' ),
  41.  
  42.         'singular_name' => __( 'Score' )
  43.  
  44.       ),
  45.  
  46.     'public' => true,
  47.  
  48.     'has_archive' => true,
  49.  
  50.     )
  51.  
  52.   );
  53.  
  54. }
  55.  
  56.  
  57.  
  58. add_action( 'init', 'scores_init' );
  59.  
  60. function scores_init() {
  61.  
  62.   // create a new taxonomy
  63.  
  64.   register_taxonomy(
  65.  
  66.     'scores_cat',
  67.  
  68.     'scoreboard',
  69.  
  70.     array(
  71.  
  72.       'label' => __( 'Score Categories' ),
  73.  
  74.       'rewrite' => array( 'slug' => 'scores' ),
  75.  
  76.       'hierarchical' => true,
  77.  
  78.       'query_var' => true
  79.  
  80.     )
  81.  
  82.   );
  83.  
  84. }
  85.  
  86.  
  87.  
  88. /////////////////////////////////////
  89.  
  90. // Add Scores Metabox
  91.  
  92. /////////////////////////////////////
  93.  
  94.  
  95.  
  96. $prefix = 'gd_';
  97.  
  98.  
  99.  
  100. $meta_box = array(
  101.  
  102.     'id' => 'scores-box',
  103.  
  104.     'title' => 'Scores Info',
  105.  
  106.     'page' => 'scoreboard',
  107.  
  108.     'context' => 'normal',
  109.  
  110.     'priority' => 'high',
  111.  
  112.     'fields' => array(
  113.  
  114.     array(
  115.  
  116.             'name' => 'Score Status',
  117.  
  118.             'desc' => 'Enter score status (eg. "Fri 8:00pm" or "Final")',
  119.  
  120.             'id' => $prefix . 'status',
  121.  
  122.             'type' => 'text',
  123.  
  124.         ),
  125.  
  126.         array(
  127.  
  128.             'name' => 'Away Team Abbreviation',
  129.  
  130.             'desc' => 'Enter away team abbreviation (eg. "PHI")',
  131.  
  132.             'id' => $prefix . 'away_team',
  133.  
  134.             'type' => 'text',
  135.  
  136.         ),
  137.  
  138.         array(
  139.  
  140.             'name' => 'Home Team Abbreviation',
  141.  
  142.             'desc' => 'Enter home team abbreviation (eg. "PHI")',
  143.  
  144.             'id' => $prefix . 'home_team',
  145.  
  146.             'type' => 'text',
  147.  
  148.         ),
  149.  
  150.         array(
  151.  
  152.             'name' => 'Away Team Score',
  153.  
  154.             'desc' => 'Enter away team score (eg. "10")',
  155.  
  156.             'id' => $prefix . 'away_team_score',
  157.  
  158.             'type' => 'text',
  159.  
  160.       'std' => ' 0'
  161.  
  162.         ),
  163.  
  164.   array(
  165.  
  166.             'name' => 'Home Team Score',
  167.  
  168.             'desc' => 'Enter home team score (eg. "10")',
  169.  
  170.             'id' => $prefix . 'home_team_score',
  171.  
  172.             'type' => 'text',
  173.  
  174.       'std' => ' 0'
  175.  
  176.         )
  177.  
  178.     )
  179.  
  180. );
  181.  
  182.  
  183.  
  184. add_action('admin_menu', 'scores_add_box');
  185.  
  186.  
  187.  
  188. // Add meta box
  189.  
  190. function scores_add_box() {
  191.  
  192.   global $meta_box;
  193.  
  194.  
  195.  
  196.   add_meta_box($meta_box['id'], $meta_box['title'], 'scores_show_box', $meta_box['page'], $meta_box['context'], $meta_box['priority']);
  197.  
  198. }
  199.  
  200.  
  201.  
  202. // Callback function to show fields in meta box
  203.  
  204. function scores_show_box() {
  205.  
  206.   global $meta_box, $post;
  207.  
  208.  
  209.  
  210.   // Use nonce for verification
  211.  
  212.   echo '<input type="hidden" name="scores_meta_box_nonce" value="', wp_create_nonce(basename(__FILE__)), '" />';
  213.  
  214.  
  215.  
  216.   echo '<table class="form-table">';
  217.  
  218.  
  219.  
  220.   foreach ($meta_box['fields'] as $field) {
  221.  
  222.     // get current post meta data
  223.  
  224.     $meta = get_post_meta($post->ID, $field['id'], true);
  225.  
  226.  
  227.  
  228.     echo '<tr>',
  229.  
  230.         '<th style="width:20%"><label for="', $field['id'], '"><strong>', $field['name'], ':</strong></label></th>',
  231.  
  232.         '<td>';
  233.  
  234.     switch ($field['type']) {
  235.  
  236.       case 'text':
  237.  
  238.         echo '<input type="text" name="', $field['id'], '" id="', $field['id'], '" value="', $meta ? $meta : $field['std'], '" size="30" style="width:97%" />',
  239.  
  240.           '<br /><small>', $field['desc'],'</small>';
  241.  
  242.         break;
  243.  
  244.       case 'textarea':
  245.  
  246.         echo '<textarea name="', $field['id'], '" id="', $field['id'], '" cols="60" rows="4" style="width:97%">', $meta ? $meta : $field['std'], '</textarea>',
  247.  
  248.           '<br />', $field['desc'];
  249.  
  250.         break;
  251.  
  252.       case 'select':
  253.  
  254.         echo '<select name="', $field['id'], '" id="', $field['id'], '">';
  255.  
  256.         foreach ($field['options'] as $option) {
  257.  
  258.           echo '<option', $meta == $option ? ' selected="selected"' : '', '>', $option, '</option>';
  259.  
  260.         }
  261.  
  262.         echo '</select>';
  263.  
  264.         break;
  265.  
  266.       case 'radio':
  267.  
  268.         foreach ($field['options'] as $option) {
  269.  
  270.           echo '<input type="radio" name="', $field['id'], '" value="', $option['value'], '"', $meta == $option['value'] ? ' checked="checked"' : '', ' />', $option['name'];
  271.  
  272.         }
  273.  
  274.         break;
  275.  
  276.       case 'checkbox':
  277.  
  278.         echo '<input type="checkbox" name="', $field['id'], '" id="', $field['id'], '"', $meta ? ' checked="checked"' : '', ' />';
  279.  
  280.         break;
  281.  
  282.     }
  283.  
  284.     echo  '<td>',
  285.  
  286.       '</tr>';
  287.  
  288.   }
  289.  
  290.  
  291.  
  292.   echo '</table>';
  293.  
  294. }
  295.  
  296.  
  297.  
  298. add_action('save_post', 'scores_save_data');
  299.  
  300.  
  301.  
  302. // Save data from meta box
  303.  
  304. function scores_save_data($post_id) {
  305.  
  306.   global $meta_box;
  307.  
  308.  
  309.  
  310.   // verify nonce
  311.  
  312.   if ( !isset( $_POST['scores_meta_box_nonce'] ) || !wp_verify_nonce( $_POST['scores_meta_box_nonce'], basename(__FILE__) ) ) {
  313.  
  314.     return $post_id;
  315.  
  316.   }
  317.  
  318.  
  319.  
  320.   // check autosave
  321.  
  322.   if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
  323.  
  324.     return $post_id;
  325.  
  326.   }
  327.  
  328.  
  329.  
  330.   // check permissions
  331.  
  332.   if (!current_user_can('edit_post', $post_id)) {
  333.  
  334.     return $post_id;
  335.  
  336.   }
  337.  
  338.  
  339.  
  340.   foreach ($meta_box['fields'] as $field) {
  341.  
  342.     $old = get_post_meta($post_id, $field['id'], true);
  343.  
  344.     $new = isset( $_POST[$field['id']] ) ? $_POST[$field['id']] : '';
  345.  
  346.  
  347.  
  348.     if ($new && $new != $old) {
  349.  
  350.       update_post_meta($post_id, $field['id'], $new);
  351.  
  352.     } elseif ('' == $new && $old) {
  353.  
  354.       delete_post_meta($post_id, $field['id'], $old);
  355.  
  356.     }
  357.  
  358.   }
  359.  
  360. }
  361.  





blog comments powered by Disqus