/** * Sanitizes and Validates a Team Member post id. * * @param int $value The post id to sanitize and validate as a team member. * * @return int|string The sanitized and valid team member post id, or an empty string if false. */ function sanitize_team_member_id($value) { $value = intval($value); if (0 >= $value) { return ''; } if (get_team_members_post_type_name() !== get_post_type($value)) { return ''; } return $value; }
/** * Enqueues the FZ Project meta styles. */ function enqueue_team_member_styles() { $screen = get_current_screen(); if (get_team_members_post_type_name() !== $screen->post_type) { return; } if ('post' !== $screen->base) { return; } $min = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '.min' : ''; wp_enqueue_style('fz-project-meta', FZP_URL . "/assets/css/fz-project-meta{$min}.css", array(), FZP_VERSION); }
/** * Save the Team Member Meta Fields * * @param int $post_id The ID of the post we're saving meta for. */ function save_team_member_meta($post_id) { if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if (get_team_members_post_type_name() !== get_post_type($post_id)) { return; } if (!isset($_POST['fz_team_member_nonce']) || !wp_verify_nonce($_POST['fz_team_member_nonce'], 'fz_team_member_meta')) { return; } if (!current_user_can('edit_post', $post_id)) { return; } $title_key = get_team_member_title_meta_key(); if (!empty($_POST[$title_key])) { update_post_meta($post_id, $title_key, $_POST[$title_key]); } else { delete_post_meta($post_id, $title_key); } }
/** * Save the Team Member Meta Fields * * @param int $post_id The ID of the post we're saving meta for. */ function save_team_member_meta($post_id) { if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if (get_team_members_post_type_name() !== get_post_type($post_id)) { return; } if (!isset($_POST['fz_team_member_nonce']) || !wp_verify_nonce($_POST['fz_team_member_nonce'], 'fz_team_member_meta')) { return; } if (!current_user_can('edit_post', $post_id)) { return; } $meta_keys = array(get_team_member_title_meta_key(), get_team_member_twitter_meta_key(), get_team_member_github_meta_key(), get_team_member_wordpress_meta_key()); foreach ($meta_keys as $meta_key) { if (!empty($_POST[$meta_key])) { update_post_meta($post_id, $meta_key, $_POST[$meta_key]); } else { delete_post_meta($post_id, $meta_key); } } }
/** * Registers the Team Members Post Type. */ function register_team_members_post_type() { $labels = array('name' => esc_html__('Team Members', 'fzp'), 'singular_name' => esc_html__('Team Member', 'fzp'), 'add_new' => esc_html__('Add New', 'fzp'), 'add_new_item' => esc_html__('Add New Team Member', 'fzp'), 'edit_item' => esc_html__('Edit Team Member', 'fzp'), 'new_item' => esc_html__('New Team Member', 'fzp'), 'all_items' => esc_html__('All Team Members', 'fzp'), 'view_item' => esc_html__('View Team Member', 'fzp'), 'search_items' => esc_html__('Search Team Members', 'fzp'), 'not_found' => esc_html__('No Team Member found', 'fzp'), 'not_found_in_trash' => esc_html__('No Team Member found in Trash', 'fzp'), 'parent_item_colon' => '', 'menu_name' => esc_html__('Team Members', 'fzp')); $args = array('labels' => $labels, 'public' => true, 'description' => esc_html__('Team Member', 'jdrf'), 'capability_type' => 'post', 'map_meta_cap' => true, 'hierarchical' => false, 'menu_position' => 21, 'menu_icon' => 'dashicons-groups', 'show_in_menu' => true, 'has_archive' => false, 'rewrite' => array('slug' => get_team_members_post_type_slug(), 'with_front' => false), 'supports' => array('title', 'thumbnail', 'editor', 'author')); register_post_type(get_team_members_post_type_name(), $args); }