WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

Не обновляет метаданные миниатюры…

Добрый день!
Пользовался функцией, описанной в 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 );
0
Гость 11 месяцев назад

Нет ответов на этот вопрос.

На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.