当前浏览:首页 / WordPress函数 / wp_insert_attachment()

wp_insert_attachment( string|array $args, string|false $file = false, int $parent, bool $wp_error = false, bool $fire_after_hooks = true ): int|WP_Error

插入附件

attachment 附件more...

insert


描述

如果在$args参数中设置了“ID”,则表示您正在更新并尝试更新附件。您还可以通过设置键‘post_name’或‘post_title’来设置附件名称或标题。

您可以通过设置‘post_date’和‘post_date_gmt’键的值手动设置附件的日期。

默认情况下,评论将使用是否允许评论的默认设置。您可以手动关闭它们,也可以通过设置‘comment_status’键的值来保持它们打开。

另见


参数

$argsstring|array必填
用于插入附件的参数。
$filestring|false可选
文件名。

默认:false

$parentint可选
父post ID。
$wp_errorbool可选
失败时是否返回WP_Error

默认:false

$fire_after_hooksbool可选
是否启动插入后挂钩。

默认:true


返回

int|WP_Error 成功时的附件ID。失败时的0值或WP_Error



源码

查看源码 官方文档


更新日志

版本描述
5.6.0添加了$fire_after_hooks参数。
4.7.0添加了$wp_error参数,以允许在出现失败时返回WP_Error
2.0.0开始引入

使用示例

  • 示例1

    示例
    将附件插入到文章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 );
    ?>
  • 示例2

    如果要插入媒体附件,标题和描述分别为‘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
    	);
  • 示例3

    失败时返回int 0

  • 示例4

    将图像附加到文章后,可以使用set_post_thumbnail()将其设置为文章的特色图像。

  • 示例5

    用法

    <?php wp_insert_attachment( $attachment, $filename, $parent_post_id ); ?>