本文整理汇总了PHP中get_compat_media_markup函数的典型用法代码示例。如果您正苦于以下问题:PHP get_compat_media_markup函数的具体用法?PHP get_compat_media_markup怎么用?PHP get_compat_media_markup使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_compat_media_markup函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: render_attachment
function render_attachment($id = 0, $field)
{
// vars
$attachment = wp_prepare_attachment_for_js($id);
$thumb = '';
$prefix = "attachments[{$id}]";
$compat = get_compat_media_markup($id);
$dimentions = '';
// thumb
if (isset($attachment['thumb']['src'])) {
// video
$thumb = $attachment['thumb']['src'];
} elseif (isset($attachment['sizes']['thumbnail']['url'])) {
// image
$thumb = $attachment['sizes']['thumbnail']['url'];
} elseif ($attachment['type'] === 'image') {
// svg
$thumb = $attachment['url'];
} else {
// fallback (perhaps attachment does not exist)
$thumb = $attachment['icon'];
}
// dimentions
if ($attachment['type'] === 'audio') {
$dimentions = __('Length', 'acf') . ': ' . $attachment['fileLength'];
} elseif (!empty($attachment['width'])) {
$dimentions = $attachment['width'] . ' x ' . $attachment['height'];
}
if ($attachment['filesizeHumanReadable']) {
$dimentions .= ' (' . $attachment['filesizeHumanReadable'] . ')';
}
?>
<div class="acf-gallery-side-info acf-cf">
<img src="<?php
echo $thumb;
?>
" alt="<?php
echo $attachment['alt'];
?>
" />
<p class="filename"><strong><?php
echo $attachment['filename'];
?>
</strong></p>
<p class="uploaded"><?php
echo $attachment['dateFormatted'];
?>
</p>
<p class="dimensions"><?php
echo $dimentions;
?>
</p>
<p class="actions"><a href="#" class="edit-attachment" data-id="<?php
echo $id;
?>
"><?php
_e('Edit', 'acf');
?>
</a> <a href="#" class="remove-attachment" data-id="<?php
echo $id;
?>
"><?php
_e('Remove', 'acf');
?>
</a></p>
</div>
<table class="form-table">
<tbody>
<?php
acf_render_field_wrap(array('name' => 'title', 'prefix' => $prefix, 'type' => 'text', 'label' => 'Title', 'value' => $attachment['title']), 'tr');
acf_render_field_wrap(array('name' => 'caption', 'prefix' => $prefix, 'type' => 'textarea', 'label' => 'Caption', 'value' => $attachment['caption']), 'tr');
acf_render_field_wrap(array('name' => 'alt', 'prefix' => $prefix, 'type' => 'text', 'label' => 'Alt Text', 'value' => $attachment['alt']), 'tr');
acf_render_field_wrap(array('name' => 'description', 'prefix' => $prefix, 'type' => 'textarea', 'label' => 'Description', 'value' => $attachment['description']), 'tr');
?>
</tbody>
</table>
<?php
echo $compat['item'];
?>
<?php
}
示例2: edit_form_image_editor
//.........这里部分代码省略.........
" style="max-width:100%" alt="" /></p>
<p><?php
echo $image_edit_button;
?>
</p>
</div>
<div<?php
if (!$open) {
echo ' style="display:none"';
}
?>
class="image-editor" id="image-editor-<?php
echo $attachment_id;
?>
">
<?php
if ($open) {
wp_image_editor($attachment_id);
}
?>
</div>
<?php
} elseif ($attachment_id && 0 === strpos($post->post_mime_type, 'audio/')) {
wp_maybe_generate_attachment_metadata($post);
echo wp_audio_shortcode(array('src' => $att_url));
} elseif ($attachment_id && 0 === strpos($post->post_mime_type, 'video/')) {
wp_maybe_generate_attachment_metadata($post);
$meta = wp_get_attachment_metadata($attachment_id);
$w = !empty($meta['width']) ? min($meta['width'], 640) : 0;
$h = !empty($meta['height']) ? $meta['height'] : 0;
if ($h && $w < $meta['width']) {
$h = round($meta['height'] * $w / $meta['width']);
}
$attr = array('src' => $att_url);
if (!empty($w) && !empty($h)) {
$attr['width'] = $w;
$attr['height'] = $h;
}
$thumb_id = get_post_thumbnail_id($attachment_id);
if (!empty($thumb_id)) {
$attr['poster'] = wp_get_attachment_url($thumb_id);
}
echo wp_video_shortcode($attr);
}
?>
</div>
<div class="wp_attachment_details edit-form-section">
<p>
<label for="attachment_caption"><strong><?php
_e('Caption');
?>
</strong></label><br />
<textarea class="widefat" name="excerpt" id="attachment_caption"><?php
echo $post->post_excerpt;
?>
</textarea>
</p>
<?php
if ('image' === substr($post->post_mime_type, 0, 5)) {
?>
<p>
<label for="attachment_alt"><strong><?php
_e('Alternative Text');
?>
</strong></label><br />
<input type="text" class="widefat" name="_wp_attachment_image_alt" id="attachment_alt" value="<?php
echo esc_attr($alt_text);
?>
" />
</p>
<?php
}
?>
<?php
$quicktags_settings = array('buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,close');
$editor_args = array('textarea_name' => 'content', 'textarea_rows' => 5, 'media_buttons' => false, 'tinymce' => false, 'quicktags' => $quicktags_settings);
?>
<label for="content"><strong><?php
_e('Description');
?>
</strong><?php
if (preg_match('#^(audio|video)/#', $post->post_mime_type)) {
echo ': ' . __('Displayed on attachment pages.');
}
?>
</label>
<?php
wp_editor($post->post_content, 'attachment_content', $editor_args);
?>
</div>
<?php
$extras = get_compat_media_markup($post->ID);
echo $extras['item'];
echo '<input type="hidden" id="image-edit-context" value="edit-attachment" />' . "\n";
}
示例3: edit_form_image_editor
/**
* Displays the image and editor in the post editor
*
* @since 3.5.0
*/
function edit_form_image_editor()
{
$post = get_post();
$thumb_url = false;
if ($attachment_id = intval($post->ID)) {
$thumb_url = wp_get_attachment_image_src($attachment_id, array(900, 600), true);
}
$filename = esc_html(basename($post->guid));
$title = esc_attr($post->post_title);
$alt_text = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
$media_dims = '';
$meta = wp_get_attachment_metadata($post->ID);
if (is_array($meta) && array_key_exists('width', $meta) && array_key_exists('height', $meta)) {
$media_dims .= "<span id='media-dims-{$post->ID}'>{$meta['width']} × {$meta['height']}</span> ";
}
$media_dims = apply_filters('media_meta', $media_dims, $post);
$att_url = wp_get_attachment_url($post->ID);
$image_edit_button = '';
if (wp_image_editor_supports(array('mime_type' => $post->post_mime_type))) {
$nonce = wp_create_nonce("image_editor-{$post->ID}");
$image_edit_button = "<input type='button' id='imgedit-open-btn-{$post->ID}' onclick='imageEdit.open( {$post->ID}, \"{$nonce}\" )' class='button' value='" . esc_attr__('Edit Image') . "' /> <span class='spinner'></span>";
}
?>
<div class="wp_attachment_holder">
<div class="imgedit-response" id="imgedit-response-<?php
echo $attachment_id;
?>
"></div>
<div class="wp_attachment_image" id="media-head-<?php
echo $attachment_id;
?>
">
<p id="thumbnail-head-<?php
echo $attachment_id;
?>
"><img class="thumbnail" src="<?php
echo set_url_scheme($thumb_url[0]);
?>
" style="max-width:100%" alt="" /></p>
<p><?php
echo $image_edit_button;
?>
</p>
</div>
<div style="display:none" class="image-editor" id="image-editor-<?php
echo $attachment_id;
?>
"></div>
</div>
<div class="wp_attachment_details">
<p>
<label for="attachment_caption"><strong><?php
_e('Caption');
?>
</strong></label><br />
<textarea class="widefat" name="excerpt" id="attachment_caption"><?php
echo $post->post_excerpt;
?>
</textarea>
</p>
<?php
if ('image' === substr($post->post_mime_type, 0, 5)) {
?>
<p>
<label for="attachment_alt"><strong><?php
_e('Alternative Text');
?>
</strong></label><br />
<input type="text" class="widefat" name="_wp_attachment_image_alt" id="attachment_alt" value="<?php
echo esc_attr($alt_text);
?>
" />
</p>
<?php
}
?>
</div>
<?php
$extras = get_compat_media_markup($post->ID);
echo $extras['item'];
foreach ($extras['hidden'] as $hidden_field => $value) {
echo '<input type="hidden" name="' . esc_attr($hidden_field) . '" value="' . esc_attr($value) . '" />' . "\n";
}
echo '<input type="hidden" id="image-edit-context" value="edit-attachment" />' . "\n";
}
示例4: wp_prepare_attachment_for_js
//.........这里部分代码省略.........
$bytes = $meta['filesize'];
} elseif (file_exists($attached_file)) {
$bytes = filesize($attached_file);
} else {
$bytes = '';
}
if ($bytes) {
$response['filesizeInBytes'] = $bytes;
$response['filesizeHumanReadable'] = size_format($bytes);
}
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) {
$sizes = array();
/** This filter is documented in wp-admin/includes/media.php */
$possible_sizes = apply_filters('image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')));
unset($possible_sizes['full']);
// Loop through all potential sizes that may be chosen. Try to do this with some efficiency.
// First: run the image_downsize filter. If it returns something, we can use its data.
// If the filter does not return something, then image_downsize() is just an expensive
// way to check the image metadata, which we do second.
foreach ($possible_sizes as $size => $label) {
/** This filter is documented in wp-includes/media.php */
if ($downsize = apply_filters('image_downsize', false, $attachment->ID, $size)) {
if (!$downsize[3]) {
continue;
}
$sizes[$size] = array('height' => $downsize[2], 'width' => $downsize[1], 'url' => $downsize[0], 'orientation' => $downsize[2] > $downsize[1] ? 'portrait' : 'landscape');
} elseif (isset($meta['sizes'][$size])) {
if (!isset($base_url)) {
$base_url = str_replace(wp_basename($attachment_url), '', $attachment_url);
}
// Nothing from the filter, so consult image metadata if we have it.
$size_meta = $meta['sizes'][$size];
// We have the actual image size, but might need to further constrain it if content_width is narrower.
// Thumbnail, medium, and full sizes are also checked against the site's height/width options.
list($width, $height) = image_constrain_size_for_editor($size_meta['width'], $size_meta['height'], $size, 'edit');
$sizes[$size] = array('height' => $height, 'width' => $width, 'url' => $base_url . $size_meta['file'], 'orientation' => $height > $width ? 'portrait' : 'landscape');
}
}
$sizes['full'] = array('url' => $attachment_url);
if (isset($meta['height'], $meta['width'])) {
$sizes['full']['height'] = $meta['height'];
$sizes['full']['width'] = $meta['width'];
$sizes['full']['orientation'] = $meta['height'] > $meta['width'] ? 'portrait' : 'landscape';
}
$response = array_merge($response, array('sizes' => $sizes), $sizes['full']);
} elseif ($meta && 'video' === $type) {
if (isset($meta['width'])) {
$response['width'] = (int) $meta['width'];
}
if (isset($meta['height'])) {
$response['height'] = (int) $meta['height'];
}
}
if ($meta && ('audio' === $type || 'video' === $type)) {
if (isset($meta['length_formatted'])) {
$response['fileLength'] = $meta['length_formatted'];
}
$response['meta'] = array();
foreach (wp_get_attachment_id3_keys($attachment, 'js') as $key => $label) {
$response['meta'][$key] = false;
if (!empty($meta[$key])) {
$response['meta'][$key] = $meta[$key];
}
}
$id = get_post_thumbnail_id($attachment->ID);
if (!empty($id)) {
list($src, $width, $height) = wp_get_attachment_image_src($id, 'full');
$response['image'] = compact('src', 'width', 'height');
list($src, $width, $height) = wp_get_attachment_image_src($id, 'thumbnail');
$response['thumb'] = compact('src', 'width', 'height');
} else {
$src = wp_mime_type_icon($attachment->ID);
$width = 48;
$height = 64;
$response['image'] = compact('src', 'width', 'height');
$response['thumb'] = compact('src', 'width', 'height');
}
}
if (function_exists('get_compat_media_markup')) {
$response['compat'] = get_compat_media_markup($attachment->ID, array('in_modal' => true));
}
/**
* Filter the attachment data prepared for JavaScript.
*
* @since 3.5.0
*
* @param array $response Array of prepared attachment data.
* @param int|object $attachment Attachment ID or object.
* @param array $meta Array of attachment meta data.
*/
return apply_filters('wp_prepare_attachment_for_js', $response, $attachment, $meta);
}
示例5: wp_prepare_attachment_for_js
//.........这里部分代码省略.........
'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( get_option('date_format'), $attachment->post_date ),
'nonces' => array(
'update' => false,
'delete' => false,
),
'editLink' => false,
);
if ( current_user_can( 'edit_post', $attachment->ID ) ) {
$response['nonces']['update'] = wp_create_nonce( 'update-post_' . $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 ) {
$sizes = array();
/** This filter is documented in wp-admin/includes/media.php */
$possible_sizes = apply_filters( 'image_size_names_choose', array(
'thumbnail' => __('Thumbnail'),
'medium' => __('Medium'),
'large' => __('Large'),
'full' => __('Full Size'),
) );
unset( $possible_sizes['full'] );
// Loop through all potential sizes that may be chosen. Try to do this with some efficiency.
// First: run the image_downsize filter. If it returns something, we can use its data.
// If the filter does not return something, then image_downsize() is just an expensive
// way to check the image metadata, which we do second.
foreach ( $possible_sizes as $size => $label ) {
if ( $downsize = apply_filters( 'image_downsize', false, $attachment->ID, $size ) ) {
if ( ! $downsize[3] )
continue;
$sizes[ $size ] = array(
'height' => $downsize[2],
'width' => $downsize[1],
'url' => $downsize[0],
'orientation' => $downsize[2] > $downsize[1] ? 'portrait' : 'landscape',
);
} elseif ( isset( $meta['sizes'][ $size ] ) ) {
if ( ! isset( $base_url ) )
$base_url = str_replace( wp_basename( $attachment_url ), '', $attachment_url );
// Nothing from the filter, so consult image metadata if we have it.
$size_meta = $meta['sizes'][ $size ];
// We have the actual image size, but might need to further constrain it if content_width is narrower.
// Thumbnail, medium, and full sizes are also checked against the site's height/width options.
list( $width, $height ) = image_constrain_size_for_editor( $size_meta['width'], $size_meta['height'], $size, 'edit' );
$sizes[ $size ] = array(
'height' => $height,
'width' => $width,
'url' => $base_url . $size_meta['file'],
'orientation' => $height > $width ? 'portrait' : 'landscape',
);
}
}
$sizes['full'] = array( 'url' => $attachment_url );
if ( isset( $meta['height'], $meta['width'] ) ) {
$sizes['full']['height'] = $meta['height'];
$sizes['full']['width'] = $meta['width'];
$sizes['full']['orientation'] = $meta['height'] > $meta['width'] ? 'portrait' : 'landscape';
}
$response = array_merge( $response, array( 'sizes' => $sizes ), $sizes['full'] );
} elseif ( $meta && 'video' === $type ) {
if ( isset( $meta['width'] ) )
$response['width'] = (int) $meta['width'];
if ( isset( $meta['height'] ) )
$response['height'] = (int) $meta['height'];
}
if ( $meta && ( 'audio' === $type || 'video' === $type ) ) {
if ( isset( $meta['length_formatted'] ) )
$response['fileLength'] = $meta['length_formatted'];
}
if ( function_exists('get_compat_media_markup') )
$response['compat'] = get_compat_media_markup( $attachment->ID, array( 'in_modal' => true ) );
return apply_filters( 'wp_prepare_attachment_for_js', $response, $attachment, $meta );
}
示例6: render_attachment
function render_attachment($id = 0, $field)
{
$attachment = wp_prepare_attachment_for_js($id);
$prefix = "attachments[{$id}]";
$compat = get_compat_media_markup($id);
?>
<div class="acf-gallery-side-info acf-cf">
<img src="<?php
echo $attachment['sizes']['thumbnail']['url'];
?>
" alt="<?php
echo $attachment['alt'];
?>
" />
<p class="filename"><strong><?php
_e('Attachment Details', 'acf');
?>
</strong></p>
<p class="uploaded"><?php
echo $attachment['dateFormatted'];
?>
</p>
<p class="dimensions"><?php
echo $attachment['width'];
?>
× <?php
echo $attachment['height'];
?>
</p>
</div>
<table class="form-table">
<tbody>
<?php
acf_render_field_wrap(array('name' => 'title', 'prefix' => $prefix, 'type' => 'text', 'label' => 'Title', 'value' => $attachment['title']), 'tr');
acf_render_field_wrap(array('name' => 'caption', 'prefix' => $prefix, 'type' => 'textarea', 'label' => 'Caption', 'value' => $attachment['caption']), 'tr');
acf_render_field_wrap(array('name' => 'alt', 'prefix' => $prefix, 'type' => 'text', 'label' => 'Alt Text', 'value' => $attachment['alt']), 'tr');
acf_render_field_wrap(array('name' => 'description', 'prefix' => $prefix, 'type' => 'textarea', 'label' => 'Description', 'value' => $attachment['description']), 'tr');
?>
</tbody>
</table>
<?php
echo $compat['item'];
?>
<?php
}
示例7: edit_form_image_editor
//.........这里部分代码省略.........
if (wp_image_editor_supports(array('mime_type' => $post->post_mime_type))) {
$nonce = wp_create_nonce("image_editor-{$post->ID}");
$image_edit_button = "<input type='button' id='imgedit-open-btn-{$post->ID}' onclick='imageEdit.open( {$post->ID}, \"{$nonce}\" )' class='button' value='" . esc_attr__('Edit Image') . "' /> <span class='spinner'></span>";
}
?>
<div class="wp_attachment_holder">
<div class="imgedit-response" id="imgedit-response-<?php
echo $attachment_id;
?>
"></div>
<div<?php
if ($open) {
echo ' style="display:none"';
}
?>
class="wp_attachment_image" id="media-head-<?php
echo $attachment_id;
?>
">
<p id="thumbnail-head-<?php
echo $attachment_id;
?>
"><img class="thumbnail" src="<?php
echo set_url_scheme($thumb_url[0]);
?>
" style="max-width:100%" alt="" /></p>
<p><?php
echo $image_edit_button;
?>
</p>
</div>
<div<?php
if (!$open) {
echo ' style="display:none"';
}
?>
class="image-editor" id="image-editor-<?php
echo $attachment_id;
?>
">
<?php
if ($open) {
wp_image_editor($attachment_id);
}
?>
</div>
</div>
<?php
}
?>
<div class="wp_attachment_details">
<p>
<label for="attachment_caption"><strong><?php
_e('Caption');
?>
</strong></label><br />
<textarea class="widefat" name="excerpt" id="attachment_caption"><?php
echo $post->post_excerpt;
?>
</textarea>
</p>
<?php
if ('image' === substr($post->post_mime_type, 0, 5)) {
?>
<p>
<label for="attachment_alt"><strong><?php
_e('Alternative Text');
?>
</strong></label><br />
<input type="text" class="widefat" name="_wp_attachment_image_alt" id="attachment_alt" value="<?php
echo esc_attr($alt_text);
?>
" />
</p>
<?php
}
?>
<?php
$quicktags_settings = array('buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close');
$editor_args = array('textarea_name' => 'content', 'textarea_rows' => 5, 'media_buttons' => false, 'tinymce' => false, 'quicktags' => $quicktags_settings);
?>
<label for="content"><strong><?php
_e('Description');
?>
</strong></label>
<?php
wp_editor($post->post_content, 'attachment_content', $editor_args);
?>
</div>
<?php
$extras = get_compat_media_markup($post->ID);
echo $extras['item'];
echo '<input type="hidden" id="image-edit-context" value="edit-attachment" />' . "\n";
}
示例8: 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.
*
* @since 3.5.0
*
* @param mixed $attachment Attachment ID or object.
* @return array Array of attachment details.
*/
function wp_prepare_attachment_for_js($attachment)
{
if (!($attachment = get_post($attachment))) {
return;
}
if ('attachment' != $attachment->post_type) {
return;
}
$meta = wp_get_attachment_metadata($attachment->ID);
if (false !== strpos($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);
$response = array('id' => $attachment->ID, 'title' => $attachment->post_title, 'filename' => basename($attachment->guid), '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(get_option('date_format'), $attachment->post_date), 'nonces' => array('update' => wp_create_nonce('update-post_' . $attachment->ID), 'delete' => wp_create_nonce('delete-post_' . $attachment->ID)));
if ($meta && 'image' === $type) {
$sizes = array();
$possible_sizes = apply_filters('image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')));
unset($possible_sizes['full']);
// Loop through all potential sizes that may be chosen. Try to do this with some efficiency.
// First: run the image_downsize filter. If it returns something, we can use its data.
// If the filter does not return something, then image_downsize() is just an expensive
// way to check the image metadata, which we do second.
foreach ($possible_sizes as $size => $label) {
if ($downsize = apply_filters('image_downsize', false, $attachment->ID, $size)) {
if (!$downsize[3]) {
continue;
}
$sizes[$size] = array('height' => $downsize[2], 'width' => $downsize[1], 'url' => $downsize[0], 'orientation' => $downsize[2] > $downsize[1] ? 'portrait' : 'landscape');
} elseif (isset($meta['sizes'][$size])) {
if (!isset($base_url)) {
$base_url = str_replace(wp_basename($attachment_url), '', $attachment_url);
}
// Nothing from the filter, so consult image metadata if we have it.
$size_meta = $meta['sizes'][$size];
$sizes[$size] = array('height' => $size_meta['height'], 'width' => $size_meta['width'], 'url' => $base_url . $size_meta['file'], 'orientation' => $size_meta['height'] > $size_meta['width'] ? 'portrait' : 'landscape');
}
}
$sizes['full'] = array('height' => $meta['height'], 'width' => $meta['width'], 'url' => $attachment_url, 'orientation' => $meta['height'] > $meta['width'] ? 'portrait' : 'landscape');
$response = array_merge($response, array('sizes' => $sizes), $sizes['full']);
}
if (function_exists('get_compat_media_markup')) {
$response['compat'] = get_compat_media_markup($attachment->ID, array('taxonomies' => true));
}
return apply_filters('wp_prepare_attachment_for_js', $response, $attachment, $meta);
}
示例9: 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.
*
* @since 3.5.0
*
* @param mixed $attachment Attachment ID or object.
* @return array Array of attachment details.
*/
function wp_prepare_attachment_for_js($attachment)
{
if (!($attachment = get_post($attachment))) {
return;
}
if ('attachment' != $attachment->post_type) {
return;
}
$meta = wp_get_attachment_metadata($attachment->ID);
list($type, $subtype) = explode('/', $attachment->post_mime_type);
$attachment_url = wp_get_attachment_url($attachment->ID);
$response = array('id' => $attachment->ID, 'title' => $attachment->post_title, 'filename' => basename($attachment->guid), '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, 'mime' => $attachment->post_mime_type, 'type' => $type, 'subtype' => $subtype, 'icon' => wp_mime_type_icon($attachment->ID), 'dateFormatted' => mysql2date(get_option('date_format'), $attachment->post_date));
if ($meta && 'image' === $type) {
$sizes = array();
$base_url = str_replace(wp_basename($attachment_url), '', $attachment_url);
if (isset($meta['sizes'])) {
foreach ($meta['sizes'] as $slug => $size) {
$sizes[$slug] = array('height' => $size['height'], 'width' => $size['width'], 'url' => $base_url . $size['file'], 'orientation' => $size['height'] > $size['width'] ? 'portrait' : 'landscape');
}
}
$sizes['full'] = array('height' => $meta['height'], 'width' => $meta['width'], 'url' => $attachment_url, 'orientation' => $meta['height'] > $meta['width'] ? 'portrait' : 'landscape');
$response = array_merge($response, array('sizes' => $sizes), $sizes['full']);
}
if (function_exists('get_compat_media_markup')) {
$response['compat'] = get_compat_media_markup($attachment->ID, array('taxonomies' => true));
}
return apply_filters('wp_prepare_attachment_for_js', $response, $attachment, $meta);
}