From 6baf424bf5310c5c5b2e6900d10444b3709897fa Mon Sep 17 00:00:00 2001 From: ryan Date: Wed, 17 Feb 2010 20:33:29 +0000 Subject: [PATCH] Don't require a default category for post types other than 'post'. see #9674 git-svn-id: http://svn.automattic.com/wordpress/trunk@13184 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/post.php | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/wp-includes/post.php b/wp-includes/post.php index 94fbdfdb6..9f401d0bc 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -2011,12 +2011,19 @@ function wp_insert_post($postarr = array(), $wp_error = false) { return 0; } - // Make sure we set a valid category + if ( empty($post_type) ) + $post_type = 'post'; + + // Make sure we set a valid category. if ( empty($post_category) || 0 == count($post_category) || !is_array($post_category) ) { - $post_category = array(get_option('default_category')); + // 'post' requires at least one category. + if ( 'post' == $post_type ) + $post_category = array( get_option('default_category') ); + else + $post_category = array(); } - //Set the default tag list + // Set the default tag list if ( !isset($tags_input) ) $tags_input = array(); @@ -2026,9 +2033,6 @@ function wp_insert_post($postarr = array(), $wp_error = false) { if ( empty($post_status) ) $post_status = 'draft'; - if ( empty($post_type) ) - $post_type = 'post'; - $post_ID = 0; // Get the post ID and GUID @@ -2482,14 +2486,21 @@ function wp_set_post_terms( $post_id = 0, $tags = '', $taxonomy = 'post_tag', $a */ function wp_set_post_categories($post_ID = 0, $post_categories = array()) { $post_ID = (int) $post_ID; + $post_type = get_post_type( $post_ID ); // If $post_categories isn't already an array, make it one: - if (!is_array($post_categories) || 0 == count($post_categories) || empty($post_categories)) - $post_categories = array(get_option('default_category')); - else if ( 1 == count($post_categories) && '' == $post_categories[0] ) + if ( !is_array($post_categories) || 0 == count($post_categories) || empty($post_categories) ) { + if ( 'post' == $post_type ) + $post_categories = array( get_option('default_category') ); + else + $post_categories = array(); + } else if ( 1 == count($post_categories) && '' == $post_categories[0] ) { return true; + } - $post_categories = array_map('intval', $post_categories); - $post_categories = array_unique($post_categories); + if ( !empty($post_categories) ) { + $post_categories = array_map('intval', $post_categories); + $post_categories = array_unique($post_categories); + } return wp_set_object_terms($post_ID, $post_categories, 'category'); }