Intereting Posts
register_sidebar_widget устарел с версии 2.8 Список категорий вместо выпадающего меню в настройках администратора Скрыть мета-боксы для не-админов Произошла непредвиденная ошибка. Что-то может быть не так с WordPress.org или конфигурацией этого сервера Удалить поле заказа из поля «Атрибуты страницы» Разрешить пользователям регистрировать себя и отправлять сообщения: обрабатывает ли WordPers эти проблемы? Изменить размер редактора Редактирование изображения на экране редактирования CPT Настроить форму поиска в Виджет Как я могу программным образом изменить переменную MySql (foreign_keys_check)? Объединение двух объектов WP_Query цвет фона заголовка изменен после базы данных drop & import в phpmyadmin WordPress the_content () возвращает только одно изображение из определенной категории Создайте формат файла (csv, json и т. Д.) При сохранении / обновлении сообщения Отображение имени запрашиваемой таксономии на странице архива терминов? Есть ли плагины, которые мешают административной части виджета Rss?

Создайте новое настраиваемое поле для всех сообщений на основе текущего настраиваемого поля

У меня есть настраиваемое поле для большого количества сообщений, содержащих URL-адрес для видео с YouTube. Я использовал, чтобы захватить идентификатор из видео и использовать его для создания большого пальца, но в новой версии я фактически использую download_url () для настраиваемого URL-адреса изображения большого пальца с youtube и загрузки его на свой сервер. Поэтому я должен сделать это для всех сообщений в моей базе данных, но вам нужен способ сделать это иначе, чем вручную с каждым.

Поэтому у меня есть настраиваемое поле для каждого сообщения, называемого video_code которое равно URL-адресу видео.

Поэтому с этим мне нужно сделать что-то подобное для всех сообщений определенного типа post_type ..

  require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); $video_code = get_post_meta($post->ID,'video_code',true); $video_id = getVideoId($video_code); // getVideoId is a custom function if ($video_id) { $video_image_url = 'http://img.youtube.com/vi/'.$video_id.'/hqdefault.jpg'; ut$tmp = download_url($video_image_url); $file_array = array( 'name' => basename( $video_image_url ), 'tmp_name' => $tmp ); } $vid_thumb = media_handle_sideload( $file_array, $post_id ); update_post_meta($post_id,'video_thumb',$vid_thumb); 

Есть идеи?

Это запустит init поэтому вам просто нужно обновить страницу один раз, чтобы она работала. Я оставил фактическое значение $new_value – вам нужно это определить.

 <?php add_action( 'init', 'wpse_75308_update_video_meta' ); function wpse_75308_update_video_meta() { // Get all posts $posts = get_posts( array( 'numberposts' => -1 ); // Loop through each and update the custom field where it exists foreach( $posts as $post ) { update_post_meta( $post-ID, 'video_thumb', $new_value ); } }