Как программно создать запись в WordPress и загрузить миниатюру?

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

<?php

// данные нового поста типа:
$_post_data = array(
  'post_title' => $title,
  'post_status' => 'publish',
  'post_author' => 1,
  'post_type' => 'post',
);
// создаем пост
$post_id = wp_insert_post( $_post_data );

// скачиваем файл по URL-адрес хранящемуся в переменной $url
$tmp_file = download_url( $url );

// загружаем временный $tmp_file-файл в медиатеку WordPress
$att_id = media_handle_sideload( array(
  'name' => basename($url), // имя файла берем из URL-а
  'tmp_name' => $tmp_file, // путь к временному файлу
), $post_id, $title );

// устанавливаем загруженный файл для записи в качестве миниатюры (thumbnail)
set_post_thumbnail($post_id, $att_id);

Получить более подробную информацию по каждой используемой в моём примере функции можно на сайте: wp-kama.ru

ПОДЕЛИТЬСЯ

Программист, преподаватель, консультант.
Активный фрилансер и тех. директор студии AVGroup.
Фанат WordPress'а, а также всего - что даёт скорость в веб-разработке.