Поддержка Проблемы и решения как Правельнее сделать порядок вывода миниатюр

  • так

    
        $attachment = get_post();
    
    	if( $image = image_get_intermediate_size( $attachment->ID, 'large' ) ){
    		 'have size';
    	}elseif($image = image_get_intermediate_size( $attachment->ID, 'as_original' )){
    		 'have as_original';
    	}else{
    		 'only original';
    	}
    

    или так

    
    $meta = wp_get_attachment_metadata( $attachment->ID );
    
    if ( isset( $meta['sizes']['large'] ) ){
    	echo 'have large <br>';
    }elseif( isset( $meta['sizes']['as_original'] ) ){
    	echo 'have as_original <br>';
    }else{
    	echo 'only original <br>';
    }
    

    что лучьше и менее прожорливо?,
    по другому делать не буду — так как на сайте особые настройки под картинки и не обязательно все формируются и нет желания перегинерировать старые миниатюры и один из размеров уже не перегенерировать (он будет получатся от плагина PNG TO JPG)

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • а причем тут миниатюры?
    как-то в заблуждение вводит название темы.

    если это реальный код, то судя по нему, этот код должен работать в админке. а если в админке — то вам не все равно, какой из кодов будет работать на миллисекунду больше или меньше?

    никакого ввода в заблуждение (код выше поправил — смотреть ниже)
    поясню — такой метод уже используется , буду и я вводить
    1- код используется в image.php
    2 — есть картинки png jpg
    3 — возьмем пример картинку в 1 мегабайт
    и в 1500х1500 пикселей , формат не важен — далее сработает плагин
    4 — если картинка более 1500, будет создана миниатюра large с 50 % качества , а если картинка меньше 1500 то мы сохраним оригинал и создадим точную копию в размерах , но сжата картинка будет по качеству в 50% и ее мы принудительно запишем в размеры под названием as_original
    5 — старые картинки нельзя перегенерировать
    6 — у пользователя есть доступ к оригиналам
    7 — сжатые дубли впереди индекса гугла и яндекса
    8 — в зависимости от оригинала , будет показано либо large либо as_original, ну и на всякий пожарный если не то ни другое то покажем оригинал.

    Вообще код можно сделать в 2 условия, но это потом буду решать.

    вместо «echo» буду вызывать url картинки.

    плагин частично завершен, но полностью работоспособен — отлавливаю баги.

    Смысл тоже думаю понятен.

    Сначала вообще не было решения, теперь появилось 2 — думаю спрошу у экспертов

    какой способ менее затратный.

    
       $attachment = get_post();
    
    	if( $image = image_get_intermediate_size( $attachment->ID, 'large' ) ){
    		  echo wp_get_attachment_image_url( $id, 'large' );
    	}elseif($image = image_get_intermediate_size( $attachment->ID, 'as_original' )){
    		 echo wp_get_attachment_image_url( $id, 'as_original' );
    	}else{
    		 echo wp_get_attachment_image_url( $id, 'full' );
    	}
    

    или

    
    $meta = wp_get_attachment_metadata( $attachment->ID );
    
    if ( isset( $meta['sizes']['large'] ) ){
    	echo wp_get_attachment_image_url( $id, 'large' );
    }elseif( isset( $meta['sizes']['as_original'] ) ){
    	echo wp_get_attachment_image_url( $id, 'as_original' );
    }else{
    	echo wp_get_attachment_image_url( $id, 'full' );
    }
    

    вообще, что в первом, что во втором случае код можно сократить , так как если функция не найдет нужный размер, будет показан тот что стоит в базе данных по умолчанию? на всякий пожарный сделаю на 3 условия (это просто к слову)

    
    if ( isset( $meta['sizes']['large'] ) ){
    	echo wp_get_attachment_image_url( $id, 'large' );
    }else{
    	echo wp_get_attachment_image_url( $id, 'as_original' );
    }
    
    • Ответ изменён 6 лет, 8 месяцев назад пользователем kolshix.
    • Ответ изменён 6 лет, 8 месяцев назад пользователем kolshix.
    • Ответ изменён 6 лет, 8 месяцев назад пользователем kolshix.
    • Ответ изменён 6 лет, 8 месяцев назад пользователем kolshix.
    • Ответ изменён 6 лет, 8 месяцев назад пользователем kolshix.

    вы придумали какой-то гимморой с генерацией картинок, но спрашиваете совета по какой мелочи. странно. делайте, как считаете нужным для себя — кто тут кроме вас знает ваши требования и ваш код?

    вы придумали какой-то гимморой с генерацией картинок

    фугушки ))) необходимость в коде проверена 2-х годичным опытом

    сайт-галерея
    (отойду немного от темы вопроса)
    если я намудрил с кодом, то подскажите:
    как грузить на сайт картинки ~1500х~1500 пикселей и размером ~1,5мб, но при этом полюзователю и гуглу показывать эти же картинки 1500х1500 в сжатом виде ~300kb и предостовлять возможность на скачивание оригинала.

    почему никто не учитывает что —
    Генерация сжатых копий снизит нагрузку в 50 % на канал и сделает более юзабельными картинки для слабых устройств, поднимет сайт на первые позиции в индексе картинок, даст пользователю доступ к опригиналу

    как мне их в таблице базы данных соеденить?

    плагин уже написан, и работает — с плагинами генерации миниатюр не конфликтует, картинки удаляются с миниатюрами (короче все синхронно)
    Плагин только конфликтует с плагином подмены картинок, но думаю допилю функционал

    • Ответ изменён 6 лет, 8 месяцев назад пользователем kolshix.

    ну я и говорю — вы решаете задачу, которая нужна только вам.
    раз надо — ok, специфичных задач бывает много.

    только я не понимаю, зачем вы что-то тут спрашиваете — работает, ну и хорошо.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • Тема «как Правельнее сделать порядок вывода миниатюр» закрыта для новых ответов.