Intereting Posts
изменение стиля боковой панели Заголовок изображения не отображается на некоторых изображениях. WordPress возвращает 404 в пользовательском конфликте правила перезаписи в параметрах Сохранение предварительно дезинфицированного имени файла вложения в качестве заголовка или надписи Ограничение выпадающего списка таксономии Опции для CDN с WordPress, включая поддерживающие плагины? Плагины для клонирования сайта wordpress и перехода к другому URL-адресу Программно (PHP) получить nr. элементов в главном меню навигации Скрыть элемент меню и его подменю и отобразить ссылку «Войти», если пользователь вышел из системы Выберите раскрывающийся список, не показывающий выбранное значение php Редактирование сообщения и ответа страницы 503 Услуга недоступна Добавить div внутри подменю Использование классов вместо глобальных функций в functions.php Функция в дочерней теме не переопределяет функцию родительской темы Использовать почтовые форматы только для определенного типа сообщений?

Получить URL-адрес избранного изображения После wp_insert_post ()

Я хочу получить URL-адрес избранного изображения.

Я создал функцию с wp_insert_post чтобы опубликовать данные и установить для них wp_insert_post изображение. Все работает отлично, за исключением отображения URL-адреса признака.

Вот мой код:

 $newpostname = $movie['title']; global $wpdb; $id_ofpost_name = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_name = '$newpostname'" ); $id_ofpost_title = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_title = '$newpostname'" ); if( $id_ofpost_name || $id_ofpost_title ) { echo 'post Exist'; } else { // Register Post Data $post = array(); $post['post_status'] = 'publish'; $post['post_type'] = 'post'; // can be a CPT too $post['post_title'] = $newpostname; $post['post_content'] = ''; $post['post_author'] = 1; // Create Post $post_id = wp_insert_post( $post ); // Add Featured Image to Post $image_url = $movie['urlPoster']; $upload_dir = wp_upload_dir(); // Set upload folder $image_data = file_get_contents( $image_url ); // Get image data $filename = basename( $image_url ); // Create image file name // Check folder permission and define file location if( wp_mkdir_p( $upload_dir['path'] ) ) { $file = $upload_dir['path'] . '/' . $filename; } else { $file = $upload_dir['basedir'] . '/' . $filename; } // Create the image file on the server file_put_contents( $file, $image_data ); // Check image file type $wp_filetype = wp_check_filetype( $filename, null ); // Set attachment data $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => sanitize_file_name( $filename ), 'post_content' => '', 'post_status' => 'inherit' ); // Create the attachment $attach_id = wp_insert_attachment( $attachment, $file, $post_id ); // Include image.php require_once(ABSPATH . 'wp-admin/includes/image.php'); // Define attachment metadata $attach_data = wp_generate_attachment_metadata( $attach_id, $file ); // Assign metadata to attachment wp_update_attachment_metadata( $attach_id, $attach_data ); // And finally assign featured image to post set_post_thumbnail( $post_id, $attach_id ); } 

Вставка сообщений отлично работает! Проблема в том, что я хочу получить URL-адрес избранного изображения после загрузки. Как я могу это сделать?

Ну, у вас есть ID как $attach_id поэтому вы можете использовать такую ​​функцию, как wp_get_attachment_url() где вы можете передать $attach_id и получить возвращаемый URL:

 $featured_url = wp_get_attachment_url( $attach_id ); 

Или, если вам нужна дополнительная информация, такая как ширина, высота и т. Д., Вы можете использовать такие функции, как wp_get_attachment_image_src() или wp_get_attachment_metadata() .