Атрибуты height и width не устанавливаются в the_post_thumbnail

12 мар. 2013 г., 12:17:40
Просмотры: 13.5K
Голосов: 0

Я использую следующий код для отображения изображений на главной странице:

if ( has_post_thumbnail() ) {the_post_thumbnail('postbox-thumb')

Но в результате выполнения этого кода тег img не содержит атрибутов height и width. Помогите решить эту проблему.

Текущий пример вывода:

<img alt="Kiran inspects coal mine" class="attachment-postbox-thumb wp-post-image" src="http://i0.wp.com/www.indiahelpdesk.in/wp-content/uploads/2012/08/HY09-KIRAN_1170869f.jpg?resize=229%2C150">

Атрибуты height и width отсутствуют.

4
Комментарии

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

Horttcore Horttcore
12 мар. 2013 г. 12:31:08

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

user28789 user28789
12 мар. 2013 г. 19:43:14

Согласно W3C (http://www.w3.org/TR/html401/struct/objects.html#h-13.7.1) они не обязательны, за исключением случаев, когда вы хотите их переопределить. И, честно говоря, я не вижу, как они могут повысить производительность страницы. Если вы хотите улучшить общую производительность страницы, вам следует начать с других вещей, а не с атрибутов изображений. Если вы всё равно хотите их использовать, смотрите мой ответ ниже.

Horttcore Horttcore
12 мар. 2013 г. 19:51:40

Я следую рекомендациям PageSpeed

user28789 user28789
19 мар. 2013 г. 09:42:25
Все ответы на вопрос 3
0

Во втором атрибуте функции the_post_thumbnail() вы можете задать дополнительные параметры для изображения.

the_post_thumbnail( 'postbox-thumb', array( 'width' => 100, 'height' => 100 ) )

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

12 мар. 2013 г. 12:37:48
0

Проверьте параметры для the_post_thumbnail Размеры миниатюр

the_post_thumbnail( array(100, 100) );

Или вы можете добавить собственный размер изображения для миниатюр записей, используя add_image_size в файле функций, который включает ширину и высоту

add_image_size( 'postbox-thumb', 100, 100, TRUE );
12 авг. 2014 г. 14:23:07
0

Сначала добавьте поддержку миниатюр записей (post-thumbnails) в файле "function.php" с помощью следующего кода:

add_theme_support( 'post-thumbnails' );

Затем добавьте размер изображения с помощью следующего кода в "function.php":

add_image_size( 'portfolio', 600, 600, true );

Оба этих элемента должны быть помещены внутрь функции, которую нужно подключить через хук:

add_action( 'after_setup_theme', 'prefix_theme_setup' );

Теперь внутри цикла проверьте наличие миниатюры записи:

has_post_thumbnail()

Затем выведите миниатюру записи:

the_post_thumbnail( 'portfolio' );

Вы также можете задать атрибут class и указать пользовательские высоту и ширину в CSS, сохраняя ширину и высоту равными значениям, установленным в add_image_size(); или сохраняя то же соотношение.

the_post_thumbnail( 'portfolio', array( 'class' => 'custom-class img-responsive' ) );

Теперь вы можете задать пользовательский CSS-класс в вашем CSS:

.custom-class { width: 200px; height: 200px; }

Полный код для function.php:

/*
 * Настройка темы
========================================*/
if ( ! function_exists( 'prefix_theme_setup' ) ) :
function prefix_theme_setup() {

    /*
     * Включение поддержки миниатюр записей для постов и страниц.
     */
    add_theme_support( 'post-thumbnails' );
    add_image_size( 'portfolio', 600, 600, true );

}
endif;
add_action( 'after_setup_theme', 'prefix_theme_setup' );

Полный код для файла шаблона:

<?php if ( has_post_thumbnail() ) :
    the_post_thumbnail( 'portfolio', array( 'class' => 'custom-class img-responsive' ) );
endif; ?>

:-)

15 мая 2015 г. 22:42:25