描述
如果在$args参数中设置了“ID”,则表示您正在更新并尝试更新附件。您还可以通过设置键‘post_name’或‘post_title’来设置附件名称或标题。
您可以通过设置‘post_date’和‘post_date_gmt’键的值手动设置附件的日期。
默认情况下,评论将使用是否允许评论的默认设置。您可以手动关闭它们,也可以通过设置‘comment_status’键的值来保持它们打开。
另见
参数
$args
string|array必填-
用于插入附件的参数。
$file
string|false可选-
文件名。
默认:
false
$parent
int可选-
父post ID。
$wp_error
bool可选-
失败时是否返回WP_Error。
默认:
false
$fire_after_hooks
bool可选-
是否启动插入后挂钩。
默认:
true
返回
int|WP_Error 成功时的附件ID。失败时的0值或WP_Error。
源码
更新日志
版本 | 描述 |
---|---|
5.6.0 | 添加了$fire_after_hooks 参数。 |
4.7.0 | 添加了$wp_error 参数,以允许在出现失败时返回WP_Error。 |
2.0.0 | 开始引入 |
使用示例
示例
将附件插入到文章ID为37的父项:<?php // $filename should be the path to a file in the upload directory. $filename = '/path/to/uploads/2013/03/filename.jpg'; // The ID of the post this attachment is for. $parent_post_id = 37; // Check the type of file. We'll use this as the 'post_mime_type'. $filetype = wp_check_filetype( basename( $filename ), null ); // Get the path to the upload directory. $wp_upload_dir = wp_upload_dir(); // Prepare an array of post data for the attachment. $attachment = array( 'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ), 'post_mime_type' => $filetype['type'], 'post_title' => preg_replace( '/.[^.]+$/', '', basename( $filename ) ), 'post_content' => '', 'post_status' => 'inherit' ); // Insert the attachment. $attach_id = wp_insert_attachment( $attachment, $filename, $parent_post_id ); // Make sure that this file is included, as wp_generate_attachment_metadata() depends on it. require_once( ABSPATH . 'wp-admin/includes/image.php' ); // Generate the metadata for the attachment, and update the database record. $attach_data = wp_generate_attachment_metadata( $attach_id, $filename ); wp_update_attachment_metadata( $attach_id, $attach_data ); set_post_thumbnail( $parent_post_id, $attach_id ); ?>
如果要插入媒体附件,标题和描述分别为‘post_excerpt’和‘post_content’。例子:
wp_insert_attachment( array( 'guid' => $upload['url'], 'post_title' => sanitize_text_field( $title ), 'post_excerpt' => sanitize_text_field( $caption ), 'post_content' => sanitize_text_field( $description ), 'post_mime_type' => $response_headers['content-type'], ), $upload['file'], 0 );
失败时返回int 0
将图像附加到文章后,可以使用
set_post_thumbnail()
将其设置为文章的特色图像。用法
<?php wp_insert_attachment( $attachment, $filename, $parent_post_id ); ?>