我已经检查了创建当前代码的来源,我已经查找了这个问题,没有找到答案:https://kellenmace.com/get-uploads-directory-path-in-wordpress/: ~:文本= % 20后% 20函数% 20 % 20可以% 20使用% 20 % 20,% % 20% 2 20% % % 20 40返回% 20字符串% 20上传% 20目录% 20路。
https://developer.wordpress.org/reference/functions/wp_delete_file/: ~:文本= % 24 file_path % 20% 3 d % 20% 22% 2 fhome % 2 fpublic_html % 2 fwp-content % 2 fuploads % 2 f2020 % 2 f04 % 2 fphoto_img_1 - 8. png % 2 f % 2 f % 20 22% - 20% % 20文件路径% 20 % 20,% 2 f % 2 fdelete % 20文件% 20,% 20 % 20登录% 20 % 20添加% 20反馈
https://wordpress.stackexchange.com/questions/262284/media-not-actually-deleted-on-disk-when-click-permanent-delete
从Media中删除文件不会从WordPress的uploads文件夹中删除文件
我正在创建一个文件管理系统。管理员将无法访问我的Wordpress管理区,他们将能够访问一个密码保护的页面,HTML表单使用PHP代码片段,让他们管理自己的文件。
我正在尝试让用户删除文件。我已经看了许多来源,并使代码工作到一定程度。它允许用户输入一个文件名,它将删除数据库中的信息,并将其从wp-content/uploads文件夹中删除。
<html>
<body>
Name of file to delete:
<form method="post">
<input type=text name="t1">
<br>
<br>
<input type=submit name="submission" value="Delete File">
<?php
if(isset($_POST['submission'])){
$db = new wpdb('username','password','database','localhost');
$entry = $_POST['t1']; //accessing value from the text field
$found = "SELECT * FROM files WHERE name = "$entry";";
$result = $table->query($found);
if($result != 0){
$delete_file = "DELETE FROM files WHERE name=("$entry");";
$file_path = get_wordpress_uploads_directory_path().$entry;
$eq_files->query($delete_file);
wp_delete_file( $file_path );
echo "The file deleted is: ".$entry; //displaying result
}
else{
echo "Error. This file does currently not exist in the database.";
}
}
?>
</form>
</body>
</html>
当前按预期工作!问题是,它从上传文件夹和数据库中删除文件,但它执行而不是。从"管理"区域的媒体库中删除该文件。
最后一个问题:我可以在PHP中使用什么来放在前端,允许我从Wordpress管理区域的媒体库选项卡中删除文件?
我发现了一个正在工作的函数。
<?php function delete_404_attachments(){ $attachments = get_posts( array( 'post_type' => 'attachment', 'numberposts' => -1, 'fields' => 'ids' )); if ($attachments) { foreach ($attachments as $attachmentID){ $file_url = wp_get_attachment_url( $attachmentID); $file_headers = @get_headers($file_url); if($file_headers[0] == 'HTTP/1.1 404 Not Found') { $deleted = wp_delete_attachment($attachmentID, true); } } } } ?>
我应该删除我的问题吗?