本文整理汇总了PHP中wp_generate_attachment_metadata函数的典型用法代码示例。如果您正苦于以下问题:PHP wp_generate_attachment_metadata函数的具体用法?PHP wp_generate_attachment_metadata怎么用?PHP wp_generate_attachment_metadata使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wp_generate_attachment_metadata函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: handle_upload
/**
* Upload
* Ajax callback function
*
* @return string Error or (XML-)response
*/
static function handle_upload()
{
check_admin_referer('rwmb-upload-images_' . $_REQUEST['field_id']);
$post_id = 0;
if (is_numeric($_REQUEST['post_id'])) {
$post_id = (int) $_REQUEST['post_id'];
}
// You can use WP's wp_handle_upload() function:
$file = $_FILES['async-upload'];
$file_attr = wp_handle_upload($file, array('test_form' => true, 'action' => 'plupload_image_upload'));
$attachment = array('guid' => $file_attr['url'], 'post_mime_type' => $file_attr['type'], 'post_title' => preg_replace('/\\.[^.]+$/', '', basename($file['name'])), 'post_content' => '', 'post_status' => 'inherit');
// Adds file as attachment to WordPress
$id = wp_insert_attachment($attachment, $file_attr['file'], $post_id);
if (!is_wp_error($id)) {
wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $file_attr['file']));
// Save file ID in meta field
if (isset($_REQUEST['field_id'])) {
add_post_meta($post_id, $_REQUEST['field_id'], $id, false);
}
$response = new WP_Ajax_Response();
$response->add(array('what' => 'rwmb_image_response', 'data' => self::img_html($id)));
$response->send();
}
exit;
}
开发者ID:scotlanddig,项目名称:bootstrap_basic,代码行数:31,代码来源:plupload-image.php
示例2: do_save
public function do_save($return_val, $params, $metas, $module)
{
if (empty($params['attachment_url'])) {
return false;
}
$bits = file_get_contents($params['attachment_url']);
$filename = $this->faker->uuid() . '.jpg';
$upload = wp_upload_bits($filename, null, $bits);
$params['guid'] = $upload['url'];
$params['post_mime_type'] = 'image/jpeg';
// Insert the attachment.
$attach_id = wp_insert_attachment($params, $upload['file'], 0);
if (!is_numeric($attach_id)) {
return false;
}
if (!function_exists('wp_generate_attachment_metadata')) {
// 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.
$metas['_wp_attachment_metadata'] = wp_generate_attachment_metadata($attach_id, $upload['file']);
foreach ($metas as $key => $value) {
update_post_meta($attach_id, $key, $value);
}
return $attach_id;
}
开发者ID:juanfra,项目名称:fakerpress,代码行数:26,代码来源:attachment.php
示例3: upload_file
/**
* @param strin $file_url
*
* @return int
*/
private function upload_file($file_url)
{
if (!filter_var($file_url, FILTER_VALIDATE_URL)) {
return false;
}
$contents = @file_get_contents($file_url);
if ($contents === false) {
return false;
}
$upload = wp_upload_bits(basename($file_url), null, $contents);
if (isset($upload['error']) && $upload['error']) {
return false;
}
$type = '';
if (!empty($upload['type'])) {
$type = $upload['type'];
} else {
$mime = wp_check_filetype($upload['file']);
if ($mime) {
$type = $mime['type'];
}
}
$attachment = array('post_title' => basename($upload['file']), 'post_content' => '', 'post_type' => 'attachment', 'post_mime_type' => $type, 'guid' => $upload['url']);
$id = wp_insert_attachment($attachment, $upload['file']);
wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $upload['file']));
return $id;
}
开发者ID:acutedeveloper,项目名称:havering-intranet-development,代码行数:32,代码来源:Featured_Image_Uploader.php
示例4: it_regenerate_wp_images
function it_regenerate_wp_images()
{
return false;
set_time_limit(0);
echo "<pre>";
echo "Regenerating thumbnails...\n";
$args = array('post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null);
$attachments = get_posts($args);
if ($attachments) {
echo count($attachments) . " images were found.\n";
foreach ($attachments as $attachment) {
$full_size_path = get_attached_file($attachment->ID);
if (false === $full_size_path || !file_exists($full_size_path)) {
echo "Image ID " . $attachment->ID . " was not found.\n";
continue;
}
$meta_data = wp_generate_attachment_metadata($attachment->ID, $full_size_path);
if (is_wp_error($meta_data)) {
echo "Image ID " . $attachment->ID . " raised an error: " . $mata_data->get_error_message() . "\n";
continue;
}
if (empty($meta_data)) {
echo "Image ID " . $attachment->ID . " failed with unknown reason\n";
continue;
}
wp_update_attachment_metadata($attachment->ID, $meta_data);
}
echo "Done.";
}
echo "</pre>";
}
开发者ID:hungrig4leben,项目名称:my-gp,代码行数:31,代码来源:intheme-utils.php
示例5: dswoddil_site_icon_upload
/**
* Upload theme default site icon
*
* @return void
*/
function dswoddil_site_icon_upload()
{
$image_name = 'site-icon';
if (!function_exists('wp_update_attachment_metadata')) {
require_once ABSPATH . 'wp-admin/includes/image.php';
}
if (!dswoddil_get_attachment_by_post_name('dswoddil-' . $image_name)) {
$site_icon = get_template_directory() . '/img/' . $image_name . '.png';
// create $file array with the indexes show below
$file['name'] = $site_icon;
$file['type'] = 'image/png';
// get image size
$file['size'] = filesize($file['name']);
$file['tmp_name'] = $image_name . '.png';
$file['error'] = 1;
$file_content = file_get_contents($site_icon);
$upload_image = wp_upload_bits($file['tmp_name'], null, $file_content);
// Check the type of tile. We'll use this as the 'post_mime_type'.
$filetype = wp_check_filetype(basename($upload_image['file']), null);
$attachment = array('guid' => $upload_image['file'], 'post_mime_type' => $filetype['type'], 'post_title' => 'dswoddil-' . $image_name, 'post_content' => '', 'post_status' => 'inherit');
//insert wordpress attachment of uploaded image to get attachmen ID
$attachment_id = wp_insert_attachment($attachment, $upload_image['file']);
//generate attachment thumbnail
wp_update_attachment_metadata($attachment_id, wp_generate_attachment_metadata($attachment_id, $upload_image['file']));
add_post_meta($attachment_id, '_wp_attachment_context', $image_name);
}
}
开发者ID:ertik,项目名称:dsw-oddil,代码行数:32,代码来源:site-icon.php
示例6: import
public function import($attachment)
{
$saved_image = $this->_return_saved_image($attachment);
if ($saved_image) {
return $saved_image;
}
// Extract the file name and extension from the url
$filename = basename($attachment['url']);
if (function_exists('file_get_contents')) {
$options = ['http' => ['user_agent' => 'Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64; rv:49.0) Gecko/20100101 Firefox/49.0']];
$context = stream_context_create($options);
$file_content = file_get_contents($attachment['url'], false, $context);
} else {
$file_content = wp_remote_retrieve_body(wp_safe_remote_get($attachment['url']));
}
if (empty($file_content)) {
return false;
}
$upload = wp_upload_bits($filename, null, $file_content);
$post = ['post_title' => $filename, 'guid' => $upload['url']];
$info = wp_check_filetype($upload['file']);
if ($info) {
$post['post_mime_type'] = $info['type'];
} else {
// For now just return the origin attachment
return $attachment;
//return new \WP_Error( 'attachment_processing_error', __( 'Invalid file type', 'elementor' ) );
}
$post_id = wp_insert_attachment($post, $upload['file']);
wp_update_attachment_metadata($post_id, wp_generate_attachment_metadata($post_id, $upload['file']));
update_post_meta($post_id, '_elementor_source_image_hash', $this->_get_hash_image($attachment['url']));
$new_attachment = ['id' => $post_id, 'url' => $upload['url']];
$this->_replace_image_ids[$attachment['id']] = $new_attachment;
return $new_attachment;
}
开发者ID:pojome,项目名称:elementor,代码行数:35,代码来源:class-import-images.php
示例7: process_attachment
function process_attachment($post, $url)
{
// if the URL is absolute, but does not contain address, then upload it assuming base_site_url
//if ( preg_match( '|^/[\w\W]+$|', $url ) )
// $url = rtrim( $this->base_url, '/' ) . $url;
global $url_remap;
$upload = fetch_remote_file($url, $post);
if (is_wp_error($upload)) {
return $upload;
}
if ($info = wp_check_filetype($upload['file'])) {
$post['post_mime_type'] = $info['type'];
} else {
return new WP_Error('attachment_processing_error', __('Invalid file type', 'wordpress-importer'));
}
$post['guid'] = $upload['url'];
// as per wp-admin/includes/upload.php
$post_id = wp_insert_attachment($post, $upload['file']);
wp_update_attachment_metadata($post_id, wp_generate_attachment_metadata($post_id, $upload['file']));
// remap resized image URLs, works by stripping the extension and remapping the URL stub.
if (preg_match('!^image/!', $info['type'])) {
$parts = pathinfo($url);
$name = basename($parts['basename'], ".{$parts['extension']}");
// PATHINFO_FILENAME in PHP 5.2
$parts_new = pathinfo($upload['url']);
$name_new = basename($parts_new['basename'], ".{$parts_new['extension']}");
$url_remap[$parts['dirname'] . '/' . $name] = $parts_new['dirname'] . '/' . $name_new;
}
return $post_id;
}
开发者ID:centroculturalsp,项目名称:cultural,代码行数:30,代码来源:importimages.php
示例8: add_image
static function add_image($image_url)
{
if (empty($image_url)) {
return FALSE;
}
// Add Featured Image to Post
$upload_dir = wp_upload_dir();
// Set upload folder
$image_data = file_get_contents($image_url);
// Get image data
$filename = basename($image_url);
// Create image file name
// Check folder permission and define file location
if (wp_mkdir_p($upload_dir['path'])) {
$file = $upload_dir['path'] . '/' . $filename;
} else {
$file = $upload_dir['basedir'] . '/' . $filename;
}
// Create the image file on the server
file_put_contents($file, $image_data);
// Check image file type
$wp_filetype = wp_check_filetype($filename, NULL);
// Set attachment data
$attachment = array('post_mime_type' => $wp_filetype['type'], 'post_title' => sanitize_file_name($filename), 'post_content' => '', 'post_status' => 'inherit');
// Create the attachment
$attach_id = wp_insert_attachment($attachment, $file);
// Include image.php
require_once ABSPATH . 'wp-admin/includes/image.php';
// Define attachment metadata
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
// Assign metadata to attachment
wp_update_attachment_metadata($attach_id, $attach_data);
return $attach_id;
}
开发者ID:gpsidhuu,项目名称:alphaReputation,代码行数:34,代码来源:xsUTL.php
示例9: wpua_avatar_upload
public function wpua_avatar_upload($file)
{
$filetype = wp_check_filetype($file->name);
$media_upload = array();
$media_upload['file'] = array('name' => $file->name, 'type' => $filetype['type'], 'tmp_name' => $file->path, 'error' => 0, 'size' => filesize($file->path));
$media_file = wp_handle_upload($media_upload['file'], array('test_form' => false, 'test_upload' => false, 'action' => 'custom_action'));
if ($media_file['file']) {
$url = $media_file['url'];
$filepath = $media_file['file'];
if ($image_meta = @wp_read_image_metadata($filepath)) {
if (trim($image_meta['title']) && !is_numeric(sanitize_title($image_meta['title']))) {
$title = $image_meta['title'];
}
}
$attachment = array('guid' => $url, 'post_mime_type' => $filetype['type'], 'post_title' => $title);
$attachment_id = wp_insert_attachment($attachment, $filepath);
if (!is_wp_error($attachment_id)) {
$this->delete_attachment_by_user($this->user_id);
wp_update_attachment_metadata($attachment_id, wp_generate_attachment_metadata($attachment_id, $filepath));
update_post_meta($attachment_id, '_wp_attachment_wp_user_avatar', $this->user_id);
$arr = wp_get_attachment_image_src($attachment_id, 'full');
$this->avatar_url = $arr[0];
$this->avatar_filename = basename($filepath);
$this->resource = $attachment_id;
$saved = $this->save();
if (!$saved) {
$this->delete_attachment($attachment_id);
return $saved;
}
return $saved;
}
} else {
return WP_Error('file_upload_problem', __("Media avatar could't uploading please check you have right permission for uploads folder.", 'wp-user-avatar-pro'));
}
}
开发者ID:andyUA,项目名称:kabmin-new,代码行数:35,代码来源:class-wpua-media-storage.php
示例10: regenerateThumbnails
public function regenerateThumbnails($image_id)
{
require_once 'wp-admin/includes/image.php';
$fullsizepath = get_attached_file($image_id);
$metadata = wp_generate_attachment_metadata($image_id, $fullsizepath);
wp_update_attachment_metadata($image_id, $metadata);
}
开发者ID:jeckel,项目名称:sp-plg-recent-posts,代码行数:7,代码来源:renderer.php
示例11: atp_plupload_action
function atp_plupload_action()
{
// check ajax noonce
$imgid = $_POST["imgid"];
check_ajax_referer($imgid . 'pluploadan');
$post_id = isset($_POST['post_id']) ? intval($_POST['post_id']) : 0;
// handle file upload
$filename = $_FILES[$imgid . 'async-upload']['name'];
$status = wp_handle_upload($_FILES[$imgid . 'async-upload'], array('test_form' => true, 'action' => 'plupload_action'));
if (!isset($status['file'])) {
continue;
}
$file_name = $status['file'];
$name_parts = pathinfo($file_name);
$name = trim(substr($filename, 0, -(1 + strlen($name_parts['extension']))));
$attachment = array('post_mime_type' => $status['type'], 'guid' => $status['url'], 'post_parent' => $post_id, 'post_title' => $name, 'post_content' => '');
$id = wp_insert_attachment($attachment, $file_name, $post_id);
if (!is_wp_error($id)) {
wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $file_name));
$new[] = $id;
}
// send the uploaded file url in response
$upload_path = wp_get_attachment_url($id, true);
if (preg_match_all('/[^\\?]+\\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $upload_path, $matches)) {
$image_attributes = wp_get_attachment_image_src($id, 'thumbnail');
// returns an array
$uplaod_url = $image_attributes[0];
} else {
$uplaod_url = $upload_path;
}
$imagetest = array('url' => $status['url'], 'link' => get_edit_post_link($id), 'audioid' => $id, 'name' => $name, 'img' => $uplaod_url);
echo json_encode($imagetest);
//print_r ($imagetest);
exit;
}
开发者ID:pryspry,项目名称:MusicPlay,代码行数:35,代码来源:meta-generator.php
示例12: custom_media_sideload_image
/**
* media_sideload_image, but returns ID
* @param string $image_url [description]
* @param boolean $post_id [description]
* @return [type] [description]
*/
function custom_media_sideload_image($image_url = '', $post_id = false)
{
require_once ABSPATH . 'wp-admin/includes/file.php';
$tmp = download_url($image_url);
// Set variables for storage
// fix file filename for query strings
preg_match('/[^\\?]+\\.(jpe?g|jpe|gif|png)\\b/i', $image_url, $matches);
$file_array['name'] = basename($matches[0]);
$file_array['tmp_name'] = $tmp;
// If error storing temporarily, unlink
if (is_wp_error($tmp)) {
@unlink($file_array['tmp_name']);
$file_array['tmp_name'] = '';
}
$time = current_time('mysql');
$file = wp_handle_sideload($file_array, array('test_form' => false), $time);
if (isset($file['error'])) {
return new WP_Error('upload_error', $file['error']);
}
$url = $file['url'];
$type = $file['type'];
$file = $file['file'];
$title = preg_replace('/\\.[^.]+$/', '', basename($file));
$parent = (int) absint($post_id) > 0 ? absint($post_id) : 0;
$attachment = array('post_mime_type' => $type, 'guid' => $url, 'post_parent' => $parent, 'post_title' => $title, 'post_content' => '');
$id = wp_insert_attachment($attachment, $file, $parent);
if (!is_wp_error($id)) {
require_once ABSPATH . 'wp-admin/includes/image.php';
$data = wp_generate_attachment_metadata($id, $file);
wp_update_attachment_metadata($id, $data);
}
return $id;
}
开发者ID:developmentDM2,项目名称:Whohaha,代码行数:39,代码来源:snippets.php
示例13: regenerate_thumbnail
/**
* From regenerate thumbnails plugin
*/
public function regenerate_thumbnail()
{
@error_reporting(0);
// Don't break the JSON result
header('Content-type: application/json');
$id = (int) $_REQUEST['id'];
$image = get_post($id);
if (!$image || 'attachment' != $image->post_type || 'image/' != substr($image->post_mime_type, 0, 6)) {
die(json_encode(array('error' => sprintf(__('Failed resize: %s is an invalid image ID.', 'wc_csv_import'), esc_html($_REQUEST['id'])))));
}
if (!current_user_can('manage_woocommerce')) {
$this->die_json_error_msg($image->ID, __("Your user account doesn't have permission to resize images", 'wc_csv_import'));
}
$fullsizepath = get_attached_file($image->ID);
if (false === $fullsizepath || !file_exists($fullsizepath)) {
$this->die_json_error_msg($image->ID, sprintf(__('The originally uploaded image file cannot be found at %s', 'wc_csv_import'), '<code>' . esc_html($fullsizepath) . '</code>'));
}
@set_time_limit(900);
// 5 minutes per image should be PLENTY
$metadata = wp_generate_attachment_metadata($image->ID, $fullsizepath);
if (is_wp_error($metadata)) {
$this->die_json_error_msg($image->ID, $metadata->get_error_message());
}
if (empty($metadata)) {
$this->die_json_error_msg($image->ID, __('Unknown failure reason.', 'wc_csv_import'));
}
// If this fails, then it just means that nothing was changed (old value == new value)
wp_update_attachment_metadata($image->ID, $metadata);
die(json_encode(array('success' => sprintf(__('"%1$s" (ID %2$s) was successfully resized in %3$s seconds.', 'wc_csv_import'), esc_html(get_the_title($image->ID)), $image->ID, timer_stop()))));
}
开发者ID:hikaram,项目名称:wee,代码行数:33,代码来源:class-wc-pcsvis-ajax-handler.php
示例14: handle_upload
/**
* Upload
* Ajax callback function
*
* @return error or (XML-)response
*/
static function handle_upload()
{
header('Content-Type: text/html; charset=UTF-8');
if (!defined('DOING_AJAX')) {
define('DOING_AJAX', true);
}
check_ajax_referer('plupload_image');
$post_id = 0;
if (is_numeric($_REQUEST['post_id'])) {
$post_id = (int) $_REQUEST['post_id'];
}
// you can use WP's wp_handle_upload() function:
$file = $_FILES['async-upload'];
$file_attr = wp_handle_upload($file, array('test_form' => true, 'action' => 'plupload_image_upload'));
$attachment = array('post_mime_type' => $file_attr['type'], 'post_title' => preg_replace('/\\.[^.]+$/', '', basename($file['name'])), 'post_content' => '', 'post_status' => 'inherit');
// Adds file as attachment to WordPress
$id = wp_insert_attachment($attachment, $file_attr['file'], $post_id);
if (!is_wp_error($id)) {
$response = new WP_Ajax_Response();
wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $file_attr['file']));
if (isset($_REQUEST['field_id'])) {
// Save file ID in meta field
add_post_meta($post_id, $_REQUEST['field_id'], $id, false);
}
$response->add(array('what' => 'rwmb_image_response', 'data' => self::img_html($id)));
$response->send();
}
// faster than die();
exit;
}
开发者ID:hunghoang179,项目名称:sitenews,代码行数:36,代码来源:plupload-image.php
示例15: handle_upload
/**
* Upload
* Ajax callback function
*
* @return string Error or (XML-)response
*/
static function handle_upload()
{
global $wpdb;
$post_id = isset($_REQUEST['post_id']) ? intval($_REQUEST['post_id']) : 0;
$field_id = isset($_REQUEST['field_id']) ? $_REQUEST['field_id'] : '';
check_ajax_referer("rwmb-upload-images_{$field_id}");
// You can use WP's wp_handle_upload() function:
$file = $_FILES['async-upload'];
$file_attr = wp_handle_upload($file, array('test_form' => false));
//Get next menu_order
$meta = get_post_meta($post_id, $field_id, false);
if (empty($meta)) {
$next = 0;
} else {
$meta = implode(',', (array) $meta);
$max = $wpdb->get_var("\n\t\t\t\t\tSELECT MAX(menu_order) FROM {$wpdb->posts}\n\t\t\t\t\tWHERE post_type = 'attachment'\n\t\t\t\t\tAND ID in ({$meta})\n\t\t\t\t");
$next = is_numeric($max) ? (int) $max + 1 : 0;
}
$attachment = array('guid' => $file_attr['url'], 'post_mime_type' => $file_attr['type'], 'post_title' => preg_replace('/\\.[^.]+$/', '', basename($file['name'])), 'post_content' => '', 'post_status' => 'inherit', 'menu_order' => $next);
// Adds file as attachment to WordPress
$id = wp_insert_attachment($attachment, $file_attr['file'], $post_id);
if (!is_wp_error($id)) {
wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $file_attr['file']));
// Save file ID in meta field
add_post_meta($post_id, $field_id, $id, false);
wp_send_json_success(self::img_html($id));
}
exit;
}
开发者ID:thonysmith,项目名称:LearnPress,代码行数:35,代码来源:plupload-image.php
示例16: do_save
public function do_save($return_val, $data, $module)
{
if (empty($data['attachment_url'])) {
return false;
}
$bits = file_get_contents($data['attachment_url']);
$filename = $this->faker->uuid() . '.jpg';
$upload = wp_upload_bits($filename, null, $bits);
$data['guid'] = $upload['url'];
$data['post_mime_type'] = 'image/jpeg';
// Insert the attachment.
$attach_id = wp_insert_attachment($data, $upload['file'], 0);
if (!is_numeric($attach_id)) {
return false;
}
if (!function_exists('wp_generate_attachment_metadata')) {
// 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.
update_post_meta($attach_id, '_wp_attachment_metadata', wp_generate_attachment_metadata($attach_id, $upload['file']));
// Flag the Object as FakerPress
update_post_meta($attach_id, self::$flag, 1);
return $attach_id;
}
开发者ID:KiyaDigital,项目名称:tvarchive-canonical_wordpress,代码行数:25,代码来源:attachment.php
示例17: _make_attachment
function _make_attachment( $upload, $parent_post_id = 0 ) {
$type = '';
if ( !empty($upload['type']) ) {
$type = $upload['type'];
} else {
$mime = wp_check_filetype( $upload['file'] );
if ($mime)
$type = $mime['type'];
}
$attachment = array(
'post_title' => basename( $upload['file'] ),
'post_content' => '',
'post_type' => 'attachment',
'post_parent' => $parent_post_id,
'post_mime_type' => $type,
'guid' => $upload[ 'url' ],
);
// Save the data
$id = wp_insert_attachment( $attachment, $upload[ 'file' ], $parent_post_id );
wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $upload['file'] ) );
return $this->ids[] = $id;
}
开发者ID:staylor,项目名称:develop.svn.wordpress.org,代码行数:27,代码来源:attachments.php
示例18: _createObject
/**
* Generates a new attachemnt.
*
* @since 1.0.0
*
* @access protected
* @param array $args The array of arguments to use during a new attachment creation.
* @return int The newly created attachment's ID on success, otherwise 0.
*/
protected function _createObject($args = array())
{
if (empty($args['post_mime_type'])) {
if (!empty($args['file']) && is_readable($args['file'])) {
$this->_debug('Reading mime type of the file: ' . $args['file']);
$filetype = wp_check_filetype(basename($args['file']), null);
if (!empty($filetype['type'])) {
$args['post_mime_type'] = $filetype['type'];
$this->_debug('Mime type found: ' . $filetype['type']);
} else {
$this->_debug('Mime type not found');
}
}
}
$attachment_id = wp_insert_attachment($args);
if ($attachment_id) {
$this->_debug('Generated attachment ID: %d (file: %s)', $attachment_id, !empty($args['file']) ? $args['file'] : 'not-provided');
$this->_debug('Generating attachment metadata');
$metadata = wp_generate_attachment_metadata($attachment_id, $args['file']);
if (is_wp_error($metadata)) {
$this->_debug('Attachment metadata generation failed with error [%s] %s', $metadata->get_error_code(), $metadata->get_error_message());
} elseif (empty($metadata)) {
$this->_debug('Attachment metadata generation failed');
} else {
wp_update_attachment_metadata($attachment_id, $metadata);
}
} else {
$this->_debug('Attachment generation failed');
}
return $attachment_id;
}
开发者ID:gedex,项目名称:wp-codeception,代码行数:40,代码来源:Attachment.php
示例19: upgrade_item
/**
* Rebuild the attachment metadata for an attachment
*
* @param mixed $attachment
*
* @return bool
*/
protected function upgrade_item($attachment)
{
$s3object = unserialize($attachment->s3object);
if (false === $s3object) {
AS3CF_Error::log('Failed to unserialize S3 meta for attachment ' . $attachment->ID . ': ' . $attachment->s3object);
$this->error_count++;
return false;
}
$file = get_attached_file($attachment->ID, true);
if (!file_exists($file)) {
// Copy back the file to the server if doesn't exist so we can successfully
// regenerate the attachment metadata
try {
$args = array('Bucket' => $s3object['bucket'], 'Key' => $s3object['key'], 'SaveAs' => $file);
$this->as3cf->get_s3client($s3object['region'], true)->getObject($args);
} catch (Exception $e) {
AS3CF_Error::log(sprintf(__('There was an error attempting to download the file %s from S3: %s', 'amazon-s3-and-cloudfront'), $s3object['key'], $e->getMessage()));
return false;
}
}
// Remove corrupted meta
delete_post_meta($attachment->ID, '_wp_attachment_metadata');
require_once ABSPATH . '/wp-admin/includes/image.php';
// Generate new attachment meta
wp_update_attachment_metadata($attachment->ID, wp_generate_attachment_metadata($attachment->ID, $file));
return true;
}
开发者ID:getupcloud,项目名称:wordpress-ex,代码行数:34,代码来源:as3cf-meta-wp-error.php
示例20: insert_attachment
/**
* Helper function: insert an attachment to test properties of.
*
* @param int $parent_post_id
* @param str path to image to use
* @param array $post_fields Fields, in the format to be sent to `wp_insert_post()`
* @return int Post ID of inserted attachment
*/
private function insert_attachment($parent_post_id = 0, $image = null, $post_fields = array())
{
$filename = rand_str() . '.jpg';
$contents = rand_str();
if ($image) {
// @codingStandardsIgnoreStart
$filename = basename($image);
$contents = file_get_contents($image);
// @codingStandardsIgnoreEnd
}
$upload = wp_upload_bits($filename, null, $contents);
$this->assertTrue(empty($upload['error']));
$type = '';
if (!empty($upload['type'])) {
$type = $upload['type'];
} else {
$mime = wp_check_filetype($upload['file']);
if ($mime) {
$type = $mime['type'];
}
}
$attachment = wp_parse_args($post_fields, array('post_title' => basename($upload['file']), 'post_content' => 'Test Attachment', 'post_type' => 'attachment', 'post_parent' => $parent_post_id, 'post_mime_type' => $type, 'guid' => $upload['url']));
// Save the data
$id = wp_insert_attachment($attachment, $upload['file'], $parent_post_id);
wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $upload['file']));
return $id;
}
开发者ID:davisshaver,项目名称:shortcake-bakery,代码行数:35,代码来源:test-image-comparison.php
注:本文中的wp_generate_attachment_metadata函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论