Intereting Posts
недостаточные разрешения; кодирование действия для плагина, управляемое пользовательскими возможностями Лучший способ распространять шаблоны и код на нескольких сайтах WordPress? Как вы включили WooCommerce в свою собственную тему WordPress? виджет отображается в панели администратора WP, но данные не сохраняются Функция переопределения в классе в дочерней теме Получить сообщения на странице архива Функция для загрузки правильного CSS для шаблона не работает Могу ли я создать несколько страниц одновременно с помощью WP-CLI? Добавление персонализированного статуса сообщения для видимости в мета-окне публикации Детский сайт не отображается в меню «Сеть» Возможно ли создание реляционных значений метабокса в пользовательской записи? Как удалить ссылку сайта из каждого сообщения в RSS-ленте / изменить выход из файла_excerpt_rss ()? Сообщения о недостающем тексте и стиле плагинов yoast странны из-за нового PHP-кода Удалите дополнительный скрипт Google Maps Прикрепление меню навигации к панели администратора?

Изменение папки загрузки WordPress с помощью загрузки дескриптора wp

Ниже приведен код для загрузки файла через форму … Я хочу изменить путь загрузки по умолчанию для загрузки в папку с именем abc в корне моей темы.

Я надеюсь, что кто-то может помочь мне с этим Ниже мой код

<?php function upload_user_file( $file = array() ) { require_once( ABSPATH . 'wp-admin/includes/admin.php' ); $file_return = wp_handle_upload( $file, array('test_form' => false ) ); if( isset( $file_return['error'] ) || isset( $file_return['upload_error_handler'] ) ) { return false; } else { $filename = $file_return['file']; $attachment = array( 'post_mime_type' => $file_return['type'], 'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $filename ) ), 'post_content' => '', 'post_status' => 'inherit', 'guid' => $file_return['url'] ); $attachment_id = wp_insert_attachment( $attachment, $file_return['url'] ); require_once(ABSPATH . 'wp-admin/includes/image.php'); $attachment_data = wp_generate_attachment_metadata( $attachment_id, $filename ); wp_update_attachment_metadata( $attachment_id, $attachment_data ); if( 0 < intval( $attachment_id ) ) { return $attachment_id; } } return false; } ?> 

форма

 <?php if(isset($_POST['upload'])) { if( ! empty( $_FILES ) ) { $file=$_FILES['file']; $attachment_id = upload_user_file( $file ); } } ?> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" name="upload"> </form> 

Не храните пользовательские загрузки в папке темы! Я предлагаю вам сохранить их в подкаталоге папки uploads по умолчанию.

Вы можете использовать фильтр upload_dir для временного изменения пути:

 function wpse_183245_upload_dir( $dirs ) { $dirs['subdir'] = '/abc'; $dirs['path'] = $dirs['basedir'] . '/abc'; $dirs['url'] = $dirs['baseurl'] . '/abc'; return $dirs; } 

И затем в использовании:

 add_filter( 'upload_dir', 'wpse_183245_upload_dir' ); // Your upload code remove_filter( 'upload_dir', 'wpse_183245_upload_dir' );