function rssmi_save_custom_fields($post_id) { $meta_fields = rssmi_custom_fields(); if (isset($_POST['post_type']) && $_POST['post_type'] != 'rssmi_feed') { return; } $rssmi_nonce_var = isset($_POST['rssmi_meta_box_nonce']) ? $_POST['rssmi_meta_box_nonce'] : NULL; // verify nonce if (!wp_verify_nonce($rssmi_nonce_var, basename(__FILE__))) { //if ( ! wp_verify_nonce ($_POST[ 'rssmi_meta_box_nonce' ], basename( __FILE__ ) ) ) return $post_id; } // check autosave if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return $post_id; } // check permissions if ('page' == $_POST['post_type']) { if (!current_user_can('edit_page', $post_id)) { return $post_id; } } elseif (!current_user_can('edit_post', $post_id)) { return $post_id; } // delete prior posts if this post_id url changes $oldURL = get_post_meta($post_id, 'rssmi_url', true); $newURL = $_POST['rssmi_url']; if ($newURL && $newURL != $oldURL) { rssmi_delete_all_for_feed($post_id); rssmi_delete_prior_posts($post_id); } // loop through fields and save the data foreach ($meta_fields as $field) { $old = get_post_meta($post_id, $field['id'], true); $new = $_POST[$field['id']]; if ($new && $new != $old) { update_post_meta($post_id, $field['id'], $new); } elseif ('' == $new && $old) { delete_post_meta($post_id, $field['id'], $old); } } // end foreach }
/** * Hook function to delete all associated items and auto-posts for a certain feed * * @param $pid */ function rssmi_on_delete($pid) { $post = get_post($pid); if ('rssmi_feed' === $post->post_type) { rssmi_delete_all_for_feed($pid); rssmi_delete_all_posts_for_feed($pid); } }