Intereting Posts
Вызов пользовательских методов класса плагина из шаблона widgetlogic и permalinks Пользовательский метабокс, вызывающий ошибку: «Вы уверены, что хотите это сделать? Пожалуйста, попробуйте еще раз." Типы XML-RPC и пользовательских сообщений Как я могу скрыть боковую панель на определенных страницах? Ошибки случайной аутентификации при настройке WP с балансировкой нагрузки Отображать только элементы подменю только для конкретных страниц, используя Custom Walker Wp admin – установить значение по умолчанию 999 в комментариях Сообщение перенаправлено на сообщение вложения Создание меню, содержащего категории и авторов Миграция содержимого из старого решения. Как легко менять гиперссылки в устаревших контентах Как исправить параметр входа в WordPress Как изменить настройки, чтобы я мог загружать изображения в сообщения WordPress? Единая категория со специфической структурой константы, отличная от стандартной, установленной для остальной части сайта Лучший поиск для бэкэнда администратора WordPress

Загрузить миниатюру сообщения с переднего конца

Мы хотели бы, чтобы пользователи могли загружать миниатюру после редактирования сообщений. Как это будет сделано. Я бы предположил, что он будет использовать функции ajax wordpress.

Есть идеи,

дивный

Solutions Collecting From Web of "Загрузить миниатюру сообщения с переднего конца"

Загрузка файлов в ajax немного сложна, потому что загрузка файлов с помощью объекта XMLHttpRequest браузера невозможна, поэтому вам нужно использовать какой-то плагин для загрузки Ajax, а самый простой из них – это плагин JQuery Form, который упрощает и упрощает включен в WordPress. Поэтому, чтобы использовать его, вам нужно поставить в очередь:

add_action('wp_print_scripts','include_jquery_form_plugin'); function include_jquery_form_plugin(){ if (is_page('12')){ // only add this on the page that allows the upload wp_enqueue_script( 'jquery' ); wp_enqueue_script( 'jquery-form',array('jquery'),false,true ); } } 

на этой странице добавьте свою форму загрузки и JQuery, чтобы вызвать плагин JQuery Form, например:

 <form id="thumbnail_upload" method="post" action="#" enctype="multipart/form-data" > <input type="file" name="thumbnail" id="thumbnail"> <input type='hidden' value='<?php wp_create_nonce( 'upload_thumb' ); ?>' name='_nonce' /> <input type="hidden" name="post_id" id="post_id" value="POSTID"> <input type="hidden" name="action" id="action" value="my_upload_action"> <input id="submit-ajax" name="submit-ajax" type="submit" value="upload"> <form> <div id="output1"></div> <script> $(document).ready(function() { var options = { target: '#output1', // target element(s) to be updated with server response beforeSubmit: showRequest, // pre-submit callback success: showResponse, // post-submit callback url: ajaxurl // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php }; // bind form using 'ajaxForm' $('#thumbnail_upload').ajaxForm(options); }); function showRequest(formData, jqForm, options) { //do extra stuff before submit like disable the submit button $('#output1').html('Sending...'); $('#submit-ajax').attr("disabled", "disabled"); } function showResponse(responseText, statusText, xhr, $form) { //do extra stuff after submit } </script> 

вы должны обновить POSTID с фактическим идентификатором сообщения. затем создайте функцию Ajax, чтобы принять загрузку файла и обновить миниатюру сообщения

 //hook the Ajax call //for logged-in users add_action('wp_ajax_my_upload_action', 'my_ajax_upload'); //for none logged-in users add_action('wp_ajax_nopriv_my_upload_action', 'my_ajax_upload'); function my_ajax_upload(){ //simple Security check check_ajax_referer('upload_thumb'); //get POST data $post_id = $_POST['post_id']; //require the needed files require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); //then loop over the files that were sent and store them using media_handle_upload(); if ($_FILES) { foreach ($_FILES as $file => $array) { if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { echo "upload error : " . $_FILES[$file]['error']; die(); } $attach_id = media_handle_upload( $file, $post_id ); } } //and if you want to set that image as Post then use: update_post_meta($post_id,'_thumbnail_id',$attach_id); echo "uploaded the new Thumbnail"; die(); } 

надеюсь это поможет