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

  • Добрый день, уважаемые участники форума. Подскажите, пожалуйста.

    Обьясню ситуацию… Картинка вставлена в запись, она находится в библиотеке файлов, но не прикреплена к записи, так как была загружена импортом на сервер без применения функций загрузки. Так как изображения не прикреплены к записи, я не могу автоматизировать создание миниатюр с помощью популярных плагинов(они просто считают, что в записях нет картинок).

    Частично нашел решение проблемы — использование произвольных полей. Сейчас я вручную добавляю произвольное поле с названием thumbnail, а в значении указываю url первой картинки. А в content.php у меня есть такой код:

    <a class="postThumb" href="<?php the_permalink() ?>">
    <img src="<?php echo get_post_meta($post->ID, 'thumbnail', true); ?>" />
    </a>

    Этот код нужен для вывода миниатюры записи на главной странице.

    Как бы мне автоматизировать этот процесс с помощью какой-нибудь php-функции?

    Я предполагаю так: добавить в functions.php код, чтобы для всех записей добавилось произвольное поле thumbnail и в него подставлялось бы адрес первой картинки, который содержится в посте. Есть ли готовое решение для этого?

Просмотр 1 ответа — с 1 по 1 (всего 1)
  • А Ваша тема поддерживает миниатюры? Так-то код давно есть без произв.полей:

    // avto_miniatura
    function autoset_featured() {  
    global $post;  
    $already_has_thumb = has_post_thumbnail($post->ID);
     if (!$already_has_thumb) {
     $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1&order=DESC" );
     if ($attached_image) {
     foreach ($attached_image as $attachment_id => $attachment) {
     set_post_thumbnail($post->ID, $attachment_id);
     }
     }
     }
     }
    add_action('future_to_publish', 'autoset_featured');
    add_action('the_post', 'autoset_featured');
    add_action('save_post', 'autoset_featured');
    add_action('draft_to_publish', 'autoset_featured');
    add_action('new_to_publish', 'autoset_featured');
    add_action('pending_to_publish', 'autoset_featured');
Просмотр 1 ответа — с 1 по 1 (всего 1)