/** * {@internal Missing Short Description}} * * @since 2.0.0 * * @param unknown_type $categories * @param unknown_type $post_id * @return unknown */ function nxt_create_categories($categories, $post_id = '') { $cat_ids = array(); foreach ($categories as $category) { if ($id = category_exists($category)) { $cat_ids[] = $id; } else { if ($id = nxt_create_category($category)) { $cat_ids[] = $id; } } } if ($post_id) { nxt_set_post_categories($post_id, $cat_ids); } return $cat_ids; }
/** * Insert an attachment. * * If you set the 'ID' in the $object parameter, it will mean that you are * updating and attempt to update the attachment. You can also set the * attachment name or title by setting the key 'post_name' or 'post_title'. * * You can set the dates for the attachment manually by setting the 'post_date' * and 'post_date_gmt' keys' values. * * By default, the comments will use the default settings for whether the * comments are allowed. You can close them manually or keep them open by * setting the value for the 'comment_status' key. * * The $object parameter can have the following: * 'post_status' - Default is 'draft'. Can not be overridden, set the same as parent post. * 'post_type' - Default is 'post', will be set to attachment. Can not override. * 'post_author' - Default is current user ID. The ID of the user, who added the attachment. * 'ping_status' - Default is the value in default ping status option. Whether the attachment * can accept pings. * 'post_parent' - Default is 0. Can use $parent parameter or set this for the post it belongs * to, if any. * 'menu_order' - Default is 0. The order it is displayed. * 'to_ping' - Whether to ping. * 'pinged' - Default is empty string. * 'post_password' - Default is empty string. The password to access the attachment. * 'guid' - Global Unique ID for referencing the attachment. * 'post_content_filtered' - Attachment post content filtered. * 'post_excerpt' - Attachment excerpt. * * @since 2.0.0 * @uses $nxtdb * @uses $user_ID * @uses do_action() Calls 'edit_attachment' on $post_ID if this is an update. * @uses do_action() Calls 'add_attachment' on $post_ID if this is not an update. * * @param string|array $object Arguments to override defaults. * @param string $file Optional filename. * @param int $parent Parent post ID. * @return int Attachment ID. */ function nxt_insert_attachment($object, $file = false, $parent = 0) { global $nxtdb, $user_ID; $defaults = array('post_status' => 'inherit', 'post_type' => 'post', 'post_author' => $user_ID, 'ping_status' => get_option('default_ping_status'), 'post_parent' => 0, 'menu_order' => 0, 'to_ping' => '', 'pinged' => '', 'post_password' => '', 'guid' => '', 'post_content_filtered' => '', 'post_excerpt' => '', 'import_id' => 0, 'context' => ''); $object = nxt_parse_args($object, $defaults); if (!empty($parent)) { $object['post_parent'] = $parent; } unset($object['filter']); $object = sanitize_post($object, 'db'); // export array as variables extract($object, EXTR_SKIP); if (empty($post_author)) { $post_author = $user_ID; } $post_type = 'attachment'; if (!in_array($post_status, array('inherit', 'private'))) { $post_status = 'inherit'; } // Make sure we set a valid category. if (!isset($post_category) || 0 == count($post_category) || !is_array($post_category)) { // 'post' requires at least one category. if ('post' == $post_type) { $post_category = array(get_option('default_category')); } else { $post_category = array(); } } // Are we updating or creating? if (!empty($ID)) { $update = true; $post_ID = (int) $ID; } else { $update = false; $post_ID = 0; } // Create a valid post name. if (empty($post_name)) { $post_name = sanitize_title($post_title); } else { $post_name = sanitize_title($post_name); } // expected_slashed ($post_name) $post_name = nxt_unique_post_slug($post_name, $post_ID, $post_status, $post_type, $post_parent); if (empty($post_date)) { $post_date = current_time('mysql'); } if (empty($post_date_gmt)) { $post_date_gmt = current_time('mysql', 1); } if (empty($post_modified)) { $post_modified = $post_date; } if (empty($post_modified_gmt)) { $post_modified_gmt = $post_date_gmt; } if (empty($comment_status)) { if ($update) { $comment_status = 'closed'; } else { $comment_status = get_option('default_comment_status'); } } if (empty($ping_status)) { $ping_status = get_option('default_ping_status'); } if (isset($to_ping)) { $to_ping = preg_replace('|\\s+|', "\n", $to_ping); } else { $to_ping = ''; } if (isset($post_parent)) { $post_parent = (int) $post_parent; } else { $post_parent = 0; } if (isset($menu_order)) { $menu_order = (int) $menu_order; } else { $menu_order = 0; } if (!isset($post_password)) { $post_password = ''; } if (!isset($pinged)) { $pinged = ''; } // expected_slashed (everything!) $data = compact(array('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_content_filtered', 'post_title', 'post_excerpt', 'post_status', 'post_type', 'comment_status', 'ping_status', 'post_password', 'post_name', 'to_ping', 'pinged', 'post_modified', 'post_modified_gmt', 'post_parent', 'menu_order', 'post_mime_type', 'guid')); $data = stripslashes_deep($data); if ($update) { $nxtdb->update($nxtdb->posts, $data, array('ID' => $post_ID)); } else { // If there is a suggested ID, use it if not already present if (!empty($import_id)) { $import_id = (int) $import_id; if (!$nxtdb->get_var($nxtdb->prepare("SELECT ID FROM {$nxtdb->posts} WHERE ID = %d", $import_id))) { $data['ID'] = $import_id; } } $nxtdb->insert($nxtdb->posts, $data); $post_ID = (int) $nxtdb->insert_id; } if (empty($post_name)) { $post_name = sanitize_title($post_title, $post_ID); $nxtdb->update($nxtdb->posts, compact("post_name"), array('ID' => $post_ID)); } nxt_set_post_categories($post_ID, $post_category); if ($file) { update_attached_file($post_ID, $file); } clean_post_cache($post_ID); if (!empty($context)) { add_post_meta($post_ID, '_nxt_attachment_context', $context, true); } if ($update) { do_action('edit_attachment', $post_ID); } else { do_action('add_attachment', $post_ID); } return $post_ID; }
/** * Sets categories for a post. * * @since 1.5.0 * * @param array $args Method parameters. * @return bool True on success. */ function mt_setPostCategories($args) { $this->escape($args); $post_ID = (int) $args[0]; $username = $args[1]; $password = $args[2]; $categories = $args[3]; if (!($user = $this->login($username, $password))) { return $this->error; } do_action('xmlrpc_call', 'mt.setPostCategories'); if (!current_user_can('edit_post', $post_ID)) { return new IXR_Error(401, __('Sorry, you cannot edit this post.')); } foreach ($categories as $cat) { $catids[] = $cat['categoryId']; } nxt_set_post_categories($post_ID, $catids); return true; }
/** * Sets the categories that the post id belongs to. * * @since 1.0.1 * @deprecated 2.1 * @deprecated Use nxt_set_post_categories() * @see nxt_set_post_categories() * * @param int $blogid Not used * @param int $post_ID * @param array $post_categories * @return unknown */ function nxt_set_post_cats($blogid = '1', $post_ID = 0, $post_categories = array()) { _deprecated_function(__FUNCTION__, '2.1', 'nxt_set_post_categories()'); return nxt_set_post_categories($post_ID, $post_categories); }