本文整理汇总了PHP中wp_calculate_image_sizes函数的典型用法代码示例。如果您正苦于以下问题:PHP wp_calculate_image_sizes函数的具体用法?PHP wp_calculate_image_sizes怎么用?PHP wp_calculate_image_sizes使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wp_calculate_image_sizes函数的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: wp_image_add_srcset_and_sizes
/**
* Adds 'srcset' and 'sizes' attributes to an existing 'img' element.
*
* @since 4.4.0
*
* @see wp_calculate_image_srcset()
* @see wp_calculate_image_sizes()
*
* @param string $image An HTML 'img' element to be filtered.
* @param array $image_meta The image meta data as returned by 'wp_get_attachment_metadata()'.
* @param int $attachment_id Image attachment ID.
* @return string Converted 'img' element with 'srcset' and 'sizes' attributes added.
*/
function wp_image_add_srcset_and_sizes($image, $image_meta, $attachment_id)
{
// Ensure the image meta exists.
if (empty($image_meta['sizes'])) {
return $image;
}
$image_src = preg_match('/src="([^"]+)"/', $image, $match_src) ? $match_src[1] : '';
list($image_src) = explode('?', $image_src);
// Return early if we couldn't get the image source.
if (!$image_src) {
return $image;
}
// Bail early if an image has been inserted and later edited.
if (preg_match('/-e[0-9]{13}/', $image_meta['file'], $img_edit_hash) && strpos(wp_basename($image_src), $img_edit_hash[0]) === false) {
return $image;
}
$base_url = trailingslashit(_wp_upload_dir_baseurl());
$image_base_url = $base_url;
$dirname = dirname($image_meta['file']);
if ($dirname !== '.') {
$image_base_url .= trailingslashit($dirname);
}
$all_sizes = wp_list_pluck($image_meta['sizes'], 'file');
foreach ($all_sizes as $key => $file) {
$all_sizes[$key] = $image_base_url . $file;
}
// Add the original image.
$all_sizes[] = $base_url . $image_meta['file'];
// Bail early if the image src doesn't match any of the known image sizes.
if (!in_array($image_src, $all_sizes)) {
return $image;
}
$width = preg_match('/ width="([0-9]+)"/', $image, $match_width) ? (int) $match_width[1] : 0;
$height = preg_match('/ height="([0-9]+)"/', $image, $match_height) ? (int) $match_height[1] : 0;
if (!$width || !$height) {
/*
* If attempts to parse the size value failed, attempt to use the image meta data to match
* the image file name from 'src' against the available sizes for an attachment.
*/
$image_filename = wp_basename($image_src);
if ($image_filename === wp_basename($image_meta['file'])) {
$width = (int) $image_meta['width'];
$height = (int) $image_meta['height'];
} else {
foreach ($image_meta['sizes'] as $image_size_data) {
if ($image_filename === $image_size_data['file']) {
$width = (int) $image_size_data['width'];
$height = (int) $image_size_data['height'];
break;
}
}
}
}
if (!$width || !$height) {
return $image;
}
$size_array = array($width, $height);
$srcset = wp_calculate_image_srcset($size_array, $image_src, $image_meta, $attachment_id);
if ($srcset) {
// Check if there is already a 'sizes' attribute.
$sizes = strpos($image, ' sizes=');
if (!$sizes) {
$sizes = wp_calculate_image_sizes($size_array, $image_src, $image_meta, $attachment_id);
}
}
if ($srcset && $sizes) {
// Format the 'srcset' and 'sizes' string and escape attributes.
$attr = sprintf(' srcset="%s"', esc_attr($srcset));
if (is_string($sizes)) {
$attr .= sprintf(' sizes="%s"', esc_attr($sizes));
}
// Add 'srcset' and 'sizes' attributes to the image markup.
$image = preg_replace('/<img ([^>]+?)[\\/ ]*>/', '<img $1' . $attr . ' />', $image);
}
return $image;
}
开发者ID:nakamuraagatha,项目名称:reseptest,代码行数:89,代码来源:media.php
示例2: get_header_image_tag
/**
* Create image tag markup for a custom header image.
*
* @since 4.4.0
*
* @param array $attr Optional. Additional attributes for the image tag. Can be used
* to override the default attributes. Default empty.
* @return string HTML image element markup or empty string on failure.
*/
function get_header_image_tag($attr = array())
{
$header = get_custom_header();
if (empty($header->url)) {
return '';
}
$width = absint($header->width);
$height = absint($header->height);
$attr = wp_parse_args($attr, array('src' => $header->url, 'width' => $width, 'height' => $height, 'alt' => get_bloginfo('name')));
// Generate 'srcset' and 'sizes' if not already present.
if (empty($attr['srcset']) && !empty($header->attachment_id)) {
$image_meta = get_post_meta($header->attachment_id, '_wp_attachment_metadata', true);
$size_array = array($width, $height);
if (is_array($image_meta)) {
$srcset = wp_calculate_image_srcset($size_array, $header->url, $image_meta, $header->attachment_id);
$sizes = !empty($attr['sizes']) ? $attr['sizes'] : wp_calculate_image_sizes($size_array, $header->url, $image_meta, $header->attachment_id);
if ($srcset && $sizes) {
$attr['srcset'] = $srcset;
$attr['sizes'] = $sizes;
}
}
}
$attr = array_map('esc_attr', $attr);
$html = '<img';
foreach ($attr as $name => $value) {
$html .= ' ' . $name . '="' . $value . '"';
}
$html .= ' />';
/**
* Filter the markup of header images.
*
* @since 4.4.0
*
* @param string $html The HTML image tag markup being filtered.
* @param object $header The custom header object returned by 'get_custom_header()'.
* @param array $attr Array of the attributes for the image tag.
*/
return apply_filters('get_header_image_tag', $html, $header, $attr);
}
开发者ID:idies,项目名称:escience-2016-wp,代码行数:48,代码来源:theme.php
示例3: test_wp_calculate_image_sizes
/**
* @ticket 33641
*/
function test_wp_calculate_image_sizes()
{
// Test sizes against the default WP sizes.
$intermediates = array('thumbnail', 'medium', 'medium_large', 'large');
$image_meta = wp_get_attachment_metadata(self::$large_id);
// Make sure themes aren't filtering the sizes array.
remove_all_filters('wp_calculate_image_sizes');
foreach ($intermediates as $int_size) {
$size_array = $this->_get_image_size_array_from_name($int_size);
$image_src = $image_meta['sizes'][$int_size]['file'];
list($width, $height) = $size_array;
$expected = '(max-width: ' . $width . 'px) 100vw, ' . $width . 'px';
$sizes = wp_calculate_image_sizes($size_array, $image_src, $image_meta);
$this->assertSame($expected, $sizes);
}
}
开发者ID:nkeat12,项目名称:dv,代码行数:19,代码来源:media.php
示例4: test_filter_shim_calculate_image_sizes
/**
* @group 226
* @expectedException PHPUnit_Framework_Error_Notice
*/
function test_filter_shim_calculate_image_sizes()
{
// Add our test filter.
add_filter('tevkori_image_sizes_args', array($this, '_test_tevkori_image_sizes_args'));
// A size array is the min required data for `wp_calculate_image_sizes()`.
$size = array(300, 150);
$sizes = wp_calculate_image_sizes($size, null, null);
// Evaluate that the sizes returned is what we expected.
$this->assertSame($sizes, '100vw');
remove_filter('tevkori_image_sizes_args', array($this, '_test_tevkori_image_sizes_args'));
}
开发者ID:barkinet,项目名称:wp-tevko-responsive-images,代码行数:15,代码来源:test-suite.php
示例5: responsive_wp
/**
* Get wp 4.4 responsive solution, return the srcset and sizes attributes in a string which starts with
* a space
*
* @param $url
* @return string
*/
public static function responsive_wp($url)
{
$responsive = '';
$srcset = false;
$sizes = false;
$image_size = SwiftyImageFunctions::$image_size;
// only for wp 4.4+
if (isset($url) && function_exists('wp_calculate_image_srcset')) {
$attach_id = SwiftyImageFunctions::get_attachment_id_from_url($url);
if ($attach_id) {
$image = SwiftyImageFunctions::get_attachment_image_src_wp($attach_id, $image_size, false);
if ($image) {
list($src, $width, $height) = $image;
$image_meta = wp_get_attachment_metadata($attach_id);
if (is_array($image_meta)) {
$size_array = array(absint($width), absint($height));
// wp_calculate_image_srcset will only return sizes smaller than 1600
$srcset = wp_calculate_image_srcset($size_array, $src, $image_meta, $attach_id);
$sizes = wp_calculate_image_sizes($size_array, $src, $image_meta, $attach_id);
}
}
}
}
if ($sizes && $srcset) {
$responsive = ' srcset="' . esc_attr($srcset) . '" sizes="' . esc_attr($sizes) . '"';
}
return $responsive;
}
开发者ID:interfisch,项目名称:lm,代码行数:35,代码来源:swifty-image-functions.php
示例6: wp_image_add_srcset_and_sizes
/**
* Adds 'srcset' and 'sizes' attributes to an existing 'img' element.
*
* @since 4.4.0
*
* @see 'wp_get_attachment_image_srcset()'
* @see 'wp_get_attachment_image_sizes()'
*
* @param string $image An HTML 'img' element to be filtered.
* @param array $image_meta The image meta data as returned by 'wp_get_attachment_metadata()'.
* @param int $attachment_id Image attachment ID.
* @return string Converted 'img' element with 'srcset' and 'sizes' attributes added.
*/
function wp_image_add_srcset_and_sizes($image, $image_meta, $attachment_id)
{
// Ensure the image meta exists.
if (empty($image_meta['sizes'])) {
return $image;
}
$image_src = preg_match('/src="([^"]+)"/', $image, $match_src) ? $match_src[1] : '';
list($image_src) = explode('?', $image_src);
// Return early if we couldn't get the image source.
if (!$image_src) {
return $image;
}
// Bail early if an image has been inserted and later edited.
if (preg_match('/-e[0-9]{13}/', $image_meta['file'], $img_edit_hash) && strpos(wp_basename($image_src), $img_edit_hash[0]) === false) {
return $image;
}
$width = preg_match('/ width="([0-9]+)"/', $image, $match_width) ? (int) $match_width[1] : 0;
$height = preg_match('/ height="([0-9]+)"/', $image, $match_height) ? (int) $match_height[1] : 0;
if (!$width || !$height) {
/*
* If attempts to parse the size value failed, attempt to use the image meta data to match
* the image file name from 'src' against the available sizes for an attachment.
*/
$image_filename = wp_basename($image_src);
if ($image_filename === wp_basename($image_meta['file'])) {
$width = (int) $image_meta['width'];
$height = (int) $image_meta['height'];
} else {
foreach ($image_meta['sizes'] as $image_size_data) {
if ($image_filename === $image_size_data['file']) {
$width = (int) $image_size_data['width'];
$height = (int) $image_size_data['height'];
break;
}
}
}
}
if (!$width || !$height) {
return $image;
}
$size_array = array($width, $height);
$srcset = wp_calculate_image_srcset($size_array, $image_src, $image_meta, $attachment_id);
if ($srcset) {
$sizes = wp_calculate_image_sizes($size_array, $image_src, $image_meta, $attachment_id);
}
if ($srcset && $sizes) {
// Format the 'srcset' and 'sizes' string and escape attributes.
$srcset_and_sizes = sprintf(' srcset="%s" sizes="%s"', esc_attr($srcset), esc_attr($sizes));
// Add 'srcset' and 'sizes' attributes to the image markup.
$image = preg_replace('/<img ([^>]+?)[\\/ ]*>/', '<img $1' . $srcset_and_sizes . ' />', $image);
}
return $image;
}
开发者ID:hongweipeng,项目名称:WordPress,代码行数:66,代码来源:media.php
注:本文中的wp_calculate_image_sizes函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论