$terms ): // Find empty terms and destroy $allterms = get_terms( $taxonomy, 'hide_empty=0' ); foreach( $allterms as $term ): if ( $term->count == 0 ) wp_delete_term( $term->term_id, $taxonomy ); endforeach; // Insert terms foreach( $terms as $term ): wp_insert_term( $term['name'], $taxonomy, array( 'slug' => $term['slug'] ) ); endforeach; endforeach; // Get array of post types to insert $post_groups = sportspress_array_value( sportspress_array_value( $sportspress_sports, sportspress_array_value( $input, 'sport', null ), array() ), 'posts', array() ); // Loop through each post type foreach( $post_groups as $post_type => $posts ): $args = array( 'post_type' => $post_type, 'numberposts' => -1, 'posts_per_page' => -1, 'meta_query' => array( array( 'key' => '_sp_preset', 'value' => 1 ) ) ); // Delete posts $old_posts = get_posts( $args ); foreach( $old_posts as $post ): wp_delete_post( $post->ID, true); endforeach; // Add posts foreach( $posts as $index => $post ): // Make sure post doesn't overlap if ( ! get_page_by_path( $post['post_name'], OBJECT, $post_type ) ): // Translate post title $post['post_title'] = __( $post['post_title'], 'sportspress' ); // Set post type $post['post_type'] = $post_type; // Increment menu order by 2 and publish post $post['menu_order'] = $index * 2 + 2; $post['post_status'] = 'publish'; $id = wp_insert_post( $post ); // Flag as preset update_post_meta( $id, '_sp_preset', 1 ); // Update meta if ( array_key_exists( 'meta', $post ) ): foreach ( $post['meta'] as $key => $value ): update_post_meta( $id, $key, $value ); endforeach; endif; // Update terms if ( array_key_exists( 'tax_input', $post ) ): foreach ( $post['tax_input'] as $taxonomy => $terms ): wp_set_object_terms( $id, $terms, $taxonomy, false ); endforeach; endif; endif; endforeach; endforeach; elseif ( isset( $input['text'] ) ): $input['text'] = array_filter( $input['text'] ); endif; if ( ! is_array( $input ) ) $input = array(); // Merge with existing options return array_merge( $options, $input ); } function sportspress_add_menu_page() { } add_action( 'admin_menu', 'sportspress_add_menu_page' );