use*_*143 1 php wordpress foreach
这个脚本主要工作:
$_wp_additional_image_sizes[$name] = array($width, $height, $crop);
$image_sizes = get_intermediate_image_sizes();
foreach ($image_sizes as $size) {
echo $size . ' ';
echo $image_sizes[ $size ][ 'width' ] = intval( get_option( "{$size}_size_w" ) );
echo ' x ';
echo $image_sizes[ $size ][ 'height' ] = intval( get_option( "{$size}_size_h" ) ) . '<br />';
}
Run Code Online (Sandbox Code Playgroud)
默认的 WordPress 图像大小(缩略图、中、大等)显示了它们的正确尺寸。
但问题是自定义图像大小始终将其宽度和高度显示为 0。
这是返回的内容:
thumbnail 150 x 150
medium 300 x 300
medium_large 768 x 0
large 1024 x 1024
post-thumbnail 0 x 0
Custom Blog Image 0 x 0
Additional Food Image 0 x 0
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
PS:我已经注册了这样的附加图像尺寸:
add_image_size( 'Custom Blog Image', 1600, 800, $crop = true );
add_image_size( 'Additional Food Image', 800, 600, $crop = true );
Run Code Online (Sandbox Code Playgroud)
小智 6
试试这个代码
此函数将返回所有注册的默认尺寸,包括高度、宽度
function your_thumbnail_sizes() {
global $_wp_additional_image_sizes;
$sizes = array();
$rSizes = array();
foreach (get_intermediate_image_sizes() as $s) {
$sizes[$s] = array(0, 0);
if (in_array($s, array('thumbnail', 'medium', 'medium_large', 'large'))) {
$sizes[$s][0] = get_option($s . '_size_w');
$sizes[$s][1] = get_option($s . '_size_h');
}else {
if (isset($_wp_additional_image_sizes) && isset($_wp_additional_image_sizes[$s]))
$sizes[$s] = array($_wp_additional_image_sizes[$s]['width'], $_wp_additional_image_sizes[$s]['height'],);
}
}
foreach ($sizes as $size => $atts) {
$rSizes[$size] = $size . ' ' . implode('x', $atts);
}
return $rSizes;
}
Run Code Online (Sandbox Code Playgroud)
像这样
Array
(
[thumbnail] => thumbnail 150x150
[medium] => medium 300x300
[medium_large] => medium_large 768x0
[large] => large 1024x1024
[custom-size] => custom-size 220x180
)
Run Code Online (Sandbox Code Playgroud)
小智 5
从 WP 5.3 开始,使用此功能就足够了:
wp_get_registered_image_subsizes();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2256 次 |
| 最近记录: |