Как установить миниатюру для импортированных сообщений WordPress навалом - PullRequest
1 голос
/ 11 июня 2019

Я собираю данные с веб-сайта и сохраняю их в файле XML (используя python). Загружая изображения с другого сайта и сохраняя их на моем сайте WordPress, WordPress присваивает им уникальный идентификатор, который я не знаю. Поэтому я не могу назначить это изображение в качестве эскиза для своих сообщений. Я не могу редактировать посты один за другим, потому что они массовые. Есть ли другое решение?

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

1 Ответ

0 голосов
/ 11 июня 2019

Возможен дубликат этого вопроса .Для этого вам нужно использовать множество встроенных функций WordPress:

wp_insert_attachment()
set_post_thumbnail()
wp_generate_attachment_metadata()
wp_update_attachment_metadata()

wp_insert_attachment(), вероятно, самая важная функция, так как она возвращает идентификатор вашего вложения (изображения).set_post_thumbnail() затем использует этот идентификатор вложения и идентификатор вашего сообщения, чтобы установить изображение в качестве избранного изображения в сообщении.

Когда я делал это в прошлом, я также обнаружил, что мне нужно использовать функции метаданных.выше, чтобы правильно назначить изображение, которое было из памяти для удаления сообщений из импорта и их связанных изображений.Полный пример этого см. Здесь

        file_put_contents($oldfile, $image_data);
        rename( $oldfile, $newfile );

        $wp_filetype = wp_check_filetype($filename, null );
        $attachment = array(
            'post_mime_type' => $wp_filetype['type'],
            'post_title' => sanitize_file_name($filename),
            'post_content' => '',
            'post_status' => 'inherit'
        );

        $attach_id = wp_insert_attachment( $attachment, $newfile, $post_id );

        if ( $set_thumb ) {
            $res2= set_post_thumbnail( $post_id, $attach_id );
        }

        $attach_data = wp_generate_attachment_metadata( $attach_id, $newfile );
        $update_attach_metadata = wp_update_attachment_metadata( $attach_id, $attach_data );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...