Intereting Posts
Решить свойства продукта с помощью пользовательских таксономий? Установить пользователя после wp_create_user? URL-адрес восстановления пароля имеет ошибку – но не найден в коде или db Получайте конкретные сообщения по ID в wordpress Выходные данные, такие как установщик / обновление плагинов WP. Не удается получить доступ к идентификатору текущей записи в пользовательском плагине Отображение пользовательской боковой панели без изменения основного файла темы? Исключение содержимого пользовательских функций с определенных страниц Как изменить «после» последнего элемента в wp_nav_menu Перемещение WP из / blog в корневой каталог Как перечислить все пользовательские типы сообщений в пользовательском виджете? Заголовок длинного сообщения Misaligning Grid с избранным изображением Вставить запрос вставляет 2 записи, вставить 1 Архивная страница с фильтром поиска и категории Включение более старой версии jQuery для IE7 / IE8

Изменение загружаемого каталога в плагине независимо от типа сообщения

Я прочитал этот пост и нашел его действительно интересным. Я попытался немного изменить его, чтобы он работал, если у вас есть пользовательская таблица db, а не тип сообщения, на который можно положиться. Поэтому я попытался понять это, используя get_current_screen () вместо get_post_type ().

В этом примере я сделал небольшой плагин для регистрации членов какого-то рода (просто для идеи использования этого в любом виде плагина, который не использует типы сообщений) и загружать фотографии профиля в плагин, как в оригинале код. Хотя это, похоже, не работает, файлы все еще сохраняются в обычном каталоге «wp-content / uploads /». Есть идеи?

Сам плагин использует простую форму для сохранения данных в db, и я также подключил wp-uploader для загрузки и отправки URL-адреса изображения с остальными данными.

function custom_upload_directory( $args ) { $screen = get_current_screen(); // If the parent_base is members, upload to plugin directory if ( $screen->parent_base == 'members' ) { $args['path'] = plugin_dir_path(__FILE__) . “uploads”; $args['url'] = plugin_dir_url(__FILE__) . “uploads”; $args['basedir'] = plugin_dir_path(__FILE__) . “uploads”; $args['baseurl'] = plugin_dir_url(__FILE__) . “uploads”; } return $args; } add_filter( 'upload_dir', 'custom_upload_directory' ); 

Typo: 'not is'

У вас есть редактор. Вы просто используете неправильный тип котировок:

  • Должно быть "
  • ' должно быть '

Вот измененная функция:

 function wpse43013_custom_upload_directory( $args ) { // If the parent_base is "members", upload to plugin directory if ( 'members' === get_current_screen()->parent_base ) return wp_parse_args( $args, array_fill_keys( array( 'path', 'url', 'basedir', 'baseurl' ) ,plugin_dir_path( __FILE__ ).'uploads' ) ); return $args; } add_filter( 'upload_dir', 'wpse43013_custom_upload_directory' ); 

Отлаживать

Обычно это должно вызывать ошибку. Убедитесь, что WP_DEBUG установлен в TRUE внутри вашего файла wp-config.php при тестировании кода внутри среды разработки.

 define( 'WP_DEBUG', true ); 

На производственных площадках вы также можете включить журнал ошибок (не делайте этого постоянно и отключите отображение ошибок, чтобы ошибки были изящно зарегистрированы и не отображались для ваших пользователей.

 define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 ); 

Дополнительную информацию об определении конфигурационных констант см. На странице редактирования wp-config .