Question

I have a custom post type "projects" with a custom taxonomy "project_type." If I select a project type taxonomy within the post editor screen and hit update, the taxonomy isn't updated. Worse yet, it clears all taxonomy values associated with that project. Oddly, I added a column in the admin screen to display the custom taxonomy values and I am able to update the taxonomy values via WP's built-in quick edit feature.

Here is the bulk of the custom post type and taxonomy code: http://pastebin.com/2TdmVEAE

So, I'm thinking I need some function that will amend the save post function to include the custom taxonomy data. Right now the save_post function must not include custom taxonomies in a custom post type, and that is why it is clearing the data. (side: why does it work with quick post?)

I just don't know how exactly to handle the data in the custom taxonomies to compare/write the selected taxonomies to the specific post. I've just discovered the codex on save_post... Here's what I have so far, built off another post that is similar:

add_action('save_post', 'dcg_taxonomy_save');

// Save data from meta box
function dcg_taxonomy_save($post_id) {
global $post;

// verify nonce
if (!wp_verify_nonce($_POST['project_type'], basename(__FILE__))) {
    return $post_id;
}

// check autosave
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
    return $post_id;
}

// check permissions
if ('page' == $_POST['project']) {
    if (!current_user_can('edit_page', $post_id)) {
        return $post_id;
    }
} elseif (!current_user_can('edit_post', $post_id)) {
    return $post_id;
}

$old = wp_get_post_terms($post_id, 'project_type', array("fields" => "all") ); // grabs all terms for this post in the taxonomy
$new = $_POST[ ...?... ]; // <-- how do I grab the custom taxonomy values

// probably need to run a foreach through the array of taxonomy values, yea?
if ($new != $old) {
    wp_set_post_terms($post_id, $new, 'project_type', false ) // sets new taxonomy terms
}
}

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with wordpress.stackexchange
scroll top