Не обновляет метаданные миниатюры…
Добрый день!
Пользовался функцией, описанной в http://wp-kama.ru/function/wp_insert_attachment
Добавляет файл, у меня еще и добавляет из импортированного в метаполе урла, и ставит его миниатюрой. Все это происходит нормально.
Остается вопрос - в медиабиблиотеке вместо картинок появляются серые значки файлов, вот принтскрин https://yadi.sk/i/a5LaW4Z7v9D8S
код у меня такой:
unction auto_featured_s_image($post) { global $post; if( has_post_thumbnail($post->ID) ) return; $filename = get_post_meta( $post->ID, 'attached_f', true );; $filetype = wp_check_filetype( basename( $filename ), null ); $wp_upload_dir = wp_upload_dir(); $attachment = array( 'guid' => $wp_upload_dir['url'] . '/' . basename( $filename ), 'post_mime_type' => $filetype['type'], 'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ), 'post_content' => '', 'post_status' => 'inherit' ); $attach_id = wp_insert_attachment( $attachment, $filename, $post->ID ); set_post_thumbnail($post->ID, $attach_id); require ABSPATH . 'wp-admin/includes/image.php'; // Создадим метаданные для вложения и обновим запись в базе данных. $attach_data = wp_generate_attachment_metadata( $attach_id, $filen ); wp_update_attachment_metadata( $attach_id, $attach_data ); } add_action('save_post', 'auto_featured_s_image');
а поле attached_f, а следовательно $filename имеет значение 2016/09/rphoto1446531154.jpg
Почему может быть такое?
Спасибо!
UPd...догадался - странно, но видимо функции wp_insert_attachment необходим $filename с путем от папки upload, а функции wp_generate_attachment_metadata - абсолютный путь файла...
решил, добавив новую переменную
// Создадим метаданные для вложения и обновим запись в базе данных. $filen = $wp_upload_dir['path'] . '/' . basename( $filename ); $attach_data = wp_generate_attachment_metadata( $attach_id, $filen ); wp_update_attachment_metadata( $attach_id, $attach_data );