Intereting Posts
Как добавить nofollow во все внешние ссылки без плагина? Сгенерированные носители имеют неправильное соотношение сторон Как скрыть значения метаданных из списка настраиваемых полей? Ошибка: 406 неприемлемо Интерфейс, необходимый для передачи содержимого в таблице на веб-странице в интерфейс «Добавить новый продукт» Как получить роль Подписаться на пользователей в меню администратора только в Pages in WordPress Пользовательский цвет фона по умолчанию не меняется Как добавить дополнительное поле во всех доступных WordPress виджетах? либо single-{custom} .php 404's OR / таксономия / 404's – пользовательский тип сообщения и таксономия permalinks Отключить сбой метаданных администратора Удалите определенные кнопки из wp_editor () Использование изображений с низким разрешением / размером для эскизов по индексу сообщений Добавить код внутри стандартной функции wordpress str_replace the_title (); блюз Удалить изображения, загруженные ролью «Подписчик»

Использование «Добавить с сервера» для загрузки по идентификатору сообщения

Я использую плагин Add From Server http://wordpress.org/extend/plugins/add-from-server/, в основном он импортирует / загружает изображение с сервера. В настоящее время плагин копирует изображения в формат месяца / года, но я хочу изменить его, сделав его скопированным в формате папки Post ID вместо месяца / года.

Я уже пробовал использовать плагин Custom Upload Dir, но он не работает с плагином Add From Server вместе. Может ли кто-нибудь настроить плагин Add From Server, чтобы он загружался по идентификатору сообщения?

Solutions Collecting From Web of "Использование «Добавить с сервера» для загрузки по идентификатору сообщения"

Вы можете попробовать добавить это в свой файл functions.php :

 add_filter( 'upload_dir','wpse87234_upload_dir'); function wpse87234_upload_dir($uploads){ // check if we are in the "Add From Server" media tab if (isset($_REQUEST['post_id']) && isset($_GET['tab']) && $_GET['tab']=="server") { $prefix="post_"; $post_id=(int)$_REQUEST['post_id']; // change the uploads info to our needs: $uploads['subdir']="/".$prefix.$post_id; $uploads['path']=$uploads['basedir'].$uploads['subdir']; $uploads['url']=$uploads['baseurl'].$uploads['subdir']; } return $uploads; } 

Это должно /wp-content/uploads/post_1234/ каталог как /wp-content/uploads/post_1234/ с post_id 1234.

анализировать

Из источника плагинов : wp_upload_dir() и wp_insert_attachment() , который использует update_attached_file() . Поэтому в основном плагин должен просто включать ваши настройки мультимедиа. Если он этого не делает, он имеет конфликт с каким-либо другим плагином или с настройками wp-config.php.

Фильтровать обратный вызов для спасения

Вы все равно можете использовать 'upload_dir' -фильтр. Он принимает один аргумент, который имеет следующие данные:

 array( 'path' => $dir, 'url' => $url, 'subdir' => $subdir, 'basedir' => $basedir, 'baseurl' => $baseurl, 'error' => false, ) 

Просто добавьте обратный вызов:

 add_filter( 'upload_dir', 'wpse87234_custom_upload_dir' ); function wpse87234_custom_upload_dir( $data ) { // Change everything you need. return array_merge( $data, array( 'path' => $data['dir'], 'url' => $data['url'], 'subdir' => $data['subdir'], 'basedir' => $data['basedir'], 'baseurl' => $data['baseurl'], 'error' => false, ) ); }