Подправить скрипт для Wordpress
Написан скрипт, который перебирает картинки и выводит только у которых подходящее разрешение. Скрипт со своей задачей справляется, но работает долго.
Задача максимально увеличить загрузку страницы с подходящими картинками.
global $more;
$more = 0;
$fit_images = array(); //пустой массив для отбора ID подходящих изображений
$whole_args = array(
'post_type' => 'attachment',
'posts_per_page' => - 1,
);
$prepare_attachments = get_posts($whole_args); //проходим все картинки, отсеиваем подходящие
if ($prepare_attachments)
{
foreach($prepare_attachments as $prepare_attachment)
{
$meta = wp_get_attachment_metadata($prepare_attachment->ID);
$wsize = $meta[width];
$hsize = $meta[height];
if ($wsize == 1600 and $hsize == 1200) //подставить свои значения
{
array_push($fit_images, $prepare_attachment->ID);
}
}
}
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$filtered_args = array(
'post_type' => 'attachment',
'posts_per_page' => 21, //показываем все отобранные картинки по 5 единиц на странице
'post_status' => 'inherit',
'orderby' => 'rand',
'paged' => $paged,
'post__in' => $fit_images
);
$fit_attachments = new WP_Query($filtered_args); //используем WP_Query, потому что wp_pagenavi плагин работает только с ним
if ($fit_attachments->have_posts())
{
while ($fit_attachments->have_posts())
{
$fit_attachments->the_post();
$meta = wp_get_attachment_metadata(get_the_id()); //опционально, можно убирать
$wsize = $meta[width]; //опционально, можно убирать
$hsize = $meta[height]; //опционально, можно убирать
$url = get_the_guid(get_the_id());
echo ' ';
echo wp_get_attachment_image(get_the_id() , 'f300x170');
echo '
' . get_the_title() . '
Resolution: ' . $wsize . ' x ' . $hsize . ' ';}
}
?>