/** * Save the Project Meta Fields * * @param int $post_id The ID of the post we're saving meta for. */ function save_project_meta($post_id) { if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } if (get_projects_post_type_name() !== get_post_type($post_id)) { return; } if (!isset($_POST['fz_project_nonce']) || !wp_verify_nonce($_POST['fz_project_nonce'], 'fz_project_meta')) { return; } if (!current_user_can('edit_post', $post_id)) { return; } $meta_keys = array(get_project_tagline_meta_key(), get_project_github_meta_key(), get_project_lead_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); } } $non_unique_meta_keys = array(get_project_team_members_meta_key()); foreach ($non_unique_meta_keys as $meta_key) { delete_post_meta($post_id, $meta_key); if (!empty($_POST[$meta_key])) { foreach ($_POST[$meta_key] as $meta_value) { if (empty($meta_value)) { continue; } add_post_meta($post_id, $meta_key, $meta_value, false); } } } }
/** * Returns the Project's Team Members. * * @param int|\WP_Post $post Optional. Post ID or WP_Post object. Default is global $post. * * @return array|bool The Project's Team Members, and empty string if empty, or false if we don't have a valid post. */ function get_project_team_members($post = 0) { $post = get_post($post); if (empty($post)) { return false; } if (!function_exists(__NAMESPACE__ . '\\get_project_team_members_meta_key')) { return array(array('title' => 'Person 2', 'permalink' => '#', 'image_src' => FZP_URL . '/assets/images/default.png', 'project_lead' => false), array('title' => 'Person 3', 'permalink' => '#', 'image_src' => FZP_URL . '/assets/images/default.png', 'project_lead' => false), array('title' => 'Person 4', 'permalink' => '#', 'image_src' => FZP_URL . '/assets/images/default.png', 'project_lead' => false)); } $team_member_ids = get_post_meta($post->ID, get_project_team_members_meta_key(), false); if (empty($team_member_ids)) { return array(); } $team_members = array(); foreach ($team_member_ids as $team_member_id) { $team_member_post = get_post($team_member_id); $team_member = array('title' => $team_member_post->post_title, 'permalink' => get_permalink($team_member_id), 'project_lead' => false); if (has_post_thumbnail($team_member_id)) { $image_id = get_post_thumbnail_id($team_member_id); $image_src = wp_get_attachment_image_src($image_id, 'full'); if (!empty($image_src)) { $team_member['image_src'] = $image_src[0]; } } $team_members[] = $team_member; } return $team_members; }