wp_update_post()
wp_update_post( array|object $postarr = array(), bool $…
wp_update_post( array|object $postarr = array(), bool $wp_error = false )
用新的帖子数据更新帖子。
Update a post with new post data.
目录锚点:#说明#参数#源码#笔记
说明(Description)
不必为草稿设置日期。您可以设置日期,它不会被覆盖。
参数(Parameters)
参数 | 类型 | 说明 |
---|---|---|
$postarr | (array | object) | 发布数据。数组应该被转义,而对象不是。默认数组。 |
$wp_error | (bool) | 允许在失败时返回WP_错误。 |
源码(Source)
/** * Update a post with new post data. * * The date does not have to be set for drafts. You can set the date and it will * not be overridden. * * @since 1.0.0 * * @param array|object $postarr Optional. Post data. Arrays are expected to be escaped, * objects are not. Default array. * @param bool $wp_error Optional. Allow return of WP_Error on failure. Default false. * @return int|WP_Error The value 0 or WP_Error on failure. The post ID on success. */ function wp_update_post( $postarr = array(), $wp_error = false ) { if ( is_object($postarr) ) { // Non-escaped post was passed. $postarr = get_object_vars($postarr); $postarr = wp_slash($postarr); } // First, get all of the original fields. $post = get_post($postarr['ID'], ARRAY_A); if ( is_null( $post ) ) { if ( $wp_error ) return new WP_Error( 'invalid_post', __( 'Invalid post ID.' ) ); return 0; } // Escape data pulled from DB. $post = wp_slash($post); // Passed post category list overwrites existing category list if not empty. if ( isset($postarr['post_category']) && is_array($postarr['post_category']) && 0 != count($postarr['post_category']) ) $post_cats = $postarr['post_category']; else $post_cats = $post['post_category']; // Drafts shouldn't be assigned a date unless explicitly done so by the user. if ( isset( $post['post_status'] ) && in_array($post['post_status'], array('draft', 'pending', 'auto-draft')) && empty($postarr['edit_date']) && ('0000-00-00 00:00:00' == $post['post_date_gmt']) ) $clear_date = true; else $clear_date = false; // Merge old and new fields with new fields overwriting old ones. $postarr = array_merge($post, $postarr); $postarr['post_category'] = $post_cats; if ( $clear_date ) { $postarr['post_date'] = current_time('mysql'); $postarr['post_date_gmt'] = ''; } if ($postarr['post_type'] == 'attachment') return wp_insert_attachment($postarr); return wp_insert_post( $postarr, $wp_error ); }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
1.0.0 | wp-includes/post.php | 17 | 9 |
笔记(Notes)
示例
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!