Новости с вк приходят на сайт. Пост создается, но не могу установить изображение как миниатюру записи. Вот собственно часть кода, отвечающая непосредственно за выкладывание поста:
$post_text = $data->object->text;
//выделяем заголовок при помощи strpos(первое вхождение строки)
$first_enter = strpos($post_text, PHP_EOL);
$post_title = substr($post_text, 0, $first_enter); //(обрезаем наш заголовок)
$post_text = substr($post_text, $first_enter); // (убираем заголовок из текста)
$post_text = trim($post_text);
//получаем изображение
$biggest = new stdClass;
$biggest->width = 0;
foreach ($data->object->attachments as $attachment) {
foreach ($attachment->photo->sizes as $sizes) {
if ($biggest->width < $sizes->width) {
$biggest = $sizes;
}
}
}
$post_images = $biggest->url;
// Создаем массив данных новой записи
$post_data = array(
'post_title' => $post_title,
'post_content' => $post_text,
'post_status' => 'draft',
'post_date' => date('Y-m-d H:i:s'),
'post_author' => 1,
'post_type' => 'post',
);
// Вставляем запись в базу данных
$post_id = wp_insert_post($post_data);
// присваиваем рубрику к посту
wp_set_object_terms($post_id, 'News from vk', 7);
if (is_wp_error($post_id)) {
echo $post_id->get_error_message();
}
// Получаем расширение файла
$ext = pathinfo($post_images, PATHINFO_EXTENSION);
// Создаем временный файл
$temp_file = tmpfile();
// Получаем дескриптор файла
$temp_file_meta = stream_get_meta_data($temp_file);
$temp_filename = $temp_file_meta['uri'];
// Скачиваем картинку и сохраняем ее во временный файл
$ch = curl_init($post_images);
$fp = fopen($temp_filename, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
// Создаем новое вложение в WordPress
$attachment_id = media_handle_sideload(array(
'name' => basename($post_images),
'type' => 'image/' . $ext,
'tmp_name' => $temp_filename,
), $post_id);
// Проверяем успешность загрузки вложения
if (is_wp_error($attachment_id)) {
echo 'Ошибка загрузки файла: ' . $attachment_id->get_error_message();
} else {
// Добавляем вложение к посту
update_post_meta($post_id, '_thumbnail_id', $attachment_id);
}
чтобы понять что происходит в attachments, прикладываю скрин с json decode
Ссылку то я точно получаю, так как, если вставляю просто в src изображения, то в пост приходит, т.е. просто вставляется в запись... но возможно здесь не нужно конкретно выбирать одно изображение?