Intereting Posts
Есть ли плагин для защиты загрузок с помощью recaptcha? Отказался от выполнения сценария с '***', потому что его тип MIME ('text / html') не является исполняемым, и включена строгая проверка типа MIME Как достичь определенной страницы (URL), доступной определенным пользователям Пользовательские возможности типа сообщения – включить редактирование, отключить создание и удаление Ограничить состояние сообщений Post Post Заказывать сообщения по настраиваемому полю и, если пользовательское поле пусто, возвращает оставшиеся сообщения Не удается обновить WordPress 4.0 Открытие виджета в новом окне – нежелательное Как распечатать частичный URL-адрес после #? Проверка данных конфигурации виджета на странице администратора Показать автора в пользовательской rss-ленте В какой таблице базы данных содержатся «Избранные изображения»? Как иметь глобальную корзину покупок на нескольких сайтах, несколько поддоменов Настройка настраиваемой постоянной позиции типа Назначить список категорий с родительской категорией

Установить пост-эскиз (с помощью php)?

Сайт, который я унаследовал, использует настраиваемые поля для установки пути для эскизов. В идеале я хотел бы переключить это, чтобы использовать встроенный пост-эскиз. Есть ли способ процедурно установить пост-эскиз?

благодаря

Solutions Collecting From Web of "Установить пост-эскиз (с помощью php)?"

Проблема заключается в различии в данных, необходимых для установки миниатюры сообщений (идентификатор вложения) и, возможно, в настраиваемом поле: URL.

Способ, который я собираюсь предложить, очень неряшлив: добавляет больше вложений в WordPress. Лучше всего было бы написать собственный SQL-запрос, в котором вы получите идентификатор вложения из настраиваемого URL поля. Это работает, возможно, это не лучший способ.

Во-первых, получите все посты:

// get an array of all the posts $posts = get_posts( array( 'numberposts' => -1, 'post_type' => 'post' ) ); // bail if our get_posts() call failed if( empty( $posts ) ) return; 

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

 foreach( $posts as $p ) { // change your old thumbnail key! $image_url = get_post_meta( $p->ID, 'your_old_thumbnail_key', true ); // no thumbnail? on to the next if( empty( $image_url ) ) continue; // find our mime type for later $filetype = wp_check_filetype( $image_url ); // Set up an array of args for our new attachment $args = array( 'post_mime_type' => $filetype['type'], 'post_title' => esc_attr( $p->post_title ), // you may want something different here 'post_content' => '', 'post_status' => 'inherit' ); // Insert the attachment! $thumb_id = wp_insert_attachment( $args, $image_url, $p->ID ); // gotta set up some meta data (height, width, etc) // our functions are int his file, so we have to include it require_once(ABSPATH . 'wp-admin/includes/image.php'); $metadata = wp_generate_attachment_metadata( $thumb_id, $image_url ); wp_update_attachment_metadata( $thumb_id, $metadata ); // Finally! set our post thumbnail update_post_meta( $p->ID, '_thumbnail_id', $thumb_id ); // Uncomment the next line to delete the old custom field //delete_post_meta( $p->ID, 'your_old_thumbnail_key', $image_url ); } 

Это оно!

Здесь это как плагин: http://pastie.org/2386814