Установка миниатюр в WordPress, подробное описание the_post_thumbnail

Если вы еще не в курсе, то начиная с версии WordPress 2.9 RC1, появилась давно ожидаемая функция the_post_thumbnail, с помощью которой можно легко вставлять миниатюры в свои статьи. Хочу рассказать как работать с этой функцией, а также поделюсь впечатлениями от работы с ней.

Итак, в качестве миниатюр можно использовать изображения четырех стандартных размеров. Это «миниатюра» (150х150), «средний» (300х300), «большой» (1024х1024) и исходный. Изменить параметры этих размеров можно в меню Настройка — Медиафайлы.

Первое условие, которое необходимо для работы функции the_post_thumbnail — вставка специального кода, который активирует поддержку миниатюр. Его необходимо вставить в файл functions.php вашей темы. После этого, при редактировании статьи, вы будете видеть специальный блок для установки миниатюры, который расположен в правой части окна.

Далее нужно вставить код вывода миниатюр в том месте, где вам необходимо. Например, в тексте поста на главной странице. Обратите внимание, для каждого размера миниатюры свой код.

Вы можете назначить нужное выравнивание для миниатюры, а также присвоить свой класс. Например:

Кроме того, можно назначить собственный размер миниатюры. Например:

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

А как сделать, чтобы блогер мог сам менять размеры миниатюр, не прибегая к правке файлов темы?

Для тех, кто занимается профессиональной разработкой для WordPress, это очень важный вопрос. Что узнать размеры миниатюр, заданые в админке, достаточно воспользоваться стандартной функцией. Например:

Вот как можно использовать эти данные. Например, нам нужно вставить вдвое уменьшенную миниатюру:

Еще один пример. Если размер миниатюры больше, чем 100х100 и thumbnail_crop включен, тогда уменьшить миниатюру до 100х100. Если меньше или равно 100х100, тогда поставить со стандартными рахмерами. Смотрим:

Теперь вы знаете все про миниатюры WordPress 🙂

Имейте ввиду, что каждый вызов функции the_post_thumbnail создает 2 запроса к базе данных. Соответственно, при стандартном выводе 10 статей на страницу, это 20 запросов.

Если не хотите ждать выхода финальной версии 2.9, то можете скачать WordPress 2.9 Beta2 и в воочию увидеть новые возможности.

Перевод: The Ultimative Guide For the_post_thumbnail In WordPress 2.9

Постоянная ссылка: Установка миниатюр в WordPress, подробное описание the_post_thumbnail

  • Pingback: Tweets that mention Установка миниатюр в Wordpress, подробное описание the_post_thumbnail | Wordpress | Путь веб-разработчика -- Topsy.com()

  • Спасибо, интересно. Правда информация о 2х запросах к базе ужасает. Мой хостер порою и на ВП 2.7 с парой десяткой плагинов ругается, так что использование этой функции я для себя пока что отложу.

    • куда столько плагинов то ?!

  • Перспективный блоггер, за все нужно платить.
    Wordpress изначально построен неэффективно, поэтому каждая новая фича, еще больше увеличивает требования к хостингу.
    Мне кажется, рано или поздно, разработчикам придется полностью переписать ядро, встроив в него «родное» кеширование. Так, как например, это сделано в ModX и других.

  • max

    Спасибо. А как функцию то правильно вставить, в том виде который в статье? Или нужно добавить какое-то обрамление типа function {} ?

  • max

    в общем по всякому попробовал, в файл functions.php это зараза add_theme_support(‘post-thumbnails’); не хочет вставляться, выпадают ошибки

  • Вызов такой примерно:
    < ?php the_post_thumbnail(array(90,90)); ?>
    По поводу активации фунции смотрите внимательно синтаксис в functions.php, может где-то что-то упустили.

  • max

    у меня вот так получилось в functions.php:

    между <?php
    и
    function bloqinfo($name = '')
    добавил

    add_theme_support('post-thumbnails'); {
    if ( function_exists( 'add_theme_support' ) )
    add_theme_support( 'post-thumbnails' ); }

    черт знает что это значит

  • Спасибо за статью, искал, как добавить класс миниатюре.
    Только у вас в примерах кода вместо знака правой угловой скобки подставляется сущность >

    • Neolot

      Спасибо, поправил