wp_prepare_attachment_for_js() – Prepares an attachment post object for JS, where it is expected to be JSON-encoded and fit into an Attachment model.

You appear to be a bot. Output may be restricted

Description

Prepares an attachment post object for JS, where it is expected to be JSON-encoded and fit into an Attachment model.

Usage

$array|void = wp_prepare_attachment_for_js( $attachment );

Parameters

$attachment
( int|WP_Post ) required – Attachment ID or object.
$alt
( string ) required – Alt text of the attachment.
$author
( string ) required – ID of the attachment author, as a string.
$authorName
( string ) required – Name of the attachment author.
$caption
( string ) required – Caption for the attachment.
$compat
( array ) required – Containing item and meta.
$context
( string ) required – Context, whether it's used as the site icon for example.
$date
( int ) required – Uploaded date, timestamp in milliseconds.
$dateFormatted
( string ) required – Formatted date (e.g. June 29, 2018).
$description
( string ) required – Description of the attachment.
$editLink
( string ) required – URL to the edit page for the attachment.
$filename
( string ) required – File name of the attachment.
$filesizeHumanReadable
( string ) required – Filesize of the attachment in human readable format (e.g. 1 MB).
$filesizeInBytes
( int ) required – Filesize of the attachment in bytes.
$height
( int ) required – If the attachment is an image, represents the height of the image in pixels.
$icon
( string ) required – Icon URL of the attachment (e.g. /wp-includes/images/media/archive.png).
$id
( int ) required – ID of the attachment.
$link
( string ) required – URL to the attachment.
$menuOrder
( int ) required – Menu order of the attachment post.
$meta
( array ) required – Meta data for the attachment.
$mime
( string ) required – Mime type of the attachment (e.g. image/jpeg or application/zip).
$modified
( int ) required – Last modified, timestamp in milliseconds.
$name
( string ) required – Name, same as title of the attachment.
$nonces
( array ) required – Nonces for update, delete and edit.
$orientation
( string ) required – If the attachment is an image, represents the image orientation (landscape or portrait).
$sizes
( array ) required – If the attachment is an image, contains an array of arrays for the images sizes: thumbnail, medium, large, and full.
$status
( string ) required – Post status of the attachment (usually 'inherit').
$subtype
( string ) required – Mime subtype of the attachment (usually the last part, e.g. jpeg or zip).
$title
( string ) required – Title of the attachment (usually slugified file name without the extension).
$type
( string ) required – Type of the attachment (usually first part of the mime type, e.g. image).
$uploadedTo
( int ) required – Parent post to which the attachment was uploaded.
$uploadedToLink
( string ) required – URL to the edit page of the parent post of the attachment.
$uploadedToTitle
( string ) required – Post title of the parent of the attachment.
$url
( string ) required – Direct URL to the attachment file (from wp-content).
$width
( int ) required – If the attachment is an image, represents the width of the image in pixels. }

Returns

array|void { Array of attachment details, or void if the parameter does not correspond to an attachment.

Source

File name: wordpress/wp-includes/media.php
Lines:

1 to 100 of 241
function wp_prepare_attachment_for_js( $attachment ) {
  $attachment = get_post( $attachment );

  if ( ! $attachment ) {
    return;
  }

  if ( 'attachment' !== $attachment->post_type ) {
    return;
  }

  $meta = wp_get_attachment_metadata( $attachment->ID );
  if ( str_contains( $attachment->post_mime_type, '/' ) ) {
    list( $type, $subtype ) = explode( '/', $attachment->post_mime_type );
  } else {
    list( $type, $subtype ) = array( $attachment->post_mime_type, '' );
  }

  $attachment_url = wp_get_attachment_url( $attachment->ID );
  $base_url       = str_replace( wp_basename( $attachment_url ), '', $attachment_url );

  $response = array(
    'id'            => $attachment->ID,
    'title'         => $attachment->post_title,
    'filename'      => wp_basename( get_attached_file( $attachment->ID ) ),
    'url'           => $attachment_url,
    'link'          => get_attachment_link( $attachment->ID ),
    'alt'           => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
    'author'        => $attachment->post_author,
    'description'   => $attachment->post_content,
    'caption'       => $attachment->post_excerpt,
    'name'          => $attachment->post_name,
    'status'        => $attachment->post_status,
    'uploadedTo'    => $attachment->post_parent,
    'date'          => strtotime( $attachment->post_date_gmt ) * 1000,
    'modified'      => strtotime( $attachment->post_modified_gmt ) * 1000,
    'menuOrder'     => $attachment->menu_order,
    'mime'          => $attachment->post_mime_type,
    'type'          => $type,
    'subtype'       => $subtype,
    'icon'          => wp_mime_type_icon( $attachment->ID ),
    'dateFormatted' => mysql2date( __( 'F j, Y' ), $attachment->post_date ),
    'nonces'        => array(
      'update' => false,
      'delete' => false,
      'edit'   => false,
    ),
    'editLink'      => false,
    'meta'          => false,
  );

  $author = new WP_User( $attachment->post_author );

  if ( $author->exists() ) {
    $author_name            = $author->display_name ? $author->display_name : $author->nickname;
    $response['authorName'] = html_entity_decode( $author_name, ENT_QUOTES, get_bloginfo( 'charset' ) );
    $response['authorLink'] = get_edit_user_link( $author->ID );
  } else {
    $response['authorName'] = __( '(no author)' );
  }

  if ( $attachment->post_parent ) {
    $post_parent = get_post( $attachment->post_parent );
    if ( $post_parent ) {
      $response['uploadedToTitle'] = $post_parent->post_title ? $post_parent->post_title : __( '(no title)' );
      $response['uploadedToLink']  = get_edit_post_link( $attachment->post_parent, 'raw' );
    }
  }

  $attached_file = get_attached_file( $attachment->ID );

  if ( isset( $meta['filesize'] ) ) {
    $bytes = $meta['filesize'];
  } elseif ( file_exists( $attached_file ) ) {
    $bytes = wp_filesize( $attached_file );
  } else {
    $bytes = '';
  }

  if ( $bytes ) {
    $response['filesizeInBytes']       = $bytes;
    $response['filesizeHumanReadable'] = size_format( $bytes );
  }

  $context             = get_post_meta( $attachment->ID, '_wp_attachment_context', true );
  $response['context'] = ( $context ) ? $context : '';

  if ( current_user_can( 'edit_post', $attachment->ID ) ) {
    $response['nonces']['update'] = wp_create_nonce( 'update-post_' . $attachment->ID );
    $response['nonces']['edit']   = wp_create_nonce( 'image_editor-' . $attachment->ID );
    $response['editLink']         = get_edit_post_link( $attachment->ID, 'raw' );
  }

  if ( current_user_can( 'delete_post', $attachment->ID ) ) {
    $response['nonces']['delete'] = wp_create_nonce( 'delete-post_' . $attachment->ID );
  }

  if ( $meta && ( 'image' === $type || ! empty( $meta['sizes'] ) ) ) {
    $sizes = array();

 

 View on GitHub View on Trac