Exemple #1
0
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
}
Exemple #2
0
/**
 * 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);
    }
}