主题猫-WordPress中文主题站 > wordpress函数 > WordPress更新文章函数:wp_update_post

WordPress更新文章函数:wp_update_post

描述

该函数用于更新wordpress数据库中的文章。如希望函数正常运行,必须传递将被更新的文章编号ID。

使用方法

  1. <?php wp_update_post( $post ); ?>

例子

调用wp_update_post( )前需创建一个数组以传递必要元素。与 wp_insert_post()不同的是,这里只需要传递将更新的文章编号和元素。元素名称应与数据库中名称相匹配。

  1. // 更新编号为37的文章
  2.   $my_post = array();
  3.   $my_post['ID'] = 37;
  4.   $my_post['post_content'] = 'This is the updated content.';
  5. // Update the post into the database
  6.   wp_update_post( $my_post );

类别

需要将类别作为整数数组传递,该数组应与数据库中的类别编号相匹配。即使文章只属于某一项类别,情况也应如此。

参数

$post

(数组)(可选)能表示可组成文章元素的对象。这些元素与数据库wp_posts表格中的纵列名称应一一对应。可以不填充ID(编号)字段,这样的话使用该函数几乎没有任何意义。

默认值:一个空数组

返回的值

若文章成功加入数据库,返回文章编号。否则返回0.

相关函数

  1. wp_insert_post()

源文件

wp_update_post() 位于 wp-includes/post.php.

  1. /**
  2.  * Update a post with new post data.
  3.  *
  4.  * The date does not have to be set for drafts. You can set the date and it will
  5.  * not be overridden.
  6.  *
  7. [email protected]
  8.  *
  9. [email protected][email protected]caped, objects are not.
  10. [email protected], Post ID on success.
  11.  */
  12. function wp_update_post($postarr = array()) {
  13.  if ( is_object($postarr) ) {
  14.   // non-escaped post was passed
  15.   $postarr = get_object_vars($postarr);
  16.   $postarr = add_magic_quotes($postarr);
  17.  }
  18.  // First, get all of the original fields
  19.  $post = wp_get_single_post($postarr['ID'], ARRAY_A);
  20.  // Escape data pulled from DB.
  21.  $post = add_magic_quotes($post);
  22.  // Passed post category list overwrites existing category list if not empty.
  23.  if ( isset($postarr['post_category']) && is_array($postarr['post_category'])
  24.     && 0 != count($postarr['post_category']) )
  25.   $post_cats = $postarr['post_category'];
  26.  else
  27.   $post_cats = $post['post_category'];
  28.  // Drafts shouldn't be assigned a date unless explicitly done so by the user
  29.  if ( isset( $post['post_status'] ) && in_array($post['post_status'], array('draft', 'pending', 'auto-draft')) && emptyempty($postarr['edit_date']) &&
  30.     ('0000-00-00 00:00:00' == $post['post_date_gmt']) )
  31.   $clear_date = true;
  32.  else
  33.   $clear_date = false;
  34.  // Merge old and new fields with new fields overwriting old ones.
  35.  $postarr = array_merge($post$postarr);
  36.  $postarr['post_category'] = $post_cats;
  37.  if ( $clear_date ) {
  38.   $postarr['post_date'] = current_time('mysql');
  39.   $postarr['post_date_gmt'] = '';
  40.  }
  41.  if ($postarr['post_type'] == 'attachment')
  42.   return wp_insert_attachment($postarr);
  43.  return wp_insert_post($postarr);
  44. }
wordpress精仿虎嗅网wordpress主题

蛋壳免备案香港主机,wordpress专用,低至9元/月,年付8折,完美兼容所有主题

7x24小时服务

主题猫WP建站,累计帮助1000+用户成功建站,为草根创业提供助力!

立刻开启你的建站之旅
在线咨询 意见反馈