Несколько месяцев назад, основываясь на коде Stack и поддержке некоторых пользователей, я создал собственную HTML-разметку для галереи WP по умолчанию.Он содержит нестандартные размеры изображения, и они зависят от размера ширины экрана.Теперь все работало нормально.Я ничего не менял, но теперь эти новые размеры изображений не отображаются.Конечно, размеры миниатюр были созданы, они работают в другой части темы.Мой код выглядит так:
add_filter('post_gallery', 'custom_gallery', 10, 2);
function custom_gallery($output, $attr) {
global $post;
if (isset($attr['orderby'])) {
$attr['orderby'] = sanitize_sql_orderby($attr['orderby']);
if (!$attr['orderby'])
unset($attr['orderby']);
}
extract(shortcode_atts(array(
'order' => 'ASC',
'orderby' => 'menu_order ID',
'id' => $post->ID,
'itemtag' => 'dl',
'icontag' => 'dt',
'captiontag' => 'dd',
'columns' => 3,
'include' => '',
'exclude' => ''
), $attr));
$id = intval($id);
if ('RAND' == $order) $orderby = 'none';
if (!empty($include)) {
$include = preg_replace('/[^0-9,]+/', '', $include);
$_attachments = get_posts(array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby));
$attachments = array();
foreach ($_attachments as $key => $val) {
$attachments[$val->ID] = $_attachments[$key];
}
}
if (empty($attachments)) return '';
$output = "<div class=\"gallery-wrapper\">\n";
$output .= "<ul class=\"gallery-elements\">\n";
foreach ($attachments as $id => $attachment) {
$img = wp_prepare_attachment_for_js($id);
$url = $img['sizes']['full']['url'];
$caption = $img['caption'];
$alt = $img['alt'];
if (!array_key_exists('columns', $attr) || !intval($attr['columns'])) {
$output .= "<li class=\"gallery-item gallery-item-3\">\n";
$url1s = $img['sizes']['gallery-3col-small']['url'];
$url1b = $img['sizes']['gallery-3col-small-retina']['url'];
$url2s = $img['sizes']['gallery-3col-medium']['url'];
$url2b = $img['sizes']['gallery-3col-medium-retina']['url'];
$url3s = $img['sizes']['gallery-3col-bigger']['url'];
$url3b = $img['sizes']['gallery-3col-bigger-retina']['url'];
$url4s = $img['sizes']['gallery-3col-huge']['url'];
$url4b = $img['sizes']['gallery-3col-huge-retina']['url'];
$url5s = $img['sizes']['gallery-3col-monster']['url'];
$url5b = $img['sizes']['gallery-3col-monster-retina']['url'];
$output .=
"<a href=\"$url\" data-fancybox=\"gallery\" title=\"$alt\">
<picture class=\"lozad\" data-src=\"$url5s 1x, $url5b 2x\" data-alt=\"$alt\" title=\"$alt\">
<source media=\"(min-width: 1440px)\" srcset=\"$url5s 1x, $url5b 2x\">
<source media=\"(min-width: 1024px)\" srcset=\"$url4s 1x, $url4b 2x\">
<source media=\"(min-width: 768px)\" srcset=\"$url3s 1x, $url3b 2x\">
<source media=\"(min-width: 425px)\" srcset=\"$url2s 1x, $url2b 2x\">
<source media=\"(min-width: 300px)\" srcset=\"$url1s 1x, $url1b 2x\">
</picture>
</a>";
if ($caption) {
$output .= "<div class=\"gallery-caption \">{$caption}</div>\n";
}
$output .= "</li>\n";
}
else if ($attr['columns'] == 1) {
// output for 1 row
} else if ($attr['columns'] == 2) {
// output for 2 rows
} else if ($attr['columns'] == 4) {
// output for 4 rows
}
}
$output .= "</ul>\n";
$output .= "</div>\n";
return $output;
}
add_filter( 'use_default_gallery_style', '__return_false' );
Эта разметка работает, но URL-адреса изображений нет.В чем может быть проблема?