这一过程将涉及几个步骤,我将在这里概述一些步骤,以帮助您开始。
Step 1: Set up a Plug-in
您可以查看有关他们的更多信息
here. 我不会在这个答案中重述标题信息,因为这篇文章中的标题信息是不言自明的,并且您的标题信息值会有所不同。
Step 2: Set up Your Activation and Function
//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() 移除它们。
Step 3: Set up your Uninstall Function
我建议把它放在一个不抛锚的地方。插件目录中的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);
Step 4: Set up Your Uploads Page
您需要设置一个带有文件输入和上载按钮的简单页面,如果愿意,您可以将表单设置为接受多个文件。您将要引用
$_FILES
数组并将上载的文件写入新的/wp-content/files\\u插件/目录。
Step 5: Set up Your Downloads Page
这基本上取决于你想怎么做。您可以轻松地打开目录并遍历文件,就像卸载功能一样,然后将其输出到页面。
或者你可以用jQuery File Tree 向用户显示文件浏览器。
EDIT 2: 我对让它看起来像帖子页面的方式大错特错。看起来你可以使用WP_List_Table 类以更好的方式实现这一点。我没有这门课的经验,但它看起来很时髦。
我刚刚设置了输出,以在结构和类方面反映典型的管理区域表。不过,从现在起,我肯定会使用WP\\u List\\u Table。
Step 6: Set Up a Delete Function
您可能希望每个文件都有一个特定的链接,只有管理员才能看到该链接,允许您删除该文件。
您可能希望将其设置为对删除函数的Ajax调用,将文件名作为参数发送给它,然后使用unlink()
函数,就像我们在卸载函数中删除该文件一样。
很明显,您可能想调整这些代码以满足您的需要,但这应该为您提供一个体面的起点。
而且,不要忘记,您也可以使用数据库中的一个表来控制所有这些,但您仍然需要添加和删除实际文件,只需将文件名存储在DB中。
如果您需要任何帮助或有任何问题,请发回,我将尽力提供帮助。