Добавить страницу, которая появляется в бэкэнд-админе, в котором перечислены файлы для загрузки? WP 3.3

В настоящее время я использую WP 3.3.1.

В принципе, мне просто нужна страница для пользователей, которые заходят в систему через wp-login.php и просматривают панель управления бэкэнд, чтобы увидеть страницу, на которой показан список файлов, которые они могут загрузить.

  1. Файлы будут либо .zip, .pdf, либо .txt.
  2. Было бы замечательно, если бы список загрузок имел тот же точный формат, что и при просмотре сообщений >> Все сообщения.
  3. Чтобы все было начато, ему не нужны функции сортировки или фильтрации. Хотя было бы хорошо.

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

Любые советы или фрагменты кода, которые будут либо делать выше, либо начать меня в правильном направлении, были бы замечательными!

Заранее спасибо.

Solutions Collecting From Web of "Добавить страницу, которая появляется в бэкэнд-админе, в котором перечислены файлы для загрузки? WP 3.3"

В этом процессе будет несколько шагов, я расскажу несколько здесь, чтобы вы начали.

Шаг 1. Настройка плагина

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

Шаг 2. Настройте свою активацию и функцию.

//run when admin menu is being created add_action('admin_menu','my_files_plugin_menu'); //add the new item to the admin menu function my_files_plugin_menu() { add_menu_page('Files','Files','editor','my-files-plugin','','',10); add_submenu_page('my-files-plugin','Download Files','Download Files','editor','my-files-plugin','my_files_plugin_download_page'); add_submenu_page('my-files-plugin','Upload Files','Upload Files','administrator','my-files-upload','my_files_plugin_upload_page'); } //run when plug-in is activated register_activation_hook(__FILE__,'ballots_by_social_set_options'); //set up activation options for plug in function my_file_upload_plug_in_activate() { //check to see if files directory has already been created //we check for the directory first so that if the plug-in is being reactivated //or updated, we won't bother trying to create the directory again if(!is_dir(ABSPATH . '/wp-content/files_plugin')) { //create directory mkdir(ABSPATH . '/wp-content/files_plugin',0755); } } 

Я использовал пользовательский уровень редактора для страницы загрузки и уровня пользователя администратора для страницы загрузок, но вы могли бы установить их по своему желанию. Вы также можете добавить третью страницу с параметрами и использовать add_option () в свой register_activation_hook() чтобы установить некоторые значения по умолчанию. Затем вы захотите использовать update_option () и get_option (), чтобы разрешить настройку уровней пользователей, которые могут обращаться к страницам. Если вы решите это сделать, не забудьте установить register_deactivation_hook (), где вы используете delete_option (), чтобы удалить их.

Шаг 3. Настройте функцию удаления.

Я рекомендую поместить это в файл unstall.php в ваш каталог плагинов. Это позволит убедиться, что когда кто-то нажмет ссылку «Удалить» на подключаемом модуле, он удалит каталог и все содержимое. Если вы настраиваете подкаталоги в основном каталоге для разных типов файлов, вы также можете изменить функцию для их удаления.

 //remove /wp-content/files_plugin/ $dir = ABSPATH . '/wp-content/files_plugin'; chmod($dir,0777); function remove_files_plugin_dir($dir) { //see if directory exists if(is_dir($dir)) { //open directory $handle = opendir($dir); //iterate through objects in directory and remove them while($obj = readdir($handle)) { if($obj != "." && $obj != '..') { if(!unlink($dir . $obj)) { break; } } } closedir($handle); rmdir($dir); } //run remove directory function remove_files_plugin_dir($dir); 

Шаг 4. Настройка страницы загрузки.

Вы хотите создать простую страницу с файлом и кнопкой загрузки, вы можете настроить форму для приема нескольких файлов, если хотите. Вам нужно будет ссылаться на массив $_FILES и записать загруженный файл в ваш новый каталог / wp-content / files_plugin /.

Шаг 5. Настройка страницы загрузки.

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

Или вы можете использовать что-то вроде дерева файлов jQuery, чтобы предоставить браузеру файлов своим пользователям.

РЕДАКТИРОВАТЬ 2 : Я был сильно не прав относительно того, как сделать его похожим на страницу сообщений. Похоже, вы можете использовать класс WP_List_Table, чтобы достичь этого намного лучше. У меня нет опыта работы с этим классом, но он выглядит очень сногсшибательно.

Я только что настроил вывод, чтобы отразить типичные таблицы областей администратора в терминах структуры и классов. Я определенно буду использовать WP_List_Table с этого момента.

Шаг 6: Настройте функцию удаления

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

Возможно, вы захотите установить его как вызов Ajax функции удаления, отправив ему имя файла в качестве параметра, а затем воспользуйтесь функцией unlink() , как это было сделано в функции удаления, чтобы удалить этот файл.

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

И не забывайте, что вы могли бы использовать таблицу в базе данных, чтобы контролировать все это, но вам все равно нужно будет добавлять и удалять фактические файлы и просто хранить имена файлов в БД.

Если вам нужна помощь или у вас возникнут какие-либо вопросы, отправьте сообщение, и я постараюсь оказать помощь.

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

Если бы я был вами, для загрузки я бы сделал пользовательский тип сообщения с соответствующими метабоксами ( wpalchemy здесь).

Тогда для загрузки, это зависит от того, что вам действительно нужно. Если вам действительно нужно показать список INSIDE в области администрирования, WP_List_Table – это путь (и проверьте здесь ). Кроме того, я думаю, что вы можете настроить общую страницу архива по умолчанию, а затем связать ее с соответствующим профилем пользователя или возможностями.

Надеюсь, что это поможет другому человеку в будущем.