Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php define('MY_WORDPRESS_FOLDER',$_SERVER['DOCUMENT_ROOT']);
- define('MY_THEME_FOLDER',str_replace('\\','/',dirname(__FILE__)));
- define('MY_THEME_PATH','/' . substr(MY_THEME_FOLDER,stripos(MY_THEME_FOLDER,'wp-content')));
- add_action('admin_init','my_meta_init');
- function my_meta_init()
- {
- // review the function reference for parameter details
- // http://codex.wordpress.org/Function_Reference/wp_enqueue_script
- // http://codex.wordpress.org/Function_Reference/wp_enqueue_style
- //wp_enqueue_script('my_meta_js', MY_THEME_PATH . '/custom/meta.js', array('jquery'));
- wp_enqueue_style('my_meta_css', MY_THEME_PATH . '/custom/meta.css');
- // review the function reference for parameter details
- // http://codex.wordpress.org/Function_Reference/add_meta_box
- foreach (array('whatsnew') as $type)
- {
- add_meta_box('my_all_meta', 'New Products Details', 'whatsnew_setup', $type, 'normal', 'high');
- }
- foreach (array('dealer') as $type)
- {
- add_meta_box('my_all_meta', 'Dealer Details', 'dealer_setup', $type, 'normal', 'high');
- }
- add_action('save_post','my_meta_save');
- }
- function whatsnew_setup()
- {
- global $post;
- // using an underscore, prevents the meta variable
- // from showing up in the custom fields section
- $meta = get_post_meta($post->ID,'_my_meta',TRUE);
- // instead of writing HTML here, lets do an include
- include(MY_THEME_FOLDER . '/custom/whatsnew.php');
- // create a custom nonce for submit verification later
- echo '<input type="hidden" name="my_meta_noncename" value="' . wp_create_nonce(__FILE__) . '" />';
- }
- function dealer_setup()
- {
- global $post;
- // using an underscore, prevents the meta variable
- // from showing up in the custom fields section
- $meta = get_post_meta($post->ID,'_my_meta',TRUE);
- // instead of writing HTML here, lets do an include
- include(MY_THEME_FOLDER . '/custom/dealers.php');
- // create a custom nonce for submit verification later
- echo '<input type="hidden" name="my_meta_noncename" value="' . wp_create_nonce(__FILE__) . '" />';
- }
- function my_meta_save($post_id)
- {
- // authentication checks
- // make sure data came from our meta box
- if (!wp_verify_nonce($_POST['my_meta_noncename'],__FILE__)) return $post_id;
- // check user permissions
- if ($_POST['post_type'] == 'whatsnew')
- {
- if (!current_user_can('edit_post', $post_id)) return $post_id;
- }
- if ($_POST['post_type'] == 'dealer')
- {
- if (!current_user_can('edit_post', $post_id)) return $post_id;
- }
- // authentication passed, save data
- // var types
- // single: _my_meta[var]
- // array: _my_meta[var][]
- // grouped array: _my_meta[var_group][0][var_1], _my_meta[var_group][0][var_2]
- $current_data = get_post_meta($post_id, '_my_meta', TRUE);
- $new_data = $_POST['_my_meta'];
- my_meta_clean($new_data);
- if ($current_data)
- {
- if (is_null($new_data)) delete_post_meta($post_id,'_my_meta');
- else update_post_meta($post_id,'_my_meta',$new_data);
- }
- elseif (!is_null($new_data))
- {
- add_post_meta($post_id,'_my_meta',$new_data,TRUE);
- }
- return $post_id;
- }
- function my_meta_clean(&$arr)
- {
- if (is_array($arr))
- {
- foreach ($arr as $i => $v)
- {
- if (is_array($arr[$i]))
- {
- my_meta_clean($arr[$i]);
- if (!count($arr[$i]))
- {
- unset($arr[$i]);
- }
- }
- else
- {
- if (trim($arr[$i]) == '')
- {
- unset($arr[$i]);
- }
- }
- }
- if (!count($arr))
- {
- $arr = NULL;
- }
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement