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

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

Для этого в файл 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).

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

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

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

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*