Автоматическая вставка ссылки на миниатюру поста в произвольное поле

Пример функции, автоматически вставляющей ссылку на изображение, являющееся миниатюрой поста, в произвольное поле.
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

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

Для этого в файл functions.php вставьте код:

//определяем урл миниатюры, а если его нет, вместо него используем урл дефолтного изображения
function w_thumbnail_src() {
    if (has_post_thumbnail()) {
        $thumb = wp_get_attachment_image_src(get_post_thumbnail_id(), 'thumbnail');
        return $thumb[0]; // урл миниатюры
    } else {
        return '';  // или урл дефолтной картинки, если миниатюры нет
    }
}

//автоматически вставляем урл миниатюры поста в произвольное поле Image
add_action('publish_page', 'add_custom_field_automatically', 'w_thumbnail_src');
add_action('publish_post', 'add_custom_field_automatically');

function add_custom_field_automatically($post_id) {
global $wpdb;
if(!wp_is_post_revision($post_id)) {
    add_post_meta($post_id, 'Image', w_thumbnail_src(), true);
    }
}

Эти две функции автоматически добавляют в произвольное поле Image ссылку на изображение, являющееся миниатюрой поста, причем можно указать, в каком виде выводить это изображение: в виде миниатюры маленького, среднего, большого размера или в полную величину (thumbnail, medium, large и full соответственно, в коде используется thumbnail).

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. zekmagadan

    а как сделать чтобы в дополнительное поле не просто картинка ставилась , а прямо html код типа

    <img src="IMAGE">

    ???

    Ответить
  2. zekmagadan

    нужно чтобы с Img src было сразу в поле !!

    Ответить
    1. tiaurus автор

      Нужно заменить

      return $thumb[0]
      

      на

      return '' 
      
      Ответить
  3. Paradise

    Чего то не работает,а очень хочется..Есть какие нибудь соображения?

    Ответить
  4. mupic

    Не работает, версия wordpress 3.5.1. А какая версия у вас?

    Ответить